馮諾依曼體系的計算機核心8個字來進行概括:存儲程序和程序控制
存儲系統層次結構由Cache 、主存、輔助存儲器三級體系構成
為了實現存儲程序,必須要有主存;為了實現程序控制,必須要有CPU;
有CPU和主存構成的一個基本的馮諾依曼體系結構體系的計算機系統。在程序執行操作過程中,會執行下列操作:
存儲程序階段:輸入設備會將程序和數據寫入到主存中去;
程序控制階段:然后CPU從主存中會取出指令來進行執行,在CPU執行指令期間,會從主存中來讀取得到數據,然后在CPU中進行計算,將得到的運算結果再寫回到主存中,然后輸出設備從主存中來獲取得到計算后的結果進行顯示。
上面只是一個簡單的由CPU和主存組成的一個簡單的計算機存儲體系結構。
但是在技術發展過程中,會遇到很多問題。比如說:
1、主存速度夠快嗎?
2、主存容量夠大嗎?
3、存儲器便宜嗎?
逐步展開進行分析:
從上圖中可以看到CPU和主存的發展速度。
根據摩爾定律,每隔18個月,CPU的晶體管數量會翻一翻,而且從圖中可以看到比率是很高的。
從中可以看到,主存的發展速度卻沒有CPU快,所以最終造成主存速度沒有CPU速度快
CPU和主存的增長速度不同步,這個是其中的一個原因之一。
從上面的馮諾依曼體系中的計算機體系中的存儲系統層次結構中可以看到,存儲程序和程序控制期間,CPU會去訪問到內存,那么二者之間因為存在了速度上的偏差,那么將會高速運轉的CPU的性能大大降低下來。
CPU和內存效率上的問題:
1、CPU的本身發展速度高於內存(DRAM)的發展;
2、CPU在運行期間,需要訪問主存,比如:取出數據,寫入結果,取出指令等;
也就是說主要存在着兩個方面,第一個是CPU和內存增速不同;第二個是指令執行期間多次訪問存儲器。
從內存容量上來進行說明
從存在制約主存容量的技術因素上說明:
比如說CPU支持的地址線的數量,主板的因素,可能還有操作系統的原因。
總結起來就是:技術上的、應用上的和價格上的導致了主存容量不足
綜合起來,解決內存上的兩個問題(速度和容量),需要使用到存儲系統層次結構來進行解決。
利用輔助存儲器來解決容量上的問題,利用Cache來解決CPU和內存之間速度不匹配的問題。
上面這種是解決CPU和內存之間矛盾的一種初級版本,下面介紹一下,更接近於現代計算機的狀態來看這個體系結構
從CPU往右側看,將右邊的看做是主存的一塊。
那么就解決了上述內存存在的兩大問題,利用輔存來解決容量上的問題,用Cache(高速緩存存儲器)來解決CPU和主存之間效率上的問題。通過這種擴展的方式來解決。
容量上看利用的是輔存的容量;速度上看利用的是Cache的速度;
而且在加上方面上,輔存的容量還是比較便宜的。
隨着工藝不斷發展,存儲體系也在發生着不斷的演化。如:Cache也進行了分級
再來看下實現的基礎:
在CPU進行訪問的時候,會將訪問的信息從主存中讀取到高速緩沖存儲器中來,然后利用局部性原來來解決剛剛存在的兩個問題。
以此來達到現在計算機存儲體系的理論支撐。
總結:
存儲系統層次結構的描述中
A.存儲系統層次結構由Cache 、主存、輔助存儲器三級體系構成
B.存儲系統層次結構緩解了主存容量不足和速度不快的問題
C.構建存儲系統層次結構的的原理是局部性原理
D.構建存儲系統層次結構還有利於降低存儲系統的價格
加劇CPU和主存之間速度差異的原因:
A.由於技術與工作原理不同,CPU增速度明顯高於主存增速率
B.指令執行過程中CPU需要多次訪問主存
關於局部性的描述
A.局部性包括時間局部行和空間局部性
B.局部性是保證存儲系統層次結構高效的基礎
C.順序程序結構具有空間局部性
D.循環程序結構具有時間局部性