基于高帶寬的PXI Express平臺(tái),實(shí)現(xiàn)高速數(shù)據(jù)記錄
Test Systems for High Speed Data Streaming Applications
凌華科技(中國(guó))有限公司
摘要
現(xiàn)今的電子系統(tǒng)需要負(fù)荷越來越大量的數(shù)據(jù),包含模擬及數(shù)字?jǐn)?shù)據(jù)。因此對(duì)于研究者與系統(tǒng)開發(fā)商來說,其最大的挑戰(zhàn)就是如何整合、測(cè)試與維護(hù)更高速且精準(zhǔn)的測(cè)試系統(tǒng)來處理日益增加的數(shù)據(jù)量。對(duì)于某些應(yīng)用類型,例如視頻信號(hào)分析,其需求是如何連續(xù)不斷采集高速模擬與數(shù)字信息以進(jìn)行實(shí)時(shí)分析。因此在設(shè)計(jì)或選用這類型量測(cè)系統(tǒng)時(shí),若能清楚理解數(shù)據(jù)流向以及可能的問題所在,就能減少開發(fā)成本,加速上市時(shí)間,也能避免昂貴的系統(tǒng)重新設(shè)計(jì)成本。
頻譜監(jiān)控、信號(hào)分析、光達(dá)信號(hào)采集、光纖測(cè)試、雷達(dá)及衛(wèi)星信號(hào)收集等應(yīng)用,屬于典型高速及高精確度數(shù)據(jù)采集應(yīng)用。這些應(yīng)用對(duì)工程師們最大的挑戰(zhàn)就是要如何滿足高帶寬的系統(tǒng)需求。本文將分享以PXI Express平臺(tái)在建構(gòu)高帶寬系統(tǒng)時(shí)所需要考慮的細(xì)節(jié),例如數(shù)字化儀或波型產(chǎn)生器的板載內(nèi)存、PXI Express機(jī)箱內(nèi)的PCIe信號(hào)架構(gòu)、計(jì)算機(jī)操作系統(tǒng)、內(nèi)存及儲(chǔ)存裝置的選擇。
簡(jiǎn)介
傳統(tǒng)桌面型儀器的數(shù)據(jù)傳輸接口為GPIB、RS-232或是LAN,這些接口的好處在于非常容易操作使用,但在傳輸大量數(shù)據(jù)時(shí)其效率并不理想。當(dāng)要采集大量連續(xù)數(shù)據(jù)時(shí),數(shù)據(jù)長(zhǎng)度就會(huì)因?yàn)閮?nèi)部存儲(chǔ)器大小而受限。目前市面上新款的高級(jí)儀器,例如示波器、波型發(fā)生器或邏輯分析儀,采用x86的架構(gòu),因此在高速、大量數(shù)據(jù)采集的長(zhǎng)度上則基本上沒有限制。但若要跨儀器同步達(dá)到多通道采集時(shí),便是個(gè)困難且復(fù)雜的課題。
自從1998年第一版的PXI規(guī)格問世后,PXI平臺(tái)與其模塊已經(jīng)被大量應(yīng)用于軍工、電子制造及科學(xué)研究應(yīng)用中。第一版的PXI規(guī)格采用了PCI總線的高速傳輸特性,而后續(xù)的PXI規(guī)范更采用了PCI Express總線,繼承了其低延遲(Low Latency)、高帶寬及點(diǎn)對(duì)點(diǎn)傳輸?shù)奶匦裕硗庠偌由咸赜械挠|發(fā)與時(shí)序同步的接口,使得PXI平臺(tái)與PXI模塊特別適合應(yīng)用于高速數(shù)據(jù)傳輸。
當(dāng)以PXI平臺(tái)設(shè)計(jì)適用于高速數(shù)據(jù)記錄的系統(tǒng),不管是將數(shù)據(jù)連續(xù)由模塊化儀器傳送至系統(tǒng)內(nèi)存或存儲(chǔ)裝置,或者相反的數(shù)據(jù)流向,都能夠利用PXI Express的高速總線、點(diǎn)對(duì)點(diǎn)傳輸?shù)奶匦砸约疤赜械挠|發(fā)與時(shí)序信號(hào),輕松地完成實(shí)現(xiàn)。接下來的文章內(nèi)容將進(jìn)一步討論,在設(shè)計(jì)、實(shí)現(xiàn)數(shù)據(jù)記錄系統(tǒng)的過程中,需要考慮的幾個(gè)要點(diǎn)與方向。
數(shù)據(jù)記錄系統(tǒng)的架構(gòu)及其考量因素
下圖一簡(jiǎn)單的示意了一組PXI Express平臺(tái)中數(shù)據(jù)的流向,組成的組件包含了PXI Express機(jī)箱、PXI Express控制器及模塊化儀器,包含數(shù)字化儀及波形發(fā)生器。以高速數(shù)字化儀為例,模擬信號(hào)被ADC采集轉(zhuǎn)換成數(shù)字量數(shù)據(jù)后,會(huì)搬移到板載內(nèi)存上暫存,接下來再經(jīng)由總線控制器及PCI Express接口,傳送到PXI Express控制器的系統(tǒng)內(nèi)存上,做后續(xù)的計(jì)算及處理。若數(shù)據(jù)的流向目的地是存儲(chǔ)設(shè)備,則會(huì)在未經(jīng)任何處理計(jì)算的情況下,被直接搬移到存儲(chǔ)裝置,以維持高速、連續(xù)不斷的數(shù)據(jù)記錄。在PXI Express背板上,采用了PCIe switch使得系統(tǒng)得以擴(kuò)展出更多槽位。由于不同的PXI Express機(jī)箱有不同的槽位型態(tài),因此每個(gè)PCIe switch的繞線方式都不同,進(jìn)而影響到數(shù)據(jù)傳輸效率。如模塊化儀器-波形發(fā)生器,其數(shù)據(jù)流則以相反方向運(yùn)行。
圖一、PXI Express平臺(tái)與模塊化儀器整體架構(gòu)簡(jiǎn)化圖,顯示PXI Express系統(tǒng)的數(shù)據(jù)記錄傳輸?shù)姆较?/p>
接下來我們會(huì)討論數(shù)據(jù)記錄系統(tǒng)的每個(gè)環(huán)節(jié)及對(duì)于數(shù)據(jù)帶寬的影響。
模塊化儀器的板載內(nèi)存
大約十多年前,高速的PCI數(shù)字化儀都需要配備大量的板載內(nèi)存以暫存來自高速ADC的數(shù)據(jù),主要原因是當(dāng)時(shí)的PCI總線僅能提供約132MB/s的數(shù)據(jù)帶寬(多數(shù)系統(tǒng)僅能達(dá)到約80MB/s)。PCI總線的帶寬,無法滿足于8位1GS/s或14位200MS/s的數(shù)字化儀所需要的數(shù)據(jù)帶寬。為了要增加記錄或采集時(shí)間,512MB、1GB或甚至4GB的板載內(nèi)存就會(huì)被應(yīng)用于數(shù)字化儀之上。目前雖然高速PCIe總線接口可提供數(shù)倍于PCI總線的帶寬,但數(shù)字化儀通常還是會(huì)配備有大量的板載內(nèi)存深度(大于100MB),用于當(dāng)作數(shù)據(jù)暫存,以避免CPU或DMA控制器過于忙碌而無法實(shí)時(shí)傳輸數(shù)據(jù)。舉例來說,一個(gè)單通道8位500MS/s的數(shù)字化儀,在完全不將數(shù)據(jù)傳回系統(tǒng)內(nèi)存狀況下,可以記錄高達(dá)1秒的時(shí)間,若配備有2GB內(nèi)存則可記錄高達(dá)4秒。
在選擇數(shù)字化儀時(shí),另外一個(gè)需要注意的就是其板載內(nèi)存控制器的數(shù)據(jù)處理帶寬。作為ADC與系統(tǒng)內(nèi)存之間的橋梁,內(nèi)存控制器需要有兩倍的數(shù)據(jù)傳輸量,以能同時(shí)應(yīng)付來自ADC的數(shù)據(jù)流入,以及將數(shù)據(jù)通過PCIe總線傳送至系統(tǒng)內(nèi)存。若存儲(chǔ)設(shè)備控制器的帶寬小于兩倍數(shù)據(jù)流量,則數(shù)據(jù)會(huì)被暫存在板載內(nèi)存上,長(zhǎng)久下來就會(huì)造成數(shù)據(jù)溢出,而使數(shù)據(jù)連續(xù)性受損。
圖二、數(shù)字化儀內(nèi)的數(shù)據(jù)流
模塊化儀器的總線接口
PCI總線提供132MB/s (32位、33MHz)傳輸速率,針對(duì)低速(小于80MB/s)且低價(jià)的數(shù)據(jù)記錄應(yīng)用來說,PCI接口仍可滿足,不過需要注意的是,PCI是并行的總線接口,若有多個(gè)設(shè)備置于同一總線時(shí),帶寬則會(huì)被分享。區(qū)別于PCI總線,PCI Express接口具有點(diǎn)對(duì)點(diǎn)的特性,每個(gè)link在每個(gè)方向上可提供高達(dá)250MB/s傳輸速率。若要增加帶寬,最簡(jiǎn)單的方式就是將多個(gè)link結(jié)合起來,成為x4、x8甚至x16通道。而2003年推出的PCIe 1.0a規(guī)格、2007年推出的PCIe 2.0標(biāo)準(zhǔn),PCI-SIG在2010年11月再度提出PCIe 3.0規(guī)格,持續(xù)推進(jìn)更新的編碼方式及強(qiáng)化的信號(hào)完整性以大幅度提升其傳輸速率,因此對(duì)于需要高速數(shù)據(jù)記錄的應(yīng)用來說,采用PCIe接口的模塊化儀器是一大利器。顯而易見,采用PCI Express為模塊化儀器的總線接口可以得到優(yōu)化的系統(tǒng)效率。
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機(jī)箱內(nèi)PCIe總線的繞線架構(gòu)
在PXI Express機(jī)箱的系統(tǒng)槽中,為了讓外圍槽的擴(kuò)展及規(guī)劃更有彈性,系統(tǒng)槽連接到背板上的接口有4-Link及2-Link兩種架構(gòu)。4-Link架構(gòu)中每個(gè)link具備有4個(gè)通道,而2-Link架構(gòu)中則允許其中一個(gè)link有8個(gè)通道,而另外一個(gè)link則可有高達(dá)16通道。為了要達(dá)到最高的傳輸速率,在PXI Express機(jī)箱內(nèi)的PCI Express總線的走線方式、架構(gòu)也是需要考慮的重點(diǎn)。以凌華科技PXES-2780機(jī)箱為例,這是一款具有18個(gè)槽位的機(jī)箱,含1個(gè)系統(tǒng)槽位、1個(gè)系統(tǒng)時(shí)序槽位(System Timing slot)、6個(gè)PXIe外圍槽位(PXIe Peripheral Slot)及10個(gè)混合式槽位(Hybrid Slot)。當(dāng)該機(jī)箱的系統(tǒng)槽位規(guī)劃成4-Link接口時(shí),可以提供每個(gè)槽位相對(duì)高速及平衡的傳輸速率。由于此機(jī)箱內(nèi)的PCI Express接口為PCIe Gen2, 因此對(duì)整個(gè)系統(tǒng)來說可以提供高達(dá)8GB/s的系統(tǒng)帶寬,單獨(dú)對(duì)于第8與12槽這種具有x8接口來說,可以擁有4GB/s的帶寬,而其他個(gè)別的PXI Express外圍槽來說,則可擁有2GB/s的帶寬。該機(jī)箱的4-Link規(guī)劃示意圖如下:
圖三、配置為4-Link的凌華科技PXES-2780機(jī)箱示意圖
若將PXI Express系統(tǒng)槽位設(shè)置成2-Link x8, 則可得到更高的傳輸帶寬。凌華科技的PXES-2780機(jī)箱,其系統(tǒng)槽位可通過軟件設(shè)置成2-Link x8接口,其架構(gòu)如下圖4。使用該架構(gòu),槽位8與槽位12可以提供x8的帶寬。
圖四、規(guī)劃成2-Link的凌華科技 PXES-2780機(jī)箱示意圖
使用者若能熟悉PXI Express機(jī)箱的規(guī)劃架構(gòu),將能使模塊化儀器在傳輸大量數(shù)據(jù)上獲得更佳的傳輸性能。
系統(tǒng)內(nèi)存與操作系統(tǒng)(OS)
在PXI Express系統(tǒng)控制器上,若能配有大容量的系統(tǒng)內(nèi)存,則可延長(zhǎng)數(shù)據(jù)記錄的時(shí)間。然而搭配不同的操作系統(tǒng)(Operating System)可能會(huì)有不同的內(nèi)存上限。例如對(duì)于32位的操作系統(tǒng),其內(nèi)存尋址空間通常不能超過4GB,而對(duì)于64位操作系統(tǒng)而言,一般可達(dá)512GB或者1TB的內(nèi)存尋址。因此使用者需根據(jù)自身的需求來選擇合適的操作系統(tǒng),以支持所需的內(nèi)存空間。
存儲(chǔ)裝置
要能穩(wěn)定的執(zhí)行大數(shù)據(jù)的讀寫工作,選擇合適的存儲(chǔ)裝置極為重要。硬盤(HDD)是一種具有特別的機(jī)械裝置,內(nèi)含有高速旋轉(zhuǎn)的磁盤以及具有磁性的讀寫頭,來回于磁盤表面上,用以讀取磁盤內(nèi)所存儲(chǔ)的數(shù)據(jù)單元。由此可知,讀或?qū)懙乃俣葘?huì)受限于讀寫頭的移動(dòng)速度。為了增加讀寫的速度,幾個(gè)硬盤通常會(huì)被組合起來成為一個(gè)虛擬的硬盤,這也是大家所熟知的RAID(Redundant Array of Independent Disks),即磁盤陣列。另外最近越來越流行的固態(tài)磁盤則因?yàn)闆]有讀寫頭的機(jī)械移動(dòng)問題,因此能提供較硬盤更好的讀寫效率。若考慮到最佳的讀寫性能的話,固態(tài)磁盤將會(huì)是最佳的選擇。
應(yīng)用示例一、數(shù)據(jù)記錄至系統(tǒng)內(nèi)存
材料結(jié)構(gòu)測(cè)試的高速數(shù)據(jù)記錄
方案需求
某系統(tǒng)集成商想要開發(fā)一套多通道材料震動(dòng)監(jiān)控設(shè)備,并能夠?qū)崿F(xiàn)從不同的傳感器同時(shí)進(jìn)行1MS/s~50MS/s采樣率的數(shù)據(jù)采集,同時(shí)將采集進(jìn)來的數(shù)據(jù)記錄到系統(tǒng)內(nèi)存中,以直接進(jìn)行后續(xù)的處理,而不需要將數(shù)據(jù)記錄到磁盤上做存儲(chǔ)。另外該系統(tǒng)集成商希望每個(gè)采集通道能夠記錄至少5~10秒的時(shí)間。接下來我們會(huì)針對(duì)這些應(yīng)用條件進(jìn)行評(píng)估,并討論使用PXI Express平臺(tái)實(shí)現(xiàn)這類型應(yīng)用時(shí),不同的采樣率在設(shè)計(jì)上會(huì)遇到的瓶頸有哪些。
評(píng)估
下面是我們用來評(píng)估這個(gè)高速數(shù)據(jù)記錄系統(tǒng)會(huì)使用到的組件:
- PXI Express機(jī)箱: 凌華科技PXES-2780,18槽PXI Express機(jī)箱
- 數(shù)字化儀: 凌華科技PXIe-9848,高速8通道100 MS/s 14位PXI Express數(shù)字化儀
首先我們先考慮PXI Express機(jī)箱中只有單一數(shù)字化儀的狀況。下表是單一數(shù)字化儀在不同采樣率下,以不同采集時(shí)間所需要的內(nèi)存評(píng)估表。
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 |
當(dāng)只有一張PXIe-9848時(shí),以100MS/s進(jìn)行8通道的采樣時(shí),總數(shù)據(jù)帶寬為1.6GB/s。然而PXIe-9848其接口為PCIe x4且為Gen 1,因此若要進(jìn)行連續(xù)不斷的數(shù)據(jù)記錄時(shí),其產(chǎn)生的數(shù)據(jù)量最好能低于1GB/s。若將采樣率降低至50MS/s,則PXIe-9848能產(chǎn)生800MB/s數(shù)據(jù)量。由于PXES-2780機(jī)箱采用PCIe Gen2規(guī)格,因此能夠負(fù)荷800MB/s的數(shù)據(jù)量。若要以50MS/s采樣率進(jìn)行10秒長(zhǎng)度的采樣,則進(jìn)一步的限制會(huì)落在系統(tǒng)內(nèi)存大小上,以此狀況下,需要8GB系統(tǒng)內(nèi)存。若系統(tǒng)內(nèi)存無法分配出高達(dá)8GB的系統(tǒng)內(nèi)存供數(shù)字化儀使用,則必須縮減采樣時(shí)間的長(zhǎng)度。
接下來,我們?cè)賮砜紤]多張卡片安裝于同一系統(tǒng)的狀況。若想要達(dá)到最多采樣通道,那么最多則可以把17張PXIe-9848數(shù)字化儀,安裝于機(jī)箱內(nèi),那么此時(shí)除了考慮PXI Express控制器的系統(tǒng)帶寬外,還要把PXI Express背板上的PCIe連接配置也考慮進(jìn)去。
我們觀察PXES-2780機(jī)箱的連接配置,如圖四所示,它上面的PCIe switch#1上游有兩個(gè)x4的連接通道,下游有三個(gè)x4連接通道,因此以平均來說,每個(gè)下游通道可從上游通道分得約1.33GB/s的帶寬(4GB/s ÷ 3 ports)。PCIe switch#2也可用相同的計(jì)算方式來?yè)Q算其下游帶寬。至于PCIe switch#3與#4的下游通道約可分別分得222MB/s (1.33GB ÷ 6 ports)及190MB/s (1.33GB/s ÷ 7 ports)的帶寬。若每個(gè)數(shù)字化儀都使用同樣的采樣率,則帶寬瓶頸會(huì)出現(xiàn)在位于第10、13~18插槽的數(shù)字化儀上。
圖五、配置成PCIe x4 link的機(jī)箱帶寬預(yù)估示意圖
若我們根據(jù)第10、13~18槽的帶寬限制,來計(jì)算不同采樣時(shí)間長(zhǎng)度所需的系統(tǒng)內(nèi)存,其結(jié)果如下表:
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 |
由上表評(píng)估結(jié)果可知,若以5MS/s采樣率進(jìn)行5秒鐘連續(xù)采樣,17張數(shù)字化儀共需系統(tǒng)內(nèi)存達(dá)6.8GB大小。若采樣率達(dá)10MS/s,則記錄時(shí)間會(huì)縮減至2秒(需5.44GB內(nèi)存),若仍需要加長(zhǎng)記錄時(shí)間,則數(shù)字化儀上的板載內(nèi)存將可延成某個(gè)程度的記錄時(shí)間。
應(yīng)用示例二、數(shù)據(jù)記錄至磁盤
激光監(jiān)控中高速光二極管的信號(hào)采集
方案需求
客戶的應(yīng)用是有關(guān)激光信號(hào)監(jiān)控,需要采集光二極管的信號(hào)且需為便攜式的設(shè)計(jì)。只需要采集一個(gè)通道,但采樣率需高達(dá)200MS/s。
解決方案
由于客戶需要高達(dá)200MS/s的單通道采樣率,因此以凌華PXIe-9842及便攜式的PXI Express機(jī)箱PXES-2590為應(yīng)用組合,以此提供高達(dá)400MB/s的數(shù)據(jù)記錄速率。由于需要將數(shù)據(jù)記錄至磁盤,而PXI Express控制器上的磁盤裝置一般很難提供高達(dá)400MB/s的帶寬,即使使用SSD也很難,因此使用外部的RAID存儲(chǔ)裝置來進(jìn)行數(shù)據(jù)存取。我們使用的RAID模塊是PXI Express接口且具有4個(gè)SATA III界面的SSD。
- PXI Express系統(tǒng)控制器: 凌華科技PXIe-3975,3U Intel® CoreTM i5-520E 2.4GHz 雙核 PXI Express系統(tǒng)控制器
- PXI Express機(jī)箱: 凌華科技PXES-2590,9槽全混和式PXI Express機(jī)箱
- 數(shù)字化儀: 凌華科技PXIe-9842,14位200 MS/s采樣率的PXI Express數(shù)字化儀
- RAID存儲(chǔ)裝置: Conduant DM-425
結(jié)論
要以PXI Express平臺(tái)來實(shí)現(xiàn)數(shù)據(jù)記錄的應(yīng)用,需要考慮的不只是模塊化儀器本身的條件,更要考慮到PXI Express平臺(tái)的數(shù)據(jù)傳輸帶寬。通過本文中所探討的設(shè)計(jì)上的細(xì)節(jié)及應(yīng)用范例,用戶將能有效構(gòu)建更高性能的測(cè)量測(cè)試平臺(tái)、大幅提升開發(fā)效率。
評(píng)論