Aurora 8B/10B、PCIe 2.0、SRIO 2.0三種協議比較

在高性能雷達信號處理機研製中,高速串行總線正逐步取代並行總線。業界普遍使用的Xilinx公司Virtex-6系列FPGA支持多種高速串行通訊協議,本文針對其中較爲經常使用的Aurora 8B/10B和PCI Express 2.0,Serial RapidIO 2.0三種協議進行了測試及對比分析。首先搭建了基於Virtex-6 FPGA的高速串行協議測試平臺;而後設計並分別實現了三種協議的高速數據通訊,測算了協議的實際傳輸速率;最後結合測試結果,從協議層次結構、鏈路數目、鏈路線速率、數據傳輸方式、協議開銷、拓撲結構、設備尋址方式、應用領域等方面對三種協議進行了比較。本文研究工做可爲三種協議的選用、測試和工程實現提供參考。html

 

1 引言api

 

隨着雷達帶寬和AD採樣率的提升,在高性能雷達信號處理機研製中,系統對數據傳輸帶寬的要求不斷增長,高速串行總線正逐步取代傳統的並行總線。緩存

 

Xilinx公司推出的Virtex-6系列FPGA,在片上集成了固化的GTX模塊,以提供高速串行通訊支持。同時Xilinx公司提供有多種串行通訊協議IP核,便於用戶進行開發。Aurora 8B/10B,PCI Express 2.0和Serial RapidIO 2.0是其中較爲經常使用的三種協議。目前已有衆多文獻涉及到三種協議基於FPGA的實現方案。然而這些方案未能充分發揮協議性能,存在線速率較低(僅爲2.5Gb/s)或未實現多通道綁定。針對上述問題,本文基於Virtex-6 FPGA,分別實現了三種協議在4x鏈路,5.0Gb/s線速率模式下的數據通訊,測得協議的實際傳輸速率,並對三種協議的特色與應用進行了對比分析。服務器

 

2 測試平臺簡介網絡

 

本文以實驗室自行開發設計的PCIe光纖接收處理板(如下簡稱測試電路板)爲測試平臺。測試電路板的結構圖和實物圖分別如圖1,圖2所示。其中,FPGA選用XC6VLX240T-2FF1156,該芯片含20個GTX收發器,鏈路線速率可達6.6Gb/s。DSP選用TMS320C6678,該芯片含有SRIO接口,支持1x、2x和4x鏈路。光電轉換模塊選用FCBG410QB1C10,它包含4條鏈路,帶寬可達40Gb/s。故而測試電路板的硬件設計符合本測試對數據傳輸速率的要求。函數

 

 

圖1 測試電路板模塊結構和鏈路鏈接圖
圖1 測試電路板模塊結構和鏈路鏈接圖
性能

 

圖2 測試電路板實物圖
圖2 測試電路板實物圖
測試

 

 

如圖3所示,將測試電路板插入服務器主板的PCIe插槽中,並將光纖接入測試電路板,完成測試平臺的搭建。本測試中,PCI Express 2.0協議用於實現FPGA與服務器的數據通訊,Serial RapidIO 2.0協議用於實現FPGA與DSP的數據通訊,Aurora 8B/10B協議用於實現FPGA的光纖自發自收通訊。因爲三種協議都在物理層進行8B/10B編碼,故在本測試工做模式下,它們的極限速率均爲編碼

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

 

 

圖3 測試平臺搭建
圖3 測試平臺搭建
spa

 

 

3 AURORA 8B/10B通訊測試

 

Aurora 8B/10B協議是Xilinx公司針對高速傳輸開發的一種可裁剪的輕量級鏈路層協議,經過一條或多條串行鏈路實現兩設備間的數據傳輸。協議Aurora協議能夠支持流和幀兩種數據傳輸模式,以及全雙工、單工等數據通訊方式。

 

本測試中,Aurora 8B/10B IP核配置爲雙工、流模式,參考時鐘頻率250MHz。

 

使用ChipScope軟件觀察FPGA相關信號如圖4所示。觀察RX_SRC_RDY_N能夠發現,平均每4992週期出現7個週期的數據無效信號。因爲接收數據時鐘頻率爲250MHz,數據位寬爲64bit,故本測試中,Aurora 8B/10B協議單向傳輸速率爲,

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

 

