阅读:1336回复:5
PCI DMA传输的疑问
请问:PCI DMA传输方式有两种:BLOCK模式和SCRATTER/GATHER模式
如果采用BLOCK模式,那么一次猝发传送是否就是要产生一次DMA请求,也就是说,有多少次猝发传送就要产生多少次DMA请求,还可以说,一次猝发传送就是一次DMA的执行; 如果采用SCRATTER/GATHER模式,只需要产生一次DMA请求,等于说是一次DMA以多次的猝发得到了实现。 我的理解是否有误,希望大家可以指点一下。谢谢 |
|
沙发#
发布于:2004-07-26 15:34
I hope someone can provide me some help ,thank u
|
|
板凳#
发布于:2004-07-26 21:45
block DMA就是一次传完一段连续内存的数据。
SCRATTER/GATHER DMA 是分成多次传送多个块,这些内存块是链式的,所以每一块传完就能根据链表找到下一个块~~ 不知道你的 “猝发传送”是什么意思~ |
|
|
地板#
发布于:2004-07-27 09:47
很感谢myswin先生的帮助,我的关于PCI的问题总是您热情地响应。
我希望我们可以多多交流。我说的“猝发传送”就是指“burst”,通过一次burst可以发送若干个双字(双字的数量可以在延时寄存器中定义),一次burst之后,该器件会释放对PCI总线的占用,等待PCI仲裁器的再一次许可,PCI总线的数据传送方式为burst传送,是否也可以说是DMA传送,就是说在PCI总线中,burst和DMA是两个同等的概念,即一次DMA就是一次burst,内存中的一个数据块是“连续”传送的,但“连续”只是逻辑上的连续,并不是时间上的连续,一个数据块还是得通过多次的burst传送才能够传输完成,也就是必须通过多次的DMA才能传输完。 请教,对于我所理解的,是否存在问题。谢谢 |
|
地下室#
发布于:2004-07-27 22:46
我觉得burst和DMA不是一回事吧~~DMA的时候可以用Burst也可以不用。
|
|
|
5楼#
发布于:2004-07-28 14:03
请问,如果不采用Burst模式发送数据,那么在采用DMA方式时使用何种数据传送方式?
就我所了解,PCI协议的开始就讲的很清楚:PCI协议的数据采用burst方式--“猝发传送”,即一次传送若干个DW,然后释放总线,等待PCI仲裁器的裁决,就是说无论是否采用DMA方式,数据都是采取猝发传送的方式。不知道大家是怎么看这个问题的。谢谢 |
|