阅读:1719回复:5
CPCI和DMA带宽
自己做的CPCI用户卡,作如下测试:
用户卡上的DPS分别在计算机SDRAM和DSP的SDRAM中开BUFFER,DSP用DMA的方式分别向计算机RAM写和读数据,最后得出的速率有很大的差异,CPCI->DSP.RAM 92M左右,DSP.RAM->CPCI 只有15M左右! 有没有高手能解释一下问题出在那里?哪些是主要影响这个DMA速率的因素? [编辑 - 8/21/03 by vision] |
|
沙发#
发布于:2003-08-21 17:06
pci总线的busmster读相对于busmaster写的性能差一大截,这是pci2.2协议上说的很清楚的,原因是内存读操作需要先提交读请求,pci桥先发stop信号把你的当前操作停止掉,pci桥再向内存控制器提出读请求,等待内存控制器返回数据,再通过卡的busmster读传送数据。
不过你的卡相差的太多了,一般我们 执行busmster读的性能在60m字节/秒左右,影响这个性能的因素很多,你的卡的pci控制器的内部fifo大吗?fifo的大小对性能影响 很显著。pci控制器支持快速背对背传输吗,这可以提高性能。 pci控制器支持lock锁定吗,另外你的外部接口逻辑的速度怎么样,评估一下,我估计是你的外部接口的逻辑速度慢了,造成数据量上不去 |
|
板凳#
发布于:2003-08-21 18:08
十分感谢斑竹的回答。小弟还是不是很明白。你说的外部逻辑速度我不知道指的是什么,我的连接很简单,自己的dsp带有pci接口,通过pci_bridge直接连过来,92M的pci->dsp速度也不算很慢了,如果是逻辑问题,是否应该是read,write都慢?
这方面我还是新手,您回答中的pci busmaster指的是系统板上的芯片组吗?是这样:我的dsp做dma的master,做读写操作,我的dsp没有lock管脚,应该是不支持lock锁定的。 卡pci控制器您指的是什么? |
|
地板#
发布于:2003-08-21 18:53
问题解决了,谢谢
|
|
地下室#
发布于:2003-08-21 21:56
是否也能够把解决的方法贴上来,给大家共享呀!
|
|
5楼#
发布于:2003-08-22 10:01
说出来实在是太惭愧,而且肯定不少人晕倒!是我同事给我的测试程序弄错了!!!
但是我的感觉是这样的:这个速度,如果自己的pci连接没有错误的话,主要取决于主班的芯片组的处理和速度,我换过几个cpci的系统板,性能好的比差的相差了很多,有的是105/92,有的只有???/45我觉得主要还是北桥的处理速度。 十分感谢各位的回复,特别是斑竹,看了你的回答让我明白了不少问题,而且也开始换个思路找原因了。 |
|