自21世紀(jì)初正式創(chuàng)立以來,PCI Express(PCIe)接口就成為了數(shù)據(jù)中心和計(jì)算應(yīng)用中芯片間數(shù)據(jù)傳輸?shù)男袠I(yè)標(biāo)準(zhǔn)。GPU、FPGA和TPU等特定加速卡都是通過PCIe接口與各個計(jì)算節(jié)點(diǎn)快速傳輸數(shù)據(jù)。
不同芯片之間的業(yè)務(wù)流數(shù)據(jù)通過PCIe接口傳輸
圖源:ADLINK
自2015年以來,全球數(shù)據(jù)流量猛增。隨著數(shù)據(jù)中心轉(zhuǎn)向100G以太網(wǎng)甚至更高,服務(wù)器和網(wǎng)絡(luò)設(shè)備中的 PCIe互連成為瓶頸。下圖展示了PCIe標(biāo)準(zhǔn)的演進(jìn)趨勢,可以看出PCIe 2.0到3.0/4.0,分別花費(fèi)了5年和7年的時間。但是PCIe 4.0到5.0,再到6.0,時間間隔卻分別只有2年和3年,而且PCIe 6.0 64GT/s的傳輸速度也是3.0標(biāo)準(zhǔn)的8倍。
PCIe性能加速曲線
PCIe 6.0 規(guī)范支持?jǐn)?shù)據(jù)中心向800G以太網(wǎng)的切換,800 Gb/s所需的帶寬為100 GB/s,在x16 PCIe 6.0鏈路配置下,單向帶寬可以達(dá)到128 GB/s,在多個端口做鏈路聚合之后,完全支持1.6T 以太網(wǎng)的帶寬需求。
NVLink專注于Nvida的GPU間數(shù)據(jù)交換,滿足大規(guī)模并行處理和AI模型訓(xùn)練等高性能計(jì)算任務(wù)的帶寬需求。而PCIe則憑借其開放性和廣泛的兼容性,迅速適應(yīng)市場變化和技術(shù)演進(jìn)。
PCIe 6.0提供了高達(dá)64 GT/s的單向傳輸速率,顯著提高了數(shù)據(jù)吞吐量。在能效方面,PCIe 6.0采用了PAM-4,以優(yōu)化功耗和信號完整性。因此,PCIe 6.0成為多GPU顯卡互聯(lián)的首選。
CXL 3.0基于PCIe 6.0協(xié)議,CXL內(nèi)存池共享技術(shù)支持跨 CPU、GPU、FPGA 等設(shè)備的內(nèi)存統(tǒng)一編址,可將分散的內(nèi)存聚合為共享池,動態(tài)分配給不同任務(wù)。通過CXL連接的內(nèi)存擴(kuò)展卡,單服務(wù)器內(nèi)存容量可從TB 級提升至PB級,突破大模型訓(xùn)練的內(nèi)存限制,同時減少采購高價(jià)HBM。
NVMe(Non-Volatile Memory Express)是一種專為固態(tài)硬盤(SSD)設(shè)計(jì)的存儲協(xié)議,旨在充分利用 PCIe總線的高速帶寬,提供高性能、低延遲的存儲解決方案。PCIe 6.0 為 NVMe 存儲設(shè)備提供了更高的帶寬和更低的延遲,顯著提升了存儲性能和能效,為數(shù)據(jù)存儲提供高速、低延遲的存儲方案。
PCIe 5.0使用傳統(tǒng)的NRZ(Non-Return-to-Zero)調(diào)制方式,當(dāng)數(shù)據(jù)速率達(dá)到32GT/s時,奈奎斯特頻率也達(dá)到16GHz,頻率升高帶來的損耗與耦合噪聲和串?dāng)_的增加,使得PCIe 5.0信道成為最難處理的NRZ信道。
PCIe 6.0使用PAM-4調(diào)制,PAM-4使用四個信號電平(0, 1, 2, 3),形成三個“眼”(eye),每個電平對應(yīng)兩位數(shù)據(jù)。這種多電平調(diào)制方式顯著提高了數(shù)據(jù)傳輸效率。
PCIe 5.0的單眼眼圖與PCIe 6.0的3眼眼圖
PCIe 5.0和PCIe 6.0的信號奈奎斯特頻率都是16GHz,但是PAM-4的四個電壓電平在一個UI中使用2bit編碼,而NRZ是1bit編碼,因此使數(shù)據(jù)速率提高了一倍。
由于發(fā)射端(TX)的總體電壓擺幅沒有增加,PAM-4每只眼的可用電壓僅為NRZ的1/3。因此,信號對噪聲更加敏感,對于在TX和RX之間信號完整性的要求更高。從NRZ信號轉(zhuǎn)換為PAM-4信號,對于信號抖動的要求要提高2倍,同時會導(dǎo)致信噪比(SNR)退化9.6dB,因此封裝和PCB中的串?dāng)_和回波損耗也比PCIe 5.0高。
噪聲敏感性增加意味著我們用于PCIe的1e-12誤碼率(BER)不可行,并且需要前向糾錯 (FEC),因?yàn)镻AM-4信令的BER將比1e-12高幾個數(shù)量級,第一位誤碼率(FBER)的目標(biāo)是1e-6。前向糾錯 (FEC) 彌補(bǔ)了這種性能上的不足。PCIe 6.0規(guī)范將額外的FEC延遲限制為2 納秒或更短。為了將鏈路重試幾率保持在較低水平,F(xiàn)EC和CRC(循環(huán)冗余校驗(yàn))需要協(xié)同工作。
因此PCIe 6.0采用了256字節(jié)FLIT作為標(biāo)準(zhǔn)大小的數(shù)據(jù)傳輸單元,為了支持FEC的固定數(shù)據(jù)包大小要求,PCIe 6.0 包含基于流控制單元 (FLIT) 的編碼。通過消除在物理層對數(shù)據(jù)包進(jìn)行分組的必要性,此修改還簡化了數(shù)據(jù)管理程序,降低了延遲并提高了效率。
PCIe 6.0引入了一種新的低功耗狀態(tài),稱為L0p,允許PCIe 6.0鏈路在不中斷數(shù)據(jù)流的情況下擴(kuò)展帶寬利用率,從而降低功耗。在前幾代中,為了改變鏈路寬度,整個鏈路重新訓(xùn)練時,流量會中斷幾微秒,但L0p允許鏈路關(guān)閉通道,從而降低功耗,同時始終保持至少一個通道處于活動狀態(tài),即使其他通道正在進(jìn)行鏈路訓(xùn)練。需要注意的是,這種新的低功耗模式僅在FLIT模式下可用,而L0s支持非FLIT模式。
這種新的低功耗模式是對稱的,這意味著TX和RX一起縮放,并且支持FLIT模式的重定時器也支持這種模式。在處于L0p期間空閑通道的PHY功耗預(yù)計(jì)與關(guān)閉通道時的功耗相近。
由于PCIE 6.0使用了PAM4信號制式,在36 dB損耗鏈路下,是無法達(dá)到1E-06誤碼率要求的。因此,PCIe 6.0規(guī)范不得不將整個物理通道的總損耗值降低到32 dB。
PCIe信號傳輸鏈路示意圖
如上圖PCIe信號的傳輸鏈路典型圖示,PCIe卡通過CEM連接器與主板上的芯片建立起來信號傳輸通道。因此在信號傳輸?shù)倪^程中會產(chǎn)生PCB走線損耗、封裝損耗、連接器損耗、過孔損耗等。PCIe 6.0規(guī)范對于各個部分的損耗要求如下:
PCIe6.0 規(guī)范對于傳輸損耗的要求
如上圖PCIe 6.0規(guī)范所示,對于PCB所產(chǎn)生的最大損耗不能超過13.5dB,只有PCB的損耗達(dá)到1.00dB/inch的時候,走線長度才能達(dá)到常規(guī)的13.5inch長度。
現(xiàn)階段,PCIE 4.0 16GT/s的速率,主板已經(jīng)要使用Megtron 4/Megtron 6板材,考慮到CPU芯片的尺寸在不斷增大,在PCIE 5.0和PCIE 6.0時代,主板PCB板材需要進(jìn)一步提升到Megtron 6/Megtron 7等級。銅箔類型需優(yōu)選HVLP(低粗糙度)以上等級,以減少信號因趨膚效應(yīng)產(chǎn)生的損耗。