開關(guān)成熟度
PCIe 開關(guān)是 PCIe 系統(tǒng)的標(biāo)準(zhǔn)構(gòu)建塊。由于芯片組提供有限數(shù)量的原生 PCIe 端口,因此交換機(jī)通常用于創(chuàng)建額外的 PCIe 端口。使用交換機(jī)允許芯片組扇出更多的 PCIe 端點或 I/O。
隨著 PCIe 協(xié)議的成熟,它的實現(xiàn)也越來越成熟。芯片組過去帶有一個 PCIe 端口,但現(xiàn)在通常支持多個 PCIe 端口。幾年前,設(shè)計人員很難找到支持 PCIe 的嵌入式處理器。如今,支持兩個甚至三個 PCIe 端口的嵌入式處理器很常見。
下一代功能
PCIe 交換機(jī)同樣已經(jīng)成熟。第 1 代交換機(jī)最初只是提供扇出功能,而第 2 代交換機(jī)則支持特定于應(yīng)用程序的性能增強(qiáng)功能,例如讀取步調(diào)和雙播。
當(dāng)今的服務(wù)器和存儲系統(tǒng)混合使用通過連接到 PCIe 的適配器實現(xiàn)的恒定和突發(fā) I/O 的情況并不少見。光纖通道主機(jī)總線適配器 (FC HBA) 是一個恒定的、需要大量數(shù)據(jù)的端點的示例,它大部分時間都在向主機(jī)發(fā)送大量讀取請求。另一方面,千兆以太網(wǎng)網(wǎng)絡(luò)接口卡 (GE NIC) 是一個本質(zhì)上是突發(fā)性的端點,會根據(jù)需要向主機(jī)發(fā)送少量、不頻繁的讀取請求。
在標(biāo)準(zhǔn) PCIe 系統(tǒng)中,如果 GE NIC 在 FC HBA 已經(jīng)發(fā)出大約 8 個讀取請求之后發(fā)送了一個小的讀取請求,則 GE NIC 必須等待 CPU 處理完所有 8 個 FC HBA 讀取請求,然后再處理一個GE 網(wǎng)卡讀取請求。因此,GE NIC 性能會受到影響,因為它要花費(fèi)幾個周期來等待接收其請求的數(shù)據(jù)。FC HBA 讀取請求往往比 GE NIC 的請求更大且更頻繁,這一事實只會加劇 GE NIC 性能下降。這個問題是 PCIe 協(xié)議和 CPU 用于處理傳入讀取請求的先進(jìn)先出 (FIFO) 方案的副產(chǎn)品。
讀取步調(diào)通過在處理讀取請求時公平分配 CPU 帶寬來解決這個難題。在圖 1 中,讀取步調(diào)允許 GE NIC 跳到待處理的 FC HBA 讀取請求之前,從而顯著減少 GE NIC 的最壞情況等待時間。PCIe 交換機(jī)無需等待所有排隊的 FC HBA 讀取請求得到服務(wù),而是允許 GE NIC 讀取請求在隊列中向前跳轉(zhuǎn)。
圖1
雖然突發(fā) I/O 性能可以體驗 5 倍或更高的性能提升,但恒定 I/O 性能不會受到影響。read pacing 使用的算法考慮了恒定的 I/O 性能,并確保其性能不會下降?;诖怂惴ǎx取步調(diào)支持其自己的默認(rèn)設(shè)置集合。但是,想要自定義讀取步調(diào)功能的設(shè)計人員可以根據(jù)需要對自己的閾值進(jìn)行編程。
雙鑄
雙播功能允許將一個入口數(shù)據(jù)包同時復(fù)制到兩個出口端口——一個數(shù)據(jù)包輸入,兩個數(shù)據(jù)包輸出。入口端口和兩個出口端口是用戶可編程的。每當(dāng)數(shù)據(jù)包從選定的入口端口寫入選定出口端口中的指定地址范圍時,交換機(jī)都會自動生成出口數(shù)據(jù)包的副本并將該副本發(fā)送到第二個指定的出口端口。
在冗余和故障轉(zhuǎn)移應(yīng)用程序中,CPU 通常會將數(shù)據(jù)包的副本發(fā)送到冗余端點或輔助系統(tǒng),以確保在系統(tǒng)崩潰時可以使用數(shù)據(jù)的備份副本。借助雙重投射(如圖 2 所示),PCIe 交換機(jī)減輕了 CPU 管理冗余流量的負(fù)擔(dān),將 CPU 需要執(zhí)行的寫入次數(shù)減少了一半。
圖 2
調(diào)試和診斷鏈接
除了這些特定于應(yīng)用的性能特性之外,最新的 PCIe Gen 2 交換機(jī)還提供了許多可以加速系統(tǒng)啟動的集成調(diào)試和診斷特性。
PCIe 數(shù)據(jù)包生成器
內(nèi)置的 PCIe 數(shù)據(jù)包發(fā)生器允許設(shè)計人員以全線速 (5.0 Gbps) 運(yùn)行 PCIe 交換機(jī)的外部鏈路。這款可編程發(fā)生器使設(shè)計人員能夠創(chuàng)建自己的流量模式,其強(qiáng)大功能足以使 x16 Gen 2 鏈路飽和。數(shù)據(jù)包生成器在系統(tǒng)調(diào)試和啟動期間非常有用,允許設(shè)計人員針對可定制的高密度流量測試他們的系統(tǒng)。
性能監(jiān)控
集成的實時性能監(jiān)視器允許設(shè)計人員通過使用 PCIe 交換機(jī)的 GUI 設(shè)計工具查看每個端口上的入口和出口性能,因為流量通過交換機(jī)。性能監(jiān)控是完全被動的,因此對整體系統(tǒng)性能沒有影響。內(nèi)部計數(shù)器為流量和數(shù)據(jù)包類型提供了廣泛的粒度。此外,設(shè)計人員可以修改示例應(yīng)用程序代碼以允許進(jìn)一步定制,例如流量過濾。此功能對于暴露性能瓶頸、識別未充分利用的鏈路以及優(yōu)化系統(tǒng)性能非常有用。
SERDES 眼圖捕捉
設(shè)計人員可以使用開關(guān)的 SERDES 眼圖捕獲功能在物理層評估系統(tǒng)的信號完整性,如圖 3 所示。再次使用開關(guān)的軟件工具,設(shè)計人員可以查看開關(guān)上任何通道的接收器眼圖。此功能對于發(fā)現(xiàn)嚴(yán)重的信號完整性錯誤很有用,設(shè)計人員可以通過修改 SERDES 設(shè)置并查看調(diào)整對接收器眼圖的影響來識別這些錯誤。
圖 3
錯誤注入
錯誤注入允許設(shè)計人員將格式錯誤的數(shù)據(jù)包和/或致命錯誤注入他們的系統(tǒng),從而使他們能夠評估系統(tǒng)檢測此類錯誤并從中恢復(fù)的能力。
縮小差距
除了沒有理解 PCIe Gen 2 除了額外帶寬之外的好處之外,一些設(shè)計人員還沒有意識到從 Gen 1 到 Gen 2 的過渡比看起來要簡單得多。根據(jù) PCI Express 基本規(guī)范修訂版 2.0 的要求,PCIe Gen 2 向后兼容 Gen 1。因此,包括交換機(jī)在內(nèi)的所有 PCIe Gen 2 設(shè)備都與所有 Gen 1 設(shè)備相連。如圖 4 所示,第 2 代交換機(jī)可用作第 1 代到第 2 代的橋接器。
圖 4
例如,使用傳統(tǒng) PCIe Gen 1 芯片組的設(shè)計人員可以使用 Gen 2 交換機(jī)連接到 Gen 1 端點。使用 Gen 2 交換機(jī)不僅提供各種性能和調(diào)試功能,還允許 Gen 2 端點之間的點對點流量以 5 Gbps 的速度運(yùn)行,使 Gen 1 交換機(jī)提供的點對點性能翻倍。
相反,使用 Gen 2 芯片組的設(shè)計人員可以利用 Gen 2 交換機(jī)扇出到 Gen 1 端點。通過使用 Gen 2 交換機(jī),設(shè)計人員可以利用 Gen 2 交換機(jī)內(nèi)置的上述性能和調(diào)試功能,同時隨著設(shè)計的發(fā)展獲得連接到 Gen 2 端點的靈活性。
PCIe Gen 2 現(xiàn)在和現(xiàn)在
隨著 PCIe 市場的不斷擴(kuò)大,PCIe 交換機(jī)的創(chuàng)新也在不斷擴(kuò)大。當(dāng)今的第 2 代交換機(jī)提供高性能、集成的特定應(yīng)用性能增強(qiáng)功能以及內(nèi)置調(diào)試和診斷功能。插入第 2 代交換機(jī)是設(shè)計人員將其傳統(tǒng)的第 1 代系統(tǒng)升級為支持第 2 代的最簡單方法,從而使他們的系統(tǒng)在這個快速發(fā)展的市場中面向未來。
審核編輯:郭婷
-
芯片
+關(guān)注
關(guān)注
456文章
50940瀏覽量
424691 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2645瀏覽量
99786 -
PCIe
+關(guān)注
關(guān)注
15文章
1243瀏覽量
82768
發(fā)布評論請先 登錄
相關(guān)推薦
評論