Hello. I read in an article that DMA transfers are slower than the ordinary polling (it's called that, isn't it? you know... manually getting the data by reading the port in a loop) of data from drives. Taken that, wouldn't polling be recommended when reading floppies? The FDC is quite slow even without DMA...
To the point... If I would use polling, would the data be sent through the Data Register (3F5h)? If so, would the data be transmitted after the result bytes have been sent? It seems illogical to have the data transmitted before but I thought that I might ask...
FDC polling...
Re:FDC polling...
Well, I do not know about the speed consideration however by very very simple thinking you can say that using dma has advantages over polling because it is simply overused by modern oses, right? For now I can just say that you can unload heavy interrupt load from cpu by using dma instead of polling. So if you are right about speed of polling then maybe you will gain some time from transferring data however you will lose more of it while you deal with i/o.
For the point, I dont know about polling but if you use dma, then you just wait for interrupt from fd. Then you read result phase, thats all. If you are implementing your fdd, I strongly advice you to read intel 82077 floppy controller documentation for help, I made use of it a lot and my fdd seems to work... ;D good luck
For the point, I dont know about polling but if you use dma, then you just wait for interrupt from fd. Then you read result phase, thats all. If you are implementing your fdd, I strongly advice you to read intel 82077 floppy controller documentation for help, I made use of it a lot and my fdd seems to work... ;D good luck
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:FDC polling...
ISA DMA is indeed slower than polling to access fast devices such as HDD, and that's why people have designed UltraDMA.
What you must know is that polling will lock more and more CPU time with your CPU speed increases (polling a FDC with a 386 requires only a few cycles per byte, on a P IV, you could possibly perform a screenwide memcopy.
So if your device can use DMA, on a multitasking system, you should use the DMA (for floppy, i don't even know if you have the choice, nor for sound blaster cards . IDE drives should use either polling or Ultra DMA if available.
What you must know is that polling will lock more and more CPU time with your CPU speed increases (polling a FDC with a 386 requires only a few cycles per byte, on a P IV, you could possibly perform a screenwide memcopy.
So if your device can use DMA, on a multitasking system, you should use the DMA (for floppy, i don't even know if you have the choice, nor for sound blaster cards . IDE drives should use either polling or Ultra DMA if available.