今天這篇文章,我們來(lái)聊聊PCIe Bus(PCIe總線(xiàn))。 Bus在國(guó)內(nèi)被理解成汽車(chē),在國(guó)內(nèi)還有一種解釋是總線(xiàn)的意思。其實(shí)這兩種翻譯還是有共通之處。以我們生活中例子來(lái)說(shuō),Bus是兩個(gè)城市中溝通的重要連通方式,而總線(xiàn)則是計(jì)算機(jī)之間聯(lián)通的重要方式。 我們想從天津去北京辦點(diǎn)事,那么可以乘坐長(zhǎng)途大巴,電腦則需要通過(guò)PCIe的Bus。簡(jiǎn)單來(lái)說(shuō),Bus總線(xiàn)是多個(gè)硬件之間的一條通信公路。 ? 與公路相對(duì)應(yīng)的是,PCIe也有不同的規(guī)范,就像高速一樣,不同的道路也有不同的限速,比如國(guó)道和高速,寬度和最高行駛速度都不同。這個(gè)就對(duì)應(yīng)著PCIe1.0、PCIe2.0、PCIe3.0、PCIe4.0這些規(guī)范。 ? 但即使是同一條公務(wù),行駛在不同的線(xiàn)路上也有不同的限速,這個(gè)就是跟PCIe1.0不同擴(kuò)展槽的性能類(lèi)似,例如PCIE x16/x8/x4/x1四種擴(kuò)展方式能夠支持的最大傳輸速度也是不一樣的。 可以說(shuō),PCIe總線(xiàn)是計(jì)算機(jī)設(shè)備樹(shù)的重要組成部分,幾乎所有外圍硬件的擴(kuò)展都需要PCIe上,今天我們就來(lái)聊聊PCIe發(fā)展史。 ?
01?挖挖PCIe的祖先們
在多年以前,計(jì)算機(jī)主板上不同的設(shè)備所使用的的總線(xiàn)接口是完全不一樣的,硬盤(pán)有硬盤(pán)對(duì)應(yīng)的總線(xiàn)接口,網(wǎng)卡有網(wǎng)卡對(duì)應(yīng)的總線(xiàn)接口。 這樣好處是每個(gè)設(shè)備都有對(duì)應(yīng)的總線(xiàn)接口,優(yōu)化性能簡(jiǎn)單。但對(duì)于個(gè)人來(lái)說(shuō),隨著擴(kuò)展設(shè)備的逐漸增多,如果都在主板上擴(kuò)展對(duì)應(yīng)的總線(xiàn)接口,有點(diǎn)得不償失,同時(shí)造成了主板拓展的局限性,也對(duì)硬件規(guī)格的統(tǒng)一帶來(lái)很多的不便。 為了解決這個(gè)瓶頸,IBM和Intel聯(lián)手,在1981年第一代IBM PC XT機(jī)型上采用了第一代ISA插槽,作為現(xiàn)代PC的開(kāi)山之作,當(dāng)時(shí)8位的ISA提供了4.77MB/s的帶寬(或傳輸率)。 ? 由于兼容性好,一經(jīng)推出,ISA總線(xiàn)就受到了各個(gè)廠(chǎng)商的歡迎,成為了上個(gè)世紀(jì)80年代最廣泛使用的系統(tǒng)總線(xiàn)。但由于ISA使用的是并行總線(xiàn),當(dāng)時(shí)的抗干擾技術(shù)也不成熟,就導(dǎo)致ISA總線(xiàn)的帶寬不能設(shè)計(jì)的很高,只能達(dá)到8MB/s的速率。 這個(gè)傳輸速度對(duì)于在90年代逐漸出現(xiàn)的像圖像這種大數(shù)據(jù)傳輸需求來(lái)說(shuō)還是有點(diǎn)"不夠勁兒"。 除了速度慢這個(gè)缺點(diǎn),還有就是ISA總線(xiàn)接口上的設(shè)備不能自動(dòng)配置,無(wú)法即插即用。再加上IBM自作聰明在PS/2產(chǎn)品線(xiàn)上引入了MCA總線(xiàn),迫使其他幾家PC兼容機(jī)廠(chǎng)商聯(lián)合起來(lái)?yè)v鼓出來(lái)EISA。這些都導(dǎo)致了ISA總線(xiàn)最終被淘汰。 在1992年,Intel搞出了自己的殺招,提出PCI(Peripheral Component Interconnect)總線(xiàn)協(xié)議,并靠著自己在PC領(lǐng)域的強(qiáng)大影響力,召集了一堆小伙伴組成了名為 PCI-SIG (PCI Special Interest Group)(PCI 特殊興趣組J)的企業(yè)聯(lián)盟。從那以后這個(gè)組織就負(fù)責(zé)PCI總監(jiān)的標(biāo)準(zhǔn)制定和推廣。
? 不得不點(diǎn)贊下Intel這種先見(jiàn)之明,在90年代就開(kāi)始建立自己的"朋友圈",相比于封閉的IBM,英特爾合作共贏的心態(tài)讓PCI標(biāo)準(zhǔn)得到了廣泛推廣和使用。統(tǒng)一的標(biāo)準(zhǔn)也有利于外圍設(shè)備制造商的創(chuàng)新,從那以后各種各樣的PCI設(shè)備應(yīng)運(yùn)而生,豐富了PC的整個(gè)生態(tài)環(huán)境。 相比ISA總線(xiàn),PCI總線(xiàn)帶寬升級(jí)到了132MB/s,速度提升非常明顯。再就是支持自動(dòng)配置,即插即用。 但PCI總線(xiàn)也并不是完美的,PCI總線(xiàn)跟ISA總線(xiàn)都是使用了并行總線(xiàn)設(shè)計(jì),所以傳輸速度也受到了影響。再就是PCI總線(xiàn)的帶寬共享機(jī)制,在高負(fù)載下,其他設(shè)備可能會(huì)出現(xiàn)搶帶寬的現(xiàn)象,也不支持熱插拔。 于是為了解決PCI總線(xiàn)的缺陷,技術(shù)再一次進(jìn)行了升級(jí)革新,2004年,Intel再一次帶領(lǐng)小伙伴革了PCI的命也就是本篇文章要說(shuō)的PCI Express(簡(jiǎn)稱(chēng)PCIe)總線(xiàn)了。如今計(jì)算機(jī)已經(jīng)開(kāi)始是第五代(gen5,5.0),而且在計(jì)算機(jī)中更是更為了不可或缺的存在。 ? 如今,PCIe可以支持的設(shè)備非常多,常見(jiàn)的有顯卡、固態(tài)硬盤(pán)(PCIe接口形式)、無(wú)線(xiàn)網(wǎng)卡、有線(xiàn)網(wǎng)卡、聲卡、視頻采集卡、PCIe轉(zhuǎn)接M.2接口、PCIe轉(zhuǎn)接USB接口、PCIe轉(zhuǎn)接Tpye-C接口等。
02?PCIe的傳輸速度和寬度
PCIe總線(xiàn)有兩種存在形式,一種是接口、一種是通道。當(dāng)PCIe以接口形式存在的時(shí)候,就是主板上橫著的長(zhǎng)槽。有人可能會(huì)問(wèn),這長(zhǎng)槽有啥作用,為啥我的主板上的長(zhǎng)槽長(zhǎng)短不一呢?
這些長(zhǎng)槽其實(shí)是PCIe不同的接口,常見(jiàn)的PCIe接口主要有四種尺寸,X1、X4、X8、X16,一般情況下四種尺寸的插槽最大帶寬是不同的。它們的速度是不一樣的,X16的PCIe速度就是X8的兩倍,X8就是X4的兩倍。當(dāng)然,上面這段話(huà)都是建立在同一代PCIe總線(xiàn)之上的。
那么PCIe的吞吐量是怎么算出來(lái)的呢?首先我們來(lái)看下不同PCIe接口尺寸的計(jì)算公式:吞吐量=傳輸速率*編碼方案*物理信道Lane 以PCIe4.0x4為例,該系列為4.0版本的PCIe,包含4個(gè)物理信道Lane,每個(gè)通道的吞吐量為: 16GT/s x 128b/130b =1.969GB/s 所以PCIe4.0x4的吞吐量為:1.969GB/s x 4 = 7.877GB/s,如果是PCIe4.0x16,吞吐量最大就是64GB/s。
除了吞吐量不同,不同的PCIe的尺寸的應(yīng)用有啥不同呢?我們就來(lái)詳細(xì)看下X1、X4、X8、X16的應(yīng)用情況。
PCIe x16插槽:如上圖所示,PCIe x16插槽全長(zhǎng)89mm,有164根針腳,靠主板外側(cè)端有一卡口,將16x分為前后兩組,較短的插槽有22根針腳,這個(gè)是用于供電,每個(gè)尺寸的插槽都有這個(gè)22根針腳的供電設(shè)計(jì)。較長(zhǎng)的插槽142根,主要用于數(shù)據(jù)傳輸,具有16通道所帶來(lái)的高帶寬。 目前來(lái)看,PCIe x16插槽,主要用于GPU顯卡以及RAID陣列卡等,這個(gè)插槽擁有優(yōu)良的兼容性,可以向下兼容x1/x4/x8級(jí)別的設(shè)備,而且具有更強(qiáng)的傳輸性能,可以說(shuō)是PCIE x16插槽是PCIE的萬(wàn)能插槽。 由于PCIe x16插槽常用于顯卡,與CPU處理器直接相通,在物理位置上直接靠近CPU,這樣顯卡與處理器之間的數(shù)據(jù)交換就可以減少延遲,讓系統(tǒng)的性能可以得到充分的發(fā)揮。 PCIe x8插槽:全長(zhǎng)56mm,有98根針腳,與PCIe x16比較,主要是數(shù)據(jù)針腳減少至76根,短的供電針腳仍然是22針腳。 為了兼容性,PCIe x8插槽通常加工成PCIE x16插槽的形式,但數(shù)據(jù)針腳只有一半是有效的,也就是說(shuō)實(shí)際帶寬只有真正的PCIE x16插槽的一半??梢杂^察主板布線(xiàn),x8的后半段沒(méi)有線(xiàn)路連接,甚至針腳也沒(méi)有焊接。 實(shí)際上除了旗艦級(jí)或服務(wù)器的主板,能提供多條真正的PCIex16插槽外,大多數(shù)的主板,只會(huì)提供一條真正的PCIe x16插槽,就是最靠近CPU的那條。而第二條和第三條PCIe x16插槽,則多數(shù)是PCIe x8甚至是x4級(jí)別的。
PCIe x4插槽:長(zhǎng)度為39mm,同樣是在PCIE x16插槽的基礎(chǔ)上,以減少數(shù)據(jù)針腳的方式實(shí)現(xiàn),主要用于PCIe SSD固態(tài)硬盤(pán),或者是通過(guò)PCIE轉(zhuǎn)接卡安裝的M.2 SSD固態(tài)硬盤(pán)。 PCIe x4插槽通常由主板芯片擴(kuò)展而來(lái),不過(guò)隨著cpu內(nèi)部PCIE通道數(shù)的增多,現(xiàn)在有部分高端主板可以開(kāi)始提供直連cpu的PCIE x4插槽,用于安裝PCIE SSD固態(tài)硬盤(pán)。 不過(guò)與PCIe x8插槽一樣,PCIe x4插槽為了兼容性,現(xiàn)在多數(shù)也是做成PCIe x16插槽的形式,或是擴(kuò)展為M.2接口,用于安裝M.2 SSD、M.2無(wú)線(xiàn)網(wǎng)卡或者其它M.2接口設(shè)備,其余擴(kuò)展卡則留給PCIE x1插槽負(fù)責(zé)。 PCIE x1插槽:長(zhǎng)度僅有25mm,相比PCIE x16插槽,其數(shù)據(jù)針腳是大幅度減少至14個(gè)。PCIE x1插槽的帶寬通常由主板芯片提供,主要用途是獨(dú)立網(wǎng)卡、獨(dú)立聲卡、USB 3.0/3.1擴(kuò)展卡等都會(huì)用到PCIE x1插槽,甚至可以通過(guò)轉(zhuǎn)接線(xiàn)給PCIE x1插槽裝上顯卡,用來(lái)挖礦或者實(shí)現(xiàn)多屏輸出。 X1的另外一個(gè)重要作用就是是用來(lái)替代原來(lái)的PCI設(shè)備的。 ?
03?PCIe未來(lái)會(huì)怎樣?
PCIe接口從2001年發(fā)展至今,在協(xié)議的完整性上已經(jīng)建立足夠高的"護(hù)城河",重新定義一個(gè)接口協(xié)議在性能上超越PCIe,短期內(nèi)一方面沒(méi)有企業(yè)會(huì)有這個(gè)動(dòng)力,另一方面技術(shù)的維度,也沒(méi)有可預(yù)期的雛形創(chuàng)新。 但"成"也Intel ,"阻礙"也在Intel。 我們都知道,Intel在CPU發(fā)展方面一直以"擠牙膏"著稱(chēng),其實(shí)在PCIe方面,Intel擠牙膏那是更嚴(yán)重。 一般來(lái)說(shuō),規(guī)范確定到商品化需要1~2年的時(shí)間,就像摩爾定律估算的差不多,每過(guò)1~2年,其實(shí)產(chǎn)品就需要升級(jí)進(jìn)化。 但是靠著英特爾靠著自己的壟斷優(yōu)勢(shì),在PCIe升級(jí)方面則是亦步亦趨。從2004年發(fā)布PCIe1.0以后,到2023年新一代服務(wù)器的發(fā)布,PCIe5.0才開(kāi)始逐漸出現(xiàn)在主板上。 而且可以說(shuō),PCIe 5.0是PCIe發(fā)展的重要分水嶺,這是因?yàn)槿怂悴蝗缣焖?,Intel沒(méi)想到大數(shù)據(jù)AI、視覺(jué)渲染、基因分析以及EDR仿真等需求的突然爆發(fā),讓PCIe的數(shù)據(jù)傳輸已經(jīng)趕不上GPU的需求。 ? 為了解決PCIe在數(shù)據(jù)傳輸?shù)南拗疲缭趲啄昵?,市?chǎng)上幾種不同的傳輸和內(nèi)存語(yǔ)義協(xié)議逐漸出現(xiàn)--IBM的OpenCAPI內(nèi)存接口協(xié)議、Xilinx的CCIX協(xié)議、NVIDIA的NVLink協(xié)議、惠普企業(yè)版的Gen-Z協(xié)議,都是為了解決PCIe4.0傳輸過(guò)慢的問(wèn)題。 眼看著大家都在革PCIe的"命",在2019年3月份Intel推出了CXL(Compute Express Link)協(xié)議接口,將CXL協(xié)議封裝到PCIE鏈路層數(shù)據(jù)包中傳送,并在CPU端的PCIE總控后端按照事務(wù)標(biāo)識(shí)分流CXL專(zhuān)屬事務(wù)給CXL處理邏輯處理。 Intel希望能夠讓CPU與GPU、FPGA或其他加速器之間實(shí)現(xiàn)高速高效的互聯(lián),從而滿(mǎn)足高性能異構(gòu)計(jì)算的要求。最值得注意的是CXL標(biāo)準(zhǔn)的接口規(guī)格與PCIe 5.0是兼容的,從而讓CXL協(xié)議讓PCIe5.0上可以運(yùn)行,進(jìn)一步鞏固PCIe在計(jì)算機(jī)里的影響力。
Intel的策略是,既然CPU等需求趨勢(shì)已經(jīng)來(lái)襲,堵不如疏,不如把GPU、DPU等用作一把刀,來(lái)與NVIDIA形成某種制衡,如今,NVIDIA也加入了CXL聯(lián)盟,對(duì)Intel來(lái)說(shuō),反正我建了通往內(nèi)存的"高速路",你GPU怎么走都得聽(tīng)我的。 ? 通過(guò)這種方式,也能進(jìn)一步制衡GPU的發(fā)展,一顆CPU想支持幾個(gè)GPU,還得通過(guò)Intel說(shuō)了算。 值得注意的是,第四代英特爾至強(qiáng)可擴(kuò)展處理器每一顆處理器支持最多4個(gè)CXL設(shè)備,支持CXL Type1和CXL Type2。)這些將提升服務(wù)器的綜合能力,為內(nèi)存密集型和IO密集型場(chǎng)景提供更高價(jià)值。
04?最后
2022年1月,PCI-SIG 組織今日正式發(fā)布了 PCIe 6.0 標(biāo)準(zhǔn)。作為CXL 3.0軟件棧協(xié)議規(guī)范的物理連接承載平臺(tái),PCIe 6.0主要用于CPU與GPU(AI加速器)、CPU與DPU(智能萬(wàn)卡NIC)、以及CXL內(nèi)存模塊(可以理解為其他CPU DDR內(nèi)存)的連接,對(duì)應(yīng)的應(yīng)用場(chǎng)景,如大內(nèi)存、以及不同外設(shè)緩存之間的直接數(shù)據(jù)交換。 對(duì)于這些場(chǎng)景而言,PCIe 6.0接口子系統(tǒng)高達(dá)64GT/s的數(shù)據(jù)傳輸速率,對(duì)于異構(gòu)計(jì)算架構(gòu)的影響意義重大。
編輯:黃飛
?
評(píng)論
查看更多