基于高带宽的PXI Express平台,实现高速数据记录
Test Systems for High Speed Data Streaming Applications
凌华科技(中国)有限公司
摘要
现今的电子系统需要负荷越来越大量的数据,包含模拟及数字数据。因此对于研究者与系统开发商来说,其最大的挑战就是如何整合、测试与维护更高速且精准的测试系统来处理日益增加的数据量。对于某些应用类型,例如视频信号分析,其需求是如何连续不断采集高速模拟与数字信息以进行实时分析。因此在设计或选用这类型量测系统时,若能清楚理解数据流向以及可能的问题所在,就能减少开发成本,加速上市时间,也能避免昂贵的系统重新设计成本。
频谱监控、信号分析、光达信号采集、光纤测试、雷达及卫星信号收集等应用,属于典型高速及高精确度数据采集应用。这些应用对工程师们最大的挑战就是要如何满足高带宽的系统需求。本文将分享以PXI Express平台在建构高带宽系统时所需要考虑的细节,例如数字化仪或波型产生器的板载内存、PXI Express机箱内的PCIe信号架构、计算机操作系统、内存及储存装置的选择。
简介
传统桌面型仪器的数据传输接口为GPIB、RS-232或是LAN,这些接口的好处在于非常容易操作使用,但在传输大量数据时其效率并不理想。当要采集大量连续数据时,数据长度就会因为内部存储器大小而受限。目前市面上新款的高级仪器,例如示波器、波型发生器或逻辑分析仪,采用x86的架构,因此在高速、大量数据采集的长度上则基本上没有限制。但若要跨仪器同步达到多通道采集时,便是个困难且复杂的课题。
自从1998年第一版的PXI规格问世后,PXI平台与其模块已经被大量应用于军工、电子制造及科学研究应用中。第一版的PXI规格采用了PCI总线的高速传输特性,而后续的PXI规范更采用了PCI Express总线,继承了其低延迟(Low Latency)、高带宽及点对点传输的特性,另外再加上特有的触发与时序同步的接口,使得PXI平台与PXI模块特别适合应用于高速数据传输。
当以PXI平台设计适用于高速数据记录的系统,不管是将数据连续由模块化仪器传送至系统内存或存储装置,或者相反的数据流向,都能够利用PXI Express的高速总线、点对点传输的特性以及特有的触发与时序信号,轻松地完成实现。接下来的文章内容将进一步讨论,在设计、实现数据记录系统的过程中,需要考虑的几个要点与方向。
数据记录系统的架构及其考量因素
下图一简单的示意了一组PXI Express平台中数据的流向,组成的组件包含了PXI Express机箱、PXI Express控制器及模块化仪器,包含数字化仪及波形发生器。以高速数字化仪为例,模拟信号被ADC采集转换成数字量数据后,会搬移到板载内存上暂存,接下来再经由总线控制器及PCI Express接口,传送到PXI Express控制器的系统内存上,做后续的计算及处理。若数据的流向目的地是存储设备,则会在未经任何处理计算的情况下,被直接搬移到存储装置,以维持高速、连续不断的数据记录。在PXI Express背板上,采用了PCIe switch使得系统得以扩展出更多槽位。由于不同的PXI Express机箱有不同的槽位型态,因此每个PCIe switch的绕线方式都不同,进而影响到数据传输效率。如模块化仪器-波形发生器,其数据流则以相反方向运行。
图一、PXI Express平台与模块化仪器整体架构简化图,显示PXI Express系统的数据记录传输的方向
接下来我们会讨论数据记录系统的每个环节及对于数据带宽的影响。
模块化仪器的板载内存
大约十多年前,高速的PCI数字化仪都需要配备大量的板载内存以暂存来自高速ADC的数据,主要原因是当时的PCI总线仅能提供约132MB/s的数据带宽(多数系统仅能达到约80MB/s)。PCI总线的带宽,无法满足于8位1GS/s或14位200MS/s的数字化仪所需要的数据带宽。为了要增加记录或采集时间,512MB、1GB或甚至4GB的板载内存就会被应用于数字化仪之上。目前虽然高速PCIe总线接口可提供数倍于PCI总线的带宽,但数字化仪通常还是会配备有大量的板载内存深度(大于100MB),用于当作数据暂存,以避免CPU或DMA控制器过于忙碌而无法实时传输数据。举例来说,一个单通道8位500MS/s的数字化仪,在完全不将数据传回系统内存状况下,可以记录高达1秒的时间,若配备有2GB内存则可记录高达4秒。
在选择数字化仪时,另外一个需要注意的就是其板载内存控制器的数据处理带宽。作为ADC与系统内存之间的桥梁,内存控制器需要有两倍的数据传输量,以能同时应付来自ADC的数据流入,以及将数据通过PCIe总线传送至系统内存。若存储设备控制器的带宽小于两倍数据流量,则数据会被暂存在板载内存上,长久下来就会造成数据溢出,而使数据连续性受损。
图二、数字化仪内的数据流
模块化仪器的总线接口
PCI总线提供132MB/s (32位、33MHz)传输速率,针对低速(小于80MB/s)且低价的数据记录应用来说,PCI接口仍可满足,不过需要注意的是,PCI是并行的总线接口,若有多个设备置于同一总线时,带宽则会被分享。区别于PCI总线,PCI Express接口具有点对点的特性,每个link在每个方向上可提供高达250MB/s传输速率。若要增加带宽,最简单的方式就是将多个link结合起来,成为x4、x8甚至x16通道。而2003年推出的PCIe 1.0a规格、2007年推出的PCIe 2.0标准,PCI-SIG在2010年11月再度提出PCIe 3.0规格,持续推进更新的编码方式及强化的信号完整性以大幅度提升其传输速率,因此对于需要高速数据记录的应用来说,采用PCIe接口的模块化仪器是一大利器。显而易见,采用PCI Express为模块化仪器的总线接口可以得到优化的系统效率。
PCIe GEN 1 | PCIe GEN 2 | PCIe GEN 3 | |
Lane | Bandwidth, per direction lane | Bandwidth, per direction lane | Bandwidth, per direction lane |
X 1 | 250MB/s | 500MB/s | 1GB/s |
X 4 | 1GB/s | 2GB/s | 4GB/s |
X 16 | 4GB/s | 8GB/s | 16GB/s |
PXI Express机箱内PCIe总线的绕线架构
在PXI Express机箱的系统槽中,为了让外围槽的扩展及规划更有弹性,系统槽连接到背板上的接口有4-Link及2-Link两种架构。4-Link架构中每个link具备有4个通道,而2-Link架构中则允许其中一个link有8个通道,而另外一个link则可有高达16通道。为了要达到最高的传输速率,在PXI Express机箱内的PCI Express总线的走线方式、架构也是需要考虑的重点。以凌华科技PXES-2780机箱为例,这是一款具有18个槽位的机箱,含1个系统槽位、1个系统时序槽位(System Timing slot)、6个PXIe外围槽位(PXIe Peripheral Slot)及10个混合式槽位(Hybrid Slot)。当该机箱的系统槽位规划成4-Link接口时,可以提供每个槽位相对高速及平衡的传输速率。由于此机箱内的PCI Express接口为PCIe Gen2, 因此对整个系统来说可以提供高达8GB/s的系统带宽,单独对于第8与12槽这种具有x8接口来说,可以拥有4GB/s的带宽,而其他个别的PXI Express外围槽来说,则可拥有2GB/s的带宽。该机箱的4-Link规划示意图如下:
图三、配置为4-Link的凌华科技PXES-2780机箱示意图
若将PXI Express系统槽位设置成2-Link x8, 则可得到更高的传输带宽。凌华科技的PXES-2780机箱,其系统槽位可通过软件设置成2-Link x8接口,其架构如下图4。使用该架构,槽位8与槽位12可以提供x8的带宽。
图四、规划成2-Link的凌华科技 PXES-2780机箱示意图
使用者若能熟悉PXI Express机箱的规划架构,将能使模块化仪器在传输大量数据上获得更佳的传输性能。
系统内存与操作系统(OS)
在PXI Express系统控制器上,若能配有大容量的系统内存,则可延长数据记录的时间。然而搭配不同的操作系统(Operating System)可能会有不同的内存上限。例如对于32位的操作系统,其内存寻址空间通常不能超过4GB,而对于64位操作系统而言,一般可达512GB或者1TB的内存寻址。因此使用者需根据自身的需求来选择合适的操作系统,以支持所需的内存空间。
存储装置
要能稳定的执行大数据的读写工作,选择合适的存储装置极为重要。硬盘(HDD)是一种具有特别的机械装置,内含有高速旋转的磁盘以及具有磁性的读写头,来回于磁盘表面上,用以读取磁盘内所存储的数据单元。由此可知,读或写的速度将会受限于读写头的移动速度。为了增加读写的速度,几个硬盘通常会被组合起来成为一个虚拟的硬盘,这也是大家所熟知的RAID(Redundant Array of Independent Disks),即磁盘阵列。另外最近越来越流行的固态磁盘则因为没有读写头的机械移动问题,因此能提供较硬盘更好的读写效率。若考虑到最佳的读写性能的话,固态磁盘将会是最佳的选择。
应用示例一、数据记录至系统内存
材料结构测试的高速数据记录
方案需求
某系统集成商想要开发一套多通道材料震动监控设备,并能够实现从不同的传感器同时进行1MS/s~50MS/s采样率的数据采集,同时将采集进来的数据记录到系统内存中,以直接进行后续的处理,而不需要将数据记录到磁盘上做存储。另外该系统集成商希望每个采集通道能够记录至少5~10秒的时间。接下来我们会针对这些应用条件进行评估,并讨论使用PXI Express平台实现这类型应用时,不同的采样率在设计上会遇到的瓶颈有哪些。
评估
下面是我们用来评估这个高速数据记录系统会使用到的组件:
- PXI Express机箱: 凌华科技PXES-2780,18槽PXI Express机箱
- 数字化仪: 凌华科技PXIe-9848,高速8通道100 MS/s 14位PXI Express数字化仪
首先我们先考虑PXI Express机箱中只有单一数字化仪的状况。下表是单一数字化仪在不同采样率下,以不同采集时间所需要的内存评估表。
Single PXI Express-9848 in PXI Express Chassis | System Memory Required for Specified Time in MB | |||||||
SR MS/s | Data Width, Byte | No of CH | Data Rate, MB/s | 1/2 sec | 1 sec | 2 sec | 5 sec | 10 sec |
5 | 2 | 8 | 80 | 40 | 80 | 160 | 400 | 800 |
10 | 2 | 8 | 160 | 80 | 160 | 320 | 800 | 1600 |
20 | 2 | 8 | 320 | 160 | 320 | 640 | 1600 | 3200 |
50 | 2 | 8 | 800 | 400 | 800 | 1600 | 4000 | 8000 |
100 | 2 | 8 | 1600 | 800 | 1600 | 3200 | 8000 | 16000 |
当只有一张PXIe-9848时,以100MS/s进行8通道的采样时,总数据带宽为1.6GB/s。然而PXIe-9848其接口为PCIe x4且为Gen 1,因此若要进行连续不断的数据记录时,其产生的数据量最好能低于1GB/s。若将采样率降低至50MS/s,则PXIe-9848能产生800MB/s数据量。由于PXES-2780机箱采用PCIe Gen2规格,因此能够负荷800MB/s的数据量。若要以50MS/s采样率进行10秒长度的采样,则进一步的限制会落在系统内存大小上,以此状况下,需要8GB系统内存。若系统内存无法分配出高达8GB的系统内存供数字化仪使用,则必须缩减采样时间的长度。
接下来,我们再来考虑多张卡片安装于同一系统的状况。若想要达到最多采样通道,那么最多则可以把17张PXIe-9848数字化仪,安装于机箱内,那么此时除了考虑PXI Express控制器的系统带宽外,还要把PXI Express背板上的PCIe连接配置也考虑进去。
我们观察PXES-2780机箱的连接配置,如图四所示,它上面的PCIe switch#1上游有两个x4的连接通道,下游有三个x4连接通道,因此以平均来说,每个下游通道可从上游通道分得约1.33GB/s的带宽(4GB/s ÷ 3 ports)。PCIe switch#2也可用相同的计算方式来换算其下游带宽。至于PCIe switch#3与#4的下游通道约可分别分得222MB/s (1.33GB ÷ 6 ports)及190MB/s (1.33GB/s ÷ 7 ports)的带宽。若每个数字化仪都使用同样的采样率,则带宽瓶颈会出现在位于第10、13~18插槽的数字化仪上。
图五、配置成PCIe x4 link的机箱带宽预估示意图
若我们根据第10、13~18槽的带宽限制,来计算不同采样时间长度所需的系统内存,其结果如下表:
Configuration of single PXIe-9848 module | System memory (MB) required for specified time with 17 PXIe-9848 modules deployed in PXI Express platform | ||||||||
SR MS/s | Data Width, Byte | No of CH | Data Rate, MB/s | Slot BW Bottle-neck, MB/s | 1/2 sec | 1 sec | 2 sec | 5 sec | 10 sec |
5 | 2 | 8 | 80 | 190 | 680 | 1360 | 2720 | 6800 | 13600 |
8.33 | 2 | 8 | 133.28 | 190 | 1133 | 2266 | 4532 | 11329 | 22658 |
10 | 2 | 8 | 160 | 190 | 1360 | 2720 | 5440 | 13600 | 27200 |
由上表评估结果可知,若以5MS/s采样率进行5秒钟连续采样,17张数字化仪共需系统内存达6.8GB大小。若采样率达10MS/s,则记录时间会缩减至2秒(需5.44GB内存),若仍需要加长记录时间,则数字化仪上的板载内存将可延成某个程度的记录时间。
应用示例二、数据记录至磁盘
激光监控中高速光二极管的信号采集
方案需求
客户的应用是有关激光信号监控,需要采集光二极管的信号且需为便携式的设计。只需要采集一个通道,但采样率需高达200MS/s。
解决方案
由于客户需要高达200MS/s的单通道采样率,因此以凌华PXIe-9842及便携式的PXI Express机箱PXES-2590为应用组合,以此提供高达400MB/s的数据记录速率。由于需要将数据记录至磁盘,而PXI Express控制器上的磁盘装置一般很难提供高达400MB/s的带宽,即使使用SSD也很难,因此使用外部的RAID存储装置来进行数据存取。我们使用的RAID模块是PXI Express接口且具有4个SATA III界面的SSD。
- PXI Express系统控制器: 凌华科技PXIe-3975,3U Intel® CoreTM i5-520E 2.4GHz 双核 PXI Express系统控制器
- PXI Express机箱: 凌华科技PXES-2590,9槽全混和式PXI Express机箱
- 数字化仪: 凌华科技PXIe-9842,14位200 MS/s采样率的PXI Express数字化仪
- RAID存储装置: Conduant DM-425
结论
要以PXI Express平台来实现数据记录的应用,需要考虑的不只是模块化仪器本身的条件,更要考虑到PXI Express平台的数据传输带宽。通过本文中所探讨的设计上的细节及应用范例,用户将能有效构建更高性能的测量测试平台、大幅提升开发效率。
评论