FPGA與PCI-E


 


從並行到串行:

PCI Express(又稱PCIe)是一種高性能、高帶寬串行通訊互連標准,取代了基於總線的通信架構,如:PCI、PCI Extended (PCI-X) 以及加速圖形端口(AGP)。

PCI-e的主要性能:

    • 更低的生產成本

    • 更高系統吞吐量

    • 更好可擴展性和靈活性

上述傳統基於總線的互連幾乎根本無法達到PCI-e所擁有的優秀性能。

PCI Express標准的制定是着眼未來的,它還在繼續發展為系統提供更高的吞吐量。第一代PCIe約定的吞吐量是2.5千兆位/秒(Gbps),第二代則達到5.0Gbps,而最近發布的PCIe3.0標准則能支持8.0Gbps的速率。在PCIe標准繼續利用最新的技術以提供不斷增加的吞吐量的同時,利用分層協議、通過使驅動程序保持與現有PCI應用的軟件兼容性將簡化從PCI到PCIe的過渡。 雖然最初定位在電腦擴展卡和圖形卡應用,但目前,PCIe已在更廣泛的領域得到應用,包括:網絡、通信、存儲、工業和消費類電子產品等。

這里對PCI-e的詳細協議不做介紹,只從整體上介紹PCI-e的概述、PCI-e的優勢以及FPGA實現PCI-e的優勢。

PCIe的優勢以其復雜性為代價。PCIe是基於分組的串行連接協議,估計比PCI並行總線復雜10倍以上。這種復雜性部分源於在千兆赫速率所要求的並行到串行的數據轉換以及轉向基於分組的實現。 

PCI與PCI-e接口

單從接口上就可以看出PCI與PCI-e的區別。一個是並行總線,一個是高速串行總線。

通常將PCI-e總線分為3層:

 

 

PCI-e協議層

通常將機械層和物理層合並為物理層,緊接着第二層為數據鏈路層,第三層為事務傳輸層,應用層不算在內。

物理層中的機械層:

機械層定義了諸如對連接器、卡外形尺寸、卡檢測和熱插拔等要求的機械環境。

物理層中的電氣和邏輯層:

    • 物理層下的電氣子層實現包括收發器、模擬緩沖器、串行/解串行器(SerDes)在內的模擬器件以及10位接口。

    • 物理編碼子層(PCS)把每8位數據字節編碼/解碼為10位代碼。這種編碼特性不僅能檢查有效字符,而且也限制了被發送的“0”和“1”數量上的差異,從而同時在發射器和接收器側保持了DC均衡,進而大大提高了電磁兼容性(EMC)和電氣信號性能。

具體協議不在贅述,請查閱相關協議文檔。


 PCIe數據包: 

在探討下一個協議層特點之前,了解數據是如何在PCIe網絡上傳輸的很重要。 PCI Express采用數據包在各系統間以及數字接口的各層和PCIe設備間傳輸數據。應用層發起事務傳輸,事務傳輸層把應用請求轉換為一個PCIe事務包。數據鏈路層為該數據包增加一個序列號和鏈路CRC(LCRC)。數據鏈路層還確保該雙向事務接收正確。最后,物理層在PCIe鏈路上傳輸該事務。 

事務傳輸層

 

數據鏈路層


數據鏈路層: 

數據鏈路層作為處理層和物理層的中間層,為處理層TLP在鏈路中傳遞提供可靠機制。數據鏈路層主要負責TLP的可靠傳輸。

數據鏈路層完成的主要任務是:

    1. 數據交換。接收發送方處理層的TLP包,並送到物理層。另外從物理層接收TLP包並送到接收端的處理層。

    2. 出錯檢測和裁決。LCRC和序列號(TLP Sequence Number)的生成;存儲發送端的TLP用於再試重發;為TLP和DLLP做數據完成性檢測(crc校驗);DLLP的ack和nack響應;錯誤指示;鏈接確認超時重試機制。

    3. 初始化和電源管理。跟蹤鏈路狀態並傳送鏈路活動、鏈路復位、鏈路失去連連等狀態給處理層;

    4. 生成DLLP。用於鏈路管理功能包括TLP確認、電源管理、流程控制信息(VC通道初始化)交流。在鏈接兩端的數據鏈路層點對點傳輸。

 