圖4 Aurora 8B/10B協議通訊測試信號波形
圖4 Aurora 8B/10B協議通訊測試信號波形

 

下面分析協議理論傳輸速率和實際通訊效率。該協議的幀格式比較簡單,除2字節的起始標誌,2字節終止標誌和至多1字節的填裝字符外,其他爲數據部分。本測試採用的流模式是以無結尾的幀方式實現。故協議除8B/10B編碼外,基本上不存在其餘開銷。故根據(1)式可得,協議的理論速率爲2.0GB/s,協議的實際通訊效率爲99.75%。

 

4 PCI Express 2.0通訊測試

 

PCI Express(簡稱PCIe)總線技術是取代PCI的第三代I/O技術。PCIe採用串行點對點互連,容許每一個設備擁有專屬的一條鏈接,不爭奪帶寬資源,同時保證了數據的完整性。PCI Express 2.0協議的鏈路線速率達到5Gb/s,最高支持32x鏈路。

 

本測試中,PCIe 2.0通訊測試經過FPGA對服務器內存的DMA讀/寫操做來實現。

 

服務器方面,本測試選用Windriver軟件進行PCIe驅動程序的開發。利用該軟件提供的PCIe驅動程序及用戶接口函數,編寫符合本測試功能需求的程序。

 

FPGA方面,本測試經過設計用戶模塊,實現對PCIe IP核的控制,完成DMA讀/寫操做。FPGA模塊結構如圖5所示。

 

 

圖5 PCIe 2.0通訊測試FPGA模塊結構

 

圖5 PCIe 2.0通訊測試FPGA模塊結構

 

爲便於服務器對測試電路板FPGA進行控制,在FPGA的PCIe存儲空間模塊中,定義了若干控制/狀態寄存器,這些寄存器的做用有:DMA讀/寫初始化,控制DMA讀/寫的啓動與中止,標誌一次DMA傳輸是否完成,設置一次DMA傳輸的數據量等。

 

服務器經過PCIe接口對測試板FPGA控制/狀態寄存器進行讀/寫操做,來控制DMA的進程。每次DMA完成後,處理板FPGA會向服務器CPU發送一次中斷。服務器對測試電路板FPGA DMA傳輸的控制流程如圖6所示。

 

 

圖6 PCIe 2.0 DMA傳輸控制流程圖
圖6 PCIe 2.0 DMA傳輸控制流程圖

 

 

本測試將TLP包載荷數設爲256Bytes(IP核容許的最大值),每次DMA傳輸的TLP包的數量爲16384,故每次DMA傳輸的數據量爲4MB。使用ChipScope軟件觀察FPGA內部的PCIe 2.0 DMA讀/寫相關信號,如圖7,圖8所示。本測試開發了PCIe讀寫功能測試軟件,實現PCIe傳輸數據量和傳輸速率的實時顯示。傳輸速率經過1s內DMA傳輸完成的次數來計算。測試結果如圖9(a)、(b)所示。PCIe 2.0 DMA讀的數據傳輸速率爲1.770GB/s,DMA寫的數據傳輸速率爲1.820GB/s。

 

 

圖7 PCIe 2.0 DMA讀測試信號波形
圖7 PCIe 2.0 DMA讀測試信號波形

 

圖8 PCIe 2.0 DMA寫測試信號波形
圖8 PCIe 2.0 DMA寫測試信號波形

 

圖9 PCIe 2.0 DMA讀寫速率測試結果(a)DMA讀測試(b)DMA寫測試
圖9 PCIe 2.0 DMA讀寫速率測試結果(a)DMA讀測試(b)DMA寫測試

 

 

下面分析並計算本測試條件下PCIe 2.0 DMA讀/寫的理論傳輸速率和實際通訊效率。

 

