01-缓存一致性---基础知识
引流關鍵詞: bit.LITTLE,GPU,CCI,cache,緩存一致性,DSU
快速鏈接:
.
👉👉👉 個人博客筆記導讀目錄(全部) 👈👈👈
相關鏈接:
01-緩存一致性—基礎知識
02-緩存一致性—實現big.LITTLE、GPU 計算和企業應用
03-緩存一致性—提高性能和引入CoreLink CCI-500
目錄
- 1、簡介
- 2、軟件一致性的挑戰
- 2.1、挑戰 1:軟件復雜性
- 2.2、挑戰 2:性能和功耗
- 2.3、將硬件一致性擴展到系統
- 3、總結
- 4、參考
1、簡介
我們所說的“一致性”是什么意思?
讓我們回歸基礎,問一下一致性是什么意思?一致性是關于確保系統中的所有處理器或總線主控器看到相同的內存視圖。例如,如果我有一個正在創建數據結構的處理器,然后將其傳遞給 DMA 引擎進行移動,則處理器和 DMA 必須看到相同的數據。如果該數據緩存在 CPU 中并且 DMA 從外部 DDR 讀取,則 DMA 將讀取舊的過時數據。
有三種機制可以保持一致性:
- 禁用緩存是最簡單的機制,但可能會顯著降低 CPU 性能。為了獲得最高性能,處理器通過管道以高頻率運行,并從提供極低延遲的緩存中運行。緩存多次訪問的數據可顯著提高性能并降低 DRAM 訪問和功耗。將數據標記為“非緩存”可能會影響性能和功耗。
- 軟件管理的一致性是數據共享問題的傳統解決方案。在這里,軟件(通常是設備驅動程序)必須清除或刷新緩存中的臟數據,并使舊數據無效,以便與系統中的其他處理器或主設備共享。這需要處理器周期、總線帶寬和功率。
- 硬件管理的一致性提供了一種簡化軟件的替代方案。使用此解決方案,任何標記為“共享”的緩存數據將始終自動更新。該共享域中的所有處理器和總線主控器看到的值完全相同。
2、軟件一致性的挑戰
緩存存儲靠近處理器的外部存儲器內容,以減少訪問的延遲和功耗。片上存儲器訪問的功耗明顯低于外部 DRAM 訪問。
軟件管理的一致性使用兩個關鍵機制管理緩存內容:
- 緩存清理(刷新):
如果緩存中存儲的任何數據被修改,它就會被標記為“臟”,并且必須在將來的某個時間寫回 DRAM。清理或刷新緩存的過程將強制將臟數據寫入外部存儲器。 - 緩存失效:
如果處理器具有本地數據副本,但外部代理更新主內存,則緩存內容已過時或“陳舊”。在讀取此數據之前,處理器必須從緩存中刪除陳舊數據,這稱為“無效”(緩存行被標記為無效)。一個例子是用作網絡流量的共享緩沖區的內存區域,它可以由網絡接口?? DMA 硬件更新;希望訪問此數據的處理器必須在讀取新數據之前使任何舊的陳舊副本無效。
2.1、挑戰 1:軟件復雜性
來自應用處理器供應商的系統架構師的抱怨:
“50% 的調試時間花在軟件一致性問題上,因為這些問題很難找到和查明。”
軟件一致性很難調試,緩存清理和失效必須在正確的時間完成。如果這樣做太頻繁,則會浪費電力和 CPU 工作量。如果做得太少,將導致陳舊的數據,這可能會導致不可預測的應用程序行為,如果不是崩潰的話。調試這個非常困難,因為它會偶爾出現數據損壞。
以下來自一家應用處理器供應商,該供應商希望將更多硬件加速器和接口連接到一致的互連,以幫助縮短新產品的上市時間
“我們希望連接更多具有硬件一致性的設備,以簡化軟件并加快產品進度。”
2.2、挑戰 2:性能和功耗
如果請求者之間的共享率很高,則軟件緩存維護的成本可能很高,并且會限制性能。例如,ARM 基準測試發現,對于處理每個數據包頭的網絡應用程序,可能會在緩存維護上花費超過三分之一的 CPU 周期。部分挑戰是確定需要維護哪些數據。最壞的情況是,必須刷新完整的緩存內容,這可能會取代需要從 DRAM 讀回的有價值的數據。
2.3、將硬件一致性擴展到系統
硬件一致性并不是一個新概念。事實上,ARM 的第一個實現是在 ARM11 MPCore 處理器中。在這里,最多 4 個處理器內核集成在一個集群中,并且可以作為“對稱多處理器”(SMP) 運行,并且可以看到彼此的 L1 緩存和共享的 L2。所有最新的 ARM Cortex 應用處理器都支持該技術。
將硬件一致性擴展到系統需要一致的總線協議, 2011 年 ARM 發布了 AMBA 4 ACE 規范,該規范在流行的 AXI 協議之上引入了“AXI 一致性擴展”。完整的 ACE 接口允許處理器集群之間的硬件一致性,并允許 SMP 操作系統擴展到更多內核。以兩個集群為例,對內存的任何共享訪問都可以“窺探”另一個集群的緩存,以查看數據是否已經在芯片上;如果不是,則從外部存儲器 (DDR) 中獲取。
AMBA 4 ACE-Lite 接口專為 IO(或單向)相干系統主控而設計,如 DMA 引擎、網絡接口和 GPU。這些設備可能沒有自己的任何緩存,但它們可以從 ACE 處理器讀取共享數據。或者,它們可能有緩存,但沒有緩存可共享的數據。
雖然硬件一致性可能會給互連和處理器增加一些復雜性,但它極大地簡化了軟件并啟用了軟件一致性無法實現的應用程序。一個例子是 big.LITTLE 全局任務調度。
3、總結
緩存一致性是共享數據時需要理解的一個重要概念。禁用緩存會影響性能;軟件一致性增加了開銷和復雜性;硬件一致性自動管理共享,可以簡化軟件。AMBA 4 ACE 總線接口將硬件緩存一致性擴展到處理器集群之外的系統中
4、參考
Extended System Coherency: Part 1 - Cache Coherency Fundamentals
總結
以上是生活随笔為你收集整理的01-缓存一致性---基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [architecture]-ARM S
- 下一篇: 02-缓存一致性---实现big.LIT