Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!portal!cup.portal.com!truett From: truett@cup.portal.com Newsgroups: comp.dcom.lans Subject: Re: PC Lan Comparison Message-ID: <1559@cup.portal.com> Date: Mon, 23-Nov-87 23:55:27 EST Article-I.D.: cup.1559 Posted: Mon Nov 23 23:55:27 1987 Date-Received: Fri, 27-Nov-87 06:03:25 EST References: <8711201440.AA19741@decwrl.dec.com> Organization: The Portal System (TM) Lines: 28 XPortal-User-Id: 1.1001.2190 While discussing DMA versus PIO devices on PCs, let me add the following little tidbit which I discovered working on a piece of hardware that used DMA. Most DMA devices designed for PCs assume an 8-bit peripheral interface, so they assume the DMA is an 8-bit DMA, which it is on the PC or XT. In that case it takes 5 bus cycles, or 1.05 microseconds at 4.77 MHz, to move one byte. Now the 8-bit DMA channels of an AT are cascaded through one of the 16-bit DMA channels, so it takes 10 bus cycles to move one byte through an 8-bit DMA access peripheral on the AT. Yes, a 16-bit peripheral connected directly to the 16-bit channel only takes 5 bus cycles to move 2 bytes. But the effect is, for 8-bit peripherals attached to the 8-bit DMA channels, that any AT operating at less than about 9.8 MHz moves the data more slowly than the lowly XT at 4.77 MHz! The moral? On an AT, PIO is faster than DMA, especially if your I/O device can handle the OUTSW instruction at full speed. Even OUTSB is faster.pa As far as I know, none of the technical documentation from IBM takes the trouble to mention this. I only found out when a peripheral made by the company I work for which was optimized for the XT using DMA failed miserably to run on a true blue AT but did on some clones which had different DMA arrangements. We finally ended up using dual-ported memory because some I/O circuits are very slow on some machines. Truett Smith, Sunnyvale, CA UUCP: truett@cup.portal.com