-
作为第三代总线和接口标准,PCIE (PCI Express) 的目的是取代作为第二代总线标准的PCI总线,并在物理结构、带宽和服务质量3个方面做出了较大的改进和革新。与PCI总线相比,PCIE总线具有以下特点[1-2]:1) 采用差分串行传输方式,一条PCIE通道 (PCIE×1) 由两对差分信号线来实现发送和接收;2) 具有很好的灵活性,可以根据实际需要配置成×1,×2,×4,×8,×16和×32通道模式;3) 采用点到点连接,提高数据传输率,保证设备的带宽;4) 以数据包的形式传输,保证数据传输的完整性和可靠性。
鉴于其优异的传输性能,围绕PCIE接口的设计方案不断被提出。文献[3]提出了一种高吞吐量和低延时的PCIE接口设计方案,用于安全云存储的场景中,不过方案是基于PCIE1.1规范设计的,不符合当前PCIE2.0或PCIE3.0规范的趋势;文献[4]提出了一种应用于吉字节数据传输的DMA-PCIE架构方案,虽然数据传输速率较高,但方案描述简单,无法表征设计的完整性,参考性较差;文献[5]在文献[4]的方案上进行了扩充说明,给出了多种模式下的设计思路和测试结果,但可扩展性和移植行较差,不便二次开发。鉴于现有方案的这些问题,本文以Xilinx公司Zynq-7000系列全可编程片上系统为设计平台,基于PCIE2.0的IP核,利用其ARM+FPGA的新型架构,设计实现PCIE高速数据传输接口。
-
测试环境及条件:1) 装载Ubuntu操作系统的台式机;2) 功能完备的提供PCIE接口的硬件板卡,并插装到台式机主板的PCIE插槽上;3) 嵌入式Linux内核、文件操作系统、设备树等文件完备,确保硬件板卡上的Zynq芯片能正常启动;4) 驱动程序及应用程序正确编译和安装。
测试步骤及测试项目:1) 加载驱动;2) 执行测试程序,分别测试单通道和多通道 (逻辑) 时的数据传输速率。
测试结果比较对象:理论上PCIE2.0(×1) 支持5.0 GTps/Lane的传输速度,但由于采用8b/10b编码方式以及数据包头和控制数据包的占用,有效数据速率会低于理论值的80%,即不会达到4 Gbps/Lane (512 MBps/Lane)。
如图 3所示,测试数据流向的数据传输速度,得到的一些典型值如表 1所示。
表 1 整体方案数据传输速度测试结果
测试项 命令帧数 (数据块数量) 测试时数据长度 单逻辑通道/MB/s 四逻辑通道/MB/s 逻辑通道0/MB/s 逻辑通道1/MB/s 硬件板卡:数据读写循环1 000次计算一次 1
7
64
128
200
220
2551.5 KB即1 536 Byte 86
275
417
430
431
419
427100
200
259
274
281
282
28352
158
185
218
224
235
23352
159
185
217
225
225
223表 1中所说的通道,指的是应用程序中定义的逻辑通道,用于不同应用模块与PCIE物理接口的通信。逻辑通道0和1即是四个逻辑通道中的两个。测试时,数据读写循环1 000次计算一次传输速度,以保证数据的可靠性;不断增加每次写入接口的数据块的数量,观测其对传输速度的影响;对数据进行分包处理,以每包1.5 K,即1 536 Byte的大小传输数据。由测试结果可以看出,在进行大包数据的读写时,传输速度不断提高,逐渐靠近512 MBps,可见提高单次传输数据量的大小,可有效提高接口通路的利用率。在采用PCIE×1物理通道情况下,单次传输的数据量较小时,单逻辑通道和四逻辑通道的传输速率各有高低。但在传输的数据量较大时,单逻辑通道速率明显高于多逻辑通道 (多线程和多进程) 速率,原因在于省去了多逻辑通道传输时的调度和控制过程。
由文献[4-5]给出的公式可知,接口通路的数据吞吐量,在协议开销、有效载荷等基本一致的情况下,与物理通道的数量成正比,因此在相同工作模式下,比较×1物理通道的传输速度即能得到多物理通道传输性能的优劣。
就典型值 (PCIE×1物理通道和单逻辑通道时)431 MB/s (约3.36 Gbps) 而言,相较于文献[11]和文献[13-14]中给出的测试结果,提高近20%。图 6为4个设计方案的接口通路传输速度测试结果对比。
文献[11]给出了接口通路在4-Lane、读写数据包大小在8 KB时的传输速度,与该条件比较,本设计传输速度有25%以上的提升;文献[13]给出了传输系统的最高传输速率,在相同工作模式下对比本设计有18%左右的提升;与文献[14]给出的测试数据相比,本设计有21%左右的提升。同样,在多物理通道时,本设计依然有着较好的传输速度。
对于在应用时选择单逻辑通道还是多逻辑通道的问题,应依据实际需求做出判断,在传输速度和要求多模块同时工作两个因素中权衡。
Design and Implementation for High Speed Data Transfer Interface of PCI Express Based on Zynq Platform
-
摘要: 为有效利用PCIE接口的优异传输性能,便于外设与主机进行高速通信,该文基于Xilinx公司Zynq系列芯片,设计实现了多通道、高速度的PCIE接口。利用Zynq-7000系列芯片的FPGA+ARM架构,在PCIE2.0硬核的基础上设计了DMA硬核控制器、设备驱动和应用程序。经测试,在PCIE×1通道和单逻辑通道时,传输速度能达到3.36 Gbps,相比现有设计提升近20%。方案设计完备,具有较强扩展性,为设计基于PCIE接口的外接设备提供了重要参考,具有广阔应用前景。Abstract: In order to use the excellent transmission performance of peripheral component interconnect express (PCIE) interface to carry out high-speed communication between peripherals and the host effectively, a multi-channel and high-speed PCIE interface scheme is designed based on Zynq family chip of Xilinx. The DMA hardcore controller, device driver and application program are designed on the basis of PCI express 2.0 hardcore using the FPGA+ARM architecture of Zynq-7000 platform. Test results show that the transfer rate in our project almost can reach 3.3 Gbps in PCIE×1 lane and single logical channel, which increases about 20% compared with the traditional existing designs. Our scheme owns higher expansibility and wide application prospect, it is an important design reference for external equipment and PCIE interface.
-
Key words:
- ARM /
- DMA /
- FPGA /
- hardware design /
- PCI express
-
表 1 整体方案数据传输速度测试结果
测试项 命令帧数 (数据块数量) 测试时数据长度 单逻辑通道/MB/s 四逻辑通道/MB/s 逻辑通道0/MB/s 逻辑通道1/MB/s 硬件板卡:数据读写循环1 000次计算一次 1
7
64
128
200
220
2551.5 KB即1 536 Byte 86
275
417
430
431
419
427100
200
259
274
281
282
28352
158
185
218
224
235
23352
159
185
217
225
225
223 -
[1] PCI-SIG. PCI Express base specification revision 2.1[M]. Beaverton, USA: [s.n.], 2009. [2] 邹晨, 高云.基于FPGA的PCIe总线DMA传输的设计与实现[J].电光与控制, 2015, 7: 84-88. doi: 10.3969/j.issn.1671-637X.2015.01.019 ZOU Chen, GAO Yun. Design and implementation of DMA transmission with PCIe bus based on FPGA[J]. Electronics Optics & Control, 2015, 7: 84-88. doi: 10.3969/j.issn.1671-637X.2015.01.019 [3] CHEN Yong-zhen, WANG Yi, HA Ya-jun. sAES: a high thro-ughput and low latency secure cloud storage with pipelined DMA based PCIe interface[C]//2013 International Conference on Field-Programmable Technology (FPT). Kyoto, Japan: IEEE, 2013: 374-377. [4] ROTA L, CASELLE M, CHILINGARYAN S, et al. A new DMA PCIe architecture for gigabyte data transmission[C]//2014 19th IEEE NPSS Real Time Conference (RT). Nara, Japan: IEEE, 2014: 1-2. [5] ROTA L, CASELLE M, CHILINGARYAN S, et al. A PCIe DMA arc-hitecture for multi-gigabyte per second data transmission[J]. IEEE Transactions on Nuclear Science, 2015, 62(3): 972-976. doi: 10.1109/TNS.2015.2426877 [6] HAN Tai-Lin, CAI Hua, LIU Guang-wen, et al. The face detection and location system based on Zynq[C]//2014 11th International Conference on Fuzzy Systems and Knowledge Discovery (FSKD). Xiamen, China: IEEE, 2014: 835-839. [7] ROLAND D, LUKAS S. Towards evolvable syste-ms based on the Xilinx Zynq platform[C]//2013 IEEE International Conference on Evolvable Systems (ICES). Singapore: IEEE, 2013: 89-95. [8] JOAO S, VALERY S, IOULIIA S. Comparison of on-chip communications in Zynq-7000 all programmable systems-on-chip[J]. IEEE Embedded System Letters, 2015, 7(1): 31-34. doi: 10.1109/LES.2015.2399656 [9] SANTHOSH K R, OSCAR P, JAVIRE A M, et al. An energy efficient hybrid FPGA-GPU based embedded platform to accelerate face recognition applica-tion[C]//2015 IEEE COOL Chips XVIII. Yokohama, Japan: IEEE, 2015: 1-3. [10] 许峰.基于Virtex-6的PCI Express高速采集卡设计[J].现代电子技术, 2012, 16: 79-81, 85. doi: 10.3969/j.issn.1004-373X.2012.24.026 XU Feng. Design of PCI Express high-speed acquisition card base on virtex-6[J]. Modern Electronics Technique, 2012, 16: 79-81, 85. doi: 10.3969/j.issn.1004-373X.2012.24.026 [11] KAVIANIPOUR H, MUSCHTER S, BOHM C. High performance FPGA-based DMA interface for PCIe[J]. IEEE Transactions on Nuclear Science, 2014, 61(2): 745-749. doi: 10.1109/TNS.2014.2304691 [12] BOUGIOUKOU E, NTALLA A, PALLI A, et al. Prototyping and performance evaluation of a dynamically adaptable block device driver for PCIe-based SSDs[C]// 2014 25th IEEE International Symposium on Rapid System Prototyping (RSP 2014). New Delhi: IEEE, 2014: 51-57. [13] 高俊, 杨灿美, 杜学亮.基于PCIe总线的多路实时传输系统设计[J].电子技术应用, 2015, 2: 65-67, 71. http://www.cnki.com.cn/Article/CJFDTOTAL-DZJY201502031.htm GAO Jun, YANG Can-mei, DU Xue-liang. Design of multi-channel real-time transmission system based on PCIe bus[J]. Applica-tion of Electronic Technique, 2015, 2: 65-67, 71. http://www.cnki.com.cn/Article/CJFDTOTAL-DZJY201502031.htm [14] AN W, JIN X, DU X, et al. A flexible FPGA-to-FPGA communication system[C]//2016 18th International Conference on Advanced Communication Technology (ICACT2016). Pyeongchang: IEEE, 2016: 586-591.