PCIe 2.0協議主要開銷爲8B/10B編碼開銷和數據包傳送開銷。PCIe總線以包的形式在不一樣器件之間交換信息。數據在進入處理層後會被封裝一個包頭,該包頭長度在32bit地址下爲12字節(本測試採用32bit地址)。當數據包進入數據鏈路層後,會添加2字節的序列號和4字節的LCRC字段。數據包進入物理層後,使用1字節的開始字符和1字節的結束字符將其封裝成幀。

 

在DMA寫測試中,FPGA每發送一次存儲器寫報文(含256字節數據)會帶來20字節的額外開銷。在DMA讀測試中,FPGA向服務器發送存儲器讀報文,並由服務器返回完成報文(含256字節數據)。每返回一次完成報文會帶來20字節的額外開銷。因爲PCIe 2.0定義了流量控制緩存管理機制,容許服務器返回完成報文的同時接收FPGA發來的存儲器讀報文,故DMA讀測試中可忽略FPGA發送存儲器讀報文帶來的開銷。

 

故PCIe 2.0 DMA讀/寫的理論速率相同,均爲

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

DMA讀的實際通訊效率爲

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

DMA寫的實際通訊效率爲

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

5 Serial RapidIO 2.0通訊測試

 

RapidIO是針對嵌入式系統芯片間和板間互連而設計的一種開放式的基於包交換的高速串行標準,已在電信、國防等行業大量使用。

 

Serial RapidIO(簡稱SRIO)是物理層採用串行差分模擬信號傳輸的RapidIO標準。SRIO 2.0協議性能進一步加強,鏈路線速率可達6.25Gb/s,在電氣層支持熱插拔,並新添了控制符號和空閒模式功能。

 

本測試以測試電路板FPGA做爲發起端,以測試電路板DSP做爲目標端。經過FPGA向DSP發送SWRITE包,進行SRIO 2.0寫測試,經過FPGA向DSP發送NREAD包,DSP向FPGA返回RESPONSE包,進行SRIO 2.0讀測試。

 

FPGA模塊結構如圖10所示。經過VIO控制模塊,可對包事務類型、包載荷、發送地址等參數進行設置。本測試將包載荷設爲256字節,讀/寫內存空間設爲DSP的MSM(Multi-core Shared Memory)空間。

 

 

圖10 SRIO 2.0通訊測試FPGA模塊結構
圖10 SRIO 2.0通訊測試FPGA模塊結構

 

 

DSP方面,須要進行相關寄存器的配置,完成SRIO的初始化,使DSP做爲目標端處理FPGA發來的SRIO讀/寫請求。DSP主要配置流程包括使能SRIO接口,串並轉換模塊,鏈路數目,鏈路線速率,設備ID等參數的設置。

 

使用ChipScope軟件觀察FPGA相關信號,如圖11,圖12所示。

 

 

圖11 SRIO 2.0讀測試信號波形
圖11 SRIO 2.0讀測試信號波形

 

圖12 SRIO 2.0寫測試信號波形
圖12 SRIO 2.0寫測試信號波形

 

 

本測試中,FPGA每連續發送16384個SWRITE或NREAD包後,都會向DSP再發送1個門鈴消息。所以,能夠經過計算DSP收到的相鄰兩個門鈴的時間間隔來計算SRIO讀/寫速率。

 

經測算,當FPGA執行SRIO讀/寫操做時, DSP接收的相鄰兩個門鈴的平均時間間隔爲分別爲2.490ms,2.266ms。故SRIO 2.0讀操做的數據傳輸速率爲,

 

 

 

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

SRIO 2.0寫操做的數據傳輸速率爲,

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

下面計算本測試條件下SRIO讀/寫的理論數據傳輸速率和實際通訊效率。

 

SRIO 2.0協議的主要開銷爲物理層編碼開銷和數據包開銷。本測試採用8位路由和34位偏移地址。該條件下SWRITE事務、RESPONSE事務的數據包結構分別如圖1三、圖14所示。

 

 

圖13 SRIO 2.0 SWRITE包結構
圖13 SRIO 2.0 SWRITE包結構

 

圖14 SRIO 2.0 RESPONSE包結構
圖14 SRIO 2.0 RESPONSE包結構

 

 

由圖13可知,FPGA每發送一個SWRITE包,會帶來10字節的開銷,另外,DSP會返回一個4字節確認接收符號。故本測試中SRIO寫操做的理論數據傳輸速率爲,

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

