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