基于基于PCIe总线的多路复用总线的多路复用DMA高速传输系统的设计高速传输系统的设计
文章针对双处理器设备问的数据通信提出了基于PCIe非透明桥的高速传输系统的设计方法。该方法应用于视频
转码设备,实验结果表明当转码设备作为外设与PC主机进行通信时,采用多路虚拟DMA方法的数据传输总带宽
可以稳定的达到1100MB/s,为实现多路实时转码提供了前提保证。文中还重点介绍了虚拟DMA通道的实现、双
系统问通信模型的设计及传输系统性能优化分析。
0 引言
两个处理器系统的数据通信方式可以采用网络通信方式或者总线连接通信方式等。网络通信的带宽约为1Gbps~4Gbps即
128MB/s~512MB/s,在不同的工作条件下,网络带宽不同,网络信号存在不稳定性,这使得系统问建立的通信系统存在影响
传输速率的不可控因素。 PCI Express作为目前使用最流行的总线,广泛用于主机与外部设备间通信,16bit总线宽度的PCI
Express2.0速率达到16GB/s(双工),远远超过了网络通信速率且不需要配置网络环境。
本文设计的传输系统应至少提供8路传输通道供转码设备与主机进行通信,然而在以PCIe接口芯片设计传输系统时,芯片中有
限的DMA通道(一般为4路)难以满足转码设备多路实时转码的传输要求。因此,如何实现多路虚拟DMA通道、传输速率满足要
求且保证各通道传输速率均衡是软件设计的重点。在此之上,文中将进一步探讨如何降低传输系统对处理器系统CPU资源的
占用率。
1 系统模型设计及系统通信机制
1.1 系统模型设计
数据传输系统软件模型可分为3个层次,包括设备驱动层、系统应用层和用户接口层。系统结构如图1所示。
a.jpg
薛巨峰,副教授/硕士,主研领域:自动化控制技术和加工工程自动化技术。黄爱娟,硕士生,研究方向:计算机应用技术。
由图1可知传输系统由设备驱动模块、DMA管理模块、系统通信模块、客户端通信模块和客户端API组成。
设备驱动程序用于在处理器系统中识别PCIe接口芯片设备;DMA管理模块(只在主机端存在)用于管理和分配处理器系统需要进
行数据传输时对DMA通道的使用请求并完成数据传输功能;系统通信模块用于处理器系统间的消息传递;客户端通信模块负责响
应客户端与传输系统的链接请求和数据传输请求;客户端 API(Client Register)是提供给用户进行链接和传输请求的函数接口。
1.2 系统通信机制
在主从机端分别运行传输系统应用程序(Plx_Server)完成传输系统的建立,Plx_Server等待客户端调用Client Register进行链接
请求。当主从机端的Plx_Server都有可配对的客户端链接请求,则为可配对客户端建立1路虚拟DMA传输通道。客户端使用
Plx_Server为其分配的传输句柄(Client Socket)即可实现数据收发和断开传输链接。
2 系统硬件设计
开发PCIe接口可以采用FPGA设计PCIe接口,但由于PCIe总线规范较复杂,这种开发方法难度很大;而采用专用PCIe接口芯
片,可以免除繁琐的时序分析,缩短开发周期,降低开发成本。本系统选择后者,PCIe接口芯片选择为PLX公司开发的
PEX8619接口芯片。
PCIe桥连接方式有2种:透明桥(Transparent Bridge)和非透明桥(Non-Transparent Bridge)。总系统中存在两个独立的处理
器,此时使用透明桥方式不利于整个系统的配置与管理,可能出现PCIe总线地址的映射冲突,此外不能使用PCIe透明桥连接
两个PCIe Agent设备,如x86处理器。采用非透明桥可有效的解决这些问题,提高PCIe传输系统的可移植性。非透明桥不是
PCIe总线定义的标准桥片,但是这类桥片在连接两个处理器系统中得到了广泛的应用。
PEX8619支持NT桥功能,芯片在智能配置器模式下的软件模型如图2所示。