數據鏈路層跟蹤鏈路連接的狀態,並和處理層和物理層交流鏈路狀態,通過物理層來完成對鏈路的管理。鏈路層中包含狀態機DLCMSM(Data Link Control and Management State Machine)來完成這些任務。

PCI-e結構中的數據鏈路層

數據鏈路層在不可靠(有損耗)的物理鏈路上提供了可靠的數據傳輸服務。它是通過驗證收到的TLP及使用接收到數據的正確認並在接收失敗時重新傳送數據來做到這點的。當TLP被發送時,它們被分配給序列號,並采用一個CRC碼且把該碼發送至物理層以用於串行鏈路上的傳輸。接收時,檢查CRC和序列號。CRC內的錯誤或出序的序列號顯示發生了傳輸錯誤,信號通過給出負確認(NAK)予以響應。接到NAK后,發送器重新傳送數據包,該數據包被存儲在專為此目的設置的“重傳”緩存器內。若CRC序列號檢查成功,接收器發出正確認(ACK)。對給定TLP來說,僅當收到ACK時,才對重傳緩沖區進行數據刷新。使用此協議,數據鏈路層可以保證TLP的正確發送。

具體協議不在贅述,請查閱相關協議文檔。


事務傳輸層: 

事務傳輸層(transaction Layer specification)是請求和響應信息形成的基礎。包括四種地址空間,三種處理類型,下圖可以看出在transaction Layer 中形成的包的基本概括。

地址空間

 

事務傳輸層創制出站及接收入站事務傳輸層數據包(TLP)。TLP包括一個報頭、一個可選數據配載以及一個可選的端到端CRC(ECRC)。TLP既可以是請求也可以是對請求(完成)的響應,它永遠是4個字節(1個DWORD)的倍數。報頭指定事務類型、優先級、地址,路由規則及其他數據包特征。發送事務傳輸層構建數據包報頭、伺機添加ECRC並門控數據包的傳輸(直到有足夠的遠程流量控制額度可用)。接收事務傳輸層檢查TLP格式和報頭。

具體協議不在贅述,請查閱相關協議文檔。


 PCI-e基本功能和屬性:

    • 吞吐量:流量控制額度

    • QoS:傳輸類別和虛擬通道

    • RAS:數據完整性

    • RAS: 排序/PCI規則

    • 主動電源管理

    • 先進的出錯管理

    • 中斷


設計復雜性:

    • 數據速率提高帶來的困難。高速鏈路設計要求設計者具有很強的高速模擬設計功能。當數據速率達到1Gbps以上時,I/O緩沖器的設計需要進行重大改變,同時高速率時處理數據所需的數字邏輯也不一樣,編碼方案及補償邏輯使其物理層與低速物理層極大不同。

    • 高數據率產生時鍾問題。高速數據率必然產生時序裕量緊張,這就需要高度的時鍾穩定性來保障。時鍾數據恢復(CDR)電路顯得極為重要。

    • 高數據率產生制板問題。Gbps以上的數據率使得PCB制板難度增大,電路布局布線技術難度增大,必須采用機械制板,顯然成本會大大增加。


FPGA在PCI-E應用中的優勢:

FPGA中嵌入了吉比特收發器等硬件IP。采用吉比特收發模塊,可以在一片FPGA中實現高速串行協議,包括PCI-e、千兆以太網等。

使用FPGA設計PCI-e總線,省去PCI-e專用接口芯片,降低硬件成本,提高硬件集成度。利用FPGA的可編程特性,大大提高設計的靈活性、適應性和可擴展性。

Altera的PCIe硬核IP包含處理層,鏈路層和物理層所要求的全部功能,以及大多數的可選功能。只需在IPCompiler中經過簡單的參數設置即可生成全功能的IP模塊,如果是作為端點設備,可以使用Avalon-ST接口或Avalon—MM接口適配器,將應用層映射為處理層的TLP。Avalon—ST適配層將應用層的Avalon—ST接口映射到PCIe處理層的TLPs。


版權所有權歸卿萃科技,轉載請注明出處。

作者:卿萃科技ALIFPGA

原文地址:卿萃科技FPGA極客空間 微信公眾號


 

 掃描二維碼關注卿萃科技FPGA極客空間


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM