top of page

【產業動態】PCIE 6 技術與特性以及關鍵技術問答

隨著存儲、網路卡、顯示卡以及加速運算卡等產品開發從現行趨於成熟的 PCIe 4.0 技術轉向引入 PCIe 5.0 技術,產業發展也將開始在其未來產品藍圖中採用PCIe 6.0技術,以利未來優化其產品並利用 PCI Express 技術提供的高頻寬和低延遲。

PCI Express(PCIe)標準組織 PCI-SIG 宣布正式發布了 PCIe 6.0 規範,達到了64 GT/s的速度。


PCI Express(PCIe)規範在近二十年間實際上已經成為了互連的標準,PCIe 6.0 規範的技術發展,將頻寬和功耗效率提升了一倍,相較於PCIe 5.0規範(32 GT/s),同時滿足了產業對高速低延遲互連的需求;PCIe 6.0技術是資料密集型市場(如資料中心、人工智能/機器學習、高性能運算、汽車、物聯網、和軍事/航太等)的成本效益高且可擴展的互連解決方案。


PCIe 6.0 技術發展的特點

  • 64 GT/s的原始資料速率,透過x16配置可達到256 GB/s的傳輸速率

  • 使用4級脈衝振幅調變(PAM4)訊號傳輸,利用產業中IEEE 802.3 Gigabit Ethernet已經採用並且有量產產品的的PAM4技術

  • 輕量前向錯誤修正(FEC)和循環冗餘校驗(CRC)技術,降低PAM4訊號傳輸中的位元錯誤率

  • 以 Flit(流量控制單元)的編碼為基礎,支援PAM4調變,並與FEC和CRC協同工作,實現雙倍的頻寬增益

  • 更新Flit模式下的資料封包佈局,提供額外的功能並簡化處理過程

  • 與所有前一個世代的PCIe技術保持向下相容性

PCIe規範每三年翻倍提升I/O頻寬,持續滿足產業需求
PCIe規範每三年翻倍提升I/O頻寬,持續滿足產業需求

市場成長預測顯示PCI Express技術在用戶端 SSD、雲端和企業領域將持續穩定增長。
市場成長預測顯示PCI Express技術在用戶端 SSD、雲端和企業領域將持續穩定增長。

PCIe 6.0 規範:針對資料為中心的應用提供不斷演進的性能



下一代的應用頻寬將加倍


在宣布 PCIe 5.0 規格不到三年後,新的規格面世,實現了 PCI-SIG 每次發布規格都將頻寬加倍的承諾。PCIe 6.0 技術的進一步演進將對於高性能計算 (HPC)、資料中心、邊緣運算、人工智慧、和機器學習 (AI/ML)、汽車、物聯網 (IoT) 和軍事/航空航天等數據密集型市場產生莫大助益,同時進一步鞏固了 PCI Express 穩坐高速接口標準的龍頭。



PCIe 6.0 規格的主要優勢包括:

  • 雙倍頻寬: 將資料傳輸速率提升至 64 GT/s,比 PCIe 5.0 規格的資料傳輸速率提高一倍,為 x16 通道提供高達 256 GB/s 的最大雙向頻寬

  • 低延遲: 利用固定大小的流控制單元(Flit)為基礎的編碼,允許使用輕量前向錯誤修復(FEC),以及 4級脈衝振幅調變(PAM4)訊號 (註一)、和強大的循環冗餘檢查(CRC),且不影響延遲。

  • 向下相容性: 保持與所有前世代的PCIe技術的相容性,保護客戶的投資並支援與數百萬現有產品的連接性。

註一、PAM4

4級(PAM4)訊號調變是一種使用四個不同的脈衝振幅來表示資料的訊號調變技術,對於傳統的二進制調變技術(如2級NRZ)具有更高的資料傳輸效率。透過在每個時鐘周期內使用四個不同的脈衝振幅,PAM4可以在單一時鐘周期內傳輸兩個 bit 的資料,從而實現更高的傳輸速率。這種技術在高速資料傳輸中得到廣泛應用,特別是在 PCIe 6.0 規範中用於提高頻寬和效能。


深入探討FLIT模式、PAM4和前向錯誤修正(FEC)


即將到來的PCIe 6.0規範引入了Flow Control Unit (FLIT) 編碼,使該規範能夠提供低延遲和高效率;PCIe 6.0架構採用了FLIT模式,因為錯誤修正需要在固定大小的封包上操作;一旦鏈路在FLIT模式下運行,任何降低資料速率的速度變化,也必須使用相同的FLIT模式;一旦啟用,FLIT模式將在鏈路中持續適用,不受速度影響;,可實現高頻寬效率、低延遲和減少佔用空間。


PCIe 6.0規範還引入了PAM4(四級振幅調變)訊號和前向錯誤更正(FEC),使得PCIe 6.0規範能夠實現低延遲、低複雜度和低頻寬開銷(low bandwidth overhead)。 前向錯誤更正(FEC)是一種用於檢測和修正傳輸過程中錯誤的技術,透過添加冗余訊息到資料中,FEC能夠檢測和自動修正一定程度的錯誤,從而提高資料傳輸的可靠性和穩定性。


結合PAM4信號和FEC技術,PCIe 6.0規範能夠實現低延遲,即在資料傳輸過程中的時間延遲非常小。同時,它還能夠降低系統的複雜度,使得設計和執行更加簡化。此外這些技術還能夠減少頻寬開銷,也就是資料傳輸中所需的額外頻寬量非常的小。


