阅读:4930回复:11
PCI9054芯片的读写速度求教!为什么突发读速度上不去?
本人设计的一个pci插卡,使用pci954作为接口芯片,工作在C模式下。目前已经能进行基本的读写操作,使用NI-Visa作为第三方驱动。
但是目前遇到的问题是读写速度不理想。 通过对寄存器的配置。系统通过burst方式来提高读取速度。但是通过测试,通过NI-VISA驱动与PLXMON程序测试,得到的结果都是读取PCI 4MB/S,写入PCI40M/S,对bar2的memory方式。 而且奇怪的是,写入是lhold是有循环的长短间隔,通过时序可以看出实现了burst方式的写入。但是读取的时候,却始终是单次读取的时序,两次读取之间间隔了很久,相当于pci9054给我fpga的时序就很慢,或者根本就没给出burst方式的读取请求。 在9054的配置中,允许了预读取,但是却看不到有预读取的操作。 不知道大家有没有测试过这个芯片能实现的读取速度。 其实我最奇怪的是为什么芯片的读写时序不对称,速度不平衡呢? 目前我就分析不出来是我芯片配置的问题,还是硬件设计上的问题,请大家给我点指点或者讨论一下。 需要什么信息我可以提供。 被这个速度问题困扰好久了。 我自己写了个程序在线修改9054的本地寄存器配置,不知道直接这样修改,是否是直接生效呀?(写bar0) 还有如果要使用dma方式,ni-visa没有提供直接的dma操作,是不是我还要自己修改dma的配置,然后上位机进行一次读或写,然后才能触发刚才设置好的一次dma操作? 现在读取速度上不去,都急得我要尝试dma操作的,但是我觉得如果读取能达到和写入一样的40MB/S,我就可以接受了,没必要用dma了。 |
|
沙发#
发布于:2009-09-25 10:24
应用层都是32位操作吗?无论本地总线宽度是多少位,驱动程序都应使用32位操作,以达到最高效率的总线利用率。
|
|
板凳#
发布于:2009-10-12 09:04
不知道你的问题解决没有 据我现在了解 x86的cpu 不支持 突发读操作,所以只能控制9054 作为master ,用dma完成。
想深入交流 我邮箱: xcy31349@163.com |
|
地板#
发布于:2009-10-13 21:54
404042216,我现在也在写驱动了,有意向的朋友交流一下啊
|
|
地下室#
发布于:2009-10-26 17:32
我也是遇到同样的问题
我用的是9052 写速度测出来是40M 但读速度最高才4M 硬件跟配置应该是没有问题 不知道大伙测出来9052的读速度最大可以去到多少? 问了PLX的技术支持 说 读是比写慢一些 ,但不会差这么远的 ... |
|
5楼#
发布于:2009-12-08 21:28
当然用DMA快啦,9054支持Block DMA和Scatter GatherDMA,为何不用
|
|
6楼#
发布于:2010-01-28 22:54
9054 的 BLOCK BURST DMA 非常快。 效率 60% 一般都能上 60MB/s Target 方式的读写一般只在 不大于10MB/s 的速度。
Target Write 要快些。 Read 就老慢老慢了。 |
|
7楼#
发布于:2010-05-04 14:06
楼主的读是单次读,写应该是non-burst 模式的
|
|
8楼#
发布于:2011-04-27 18:31
我写的FPGA部分只能读写8位的,不能做32位的读写,能给我一个32位读写的例程吗。谢谢
我的邮箱是:tian8325@sina.com.cn |
|
9楼#
发布于:2011-05-13 13:39
|
|
10楼#
发布于:2011-07-13 17:16
其实^Local总线的时序与是否DMA\什么方式的DMA真的没什么关系,要想速度快,必须将Local总线配置为Burst Forever模式,当然,这也需要Local侧设备的时序配合;关键点在于使能Burst模式和Bterm#;是的,Bterm#也要使能,否则一次Burst仅仅传4个周期,相信我,曾用逻辑分析仪抓过时序;PCI9054的传输能力绝对不止60MB/s;
|
|
11楼#
发布于:2011-07-20 17:01
9054的速度实际能到多少,无法概全
看设计了 |
|
|