欢迎访问有用文档网!

当前位置: 有用文档网 > 作文大全 >

高速数据采集中的PCI,Express总线性能分析

| 浏览次数:

摘  要: 随着高速采集系统的采样速率的增大和采样精度的提高,如何设置PCI Express系统的参数,充分利用PCI Express总线的带宽,以满足高速海量数据的实时传输就变得非常重要。在此分析了PCI Express系统数据传输开销的来源,研究了几种主要的系统参数,以提高数据吞吐量。通过使用PLDA 的EZDMA2 IP核,在Xilinx KC705评估板上对各个参数进行测试,结果表明,灵活设置这些关键的系统参数可以利用较少的FPGA资源,同时达到较高的传输带宽,对PCI Express系统设计具有非常高的参考价值。

关键词: 高速数据采集; PCI Express; 总线传输带宽; PLDA EZDMA2 IP; Xilinx KC705

中图分类号: TN964⁃34                   文献标识码: A                            文章编号: 1004⁃373X(2014)24⁃0126⁃04

Performance analysis of PCI express bus for high⁃speed data acquisition

ZHU Ce1, XU Hui1, ZHOU Ti⁃min2

(1. School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China; 2. Unit 63626 of PLA, Jiuquan 732750, China)

Abstract: With increase of sampling rate and improvement of sampling precision of high⁃speed acquisition system, it is very important to know how to set the parameters PCI Express system and to make full use of PCI Express bus bandwidth, so as to meet the high⁃speed real⁃time transmission of mass data. In this paper, the data transfer overhead of PCI Express system is

analyzed and several major system parameters are investigated to improve data throughput. By using EZDMA2 IP core in PLDA, various parameters were tested on Xilinx KC705 evaluation board. The results show that flexible setting of these critical system parameters can occupy fewer FPGA resources while achieving higher transmission bandwidth. It has a very high reference value for PCI Express system design.

Keywords: high⁃speed data acquisition; PCI express; bus transmission bandwidth; PLDA EZDMA2 IP; Xilinx KC705

0  引  言

高速数据采集系统广泛应用于电子测量、软件无线电、雷达等领域,涉及采样理论、数字信号处理、高速电路设计、高速ADC等多个领域,属于信号获取领域的重要课题。随着半导体工艺技术的日益进步,高速数据采集中所用的ADC采样精度和采样速度己经达到一个新的水平,几百MHz甚至几GHz采样速率的采集系统,已得到广泛的应用,这就要求有相应的高带宽的数据总线,将采样数据传输出来,进行信号处理或存储[1]。作为一个串行的点对点互联协议,PCI Express技术为可靠的数据传输提供了一个高带宽可扩展的解决方案,所以其迅速在高速采集领域得到了广泛的应用[2]。文章分析了PCI Express系统数据传输开销的来源,研究了影响PCI Express系统性能的因素,同时基于PLDA 的EZDMA2 IP核和Xilinx KC705评估板对PCI Express系统进行性能测量和分析,以验证这些因素的影响[3⁃6]。

1  PCI Express性能定义

PCI Express协议规定,对于PCI Express Gen1系统,单个链路最大传输速率是2.5 Gb/s,Gen2系统最大传输速率为5 Gb/s,最新的Gen3系统[7]为8 Gb/s。这些速率描述的是每个通道上单方向数据传输的原始比特率,而不是PCI Express系统的数据传输速率。由于存在各种开销和其他系统设计的折衷,PCI Express系统的有效数据传输速率会降低。

PCI Express系统的数据传输使用各种各样的数据包,比如存储器类型、I/O类型和配置类型的数据包。大部分设计以提高传输存储器类型数据包速率为目标。本篇文章也将存储器类型数据包的传输速率定义为系统性能。下文中,如果无特殊说明,数据都指的是存储器类型的数据。

PCI Express Gen1、Gen2和Gen3协议存在少量的不同点,文章主要研究PCI Express Gen2协议,所有的性能测量也都是基于Gen2的系统。但是,文章中提到的这些观点同样适用于Gen1和Gen3系统。

2  PCI Express数据传输开销

在PCI Express系统上传输任何数据都会有一定数量的开销。符号编码开销,TLP开销和传输开销是影响PCI Express系统的3个关键因素,下面分别研究三个因素的影响。

2.1  符号编码

PCI Express Gen2协议采用8 b/10 b编码来保持传输线上的直流(DC)平衡,并可以进行错误检测,8 b/10 b编码不像其他影响因素那样可以调整,这种编码是必须的。表1是部分8 b/10 b编码的例子。完整的8 b/10 b编码表,请参考PCI Express协议规范。

表1 部分8 B/10 B编码表