有關 FLIT 模式的問題

  1. FLIT中失敗的定義是什麼? 每個FLIT都受到循環冗餘檢查(CRC)和3路的交錯前向錯誤更正(FEC)的保護,接收設備在接收到FLIT後進行FEC解碼,對每個FEC 群組內的可更正錯誤進行修復;解碼完成後,進行CRC檢查;如果CRC檢查失敗,接收設備可以透過向傳送設備發送NAK(未確認)來表示該FLIT未成功接收;NAK導致重播 (將已經傳送的FLIT重新發送一次的動作,這個過程中,FLIT的內容被重複傳送),使FLIT在沒有任何錯誤的情況下重新播放和傳遞。如果後續FLIT表明有錯誤的FLIT僅包含無操作(NOP)的傳輸層封包,則可以進行優化,使重播變得不必要。 “Failure in Time”(FIT)是用於衡量可靠性、或故障率的指標,它顯示出在109小時內獲得的“故障”數量;當CRC在存在位元錯誤的情況下通過檢查,會導致潛在的資料完整性問題時,我們定義為故障。這就是為什麼我們總是使用具有非常低混淆概率強大的CRC,即使存在多個錯誤;在FLIT的上下文中,如果一個錯誤的FLIT,在FEC修復後仍然是錯誤的,並且後續的CRC檢查仍然通過(即CRC無法識別錯誤,“混淆”與正確的代碼相同),則被視為故障。我們希望FIT在任何鏈路寬度上都明顯小於1;我們的分析顯示,我們預計FIT約為5 x 10-10,幾乎等於0,在這方面,PCIe 6.0規範與之前的幾代相比,是一個非常強健的互連技術。

  2. 每個FLIT之間是否需要進行交握 (handshake)?這將在需要使用Retimer的長通道上增加明顯的延遲。 每個傳輸的FLIT都有專用的插槽(DLP 0和1中的2個Bytes)用於對接收到的FLIT進行確認(ACK)/不確認(NAK),以達到頻寬匹配。此外,我們還可以透過確認接收到的FLIT的最新序列號碼來同時確認多個FLIT;由於每個FLIT都有一個專用的插槽來管理ACK/NAK,所以除了到達傳輸的FLIT插槽的延遲之外,不會產生任何額外的延遲。

  3. 這是否意味著每個FLIT將傳輸一個傳輸層封包(TLP) (例如:Cpl或是CplD) 不一定,一個 TLP 可以跨越多個 FLIT,而一個 FLIT 也可以包含多個 TLP,這取決於 TLP 的大小;每個 FLIT 的大小為 256 Bytes 中的 236 Bytes 可以用於傳輸部分 TLP,以及一個或多個 TLP。

  4. 為何PCIe 6.0採用不同的 FLIT 大小? 我們在 PCIe 6.0 規格中只有一個 FLIT 大小,即 256 Bytes;我們曾考慮過不同的大小,最終選擇了 256 Byte 的 FLIT 大小,以期在頻寬效率和延遲之間達到合適的平衡。

  5. 為何保持 FLIT 大小為 256B? 我們考慮了各種 FLIT 大小,最終選擇了 256 Bytes 的大小,其中 TLP 負載佔 236 個位元組,TLP 效率為 92%。 我們評估了更高的 FLIT 大小,例如 740 Bytes,其中 20 Bytes 用於資料鏈路層有效負載(DLP)、CRC 和 FEC,720 個位元組用於 TLP 負載,TLP 負載效率約為 97%。雖然這個選項在 FLIT 大小上有所改進,但由於造成的 FLIT 堆積,延遲將增加 3 倍(例如,x4 連接將增加額外的延遲達 16 ns,超出我們目前的狀態)。 我們還考慮了較低的 FLIT 大小,例如 64 Bytes,其中 44 Bytes 用於 TLP 負載,結果 TLP 負載效率約為 69%;然而,這個選項只會帶來約 6 ns 的微小延遲節省。 256 個位元組的 FLIT 大小是一個最佳的選擇,可以使我們超越 PCIe 6.0 規格在頻寬效率和延遲等關鍵指標上的要求。

  6. FLIT 的大小為 256 個位元組,這是最小的傳輸單位嗎?例如,一個僅有 16 個位元組的記憶體讀取 TLP,是否仍然需要 1 個 FLIT? 一個 FLIT 可以在 256 個位元組的 FLIT 中的前 236 個位元組內包含多個 TLP;例如,我們可以在不同的虛擬通道上使用 14 個 16 位元組的讀取請求,佔用了可用的 236 個位元組中的 224 個位元組,並且還可以將第 15 個讀取請求的前 12 個位元組放入同一個 FLIT 的剩餘空間中;第 15 個讀取請求的剩餘 4 個位元組將佔用下一個 FLIT 的前 4 個位元組。

  7. 對於 FLIT 模式,如果一個 TLP 的有效載荷大於 256 個位元組,它將會以兩個 FLIT 來傳送,對嗎? 是的,即使 TLP 的有效載荷為 256 個位元組,如果它開始於第一個 FLIT 的末尾,該 TLP 也可以跨越 3 個 FLIT。

  8. 如果資料的有效負載小於 242,那麼在 FLIT 中會使用 0 進行填充嗎? 如果有後續的 TLP,它可以在同一個 FLIT 上開始;只有在沒有可發送的 TLP 時,我們才會使用 NOP 填充 FLIT。一個 TLP 不需要在 FLIT 內的任何邊界上開始或結束,TLP 可以在 FLIT 中進行打包,但會受一些規則的限制。

  9. 由於 DLP 不能單獨發送,是否需要將它們與 TLP 一起填入 FLIT發送? 由於每個 FLIT 都有專用的 6 個bytes用於 DLP,因此在 TLP 和 DLP 之間沒有直接的依賴關係;為每個 FLIT 提供專用bytes的理由是為了提高封包的效率,減少延遲,同時減少區域開銷。

PCI Express(PCIe)6.0規格中的支援功能


