本文主要從存儲體系由來、分類以及原理角度來講解一個存儲體系的設計,努力做到全面。當然由於個人水平有限,文章難免可能會有錯誤,如若發現,懇請指出,不勝感激。 ...
概述
在電腦運行過程中,存儲器是各種信息存儲和交換的中心,而電腦所有存儲器所構成的存儲系統更是整個電腦系統的核心組成部分。在一臺電腦中通常有多個存儲器:主存儲器
、Cache
、通用寄存器
、磁碟寄存器
、各種緩衝存儲器
、光碟存儲器
等。
為了評定不同存儲器的性能差異,人們制定了一些主要的性能指標:速度,容量和價格。
其中速度我們用存儲器的訪問周期、讀出時間、頻帶寬度等來進行表示。容量用位元組B、千位元組KB、兆位元組MB和千兆位元組GB等表示。價格則是用單位容量的價錢表示,例如$C/bit
。
講了這麼多存儲器的內容,那什麼叫做存儲體系
哪?
下邊我們引入存儲體系的定義:
兩個或兩個以上速度、容量和價格各不相同的存儲器用硬體、軟體、或軟體與硬體相結合的方法連接建立起來的一個系統。
簡單來說,就是一個將不同類型的存儲器用軟體或者硬體方法結合成一個整體。該系統對程式員透明,並且,從應用程式員來看,它僅僅是一個存儲器。這個存儲器的速度接近速度最快的那個存儲器,存儲容量與容量最大的那個存儲器相等,單位容量的價格接近最便宜的那個存儲器。
為了更加便於理解存儲體系速度、容量和價格的關係,我們畫出下圖用更加嚴謹的方式來進行表述。
符號說明
\[M_i:i\text{號存儲器} \]
\[T_i\text{:}i\text{存儲器的速度性能} \]
\[S_i\text{:}i\text{號存儲器的容量性能} \]
\[C_i\text{:}i\text{號存儲的價格} \]
各個存儲器的各個性能指標和其構成的存儲體系的性能指標之間的關係為:
\[T≈min(T1,T2,……,Tn),用存儲周期表示 \]
\[S=max(S1,S2,……,Sn),容量用MB或GB表示 \]
\[C≈min(C1,C2,……,Cn),價格用每位的價格表示 \]
存儲體系的分類
在電腦系統中一般來說存儲器類別主要有Cache、主存儲器和輔助存儲器三類組成,按照不同的組合方式構成了兩種存儲體系:
Chache存儲體系
:由Cache和主存儲器構成- 主要目的:提高存儲器速度,或者說是為了貪圖Cache的存儲速度
- 系統程式員看:速度接近Cache,存儲器容量等於主存,每位的價格接近主存儲器
虛擬存儲體系
:由主存儲器和磁碟存儲器構成- 主要目的:擴大存儲器容量,或者說貪圖磁碟存儲器的容量。
- 應用程式員看:速度接近主存儲器,存儲容量是虛擬地址空間,每位價格接近磁碟存儲器。
看到這裡可能大家會有疑問,三種存儲器兩兩組合方式組中結果不是應該是三種嗎?
或者說應該還有一種組合方式即Cache+磁碟存儲器??
坦白來講此種存儲體系理論上講是可以有的,但是實際應用中,由於Cache和虛擬存儲器的速度差別太大,強行相互結合,根本不可能發揮出Cache存儲器的速度優勢,實際上還會大大拖累Cache的運行。因此此種組合方式在實際應用過程中根本不可能存在。
存儲效率
關於速度的評定我們一般通過,訪問周期、存取周期、存儲周期、存取時間等來進行表示。
關於這些指標的計算我們詳細可以參照百度百科
提到了存儲器的速度,我們就提另一個指標存儲效率
。
首先我們給出命中率的定義:
在\(M_1\)存儲器中達到的訪問效率,給出以下公式
\[