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