PCIe 6.0規格將提供多項功能,包括傳輸層封包(TLP)有效負載、編碼和解碼、共享信用池 (shared credit pooling, 註3)、前向錯誤修正(FEC)、CRC錯誤修正等。PCIe 6.0架構引入了PAM4訊號傳輸,需要使用FEC機制來降低高錯誤率(FBER);PCIe 6.0架構的通道損耗與PCIe 5.0架構相似,使用現有材料,大約在主機板上為12英寸,在插卡上為3-4英寸;然而,這些只是粗略估計,確切的dB值仍在評估中;請查閱下文【PCI Express(PCIe)6.0規格中的支援功能】獲的更多詳細資訊。


註3、Shared credit pooling(共享信用池)

是指在PCIe架構中的一種機制,用於管理和分配傳輸資源的許可。

在PCIe通訊中,發送端需要獲得接收端的許可(credit)才能傳送資料。這些信用用於確保通訊的順序和公平性;然而,傳統的PCIe架構中,每個發送器和接收器之間都有獨立的許可,這可能導致資源分配不均衡和性能瓶頸。

共享信用池的概念,是將所有發送器和接收器之間的許可,集中在一個共享池中,並由共享調度器進行管理;這樣可以更有效地分配和利用資源,提高整體系統的性能和傳輸量;共享信用池可以根據通訊需求動態地調整許可分配,確保公平性和有效性。


  1. PCIe 6.0規範中支援的TLP負載大小是多少? 與現今的PCI Express技術一樣,TLP的負載大小可以從0 DW(字元,相當於4位元組)到1024 DW不等,儘管最大負載之大小機制的改進,通常會鼓勵實現最大負載大小為128 DW(512位元組),同樣支援TLP前綴,不過方式上會有所修改。從傳輸層的角度來看,TLP的大小也大致相同,改變的是TLP中位元的排列方式,這樣傳輸層可以透過查看固定位置的封包來處理TLP,而無需依賴物理層來識別每個TLP的開始和結束,有助於提高效率,因為我們將不再產生訊框開銷。

  2. PCIe 6.0規範中的編碼和解碼與PCIe 5.0規範有何不同? 對於64.0 GT/s的資料傳輸速率,我們必須採用PAM4訊號編碼,這導致了高錯誤率(FBER);高錯誤率要求我們引入前向糾錯(FEC, Forward Error Correction)機制,將重播機率降至可接受的水平,FEC在一個固定數量的符號上運作;如果我們保持舊的編碼方式,分別保護每個TLP/DLLP/IDLE,則編碼大小將動態變化,然後,帶有獨立FEC保護的訊框控制符 (token),用於表示下一個FEC編碼大小的符號數量,將導致互聯連接非常低效率。透過使用受FEC保護的固定大小符號,可以輕鬆轉換到以 FLIT為基礎的編碼,因為它們具有固定的大小;FLIT是傳輸的基本單元,具有可變大小的TLP、或DLP等。

  3. 共享信用池(Shared Credit Pool)是否屬於 PCIe 6.0 規格的一部分? 共享信用池(shared credit pool)將成為 PCIe 6.0 規範的一部分。對於接收端而言,實施共享信用池是一種選項,但對於 PCIe 6.0 裝置作為發送端,支援共享信用池是強制性的;共享信用池與資料速率、或 FLIT 模式支援是正交的,因此 PCIe 6.0 裝置可以以 32.0 GT/s 的資料速率運作,同時仍使用共享信用池。

  4. 在機構形式和耐用設計方面有哪些變化? 機構形式 (form-factor) 的規格通常會晚於基本規格的制定之後,這是預期的,因為我們需要基本規格的相關資訊來制定機構形式的規格;因此,現在討論形式因素的變化還為時尚早,例如:卡片電氣機構規格 (CEM, Card Electro Mechanical, 註4)。我們的目標是保持與前一世代的一致性,即使對 PCIe 6.0 插槽/形式因素需要進行少量變更,也能實現完全向後兼容。 註4、卡片電氣機構規格 (CEM) Card Electro Mechanical (CEM) 是指卡片電氣機構規格,它是一種用於描述PCIe卡片尺寸、外觀和連接器配置的標準規格;CEM規格確定了卡片的物理尺寸、插槽定位、和卡片連接器的佈局,以確保卡片在不同系統和插槽中的相容性和互換性;這有助於確保PCIe卡片能夠正確安裝並與主機系統進行正確的連接和通訊。

  5. PCI-SIG是否要取消對x32的支援? 雖然基本規格中存在x32和x12模式,但從未被採用,也沒有相應的卡片尺寸規格、或設計,支援這些寬度。自從PCIe 1.0規格以來,其他寬度(x1、x2、x4、x8和x16)已廣泛被採用;經深思熟慮後,我們決定不再支援x12和x32模式。

  6. 在PCIe 6.0規格中,參考時脈 (reference clock) 是否有任何差異? 我們將延續與PCIe 5.0規格和之前的世代相同的參考時脈,以及支援共通時脈、SRNS和SRIS模式 (註5) 的時脈支援。 註5、SRNS和SRIS時脈模式 SRNS和SRIS是PCIe(PCI Express)規範中的兩種時脈模式,這兩種時脈模式的使用可以幫助確保PCIe系統的可靠性和性能,並減少可能對其他設備產生的電磁干擾。 SRNS代表"Spread Spectrum Non-Spread",它是一種時脈展頻技術,用於減少電磁干擾(EMI)的影響,透過對時脈訊號進行微小的頻率變化,SRNS可以降低高頻訊號的能量集中度,從而減少干擾。 SRIS代表"Spread Spectrum Independent Spread",它也是一種時脈展頻技術,但與SRNS不同,它的展頻頻率是獨立於其他設備的,SRIS可以在系統中的每個PCIe設備上獨立選擇展頻頻率,這有助於進一步減少干擾和提高系統穩定性。

  7. 10-6錯誤率考慮的通道數量是多少? 對於10-6錯誤率 (每傳輸10^6個位元中所出現的錯誤數量),不論是多少條通道(lanes),錯誤率都是基於位元數(bits)計算的。

  8. 在PCIe 6.0技術模式下,給定FLIT大小為256B,什麼樣的TLP大小能夠達到最大效能? 即使在FLIT模式下,每個TLP的固定開銷中,移除了每個TLP的固定開銷,並引入CRC和DLLP,TLP的效能,仍然隨著較大的負載大小而提升;因此,雖然在FLIT模式下,較大的TLP負載大小對頻寬效能的提升有所減弱,但仍然存在改善;例如,在FLIT模式下進行100%讀取或寫入操作時,對於TLP負載大小為512B與4KB,鏈路效率,從0.89提高到0.91。 而對於50-50混合操作 (讀取(read)和寫入(write)操作以相等的比例進行),512B與4KB之間的差異更加明顯,分別為0.86與0.91;因此,負載大小取決於使用模型,增加負載大小會增加延遲(例如,在512B和4KB負載之間,x16的延遲懲罰約為29 ns,而x1則約為450 ns);需要做出一個權衡,大多數系統今天的最大負載大小為256B或512B,因此可能會繼續使用這些大小。

  9. 8B CRC和先前PCIe技術世代中的鏈路CRC有所不同嗎? 是的,它是不同的;FLIT模式下使用固定FLIT大小的8B CRC(8-bit Cyclic Redundancy Check),其中包括傳輸層和數據鏈路層的封包;先前的技術世代使用4B CRC用於可變大小的傳輸層封包,並使用單獨的2B CRC用於資料鏈路層封包。

  10. 在前向錯誤碼(FEC)和重播等處理之後,系統中可見的位元錯誤率(BER)是多少? 系統中可見的位元錯誤率(BER)對於應用程式、或使用者級別的可見性,我們不期望有任何變化,與過去相同;然而和以往一樣,我們有機制來量測邊界餘地 (margin) 並記錄任何被修正的錯誤(包括重播等),這是為了檢查系統健康狀況,確保一切在規範定義的限制內運作正常。

  11. 我理解這些所做的權衡。但是更高的BER無法帶來更長的通道嗎? 這是一個非常好的問題。在我們確定10-6 FBER(Forward Bit Error Rate, 正向位元錯誤率:表示每億位元中發生錯誤的位元數量為10個)之前,我們進行了廣泛的研究;正如你所看到的,10-6是一個關鍵數字,以滿足FEC(和CRC)的延遲影響小於2ns並保持很小的頻寬開銷,符合我們小於2%的影響;另一點要注意的是,實際的BER會比FBER糟糕得多,大約差一個量級,這是由於單個通道和通道之間的突發錯誤;如果我們放寬FBER,那麼即使我們有重試機制,重試概率仍需小於1E-5 (即每10萬次傳輸中只有不到1次需要進行重新傳送),我們也需要類似網路的FEC。根據我們的分析,我們有信心將現有的通道覆蓋延伸到1E-6 FBER (指的是10的負6次方的前向錯誤率,表示每傳輸 1,000,000 個位元中,僅有 1 個位元會發生錯誤)。對於更長的通道,我們可以使用重定時器 (retimer, 註6)。 基於過去二十年的經驗,通道始終在不斷改善;我們總是能夠使用具有更低損耗特性更好的材料;但是一旦我們確定了目標FBER並相應地部署了FEC/CRC,這個目標就不會隨著時間的推移而改變。我們在技術的整個生命周期內都將受到其限制,因此我們需要做出正確的權衡;更高的FBER可能會給我們帶來額外的一英寸或兩英寸的通道覆蓋,但這不值得硬體設計面積增加、性能下降、成本和功耗增加的懲罰,尤其是失去延遲和功耗敏感等重要用途模型的部分,即使使用現有的材料,所討論的技術和設計已經成功地實現了預期的目標,並且在通道範圍(channel reach, 在通訊系統中訊號能夠可靠傳輸的距離或範圍)等方面達到了所需的標準。 註6、重定時器 (Retimer) 它通常用於增強訊號的強度和品質,以克服訊號衰減和傳輸延遲等問題;重定時器可以在訊號傳輸的路徑上插入,重新產生和重新時脈化訊號,使其能夠在長距離傳輸時保持穩定和可靠。

  12. 你能具體說明PCIe 6.0的通道損耗嗎?多少分貝? 通道損耗將與 PCIe 5.0 規範相似;基本上,我們的目標是使用 PCIe 6.0 規範引入時可用的材料,在主機板上達到約12英寸的範圍,在插卡上則為3-4英寸,這只是一個很粗略的估計 (註7);至於具體的分貝值,目前正在評估中,並且已在 PCIe 6.0 規範的 0.7 版中引入。 註7、硬體大小與通道損耗的關聯 通道損耗與硬體大小的關聯,為通道損耗是指訊號在傳輸過程中所遭受的衰減和雜訊;在長度較長的通道中,訊號會因為衰減而逐漸減弱,同時也容易受到干擾和雜訊的影響,因此通道損耗會更大。而硬體的大小則直接影響了通道的長度,主機板上的通道長度較長,因此通道損耗相對較大;而在插卡上,通道的長度較短,通道損耗相對較小;這是因為通道的長度會影響訊號的傳輸特性,並最終影響通道的損耗情況。


