采用雙端口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