使用cache改善系統效能的依據是程式的局部性原理。當CPU需要讀取資料時,首先在cache中尋找是否有所需內容,如果有,則直接從cache中讀取。如果CPU需要存取的內容大多能在cache中找到(稱為存取命中),則可以大幅提高系統效能。
本教學操作環境:windows7系統、Dell G3電腦。
使用cache改善系統效能的依據是程式的局部性原理。依據局部性原理,把主記憶體中存取機率高的內容存放在cache中。當CPU需要讀取資料時,首先在cache中查找是否有所需內容,如果有,則直接從cache讀取;若沒有,再從主記憶體讀取該數據,然後同時送往CPU和cache 。如果CPU需要存取的內容大多能在cache中找到(稱為存取命中),則可以大幅提高系統效能。
系統的平均儲存週期與命中率有很密切的關係,命中率的提高即使很小也能帶來效能上較大的改善。
在CPU發出存取請求後,記憶體位址先被送到cache控制器以決定所需資料是否已在cache中,若命中則直接對cache進行存取。這個過程稱為cache的位址映射。常見的映射方法有直接映射、相聯映射和群組相聯映射。
在cache記憶體產生了一次存取未命中之後,對應的資料應同時讀入CPU和cache。但在cache已存滿資料後,新資料必須淘汰cache中的某些舊資料。最常用的淘汰演算法有隨機淘汰法、先進先出法(FIFO)和近期最少使用淘汰法(LRU)。
因為需要保證快取在cache中的資料與主記憶體中的內容一致,所以相對讀取操作而言,cache的寫入操作比較複雜,常用的有以下幾種方法:
(1)寫直達(write through)。當要寫cache時,資料同時寫回主記憶體,有時也稱為寫通。
(2)寫回(write back)。 CPU修改cache的某一行後,對應的資料並不會立即寫入主記憶體單元,而是在該行被從cache淘汰時,才把資料寫回主記憶體。
(3)標記法。對cache中的每一個資料設定一個有效位元。當資料進入cache後,有效位置1;而當CPU要對該資料進行修改時,只需將其寫入主記憶體並同時將此有效位元清除0。當要從cache讀取資料時需要測試其有效位元:若為1則直接從cache中取數,否則從主記憶體取數。
更多相關知識,請造訪常見問題欄位!
以上是使用cache改善系統效能的依據是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!