8 b/10 b编码保证了数据流中包含足够丰富的时钟信息,使得接收方可以从串行数据流中恢复出本地接收时钟。这种编码保证每传输20 b数据,1和0的数量相差不超过2,而且不会有连续的5个1或0出现。为了保持直流平衡,每个传输的字节都有一个正极性和负极性的10⁃bit编码,由发送方根据电路的流动差异(CRD)选择一个10⁃bit编码发送到串行链路上。因此,一个字节的数据需要串行链路上传送10 b的数据。显然,编码损失了20%的传送能力。由此可以得到链路在半双工下的理论带宽:

[半双工理论带宽(B)=5  Gb/s×链路宽度10  b/B]  (1)

表2给出了对于不同的链路宽度下PCI Express Gen2的理论带宽。

表2 PCI Express Gen2理论带宽

所以,尽管PCI Express Gen2每条串行链路数据率为5 Gb/s,但是8 B/10 B编码会把每条链路单向传输的有效带宽减少为4 Gb/s。实际的系统性能还会因为包的开销,传输开销等进一步降低。

2.2  TLP开销

信息以包的形式在PCI Express设备间传送,PCI Express系统用事务层包(TLP)来传输数据,存储器类型的数据传输主要应用两种类型的TLP:存储器写TLP(MWr)和带数据的完成TLP(CplD),CplD响应存储器读操作。图1为一个典型的TLP结构,有效数据存在于图中Payload部分。

PCI Express协议的事务层,数据链路层,物理层都增加了每个TLP的开销,使有效数据的比例降低。事务层添加了包头(Header)和可选的端到端的循环冗余校验(ECRC)。数据链路层添加了包序列号(Sequence)和链路层循环冗余校验(LCRC)。物理层则添加了包的开始和结束标志。PCI Express包含32⁃bit和64⁃bit两种地址模式,32⁃bit地址的TLP包头为12 B,64⁃bit地址的TLP包头为16 B,需要附加的4 B来标识高32 b地址信息。根据地址模式和可选的CRC校验,TLP的开销在20~28 B之间变化。

大量数据的传输需要许多的TLP,每个TLP都会有自己的开销。因此,采用更大的TLP可以增加有效数据的比例从而增加链路的效率。PCI Express系统中的每个设备都有自己的最大载荷(MPS),这决定了最大的TLP大小,但是增加MPS并不一定会使链路效率成比例增加,因为TLP的大小变大,其他的因素比如传输开销会增加对系统性能的影响。

2.3  传输开销

PCI Express协议的物理层和链路层都会引入传输开销,当链路进入正常工作状态(L0状态),物理层会插入SKIP有序集,SKIP用于补偿发送方时钟与本地接收时钟之间的时钟偏差。SKIP包的长度为4 B,在1 180~1 538个符号时间内必须插入一次。一个符号时间就是在串行链路上传输一个字节的时间。PCI Express协议不允许在TLP包的中间插入有序集或者其他类型的包,所以SKIP有序集和其他负责链路管理的包只可以在TLP包的发送间隙内被发送,PCI Express协议的这个特性也是增大MPS并不会使链路效率成倍增加的原因。当TLP变大时,在两个TLP之间的发送的链路管理包也会增加。

PCI Express协议定义了链路管理层包(DLLPs),目的是为了确保链路双方传输数据的可靠性。DLLPs只在数据链路层产生和处理。PCI Express协议有许多用于链路管理的包,其中确认(ACK)DLLPs、不确认(NAK)DLLPs和流控制(FC)DLLPs对PCI Express系统的传输性能影响最大。

发送方每次发送一个TLP包,接收方就要返回发送方一个ACK或者NAK来表示接收TLP成功或失败,发送方必须把TLP保存在它的重传缓存中,直到接收到这个TLP对应的ACK包。当传输发生错误时,那么该TLP可以重传,以确保数据无丢失。由于PCI Express协议的ACK/NAK机制,当大量的TLP发送时,就会产生相当多的ACK/NAK DLLPs,减少了链路的数据带宽。

PCI Express协议允许多个等待发送的相同类型的DLLPs被缩减为一个DLLPs,如图2所示。例如,如果接收方成功接收5个TLP,接收方对第5个TLP返回ACK包,那么发送方就认为5个TLP都被成功发送。这样就减少了链路上的ACK包的数量,当然,如果接收方ACK包发送的频率很小,那么发送方的重传缓存就会累积很多等待ACK的TLP,发送方会因此减慢发送速度。如果发送方重传缓存填满,那么新的TLP就不会被发送,直到已发送的TLP接收到确认。所以,当用户开发一个PCI Express产品时,他必须设计一种机制,来决定什么时候把多个DLLPs缩减为一个DLLPs。

