IDE DMA sector numbering

1

I'm just playing around with the QEMU system emulator, and taking a look at the IDE disk emulation, specifically at the DMA disk accesses.

I'm a little confused as to how DMA requests are actually addressed.

For example, the first DMA request made by the OS is to sector zero.

Now on the physical disk, sector zero is the MBR, however on the logical disk, sector zero is the volume boot record.

So my question is this; when Windows, or any OS for that matter makes a DMA request to the disk, is it addressing a logical partition, or the physical disk?

I hope that makes sense!

Tony

Posted 2013-07-13T12:56:44.580

Reputation: 113

Answers

1

You're question is a little unclear, as I think you're misunderstanding what DMA is.

DMA isn't making requests to the disk, it's providing Direct Access to the Memory instead of going to the CPU first.

Since DMA is a hardware-level data transfer method, then as long as the drive, HDD controller, MB, driver and OS all support DMA transfers, the file-system on the drive doesn't matter.

More info:

Ƭᴇcʜιᴇ007

Posted 2013-07-13T12:56:44.580

Reputation: 103 763

Yes, reading it back now I can see how it's a bit unclear.

So I think I can infer from your answer that the controller will be performing DMA disk transfers based on the physical sector number of the drive?

Thanks – Tony – 2013-07-13T14:43:00.193

In general yes it'd have to be physical, because it's a hardware-level technology that doesn't care about the file-system itself. :) – Ƭᴇcʜιᴇ007 – 2013-07-13T14:48:24.733

Thanks for the info. I was a bit confused as I was seeing the first read to sector zero, then reads to sector 2 and 7, which are both empty, and as the MBR is only 512 bytes in size, I was a little confused as to what it was looking for. – Tony – 2013-07-13T14:53:02.700