錯誤偵測和修復與前向錯誤碼(FEC)有關


PCI Express(PCIe)6.0規範將具備兩種主要的錯誤修復機制:前向錯誤碼(FEC)和循環冗餘檢查(CRC);每個256位元組的FLIT由242位元組的有效負載組成,並使用8位元組的CRC進行保護;這242位元組的有效負載和CRC,則由6位元組的FEC進行保護。FEC的操作原則是發送冗餘資料 (redundant data, 在資料傳輸過程中添加的額外資料,用於提供錯誤檢測和修正的能力),可以用於在接收端修正一些錯誤;而CRC則是一種用於檢測錯誤的檢查碼。接收端使用FEC來修正FLIT中的任何錯誤,之後對由CRC保護的250位元組進行CRC檢查;如果FLIT未通過CRC檢查,最終將通過PCIe的鏈路層重試機制進行修正。PCIe 6.0技術使用了一種獨特的方法,透過相對較低的首位錯誤率(FBER, First Bit Error Rate)10-6和輕量級、低延遲的FEC,來實現低延遲的傳輸完成初始修正,這種輕量級的設計主要提供有效的錯誤修正功能,同時盡量減少對系統資源的需求和避免帶來更多的延遲。


  1. 更高的位元錯誤率(BER),例如10-4,是否可以提供更長的通道範圍? 在確定採用10-6的首位錯誤率(FBER, 註8)之前,我們進行了廣泛的研究。正如演示中所提到的,10-6是一個關鍵數值,以滿足FEC和循環冗餘檢查(CRC)的延遲要求,使其低於2納秒,同時減少帶寬開銷,使其影響小於2%。另一點需要注意的是,使用BER會比FBER差上一個數量級,這是由於Lane中的爆發錯誤以及Lane之間的相關性。如果放寬FBER,即使我們進行重試,也需要使用類似網絡的FEC,以使重試概率小於1E-5。根據我們的分析,我們有信心將現有的通道範圍確定在1E-6的FBER上。對於較長的通道,我們可以部署重定時器(Re-timer)。 根據我們過去二十年的經驗,通道的性能會隨著時間的推移而改善。我們總是使用具有較低損耗特性的更好材料,但一旦確定了目標FBER並相應地部署了FEC/CRC,就不會隨時間改變。FBER值設定為技術的生命周期,因此我們需要做出正確的權衡。較高的FBER可能會提供一點或兩點的額外通道範圍。然而,這種增益不值得面積、性能、成本、功耗的懲罰,尤其是對於延遲和功耗敏感的使用模式的重大影響。即使使用當今大量部署的材料,關鍵的指標,包括通道範圍,也已經得到滿足。 註8、首位錯誤率(FBER, First Bit Error Rate) 是指在串列連接傳輸的位元串中的第一個位元發生錯誤的概率,在PCI Express(PCIe)技術中,FBER的值表示每傳輸10^6個位元中有多少位元會在第一個位置上發生錯誤;以10-6 FBER為例,表示每傳輸100萬個位元中,有大約1個位元在第一個位置上發生錯誤;FBER是衡量數據傳輸可靠性的一個重要指標。

  2. CRC錯誤如何識別哪個位元組出錯? 循環冗餘檢查(CRC)的評估發生在前向錯誤更正(FEC)之後,由於FEC能夠更正錯誤,它必須知道錯誤的確切位置和大小,以進行更正,因此,它的檢測能力是有限的;另一方面,CRC用於檢測錯誤,無論錯誤發生在哪裡,因此,它的檢測能力更強;一旦FLIT未通過CRC檢查,將進行重試,在重試時,FLIT會被更正。

  3. PCIe 6.0規範中使用的低延遲前向錯誤更正(FEC)的編碼增益 (能夠正確更正的錯誤數量) 是多少? PCI-SIG部署了一種輕量級的FEC進行更正。目標是盡量避免延遲懲罰,並依靠非常強大的CRC進行檢測,結合快速的鏈路層重試,來處理FEC無法更正的任何錯誤。只要FLIT的重試概率約為10-6,無論是由於FEC延遲、還是在檢測不到的錯誤情況下的重試延遲,都不會對性能產生明顯影響。一種結合10-6的FBER和三路交錯(triple interleaving)的單一符號 (資料被分成三個獨立的資料流,並按照特定的交錯模式重新排列,每個資料流中的資料,以單一符號的形式進行編碼,這意味著每個符號代表一個特定的位元組或一組位元組,透過將資料進行三路交錯處理,可以提高資料的冗餘性,增強錯誤檢測和更正的能力),正確的FEC組合將我們帶到這個解決方案的領域。與其他標準不同,PCI-SIG不僅依賴於FEC進行更正,也不將FEC視為獲得通道中編碼增益的手段。相反,我們利用FEC的更正和CRC的檢測結合,實現了有效的重試來進行更正。

  4. 為什麼低延遲前向錯誤更正(FEC)強制使用FLITs? FEC作業是以固定數量的符號進行,如果編碼大小是動態可變的,我們將需要一個獨立且受FEC保護的框架控制符(token),用來指示下一個FEC編碼的大小,即有多少個符號,然而,這將導致非常低效的互連;一旦我們確定了由FEC保護的固定大小的符號,就很容易轉換到FLITs,FLIT(Flow Control Information Unit)是資料傳輸的基本單位,包含可變大小的傳輸或數據鏈路負載等內容,這種結構可以確保在傳輸過程中有效地管理和處理不同類型和大小的數據。

  5. 為了使FEC的延遲保持在2ns以內,採用了哪個頻率? 連結頻率為64 GT/s;FEC邏輯可以在任何頻率下運行,通常情況下,我們預期邏輯運行在1G(或500 MHz或2G),並能輕鬆達到比2ns更好的延遲;我們已經在1G的頻率下運行該邏輯,並且可以在一個時脈周期內完成解碼和修復。

  6. 如果連結運行在較低的資料速率下,是否可以繞過FEC? 在較低的數據速率下,可以選擇繞過FEC並仍保持連結的穩定運作;當PCIe 6.0規範確定下來時,PCI-SIG將決定是否值得為低資料速率下的FLIT模式創建額外的模式,考慮到相應的複雜性。

  7. 鑒於FEC後的有效位元錯誤率仍然比10的負12次方要差,這會成為一個問題嗎? PCI-SIG不認為這將成為一個問題,因為我們具有連結層級的重試機制,可以修復錯誤。確實,與先前的PCIe規範使用NRZ訊號相比 (註9),每個FLIT的重試機率差了三個量級;然而,只要每個FLIT的重試機率在10的負6次方範圍內,且重試的往返延遲在100 ns的範圍內,我們預計不會出現明顯的性能影響。我們的原則是,保持與先前規範相同的延遲,並以10的負6次方的概率承受100 ns的延遲,而不是為每個FLIT增加150+ ns的延遲。 註9、PCIe規範使用NRZ訊號,為何FLIT的重試機率差了三個量級? PCIe規範使用NRZ(Non-Return-to-Zero)訊號時,每個FLIT的重試機率差了三個數量級,原因是由於FEC的引入和改變的傳輸方式;FEC是一種錯誤更正機制,可以在接收端修復部分錯誤的位元,然而,FEC的引入增加了傳輸的複雜性和延遲。 在使用NRZ訊號的PCIe規範中,由於傳輸速率較低且沒有FEC,位元的重試機率相對較低。但是,當引入FEC並提高傳輸速率時,重試機率會相應增加,因為FEC的修復能力有限,需要依賴重試機制來處理無法修復的錯誤位元。因此,在使用FEC的PCIe 6.0規範中,每個FLIT的重試機率較之前的規範使用NRZ訊號時高出三個數量級。

  8. 當前向錯誤更正(FEC)無法成功修復錯誤時,延遲會發生什麼情況?這種情況預計會發生多常? 當FEC無法成功修復錯誤時,循環冗餘檢查(CRC)評估將檢測到錯誤,將向連接方發出負確認(NAK),連接方將從重試(或重播)緩衝區中重新嘗試相同的FLIT;我們預計這種情況發生的概率在10的負6次方範圍內,而重試的延遲往返在100 ns的範圍內。 當FLIT正確接收,無論是第一次、還是經過一次或多次重試後,端口將向其連接方發送確認碼(Ack),連接方將從其重試緩衝區中重新嘗試FLIT。


