-
什么是存儲系統?
存儲系統大致可分為主存儲器,輔助存儲器,高速緩沖存儲器三層,其中高速緩沖存儲器用來改善主存儲器與cpu的速度匹配問題,輔助存儲器則用於擴大存儲空間。課本上從存儲系統的層次結構出發,對每一層次的概念、結構、工作機制等做了詳細解釋,回答了存儲系統是什么的問題。 -
存儲系統的各層次之間是如何協作的呢?
這篇文章通過貫穿整個存儲系統的訪問流程,展現出各個層次之間的協作關系。下圖為存儲系統的訪問流程圖,其訪問過程可以分為5個部分:①TLB的訪問過程,②Page的訪問過程,③頁面的分配和置換,④cache的訪問過程,⑤主存儲器的訪問過程。

TLB的訪問過程
在存儲系統中若要從主存取得數據,必須先訪問頁表;為了實現對頁表的快速訪問,需要增設快表。TLB與page之間存在全相聯映射、直接映射、組想聯映射三種地址映射方式,因此TLB的訪問分別存在以下三種情況。
- 全相連映射

- 直接映射

- 組相連映射

Page的訪問過程
如果TLB的訪問未命中,則需要訪問主存中的頁表。為了避免連續的頁表本身占用大量主存空間,存儲系統通常采用分級頁表,這里以二級頁表的訪問過程舉例。

頁面分配和置換
若page未命中,說明所需頁面未調入主存,需要執行調頁策略。對於頁面的分配和置換,現代存儲系統通常采用三種策略:固定分配局部置換,可變分配全局置換,可變分配局部置換。主存與外存之間的協作關系可以反映在分配策略上。

cache的訪問過程
虛擬地址經過地址變換可以得到相應的物理地址;物理地址經過地址映射可以轉化為cache地址。cache與主存之間存在全相聯映射、直接映射、組想聯映射三種地址映射方式,因此cache的訪問分別存在以下三種情況。
- 全相連映射

- 直接映射

- 組相連映射

主存儲器的訪問過程
如果cache訪問未命中,則需要訪問主存。而在訪問主存的過程中cpu的傳輸周期比存儲器的存儲周期小,為了提高訪問速度,存儲系統通常采用多體交叉存儲技術。多體交叉存儲器由多體模塊組成,每個模塊都可由DRAM芯片經過擴容而成。因此主存儲器的訪問過程可以分為三個層面:多體交叉存儲器的訪問過程、主存模塊的訪問過程、DRAM芯片的訪問過程。
- 低位交叉存儲器的訪問過程

- 主存模塊和DRAM芯片的訪問過程
