PCI Express橋接 PCI 的讀取性能
PCI Express 是目前 PC 芯片集及嵌入式處理器的普遍互連標準。盡管之前的PCI標準由PCIe所取代,但 FPGA 和I/O設備仍使用 PCI。當前基于 PCI 的設計均采用未集成 PCIe 接口的組件,因此若要升級系統,需使用 PCIe 橋接器。例如,PCIe橋接器將用于采用I/O設備的嵌入式視頻錄音機,通過(guò)PCI連接至具有PCIe 端口的嵌入式處理器。
本文引用地址:http://dyxdggzs.com/article/88325.htm在系統中添加橋接器將會(huì )帶來(lái)一定的設計難題,本文旨在研究通常受引入橋接器影響的 PCI 讀取性能問(wèn)題,以及相應的解決方法。
引入橋接器帶來(lái)的性能挑戰
PCI 總線(xiàn)上的設備主要依賴(lài)有關(guān)系統從主機處理器讀取大量的數據。PCI I/O 設備通??刂葡到y中的數據移動(dòng),并將讀寫(xiě)循環(huán)傳入主機內存。例如,主機處理器可通過(guò)寫(xiě)入外圍設備上的寄存器設置外圍設備中的 DMA,即可設置和配合數據移動(dòng),但為了專(zhuān)注于其他任務(wù),處理器會(huì )將自身從數據移動(dòng)中刪除。然后,外圍設備將讀取或寫(xiě)入數據以服務(wù) DMA。在其他時(shí)間,處理器可讀取狀態(tài)信息并寫(xiě)入寄存器以進(jìn)行控制。通常,此通信量不會(huì )涉及高帶寬,且不會(huì )對系統整體性能帶來(lái)重大影響。
對于安全數字視頻錄像機(DVR)等嵌入式處理系統,將捕獲并壓縮視頻數據,通過(guò)磁盤(pán)控制器寫(xiě)入磁盤(pán)存儲器,且磁盤(pán)控制器通過(guò) PCI 總線(xiàn)讀取主機內存中的數據即可實(shí)現上述結果。
從 PCI 外圍設備寫(xiě)入橋接器通常傳送至內部寫(xiě)入緩沖器,以解決橋接器帶來(lái)的內在性能影響。然而,PCIe 橋產(chǎn)品需要重試外圍設備,直至它從主機內存中獲得所需的數據。這通常意味著(zhù)試圖讀取許多小型 PCIe 數據包,從而增加時(shí)延。通過(guò)使用分割式傳輸方式,PCI-X 協(xié)議可避免此問(wèn)題,但傳統的 PCI 協(xié)議并不具備此特點(diǎn)。此外,一些 PCI 設備在收到一條或兩條數據緩沖行后就自動(dòng)釋放總線(xiàn),這將成為 PCI 讀取的性能挑戰。
例如,在使用嵌入式 DVR 的普通情況下(圖1),系統需要將持續的壓縮視頻數據流寫(xiě)入磁盤(pán),以便存儲及隨后檢索或分析。在此系統中,一個(gè)或多個(gè)磁盤(pán)控制器(SATA 控制器)將讀取系統主內存中的視頻數據,以存儲在相關(guān)磁盤(pán)陣列。上述系統還可以令以太網(wǎng)控制器等其他外部設備共享 PCI 總線(xiàn)。
如上所述,引入 PCI 橋接器可能導致性能下降。此讀取性能如下所示(參考圖 2):
1.SATA 設備"A"開(kāi)始從主內存讀取。橋接器從內存中預取數據。然后,SATA設備"A"讀取部分預取數據。
2.SATA 設備"B"開(kāi)始從主內存讀取。橋接器從內存中預取數據。然后,SATA設備"B"讀取部分預取數據。
3.SATA設備后續讀取將要求橋接器丟棄緩沖的數據,并從主內存中重取數據。
在此示例中,第 3 步會(huì )在讀取事務(wù)之間帶來(lái)重大時(shí)延,從而極大影響讀取性能。對讀取性能的實(shí)際影響,可能指實(shí)現的性能比直接使用 PCI 總線(xiàn)最初實(shí)現的性能下降許多倍。由于總線(xiàn)斷開(kāi)及多次重試和重取數據后,將持續讀取數據,導致總線(xiàn)效率受到重大影響。此過(guò)程如圖 3 所示。
查看說(shuō)明實(shí)際數據讀取點(diǎn)的 PCI_TRDYn(PCI 目標準備)軌跡可看到,首次讀取(第 3 步)與下次讀取(第 6 步)之間存在較大間隔。這意味著(zhù)視頻數據寫(xiě)入磁盤(pán)的最大速度大幅降低,從而限制了系統的性能。在此情況下,最大程度地提高寫(xiě)入視頻數據的速度對于最終產(chǎn)品至關(guān)重要--可存儲監測最高質(zhì)量視頻所需的諸多信道。
解決問(wèn)題 - 短期高速緩存
Tundra 的 PCI Express橋接器(Tsi381、Tsi382和 Tsi384)具有短期高速緩存 (STC) 的功能,可有助于克服上述性能難題。短期高速緩存允許在最初 PCI 讀取循環(huán)期間從相關(guān) PCI Express 設備中預取數據,并臨時(shí)存儲在橋接器中以便在后續讀取循環(huán)期間迅速周轉。當所要求的設備停止此事務(wù)時(shí),在后續過(guò)程中讀取的數據不會(huì )立即丟棄。
與最初情況相比,它對性能的改變比較大,以一個(gè)采用 Tsi381 橋接器的嵌入式 DVR 系統為例(參考圖4)。在此情況下,啟用 STC 后,后續讀取不會(huì )延遲,原因是有關(guān)讀取仍保留在 Tsi381 的高速緩沖存儲器中,且橋接器在首次讀取后無(wú)需從內存中重新讀取數據,可確保有效地使用總線(xiàn)。
啟用STC前后PCI 總線(xiàn)的計時(shí)見(jiàn)圖5,它可清楚地反映出性能的差異。在此示例中,系統執行每臺設備32位的讀取,兩臺設備無(wú)STC時(shí)執行2次讀取的相同期間,在使用STC后可進(jìn)行7次讀取??梢?jiàn),在使用STC的情況下,系統的整體吞吐性能可提高三倍以上。對于通過(guò)一臺設備執行讀取的系統而言,性能將獲得更大的提高。
Tundra PCI Express 橋接器可確保開(kāi)發(fā)人員調整下列其他參數,從而進(jìn)一步調諧系統: 調整數據保留在高速緩沖存儲器內的時(shí)間。此特點(diǎn)確保設計人員丟棄過(guò)期的數據并預取從前過(guò)期的數據。 調整 PCI 讀取預取長(cháng)度。從理論上而言,橋接器不得預取比PCI外圍設備通常所需的更多的數據,設計人員可根據通常預期的傳輸長(cháng)度設置此參數。
根據系統設計及設備的狀況,設計人員可調整預取長(cháng)度及短期高速緩存丟棄計時(shí)器,以提高整體性能或關(guān)鍵性能。
總結
使用PCIe橋接器將有助于解決由PCI轉向 PCIe帶來(lái)的設計難題。PCI 外圍設備開(kāi)始的讀取將產(chǎn)生額外的延時(shí),這通常對系統的整體性能帶來(lái)重大影響。Tsi381及其他Tundra PCIe橋接器的功能集允許開(kāi)發(fā)人員調諧橋接器,從而優(yōu)化系統性能。利用短期高速緩存,這些橋接器可輕松消除 PCI讀取相關(guān)的性能瓶頸。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論