PCIe是一種高速串行計算機擴展總線標準,自2003年推出以來,已經成為服務器(Server)和PC上的重要接口。今天為大家簡單介紹一下PCIe的發展歷史以及它的工作原理。
一、PCIe的由來
PCIe接口的全稱是Peripheral Component Interconnect Express,原來的名字是“3GIO”,由Intel在2001年提出。PCIe的前身是PCI,PCI 使用的是并行傳輸方式,有較多的限制,并使用數據包(Packet)進行數據傳輸,數據報文在發送和接收過程中需要經過事務層、數據鏈路層和物理層多個層次。
PCIe串行總線標準被推出時,旨在替代舊的PCI、PCI-X和AGP總線標準,以實現更高的數據速率并簡化系統設計。在交由PCI-SIG(PCI特殊興趣組織)認證發布后改名為“PCI-Express”,簡稱“PCI-e”。此后,隨著時間的推移PCIe不斷改進以適應現代計算機的最新帶寬需求。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvKAAFDiAACies5DPCA359.jpg)
圖1
2021年,PCIe 6.0 規范發布。每通道數據傳輸速率從PCIe 5.0的32 GT/s翻番至64 GT/s,PCIe 6.0*16通道的帶寬高達256 GB/s,除了帶寬和效率的提升外,PCIe 6.0還具有更低的延遲,是PCIe技術的又一大飛躍。
二、PCIe鏈路的常見設備
PCIe采用的是樹型拓撲結構, 一般由根復合體(Root Complex),中繼器(Repeater),終端設備(Endpoint)等類型的PCIe設備組成。
接下來將講述PCIe如何通過下圖突出顯示的典型鏈路進行初始化和傳輸。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvKAD1YsAACUTrHKJFo164.jpg)
圖2
Root Complex:根復合體是CPU和PCIe總線連接的接口。主要負責存儲器域到PCIe總線域的地址轉換,隨著虛擬化技術的引入,根復合體的功能也越來越復雜。根復合體把來自CPU的request轉化成PCIe的4類request(configuration、memory、I/O、message)并發送給下面的設備。
Repeater:中繼器是一種信號調節裝置,可分為兩類:Retimers和Redriver,兩者都是常用的PCIe組件,Retimer通過內部時鐘重構信號,再恢復后發送出去;Redriver則是通過信號均衡化和預加強等技術,重新加強再發送出去。在圖示中,我們將使用PCIe 4.0兼容的Retimers舉例。
PCIe Endponit: PCIe終端設備,是PCIe樹型結構的末端節點。比如SSD,網卡、GFX卡等等。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvOAMF0rAACdIRnQtyQ461.jpg)
圖3
三、PCIe鏈路初始化
在了解PCIe鏈路是如何建立以及數據如何通過PCIe協議傳輸之前,我們先了解一下常見PCIe控制信號的功能。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvOANB_yAAC9xZLanhc912.jpg)
圖4
PERST#信號為全局復位信號,由處理器系統提供。處理器系統需要為PCIe插槽和PCIe設備提供該復位信號。PCIe設備使用該信號復位內部邏輯,當該信號有效時,PCIe設備將進行復位操作。
WAKE#和CLKREQ#信號都用于在本文討論范圍之外的低功率狀態之間轉換。
REFCLK#是PCIe設備開始數據傳輸的先決條件,PCIe設備通過使用REFCLK#提供的100 MHz外部參考時鐘(Refclk),用于協調在兩個PCIe設備間的數據傳輸。
PCIe鏈路在初始狀態時,需要檢測對端設備是否存在,然后才能進行鏈路訓練。所有PCIe設備通電并提供參考時鐘信號后在每個通道上將擁有接收器檢測(Receiver Detection)電路,該電路將允許PCIe設備確定是否有要配對的鏈路伙伴。假設PCIe Rx檢測電路檢測到另一個設備,則每個通道將開始以2.5 GT/s的速度進行傳輸串行數據。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvOACoRdAAEeqiWaVFw179.jpg)
圖5
2.5 GT/s是PCIe 1.0采用的數據速率,另外由于PCIe 1.0與任何PCIe設備兼容,因此每個PCIe鏈路都以相同的鏈路初始化過程開始。以下圖為例,Root Complex、Retimer和Endpoint都以PCIe 1.0的速度開始傳輸。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvOAWIctAAEK1gqR_j0412.jpg)
圖6
在經過PCIe鏈路初始化后,每個器件開始接收數據并做出響應。PCIe連接開始鏈路訓練過程并進入配置階段,在該階段中,由于通道長度變化而導致數據中的任何偏差都能得到校準,PCIe鏈路的寬度、鏈路速率、鏈路翻轉和鏈路極性也在此階段確定。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvOAAz4_AADz64sYSx0195.jpg)
圖7
當存在多條鏈路時,則PCIe連接稱為PCIe分叉。在示例中,有一個非分叉連接,即所有通道都分配給編號為0的鏈路。由于Retimer鏈路分為兩部分,其兩側的鏈路分別進行鏈路初始化。在確定鏈路和通道號后,PCIe鏈路可以進入多種狀態。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvOAFcu1AADTEWk4L88523.jpg)
圖8
以進入L0狀態舉例,這是發送和接收數據與數據包的正常操作狀態。到達L0后Root Complex和Endpoint可相互通信,PCIe鏈路也可轉換為多種低功耗狀態或另一種鏈路訓練狀態。在此不做過多闡述。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvOAVvrfAAD81mS8N3U822.jpg)
圖9
四、PCIe鏈路均衡
當PCIe設備支持PCIe Gen2時,鏈路速度也會隨之提高。如果數據速率為PCIe Gen3或以上,PCIe鏈路將需要經歷額外鏈路優化過程(稱為鏈路均衡)。
鏈路均衡以建立設備間穩定的連接為目的。通過調節Tx (傳輸端)和Rx (接收端)的設置,提高信號質量,使PCIe鏈路以最穩定且更快的速率傳輸。由于PCIe在Gen3及以上的每一代均需優化連接,因此鏈路均衡過程可能發生多次。
例如:若所有PCIe設備為Gen5,則有3次鏈路均衡過程(第1次:Gen1-Gen3;第2次:Gen3-Gen4;第3次:Gen4-Gen5)。鏈路均衡通過PCIe 規范中定義的preset值來實現,preset指不同的預過沖(Preshoot)和去加重(De-emphasis)的組合。對于Gen3和Gen4,有11個preset值,即preset0-preset10。對于不同的鏈路情況,系統要求Rx端發送Tx EQ preset設置請求給Tx端,讓其做對應的preset均衡設置;Tx端發送Rx EQ均衡設置,要求Rx端做相應的設置,最終獲得一個最優的均衡組合和Rx端的眼圖。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvOAUzDiAAFBF2cxfyw226.jpg)
圖10
Phase0:第1階段鏈路均衡涉及上游端口(Upstream port)和下游端口(Downstream port)之間的精確動態協商,下游端口通過向上游設備發送每個通道所需的發送器preset值來開始鏈路均衡,被稱為第0階段鏈接均衡。在接收到下游端口的請求后不久,上游端口增加到第3代(Gen3)鏈路數據速率,并開始使用所需preset將訓練序列發送回下游端口。鏈路速度增加至Gen3(8 GT/s)后,鏈路均衡過程通過來回發送preset值來協商每個端口的preset配置,從而繼續優化鏈路。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvSAJ4daAAEhPKKCeCg835.jpg)
圖11
Phase1:為了充分優化鏈路,以便能夠交換訓練序列(Training Sequences)并且完成用于精調目的的剩余鏈路均衡階段,盡管有出現鏈路質量差的可能性,相同的訓練序列依然會被重復發送,來確保下游端口接收到正確的preset值。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvSANRR4AAD7EPirlBw983.jpg)
圖12
Phase2:在第1階段鏈路的誤碼率實現BER≤10e-4后,進入到Phase 2,隨后進一步優化上游端口的preset值,直至獲得最優設置,鏈路的誤碼率應滿足BER ≤ 1E-12。
Phase3:到第3階段對下游端口執行相同的協商。上游端口通過訓練序列發送均衡請求去調整下游端口的preset值,直至獲得最優設置,鏈路的誤碼率應滿足BER ≤ 1e-12。
當Phase3完成后,鏈路均衡也已完成,此時鏈路以Gen3的速率進入L0狀態,并在該速率進行穩定通信。對于更高的傳輸速率,PCIe設備必須進行多次鏈路均衡過程。
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvSADxJ8AAETaV4OxzM204.jpg)
圖13
然而在某些主板設計中,尤其是那些具有長通道鏈路的主板,這種信號質量無法實現,可能需要另外的信號調節。在這種情況下,中繼器(如Redriver,Retimer)則被用來做信號調節,并在PCIe設備和根復合體之間提供高質量信號。
Union Memory
![](https://file1.elecfans.com//web2/M00/9E/2F/wKgaomToAvSASWZEAABbOPPgAIU768.jpg)
長按識別關注更多憶聯資訊
原文標題:什么是PCIe?
文章出處:【微信公眾號:UnionMemory憶聯】歡迎添加關注!文章轉載請注明出處。
-
存儲
+關注
關注
13文章
4353瀏覽量
86165 -
SSD
+關注
關注
21文章
2887瀏覽量
117853
原文標題:什么是PCIe?
文章出處:【微信號:UnionMemory憶聯,微信公眾號:UnionMemory憶聯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
PCIe 5.0市場加速滲透,PCIe 6.0研發到來
![](https://file1.elecfans.com/web3/M00/06/6C/wKgZO2eKIdKAeh8QAAFLyPeeNoo049.jpg)
如何選擇適合的PCIe配置
PCIe 4.0與3.0的區別 PCIe設備的故障排除方法
pcie擴展槽的使用技巧
pcie 4.0與pcie 5.0的區別
如何測試PCIe插槽的速度
PCIe 4.0與PCIe 3.0的性能對比
PCIe接口的工作原理 PCIe與PCI的區別
PCIe 5.0 SerDes 測試
![<b class='flag-5'>PCIe</b> 5.0 SerDes 測試](https://file1.elecfans.com//web2/M00/03/BF/wKgaoma99uaAAz2kAACyEcTa0YM561.jpg)
![](https://file1.elecfans.com/web2/M00/FB/2C/wKgZomaPpBSAEaITAAW_MhJAr4s337.jpg)
pcie4.0和pcie3.0接口兼容嗎
![](https://file1.elecfans.com/web2/M00/E8/59/wKgZomZPCDOAbYoMAAQAzHeeWxY788.jpg)
評論