www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/03/03/10:21:34

From: Charles Sandmann <sandmann AT praline DOT no DOT NeoSoft DOT com>
Subject: Re: One More Confused Interrupt Question
To: eliz AT is DOT elta DOT co DOT il (Eli Zaretskii)
Date: Fri, 3 Mar 1995 09:00:25 -0600 (CST)
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu

> > 2) The interrupt reflection overhead between the two modes can be an
> >    issue, but only in extreme cases.  My 486/33 can handle around 10K of
> >    these reflections per second, which means I can handle a 1024Hz clock,
> 
> Does this mean the interrupt reflection overhead takes
> a whopping 3000 cycles (100 microseconds/reflection on
> a 30-ns cycle machine)?  Seems like a lot to me.  If it
> is indeed so, is all that overhead really necessary?  Where does it go?

3000 cycles seems reasonable to me.  On a 486, a jump task instruction 
takes around 250 cycles, and there are at least 3 of those per round trip
transition in CWSDPMI, plus a whole bunch more code to execute.  Yes, it 
could be faster with some optimization, but this is currently competative with
(or faster than) the times required under Win 3.1 or QDPMI for the same tasks.

With CWSDPMI, in the best case you only execute code in tables.asm and
mswitch.asm.  You can look at the source on these and see what is required.
Morten Welinder sent me some code that might reduce that by about 5%, but
I haven't implemented it yet.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019