存儲系統一

3.存儲系統,主存與磁盤存儲器

計算機的主存儲器不能同時滿足存取速度快、存儲容量大和成本低的要求,在計算機中必須有速度由慢到快、容量由大到小的多級層次存儲器,以最優的控制調度算法和合理的成本,構成具有性能可接受的存儲系統。存儲系統的性能在計算機中的地位日趨重要,主要原因是:①馮諾伊曼體系結構是建築在存儲程序概念的基礎上,訪存操作約佔中央處理器(CPU)時間的70%左右。②存儲管理與組織的好壞影響到整機效率。③現代的信息處理,如圖像處理、數據庫、知識庫、語音識別、多媒體等對存儲系統的要求很高。
(1)存儲器系統特徵
存儲單元
數據必須首先在計算機內被表示,然後才能被計算機處理。計算機表示數據的部件主要是存儲設備;而存儲數據的具體單位是存儲單元;因此,瞭解存儲單元的結構是十分必要的。
(1)”位”(Bit):是計算機中最小的信息單位。一”位”只能表示0和1中的一個,即一個二進制位,或存儲一個二進制數位的單位。
(2)”字節”(Byte):是由相連8個位組成的信息存儲單位。
(3)”字”(Word):是由相連4個字節(即32位)構成的信息存儲單位如下圖。字的地址是組成字的第一個字節的地址除4;因此該字節的地址必須能被4整除。
(4)”雙字”(Double Word):是由相連2個字(即64位)構成的信息存儲單位如下圖。雙字的地址是組成雙字的第一個字節的地址除8;因此該字節的地址必須能被8整除。
(5)”半字”(Half Word):是由相連2個字節(即16位)構成的信息存儲單位如下圖。半字的地址是組成字的第一個字節的地址除2;因此該字節的地址必須能被2整除
一個存儲單元可以存儲一個字節,也就是8個二進制位。計算機的存儲器容量是以字節爲最小單位來計算的,對於一個有128個存儲單元的存儲器,可以說它的容量爲128字節。如果有一個1KB的存儲器則它有1024個存儲單元,它的編號爲從0-1023。存儲器被劃分成了若干個存儲單元,每個存儲單元都是從0開始順序編號,如一個存儲器有128個存儲單元,則它的編號就是從0-127。
存儲地址一般用十六進制數表示,而每一個存儲器地址中又存放着一組二進制(或十六進制)表示的數,通常稱爲該地址的內容。值得注意的是,存儲單元的地址和地址中的內容兩者是不一樣的。前者是存儲單元的編號,表示存儲器總的一個位置,而後者表示這個位置裏存放的數據。正如一個是房間號碼,一個是房間裏住的人一樣。
放一個機器字的存儲單元,通常稱爲字存儲單元,相應的單元地址叫字地址。而存放一個字節的單元,稱爲字節存儲單元,相應的地址稱爲字節地址。如果計算機中可以編址的最小單元是字存儲單元,則該計算機稱爲按字尋址的計算機。如果計算機中可編址的最小單位是字節,則該計算機稱爲按字節尋址的計算機。如果機器字長等於存儲器單元的位數,一個機器字可以包含數個字節,所以一個存儲單元也可以包含數個能夠單獨編址的字節地址。例如一個16位二進制的字存儲單元可存放兩個字節,可以按字地址尋址,也可以按字節地址尋址。當用字節地址尋址時,16位的存儲單元佔兩個字節地址。
存取方式:
順序存儲:順序存儲結構是存儲結構類型中的一種,該結構是把邏輯上相鄰的節點存儲在物理位置上相鄰的存儲單元中,結點之間的邏輯關係由存儲單元的鄰接關係來體現。
在計算機中用一組地址連續的存儲單元依次存儲線性表的各個數據元素,稱作線性表的順序存儲結構。由此得到的存儲結構爲順序存儲結構,通常順序存儲結構是藉助於計算機程序設計語言(例如c/c++)的數組來描述的。順序存儲結構的主要優點是節省存儲空間,因爲分配給數據的存儲單元全用存放結點的數據(不考慮c/c++語言中數組需指定大小的情況),結點之間的邏輯關係沒有佔用額外的存儲空間。採用這種方法時,可實現對結點的隨機存取,即每一個結點對應一個序號,由該序號可以直接計算出來結點的存儲地址。但順序存儲方法的主要缺點是不便於修改,對結點的插入、刪除運算時,可能要移動一系列的結點。
優點:隨機存取表中元素。缺點:插入和刪除操作需要移動元素。
直接存取:與順序存取類似,直接存取也使用一個共享的讀寫裝置對所有的數據進行訪問。但每個數據塊都有唯一的地址標識。讀寫裝置可以直接移動到目的數據塊的所在位置進行訪問。訪問時讀寫不見先直接指向一個小區域,再在該區域內 順序查找,訪問時間與數據位置有關。磁盤存儲器就是採用直接存取。
隨機存取:存儲器的每一個可尋址單元都具有自己唯一的地址和讀寫裝置,系統可以在相同的時間內對任意一個存儲單元的數據進行訪問。與之前的訪問序列無關。主存儲器就是採用隨機存取。
相聯存取:隨機存取的一種形式,但是不根據地址而是根據存儲內容來進行存取的。可以對所有的存儲單元的特定位進行比較,選擇符合條件的單元進行訪問。一般cache採用這種方式。
性能指標:
存儲容量,在一個存儲器中可以容納的存儲單元總數 存儲空間的大小 字數,字節數
存取時間,啓動到完成一次存儲器操作所經歷的時間 主存的速度 ns
存儲週期,連續啓動兩次操作所需間隔的最小時間 主存的速度 ns
存儲器帶寬,單位時間裏存儲器所存取的信息量, 數據傳輸速率技術指標 位/秒,字節/秒
數據傳輸率,每秒鐘數據輸入/輸出的數據位數。對於隨機存取,就是存儲週期的倒數。
(2)存儲器的層次結構和存儲器分類
這裏寫圖片描述
存儲器分類有很多種:
按照存儲器的位置分:內存和外存
按材料分:磁存儲器、半導體存儲器、光存儲器
按工作方式:讀寫存儲器和只讀存儲器
按訪問方式:按地址和按內容訪問
按尋址方式:隨機存儲器,直接存儲器、順序存儲器
(3)主存
主存儲器(Main memory),簡稱主存。是計算機硬件的一個重要部件,其作用是存放指令和數據,並能由中央處理器(CPU)直接隨機存取。現代計算機是爲了提高性能,又能兼顧合理的造價,往往採用多級存儲體系。即由存儲容量小,存取速度高的高速緩衝存儲器,存儲容量和存取速度適中的主存儲器是必不可少的。主存儲器是按地址存放信息的,存取速度一般與地址無關。主存儲器一般採用半導體存儲器,與輔助存儲器相比有容量小、讀寫速度快、價格高等特點。計算機中的主存儲器主要由存儲體、控制線路、地址寄存器、數據寄存器和地址譯碼電路五部分組成。容量、存儲時間和存儲週期是主存的3個重要指標。
分類:
RAM:是構成內存的主要部分,其內容可以根據需要隨時按地址讀出或寫入,以某種電觸發器的狀態存儲,斷電後信息無法保存,用於暫存數據,又可分爲DRAM(信息會隨時間逐漸消失)和SRAM(在不斷電的情況下,信息一直保存)兩種。RAM一般使用動態半導體存儲器件(DRAM)。因爲CPU工作的速度比RAM的讀寫速度快,所以CPU讀寫RAM時需要花費時間等待,這樣就使CPU的工作速度下降。人們爲了提高CPU讀寫程序和數據的速度,在RAM和CPU之間增加了高速緩存(Cache)部件。Cache的內容是隨機存儲器(RAM)中部分存儲單元內容的副本。
ROM:是隻讀存儲器,出廠時其內容由廠家用掩膜技術寫好,只可讀出,但無法改寫。信息已固化在存儲器中,一般用於存放系統程序BIOS和用於微程序控制。
PROM:是可編程ROM,只能進行一次寫入操作(與ROM相同),但是可以在出廠後,由用戶使用特殊電子設備進行寫入。
EPROM:是可擦除的PROM,可以讀出,也可以寫入。但是在一次寫操作之前必須用紫外線照射,以擦除所有信息,然後再用EPROM編程器寫入,可以寫多次。
EEPROM:是電可擦除PROM,與EPROM相似,可以讀出也可寫入,而且在寫操作之前,不需要把以前內容先擦去,能夠直接對尋址的字節或塊進行修改。
閃速存儲器(Flash Memory):其特性介於EPROM與EEPROM之間。閃速存儲器也可使用電信號進行快速刪除操作,速度遠快於EEPROM。但不能進行字節級別的刪除操作,其集成度高於EEPROM。
(4)外存儲器
磁盤存儲器:
磁盤存儲器存儲器 的供應商是利用磁記錄技術在塗有磁記錄介質的旋轉圓盤上進行數據存儲的輔助存儲器。磁盤存儲器不僅容量大,存取速度快,而且可以實現隨機存取,是實現虛擬存儲器所必需的硬件,因此在現代計算機系統中,都配置了磁盤存儲器,並以它爲主存放文件。
 磁盤是依靠由一個個同心圓組成的磁道上的具有不同磁化方向的磁化元來存儲0、1信息的。對這些磁化元的讀寫是通過一個磁頭來進行的。磁頭是由磁性材料製作而成,形狀如同一個矩形環,靠近磁道方向上開有一個小間隙,在磁頭上還分別繞有一組寫線圈和讀線圈。磁頭在對一個磁道進行讀寫操作時,磁頭固定不動,而磁道運動。如圖所示。
