軟件設計師筆記之存儲器系統
存儲器系統:
概述:
計算機中的存儲系統是用來保存數據和程序的。對存儲器最基本的要求就是存儲容量要大、存取速度快、成本價格低。為了滿足這一要求,提出了多級存儲體系結構。一般可分為高速緩沖存儲器、主存、外存3個層次,有時候還包括CPU內部的寄存器以及控制存儲器。
衡量存儲器的主要因素:存儲器訪問速度、存儲容量和存儲器的價格;
存儲器的介質:半導體、磁介質和光存儲器;
存儲器的組成:存儲芯片+控制電路(存儲體+地址寄存器+數據緩沖器+時序控制);
存儲體系結構從上層到下層離CPU越來越遠、存儲量越來越大、每位的價格越來越便宜,而且訪問的速度越來越慢。
存儲器系統分布在計算機各個不同部件的多種存儲設備組成,位于CPU內部的寄存器以及用于CU的控制寄存器。內部存儲器是可以被處理器直接存取的存儲器,又稱為主存儲器,外部存儲器需要通過I/O模塊與處理器交換數據,又稱為輔助存儲器,彌補CPU處理器速度之間的差異還設置了CACHE,容量小但速度極快,位于CPU和主存之間,用于存放CPU正在執行的程序段和所需數據。
整個計算機的存儲器體系結構可以用下面的圖來說明:
通常衡量主存容量大小的單位是字節或者字,而外存的容量則用字節來表示。字是存儲器組織的基本單元,一個字可以是一個字節,也可以是多個字節。
信息存取方式:信息的存取方式影響到存儲信息的組織,常用的有4種,
◆順序存取
存儲器的數據是以記錄的形式進行組織,對數據的訪問必須按特定的線性順序進行。磁帶存儲器的存取方式就是順序存取。
◆直接存取
共享讀寫裝置,但是每個記錄都有一個唯一的地址標識,共享的讀寫裝置可以直接移動到目的數據塊所在位置進行訪問。因此存取時間也是可變的。磁盤存儲器采用的這種方式。
◆隨機存取
存儲器的每一個可尋址單元都具有唯一地址和讀寫裝置,系統可以在相同的時間內對任意一個存儲單元的數據進行訪問,而與先前的訪問序列無關。主存儲器采用的是這種方式。
◆相聯存取
也是一種隨機存取的形式,但是選擇某一單元進行讀寫是取決于其內容而不是其地址。Cache可能采用該方法進行訪問。
衡量存儲器系統性能的指標有以下幾種:
存取時間:一次讀/寫存儲器的時間
存儲器帶寬:每秒能訪問的位數。
存儲器周期:兩次相鄰的存取之間的時間
數據傳輸率:每秒鐘數據傳輸的bit數目。
主存儲器:
主存儲器是指能由CPU直接編程訪問的存儲器,它存放需要執行的程序與需要處理的數據。因為它通常位于所謂主機的范疇,常稱為內存。如果內存的地址為n位,容量為2的n次。
主存儲器的種類很多,主要有:
隨機存儲器(RAM):可以讀出和寫入,隨機訪問存取,斷電消失
只讀存儲器(ROM):只能讀出原有的內容,不能寫入新內容
可編程ROM(PROM)
可擦除PROM(EPROM)
電可擦除PROM(E2PROM)
閃速存儲器(flash memory)
實際的存儲器總是由一片或多片存儲芯片配以控制電路組成的,其容量往往是W×B來表示。W表示該存儲器的存儲單元(word)的數量,而B表示每一個word由多少bit組成。#p#
輔助存儲器:
由于主存容量有限(受地址位數、成本、速度等因素制約),在大多數計算機系統中設置一級大容量存儲器作為對主存的補充與后援。它們位于主機的邏輯范疇之外,常稱為外存儲器,簡稱外存。
外存的最大特點是容量大、可靠性高、價格低,主要有兩大類。
◆磁表面存儲器:這類外存儲器主要包括磁帶和磁盤存儲器。
▲磁帶
磁帶存儲設備是一種順序存取的設備,存取時間較長,但存儲容量大。磁帶上的信息是以文件塊的形式存放的,而且便于攜帶,價格便宜。按它的讀寫方式可分為兩種:啟停式和數據流。
▲磁盤存儲器
磁盤存儲器是目前應用最廣泛的外存儲器。它存取速度較快,具有較大的存儲容量,適用于調用較頻繁的場合,往往作為主存的直接后援,為虛擬存儲提供了物理基礎。可分為軟盤和硬盤。
◆光存儲器
光盤存儲器是利用激光束在記錄表面存儲信息,根據激光束的反射光來讀出信息。按照它的記錄原理可分為形變型、相變型(晶相結構)和磁光型。有CD、CD-ROM、WORM、EOD等。
CD-ROM:只讀光盤,只能一次性寫入數據,由生產廠家將數據寫入,永遠保存
CD-WO:可由用戶寫入一次,寫入后不能修改或擦除,但是可以多次讀出
CD-MO:可改寫光盤,可以讀出也可以寫入數據;
光盤存儲器的特點:
大容量、標準化、相容性、持久性、實用性
輔助存儲器方面的計算:
1.存儲容量為capacity=n*t*s*b,n為存放數據的總盤面數;t為每面的磁道數;s為每道的扇區數;b為每個扇區存儲的字節數
2.尋道時間為磁頭移動到目標磁道所需的時間。
3.等待時間為待讀寫的扇區旋轉到磁頭下方所用的時間。一般用磁道旋轉一周所用的時
間的一半作為平均等待時間。
4.磁盤存取時間=尋道時間+等待時間。
5.位密度:沿磁道方向,單位長度存儲二進制信息的個數;
6.道密度:沿磁盤半徑方向,單位長度內磁道的數目;
7. 數據傳輸速率R=B/T,B為一個磁道上記錄的字節數,T為每轉一周的時間
8.磁帶機的容量計算:(這些公式要熟悉記住)
數據傳輸率=磁帶記錄密度*帶速;
數據塊長度=字節數*塊因子/記錄密度+塊間間隔;
讀N條記錄所需時間T=啟停時間+有效時間+間隔時間;
RAID存儲器(廉價磁盤冗余陣列):基本思想是用多個小的磁盤存儲器,通過合理的分布數據,支持多個磁盤同時進行訪問,從而改善磁盤存儲器的性能。其采用的主要技術:
1. 分塊技術:把數據分塊寫到陣列中的磁盤上;
2. 交叉技術:對分布式的數據采用交叉式進行讀寫,提高訪問速度;
3. 重聚技術:對多個磁盤空間重新編址,數據按照編址后的空間存放;
主要特點如下:
1. 物理上多個磁盤,但操作系統看是一個邏輯磁盤;
2. 數據分布在磁盤陣列中的磁盤存儲器上;
3. 采用冗余技術和校驗技術提高可靠性,可恢復數據;
4. RAID速度快、容量大、功耗低、價格便宜、容易擴展。
RAID0:無冗余、無校驗,具有最高的I/O性能和最高的磁盤空間利用率
RAID1:磁盤鏡像、磁盤利用率50%,具有最高的安全性
RAID2:海明碼糾錯、數據分塊、并行訪問、適合大批量數據、已很少使用
RAID3:奇偶校驗、數據分塊、并行訪問、單獨校驗盤
RAID4:奇偶校驗、獨立存取、單獨校驗盤、適合訪問頻繁、傳輸率低
RAID5:獨立存取、無單獨校驗盤、適合訪問頻繁、傳輸率低
Cache存儲器:(對系統和應用程序員都是透明的)(重點)
Cache位于主存儲器與CPU通用寄存器組之間,全部由硬件來調度,用于提高CPU的數據I/O效率,對程序員和系統程序員都是透明的。Cache容量小但速度快,它在計算機的存儲體系中是訪問速度最快的層次。
使用Cache改善系統性能的依據是程序的局部性原理,即程序的地址訪問流有很強的時序相關性,未來的訪問模式與最近已發生的訪問模式相似。根據這一局部性原理,把主存儲器中訪問概率最高的內容存放在Cache中,當CPU需要讀取數據時就首先在Cache中查找是否有所需內容,如果有則直接從Cache中讀取;若沒有再從主存中讀取該數據,然后同時送往CPU和Cache。
系統的平均存儲周期t3與命中率h有很密切的關系,如下的公式:
t3=h×t1+(1-h)×t2
其中,t1表示Cache的周期時間,t2表示主存的周期時間。#p#
當CPU發出訪存請求后,存儲器地址先被送到Cache控制器以確定數據是否已在Cache中,若命中則直接對Cache進行訪問,否則直接進行主存訪問。
Cache的地址映射是指把主存地址空間映射到Cache地址空間,Cache和主存都使用同樣大小的塊為單位。Cache中常見的映射方法有三種。
直接映射:一對一,(不需要替換算法)
全相聯映射:多對多
組相聯映射:將塊劃分成組,主存中的一組與Cache相對應,根據高位地址標志符來訪問數據,組相聯可以允許相同的Block和word標志,而tag標志不同。
隨著程序的執行,訪問頻繁地區將逐漸遷移,Cache中的內容逐漸變得陳舊,訪問命中率下降,就需要更新內容。常用的替換算法有三種。
隨機淘汰法:
先進先出法FIFO:
近期最少使用法LRU:
對于這個算法可以從整體上把握,每個的優點、缺點,不需要記算法的過程。
另外,為了保證環存在Cache中得數據與主存中的內容一致,對寫操作來說有以下幾種方法:
寫直達:同時
寫回:
標記法#p#
虛擬存儲器:(重點)(對應用程序員透明)
虛擬存儲系統的作用是給程序員一個更大的虛擬的存儲空間,其容量可遠遠超過主存儲器的容量,而與輔助存儲器容量相當。
我們提供給用戶的這個存儲器,即在軟件編程上可以使用的存儲器,就稱為虛擬存儲器。它的容量即虛擬存儲空間,簡稱虛擬空間。面向虛擬存儲器的編程地址稱為虛擬地址,或稱為邏輯地址。與主存和輔助存儲器地址相對應。
為了實現虛擬存儲器,需將虛擬存儲空間與物理實存空間,按一定的格式分區組織管理,根據管理的方式不同可以分為三種虛擬存儲器:頁式、段式和段頁式。
頁式管理:
段式管理:
段頁式管理:
此外還可以增加一個小容量的高速存儲器實現一種快表查詢,而快表和慢表也構成了兩級存儲器系統
另外,與Cache一樣,虛擬存儲器系統還需采用一定的調度策略實現主存內容的變換,使當前需要的程序和數據都在主存之中。常用的淘汰算法有:
FIFO算法:選擇最先進入主存的頁面淘汰
LRU算法:選擇在最近一段時間內訪問頻率最低的頁面淘汰
【相關專題】