阅读:1976回复:9
问:pci9054的dma速率测试方法
我用的是pci9054的rdk板,驱动做好后,老板要求测试读写速度。
我在应用层作了测试,测试结果不是很满意,只有500mbps 我是用了s/g dma 方式,burst mode; 我觉的在应用层不可能测到接近理论的值(写1G,读400M)。 请问在驱动中怎么测的一侧dma的时间? 我用了kequerytickcount()发现dma前后其返回的值不变,其他的有关时间的函数我也用了一下发现前后的时间也不变!! 请问谁有一个好的测试方法!?? |
|
沙发#
发布于:2003-01-23 09:42
有谁能告诉我!~~`??
|
|
板凳#
发布于:2003-01-23 16:12
你的问题我很抱歉我不会。
我准备用dma方式, 在9054的eeprom里marbr寄存器里设置为:0101 000c(rdk的内容)。可是用windriver没有生成有关dma的函数,请帮个忙吧。 我怎么将他设成dma方式呢? |
|
|
地板#
发布于:2003-01-23 16:13
另外你可以问一问\"蒋 松涛\" <jiangson7792@yahoo.com.cn>,他能做到108Mbyte/s。
缓冲比rdk也大一些。 |
|
|
地下室#
发布于:2003-01-23 17:32
这么夸张?? 系统还做不做别的行为了呀? |
|
|
5楼#
发布于:2003-01-23 21:33
呵呵 |
|
6楼#
发布于:2003-02-21 12:03
想比较精确地测量,实际上可以通过测试相关硬件信号的时序实现,比如测试DMA的响应信号和DMA结束信号等。至于9054的DMA速度,在应用时和用户板的存储容量有比较大的关系(即每次传输的数据量)。我曾经和PLX公司的工程师讨论过,据说在8MB数据传输量的状态下,CPU通过PCI总线连续读取数据的速度达到128MB/S。
|
|
7楼#
发布于:2003-02-25 16:57
想比较精确地测量,实际上可以通过测试相关硬件信号的时序实现,比如测试DMA的响应信号和DMA结束信号等。至于9054的DMA速度,在应用时和用户板的存储容量有比较大的关系(即每次传输的数据量)。我曾经和PLX公司的工程师讨论过,据说在8MB数据传输量的状态下,CPU通过PCI总线连续读取数据的速度达到128MB/S。 不会吧, 我记得intel的北桥最大也就支持100MB/s, |
|
8楼#
发布于:2003-02-28 11:18
系统测试时间的内核例程精度不足以测试快速完成的“事务”,比如,有的系统的时间精度通过KeQueryTickCount()得到的精度在15毫秒左右,那么如果你的时间耗费小于这个值,往往“事务”发生前后返回的就是同一个TICK值。硬件的测试方法比较准但是不方便。软件的解决方法之一是将传输的数据量加大,或者不断循环,是“事务”耗时达到100毫秒以上。
|
|
|
9楼#
发布于:2003-07-22 17:14
[quote] 想比较精确地测量,实际上可以通过测试相关硬件信号的时序实现,比如测试DMA的响应信号和DMA结束信号等。至于9054的DMA速度,在应用时和用户板的存储容量有比较大的关系(即每次传输的数据量)。我曾经和PLX公司的工程师讨论过,据说在8MB数据传输量的状态下,CPU通过PCI总线连续读取数据的速度达到128MB/S。 不会吧, 我记得intel的北桥最大也就支持100MB/s, [/quote] 60x总线的最高数据传输率为400MB/s. |
|
|