本文翻譯轉(zhuǎn)載于:Cadence Blog
作者:xinmu
PCIe 6.0 規(guī)范于 2021 年發(fā)布,采用 PAM4 調(diào)制(即 4 電平脈沖幅度調(diào)制),使數(shù)據(jù)傳輸速度翻倍,達(dá)到 64GT/s。同時(shí),PCIe 6.0 規(guī)范使用 FLIT(流量控制單元)作為新的數(shù)據(jù)傳輸單元,顯著提高了傳輸效率。
PCIe 6.0 擁有眾多新功能和變化,我們將討論其中一項(xiàng)重要功能:FLIT。接下來,我們將結(jié)合自身的設(shè)計(jì)和驗(yàn)證經(jīng)驗(yàn),重點(diǎn)分析當(dāng)前面臨的挑戰(zhàn),探討相應(yīng)的解決方案。
PCIe 6.0 中的 FLIT 是什么?
在先前版本中,事務(wù)數(shù)據(jù)以可變長(zhǎng)度的形式存在,稱為 TLP。它們的包頭大小是固定的,但數(shù)據(jù)有效負(fù)載的長(zhǎng)度有所不同。無論 TLP 有多長(zhǎng),都是使用 32 位 CRC 進(jìn)行保護(hù)。在 PCIe 6.0 中,由于額外的信號(hào)狀態(tài),PAM4 信號(hào)本身比 NRZ 信號(hào)更脆弱。新的調(diào)制需要 FEC 來緩解 PAM4 較高的誤碼率,且要求在固定大小的數(shù)據(jù)包上實(shí)現(xiàn)糾錯(cuò)功能,因此在 PCIe 6.0 設(shè)計(jì)中使用了 FLIT(流控制單元)。
FLIT 的長(zhǎng)度固定為 256 字節(jié),其中包含 236 字節(jié)的 TLP、6 字節(jié)的 DLP、8 字節(jié)的 CRC 和 6 字節(jié)的 FEC。它去除了 1b/1b 編碼的同步頭、幀定界符等部分。FLIT 也具有類似的序列號(hào)概念,其中 DLP 的前 2 個(gè)字節(jié)包含專用于 FLIT 級(jí)別序列號(hào)、Ack/Nak、重試機(jī)制等方面的相關(guān)信息。
FEC(前向糾錯(cuò))是針對(duì)延遲而設(shè)計(jì)的,其復(fù)雜性會(huì)隨著糾正的符號(hào)數(shù)量增加而呈指數(shù)增長(zhǎng)。6 字節(jié)的 FEC 負(fù)責(zé) 3 個(gè)交織組,每組有 2 個(gè) FEC 字節(jié),以防在少于 3 個(gè)字節(jié)時(shí)出現(xiàn)突發(fā)錯(cuò)誤。
第一個(gè)挑戰(zhàn)涉及新的 FLIT 格式和編碼變化
在鏈路訓(xùn)練、輪詢和配置階段開始時(shí),使用 TS1 中“Data Rate Identifier(數(shù)據(jù)速率標(biāo)識(shí)符)”字段(符號(hào) 4,位 0)中的“FLIT 模式支持”位,實(shí)現(xiàn) FLIT 模式的啟用機(jī)制和協(xié)商。協(xié)商成功后,F(xiàn)LIT 模式將適用于所有數(shù)據(jù)速率,因此也支持 8b/10b 和 128b/130b(混合模式)。
進(jìn)入 FLIT 模式后,我們采用一種全新的 TLP Header 格式。先前的 TLP Header 存在諸多局限性,例如沒有為標(biāo)簽尺寸增加預(yù)留空間。為了滿足 FLIT 模式的需求,PCI-SIG 對(duì)包頭進(jìn)行了重新設(shè)計(jì)。在此期間,我們面臨的挑戰(zhàn)是需要測(cè)試所有新的組合。
TLP Header 包含 3 到 7 個(gè) DW TLP Header Base,后面跟隨 0 到 7 個(gè)額外 DW 的 OHC(正交頭內(nèi)容)。
新引入的字段具有完全解碼的 8b Packet Type(數(shù)據(jù)包類型)字段。這意味著所有 256 個(gè)類型值都已被明確定義或預(yù)留用于特定群組,以確保正確實(shí)現(xiàn)幀定界和轉(zhuǎn)發(fā)。
此外,還為 FLIT 模式設(shè)計(jì)了新的填寫規(guī)則。未發(fā)布的 TLP 的填寫也有重大更新,包括 14 位標(biāo)簽、使用 OHC-A5 的錯(cuò)誤報(bào)告等。
據(jù)我們所知,236 字節(jié)可以容納 1 個(gè)完整的 TLP 或多個(gè) TLP。如果遇到較長(zhǎng)的 TLP,還可以將其拆分成多個(gè) FLIT 進(jìn)行傳輸。在每個(gè) TLP 之間,如果沒有計(jì)劃發(fā)送更多的 TLP,可能會(huì)插入一個(gè) NOP TLP。PCIe 6.0 規(guī)范中還有一些新的規(guī)定,例如在 FLIT 的 32 DW 邊界內(nèi),每個(gè) FC/VC 最多只能包含 4 個(gè) TLP(非 NOP)。
DLP 是一個(gè) 6 字節(jié)序列,其中前 2 個(gè)字節(jié)專門用于處理 FLIT 級(jí)別的 Ack/Nak、重試等信息,因此設(shè)計(jì)了新的格式。比如,“FLIT usage(FLIT 用途)”字段用于區(qū)分空閑 FLIT、NOP FLIT 或有效負(fù)載 FLIT;“Prior FLIT(前一個(gè) FLIT)”字段用于標(biāo)識(shí)非 NOP 或 NOP,避免重試錯(cuò)誤的發(fā)生;“replay command(回放命令)”和“sequence number(序列號(hào))”用于確定 Ack/Nak/Retry 的執(zhí)行。
此外,在 FLIT 序列號(hào)和重試機(jī)制中,新定義了多種 FLIT 傳輸和交換規(guī)則。例如,CONSECTIVE_TX_EXPLICIT_SEQ_NUM_FLITS 和 CONSECUTIVE_TX_NAK_FLITS 計(jì)數(shù)器及其相關(guān)規(guī)則。
為了測(cè)試所有主要的編碼和格式變化,必須確保覆蓋所有新的數(shù)據(jù)包字段。針對(duì)上述新功能的通用解決方案是定義并實(shí)現(xiàn)良好的覆蓋范圍,以確保新功能得到充分測(cè)試。一個(gè)好的覆蓋模型有助于充分測(cè)試新功能。
除 FLIT 格式外,F(xiàn)LIT 模式帶來的另一項(xiàng)重大挑戰(zhàn)是新的序列號(hào)和重試機(jī)制
在驗(yàn)證過程中,其中一項(xiàng)最難的挑戰(zhàn)是IMPLICIT_RX_FLIT_SEQ_NUM 規(guī)則。該計(jì)數(shù)器對(duì)于回放機(jī)制至關(guān)重要。隱式 FLIT 序列號(hào)未包含在 FLIT 中,因此完全依靠?jī)?nèi)部邏輯來處理。內(nèi)部邏輯/計(jì)數(shù)器需要處理多種場(chǎng)景,以確保正確計(jì)算 IMPLICIT_EX_FLIT_SEQ_NUM。
確保 TX 重試緩沖區(qū)的準(zhǔn)確性也非常重要,因?yàn)樵诮邮?Ack 或 Nak 之前,所有 FLIT 都需要存儲(chǔ)在緩沖區(qū)。一個(gè) FLIT 可能包含多個(gè) TLP,或者一個(gè)大 TLP 可以分成多個(gè) FLIT,因此需要保證重傳的 FLIT 不會(huì)跳過 TLP 或?qū)㈩~外的 TLP 添加在原始 FLIT 中。這對(duì)于 Posted TLP 至關(guān)重要,因?yàn)樗鼪]有 Completion 通知。一旦 TLP 丟失,將導(dǎo)致無法糾正的錯(cuò)誤。
借助新的標(biāo)準(zhǔn) Nak/選擇性 Nak,發(fā)射器可以回放特定 FLIT 或多個(gè) FLIT。相關(guān)規(guī)則對(duì) TX 和 RX 重試緩沖區(qū)均有影響。此外,發(fā)送標(biāo)準(zhǔn)或選擇性 NAK 需要考慮具體的實(shí)施場(chǎng)景,因此有時(shí)很難預(yù)測(cè)和檢查是否存在協(xié)議違規(guī)行為。
FEC 算法是一項(xiàng)新功能,我們需要確保 TX 和 RX 兩端的計(jì)算都正確無誤。
基于上述要點(diǎn),我們嘗試了使用以下解決方案來驗(yàn)證設(shè)計(jì)
1. 除了按照規(guī)范正確實(shí)現(xiàn) IMPLICIT_RX_FLIT_SEQ_NUM 計(jì)數(shù)器之外,我們還發(fā)現(xiàn),將隱式 FLIT 序列號(hào)記錄在狀態(tài)寄存器中或顯示在調(diào)試日志中,能夠更方便地進(jìn)行比較和調(diào)試。
2. 確保您的監(jiān)視器可以存儲(chǔ)所有的 FLIT,將保存的 FLIT 與每個(gè)符號(hào)上的已退役 FLIT 進(jìn)行比較,并報(bào)告相應(yīng)的錯(cuò)誤。
3. 必須確保 RTL 和監(jiān)視器都具有足夠大的重試緩沖區(qū),以便能夠應(yīng)對(duì)在收到標(biāo)準(zhǔn) NAK 后重新發(fā)送多個(gè) FLIT 的情況。另外,需要采用一個(gè)檢查器,根據(jù)規(guī)范預(yù)測(cè)標(biāo)準(zhǔn)和選擇性 NAK 傳輸條件。最后,檢查回放的 FLIT 序列號(hào)是否與收到的選擇性 NAK 相匹配。
4.為了確保 FEC 算法邏輯的正確性,需要使用具有隨機(jī)符號(hào)位置的故障注入測(cè)試用例。
總而言之,PCIe 6.0 是一個(gè)復(fù)雜的協(xié)議,具有諸多驗(yàn)證挑戰(zhàn)。要成功驗(yàn)證該協(xié)議,必須了解新規(guī)范的變化,并制定完善的新功能驗(yàn)證計(jì)劃以及受新功能影響的向后兼容性測(cè)試。Cadence 的 PCIe 6.0 驗(yàn)證 IP 完全符合最新的 PCIe Express 6.0 規(guī)范,并為驗(yàn)證 PCIe 6.0 接口交互的器件提供了一種高效且可靠的解決方案。適用于 PCIe 6.0 的 Cadence VIP 提供全面的驗(yàn)證解決方案,可用于驗(yàn)證基于 PCIe 的 IP 和 SoC。我們正在與早期采用者客戶密切合作,旨在加速每個(gè)驗(yàn)證階段的進(jìn)程。
-
調(diào)制
+關(guān)注
關(guān)注
0文章
165瀏覽量
29789 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2277瀏覽量
95281 -
PCIe
+關(guān)注
關(guān)注
15文章
1278瀏覽量
83479
原文標(biāo)題:破解 PCIe 6.0 FLIT 模式帶來的新挑戰(zhàn)
文章出處:【微信號(hào):gh_fca7f1c2678a,微信公眾號(hào):Cadence楷登】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
解析PCIe 6.0中的正交頭內(nèi)容(OHC)

PCIe 6.0元年,AI與HPC迎來新速度
一文詳解CXL鏈路層格式的定義
楷登電子發(fā)布PCIe 6.0規(guī)范Cadence IP
PCI-SIG?發(fā)布PCIe?6.0規(guī)范以助力大數(shù)據(jù)應(yīng)用
PCIe 6.0的新變化與新挑戰(zhàn)
PCIe 6.0規(guī)范及它是如何從過去的規(guī)范演變而來的

支援PCIe 6.0的Rambus解決方案
PCIe 7.0發(fā)布,速度高達(dá)512 GB/s
干貨:PCIE6.0技術(shù)剖析
面向高性能數(shù)據(jù)中心和人工智能SoC Rambus推出PCIe 6.0接口子系統(tǒng)
如何破解PCIe 6.0帶來的芯片設(shè)計(jì)新挑戰(zhàn)?
PCIe 6.0入門之什么是 PCIe 6.0

淺析PCIe標(biāo)準(zhǔn)和布線的開發(fā)

PCIe的基礎(chǔ)知識(shí)整理

評(píng)論