SRIO寫操做的實際通訊速率爲,

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

與PCIe 2.0相似,SRIO 2.0能夠流水地處理多個未完成的操做,應答開銷與發送開銷之間沒有競爭。故而SRIO 2.0讀操做可只考慮RESPONSE包開銷而忽略NREAD包開銷。由圖14可知,DSP每返回一個RESPONSE包,會帶來8字節的開銷。另外,DSP接收到NREAD包後,會返回一個4字節確認接收符號,FPGA接收到響應包後,也會返回一個4字節確認接收符號。故本測試中SRIO讀操做的理論數據傳輸速率爲,

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

SRIO讀操做的實際通訊效率爲,

 

 

基於Virtex6FPGA的三種串行通訊協議測試及對比

 

SRIO讀操做的實際通訊效率較低的緣由是DSP響應FPGA讀請求的時間較長。

 

 

 

 

 

6 三種協議的分析比較

 

本測試中,Aurora 8B/10B、PCIe 2.0、SRIO 2.0均實現了在4x模式下的高速數據傳輸。下面將結合測試結果和協議的具體內容,從如下各方面對三種協議進行比較。

 

(1)協議分層結構

 

Aurora 8B/10B協議僅定義了鏈路層和物理層。屬於較爲底層的協議。SRIO 2.0協議定義了物理層,傳輸層和邏輯層,PCIe 2.0協議定義了物理層,數據鏈路層,事務層和軟件層,這兩種協議的內容和功能均比Aurora 8B/10B協議複雜。

 

(2)鏈路數目和鏈路線速率

 

Aurora 8B/10B協議在鏈路數目和鏈路線速率選擇上比較靈活,鏈路數目能夠在1x至16x之間自由選擇,鏈路線速率能夠在0.5Gb/s到6.6Gb/s間自由選擇。PCIe 2.0支持1x,2x,4x,8x,12x,16x,32x鏈路,鏈路線速率支持2.5Gb/s和5.0Gb/s。SRIO 2.0支持1x、2x、4x、8x和16x鏈路,鏈路線速率支持1.25Gb/s、2.5Gb/s、3.125Gb/s、5.0Gb/s和6.25Gb/s。

 

綜上可知,在鏈路線速率選擇範圍的普遍性和靈活性上,

 

Aurora 8B/10B>Srio 2.0>Pcie 2.0,

 

鏈路數目選擇的靈活性上,

 

Aurora 8B/10B>Pcie 2.0>Srio 2.0。

 

最大容許的鏈路數目上,

 

Pcie 2.0>Aurora 8B/10B=Srio 2.0。

 

(3)數據傳輸方式

 

Aurora 8B/10B協議在數據封裝過程當中未添加地址,設備號等信息,不能對目標設備的存儲空間進行讀寫。

 

PCIe 2.0可經過Memory Write,Memory Read,I/O Write,I/O Read事務對目標設備地址空間進行讀寫,但必須具有對目標設備地址空間的可見性。

 

SRIO 2.0數據傳輸方式更爲靈活。在具有對目標設備地址空間可見性的狀況下,可經過NWRITE,NWRITE_R,SWRITE,NREAD,ASTOMIC等事務對目標設備的地址空間進行直接讀寫。在不具有目標設備地址空間可見性的狀況下,SRIO還提供了消息傳遞機制。用戶將數據和信箱號經過MESSAGE事務發至目標設備,目標設備根據信箱號與自身存儲空間的映射關係將數據寫入存儲空間。

 

綜上可知,數據傳輸方式的靈活性上,SRIO 2.0>PCIe 2.0>Aurora 8B/10B。

 

(4)協議開銷和數據傳輸速率

 