一併升級的低功耗狀態(L0p)


即將推出的PCI Express(PCIe)6.0規範將延續PCI-SIG在下一代產品中創新的歷史,以滿足不斷變化的各種市場需求。除了幾項必要的創新來將資料速率提高到64.0 GT/s並使用PAM-4訊號,PCIe 6.0規範中的一個重大創新是引入了新的低功耗狀態(L0p, Low Power State),以支援可擴展的功耗管理和頻寬利用,同時不中斷流量。新的L0p狀態是對稱的,並保持至少一個活躍的通道,確保連續的流量傳輸,即使在寬度轉換期間也是如此。連接總是以最高可能的寬度進行訓練,隨後可以根據Flit模式中的頻寬需求調節寬度。


  1. L0p可以根據頻寬使用提供相應的功耗消耗;您能說明為什麼 PCIe 6.0 規範不支援 x3、x5 等寬度,僅支援對稱寬度嗎? PCIe 只支援 x1、x2、x4、x8 和 x16 的連接,這是不支援其他寬度的重要原因,因為啟用 L0p 需要相當大的投資,這種特定支援的原因是出於功耗節省與複雜性之間的權衡。PCI-SIG 專注於支援 PCIe 架構寬度,以避免為新寬度制定規則以及相關的設計和驗證複雜性;在先前的架構中,沒有考慮到從不存在的Lane中開始和結束的傳輸。然而,在新的規範中,我們需要處理這種情況,即從不同數量的Lane中開始和結束的傳輸。這樣的處理會增加複雜性,因為我們需要設計機制來追蹤和管理這些傳輸的進度。不過,如果市場需要,我們可以在以後的規範中添加對不同寬度的支援,這樣的支援需要更多的工作和驗證,因此我們目前專注於利用現有的架構,實現節能效果,讓使用者能夠在設計中獲得最佳的效能並節省能源。這種簡化的方法可以讓開發人員專注於核心方面,同時減少開放生態系統中的互通性風險。 選擇在此版本的規範中採用對稱的連接寬度也是出於簡化的原因;如果沒有對稱寬度,使用者將需要在鏈結層上實施機制,以便從較低的物理層將訓練訊息傳遞出去,代表需要設計一種機制,使得訊息能夠從需要進行訓練的較低層傳遞到其他層;例如,如果要從四條Lane(向上和向下)轉換為向上四條Lane和向下八條Lane,那麼需要將訓練訊息從四條需要進行訓練的向下Lane傳遞出去;在這種情況下,你需要使用上層鏈結層來追蹤和傳遞訓練訊息的進度;這樣的流程是可能的,但是它將是一個全新的機制。根據L0p協議的設計方式,將來可以輕鬆地在規範的未來版本中,加入不對稱寬度的支援。但就目前而言,相較於不支援的寬度,實現對稱寬度的支援更加容易,因此未來可能更多地採用對稱寬度的設計。

  2. L0p的概念是否意圖用於先前的PCIe規範版本,例如PCIe 5.0規範? L0p是PCIe 6.0規範的一部分,僅在Flit模式下啟用;可以設計一個具有最大資料速率為32.0 GT/s(或更低)且支援Flit模式和L0p的組件,仍符合PCIe 6.0規範,而不需要支援64.0 GT/s的資料速率。

  3. 為什麼不支援8b/10b的L0p模式? PCI-SIG正在考慮將8b/10b支援納入L0p模式中,並已經將其納入規範中 (註10)。 註10、8b/10b的L0p模式 8b/10b是一種編碼方式,將8個位元的數據轉換為10個位元的符號,用於資料傳輸和錯誤檢測;L0p模式則是PCIe 6.0規範中引入的低功耗狀態,主要支援在不中斷流量的情況下調整頻寬使用的功能。因此,"8b/10b的L0p模式" 指的是支援使用8b/10b編碼的數據傳輸,在L0p低功耗狀態下運行的模式。

  4. L0p在具有重定時器的連接中是否受支援?如果是,重定時器將如何處理兩個虛擬連接中的連接寬度變更? L0p在具有重定時器 (Retimers) 的連接中是受支援的,支援Flit模式的時脈重整器被要求支援L0p,L0p的寬度是由連接的端口進行協商的,來自重定時器的兩個同方向虛擬端口的寬度將相同;每個Lane的活動和閒置狀態之間的轉換,是透過有序集合(Ordered Set)完成的,重定時器可以查看並相應地進行操作,例如,當連接寬度從x8減少到x4時,在四個進入電氣閒置狀態的通道 (Lane)上將發送一種特殊類型的電氣閒置有序集合(EIOS, Electrical Idle Ordered Set),在端口使這些通道 (Lane)進入電氣閒置狀態之前,重定時器將檢測到EIOS,將其傳送出去,並將其四個發射端通道 (Lane)上的驅動器設為三態 (tristate, 將訊號線設置為三種可能的狀態之一:高電位 (1)、低電位 (0) 或高阻態 (Z))。 當擴展連接(例如從x4擴展到x8)時,我們需要啟動一些非活動的通道 (Lane),為了啟動這些非活動的通道 (Lane),將發送有序組,重定時器將通過這些有序組並喚醒這些通道 (Lane)。這些活動和非活動通道 (Lane)之間的轉換與PCI Express規範中現有的低功耗狀態的轉換是相同的。

  5. L0p通道寬度轉換的進入和退出延遲是多少? 進入或退出L0p模式對流量流動沒有影響,因為PCI-SIG使用現有的週期性SKP有序集合(Ordered Set)來協調通道何時切換到非活動狀態(降低寬度配置)、或加入其他發送流量的活動通道中(提高寬度配置);一旦決定使用L0p縮減連接寬度,必須等待下一個SKP有有序集合邊界(SKP Ordered Set boundary),以確保轉換發生在正確的時間點,保持通訊的正常運行,最壞情況下可能需要等待1.5微秒;在進行上述配置時,延遲將與L1退出延遲相同,這取決於設計和設備實施的主動節能量,PCI-SIG預計這個數字在微秒級別。

  6. 如果連接寬度變回L0,為什麼不使用快速訓練集(FTS)像L0s一樣? 快速訓練集 (FTS, Fast Training Sets) 訓練過程是基於某些假設進行的。當從 L0s (L0 Substate) 狀態退出後,FTS 使用這種假設來進行訓練,以恢復正常的連接狀態。然而,這種方法需要設計師謹慎處理,因為設計需要在給定的有序集合(Ordered Set)數量內完成訓練,結果,節能效果往往有限,因此,為了應對最壞情況下的處理器、電壓、溫度和其他環境條件的變化,設計通常需要考慮各種因素,這可能使得節能效果相對有限。相比之下,像 L1 這樣的基於握手的訓練方法可以實現更好的節能效果,儘管退出延遲時間可能會根據電氣閑置的時間長短,以及處理器、電壓、溫度和其他環境條件的變化而有所不同。

  7. 對於16個通道,預計的功耗消耗是多少? 預計的功耗消耗取決於設計和晶片所使用的通道範圍。目前,根據觀察,每位元的功耗通常在 pJ/b(皮小茲每位元)的範圍內;PCI-SIG 預計 PCIe 6.0 規範將保持類似的功耗效率數值。就閒置功耗而言,預計對於像 L1 子狀態這樣的閒置狀態,每個通道預計會消耗單位位元的微小,達到非常低的雙位數微瓦(μW)功耗。對於像 x16 這樣的較寬的連接,我們預計為類似的功耗數字,不過也有可能透過分攤 PLL、校準、測試等多通道共享的電路開銷,來獲得更好的功耗效率。

  8. L0p 在退出 L0p 狀態後,對於未使用的通道會對 L0s 進行限制;L0p 的最小停留時間是多少? L0s (L0s是休眠(Sleep)狀態) 在 Flit 模式下不受支援,而 L0p 只在 Flit 模式下受支援;它們不能共存。在 L0p (L0p是部分休眠 (Partial) 狀態) 中,每個通道的最小電氣閒置停留時間預計與 L1 相同。


