Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!utastro!bigtex!james From: james@bigtex.cactus.org (James Van Artsdalen) Newsgroups: comp.sys.ibm.pc.misc Subject: Re: Need info: Slow I/O in protected mode Keywords: Protected mode, QEMM, I/O Message-ID: <48840@bigtex.cactus.org> Date: 17 Oct 90 08:58:10 GMT References: <4925@tuminfo1.lan.informatik.tu-muenchen.dbp.de> Reply-To: james@bigtex.cactus.org (James Van Artsdalen) Distribution: comp Organization: Institute of Applied Cosmology, Austin TX Lines: 37 In <4925@tuminfo1.lan.informatik.tu-muenchen.dbp.de>, lenz@charly.bl.physik.tu-muenchen.de (Udo Lenz) wrote: > I'm developing a time critical application for an interface card, > from which a lot of data is read via assembly 'in ax,dx' commands. > When benchmarking the I/O routines on a 20 Mhz 386, I've found out, > that the 'in ax,dx' command takes roughly a microsecond longer if I > have installed Quarterdesks QEMM memory manager. [...] > The assembly reference manual says though, that the timing of the > 'in ax,dx' command in protected mode is as fast as in real mode, > except if encurring a protection fault. That's not how I interpret the Intel book. It indicates to me 27 clocks in virtual 8086 mode. > My questions are: > What is the reason for the delay in the 'in ax,dx' command when using > QEMM? Lots of microcode, and I presume a fetch from the I/O permission bitmap. > Am I really in protected mode when installing QEMM as a device driver > in config.sys? Yes. > If in protected mode, why do my old assembly routines, which do segment > register arithmetic and other dirty things, still run? Because you're in virtual 8086 mode. Read the Intel book: virtual 8086 mode can be made to act like real mode, but it's still virtual mode timing. -- James R. Van Artsdalen james@bigtex.cactus.org "Live Free or Die" Dell Computer Co 9505 Arboretum Blvd Austin TX 78759 512-338-8789