CMN簡述 --20240305

lethe1203發表於2024-03-05
以下僅是個人對CMN的淺顯理解:
CMN全稱為coherent mesh network,是一種互聯技術,透過在系統中設立多個節點之間的互聯來實現高效能和可靠性
CMN的具體應用:應用於多核之間的cache一致性
0
以上圖為例,每個cluster均有片內cache,當CPU對DDR寫一個值時,例如向ddr 0x100地址寫入0x1
當沒有CMN時的操作:
Cluster0寫值首先是存放在cache中的,cache line常見為32/64位元組。當Cluster0的cache中的資料還未刷入ddr中時,Cluster1要讀取ddr 0x100地址的資料,那麼此時便存在cache一致性的問題。該問題可以透過軟體方法來進行解決,Cluster1在對ddr 0x100地址操作之前,先flush cache,再進行操作,但這樣會導致相當麻煩,一旦忘記操作便會出現很大問題。
有CMN時:
同樣,Cluster0寫值首先是存放在cache中,當Cluster0的cache中的資料還未刷入ddr中時,Cluster1要讀取ddr 0x100地址的資料時,由於有CMN的存在,CMN對Cluster0剛操作同樣的地址是有“記錄”的,那麼CMN會將Cluster0操作的值給到Cluster,這樣就可以保證資料的一致性
想具體可參考ARM官網對CMN的介紹
網路講解CMN的部落格:
CMN匯流排介紹