三種協議均在物理層有20%的8B/10B編碼開銷。Aurora 8B/10B協議除此以外基本上無其它開銷,而PCIe 2.0,SRIO 2.0還存在數據包開銷。與PCIe 2.0相比,SRIO 2.0的數據包格式更爲簡潔,在相同的包載荷大小下,開銷更低。以256B包載荷爲例,SRIO 2.0的數據包開銷最低爲5.4%(SWRITE事務),而PCIe 2.0的數據包開銷最低爲7.3%(Memory Write事務)。然而,PCIe 2.0協議最大容許的包載荷爲4KB,而SRIO最大容許的包載荷爲256B。故PCIe 2.0協議可經過增大包載荷來達到更低的數據包開銷。(4KB包載荷下,PCIe 2.0的數據包開銷爲0.5%)

 

協議的理論傳輸速率由通道帶寬和協議開銷決定,而協議的實際傳輸速率還受設備自己性能的影響。本測試中, PCIe 2.0 DMA讀操做數據傳輸速率速率高於SRIO 2.0 NREAD的主要緣由是服務器對FPGA的PCIe讀請求的響應要快於DSP對FPGA的SRIO讀請求響應。

 

(5)設備尋址

 

PCIe協議中,各設備共享一個PCIe地址空間。整個PCIe地址空間先被分紅塊,根據後來的下級總線這些塊再進一步劃分。樹形結構中的每一個設備在整個地址空間映射中被指定一個地址空間,經過執行所有地址譯碼來查找設備。在支持帶有大容量存儲器的設備系統中,這種設備尋址機制不適合靈活拓展。

 

SRIO採用基於設備ID尋址的方案。採用該方案,使得拓撲結構的變化僅須要更新事務路徑中的設備,從而使系統的拓展與拓撲結構的更改比PCIe協議更爲靈活。

 

Aurora 8B/10B協議未定義設備尋址機制。

 

(6)網絡拓撲

 

PCIe規定了生成樹拓撲結構,這種結構適合於單個主機,多個外圍設備通訊模式,但限制了端點數量,且不支持任意節點與節點間直接通訊。PCIe的典型網絡拓撲結構如圖15所示。

 

 

圖15 PCIe網絡拓撲結構
圖15 PCIe網絡拓撲結構

 

 

SRIO的拓撲結構比PCIe更爲靈活,可設計成網型,星型,雛菊鏈或樹形拓撲結構,支持節點對節點通訊,各節點間可對等的發起數據傳輸。

 

Aurora 8B/10B協議不支持網絡拓撲結構。

 

(7)應用領域

 

Aurora 8B/10B協議做爲Xilinx公司開發的輕量級鏈路層協議,協議開銷小,鏈路數目和鏈路線速率選擇靈活,適用於兩片Xilinx FPGA之間的數據流傳輸。用戶也可在其基礎上開發高層協議。但其應用範圍較爲有限,還沒有見在其餘芯片中使用。

 

PCIe 2.0做爲PCI總線的繼承,帶寬,拓展靈活性大大提升,適合於主機與外部設備的互聯,在PC/Server平臺、VPX平臺有普遍應用,如聲卡、顯示卡、網絡設備(包括以太網、Modem)、光纖接口卡、磁盤陣列卡等。

 

SRIO 2.0做爲一種高性能包交換的互連技術,數據傳輸方式和拓撲結構靈活,爲多處理器系統的實現提供便利,普遍用於嵌入式系統內的微處理器、DSP、通訊和網絡處理器、系統存儲器之間的高速數據傳輸。

 

7 結束語

 

本文基於Virtex-6 FPGA芯片,對Aurora 8B/10B,PCIe2.0,SRIO 2.0三種串行通訊協議進行了速率測試,並經過分析協議開銷和協議的流控制機制,計算了三種協議的理論傳輸速率和協議實際通訊效率。結合測試結果和三種協議的具體內容,對三種協議的相關參數和應用領域進行了對比分析。本文測試模塊結構的設計可爲三種協議的工程實現提供借鑑,協議實際傳輸速率的測算和協議理論傳輸速率的分析計算可爲三種協議在不一樣平臺和工做模式下的測試提供參考。在進行雷達信號處理機數據傳輸方案的設計時,可參照本文對三種協議的性能分析,根據系統自身的特色及對數據傳輸速率的要求,合理選擇協議類型和協議的工做模式。

 

 

轉載自:http://www.autooo.net/classid34-id136742.html

相關文章
相關標籤/搜索