阅读:1192回复:4
PCI扩展卡开发问题
我们实验室开发了基于PCI总线的卫星数据回放系统.该系统将计算机内存中的数据通过PCI总线以链式(Chaining Mode)DMA传输至PCI扩展卡上的乒乓缓存,然后按一定格式回放输出.
PCI总线接口采用PLX 9080芯片.DMA采用9080的0通道进行,每次传输数据量为256KByte.该系统设计速率指标为35MByte/s,也就是说每7.5ms将触发一次DMA操作.卡上控制逻辑通过置低9080的DREQ0#(pin 29)申请9080的DMA传输,当传输完成以后通过USERO(pin 27)来置高DREQ0#,结束申请. 我们在调试时进行的两组实验中发现如下现象(进行两组实验时,仅PCI槽不一样,其他条件如驱动程序,应用程序等均一样): 1.当扩展卡插在32bit,33MHz,5V的PCI Slot. 从示波器观察到一次DMA占用时间(DREQ0#处于低电平的时间)约为2.9ms,比7.5ms小的多.这时整个系统工作正常,实验结果显示即便在80Mbyte/s的回放速率下,该系统仍然工作正常. 2.当扩展卡插在64bit,33MHz,3.3V的PCI Slot或者64bit,33MHz,3.3V 的PCI-X Slot. 数据回放速率最高只能达到35MByte/s,再高则会出现一块卡上缓冲区内数据已经回放完而另一块缓冲区与计算机内存的DMA传输尚未结束而导致错误的现象.即便在35MByte/s的速率下,系统也不稳定,当对控制界面软件稍加干扰(比如打开其他软件),也会出现前述错误.从示波器观察到一次DMA占用时间(DREQ0#处于低电平的时间)约为6.3ms,比较接近7.5ms,时间裕量远不如情况1. 我们对上述两组实验中的PCI总线上的关键控制信号的波形进行截图,贴在附件word文档中.在每一幅波形截图中,上半部分的黄色波形是实验1条件下观测到,下半部分蓝色波形是实验2条件下相同信号的波形.每个jpg文件记录信号描述如下: 1) REQ#_L.jpg: 较长时间范围内的REQ#信号波形.其中两条蓝色的垂 直光标线标识了两次DMA的间隔7.5ms. 2) REQ#_S.jpg: 较短时间范围内的REQ#信号波形.对于蓝色的波形, 我们很想知道9080为什么在短时间内产生 连续5个短脉冲.问题是否出在这里? 3) GNT#.jpg: 较短时间范围内的GNT#信号波形. 4) FRAME#_S.jpg: 较短时间范围内的FRAME#信号波形.对于蓝色的波 形,我们很想知道9080为什么在短时间内 产生连续4个短脉冲.问题是否出在这里? 另外,是否我们对32bit和64bit PCI的兼容性设计有所欠缺?还是别的什么可能原因会造成试验中观察到的现象?因为最后这套系统必须在64bit的PCI-X槽里运行,所以目前的这个问题急待解决.而且因为时间关系,我们不可能更换更新的64bit接口芯片,所以我们试图确定是否对9080的操作上存在问题. 十分感谢拨冗相助,期待着你们的答复.谢谢. |
|
|
沙发#
发布于:2004-06-04 15:18
首先需要说明的是,我是个软件开发人员,对硬件不懂
我的疑问是? 你在什么平台你的卡,如果只是通过示波器来观察(没有和OS)那么我没有什么建议;如果你使用了OS来进行数据传输同时出现的问题,我想确定你的OS是否支持真正的64位?如果不,这样性能下降应该是OS引起的。你可选择一个64位OS来测试 |
|
|
板凳#
发布于:2004-06-04 15:18
你的哪个图形不能下载
|
|
|
地板#
发布于:2004-06-04 16:12
我用的是windows 2000 server系统.我的理解:64bit的PCI或PCI-X并不需要64bit的OS来支持,它们只是硬件上的数据宽度而已,与CPU内部寄存器宽度没有直接关系.
现在采用的服务器主板是SuperMicrode的X5DP8-G2,芯片组为Intel E7501,有没有可能芯片组认为插在PCI-X槽里的PCI设备属于慢速设备,然后插入了等待周期,从而降低了PCI设备的吞吐率? 至于附件不能下载的问题,我试了一下,直接在浏览器里面点击附件链接确实不能下载,但用FlashGet之类的下载工具就可以下载了.我在这里贴出其中的一张图片FRAME#_S.jpg |
|
地下室#
发布于:2004-06-13 18:35
问题搞定了吗?
|
|
|