基于PCIe_DMA缓冲池的流量控制协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Telecom Power Technology
设计应用技术
PCIe DMA缓冲池的流量控制协议
黄双双,郝一太,罗伟杰
(中国航空工业集团公司西安航空计算技术研究所,陕西
随着航空电子的发展,机载计算机对通信性能提出了更高的要求。

PCIe
通信方式凭借高吞吐量、低时延及低中央处理器
广泛应用于嵌入式计算机通信。

在复杂网络拓扑的PCIe架构中,由于通信节点接收数据和发送数据的协议差异或中
间介质差异,导致入向流量和出向流量速率不匹配,造成数据缺失。

因此,文章设计了一种基于
的流量控制协议,以控制模块间的通信流量。

利用多级缓冲技术,在节点中配置环形缓冲池,可回收利用总线空间。

利用同步互斥技术为高速数据转发争取时间,避免了多节点设备转发数据出现滞后性和数据缺失问题。

PCIe;直接存储器存取(DMA);多级缓冲;同步互斥
Flow Control Protocol Based on PCIe DMA Buffer Pool
HUANG Shuangshuang, HAO Yitai, LUO Weijie
(Aeronautics Computing Technology Research Institute Xi
avionics, airborne computers
 2024年2月10日第41卷第3期
17 Telecom Power Technology
Feb. 10, 2024, Vol.41 No.3
黄双双,等:基于PCIe DMA 缓冲池的
流量控制协议
可回收利用总线空间。

最后,利用同步互斥技术,为高速数据转发争取时间,保证多节点PCIe 总线数据转发存储的实时性和完整性[7]。

在嵌入式场景中,部署基于PCIe DMA 缓冲池的流量控制协议时,开发人员需要在中央处理器(Central Processing Unit ,CPU )的设备空间中申请缓冲池,限制PCIe 节点的通信空间。

然后,在缓冲池中建立若干个缓冲区,将首位相连形成环形缓冲区,简化通信的使用与回收操作。

在节点通信过程中,利用同步互斥技术使环形缓冲区完成双阶段的PCIe 数据转发,主要涉及缓冲区的分配和释放。

缓冲区的分配用于将总线数据缓冲到指定缓冲区。

缓冲区的释放用于及时回收可利用的缓冲区。

2.1 缓冲池申请
PCIe EP 节点中的缓冲池用于存储外部非PCIe 数
据,RC 节点的缓冲池用于存储PCIe 总线数据。

基于PCIe DMA 缓冲池的流量控制协议架构如图2所示。

外部非PCIe 节点与PCIe EP 节点、PCIe EP 节点与PCIe RC 节点、PCIe RC 节点与电子盘之间均有通信关系。

3个节点通信时,PCIe EP 节点接收使用外部非PCIe 协议,发送使用PCIe 协议。

PCIe RC 节点接收和发送使用PCIe 协议,但在发送时,PCIe 协议之上有文件系统,造成PCIe EP 节点和PCIe RC 节点接收和发送速率不匹配。

因此,基于PCIe DMA 缓冲池的流量控制协议需要在PCIe EP 节点和PCIe RC 节点中使用缓冲策略,平衡PCIe EP 节点和PCIe RC 节点的收发速率,以达到数据完整且传输正确的目的。

在PCIe 主从设备初始化时,基于PCIe DMA 缓冲池的流量控制协议分别在PCIe 设备空间申请缓冲
环形缓冲池
缓冲区1
缓冲区2
缓冲区3
缓冲区4
环形缓冲区头指针
Step2:创建缓冲区Step3:分配缓冲区接收数据进程
发送数据进程
Step4:释放缓冲区缓冲区1
Step1:申请缓冲池
缓冲区1
步骤2
步骤3
步骤4
步骤1:图1 缓冲池使用步骤
PCIe EP节点1
外部非PCIe数据外部非PCIe数据
外部非PCIe数据PCIe EP节点M
PCIe RC 节点
PCIe EP节点2
...
...
1级缓冲2级缓冲N 级缓冲
...
1级缓冲2级缓冲N 级缓冲
...
1级缓冲2级缓冲N 级缓冲
...
1级缓冲2级缓冲R 级缓冲...
1级缓冲2级缓冲R 级缓冲...
1级缓冲2级缓冲R 级缓冲
...
PCIe电子盘
PCIe通道非PCIe通道
图2 基于PCIe DMA 缓冲池的流量控制协议架构
Telecom Power Technology
从设备对应一
PCIe主
),并配置不同
,从设备为
中设置环形缓
PCIe总线
,在存储空间中
PCIe数据
的缓冲区,设备完成缓冲池的申请后,根据当前设备
硬件条件与产品需求在缓冲池中创建环形缓冲区,便于总线数据缓存与空间回收。

缓冲区的大小限制为
总线数据转发的性能需求设定缓冲区的级数。

环形缓冲区的大小不能超过缓冲池。

环2.4 缓冲区回收

设备将总线数据传输至主设备时,释放
中的当前缓冲区,清除区满标志;当
总线数据转发存储至电子盘时,释放
的当前缓冲区,清除区满标志。

区满标识当前缓冲区不可被申请,但当前缓冲区的数据可被发送。

清除区满标识后,当前缓冲区可被申请用于缓存,但当前缓冲区中数据为空或者已被转发,禁止发送操作。

缓冲区回收旨在及时清空闲置缓冲区,保证环形缓冲区始终有可用缓冲区来缓存当前的接收数据,实现对有限存储空间的重复利用。

3 结 
针对多个节点设备通信时入向流量和出向流量速率不匹配造成的飞行数据缺失问题,基于DMA缓冲池的流量控制协议,利用多级缓冲和同步。

相关文档
最新文档