[comp.sys.mac.hardware] Mac "Accelerators" and "DMA"

ken@jose.uucp (Ken MacLeod) (11/16/89)

  I've just read yet another review on Mac accelerators, and how they've
"attached directly to the CPU, to bypass the 10MHz NuBus access to the
devices," and therefore disabling any use whatsoever of the original CPU.

  Hasn't it occurred to any accelerator developer that the Mac needs
a DMA controller, as well as a faster processor?  Don't their mice
drop dead any time the floppy turns on?  Don't they run Spinning Globe
in the background all the time :-)?  Don't their systems use the CPU
to read in stuff off the hard disk, like my Mac does?

  Why isn't there an accelerator that is _just_ a processor and memory
on a card, and passes I/O commands (at quickdraw, file manager, etc. levels)
on to the motherboard?  For bulk transfers, the motherboard can either
read/write directly into the card's memory instruction at a time, or the
card can include a simple memory-to-memory DMA that the motherboard CPU
sets up.  For control structures, two CPU RAM regions would be logically
mapped so that pointers could point to one from the other.  The M-to-M
DMA unit could also be used for reads/writes into video card RAM (if you
know how QuickDraw or PostScript handles rasterizing, you should drop
your jaw in awe of what that means, CPU handles start/end, DMA handles
between while CPU...).

  It seems to me that the CPU/NuBus technology is already there, and from
enough programming on the Mac it seems simple enough to copy the ROMs into
the card and patch in interfaces that send the relevant commands to the
motherboard, and let the ROMs on the motherboard take it from there.

  A second step, a little more difficult, is putting some structures on card
RAM, others in motherboard RAM, handled by the resource manager and placed
in the RAM closer to the routines that access them most, like offscreen
bitmap on the motherboard, but port/window structure in card RAM.

  With 030s or a PMMU for 020 machines, interlocking could be implemented
easily using the page permission mechanism, as well as mirroring some often
accessed common addresses in both RAMs using "write-through" to get it to
the other RAM.


  Comments?  Job offers? :-)

  -- Ken, ken@jose.UUCP, caeco!jose!ken@cs.utah.edu

chewy@apple.com (Paul Snively) (11/17/89)

In article <1989Nov15.214527.1212@jose.uucp> ken@jose.uucp (Ken MacLeod) 
writes:
>   Why isn't there an accelerator that is _just_ a processor and memory
> on a card, and passes I/O commands (at quickdraw, file manager, etc. 
levels)
> on to the motherboard?  For bulk transfers, the motherboard can either
> read/write directly into the card's memory instruction at a time, or the
> card can include a simple memory-to-memory DMA that the motherboard CPU
> sets up.  For control structures, two CPU RAM regions would be logically
> mapped so that pointers could point to one from the other.  The M-to-M
> DMA unit could also be used for reads/writes into video card RAM (if you
> know how QuickDraw or PostScript handles rasterizing, you should drop
> your jaw in awe of what that means, CPU handles start/end, DMA handles
> between while CPU...).
> 
>   It seems to me that the CPU/NuBus technology is already there, and from
> enough programming on the Mac it seems simple enough to copy the ROMs 
into
> the card and patch in interfaces that send the relevant commands to the
> motherboard, and let the ROMs on the motherboard take it from there.

Uh... I honestly don't believe you could possibly have looked at much of 
our ROM code and still be saying that with a straight face. :-)

I'm not the hardware guru here, though, so let me pass it on to them to 
comment on...

At least one DMA SCSI card has been done, but certainly nothing of the 
scope that you're suggesting.  It's a great idea, but I think it'd take 
pretty much a total rewrite of everything that we have.  Not that that'd a 
bad idea; it's just expensive.

__________________________________________________________________________
Just because I work for Apple Computer, Inc. doesn't mean that they 
believe what I believe or vice-versa.
__________________________________________________________________________
C++ -- The language in which only friends can access your private members.
__________________________________________________________________________