pcie接口介紹


注:以下內容主要參考《PCI Express System Architecture》文檔,下載地址:https://www.mindshare.com/Books/Titles/PCI_Express_System_Architecture

一、PCIe接口的發展歷程

  PCI-Express(peripheral component interconnect express)是一種高速串行計算機擴展總線標准,它原來的名稱為“3GIO”,是由英特爾在2001年提出的,旨在替代舊的PCI,PCI-X和AGP總線標准。pci或pcie接口在pc機上很常見,顯卡、網卡、聲卡都是通過pci或在pcie接口跟cpu連接的。

  

  PCIe是有PCI和PCI-X發展而來,如下表所示:

  

 PCIe的發展歷程如下圖所示:

 

二、PCIe 通訊協議

2.1 PCIe層划分

PCIe總線的層次組成結構與網絡中的層次結構有類似之處,但是PCIe總線的各個層次都是使用硬件邏輯實現的。在PCIe體系結構中,數據報文首先在設備的核心層(Device Core)中產生,然后再經過該設備的事務層(Transaction Layer)、數據鏈路層(Data Link Layer)和物理層(Physical Layer),最終發送出去。而接收端的數據也需要通過物理層、數據鏈路和事務層,並最終到達Device Core。

1 事務層

        事務層定義了PCIe總線使用總線事務,其中多數總線事務與PCI總線兼容。這些總線事務可以通過Switch等設備傳送到其他PCIe設備或者RC。RC也可以使用這些總線事務訪問PCIe設備。 

       事務層接收來自PCIe設備核心層的數據,並將其封裝為TLP(Transaction Layer Packet)后,發向數據鏈路層。此外事務層還可以從數據鏈路層中接收數據報文,然后轉發至PCIe設備的核心層。

        事務層的一個重要工作是處理PCIe總線的“序”。在PCIe總線中,“序”的概念非常重要,也較難理解。在PCIe總線中,事務層傳遞報文時可以亂序,這為PCIe設備的設計制造了不小的麻煩。事務層還使用流量控制機制保證PCIe鏈路的使用效率。有關事務層的詳細說明見第6章。

2 數據鏈路層

        數據鏈路層保證來自發送端事務層的報文可以可靠、完整地發送到接收端的數據鏈路層。來自事務層的報文在通過數據鏈路層時,將被添加Sequence Number前綴和CRC后綴。數據鏈路層使用ACK/NAK協議保證報文的可靠傳遞。

        PCIe總線的數據鏈路層還定義了多種DLLP(Data Link Layer Packet),DLLP產生於數據鏈路層,終止於數據鏈路層。值得注意的是,TLP與DLLP並不相同,DLLP並不是由TLP加上Sequence Number前綴和CRC后綴組成的。

3 物理層

        物理層是PCIe總線的最底層,將PCIe設備連接在一起。PCIe總線的物理電氣特性決定了PCIe鏈路只能使用端到端的連接方式。PCIe總線的物理層為PCIe設備間的數據通信提供傳送介質,為數據傳送提供可靠的物理環境。

        物理層是PCIe體系結構最重要,也是最難以實現的組成部分。PCIe總線的物理層定義了LTSSM(Link Training and Status State Machine)狀態機,PCIe鏈路使用該狀態機管理鏈路狀態,並進行鏈路訓練、鏈路恢復和電源管理。

         PCIe總線的物理層還定義了一些專門的“序列”,有的書籍將物理層這些“序列”稱為PLP(Phsical Layer Packer),這些序列用於同步PCIe鏈路,並進行鏈路管理。值得注意的是PCIe設備發送PLP與發送TLP的過程有所不同。對於系統軟件而言,物理層幾乎不可見,但是系統程序員仍有必要較為深入地理解物理層的工作原理。

數據包在各個層的處理如下所示:

 

 

 二、PCIe主要特性

2.1 PCIe事務層協議

  PCIe設備之間的數據是是以數據包的形式傳遞的,事務層的包為Transaction Layer packets (TLPs),事務層按照事務類型可分為存儲器讀事務、存儲器寫事務、存儲器讀鎖、IO讀、IO寫、讀配置、寫配置、信息事務。如下表所示:

Non-Posted模式:請求者發送一個LTP請求包給完成者,完成者隨后需要返回一個LTP完成包給請求者,這樣請求者就能知道完成者成功接收到了信息。

Posted模式:請求者發送一個LTP請求包給完成者,完成者不需要返回一個LTP完成包給請求者,這種方式請求者無法知道完成者成功接收到了信息。

2.2 PCIe TLP包類型

  TLP數據包類型有以下幾種:

 

Non-Posted模式的TLP包含memory read request (MRd), IO readrequest (IORd), and configuration read request type 0 or type 1 (CfgRd0,CfgRd1) TLPs,交互方式如下所示:

 Post模式的TLP包含

Memory Write Request(MWr)、Message Request without Data(MSG)、Message Request with Data(MsgD)

 下面是一個傳輸的例子:

 

 

 

2.3 PCIe路由形式

   不同與PCI和PCI-X用共享總線的方式,PCIe使用路由的方式完成數據傳輸

 

2.4 PCIe 協議層次划分

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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