PAM4訊號的影響


PCI Express(PCIe)規範中包含的眾多新功能之一將是PAM4(帶有4個電平的脈衝幅度調變)訊號,使用PAM4可以降低通道損耗,因為它以一半的頻率運行,每個單位間隔(UI)傳輸兩個位元,使規範的通道範圍與PCIe 5.0規範的類似。PAM4將使PCIe 6.0規範能夠提供增強的性能,並支援各種市場上未來的PCIe技術產品。


  1. PCI Express 6.0規範如何與使用非歸零(NRZ)的PCIe 5.0規範互通,並使用PAM4信號? PCIe 6.0規範將與先前的五代規格、以及前五種資料速率完全向後兼容,這些規格都使用NRZ (Non-Return-to-Zero),電路可以在所有這些模式下運作,儘管底層頻率與PCIe 5.0規範相同,為32.0 GT/s的NRZ,但在PAM4模式下,將涉及額外的電路和邏輯來跟踪眼圖中的三個眼睛Eye (指的是使用PAM4信號傳輸時的三個訊號水平,在PAM4訊號中,每個位元的波形通常呈現出三個明顯的水平,這些水平在圖形上看起來類似於眼睛的形狀),以及操作Flit模式所需的邏輯變化。這些將與先前五代規格的NRZ模式中的電路和邏輯共存;這與8b/10b編碼和128b/130b編碼之間的不同資料速率和邏輯之間的電路類似。額外的開銷是為了保持完全向後相容性,並且由於不需要為不同的模式分配專用的引腳和插槽,因此造就了晶片和平台的節省。

  2. PAM4模式下的通道邊際如何工作? 即將推出的PCIe 6.0規範將利用與PCIe 5.0規範相同的基礎架構,在電壓和時間邊際方面進行通道邊際調整。 (註11);唯一的改變是使用三個眼睛而不是一個眼睛,例如,可以同時對所有三個眼睛進行邊際調整。 註11、通道的電壓和時間邊際 通道的電壓和時間邊際是指調整通道的電壓和時間參數,以確保訊號的穩定性和可靠性。這種邊際調整的目的是在不同的環境條件下,如溫度變化、雜訊影響等,保持通道的良好性能。透過調整電壓和時間參數,可以確保訊號在通道中的傳遞和解碼的正確性,提高系統的可靠性和容錯能力。在PAM4模式下,通道的電壓和時間邊際整仍然是一個重要的調整手段,以確保訊號的品質和可靠性。

  3. PAM4模式仍然使用相同的電壓振幅嗎? 整體振幅與PCIe 5.0規範的振幅相同,但由於有三個眼睛,每個眼睛使用降低的電壓;在非歸零(NRZ)模式中,一個眼睛包含了整個振幅,但在PAM4模式中,三個眼睛分別使用電壓振幅的一部分,每個眼睛具有一個電壓的部分。

  4. PAM4對通道有任何新的電氣要求嗎? PCI-SIG預期通道在未來會繼續改善(例如,降低損耗),PCI Express 6.0規範的通道類型和範圍預計與PCIe 5.0規範相似,並有一些小幅改進。


