PCI Express (PCIe) 現在是 PC 芯片組和嵌入式處理器上普遍存在的互連標準。盡管使用橋接器可以為現有 PCI 設備提供一種經濟高效的 PCIe 升級路徑,但由此產生的 PCI 讀取會產生額外的延遲,從而嚴重影響系統性能。Craig 探討了實施 PCIe 橋接器如何解決由 PCI 讀取引起的性能問題。
雖然 PCIe 正在取代原來的 PCI 總線標準,但許多外圍設備和設備(例如 FPGA 和 I/O 模塊)仍在使用 PCI。沒有集成 PCIe 接口的組件需要從 PCI 總線到 PCIe 的橋接器。兩個需要橋接的應用示例包括一個 PCIe 附加處理器卡,它使用基于 PCI 的 DSP 進行通信應用,以及一個嵌入式視頻錄像機,它使用帶有 PCI 的 I/O 設備連接到帶有 PCIe 端口的嵌入式處理器。
在這些系統和其他系統中,添加總線橋會帶來設計挑戰。性能通常取決于網橋的 PCI 讀取性能。由于舊 PCI 協議的限制,一旦引入網橋,就會出現性能問題。使用市售的總線橋可以消除這些問題,從而最大限度地提高系統性能。
PCI 設備的繁重讀取負擔
PCI 總線上的設備通常嚴重依賴于從主機處理器讀取大量數據。PCI I/O 設備通常控制系統中的數據移動,并啟動對主機內存的讀取和寫入周期。例如,主機處理器可能通過寫入外設上的寄存器來組織和協調數據移動,以在外設中設置 DMA 傳輸,但它會將自己從數據移動中移除以專注于其他任務。然后外圍設備將讀取或寫入數據以服務于 DMA請求。在其他時候,處理器可能會讀取狀態信息并寫入寄存器以進行控制。這種流量通常不涉及高帶寬或顯著有助于整體系統性能。
在處理器附加卡的情況下,它的 DSP 必須從主機 PC 內存中讀取數據以進行數據處理或壓縮任務。同樣,諸如安全 DVR 之類的嵌入式處理系統將捕獲和壓縮將通過磁盤控制器寫入磁盤存儲的視頻。 磁盤控制器通過PCI 總線從主機的內存中讀取數據來實現這一點。
從 PCI 外設到橋接器的寫入通常發布在內部寫緩沖區中,以克服橋接器帶來的固有性能損失。然而,PCI 讀取會帶來一些問題,因為 PCIe 橋必須重試外圍設備,直到它從主機的內存中獲得請求的數據。這通常涉及嘗試讀取許多小的 PCIe 數據包,從而增加延遲。
雖然 PCI-X 協議通過拆分事務繞過了這個問題,但傳統的 PCI 協議并沒有實現這個特性。 此外,一些 PCI 設備被設計為在接收到一到兩條高速緩存行數據后自動釋放總線,這加劇了 PCI 讀取的性能挑戰。
以 DSP 處理器卡應用為例。這個特殊的 DSP 使用 32 位 PCI 接口。與許多 PCI 設備一樣,它會在釋放 PCI 總線之前讀取一到兩條高速緩存行數據。在這種情況下,高速緩存行由 16 到 128 個字節組成,具體取決于系統設計和設備功能。
該卡將讀取大量原始數據進行處理,例如在電信應用程序中處理的音頻比特流。在DSP 直接通過 PCI 總線與主機處理器通信的傳統系統中,讀取性能將比添加橋之后更好,因為每個事務都有額外的延遲。
橋接引起的性能惡化
引入 PCIe 橋接器可能會對性能造成重大影響。這種讀取性能下降可能通過以下過程發生(圖 1):
1.DSP 將啟動從 PC 主存儲器的讀取。網橋將鎖定事務并繼續重試,直到網橋接收到數據。
2.網橋將從內存中預取數據并將其存儲在內部緩沖區中。
3.DSP 將讀取一部分數據(一個或兩個高速緩存行),然后斷開連接,釋放 PCI 總線。
4.一旦斷開連接,網橋將丟棄其緩沖區中的所有剩余數據。隨著DSP 啟動下一次讀取,橋將需要再次獲取數據,重試直到數據可供 DSP 使用。
圖1
在此示例中,步驟 4 在讀取事務之間引入了顯著延遲,這極大地影響了讀取性能。 因此,與直接使用 PCI 總線相比,使用 PCIe 橋對讀取性能的影響會大大降低系統性能。
考慮另一種使用嵌入式 DVR 的常見情況。在這種情況下,系統必須將壓縮視頻數據的連續流寫入磁盤以供存儲和以后檢索或分析。在這個系統中,一個或多個SATA 磁盤控制器將從系統的主存儲器中讀取視頻數據,以存儲在附加的磁盤陣列中。這些類型的系統可能包含額外的外圍設備,例如共享 PCI 總線的以太網控制器。
與前面的示例一樣,嵌入式 DVR 中的總線效率受到連續數據讀取、總線斷開以及多次重試和預取的嚴重影響,如圖 2 所示。
圖 2: DVR 系統中的 PCI 總線利用率
正如
指示正在讀取數據的位置的 PCI_TRDYn(PCI 目標就緒)跟蹤所證明的那樣,第一次讀取(步驟 3)和下一次讀取(步驟 6)之間存在很大差距。這意味著將視頻數據寫入磁盤的最大速度顯著降低,從而限制了系統性能。在這種情況下,最大限度地提高視頻數據的寫入速度對于最終產品至關重要,因為它能夠存儲監控所需的盡可能多的高質量視頻通道。
解決問題:短期緩存
Tundra 的 PCIe 橋接器(Tsi381、Tsi382 和 Tsi384)集成了一種稱為短期緩存 (STC)的功能,以幫助克服這一性能挑戰。STC允許在初始 PCI 讀取周期期間從連接的 PCIe 設備中預取數據,并臨時存儲在橋接器中,以便在后續讀取周期期間快速周轉。當請求的設備停止事務時,將在后續讀取中讀取的數據不會立即丟棄。
與最初的橋接情況相比,STC 對性能的影響可能是巨大的。以前面的嵌入式 DVR 為例,但系統中添加了 Tsi381 橋接器。通過啟用 STC,后續讀取不會因為它們保留在緩存中而延遲。此外,橋接器不必在第一次讀取后從內存中重新讀取數據,從而確保有效地使用總線(參見圖 3)。
圖 3:使用 Tsi381 和短期緩存的嵌入式 DVR 系統
為了演示性能差異,請比較啟用 STC 之前和之后的 PCI 總線時序(參見圖 4)。在這個系統對每個設備執行 32 位讀取的示例中,兩個設備可以在沒有 STC的情況下僅執行兩次讀取的同一時間段內執行七次讀取。 因此,使用 STC可以將整體系統吞吐量提高三倍以上。對于具有執行此類讀取的單個設備的系統,改進將更大。
圖 4:啟用短期緩存之前和之后的 PCI 總線時序
PCIe 橋接器允許開發人員通過調整以下參數來進一步修改系統:
數據保存在緩存中的時間。這允許設計人員確保陳舊數據一旦陳舊就被丟棄和預取。
PCI 讀取預取長度。理想情況下,橋接器預取的數據不應超過 PCI 外設通常需要的數據,因此設計人員可以根據預期的典型傳輸長度設置此參數。
根據系統設計和設備行為,設計人員可以 通過調整預取長度和短期緩存丟棄定時器來提高整體性能或關鍵功能的性能。
橋接選項有助于消除瓶頸
使用 PCIe 橋接器將設計從 PCI 遷移到PCIe 的設計人員面臨著相當大的設計挑戰。PCI 外圍設備啟動的讀取會引入額外的延遲,這對 整體系統性能有很大貢獻。
Tundra 的 Tsi381 等 PCIe 橋接器為設計人員提供了調整橋接器的選項,從而提供最佳系統性能。使用 STC,這些橋接器可以輕松消除與 PCI 讀取相關的性能瓶頸。
審核編輯:郭婷
-
PCI
+關注
關注
4文章
662瀏覽量
130184 -
定時器
+關注
關注
23文章
3237瀏覽量
114471 -
PCIe
+關注
關注
15文章
1217瀏覽量
82445
發布評論請先 登錄
相關推薦
評論