PCI Express (PCIe) 6.0規(guī)范實(shí)現(xiàn)了64GT/s鏈路速度,還帶來(lái)了包括帶寬翻倍在內(nèi)的多項(xiàng)重大改變,這也為SoC設(shè)計(jì)帶來(lái)了諸多新變化和挑戰(zhàn)。對(duì)于HPC、AI和存儲(chǔ)SoC開(kāi)發(fā)者來(lái)說(shuō),如何理解并應(yīng)對(duì)這些變化帶來(lái)的設(shè)計(jì)挑戰(zhàn)變得至關(guān)重要。
本文將就上述問(wèn)題和方案作詳細(xì)介紹及探討。
PCIe 6.0的重大新變化
變化一:PCIe 6.0電器性發(fā)生根本性的機(jī)制改變
為了實(shí)現(xiàn)64GT/s的鏈路速度,PCIe 6.0采用脈沖幅度調(diào)制4級(jí) (PAM4) 信號(hào),在與32GT/s PCIe相同的單元間隔(UI)中提供4個(gè)幅度級(jí)別(2 位)。圖1顯示了三眼眼圖與此前的單眼眼圖的對(duì)比。
圖 1:與NRZ信號(hào)相比,PCIe 6.0 PAM-4信號(hào)是三眼眼圖
與NRZ相比,轉(zhuǎn)換到PAM4信號(hào)編碼引入了更高的誤碼率(BER)。為緩解這種情況,6.0規(guī)范在以 64GT/s 運(yùn)行時(shí)實(shí)現(xiàn)了許多新功能。例如,當(dāng)將新的4級(jí)電壓眼圖映射到數(shù)字值時(shí),格雷編碼可以最小化每個(gè) UI 內(nèi)的錯(cuò)誤,并且發(fā)送器應(yīng)用預(yù)編碼來(lái)最小化迸發(fā)錯(cuò)誤;PCIe 6.0還采用前向糾錯(cuò)(FEC)機(jī)制來(lái)降低較高的誤碼率。這些對(duì) PCIe 協(xié)議和控制器設(shè)計(jì)都具有重大影響。
變化二:新一代協(xié)議的引入
PCIe 6.0 引入了全新的“FLIT 模式”,其中數(shù)據(jù)包被組織在固定大小的流控制單元中,而不是過(guò)去規(guī)范版本中的可變大小。這種模式簡(jiǎn)化了控制器級(jí)別的數(shù)據(jù)管理,帶來(lái)了更高的帶寬效率、更低的延遲和更小的控制器占用空間。當(dāng)以 64GT/s 的速率運(yùn)算時(shí),F(xiàn)LIT 模式使用未編碼數(shù)據(jù)(稱為“1b1b 編碼”),而 128/130 編碼用于 8GT/s 至 32GT/s 的鏈路速度,經(jīng)典8b10b編碼用于2.5GT/s 和 5GT/s 的鏈路速度。
與具有相同配置的 32GT/s PCIe 控制器相比,64GT/s PCIe 6.0 控制器所需的硅面積顯著增加;支持1b1b編碼不僅增加了第三物理層路徑(位于 8b10b 和 128b130b 頂部),還增加了數(shù)據(jù)鏈路層中的邏輯;FLIT模式中使用的新優(yōu)化標(biāo)頭,也進(jìn)一步增加了邏輯門(mén)數(shù),超過(guò)了 32GT/s 解決方案。
變化三:PIPE數(shù)據(jù)路徑寬度增加,每個(gè)時(shí)鐘周期有多個(gè)數(shù)據(jù)包
為了保持與上一代相同的最大時(shí)鐘頻率,64GT/s下PIPE數(shù)據(jù)路徑寬度增加了一倍,即需要1024位數(shù)據(jù)路徑的16通道設(shè)計(jì),這為芯片設(shè)計(jì)帶來(lái)了新的問(wèn)題。
要知道,大于128位的數(shù)據(jù)路徑寬度,可能會(huì)導(dǎo)致SoC需要在每個(gè)時(shí)鐘周期處理多個(gè)PCIe 數(shù)據(jù)包。最小的PCIe事務(wù)層數(shù)據(jù)包 (TLP) 可以被視為 3 個(gè) DWORD(12 字節(jié))加上 4 字節(jié) LCRC,總共 16 個(gè)字節(jié)(128 位)。在 8GT/s 時(shí),使用PCIe PHY的 500MHz 16 位 PIPE 接口最為常見(jiàn),這意味著8通道及以下(16 位/通道 * 8 通道 = 128 位)的鏈路寬度會(huì)在每個(gè)時(shí)鐘最多傳輸一個(gè)完整的數(shù)據(jù)包。但是,16通道(16位/通道 * 16通道 = 256位)在每個(gè)時(shí)鐘周期就需要傳輸兩個(gè)完整的數(shù)據(jù)包。
如表1顯示,隨著鏈路速度的提高,每個(gè)時(shí)鐘的完整數(shù)據(jù)包的數(shù)量相應(yīng)增加,從而影響越來(lái)越多的設(shè)計(jì)。
表 1:數(shù)據(jù)路徑寬度隨鏈路速度增加,導(dǎo)致更多配置超過(guò)128位閾值
PCIe 6.0的優(yōu)化設(shè)計(jì)
1松弛排序
PCIe排序規(guī)則需要Posted事務(wù),例如內(nèi)存寫(xiě)入保持有序,除非數(shù)據(jù)包標(biāo)頭中設(shè)置了松弛排序 (RO) 或 ID 排序 (IDO) 屬性。使用RO集的Posted事務(wù)可以傳遞任何先前 Posted 事務(wù),而使用IDO集的事務(wù)只能使用不同的請(qǐng)求者ID傳遞先前事務(wù)。
以下四個(gè)示例展示了這兩種屬性對(duì)于實(shí)現(xiàn)完整的PCIe 64GT/s 性能的重要性。他們均利用4個(gè)PCIe內(nèi)存的序列寫(xiě)入256字節(jié)中的每一個(gè),表示將1KB 有效載荷遞送到地址1000,然后是4個(gè)字節(jié)的PCIe內(nèi)存寫(xiě)入,表示將“成功完成”指示遞送到地址7500。表中的每一行代表一個(gè)時(shí)間段,而三列(從左到右)表示事務(wù)到達(dá)PCIe引腳、應(yīng)用程序接口和 SoC 內(nèi)存。在所有 4 次內(nèi)存寫(xiě)入之前,“成功完成”指示到達(dá)內(nèi)存的任何場(chǎng)景都反映出失敗,因?yàn)檐浖谑盏街甘竞罅⒓纯蛇M(jìn)行數(shù)據(jù)處理,因此在交付正確的數(shù)據(jù)之前處理。
示例1:只要其中一個(gè)應(yīng)用程序接口的帶寬至少等于 PCIe 帶寬,該接口就可以正常工作。
表2:?jiǎn)我蝗俾蕬?yīng)用程序接口可正確傳輸數(shù)據(jù)
示例2:雙接口通常會(huì)出現(xiàn)故障,因?yàn)闊o(wú)法保證SoC中兩個(gè)通往內(nèi)存的獨(dú)立路徑之間的到達(dá)順序。
表3:顯示雙半速率應(yīng)用程序接口失敗,原因是“成功完成”指示早于所有數(shù)據(jù)到達(dá)
示例3:將強(qiáng)排序流量強(qiáng)制到單個(gè)接口可避免出現(xiàn)無(wú)序到達(dá),但由于無(wú)法使用全部?jī)?nèi)部帶寬,因此很快落后于 PCIe 鏈路。
表4:由于無(wú)法全速傳輸數(shù)據(jù),所示的雙半速應(yīng)用程序接口失敗
示例4:當(dāng)鏈路伙伴把數(shù)據(jù)有效載荷數(shù)據(jù)包標(biāo)記為 RO 且把成功完成數(shù)據(jù)包標(biāo)記為強(qiáng)排序時(shí),兩個(gè)半速率接口可以成功傳輸。請(qǐng)注意,當(dāng) RO 有效載荷數(shù)據(jù)無(wú)序到達(dá)時(shí),非 RO 寫(xiě)入 7500 不被允許傳遞有效載荷寫(xiě)入,因此在發(fā)送所有先前寫(xiě)入之前,不會(huì)將其發(fā)送到應(yīng)用接口。
表 5:顯示雙半速應(yīng)用程序接口通過(guò)對(duì)有效載荷數(shù)據(jù)使用松弛排序成功
SoC 設(shè)計(jì)人員可以在其出站數(shù)據(jù)流中設(shè)置RO屬性,并顯著提高PCIe鏈路性能。IDO排序?qū)傩栽谠S多情況下都具有類似的優(yōu)勢(shì),大多數(shù) PCIe 實(shí)現(xiàn)都可以將其應(yīng)用于其傳輸?shù)拿總€(gè)數(shù)據(jù)包。
具有IDO集的數(shù)據(jù)包僅被允許傳輸具有不同請(qǐng)求者 ID 的先前事務(wù),這意味著數(shù)據(jù)包來(lái)自 PCIe 鏈路上的不同邏輯代理。大多數(shù)端點(diǎn)實(shí)現(xiàn)(單功能和多功能)都對(duì)與往返于其他 PCIe 端點(diǎn)的流量相關(guān)的數(shù)據(jù)排序漠不關(guān)心,因?yàn)樗鼈兺ǔV慌cRC通信。同樣,大多數(shù)RC通常不會(huì)在多個(gè)端點(diǎn)之間混合相同的流量流,因此在這兩種情況下,都沒(méi)有與其他設(shè)備的請(qǐng)求者 ID 相關(guān)的排序問(wèn)題。與此類似,大多數(shù)多功能端點(diǎn)對(duì)功能之間的數(shù)據(jù)排序也不關(guān)心,因此也不必?fù)?dān)心自己的請(qǐng)求者ID之間的排序。因此,大多數(shù)實(shí)施已經(jīng)可以為他們發(fā)起的所有事務(wù)設(shè)置IDO。
2增加應(yīng)用程序接口
除了上文討論的因素外,當(dāng)數(shù)據(jù)包小于接口寬度時(shí),利用多個(gè)較窄的應(yīng)用程序接口可顯著提高整體性能。圖 2 顯示了新思科技 PCI Express 6.0 控制器IP上64GT/s Flit模式下在發(fā)送連續(xù)的 Posted TLP流方面的傳輸鏈路利用率。對(duì)于更大的數(shù)據(jù)路徑寬度,顯然需要更大的數(shù)據(jù)包來(lái)通過(guò)單個(gè)應(yīng)用程序接口保持完全的鏈路利用率,1024 位接口需要 128 字節(jié)的有效負(fù)載。
圖 2:在 64GT/s FLIT 模式下,利用單個(gè)應(yīng)用程序接口進(jìn)行傳輸?shù)母鞣N有效荷載大小和數(shù)據(jù)路徑寬度的鏈路利用率
相反,當(dāng)新思科技控制器配置為兩個(gè)應(yīng)用接口并運(yùn)行相同的流量模式時(shí),就會(huì)有明顯的改進(jìn),現(xiàn)在64字節(jié)的有效負(fù)載即使在 1024 位數(shù)據(jù)路徑中也能產(chǎn)生完全的鏈路利用率,如圖 3 所示。
圖 3:在 64GT/s FLIT 模式下,通過(guò)兩個(gè)應(yīng)用接口配置進(jìn)行傳輸?shù)母鞣N有效載荷大小和數(shù)據(jù)路徑寬度的鏈路利用率
3解決小數(shù)據(jù)包效率低下
雖然大多數(shù)設(shè)備幾乎無(wú)法控制其流量模式,但小數(shù)據(jù)包可以實(shí)現(xiàn)更少帶寬。新思科技 CoreConsultant 使用最大有效負(fù)載大小和往返時(shí)間 (RTT) 等參數(shù)來(lái)配置 PCIe 6.0 控制器中的緩沖區(qū)大小、突出 PCIe 標(biāo)簽數(shù)量和其他關(guān)鍵參數(shù)。
圖3和圖4顯示了從新思科技的 64GT/s x4 控制器的仿真中獲得的數(shù)據(jù)。該控制器配置為 512 字節(jié)最大有效載荷大小和 1000nS RTT 掃描,覆蓋一系列有效載荷大小和 RTT 值。如果在同一范圍內(nèi)重復(fù)相同的掃描,但任意一個(gè)參數(shù)降低,則當(dāng)掃描通過(guò)優(yōu)化范圍后,性能會(huì)降低。
圖 3:小尺寸 Posted 數(shù)據(jù)包效率低下
圖 4:小尺寸Non-Posted數(shù)據(jù)包效率低下,在一系列往返時(shí)間范圍內(nèi)掃描
總結(jié)
實(shí)施 64GT/s PCIe 接口的 SoC 設(shè)計(jì)人員應(yīng)確保其支持松弛排序?qū)傩?,即有效載荷而非相關(guān)控制上的RO,以及所有數(shù)據(jù)包上的IDO,除非應(yīng)用程序有異常要求。這是在整個(gè) 64GT/s 生態(tài)系統(tǒng)中實(shí)現(xiàn)高性能的關(guān)鍵部分。
為x4和更寬鏈路實(shí)施64GT/s PCIe的設(shè)計(jì)人員需要注意每個(gè)時(shí)鐘周期的多個(gè)數(shù)據(jù)包,并應(yīng)根據(jù)其典型流量大小考慮多個(gè)應(yīng)用接口。
所有64GT/s實(shí)施者都應(yīng)為1GHz(或更快)的設(shè)計(jì)實(shí)現(xiàn)做好準(zhǔn)備,并且應(yīng)確保通過(guò)硅前性能模擬檢查其假設(shè)。
對(duì)于上述這些優(yōu)化設(shè)計(jì)辦法,新思科技提供完整的PCIe 6.0解決方案(包括控制器、PHY 和 VIP)。這些解決方案支持松弛排序?qū)傩浴AM-4 信號(hào)、FLIT 模式、L0p 電源、高達(dá) 1024 位的架構(gòu)以及多個(gè)應(yīng)用程序接口選項(xiàng),有助于更輕松地過(guò)渡到64GT/s PCIe設(shè)計(jì)。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
452文章
50206瀏覽量
420924 -
控制器
+關(guān)注
關(guān)注
112文章
16103瀏覽量
177077 -
soc
+關(guān)注
關(guān)注
38文章
4099瀏覽量
217774 -
芯片設(shè)計(jì)
+關(guān)注
關(guān)注
15文章
993瀏覽量
54772 -
PCIe
+關(guān)注
關(guān)注
15文章
1200瀏覽量
82352
原文標(biāo)題:如何破解PCIe 6.0帶來(lái)芯片設(shè)計(jì)新挑戰(zhàn)?
文章出處:【微信號(hào):架構(gòu)師技術(shù)聯(lián)盟,微信公眾號(hào):架構(gòu)師技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論