基于信用量(Credit)的流控制(FC)协议减少了因为接收缓存溢出而造成的包丢失,流控制协议相比较传统PCI的重试(Retry)模式更优越,但它还是不可能保证链路效率一直高效。链路上的每个设备持续发送流控制DLLPs,用来更新设备接收缓存的状态,发送方只会在接受方有足够缓存空间的情况下发包。发送设备记录接收设备可用的信用量,每次发送一个包,就将信用量减少。在接收方处理一个包和释放缓存空间后,它发送更新流控制包(FC Update DLLP)来通知发送方还有多少剩余空间。设备处理和发送FC Update DLLP的效率影响着整个链路的效率。类似于设备可以控制ACK/NAK包的频率,一个设备怎样处理和发送流控制包取决于设备内部逻辑的设计,不同设备之间可能不同。降低流控制包的频率可以减少用于链路管理的传输开销,但是,接收缓存必须更大以保持相应的性能。

3  影响性能的系统参数

3.1  最大载荷长度

PCI Express协议允许最大载荷的上限至4 096 B,但协议规定MPS参数不可超过数据传输路径上的每个设备的MPS。因此,MPS很大的设备必须使用较低的MPS来适应路径上低MPS能力的设备。例如,图3中PCI Express系统的MPS设置为128 B,以适应端点3。

MPS设置在系统枚举和配置过程就决定了。设备的MPS存放在设备能力寄存器(Device Capability register)中,该寄存器位于设备的配置空间。软件探测每个设备得到MPS,计算系统的MPS,然后把MPS写入设备的设备控制寄存器(Device Control register)中。

MPS决定了传输给定数量数据所需要的TLP数量。当MPS增加时,相同数据需要的TLP数量就会减少。但是,增加MPS并不会等比例增加系统效率。等式II定义了包效率。

[包效率=MPSMPS+TLP开销] (2)

表3给出了4种MPS的包效率,表中数据假设TLP使用3DW包头,没有ECRC校验,总共20 B开销。

表3 包效率

包效率和MPS成正比例关系,但不是等比例增加。现在大部分的系统将MPS设置为128 B或256 B。对于一个确定的MPS,包效率也固定了,不会随着传输数据多少而变化。

3.2  最大读请求长度

在配置过程中,软件还将最大读请求长度写入设备的控制寄存器。参数设定一次存储器读的最大长度,最大读请求长度可以以128 B为步进,最大可设为4 096 B。最大读取请求长度可以比MPS大。例如,一个512 B的读请求可以发给MPS为128 B的设备。该设备返回的带数据的完成TLP(CplD)长度限制为128 B或更少,这需要多个CplD来一个读操作。PCI Express系统采用最大读取请求长度来平衡分配总线拓扑结构上的带宽。限制设备在一次读请求中可以读取的最大数据量,可以防止其垄断系统带宽。最大读请求长度也影响系统性能,因为它决定了读请求被发送的次数,而读请求不包含任何有效载荷。当最大读请求长度为128 B时,读取64 KB的数据需要读取512次TLP(64 KB / 128 B= 512)。为了提高效率,移动大数据块时,读请求的大小应该尽可能地接近最大读请求长度,减少读取次数。

3.3  读完成边界

设备接收到读请求后,通过带数据的完成TLP(CplD)返回要读取的数据,读完成边界(RCB)使一次读请求的数据通过多个CplD来返回。根据地址边界对齐,数据被划分为64 B或128 B,也有一部分CplD中的数据小于RCB设置,这取决于下个地址边界的位置。大部分根复合体设置RCB为64 B,每包返回64 B数据,而不是其他MPS允许的值。图4给出了当RCB为64 B,端点从地址0x00010028读取256(0x100) B数据时,根复合体如何返回这些数据。

返回256 B数据需要5个CplD,如果每个TLP采用3DW包头,包效率为64/(64+20)=76%。许多根复合体使用64 B RCB,尽管MPS为128 B或更高。所以,读完成操作就是返回这些CplD的时间,而且根据RCB设置,这些数据被划分成了很小的包。

4 带宽测试

Xilinx KC705评估板包含一片Xilinx Kintex⁃7 XC7K325T⁃2FFG900C FPGA,1GB SODIMM 800 MHz / 1 600 Mb/s DDR3和PCI Express x8边缘连接器。Kintex⁃7 FPGA是Xilinx采用28 nm HKMG 高性能低功耗 (HPL) 工艺的FPGA系列之一,Kintex⁃7 系列是一种新型 FPGA,能以不到Virtex⁃6 系列一半的价格实现与其相当性能,性价比提高了一倍,功耗降低了一半。XC7K325T⁃2FFG900C FPGA带有16个GTX串行收发器,支持最大数据率10.312 5 Gb/s,可以实现PCI Express协议,采用Xilinx PCI Express硬核,最大支持Gen2x8配置,若采用第三方IP,最高支持Gen3x8[8⁃11]。

PLDA EZDMA2 IP是基于FPGA PCI Express硬核开发的支持DMA操作的IP核,最大支持8个通道DMA操作。MPS最大支持512 B,最大读请求支持1 KB。PLDA为其IP提供了完整的Windows驱动和上位机测试程序。

