1、高速緩存
1.1 定義
用來存放當前最活躍的程序和數據。
特點:容量在幾千字節到幾兆之間,速度比主存快5~·10倍左右。快速半導體組成。
1.2 高速緩存的組成
一般位于CPU和主存之間。主要包括管理模塊、由相聯存儲器構成的存儲表、小容量的高速存儲器。
? ? ? ??? ? ?
1.3 高速緩存的地址映像方法
主存地址轉換成Cache存儲器的地址,這種地址轉換叫做地址映像。地址映像主要有三種方式:
1、直接映像:主存的塊和Cache塊的關系是固定的。主存地址中主存區號和Cache存儲的存儲號相同表示命中。優點:地址變換簡單;缺點:但靈活性差。
2、全聯映像
允許主存的任一塊調用Cache存儲器的任何一個塊空間。
優點:主存的物理塊調入Cache的位置不受限制,比較靈活;缺點:無法從主存塊號直接獲得Cache對應的塊號,變換復雜,速度較慢。
3、組相聯映像
就是 將Cache中的塊再分成組。組相聯映像中組采用直接映像,塊采用全相聯映像方式。
1.4 高速緩存的替換算法、
替換算法目的是為了讓Cache獲得最高的命中率。
隨機替換算法:利用隨機數發生器產生一個要替換的塊號,將該塊替換出去。
先進先出算法:將最先進入的塊替換出去。
近期最少使用算法:近期最少使用的塊替換出去。
優化替換算法:先執行一次程序統計Cache替換的情況,第二次根據第一次的分析情況用最合理的方式進行替換。
1.5 Cache的性能分析
Cache的命中率是性能的一個重要指標。Cache的設計目標就是在成本允許的情況下達到較高的命中率、使存儲系統擁有最短的訪問時間。
在指令流水線中,Cache失效將會影響指令的流水。降低失效率是提升Cache性能的重要措施。降低失效率的主要方法可以選擇合理的塊容量、提高Cache容量、提升Cache的相聯程度。
Cache容量越大命中率將會越高。要合理提升Cache的容量。因為容量大了成本將會增加、訪問時間也會增加。
1.6 什么是多級Cache
Cache分為一級(L1 Cache)、二級(L2 Cache)。CPU訪問先找L1,不命中找L2.。直到都命不中,則訪問主存。CPU內通常為二級Cache結構。
2、虛擬存儲器
理論上可以把主存存儲器看作由多個字節構成的存儲空間,每個字節有一個存儲編號,主存單元的該地址稱為物理地址。當需要訪問主存的數據時,由CPU給出要訪問的數據所在的存儲單元地址,然后由主存的讀寫控制部件定位對應的存儲單元,對其進行讀寫操作來完成訪問動作。
虛擬存儲器實際是一種邏輯存儲器。實際上是對物理存儲設備進行邏輯化處理,并將統一的邏輯視圖呈現給使用者。