未來的特點


在近二十年的時間裡,PCI Express(PCIe)架構一直以低延遲和高頻寬支援下一代系統;為了滿足不斷演進的科技行業需求,PCIe規範的資料傳輸速率每三年翻倍,同時保持了完全向後兼容性,這種前進的軌跡使得PCIe規範能夠在人工智能(AI)、機器學習(ML)、物聯網(IoT)、汽車、高性能運算(HPC)、企業、雲端、個人電腦等資料密集型市場得到應用。即將到來的PCIe 6.0規範提供了64 GT/s的資料傳輸速率,既提供了功耗效率,又提供了具有成本效益的性能提升。即將到來的規範將包括各種新特性,使得這項技術能夠保持領先地位;以下針對 PCIe 6.0 的近期發展做個總結:


PAM4訊號傳輸


PCIe 6.0中引入的新特性之一是 PAM4(具有4個電平的脈衝幅度調變)訊傳輸;PAM4將使規範的通道範圍保持與PCIe 5.0規範相似,該訊號傳輸方式可以減輕通道損耗,因為它以每個單位間隔(UI)傳輸兩個位元,並以一半的頻率運行。然而,由於該規範在同一個UI中有三個眼睛,眼高和眼寬將會減少。因此,PAM4的位錯誤率(BER)將比較高,需要在規範中採用前向誤碼更正(FEC)來處理。


