edk设计PCIE的速度问题
时间:10-02
整理:3721RD
点击:
用edk的ip核设计设计了pcie工程,有几个问题想请教下各位,希望大家不吝指教!
1.我的理解是IPIF_BAR映射PC的主机地址,IPIF_BAR到DDR的传输就是一个PCIE传输过程(主机到板卡ddr),
所以DMA源地址设置为IPIF_BAR基地址,目标地址为DDR地址,不知道想法是否正确?
2.利用xps_timer测试传输效率,发现IPIF_BAR到DDR的dma传输速度只有20MByte/s,这也太低了,然后尝试将数据从DDR
传输到DDR,传输速度有100MByte/s,用chipscope测试了下,发现dma每传输16个DWORD之后就会休息很久(DDR到DDR休息
40个周期左右,IPIF_BAR到DDR休息超过100个周期),然后继续传输。每次传16个DWORD应该是burst_size设置为16的原因,
但是休息的时间比工作的时间都长,而且设置同样的情况下,两次传输休息的时间又不同,实在是有点不懂了。
希望有大大看到指教下啊!已经快崩溃了!谢谢!
补充内容 (2016-7-1 18:14):
ps:DDR到IPIF_BAR的DMA传输速度也能到达100MByte/s左右,但是反过来就只有20MByte/s,懵圈了!
1.我的理解是IPIF_BAR映射PC的主机地址,IPIF_BAR到DDR的传输就是一个PCIE传输过程(主机到板卡ddr),
所以DMA源地址设置为IPIF_BAR基地址,目标地址为DDR地址,不知道想法是否正确?
2.利用xps_timer测试传输效率,发现IPIF_BAR到DDR的dma传输速度只有20MByte/s,这也太低了,然后尝试将数据从DDR
传输到DDR,传输速度有100MByte/s,用chipscope测试了下,发现dma每传输16个DWORD之后就会休息很久(DDR到DDR休息
40个周期左右,IPIF_BAR到DDR休息超过100个周期),然后继续传输。每次传16个DWORD应该是burst_size设置为16的原因,
但是休息的时间比工作的时间都长,而且设置同样的情况下,两次传输休息的时间又不同,实在是有点不懂了。
希望有大大看到指教下啊!已经快崩溃了!谢谢!
补充内容 (2016-7-1 18:14):
ps:DDR到IPIF_BAR的DMA传输速度也能到达100MByte/s左右,但是反过来就只有20MByte/s,懵圈了!
已退回10积分