這裏寫圖片描述
磁盤存儲器磁頭構造  
進行寫操作時,在寫線圈中通過一定方向的脈衝電流時,磁鐵芯內就產生一定方向的磁通,並在磁頭間隙處產生很強的磁場。 在這個磁場作用下,位於磁頭下的磁道上的某個固定單元就被磁化成相應極性的磁化元。每個磁化元記錄一位二進制位,當磁盤相對於磁頭運動時,就可以連續寫入一連串的二進制信息。行讀操作時,經過磁頭的磁化元會使磁鐵芯內產生磁通的變化,從而使讀線圈中產生一定的感應電勢,經轉換變成一定方向的脈衝電流,由此脈衝電流即可判定所讀出的是0還是1。傳統的磁盤是將讀和寫操作共用一個磁頭完成,而新一代的硬盤系統則採用了不同的讀寫機制,它將讀寫操作分別在兩個不同的磁頭上完成,寫機制與傳統方式相同,而讀機制則有所不同。讀磁頭是由一個磁阻(magnetoresistive,MR)式感應器組成,MR的電阻大小取決於在它下面運動的介質的磁化方向。讓電流通過MR感應器,電阻的變化作爲電壓信號被檢測出來,從而檢測出讀出的是0還是1。採用這種新的讀機制,允許有更高的讀操作頻度,從而使磁盤可以達到更高的存儲密度和讀操作速度。
磁盤存儲器的構成
磁盤存儲器主要由磁盤片、磁盤驅動器和磁盤控制器等組成。軟盤是由單個盤片構成,而硬盤則由多個盤片構成,通常稱爲盤片組。  磁盤驅動器由機械和電器兩大部分組成。硬磁盤中,盤片組固定安裝在一個主軸上,主軸通過傳動帶與一個主電機相連。硬盤組的每一個盤面上都有一個獨立的磁頭,磁頭通過磁頭臂連接在一個在固定滑軌上運動的小車上,再通過小車與一個定位驅動裝置相連,如圖所示。
這裏寫圖片描述
磁盤驅動器的機械部分一方面驅動盤片組按一定轉速繞主軸轉動,另一方面驅動小車通過磁頭臂帶動磁頭沿徑向運動,進行磁道的定位。目前磁頭小車的驅動方式採用步進電機或音圈電機兩種。步進電機靠脈衝信號驅動,控制簡單,整個驅動定位系統是開環控制,因此定位精度較低,一般用於道密度不高的硬磁盤驅動器。而音圈電機是線性電機,可以直接驅動磁頭作直線運動,驅動定位系統是一個帶有速度和位置信息反饋的閉環控制系統,驅動速度快,定位精度高,因此被更多的硬磁盤驅動器所採用。  磁盤驅動器的電器部分主要是由一些控制電路組成,其功能主要包括主電機和定位電機的控制,磁頭的選擇和讀寫控制,磁盤索引的識別和扇區的定位等。  磁盤控制器是主機與磁盤驅動器之間的接口。磁盤存儲器是高速外存設備,它與主機之間採用成組數據交換方式。作爲主機與驅動器之間的控制器,磁盤控制器有兩個方面的接口:一個是與主機的接口,控制磁盤與主機之間通過外部總線交換數據;另一個是與磁盤驅動器的接口,根據主機命令控制磁盤驅動器的操作。另外,磁盤控制器還能完成磁盤與主機之間的數據格式轉換以及數據的編碼和解碼工作。
磁盤存儲器的數據結構
磁盤是以“盤面∣磁道∣扇區”的方式來進行數據組織的。磁盤的盤面由一個個同心圓環組成,每一個圓環稱爲一個磁道。當對磁盤進行讀寫時,磁頭定位在磁道上,爲防止或減少由於磁頭未定位準確或磁域間的干擾所引起的錯誤,相鄰磁道間有一定的間隙。一般來講,一個磁盤面有上千個磁道。  磁道又進一步被分割成幾十到上百個等長的圓弧,每一段圓弧稱爲一個扇區。一個扇區可以存儲若干位信息,它也是磁盤與主機之間交換信息的基本單位,也就是說,主機對磁盤的讀寫操作一次至少是一個扇區。一個扇區所存儲二進制位數的大小由操作系統對磁盤進行格式化時確定,大多數系統所定義的扇區的大小爲512B~2KB。相鄰扇區間同樣留有一定的間隙。磁盤的數據組織形式如圖所示。
這裏寫圖片描述
當磁盤轉動時,內圈磁道經過磁頭的速率要比外圈慢。因此,需要尋找一種方式來補償速率的變化,使磁頭能以同樣的速率讀寫所有的磁道。一種有效的辦法是通過增大信息位的間隙來實現。這樣以恆定角速度(constant angular,CAV)轉動的盤,能使磁頭以相同的速率來掃描所有信息位。上圖就是一種採用CAV技術的磁盤佈局格式,它的好處是,能方便地以磁道號和扇區號來直接尋址各個數據塊。爲將磁頭從當前位置移到指定位置,只需將磁頭徑向移動到指定磁道,然後等待指定扇區轉到磁頭下即可。CAV的缺點是,外圈的長磁道上存儲的數據位數與內圈的短磁道相同,浪費了長磁道的存儲空間。  一個磁道的存儲容量是與磁道的長度(周長)有關的。在上述CAV方式中,爲使所有磁道的容量相同,從外圈磁道到內圈磁道的線性密度是逐漸增大的,磁盤的容量也就受到最內圈磁道所能達到的最大記錄密度的限制。爲提高存儲容量,現代磁盤系統使用一種稱爲多區式記錄(multi zone recording,MZR)的技術。它將磁盤盤面劃分成幾個區(典型的是16區),每個區中的所有磁道的扇區數是相同的,從而磁道的容量也是相同的;但不同區的磁道所擁有的扇區數是不同的,從而容量也就不同,越往內圈的區,磁道容量越小。當磁頭由一個區移動到另一個區時,容量的改變會引起磁頭上讀寫時序的變化,也就使磁盤控制電路的控制更爲複雜,但這種電路的複雜所帶來的是磁盤容量的提升。  爲使磁頭能對扇區進行準確定位,磁道上會有一個起始點,稱爲磁盤索引,同時每個扇區還有起點和終點的標識。磁盤經格式化後,相關控制信息被記錄在磁盤上,並由磁盤驅動器所識別和使用。  磁盤格式化的一個例子如圖5-31所示。在此例中,每個磁道包含30個固定長度扇區,每個扇區有600B,其中512B爲有效數據,剩餘的爲磁盤控制器使用的控制信息。其中各控制信息的含義如下:
·ID域 是唯一的一個標識或地址,用於定位具體扇區。  
·同步字節 是一個特殊的位序列,用來定義區域的起始點。  
·磁道號 用來標識磁盤上的一個磁道。  
·磁頭號 用來標識磁盤組中的一個磁頭。  
·扇區號 用來標識磁道上的一個扇區。  
·CRC 循環冗餘校驗碼。
磁盤存儲器的技術指標
磁盤存儲器的主要性能指標包括存儲密度、存儲容量和訪問速度等。  
(1)存儲密度  磁盤表面的存儲密度主要分爲道密度和位密度。道密度是指沿磁盤徑向單位長度上的磁道數,單位爲道/英寸(TPI)或道/毫米(TPM)。位密度是指磁道單位長度上能記錄的二進制代碼位數,單位爲位/英寸(BPI)或位/毫米(BPM)。  
(2)存儲容量  一個磁盤存儲器所能存儲的字節總數,稱爲磁盤存儲器的存儲容量。存儲容量有格式化容量和非格式化容量之分。格式化容量是指按照某種特定的記錄格式所能存儲信息的總量,也就是用戶可以真正使用的容量。非格式化容量是磁記錄表面可以利用的磁化單元總數。將磁盤存儲器用於某計算機系統中,必須首先進行格式化操作,然後才能供用戶記錄信息。從前面的圖5-30可以看出,經格式化後的磁盤的每個扇區內部和扇區之間都留有間隙及控制和校驗信息,因此,格式化容量比非格式化容量小,一般爲非格式化容量的60%~70%。  
在所有磁道容量相同的磁盤存儲器中,格式化容量可以按下述方法計算:  