测试时采用PCI Express Gen2x8,测试环境为Win7操作系统,主板芯片组Intel Z77,CPU为Intel Core i5⁃3 570。

表4 列出了测试结果

5  结  语

本文以高速信号采集为应用背景,分析了PCI Express系统数据传输开销和影响PCI Express系统性能的因素,同时基于PLDA 的EZDMA2 IP核和Xilinx KC705评估板对上述因素进行验证,实验结果对PCI Express系统设计具有一定的参考价值。

参考文献

[1] 赵宇玲.基于FPGA的信号采集与处理系统设计与实现[D].南京:南京理工大学,2008.

[2] 马明锦,朱剑冰,何红旗,等.PCI、PCI⁃X和PCI Express的原理及体系结构[M].北京:清华大学出版社,2007.

[3] PLDA. EZDMA2 IP for Xilinx hard IP getting started [EB/OL]. [2012⁃10⁃01]. http://.

[4] PLDA. 2012EZDMA2 IP for Xilinx hard IP reference manual [EB/OL]. [2011⁃10⁃05]. http://.

[5] Xilinx. Kintex⁃7 FPGA KC705 evaluation kit getting started guide [EB/OL]. [2013⁃07⁃02]. http://.

[6] Xilinx. KC705 evaluation board for the Kintex⁃7 FPGA user guide [EB/OL]. [2013⁃07⁃18]. http://.

[7] PCI⁃SIG. PCI express base 2.0 specification [EB/OL]. [ 2006⁃10⁃09]. http://.

[8] Xilinx. PIPE mode simulation using integrated endpoint PCI express block in Gen2 x8 and Gen3 x8 configurations [EB/OL]. [2014⁃02⁃19]. http://.

[9] Xilinx. LogiCORE IP endpoint block plus v1.15 for PCI express [EB/OL]. [2011⁃06⁃22]. http://.

[10] Xilinx. 7 Series FPGAs integrated block for PCI express v3.0 [EB/OL]. [2014⁃02⁃04]. http://.

[11] Xilinx. PCI express for the 7 series FPGAs [EB/OL]. [2012⁃09⁃21]. http://.

推荐访问:总线 数据采集 性能 分析 Express

热门排行Top Ranking

支部组织生活方面存在问题清单和整改措施 党组织生活个人问题整改清单

下面是小编为大家精心整理的支部组织生活方面存在问题清单和整改措施党组织生活个人问题整改清单文章,供大家阅读参考

2021年党员个人问题清单及整改措施 党组织生活个人问题整改清单

下面是小编为大家精心整理的2021年党员个人问题清单及整改措施党组织生活个人问题整改清单文章,供大家阅读参考。

浅析军队战斗力损耗的新变化

关键词:军队;战斗力损耗;新变化军队战斗力的结构,是战斗力各要素间的结合方式和相互关系。军队战斗力的

小学六年级毕业演讲稿100字左右9篇

小学六年级毕业演讲稿100字左右9篇小学六年级毕业演讲稿100字左右篇1敬爱的老师,亲爱的同学们:大

问题及整改措施 (2) 药房个人存在问题及整改措施

下面是小编为大家精心整理的问题及整改措施(2)药房个人存在问题及整改措施文章,供大家阅读参考。精品文章《问题及

个人问题清单及整改措施(最新) 能力作风建设个人问题清单及整改措施

下面是小编为大家精心整理的个人问题清单及整改措施(最新)能力作风建设个人问题清单及整改措施文章,供大家阅读参考。在认真

疫情防控赞美警察诗朗诵 关于警察的诗朗诵

下面是小编为大家精心整理的疫情防控赞美警察诗朗诵关于警察的诗朗诵文章,供大家阅读参考。疫情防控赞美警

纳税人满意度调查存在不足及对策探讨 提升纳税人满意度的方式方法有哪些

下面是小编为大家精心整理的纳税人满意度调查存在不足及对策探讨提升纳税人满意度的方式方法有哪些文章,供大家阅读参考。纳

小学思想品德教育面临的问题及对策

摘要:小学思想品德课程是小学教育教学过程中不可或缺的一门综合性课程,它对学生良好品德的形成具有重要影

2020党支部班子查摆问题清单及整改措施 农村党支部问题清单

下面是小编为大家精心整理的2020党支部班子查摆问题清单及整改措施农村党支部问题清单文章,供大家阅读参

消防安全检查简报 派出所校园消防安全检查简报

下面是小编为大家精心整理的消防安全检查简报派出所校园消防安全检查简报文章,供大家阅读参考。简报第2期申扎县中学

2021教师党员年度个人总结8篇

2021教师党员年度个人总结8篇2021教师党员年度个人总结篇1敬爱的党组织:我是一个普通年轻的人民