盛 丁,邢錢艦,馬振國,趙 備,2
(1.浙江大學(xué)生物醫(yī)學(xué)工程與儀器科學(xué)學(xué)院,杭州310027;2.杭州電子科技大學(xué)計算機(jī)學(xué)院,杭州310027)
基于FC-SCSI的多通道高速信號采集與實(shí)時存儲系統(tǒng)
盛 丁1,邢錢艦1,馬振國1,趙 備1,2
(1.浙江大學(xué)生物醫(yī)學(xué)工程與儀器科學(xué)學(xué)院,杭州310027;2.杭州電子科技大學(xué)計算機(jī)學(xué)院,杭州310027)
傳統(tǒng)的多通道信號采集與存儲系統(tǒng)面對龐大的數(shù)據(jù)采集任務(wù),缺乏足夠的傳輸帶寬以及實(shí)時存儲能力。為此,提出一種以光纖通道-小型計算機(jī)系統(tǒng)接口(FC-SCSI)為核心的實(shí)時采集存儲方案。運(yùn)用鏈?zhǔn)讲檎冶斫Y(jié)構(gòu)以及動態(tài)流控技術(shù),提高FC-SCSI軟件協(xié)議存儲速率,解決多通道同步采集的大容量流數(shù)據(jù)實(shí)時落盤問題,實(shí)現(xiàn)具備大數(shù)據(jù)量采集、實(shí)時可靠存儲、便攜性能好的綜合數(shù)據(jù)處理存儲系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,在2.125 Gb光纖通道條件下,該系統(tǒng)可靠穩(wěn)定存儲速率為186.6 MB/s,達(dá)到2.125 Gb光纖通道理論速率的94.7%,與傳統(tǒng)FC-SCSI存儲方案的167.1 MB/s速率相比提升了11.7%。
光纖通道;現(xiàn)場可編程門陣列;多通道信號采集;高速信號;實(shí)時存儲;動態(tài)流控
隨著現(xiàn)代測量技術(shù)的迅猛發(fā)展,系統(tǒng)測量精度不斷提高,傳統(tǒng)單一傳感器模塊很難滿足高精度、大范圍的測量需求。各類傳感器陣列、傳感器網(wǎng)絡(luò)應(yīng)運(yùn)而生,導(dǎo)致大容量多通道測量數(shù)據(jù)實(shí)時采集與存儲技術(shù)面臨挑戰(zhàn),各種新機(jī)理、高性能信號處理存儲平臺的研制受到廣泛的重視[1]。單一的PCIExpress總線接口已經(jīng)難以滿足高速數(shù)據(jù)傳輸、運(yùn)算及存儲的綜合需求。例如,文獻(xiàn)[2]提出一種基于PCI Express總線和Aurora協(xié)議的高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計方案,支持雙單工同時收發(fā)以及PCIExpress通信模塊8管道工作模式,采用光纖通道傳輸存儲,數(shù)據(jù)傳輸速率達(dá)1.25 Gb/s。但是,隨著對系統(tǒng)帶寬與實(shí)時性的要求不斷提高,PCI Express總線技術(shù)帶寬較低,在存儲領(lǐng)域的應(yīng)用存在瓶頸。文獻(xiàn)[3]設(shè)計一種基于閃存的高速海量存儲模塊,符合嵌入式實(shí)時存儲領(lǐng)域?qū)Υ鎯捙c容量的要求,運(yùn)用高密度的NADN FLASH存儲陣列以及大規(guī)模的現(xiàn)場可編程門陣列(Field Programmable Gate A rray,F(xiàn)PGA)與數(shù)字信號處理器(Digital Signal Processor,DSP),實(shí)現(xiàn)了海量數(shù)據(jù)的超高速存儲。盡管閃存在存儲帶寬方面表現(xiàn)優(yōu)異,但是其外部接口的單一性,降低了系統(tǒng)的通用性與可擴(kuò)展性,另外,較高的成本也成為了限制閃存大規(guī)模運(yùn)用的制約因素。而光纖通道-小型計算機(jī)系統(tǒng)接口(Fibre Channel-small Computer System Interface,F(xiàn)C-SCSI)技術(shù)最初誕生于高速存儲需求,隨著硬盤矩陣和光纖通道(Fibre Channel,F(xiàn)C)技術(shù)的逐步成熟,F(xiàn)C-SCSI以其高可靠性、高帶寬、低延遲等優(yōu)點(diǎn),更適合成為高性能存儲領(lǐng)域主流協(xié)議。同時FC-SCSI存儲方案能與PC機(jī)上高性價比的SCSI總線硬盤很好兼容,具有良好的通用性與易擴(kuò)展性,應(yīng)用前景廣闊。文獻(xiàn)[4]提出一種光纖通道高性能協(xié)議引擎設(shè)計方案,在FPGA平臺上實(shí)現(xiàn)了2.125 Gb/s的光纖通道硬件核心模塊,為其在高性能信號處理系統(tǒng)中的應(yīng)用提供硬件基礎(chǔ),系統(tǒng)光纖通道存儲速率達(dá)160 MB/s。但FC-SCSI協(xié)議效率同樣是系統(tǒng)性能的重要影響因素,系統(tǒng)在軟硬件交互與FC-SCSI協(xié)議效率方面仍然存在優(yōu)化空間。
以上述研究為基礎(chǔ),本文提出一種基于FPGA和FC的多通道高速信號采集與實(shí)時存儲系統(tǒng),包括多通道采集技術(shù)與光纖通道高速存儲技術(shù),并針對系統(tǒng)的存儲速率開展系統(tǒng)測試。
本節(jié)提出一種高速大容量數(shù)據(jù)采集與實(shí)時存儲的解決方案,總體框架結(jié)構(gòu)如圖1所示,主要由數(shù)據(jù)采集模塊、信號處理模塊以及上位機(jī)PC組成。數(shù)據(jù)采集模塊負(fù)責(zé)數(shù)據(jù)的采集與發(fā)送,總共有16路同步高速采集通道與兩路信號發(fā)送通道。其中,16路高速ADC同步采集產(chǎn)生的實(shí)時數(shù)據(jù)流量高達(dá)每秒幾百兆字節(jié)甚至幾千兆字節(jié),對于鏈路帶寬和可靠性要求較高。VPX總線引入了目前最新串行總線技術(shù),在背板互聯(lián)性能上具備更高帶寬以及更為強(qiáng)大的交換能力,滿足信號處理模塊與數(shù)據(jù)采集模塊之間通過機(jī)箱背板相連的需求,實(shí)現(xiàn)了大容量數(shù)據(jù)的高速傳輸、處理及控制[5]。
圖1 系統(tǒng)總體框架結(jié)構(gòu)
信號處理模塊選取FPGA作為系統(tǒng)處理模塊的核心組成部分。FPGA具備其他硬件資源無法比擬的靈活性,擁有時鐘頻率高、內(nèi)部延時小、運(yùn)行速度快等優(yōu)點(diǎn)[6],為系統(tǒng)功能自定義、現(xiàn)場快速反應(yīng)提供了平臺基礎(chǔ)。此外,由于過大數(shù)據(jù)帶寬,F(xiàn)PGA內(nèi)部的Block RAM資源雖然具備較好的靈活性,但是兆級別的緩存空間難以滿足系統(tǒng)幾百兆字節(jié)帶寬的緩存需求,因此系統(tǒng)配備了大容量DDR2作為流數(shù)據(jù)的高速緩存,合理運(yùn)用乒乓緩存技術(shù),努力克服系統(tǒng)性能波動帶來存儲速率的影響,進(jìn)一步保證了系統(tǒng)的實(shí)時性與可靠性。
為了提高系統(tǒng)數(shù)據(jù)存儲速率與可靠性,充分發(fā)揮信號處理平臺的高效性,克服系統(tǒng)在存儲性能上的瓶頸,設(shè)計采用光纖通道作為系統(tǒng)存儲的傳輸媒介,以實(shí)現(xiàn)信號處理模塊與上位機(jī)PC的互連。相比于傳統(tǒng)的iSCSI存儲互聯(lián)技術(shù),光纖通道具有可靠性高、傳輸速率快、延遲低等優(yōu)點(diǎn),可以更好地應(yīng)對大容量帶寬、高實(shí)時性的任務(wù)需求,滿足大部分高速傳輸存儲系統(tǒng)設(shè)計。另外,TCP/IP在結(jié)構(gòu)上存在缺陷導(dǎo)致其存在潛在的安全攻擊,而FC則不存在這樣的問題,利用FC網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,可靠性更好。尤其是FC-SCSI協(xié)議的成熟,使得FC成為了存儲領(lǐng)域的主要互聯(lián)技術(shù)之一,為系統(tǒng)大容量數(shù)據(jù)實(shí)時存儲提供鏈路保障。
數(shù)據(jù)采集模塊主要實(shí)現(xiàn)對16通道中頻模擬信號的高精度數(shù)字化處理以及2通道數(shù)據(jù)的模擬化回放,板卡由4片模擬數(shù)字轉(zhuǎn)換器(Analog-to-Digital Converter,ADC)、1片數(shù)字模擬轉(zhuǎn)換器(Digital to Analog Converter,DAC)及其外圍電路構(gòu)成。其中,ADC是一款4通道、14位高速串行輸出的模數(shù)轉(zhuǎn)換器,最高轉(zhuǎn)換速率可達(dá)125 M s/s。DAC則是一款16位高動態(tài)范圍的數(shù)模轉(zhuǎn)換器DAC。
復(fù)雜的電磁環(huán)境對信號采集系統(tǒng)的可靠性要求很高[7],16個通道采集的數(shù)據(jù)必須保證嚴(yán)格同步,否則后期的數(shù)據(jù)協(xié)同處理將失去意義。盡管采用了高度同步的時鐘以及高精度的ADC,而制作工藝、走線長度、外界干擾、高時鐘頻率等因素的影響,都對通道間的同步提出了更高的要求。以板上走線為例,研究發(fā)現(xiàn),對于典型的FR4材料PCB板,其信號傳播速度存在以下公式[8]:
其中,Vp代表信號在FR4材料板子上的傳輸速率;C代表光在真空中的傳播速率;在非磁性介質(zhì)中μ= 1;εr代表介電常數(shù),F(xiàn)R4材料的典型值約為4.2。
根據(jù)公式估算得到,信號的傳播速度約為0.5倍光速,即1.5×108m/s。由于通道數(shù)量多,通道之間信號線長差異不可避免,假定2個通道之間走線長度相差15 cm,根據(jù)公式,計算得出線路延遲為1 ns。若FPGA的處理時鐘頻率為200 MHz,則周期為5 ns,延遲占比高達(dá)20%,增加FPGA時鐘對信號的正常采集的難度。
為了在數(shù)據(jù)分析之前,統(tǒng)一消除各因素帶來的通道間延遲,采取延遲補(bǔ)償?shù)姆绞叫拚?。FPGA提供的輸入輸出延遲補(bǔ)償模塊是FPGA上自帶的可編程絕對延遲單元,允許各輸入信號有獨(dú)立延遲,具備3種可選工作模式,使用靈活方便。若是FPGA工作時鐘頻率較低,對多路信號間相位差異的容忍度較好,可以通過調(diào)整FPGA內(nèi)部時鐘資源的相位來盡可能達(dá)到所有通道采樣要求。但是在高頻率工作時鐘下(超過200 MHz),難以通過統(tǒng)一調(diào)整FPGA內(nèi)部時鐘來滿足所有信號的正常采集。這時就需要借助FPGA提供的輸入輸出延遲補(bǔ)償模塊進(jìn)行鏈路訓(xùn)練。FPGA輸入輸出延遲補(bǔ)償模塊提供信號進(jìn)入處理模塊前的最后修正,為到達(dá)時間較早的信號通道提供相應(yīng)的延時補(bǔ)償,可以統(tǒng)一消除之前包括制作工藝、走線長度、外界干擾等所有因素帶來的共同影響,最終保證FPGA內(nèi)部時鐘采集到各通道數(shù)據(jù)基本同步,確保FPGA內(nèi)部數(shù)據(jù)處理的準(zhǔn)確性。經(jīng)分析得出,輸入輸出延遲補(bǔ)償模塊接收200 MHz信號時鐘,內(nèi)部分為64拍,調(diào)節(jié)步長為78.125 ps。修正后的通道延時小于80 ps,占時鐘周期的比例僅為1.6%,對于數(shù)字信號處理而言,其影響基本可以忽略[9]。
4.1 FC-SCSI軟件協(xié)議研究
系統(tǒng)中的高速信號采集部分運(yùn)用相對高性能的器件以及合理的組織架構(gòu),足以滿足帶寬性能需求。存儲速率的限制成為了系統(tǒng)的瓶頸,存儲方案的選擇至關(guān)重要。FC協(xié)議具有可靠性高、傳輸速率快、延遲低等優(yōu)點(diǎn),最早用于提高磁盤存儲的傳輸帶寬,隨著FC SAN的大規(guī)模應(yīng)用,F(xiàn)C在成為了存儲領(lǐng)域主要互聯(lián)協(xié)議之一。SCSI是一種計算機(jī)與智能設(shè)備之間的通用接口,如今已經(jīng)發(fā)展成為一種獨(dú)立的接口標(biāo)準(zhǔn)。其中,最為典型的就是SCSI硬盤,具有接口速度快、緩存容量大、CPU占有率低等優(yōu)點(diǎn),同時硬盤本身還支持熱插拔,大大提高了系統(tǒng)的靈活性與可擴(kuò)展性。方案選擇FC與SCSI的結(jié)合FC-SCSI作為系統(tǒng)存儲的核心解決方案,一方面利用FC的高帶寬提高系統(tǒng)存儲速率,另外充分發(fā)揮SCSI接口的靈活性,合理裁剪系統(tǒng)資源、分配磁盤大小,系統(tǒng)落盤的數(shù)據(jù)直接存儲于PC機(jī)硬盤當(dāng)中,提高系統(tǒng)的便攜性,同時,通過硬盤數(shù)量的熱插拔擴(kuò)展,也可以進(jìn)一步提升存儲系統(tǒng)的容量與續(xù)航能力。本節(jié)首先對傳統(tǒng)的FC-SCSI協(xié)議進(jìn)行探索與分析,隨后分別從協(xié)議開銷和動態(tài)流控的角度提出了相應(yīng)的優(yōu)化方案。
FC-SCSI負(fù)責(zé)SCSI界面協(xié)議與FC-4層協(xié)議相互映射,其交互方式如圖2所示。發(fā)送方發(fā)起FCCmd命令,告知接收方將要發(fā)送的數(shù)據(jù)大小,并等待接收方的回應(yīng)FC-XRdy。雙方握手完成之后,正式開始發(fā)送數(shù)據(jù)。每次發(fā)送數(shù)據(jù)包最大為2 MB,之后等待接收方的FC-XRdy,確認(rèn)數(shù)據(jù)已經(jīng)正確接收。當(dāng)最后一個數(shù)據(jù)包發(fā)送完畢之后,接收方根據(jù)接收到的所有數(shù)據(jù)進(jìn)行簡單校驗(yàn),確認(rèn)無誤之后發(fā)送FCStatus幀,表明整個數(shù)據(jù)分組發(fā)送結(jié)束。
圖2 FC-SCSI協(xié)議交互流程及開銷
在實(shí)時操作系統(tǒng)VxW orks中實(shí)現(xiàn)FC-SCSI協(xié)議,測試結(jié)果表明,光纖通道接收并處理一個2 MB數(shù)據(jù)包的時間大約為10 368μs,而一次握手(即一次FC-Cm d操作)的時間長達(dá)5 126μs,若整個數(shù)據(jù)分組僅發(fā)送一個2 MB數(shù)據(jù)包,協(xié)議開銷占比高達(dá)33%。
FC-SCSI協(xié)議規(guī)定了較為復(fù)雜的交互流程,雖然在一定程度上提升了傳輸數(shù)據(jù)的可靠性,但是在數(shù)據(jù)流量比較松散的隨機(jī)存儲環(huán)境中,存儲效率低下,直接移植FC-SCSI協(xié)議,并不能發(fā)揮系統(tǒng)的最佳性能,需要在協(xié)議實(shí)現(xiàn)上做一定的優(yōu)化。禁用FCCmd是業(yè)界常用的一種直接有效提升FC-SCSI協(xié)議效率的方法[10],但是FC-Cm d作為FC-SCSI協(xié)議的核心組成部分,對數(shù)據(jù)的可靠性、穩(wěn)定性起到了至關(guān)重要的作用。放棄FC-Cmd,在鏈路狀況不佳情況下,F(xiàn)C-SCSI協(xié)議的端到端數(shù)據(jù)無差錯傳輸很難得到保證。
4.2 鏈?zhǔn)讲檎矣成浣Y(jié)構(gòu)
協(xié)議開銷的大小依賴于有效數(shù)據(jù)與協(xié)議內(nèi)容的比例,一次分組操作中,有效數(shù)據(jù)的傳輸量越大,其傳輸效率越高。然而,由于系統(tǒng)緩存區(qū)大小的限制,一次傳輸?shù)挠行?shù)據(jù)量也將受限,一次性申請一塊較大內(nèi)存失敗的可能性也會更高,另外過大的緩存空間還會提高系統(tǒng)的延遲。為了盡可能獲得靈活合適的緩存區(qū)大小,提高寫存操作的隔離性與并行性,本文采取了鏈?zhǔn)骄彺娼Y(jié)構(gòu)。緩存結(jié)構(gòu)設(shè)計方案如圖3所示。由多個分散的小緩存區(qū),映射到一張鏈表組成一塊較大的緩沖區(qū)。一方面,鏈?zhǔn)浇Y(jié)構(gòu)相對連續(xù)存儲結(jié)構(gòu)更加靈活,可擴(kuò)展性更好;另一方面,分塊緩存,提供了更好的并行操作,提高系統(tǒng)資源利用效率。
圖3 鏈?zhǔn)讲檎矣成浣Y(jié)構(gòu)設(shè)計方案
查找映射結(jié)構(gòu)軟硬件交互流程如下:
Step1 構(gòu)建一張鏈表用于查找分散映射的內(nèi)存地址,并初始化硬件處理隊(duì)列(Hardware Queue,HWQ)與軟件處理隊(duì)列(Software Queue,SWQ)。
Step2 底層HW任務(wù)接收到存儲請求FCCm d,并呈遞給上層,SW隊(duì)列回復(fù)FC-XRdy,告之發(fā)送方數(shù)據(jù)接收準(zhǔn)備完成。
Step3 HW隊(duì)列通過PCIe以DMA的方式將光纖通道接收到的數(shù)據(jù)迅速調(diào)入內(nèi)存,并填充可用鏈表節(jié)點(diǎn),隨后發(fā)起中斷。
Step4 SW隊(duì)列捕獲到相應(yīng)中斷以后,查找填充的鏈表信息,并定位到內(nèi)存。最后發(fā)起SCSI存儲命令,將內(nèi)存中的數(shù)據(jù)有序搬到硬盤。與此同時,系統(tǒng)繼續(xù)并行執(zhí)行Step3。
采用查找映射結(jié)構(gòu),不僅解決了緩存空間限制,硬件操作的分離,也提供了更好的并行性。根據(jù)協(xié)議開銷占比公式:
已知處理2 MB數(shù)據(jù)包的時間Tdata約為10 368μs,F(xiàn)C-Cmd操作的時間Tprotocol約為5 126μs。綜合考慮系統(tǒng)緩存空間大小及延時相關(guān)因素,盡可能減少FCSCSI軟件協(xié)議帶來的上層開銷,如果選取查找隊(duì)列映射空間為32 MB,即Lqueue=16,則計算得到理論效率η約為97.0%。理論有效傳輸速率與理論效率存在以下關(guān)系:
其中,v′代表FC無損速率,計算結(jié)果為192.9 MB/s。在32 MB查找空間下,最終理論有效傳輸速率為187.1 MB/s。
4.3 用戶層動態(tài)流控技術(shù)
鏈?zhǔn)讲檎矣成浣Y(jié)構(gòu)在一定程度上緩解了FCCmd握手帶來的協(xié)議開銷,提高了FC-SCSI協(xié)議的實(shí)現(xiàn)效率。但是,仍然無法解決每一個2 MB數(shù)據(jù)包帶來的FC-XRdy開銷。尤其當(dāng)數(shù)據(jù)包出錯時,引起長時間的數(shù)據(jù)校驗(yàn),延遲了FC-XRdy的回復(fù)時間。采取的解決辦法是模仿FC流量控制機(jī)制,采用基于信用度(Credit)的緩存區(qū)策略[11],如圖4所示,即雙方收發(fā)數(shù)據(jù)前,協(xié)定允許的最大信用度(類似TCP/ IP協(xié)議中的窗口大?。T谛庞枚葍?nèi)持續(xù)不斷發(fā)包而不用等待接收方的確認(rèn),來避免因?yàn)槟硞€數(shù)據(jù)包的出錯帶來的整條鏈路延遲。此外,實(shí)驗(yàn)測試發(fā)現(xiàn),SCSI總線的磁盤陣列,存儲性能上存在巨大的波動。最高存儲速率可以超過200 MB/s,而最差情況下只有140 MB/s~150 MB/s。過大的Credit在磁盤陣列效率低下的情況下,會給緩存區(qū)帶來巨大的壓力,甚至溢出導(dǎo)致丟包現(xiàn)象。而采取較為保守的Credit策略,則無法發(fā)揮磁盤陣列的最大效益。所以,本節(jié)提出一種動態(tài)流控技術(shù),合理平衡緩存區(qū)的壓力,同時兼顧磁盤陣列的性能。
圖4 基于信用度的流控機(jī)制
有關(guān)研究表明,瞬時的信用度與FC數(shù)據(jù)發(fā)送以及處理速度存在以下關(guān)系[12]:其中,Creditn代表該時刻的信用度大??;Creditn-1代表前一時刻的信用度大??;u代表Host端FC數(shù)據(jù)發(fā)送速率;v代表Slave端FC數(shù)據(jù)接收處理速率;Δt取值為發(fā)送端與接收端之間鏈路的單程傳播時延;LFC為FC數(shù)據(jù)的長度;M為一個開關(guān)量,用于判斷鏈路信用度是否為0,取值如下[12]:
對式(5)稍作化簡得到:
假定鏈路單程傳輸時延Δt相對固定,每次發(fā)送的FC數(shù)據(jù)長度LFC也一致。信用度的變化量取決于,上一時刻Slave數(shù)據(jù)處理速率與本時刻Host數(shù)據(jù)發(fā)送速率的速率差。磁盤矩陣存儲性能不穩(wěn)定,即v存在巨大波動,若是v迅速減小,信用度有可能迅速變?yōu)?,導(dǎo)致發(fā)送方停止發(fā)數(shù),而接收方緩存仍然留有余量。
為了最大化避免此類現(xiàn)象的發(fā)生,根據(jù)4.2節(jié)中的查找隊(duì)列長度對式(5)進(jìn)行修正,即在協(xié)議上層對流控策略進(jìn)行動態(tài)修正,使其盡可能發(fā)揮最大性能。修正后的結(jié)果如式(8)所示。其中,Lmax代表查找隊(duì)列最大長度;Lqueue為隊(duì)列當(dāng)前長度。與式(5)相比,采用分段動態(tài)流控技術(shù),即設(shè)定流控閾值為一半查找隊(duì)列長度。當(dāng)查找隊(duì)列滿負(fù)荷,立即將信用度置0,停止發(fā)數(shù)。在查找隊(duì)列空間相對較為充足但超過閾值時,根據(jù)雙方速度對比確定信用度。處理速率慢于發(fā)送速率,保持信用度不變,使查找隊(duì)列緩存穩(wěn)步增長,以保證其充分利用;否則,強(qiáng)制擴(kuò)大信用度至閾值大小,爭取在磁盤陣列性能爆發(fā)點(diǎn)獲得高效率,提高系統(tǒng)整體性能。
5.1 測試環(huán)境
高性能信號采集處理存儲系統(tǒng)測試平臺如圖5所示。圖中2臺模擬信號發(fā)生器(字母A),為射頻發(fā)射器提供基頻信號源,字母B是一塊射頻傳感器陣列,板上總共包含16個射頻傳感器,產(chǎn)生16個通道數(shù)據(jù),字母C代表數(shù)據(jù)采集模塊,通過VPX背板與前面的信號處理板(字母D)相連,D板完成數(shù)據(jù)處理之后,通過光纖通道,將數(shù)據(jù)實(shí)時傳輸至光纖通道適配卡(字母E),E卡置于機(jī)箱的PCIe槽位中,作為主機(jī)的PCIe設(shè)備,發(fā)起SCSI操作將數(shù)據(jù)存人磁盤陣列(字母F)。
圖5 系統(tǒng)測試平臺
5.2 緩存區(qū)實(shí)驗(yàn)
根據(jù)FC-SCSI協(xié)議效率分析得知,對于協(xié)議開銷而言,緩存區(qū)空間越大,一次完整的數(shù)據(jù)分組操作所傳輸?shù)挠行?shù)據(jù)量就可能越大,相應(yīng)的協(xié)議開銷就能更小。然而,對于實(shí)時數(shù)據(jù)處理系統(tǒng)而言,系統(tǒng)延遲大小也是系統(tǒng)的重要性能指標(biāo),隨著緩沖區(qū)空間的不斷增大,必然帶來系統(tǒng)延遲的提高與不確定性。
為了充分了解緩存區(qū)與協(xié)議效率以及系統(tǒng)延遲這三者之間的關(guān)系,尋找合理的緩存空間大小,本文進(jìn)行了緩存區(qū)大小實(shí)驗(yàn),結(jié)果如圖6所示。
圖6 緩存區(qū)實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果中緩存區(qū)大小以2的冪次方增長,為了方便觀察,已經(jīng)將緩存區(qū)大小坐標(biāo)軸做了對數(shù)處理。在緩存區(qū)空間較小區(qū)域,隨著緩存區(qū)不斷增大,系統(tǒng)存儲延時提升并不明顯,F(xiàn)C-SCSI協(xié)議開銷相當(dāng)大,即有效數(shù)據(jù)存儲效率很低。緩存區(qū)空間2 MB~32 MB范圍內(nèi),F(xiàn)C-SCSI協(xié)議開銷從80%左右迅速下降到10%以下,與此同時,系統(tǒng)存儲延時提升依舊不明顯,系統(tǒng)整體性能逐步變好。
但是,在緩存區(qū)空間大于32 MB數(shù)據(jù)段,情況則剛好相反,系統(tǒng)存儲延時迅速攀升,而FC-SCSI協(xié)議開銷降低十分有限,系統(tǒng)整體性能不升反降。
綜上所述,系統(tǒng)緩存區(qū)在32 MB大小左右能夠獲得系統(tǒng)的最佳性能。
5.3 光纖通道存儲速率測試
光纖通道存儲速率測試平臺在圖5的基礎(chǔ)上,加入光纖通道分析儀實(shí)時監(jiān)控速率,并記錄流數(shù)據(jù)的最低平均速率作為參考指標(biāo)。分別對8 KB~2 MB大小的數(shù)據(jù)包做了存儲性能測試,結(jié)果如圖7所示。圖7記錄了3種不同情況下的存儲速率,分別對應(yīng)未做優(yōu)化的FC-SCSI協(xié)議存儲實(shí)現(xiàn),采用32 MB查找結(jié)構(gòu)實(shí)現(xiàn)的FC-SCSI存儲,以及在此基礎(chǔ)上加入動態(tài)流控技術(shù)的實(shí)現(xiàn)。
圖7 光纖通道存儲速率對比
觀察結(jié)果發(fā)現(xiàn),純FC-SCSI實(shí)現(xiàn)方案整體速率偏低,直接使用難以滿足項(xiàng)目需求。在采用查找結(jié)構(gòu)優(yōu)化之后,整體性能較純FC-SCSI有了較大提升,尤其是中小數(shù)據(jù)包大小性能提升更為明顯。然而,1 MB以上的較大數(shù)據(jù)包存儲速率卻并不理想,與純FC-SCSI差別不大。而動態(tài)流控技術(shù)帶來的性能提升則更多地體現(xiàn)在大數(shù)據(jù)包方面。
純FC-SCSI實(shí)現(xiàn)方案速率的測試結(jié)果與4.1節(jié)給出的分析基本吻合,性能主要受制于協(xié)議開銷。查找結(jié)構(gòu)為FC數(shù)據(jù)傳輸提供了更加靈活的緩存以及更高的并行性。但是由于磁盤陣列存儲速率的不穩(wěn)定性,導(dǎo)致存儲速率難以突破170 MB/s。
動態(tài)流控技術(shù)嘗試以緩存隊(duì)列作為反饋,動態(tài)調(diào)節(jié)信用度,以克服磁盤陣列性能波動帶來的影響,提高磁盤陣列使用效率。在2 MB數(shù)據(jù)分組大小點(diǎn),存儲速率由167.1 MB/s上升到186.6 MB/s,與理論速度187.1 MB/s基本相符,速率提升11.7%。文獻(xiàn)[4]提出的FC處理方案,其速率最終典型值為1.280 Gb/s,即160 MB/s,同樣是在2.125 Gb光纖通道條件下,本文系統(tǒng)方案速率提升16.6%。另外,根據(jù)FC協(xié)議,考慮FC協(xié)議存在的8 bit~10 bit編碼與首部開銷,2.125 Gb FC的理論有效帶寬約為197 MB/s。系統(tǒng)實(shí)際測試有效帶寬為186.6 MB/s,帶寬利用率達(dá)到94.7%,符合設(shè)計需求。
本文介紹一種基于FC-SCSI的多通道高速信號采集與實(shí)時存儲系統(tǒng)設(shè)計與實(shí)現(xiàn)方案。系統(tǒng)具備多通道同步采集、高速實(shí)時存儲,便攜性好等特點(diǎn),具備廣泛的適用性。其中,2.125 Gb FC的平均存儲速率達(dá)到186.6 MB/s,系統(tǒng)測試結(jié)果符合理論估計,滿足項(xiàng)目使用需求。今后將結(jié)合高速固態(tài)硬盤技術(shù)進(jìn)一步提高系統(tǒng)性能。
[1] 吳長瑞,孔 超,冀映輝,等.寬帶相控陣?yán)走_(dá)高性能信號處理系統(tǒng)[J].計算機(jī)工程,2012,38(9):240-243.
[2] 丁元明,李花芳,劉春玲,等.衛(wèi)星通信高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計[J].計算機(jī)工程,2012,38(9):252-254.
[3] 王立峰,胡善清,劉 峰,等.基于閃存的高速海量存儲模塊設(shè)計[J].計算機(jī)工程,2011,37(7):255-257.
[4] 趙 備,余 鋒,胡 璇,等.基于FPGA的光纖通道協(xié)議引擎的設(shè)計與實(shí)現(xiàn)[J].浙江大學(xué)學(xué)報:工學(xué)版,2009,43(9):1604-1608.
[5] 廖興文.基于VPX的數(shù)據(jù)處理平臺實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[6] 邵 磊,倪 明.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程,2011,37(19):221-223.
[7] 饒家寧,安軍社.星載高速數(shù)據(jù)處理單元的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程,2012,38(7):203-206.
[8] Eric B.信號完整性分析[M].李玉山,李麗平,楊 剛,譯.北京:電子工業(yè)出版社,2012.
[9] Xilinx.Xilinx Virtex-5 FPGA User Guide(UG190)[EB/OL].(2009-03-19).http://class.ece.iastate.edu/cpre583/ref/EDK/ Virtex5-ug190.pdf.
[10] 童 薇,袁小燕,馮 丹,等.光纖通道的高速低延遲RDMA協(xié)議研究[J].華中科技大學(xué)學(xué)報:自然科學(xué)版,2011,39(6):71-74.
[11] 查 翔,南建國.光纖通道中緩沖區(qū)分配策略的優(yōu)化[J].計算機(jī)工程與設(shè)計,2012,33(2):450-454.
[12] 秦磊華,周敬利,余勝生.一種改進(jìn)的光纖通道存儲擴(kuò)展流量控制方法[J].電子學(xué)報,2009,37(10):2343-2347.
編輯 劉 冰
Multi-channel High-speed Signal Acquisition and Real-time Storage System Based on FC-SCSI
SHENG Ding1,XING Qianjian1,MA Zhenguo1,ZHAO Bei1,2
(1.School of Biomedical Engineering&Instrument Science,Zhejiang University,Hangzhou 310027,China;2.School of Computing Science and Technology,Hangzhou Dianzi University,Hangzhou 310027,China)
Traditional multi-channel signal acquisition and storage system is facing a huge task of data collection,the lack of adequate transmission bandwidth and storage capacity in real-time.This paper proposes a Fibre Channel-small Computer System Interface(FC-SCSI)as the core of the real-time acquisition and storage solutions.It uses chain lookup table structure and dynamic flow control technology to improve the FC-SCSI software protocol storage efficiency,focusing on solving a large-capacity multi-channel synchronous stream data off the disk in real-time acquisition problem s,and it realizes a large amount of data acquisition,real-time and reliable storage,portability and good performance integrated data processing storage system s.Experimental results show that under 2.125 Gb Fibre Channel(FC),reliable and stable storage speed is 186.6 MB/s,which is 94.7%of 2.125 Gb theoretical rate of FC,and the speed is enhanced by 11.7%com pared with 167.1 MB/s of traditional FC-SCSI storage solutions.
Fibre Channel(FC);Field Programmable Gate Array(FPGA);multi-channel signal acquisition;high-speed signal;real-time storage;dynamic flow control
盛 丁,邢錢艦,馬振國,等.基于FC-SCSI的多通道高速信號采集與實(shí)時存儲系統(tǒng)[J].計算機(jī)工程,2015,41(11):120-125,130.
英文引用格式:Sheng Ding,Xing Qianjian,Ma Zhenguo,et al.Multi-channel High-speed Signal Acquisition and Realtime Storage System Based on FC-SCSI[J].Computing Engineering,2015,41(11):120-125,130.
1000-3428(2015)11-0120-06
A
TP391
10.3969/j.issn.1000-3428.2015.11.021
浙江省自然科學(xué)基金資助項(xiàng)目(Y1101336)。
盛 ?。?991-),男,碩士研究生,主研方向:高性能嵌入式平臺;邢錢艦、馬振國、趙 備,博士。
2014-11-24
2014-12-18 E-m ail:369430825@qq.com