編者按
PCIe發(fā)展至今已經(jīng)從最初的1.0升級到了6.0,但很多人對于PCIe只知其然而不知其所以然,小編今天就帶大家一起來看一看。
要想了解什么是 PCIe,首先我們要來聊聊什么是總線。
如果把主板看作一座城市,那么總線就像是城市里的公共汽車,能按照固定行車路線,傳輸來回不停運作的比特。
在很久以前,我們的電腦并不像如今這樣有統(tǒng)一的接口與總線規(guī)范。那時想要給主板做拓展有很大的局限性,因為主板上的接口基本只能對應(yīng)一個硬件設(shè)備,各大廠商之間的規(guī)范也各不相同,就是在這樣的大環(huán)境下,ISA (Industry Standard Architecture)誕生了。
ISA總線是IBM公司為PC/AT電腦而制定的總線標準。由于兼容性好,ISA在上個世紀80年代是最廣泛采用的系統(tǒng)總線,不過它的弱點也是顯而易見的,比如傳輸速率過低、CPU占用率高、占用硬件中斷資源等。ISA總線的淘汰也成了必然。
1992年6月,英特爾發(fā)明了名為外部鏈接標準也就是Peripheral Component Interconnect的接口規(guī)范,縮寫為PCI。PCI接口的特性在于采用的是并行傳輸方式,根據(jù)連接的數(shù)據(jù)寬度和頻率不同,能夠達到不同的數(shù)據(jù)傳輸速度。 相較上一代 ISA,PCI 有著明顯的速度提升,同時還能夠自動配置資源,支持即插即用,很快就在各大廠商之間的混戰(zhàn)中占領(lǐng)市場。
不過PCI的帶寬有限,對日益強悍的GPU等高性能單元來說逐漸成為了瓶頸。因此,基于PCI的技術(shù)又發(fā)展出了AGP等專用于圖形卡的總線接口標準。AGP依舊是并行傳輸數(shù)據(jù)。
隨著系統(tǒng)性能進一步提升,對帶寬要求越來越大。PCI和AGP這樣的并行傳輸技術(shù),無法在當時的技術(shù)條件下帶來性能的進一步提升。
終于在2001年,非營利組織PCI-SIG召集了英特爾、AMD、博通、IBM、微軟等廠商提出了PCIe(Peripheral Component Interconnect Express)新總線標準。
PCIe屬于高速串行點對點雙通道高帶寬傳輸,所連接的設(shè)備分配獨享通道帶寬,不共享總線帶寬,主要支持主動電源管理、錯誤報告、端對端的可靠性傳輸、熱插拔以及服務(wù)質(zhì)量(QOS)等功能。PCIe的主要優(yōu)勢就是數(shù)據(jù)傳輸速率高,而且還有相當大的發(fā)展?jié)摿Α?/p>
PCIe也有多種規(guī)格,x1、x4、x8、x16、x32,x 后面的數(shù)字代表 PCIe 插槽有多少條通道(數(shù)據(jù)如何進出 PCIe 卡)。一個 PCIe x1 插槽有一個通道,可以每個周期傳輸一位數(shù)據(jù)。一個 PCIe x2 插槽有兩個通道,每個周期可以傳輸兩位數(shù)據(jù)(依此類推)。
大多數(shù)臺式電腦主板都有許多 PCIe 插槽,可用于添加通用顯卡、各種外設(shè)卡、無線網(wǎng)卡或固態(tài)硬盤等等。PC 中可用的 PCIe 插槽類型將取決于你購買的主板。
在使用中你可以將PCIe x1卡插入PCIe x4或者x16的插槽中,但該卡將始終在 PCIe x1 模式下運行。同樣的,你也可以將 PCIe x8 卡插入 PCIe x4 插槽,但它只能使用一半的帶寬。
下圖展示了 PCIe 規(guī)范隨時間的演變:
2003年-2010年:PCIe 1.0 - PCIe 3.0
PCIe 技術(shù)始于 2003 年,PCIe 1.0數(shù)據(jù)速率為 2.5GT/s,PCIe 2.0 規(guī)范在 2006 年將數(shù)據(jù)速率翻了一番,達到 5.0 GT/s。前兩代 PCIe 技術(shù)使用 8b/10b 編碼,產(chǎn)生了 25% 的編碼開銷。
2010年,PCIe 3.0 將數(shù)據(jù)速率提高到了 8.0 GT/s ,并采用了新的 128b/130b 編碼機制,使每個引腳的帶寬比 PCIe 2.0 翻了一番。新的編碼機制通過采用三個隨機位翻轉(zhuǎn)檢測的故障模型確保了高可靠性,并具有多種創(chuàng)新方法來執(zhí)行數(shù)據(jù)包的物理層幀,同時保留從上層發(fā)送的數(shù)據(jù)包格式。
PCIe 3.0規(guī)范還加入了一些增強信號指令,以及對數(shù)據(jù)完整性的優(yōu)化,包括發(fā)送器和接收器以及拓撲結(jié)構(gòu)等,再加上重新優(yōu)化的PLL、數(shù)據(jù)通道等。此外,PCIe 3.0標準的更新版本PCIe 3.1在2014年11月發(fā)布,加入了包括電源管理、性能優(yōu)化和功能拓展等多項改變,當然本質(zhì)的數(shù)據(jù)傳輸能力沒有變化。
2017年10月:16.0 GT/s的PCIe 4.0
依照PCIe 1.0到PCIe 3.0的更新節(jié)奏來看,相對于2010年發(fā)布的PCIe 3.0,PCIe 4.0規(guī)范應(yīng)該要在2014或2015年發(fā)布,但實際上,PCI-SIG直到2017年中才發(fā)布PCIe 4.0,較預(yù)期晚2、3年,這連帶也推遲了應(yīng)用的時間。
PCIe 4.0花費了7年時間將數(shù)據(jù)速率從 8.0 GT/s 翻倍到 16.0 GT/s (每條通道大約 2GB/s,或總共 64GB/s)。PCIe 4.0 保留了相同的 128b/130b 編碼方案,PCIe 標準通過軟件和機械接口保持與舊規(guī)范和新規(guī)范的向后和向前兼容性。也就是說,PCIe 3.0卡可以在支持PCIe 4.0的主板上工作,PCIe 4.0卡也可以在PCIe 3.0主板上工作,但受限于PCIe 3.0接口的性能。
不過,作為處理器平臺龍頭廠商的Intel未能及時支持PCIe 4.0。當PCIe 4.0于2017年底發(fā)布后,在2019年前后進入推廣期,除了獲得一些網(wǎng)卡與SSD產(chǎn)品的支持之外,在主機與服務(wù)器平臺方面,也有IBM的Power 9,以及AMD的Zen 2架構(gòu)處理器平臺支持,而后者也讓PCIe 4.0進入了x86平臺應(yīng)用領(lǐng)域。
然而Intel的遲遲不支持導(dǎo)致PCIe 4.0一直無法真正進入主流應(yīng)用階段。這個僵局直到2020年后才打破,但Intel平臺真正對PCIe 4.0的支持要等到2021年中才落實,至此,PCIe 4.0也才算是開始進入主流應(yīng)用階段。
2019 年 5 月:32.0 GT/s 的 PCIe 5.0
過去幾年,計算領(lǐng)域發(fā)生了重大變化,云計算、邊緣計算以及人工智能、機器學(xué)習(xí)和分析等應(yīng)用引發(fā)了對更快的數(shù)據(jù)處理和移動的需求。隨著計算和內(nèi)存容量呈指數(shù)級增長,我們需要以更快的節(jié)奏維持 I/O 帶寬翻倍,以跟上新興應(yīng)用程序的性能。
例如,400 Gb(或雙 200 Gb)網(wǎng)絡(luò)需要 32.0 GT/s 的 x16 PCIe 來維持帶寬。這就要求在PCIe 4.0架構(gòu)之后不到兩年的時間里發(fā)布一個完全向后兼容的PCIe 5.0——這對于一個標準來說是一個重大的成就。
從 PCIe 4.0 到 PCIe 5.0 規(guī)范的演變主要是速度升級。128b/130b 編碼是將帶寬擴展到更高數(shù)據(jù)速率的協(xié)議支持,在PCIe 3.0和PCIe 4.0規(guī)范中已經(jīng)內(nèi)置了這種編碼。通道損耗擴展到 36 dB,同時對連接器進行了改進,以最大限度地減少頻率范圍增加所帶來的損耗。
PCIe 5.0 架構(gòu)的增強功能之一是對備用協(xié)議的內(nèi)置支持。隨著 PCIe 技術(shù)發(fā)展成為帶寬最高、能效最高和部署最廣泛的接口,某些用途需要額外的協(xié)議,例如,某些加速器和智能網(wǎng)卡可以緩存系統(tǒng)內(nèi)存并將其內(nèi)存映射到系統(tǒng)內(nèi)存空間,以便在PCIe協(xié)議之外進行高效的數(shù)據(jù)交換。同樣,系統(tǒng)內(nèi)存正在遷移到 PCIe PHY,因為它提供了高能效的高帶寬和低延遲解決方案。
PCI-SIG 預(yù)計 PCIe 4.0 和 PCIe 5.0 將在一段時間內(nèi)共存,PCIe 5.0 用于對吞吐量要求高的高性能需求,例如用于 AI 工作負載和網(wǎng)絡(luò)應(yīng)用程序的 GPU。因此,PCIe 5.0 將主要用于數(shù)據(jù)中心、網(wǎng)絡(luò)和高性能計算 (HPC) 企業(yè)環(huán)境,而不那么密集的應(yīng)用(如臺式機應(yīng)用)將適用于 PCIe 4.0。
2022 年1月:PCIe 6.0發(fā)布,速度為 64 GT/s
2022年1月11日,PCI-SIG正式發(fā)布了PCIe 6.0最終版本1.0,從技術(shù)上來說,PCIe 6.0是PCIe問世近20年來,變化最大的一次。
PCIe 6.0 規(guī)范目標要求
根據(jù)PCI-SIG的介紹,PCIe 6.0主要有三大變化:數(shù)據(jù)傳輸速率從32GT/s翻倍至64GT/s;編碼方式從NRZ 信令模式轉(zhuǎn)向PAM4信令模式;從傳輸可變大小TLP到固定大小FLIT。
PAM4信號
PCIe 6.0 規(guī)范引入了PAM4編碼方式,才讓PCIe 6.0的數(shù)據(jù)傳輸速率再次翻倍。在PCIe 6.0之前,各代PCIe采用的都是NRZ信令,即不歸零編碼,它采用0或1兩個電壓等級,每一個時脈周期只能傳輸1bit的信號。PAM4使用4個信號電平,而不是傳統(tǒng)的0/1兩個電平,單個信號就能有四種編碼(00/01/10/11)狀態(tài)。這使得PAM4可以攜帶兩倍于NRZ信令的數(shù)據(jù)。但它的代價是比特誤碼率 (BER) 更高。
盡管 PCIe 架構(gòu)具有鏈路級重試 (LLR) 機制來重放受錯誤影響的事務(wù),但由于重試而導(dǎo)致的帶寬損失使其在PAM4錯誤率下無法運行。因此,PCIe 6.0 規(guī)范結(jié)合使用輕量級前向糾錯(FEC)和 LLR 機制來滿足低延遲和低帶寬開銷的性能指標。此外,循環(huán)冗余校驗(CRC)方案提供了一個非常強大的錯誤檢測機制,可以抵消相關(guān)性的高錯誤率。
FLIT 模式
PCIe 6.0 引入了 FLIT 模式,其中數(shù)據(jù)包以固定大小的流量控制單元組織,而不是過去幾代 PCIe 中的可變大小。引入 FLIT 模式的最初原因是糾錯需要使用固定大小的數(shù)據(jù)包;但是,F(xiàn)LIT 模式還簡化了控制器級別的數(shù)據(jù)管理,從而提高了帶寬效率、降低了延遲并縮小了控制器占用空間。對于固定大小的數(shù)據(jù)包,不再需要在物理層對數(shù)據(jù)包進行成幀,這為每個數(shù)據(jù)包節(jié)省了 4 字節(jié)。FLIT 編碼還消除了以前 PCIe 規(guī)范中的 128B/130B 編碼和 DLLP(數(shù)據(jù)鏈路層數(shù)據(jù)包)開銷,從而顯著提高了 TLP效率,尤其是對于較小的數(shù)據(jù)包。
最 后
在實際應(yīng)用方面,剛剛發(fā)布不久的PCIe 6.0目前自然還尚無具體進展,現(xiàn)在主流的應(yīng)用還在PCIe 3.0和PCIe 4.0,不過PCIe 5.0已經(jīng)進入初步的推廣期,自2021年底開始,便開始有廠商推出支持PCIe 5.0的高速網(wǎng)卡與SSD產(chǎn)品,并且一些新的GPU、CPU開始采用PCIe 5.0了。
這也讓當前的PCIe應(yīng)用環(huán)境形成了3.0、4.0、5.0、6.0“四代同堂”的奇特現(xiàn)象,并且仍將持續(xù)一段時間。
整體而言,新一代PCIe 5.0與PCIe 6.0已經(jīng)崛起,并陸續(xù)投入應(yīng)用,PCIe 6.0帶來的新特性,包括64GT/s的數(shù)據(jù)速率、PAM4編碼方式、具有吞吐量和延遲優(yōu)勢的 FLIT等等,必然會更好地推動行業(yè)發(fā)展。
審核編輯:湯梓紅
?
評論
查看更多