錯誤偵測和修正


除了PAM4之外,PCIe 6.0規範還包括錯誤假設,包括通道 (Lane) 上的錯誤之間、以及跨通道 (Lane) 之間的相關性;第一位元錯誤率(FBER)是鏈結中接收器第一個位元錯誤發生的機率;位元錯誤率(BER)是FBER、通道內錯誤的相關性、以及跨Lane錯誤的相關性的組合。有兩種主要機制來糾正這些錯誤:透過前向誤碼更正(FEC)進行修正,以及透過循環冗餘檢查(CRC)檢測錯誤,最終透過連結層重試進行修正。FEC的工作原理是發送冗余數據,可以用於在接收器處糾正某些錯誤,CRC是一種用於驗證發送端和接收端之間封包傳輸的錯誤檢測碼。


PCIe 6.0技術使用獨特的方法,透過相對較低的FBER(10-6)和輕量級、低延遲的FEC進行初始修正,以保持低延遲性能;然後,強大的CRC在修正後檢測任何剩餘錯誤,進行鏈結層重試,同樣具有非常低的延遲;使用這兩種修正方式將使PCIe 6.0規範能夠實現低延遲性能,在大多數情況下減少延遲,降低複雜性,以及低帶寬開銷;與具有100+ nsec FEC延遲的網路標準不同,PCIe技術作為一種載入儲存協議,對於依賴於其低延遲性能、低功耗、和高頻寬通信的許多應用程序來說,無法承受任何延遲影響。


FLIT編碼


PCIe 6.0規範使用流量控制單元(FLIT)編碼,這使得該規範能夠提供低延遲和高效率;錯誤修正需要在固定大小的封包上進行操作,這就是為什麼PCIe 6.0架構採用了FLIT。由於錯誤修正發生在FLIT上,我們在FLIT級別上進行CRC檢查和重試;一旦連結以FLIT模式運作,任何降低資料速率的速度變化,也必須使用相同的FLIT模式,因此,一旦啟用,FLIT模式在鏈結中被採用,不論速度如何,FLIT模式對於PCIe 6.0規範來說是一個重大的變化,而低開銷攤銷所產生的改善頻寬能力,使得實現高頻寬效率、低延遲、和減少硬體面積成為可能。


文章來源:PCI-SIG

翻譯與整理:翔宇科技 量測事業群


相關產品

VIAVI Xgig 5P16 平台可同時作為分析儀(Analyzer)、錯誤注入(Jammer)與PCIe Gen5訊號發送(Exerciser)。 最高可支援到16通道、達32GT/s速度,並可同時串接多台VIAVI Xgig系列產品,除了進行更複雜的A-J-A模式外,亦可配合Ethernet/SAS/FC等協定進行整合,以符合現今多協定情境。

延伸閱讀


歡迎 訂閱翔宇科技主題式電子報 >,您將可同步掌握最新的產業新訊以及技術文章。
bottom of page