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