[comp.sys.mac] Mac DMA

howarth@mandrill.CWRU.Edu (David J. Howarth) (02/19/88)

DMA on the Mac, if done correctly, could actually be very advantageous.
The problem with having the CPU handle all the block memory transfers
is that it has to fetch instructions, read from memory/device, write
to memory/device and handle looping. 

  move (An)+,(An)+  takes 9 clock cycles best case on the Mac II
                         12 clock cycles worst case
  DBcc Dn,<label>  takes 3 clock cycles best case, count not expired
                         11 clock cycles worst
    
  So the 68020 needs from 12-23 cycles per 32 bit word for block 
  memory moves.  When it is driving the SCSI chip, it can move
  only a byte at a time, which means that it would take 4 one byte
  transfers to move 32 bits, or 48-92 cycles per 32 bit word when
  doing SCSI transfers.
  A good DMA controller, on the other hand, can pump data into 
  memory at 4 clock cycles per 32 bit word (after setup) if designed
  correctly.  Even if the processor can not access RAM while the DMA
  controller is, the performance difference is still substantial.
  These times were acquired from the 68020 user's manual from
  Motorola and assume a 1 clock cycle wait state which the
  Mac II uses.
  One thing to keep in mind, though, is that even a factor of
  10 increase in performance at this low level will NOT result
  in a user perceivable speedup of 10.  It will be faster from
  the user's standpoint, but by how much is not easily quantified.

           Give me DMA or give me death :-) :-)
-- 
usenet: {decvax, cbosgd, sun}!mandrill!howarth    David J. Howarth
csnet:  howarth@mandrill.CWRU.edu
arpa:   howarth@mandrill.CWRU.edu 

gnu@hoptoad.uucp (John Gilmore) (02/27/88)

howarth@mandrill.CWRU.Edu (David J. Howarth) wrote:
> DMA on the Mac, if done correctly, could actually be very advantageous.
>   One thing to keep in mind, though, is that even a factor of
>   10 increase in performance at this low level will NOT result
>   in a user perceivable speedup of 10.  It will be faster from
>   the user's standpoint, but by how much is not easily quantified.

A friend has been doing some performance work on A/UX; it turns out
that the main problem is rotational latency and seek time -- as usual
with disks.  The contribution of software "DMA" seems to not be
significant.  Put a scope on the SCSI bus and watch where it spends its
time -- on a fast disk, maybe 18 ms waiting for the disk to turn and 2
ms moving data over the SCSI bus.  If you sped up the 2ms to .2ms,
you'd wait 18 ms instead of 20 -- a bit 10% (not 10x) speedup.

Since A/UX runs the ancient System V file system, it has to seek all
over to read a file, and as James Woods pointed out, this is the major
cause for the slow A/UX disk timings.

All I know is that even if they speed up the file system, 14-char
filenames are a major pain in the butt after spending 5 years on Suns.
Let's hope the ATT/Sun merge fixes this once and for all.
-- 
{pyramid,ptsfa,amdahl,sun,ihnp4}!hoptoad!gnu			  gnu@toad.com
		"Watch me change my world..." -- Liquid Theatre