现在一个课题用dsp通过cpld和IDE硬盘连接。用PIO方式已经可以在硬盘实现FAT32文件系统,但是发现用PIO方式对硬盘操作的速度很慢,不能满足系统要求,找了一些资料,好像用DMA方式,速度要比PIO方式快,但是看了些资料后,还是有些不太明白的
用PIO方式对硬盘操作时,要写往硬盘或者从硬盘读的地址是通过硬盘的扇区、柱面、磁道寄存器来控制的,数据交换是通过数据寄存器来实现交换的,看ATA标准上说,用DMA方式传输数据的话,就不能用数据寄存器传输数据了,而是将数据放到data port上,但是标准上说这个data port是没有地址的。
我就奇怪了,data port没有地址,那么如果通过DMA将数据写到硬盘上的话,DMA传输的目的地址是什么呢?
有做过这方面的工作的大侠,提供点帮助!!! |