存儲器層次結構:SRAM DRAM Flash 磁盤
access time and price
SRAM:靜態RAM。SRAM中的每一位均存儲在四個晶體管當中,這四個晶體管組成了兩個交叉耦合反向器。這個存儲單元具有兩個穩定狀態,通常表示爲0和1。另外還需要兩個訪問晶體管用於控制讀或寫操作過程中存儲單元的訪問。因此,一個存儲位通常需要六個MOSFET。通常單端口讀寫,對數據有固定的訪問時間 不需要刷新,因此訪問時間接近週期時間。典型的,每比特需要6-8個三極管防止讀操作破壞信息。待機狀態,需要很少的能量維持電荷。只要供電,數據可以維持。
DRAM:動態RAM。數據作爲電荷保存在電容中。數據無法抑制保存,需要週期性的刷新。單個三極管用於訪問儲存的電荷,或讀或重寫。因爲每個比特只要一個三極管,相比SRAM更便宜更密集。作爲計算機內存。刷新:讀回,重寫,一次刷新整個ROW。電荷可以保持幾微秒。
Flash:wear leveling, a type of EEPROM
Disk memory:
Caches
地址可以分爲兩部分:高速緩存的下標,用來選擇塊;標記域,用來比較高速緩存中標記域的值。
高速緩存指令缺失處理:處理器的控制部件,以及以個進行初始化主存訪問和重新填充高速緩存的獨立的控制器。缺失會導致流水線的堵塞。
1.當前PC-4 送到存儲器中
2.指示主存進行一次讀操作,並等待主存訪問完成
3.寫高速緩存條目,把存儲器中讀到的數據寫入高速緩存條目的數據部分,把地址的高位寫入標記域,設置有效位
4.重啓第一步,將重新取指令,指令已經在高速緩存中
數據缺失處理基本一樣,停止處理器工作直到存儲器取回數據後響應。
寫操作處理:
寫通過write through
寫緩衝write buffer:在數據等待被寫入主存時存放數據的隊列
寫回write-back:寫操作時只更新高速緩存中的塊,黨高速緩存塊被替換時纔將修改過的塊寫入底層存儲器。
二級緩存:
第一級緩存:小,缺失率高
第二級緩存:大,缺失率低
虛擬存儲器
允許在多個程序間有效而安全的共享內存。
虛擬存儲器和高速緩存的原理是一樣的。在虛擬存儲器中,一個塊被稱爲頁page,虛擬存儲器訪問缺失稱爲缺頁。
CPU生成一個虛擬地址,由硬件和軟件結合生成一個物理地址。
地址被劃分爲虛頁號和頁內偏移
1.爲了彌補很長的訪問時間,頁應該足夠大。典型的4K-16K
2.降低缺頁率的組織結構
3.缺頁可以通過軟件來處理,與額外訪問磁盤的時間相比,這樣的額外開銷並不大。
4.由於寫操作的時間太長,所以在虛擬存儲器中使用寫通過不可行。使用寫回策略。