采用雙端口RAM和多模塊存儲器提高存儲器的工作速度🫎,優化後速度與CPU差距依然很大。這時提出了 主存-Cache 的方式🧗🏻♂️。
一、Cache的工作原理
基于局部性原理,把程序中正在使用的部分存放在一個高速的🧝♀️🙆🏽、容量教小的 Cache 中,使 CPU 的訪存操作大多數針對 Cache 進行,從而大大提高程序的執行速度。
空間局部性:在最近的未來要用到的信息(指令和數據),很可能與現在正在使用的信息在存儲空間上是鄰近的。Eg:數組元素、順序執行的指令代碼。
時間局部性:在最近的未來要用到的信息,很可能是現在正在使用的信息🧑🏻🤝🧑🏻。Eg🎇:循環結構的指令代碼👐🏼。

性能分析
設 t c t_ctc 為訪問一次Cache 所需時間🈁,t m t_mtm 為訪問一次主存所需時間。
先訪問Cache🎫,若Cache未命中再訪問主存:
t = H ∗ t c + ( 1 − H ) ∗ ( t c + t m ) t=H*t_c + (1-H)*(t_c + t_m)t=H∗tc+(1−H)∗(tc+tm)
同時訪問 Cache 和主存,若 Cache 命中則立即停止訪問主存:
t = H ∗ t c + ( 1 − H ) ∗ t m t=H*t_c + (1-H)* t_mt=H∗tc+(1−H)∗tm

二👮🏿、使用 Cache 所必須解決的問題
如何區分 Cache 與 主存 的數據塊對應關系? ——Cache和主存的映射方式。
Cache 很小,主存很大。如果Cache滿了怎麼辦🖨? ——替換算法🧜🏽♂️。
CPU修改了Cache中的數據副本,如何確保主存中數據母本的一致性? ——Cache寫策略。
關于 Cache和主存的映射方式♟、Cache替換算法🤷🏻、Cache寫策略的詳細內容,見下面鏈接文章:

鏈接🌉:https://blog.csdn.net/weixin_43848614/article/details/126822309
作者⚧:何為xl