磁盤存儲器總容量=盤面數×每面容量

面容量=磁道數×每道容量

道容量=扇區數×每扇區容量

  
而非格式化容量則可以按下述方法計算:  

磁盤存儲器總容量=盤面數×每面容量

面容量=磁道數×每道容量 磁道數=道密度×徑向有效距離

道容量=位密度×磁道周長

  
(3)訪問時間  磁盤存儲器的訪問時間主要由尋道時間、旋轉延時和傳送時間三部分組成。 
平均訪問時間=控制延時+尋道時間+旋轉延時+傳輸延時
旋轉延時=1/(轉速*2)
當磁盤驅動器操作時,磁盤主軸電機帶動盤片以恆定的速度轉動。爲了讀或寫,磁頭必須精確定位在所含數據的磁道和扇區的起始處。磁道選擇包括在可移動磁頭系統中移動磁頭或在固定磁頭系統選擇某個磁頭。在可移動磁頭系統中,磁頭定位到該磁道所花的時間稱爲尋道時間。無論哪一種磁頭系統,一旦磁道選定,磁盤控制器將處於等待狀態,直到相關扇區旋轉到磁頭可讀寫的位置,這段時間稱爲旋轉延時。尋道時間和旋轉延時的總和稱爲存取時間,即定位到讀寫位置的時間。從所訪問的扇區頭開始,整個扇區從磁頭下經過,即完成了該扇區的數據傳送,這部分時間稱爲傳送時間。  
尋道時間 由於尋道時間是不確定的,因此一個磁盤存儲器的尋道時間一般取平均尋道時間。平均尋道時間是最大尋道時間與最小尋道時間的平均值,目前平均尋道時間爲10~20ms,一些高速硬盤的平均尋道時間小於10ms。  
旋轉延時 每次對一個磁道上某個扇區的訪問,旋轉延時也是不同的,因此旋轉延時也取平均值。平均旋轉延時和磁盤轉速有關,它用磁盤旋轉一週所需時間的一半來表示。轉速爲7200轉/分的磁盤其平均旋轉時間爲4.17ms。  
傳送時間 磁盤的數據傳送時間,除了與所傳送的數據大小有關外,主要取決於磁盤的數據傳輸率。磁盤存儲器在單位時間內向主機傳送數據的字節數,稱爲數據傳輸率,數據傳輸率與存儲設備和主機接口邏輯有關。從主機接口邏輯考慮,應有足夠快的傳送速度向設備接收/發送信息。從存儲設備考慮,磁盤轉速越快,數據傳輸率也就越高。假設磁盤旋轉速度爲每秒r轉,每條磁道容量爲N個字節,則數據傳輸率  D=rN(字節/秒) 
(4)數據傳輸率  

數據傳輸率=磁道總字節數扇區*磁盤轉速 =扇區記錄字節數*每道扇區數*磁盤轉速

磁盤存儲器在單位時間內向主機傳送數據的字節數,叫數據傳輸率,傳輸率與存儲設備和主機接口邏輯有關。從主機接口邏輯考慮,應有足夠快的傳送速度向設備接收/發送信息。從存儲設備考慮,假設磁盤旋轉速度爲每秒n轉,每條磁道容量爲N個字節,則數據傳輸率Dr=nN(字節/秒)。也可以寫成Dr=D/v(字節/秒),其中D爲位密度,v爲磁盤旋轉的線速度,磁盤存儲器的數據傳輸率可達幾十兆字節。

發佈了64 篇原創文章 · 獲贊 116 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章