為解決cpu與主記憶體的速度匹配可採用cache記憶體。 cache記憶體是位於cpu和主記憶體DRAM之間,規模較小,但速度很高的記憶體,通常由靜態記憶體組成。靜態記憶體是位於cpu與記憶體間的一種容量較小但速度很高的記憶體。
本教學操作環境:windows7系統、Dell G3電腦。
為解決CPU與主記憶體的速度匹配問題,其實作可採用介於CPU和主記憶體之間的Cache。
cache是什麼
Cache記憶體,電腦中是高速緩衝記憶體,位於CPU和主記憶體DRAM(Dynamic Random Access Memory)之間,規模較小,但速度很高的記憶體,通常由SRAM(Static Random Access Memory 靜態記憶體)組成。它是位於CPU與記憶體間的一種容量較小但速度很高的記憶體。
CPU的速度遠高於內存,當CPU直接從內存中訪問數據時要等待一定時間週期,而Cache則可以保存CPU剛用過或循環使用的一部分數據,如果CPU需要再次使用該部分數據時可從Cache中直接調用,這樣就避免了重複訪問數據,減少了CPU的等待時間,從而提高了系統的效率。
cache的功能
Cache的功能是提高CPU資料輸入輸出的速率。 Cache容量小但速度快,記憶體速度較低但容量大,透過最佳化調度演算法,系統的效能會大大改善,彷彿其儲存系統容量與記憶體相當且存取速度近似Cache。
CPU的速度遠高於內存,當CPU直接從內存中訪問數據時要等待一定時間週期,而Cache則可以保存CPU剛用過或循環使用的一部分數據,如果CPU需要再次使用該部分數據時可從Cache中直接調用,這樣就避免了重複訪問數據,減少了CPU的等待時間,從而提高了系統的效率。 Cache又分為L1Cache(一級快取)和L2Cache(二級快取),L1Cache主要是整合在CPU內部,而L2Cache整合在主機板上或是CPU上。
cache的基本原則
cache除包含SRAM外,還要有控制邏輯。若cache在CPU晶片外,它的控制邏輯一般與主記憶體控制邏輯合成在一起,稱為主記憶體/chace控制器;若cache在CPU內,則由CPU提供它的控制邏輯。
CPU與cache之間的資料交換是以字為單位,而cache與主記憶體之間的資料交換是以區塊為單位。一個塊由若干字組成,是定長的。當CPU讀取記憶體中一個字時,便發出此字的記憶體位址到cache和主記憶體。此時cache控制邏輯依據位址判斷此字目前是否在cache中:若是,則cache命中,此字立即傳送給CPU;若非,則cache缺失(未命中),用主存讀週期把此字從主存讀出送到CPU,同時,把含有這個字的整個資料塊從主記憶體讀出送到cache中。
圖3.29顯示了cache的原理圖。假設cache讀出時間為50ns,主存讀出時間為250ns。儲存系統是模組化的,主記憶體中每個8K模組和容量16字的cache相聯繫。 cache分為4行,每行4個字(W)。分配給cache的位址存放在一個相聯記憶體CAM中,它是按內容尋址的記憶體。當CPU執行存取指令時,就把所要存取的字的位址送到CAM;如果W不在cache中,則將W從主記憶體傳送到CPU。同時,把包含W的由前後相繼的4個字所組成的一行資料送入cache,替換原來cache中的一行資料。在這裡,由始終管理cache使用情況的硬體邏輯電路來實現替換演算法。
cache結構設計必須解決的問題
#從cache的基本運作原理可以看出, cache的設計需要遵循兩個原則:一是希望cache的命中率盡可能高,實際應接近於1;二是希望cache對CPU而言是透明的,即不論是否有cache, CPU訪存的方法都是一樣的,軟體不需增加任何指令就可以存取cache。解決了命中率和透明性問題,就CPU存取的角度而言,記憶體將具有主記憶體的容量和接近cache的速度。為此,必須增加一定的硬體電路完成控制功能,也就是cache控制器。
在設計cache結構時,必須解決幾個問題:①主存的內容調入cache時如何存放?②訪存時如何找到cache中的信息?③當cache空間不足時如何替換cache中已有的內容?④需要寫入操作時如何改寫cache的內容?
其中,前兩個問題是相互關聯的,也就是如何將主記憶體資訊定位在cache中,如何將主記憶體位址轉換為cache位址。與主記憶體相比, cache的容量很小,它保存的內容只是主記憶體內容的子集,且cache與主記憶體的資料交換是以區塊為單位。為了把主存塊放到cache中,必須應用某種方法把主記憶體位址定位到cache中,稱為位址對映。 「映射」一詞的物理意義是確定位置的對應關係,並用硬體來實現。這樣當CPU存取記憶體時,它所給的一個字的記憶體位址就會自動變換成cache的位址,也就是cache位址變換。
cache替換問題主要是選擇和執行替換演算法,以便在cache不命中時取代cache中的內容。最後一個問題涉及cache的寫入操作策略,重點是在更新時保持主記憶體與cache的一致性。
(學習影片分享:程式設計影片)
以上是為解決cpu與主記憶體的速度匹配可採用什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!