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