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