Article View: comp.arch
Article #21688Re: DMA on RISC-based systems
From: Eric Green
Date: Sat, 10 Jun 1989 00:45
Date: Sat, 10 Jun 1989 00:45
46 lines
3007 bytes
3007 bytes
in article <188@dg.dg.com>, rec@dg.dg.com (Robert Cousins) says:
> In article <620@biar.UUCP> jhood@biar.UUCP (John Hood) writes:
>>>Where does the DMA pay off given that all three examples have approximately
>>>identical throughput?
>>My other thought is that regardless of the CPU cost, programmed I/O is
>>often acceptable on single-user machines anyway. The situation often
> I strongly disagree here. In the modern Unix world, multitasking is
> of critical importance
> of jobs up to and including gettys for each user's terminal. Programmed
> I/O is the enemy of multitasking since it effectively keeps the CPU from
> servicing tasks for a potentially long interval killing the ability
> for another task to service a request.
I have a non-DMA hard disk controller on the multitasking machine that
I use (so multitasking that each filesystem and device driver runs as
seperate tasks, albeit high-priority tasks). I'll agree that
programmed I/O sucks the wind out of any other task (of lower
priority) that is running, but it's not quite as bad as you put it.
The CPU can fetch data from buffer on the disk controller faster than
it can do anything with that data, so most things, e.g. compiles,
consist of long moments of Deep Thought by the process, punctuated by
occasional disk hits. This is hardly the "disaster" that you claim,
although I do wish I had been able to get a DMA controller (I couldn't
trust one with the bus expander I'm using, alas).
And for the person who thought that the buffer on the disk controller
would have to be double-ported -- nope. Just bus oriented, with access
from either the disk side or the bus. I'm no hardware wiz (beware of
programmers with slaughtering irons!), but I can think of a couple of
ways to do it with standard TTL. E.g., use '273s as the "data port",
and loadable counters to address the RAM buffer sequentually (without
having to do math on it for each additional byte).
> The truth is that all alternatives need to be considered. Sometimes
> the answers will fool you.
Yep. And the "answer", in this case, is that while programmed I/O is
certainly nothing to be proud of (at least with a slow processor like
my 8mhz 68000), it's not the big disaster to multitasking that you
might expect.
--
Eric Lee Green P.O. Box 92191, Lafayette, LA 70509
..!{ames,decwrl,mit-eddie,osu-cis}!killer!elg (318)989-9849
"I have seen or heard 'designer of the 68000' attached to so many names that
I can only guess that the 68000 was produced by Cecil B. DeMille." -- Bcase
Technical Details
Message-ID:
<8328@killer.DALLAS.TX.US>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!decwrl!sun-barr!texsun!texbell!killer!elgReferences:
<188@dg.dg.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!decwrl!sun-barr!texsun!texbell!killer!elg From: elg@killer.DALLAS.TX.US (Eric Green) Newsgroups: comp.arch Subject: Re: DMA on RISC-based systems Message-ID: <8328@killer.DALLAS.TX.US> Date: 10 Jun 89 00:45:16 GMT References: <188@dg.dg.com> Organization: The Unix(R) Connection, Dallas, Texas Lines: 46