Page 1 of 1

Hard Drives Question

Posted: Fri Sep 28, 2001 11:00 pm
by Stefan
I don't whant to use int 13h extensions to get the correct information about drives larger than 8GB.
Can I access correct information with ports? How?
One more question: Does DMA accelerate the communication between hard drives and applications (kernel)?
Thank you!

RE:Hard Drives Question

Posted: Fri Sep 28, 2001 11:00 pm
by j.weeks
>On 2001-09-29 16:37:15, Stefan wrote:
>I don't whant to use int 13h extensions to get
the correct information about drives larger than 8GB.

Understandable :)

>Can I access correct information with ports? How?

Probably :) How do you think the BIOS does it? :)
There's, no doubt, ports defined in the ATA
standard for sectors, heads and cylinders counts...
I'm just not sure what they are off hand.

>One more question: Does DMA accelerate the communication between hard drives and applications (kernel)?

DMA allows you do deligate your Hardware to CPU transfers to another
chip, and they'll be taken care of in the background, while
the CPU continues to execute instructions. In this
sense, yeah, it accelerates transfers... you can
be doing something else, while still reading
from the HD.

However, DMA is, at max, 16bit (unless there's 32
bit extensions now-a-days... but I haven't heard of
any) and can't cross a 64k segment boundary. Gotta
keep those in mind at all times.

j.weeks

RE:Hard Drives Question

Posted: Fri Sep 28, 2001 11:00 pm
by Guest
>On 2001-09-29 19:57:08, j.weeks wrote:
>However, DMA is, at max, 16bit (unless there's 32
>bit extensions now-a-days... but I haven't heard of
>any) and can't cross a 64k segment boundary.

Those are restrictions of ISA (16-bit) DMA.
Hard drives use PCI bus-master DMA (32-bit),
which is much better.