Solved

Query about DMA

Posted on 1998-09-10
4
210 Views
Last Modified: 2010-04-27
In theory , the processor only has to pass the base address of the bytes to move, the number
of bytes to move and the base address of the destination to the DMA controller, and it will
take care of the actual transfer while the processor does something else. However, Winn L.
Rosch writes in his excellent "Hardware Bible", that in practice the processor must not only
set up the transfer but also oversee it. Is this true? If so, what does it mean:
-the processor waites around?
-it double-checks to see whether the transfer is working properly?
-it waits for the end of the transfer?
-it looks out for error signals?

And if it does wait around, is it a software or hardware constraint (i.e does the program tell
the processor to wait before the end of the transfer or does the DMA controller/bus
controller/processor or other hardware device cause this?)

I would be very glad if you could help me resolve this small problem. Thanks
 
0
Comment
Question by:nerd_emperor
  • 2
  • 2
4 Comments
 
LVL 12

Accepted Solution

by:
mark2150 earned 100 total points
ID: 1124782
Normally the program has to wait around for the DMA controller to finish because it needs the data that the DMA is delivering before it can continue processing. This is why they developed the concept of prefetch. You set up the DMA and get it going well ahead of when you actually need the data so that by the time that you get around to chewing on it the data is already there.

The DMA chip does it's thing without supervision. It'll haul down on an IRQ when it's finished.

Typically you use this when you're writing low level device drivers for talking to block devices like disk drives. If you have a code module doing a sequential read then you have a good chance that the next block will be required. DMA properly configured can speed up processing quite a bit in this context. In transactional processing the gains aren't normally worth the code overhead as long sequential reads are writes are much less common.

M

0
 

Author Comment

by:nerd_emperor
ID: 1124783
Thanks very much!!!
0
 

Author Comment

by:nerd_emperor
ID: 1124784
Understood, but why does he choose the word "oversee". As far as my knowledge of english goes, that implies some sort of supervisory function. The answer you gave would be more of a "hanging about" or "waiting".
0
 
LVL 12

Expert Comment

by:mark2150
ID: 1124785
Dunno why he'd say "oversee". Maybe he meant in the larger context of setting it up for the next block request.
0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Windows 10, Flashing a BIOS 12 83
2v or 4v 4 57
Motherboard Replacement for HP LAPTOP 11 59
Multiple times a day Computer loses internet connection 17 50
Does your iMac really need a hardware upgrade? Will upgrading RAM speed-up your computer? If yes, then how can you proceed? Upgrading RAM in your iMac is not as simple as it may seem. This article will help you in getting and installing right RA…
I use more than 1 computer in my office for various reasons. Multiple keyboards and mice take up more than just extra space, they make working a little more complicated. Using one mouse and keyboard for all of my computers makes life easier. This co…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now