Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesSmarter DMA


October 1995 / Reviews / Power Mac Gets PCI / Smarter DMA

By handling memory transfers for the CPU, a good direct memory access (DMA) system improves overall performance. Still, moving large blocks of data between memory and a device, or vice versa, requires multiple DMA transfers. Typically, each transfer ends in an interrupt to the CPU, which must then drop what it's doing to set up the next transfer. To manage its 14 DMA channels without this overhead, the 9500 employs a descriptor-based DMA engine.

Descriptors serve as a simple instruction set for implementing DMA transfers. Glue logic around the DMA controller executes the instruction set, which supports branching, looping, and error handling. Each descriptor is a four-long-word data block with 16- and 32-bit fields that include the command, requested data size, buffer address, a device-specific instruction, status, information, and the resulting amount of data moved. Not all commands use all fields. By chaining descriptors into a mini-program, descriptor-based DMA moves large data blocks without interrupting the CPU.

Taking advantage of descriptor-based DMA requires device-driver modification. The driver must parse each I/O request for size and location and then place in memory sufficient descriptors to handle the transfer. SCSI, Ethernet, sound, serial, and floppy subsystems use this capability to reduce CPU overhead in the 9500.


Chaining DMA Won't Hold it Back

illustration_link (2 Kbytes)

By chaining DMA descripto rs to describe and execute DMA transfers, the 9500 reduces CPU overhead.


Up to the Reviews section contentsGo to previous article: Power Mac Gets PCIGo to next article: Au Revoir, Mon AmiSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network