第四章 存儲系統

文章目錄

存儲器概述

存儲器:計算機中存放指令和數據的主要場所
理想的存儲系統:大容量、高速度、低成本

存儲器分類

按存取方式

  • 隨機存儲器:random access memory
    存儲單元的內容可以按需隨機的取出或存入,且存取的速度與存儲單元位置無關
    早期使用的磁芯存儲器,和現在廣泛使用的半導體存儲器都是隨機存儲器

  • 順序存儲器:sequential access memory
    存儲單元的內容只能依地址順序訪問,且訪問速度與存儲單元的位置有關
    磁帶存儲器、CD-ROM等都是順序存儲器

  • 直接存取存儲器:direct access memory
    不必經過順序搜索就能在存儲器中直接存取信息,這類存儲器兼有隨機存儲器和順序存儲器的訪問特性】
    磁盤屬於DAM,尋道和找扇區的過程與RAM類似,扇區內讀寫數據與SAM類似

  • 讀寫存儲器
    既能讀出又能寫入

  • 只讀寄存器:read only memory
    內容不允許隨意改變,只能讀取,不能修改

按存儲介質

  • 磁性材料存儲器
    又稱磁存儲器,包括磁芯存儲器、磁盤存儲器、磁帶存儲器,它們以磁性材料作爲存儲介質
  • 半導體存儲器
    用半導體器件組成,有兩大類,一是三極管型,分爲TTL和ECL兩種,二是MOS管型,分爲靜態(SRAM)和動態(DRAM)兩種
  • 光存儲器
    信息以刻痕的形式保存在盤面上,用激光束照射盤面,靠盤面的不同反射率來讀取信息,分爲CD-ROM,WORM,MO

按功能和存取速度

  • 寄存器型存儲器
    由寄存器組成,如CPU內部的寄存器組,速度與CPU匹配,但是容量一般很小
  • 高速緩衝寄存器
    是一個高速小容量寄存器,用於存放CPU近期要執行的指令和數據,用於提高存儲系統的訪問速度
  • 主存儲器
    簡稱主存,用於存放程序和數據,CPU可以隨機訪問,一般由MOS存儲器組成
  • 外存儲器
    簡稱外存,是主機外部的存儲器,也稱輔助存儲器,容量大速度低,存放暫不運行的程序和數據,CPU無法直接訪問

按信息保存的時間

  • 易失性存儲器
    斷電後,保存的信息丟失,如RAM

  • 非易失性存儲器
    斷電後,信息不丟失,如ROM,磁盤存儲器,光存儲器

存儲器系統的層次結構

1

主存的主要技術指標

容量

存儲器可以存儲的二進制信息總量稱爲存儲容量,常用的單位是位和字節

存取速度

  • 存取時間:又稱存儲器的訪問時間,是指啓動一次存儲器操作到該操作完成所需要的時間
  • 存取週期:連續啓動兩次訪問操作之間最短的時間間隔,該時間段內不進行讀寫,僅用於寄存器狀態恢復,併爲下一次操作預留時間,該時間略大於存取時間
  • 存儲器帶寬:單位時間內存儲器所能傳輸的信息量,帶寬是衡量數據傳輸速率的重要指標、

存儲器的可靠性

用平均故障間隔時間MTBF(mean time between failure)來衡量

主存中數據的存放

存儲字長與數據字長

  • 存儲字長:主存中一個存儲單元所存儲的二進制位數
  • 數據字長:計算機一次能處理的二進制位數

存儲字長和數據字長不一定相同,32位的計算機可以採用8、16、32、64位的存儲字長

大端和小端數據存放方式

大小端模式指的是多字節數據在內存中的存放順序

  • 大端:低位字節存儲在較大的地址上
  • 小端:低位字節存儲在較小的地址上

邊界對齊的數據存放方法

數據按照邊界對齊的方式存放可以提高存儲系統的訪問效率

主存的基本結構和工作過程

2

存儲體:實際存放程序和數據的位置
地址譯碼器:接收來自CPU的地址信號,經過譯碼驅動後,形成地址選擇信號,選擇對應的存儲單元
數據寄存器:讀的時候,存放從存儲體中取出的數據,寫的時候,存放從CPU送來的數據
控制線路:接收CPU的讀寫控制信號後,產生存儲器內部的控制信號,從而進行讀寫操作

主存的大致工作流程

  • CPU想要讀取或寫入某個數據,先給出相應的地址
  • 該地址經過譯碼驅動後,選中對應的存儲單元
  • 由控制線路產生的信號,控制讀出或寫入

存儲系統的層次結構

3
對存儲系統的基本要求是存儲速度快,存儲容量大、成本價格低,而這些條件相互矛盾,爲了解決這些矛盾,構建瞭如圖的存儲系統

  • 高速緩衝cache:提高CPU對存儲系統的訪問速度
  • 輔存:解決容量不足的問題

半導體存儲器

半導體存儲器的主要特點是存取速度快、體積小、成本低、可靠性高,通常分爲RAM和ROM

靜態MOS存儲器 SRAM

靜態MOS存儲單元

存儲單元:是存儲器中最小存儲單位,存儲一位二進制信息

4

  • 先通過字線和位線選通T5~T8四個門控管
  • 如果要寫1,則給D線加高電平,同時給負D先加低電平
  • 高電平經過T7、T5,使得T2導通,低電平經過T8、T6使得T1截止
  • 如果要讀取信息,同樣先給行列信號打開門控管T5~T8
  • 如果存儲的信息爲1,則D線輸出高電平,存儲的是0,則D線輸出低電平
  • 不對存儲單元操作時,門控管T5~T8截止,電源通過T3、T4提供電流,保持數據

靜態MOS存儲器的結構

一般由存儲體、地址譯碼電路、I/O電路和控制電路組成
5

  • 存儲體:由靜態MOS存儲元組成,4096個存儲單元組成64*64的陣列組織
  • 地址譯碼器:將地址翻譯成驅動存儲單元門控管的控制信號,選擇相應的存儲單元
  • 驅動器:每條選擇線要控制與它相連的所有存儲單元,負載很大,因此用驅動器增加其負載能力
  • I/O電路:用以控制數據的輸入與輸出,也就是對選中的單元進行讀寫控制
  • 片選和讀寫控制電路:只有片選信號爲低時,代表選中該存儲器,讀寫控制電路用以控制讀或寫

動態MOS存儲器 DRAM

四管動態MOS存儲元的工作原理

6

  • 爲了提高集成度,動態MOS存儲器不像靜態MOS一樣持續供電,因此去掉了供電的管子
  • T1、T2爲工作管,T5~T8爲門控管
  • 讀寫前,先打開T5~T8門控管
  • 寫1時,則給D線加高電平,同時給負D先加低電平
  • D線的高電平經過T7、T5,使得T2導通,C2保持高電位,低電平經過T8、T6,使得T1截止,C1放電保持低電平
  • 讀操作前,先通過預充信號打開T9、T10,對Cd負Cd電容充電,如果原來存儲的是1,則Cd對D線放電,輸出高電平1,同時補充C2的電荷,負Cd經過B和T2,連通到地,負D線會出現反方向電流脈衝
  • 刷新操作:DRAM中,信息以電荷形式存儲在C1和C2上,需要定期刷新,否則會因爲電容放電而丟失信息

單管動態MOS存儲單元的工作原理

7

  • 可以用一個MOS管和一個電容構成單管動態存儲單元
  • 寫入時,選通T1、T2,位線D上的信息寫入電容C
  • 讀出時,選通T1、T2,電容C輸出信息到位線D上
  • 讀出時信息會被破壞,因此一般將讀出的信息重新寫入,恢復原來保存的信息,該動作稱爲再生

動態MOS存儲的刷新

  • 不同材料、不同生產工藝的DRAM刷新時間不同
  • 刷新地址由刷新地址計數器產生,而不是CPU發出

刷新方式

  • 集中刷新
    最後的n個讀寫週期全部用來刷新,優點是讀寫操作期間不受刷新影響,缺點是死時間比較長,刷新期間不能讀寫
  • 分散刷新
    將一個週期分爲兩部分,前半段讀寫或保持,後半段用於刷新,優點是不存在死時間,缺點是影響系統速度
  • 異步刷新
    是集中刷新和分散刷新的折中方式
  • 透明刷新
    由於指令譯碼期間不訪問存儲器,在這段時間刷新,不佔用CPU時間,對CPU透明

只讀存儲器

只能讀,不能寫,斷電後可長期保存,稱爲ROM

  • MROM:掩膜式只讀存儲器,信息由生產廠家寫入,不可修改
  • PROM:可編程只讀存儲器,只能編寫一次程序,常採用熔絲工藝
  • EPROM:可擦除可編程只讀存儲器,能多次編程,利用紫外線擦除
  • EEPROM:電可擦除可編程只讀存儲器,能通過程序擦除及燒寫

閃存 FLASH

快速擦寫,非易失性,可以在線擦除和重寫,主要作爲BIOS存放的存儲器或移動存儲器

主存的組織與CPU的連接

單片存儲芯片的存儲容量有限,要獲得一個大容量的存儲器,通常需要用多片存儲芯片,按照一定的組織方式與CPU連接,這就是存儲器的組織

存儲器的拓展

由於存儲芯片的容量及字長與目標存儲器的容量及字長可能存在差異,因此要進行拓展

位拓展

當存儲芯片的數據位小於CPU對數據位的要求時,採用爲位拓展方式

  • 地址線,讀寫控制線:存儲芯片的並聯,然後與CPU相連
  • 數據線:讀寫芯片的串聯,然後與CPU相連

8

字拓展

也稱容量拓展,解決存儲芯片容量不足的問題

  • 數據線,讀寫控制線:存儲芯片的並聯,然後與CPU相連
  • 片選信號:由CPU多餘的地址線產生

9

字位同時拓展

當存儲芯片的數據位和存儲容量均不能滿足時,採用字位同時拓展
10

並行存儲系統

目前,主存的存取速度已經成爲計算機系統的性能瓶頸,除了選擇更高速的元件來提高訪問速度,也可以通過存儲體的並行工作來提高存儲器的訪問速度,緩解CPU與主存速度不匹配的矛盾

雙端口存儲器

同一個存儲器具有兩組相互獨立端口的存儲器,每個端口有各自獨立的數據端口、地址端口以及讀寫控制端口、片選端口等,每個端口可以獨立進行讀寫操作
11

  • 並行讀寫:當左右兩個端口的地址不同時,同時讀寫不衝突
  • 衝突處理:訪問地址相同時,會發生讀寫衝突,爲解決衝突,爲每個端口設置一個標誌BUSY

單體多字存儲器

採用多個並行的存儲模塊共用一套地址寄存器,按同一地址並行訪問不同存儲模塊的同一單元,從而實現在同一個存儲週期內訪問多個存儲字,提高主存帶寬

多體交叉存儲器

多體交叉存儲器也由多個存儲模塊組成,這些模塊的容量和存取速度相同,具有各自獨立的地址寄存器、地址譯碼器、驅動電路和讀寫控制電路,根據對多個模塊編址方式的不同,又可分爲高位多體交叉和低位多體交叉兩種

高位多體交叉

高位多體交叉主要是爲了拓展存儲器的容量,與存儲字擴展完全相同,也就是用高位段地址經過譯碼產生片選信號,選擇不同的存儲體,而低位段地址選擇具體的存儲單元
12

可以看出高位交叉有如下特點:

  • 相鄰地址在同一存儲體內
  • 不同存儲體的地址不相鄰

高位多體交叉一般應用在共享存儲器的多機系統中,在這些系統中,各處理機通常訪問各自所需的數據對象,當這些數據對象存放在不同存儲體時,存取操作可以並行

低位多體交叉

用低位段地址經過譯碼產生片選信號,高位地址選擇具體的存儲單元
13

  • 相鄰的地址在不同存儲體內
  • 同一存儲體中的地址不相鄰

設存儲模塊的存儲週期是T,總線傳輸週期及相應的處理延遲總和爲τ,交叉模塊數爲m,要實現流水線方式存取,應該滿足的條件是:

T = mτ

也就是每經過τ的延時後,啓動下一個模塊
14

示例:m=4的情況,從圖中可以看出

  • 每個存儲體各自的存儲週期仍然爲T
  • 每個存儲體錯開1/4個存儲週期分時啓動讀寫操作,每個存儲週期內可訪問4次

低位交叉存儲器比較適合單處理機內的高速數據存取以及帶有cache的主存

高速緩衝存儲器 cache

cache是計算機系統中廣泛使用的一種減少CPU與內存之間速度差異的方法

程序訪問的局部性原理

在一個較短的時間間隔內,由程序產生的地址往往集中在存儲器邏輯地址空間的很小範圍內,這種對局部範圍的存儲器地址頻繁訪問,而對此範圍以外的地址則訪問甚少的線性,稱爲程序訪問的局部性

  • 時間局部性:
    當程序訪問一個存儲位置時,有很大的可能性在不就的將來會再一次訪問同一位置,循環結構就是如此

  • 空間局部性:
    一旦程序訪問了某個存儲單元,則不就之後,其附近的存儲單元也將被訪問

利用程序的局部性原理,可以在主存和CPU通用寄存器之間設置cache,把正在執行的地址附近的一部分指令或數據從主存中調入這個存儲器,供CPU在一段時間內使用,從而提高CPU訪問存儲系統的速度

cache的工作原理

主存地址的劃分

爲了便於比較和查找,cache和主存都被分爲大小相等的若干塊,每塊又包含若干個字
根據不同的地址映射方法,對cache和主存地址進行不同的邏輯劃分
15

  • 主存塊地址:
    對CPU訪問主存單元地址按塊大小劃分後,得到的一個地址,用以標識CPU所訪問的主存單元所在的主主存塊號
  • 塊內偏移地址:
    表示CPU所要訪問的單元在某塊內的偏移值,找到數據所在的塊後,根據該值可以定位CPU要訪問的具體單元
  • 索引:
    索引是對主存塊地址進一步劃分後得到的更細粒度的地址,用於指示CPU訪問cache的位置,即作爲cache存儲體的地址指示器,指出CPU訪問cache存儲器的範圍,如指定cache的某一行或某幾行
  • 標記:
    標記也是對主存塊地址進一步劃分後得到的更新粒度的地址,作爲判斷CPU要訪問的內容是否在cache中的依據

cache的基本結構

cache結構主要包括三個部分:

  • 數據存儲體:用以存放主存數據的副本
  • 標記存儲體:用以存放標記
  • 有效位:用以標識存放在cache中的數據是否有效,CPU在查找和更新cache時需要使用到有效位

cache的組織及CPU訪問cache的流程

16

17
訪問流程:

  • 對CPU訪問寄存器的地址進行邏輯劃分,得到標記、索引、塊內地址
  • 按照索引字段,從cache標記存儲體特定單元讀出標記值,並與之前得到的標記進行比較,如相同則命中
  • 命中後,根據索引和塊內地址,訪問cache數據存儲體,讀出數據送到CPU
  • 未能命中,分爲cache未滿和已滿的情況
  • cache未滿時,從主存調取信息到cache
  • cache已滿時,將cache中某單元的數據交換到主存上,再從主存調取信息到cache
  • 更新cache時,同時更新標記、索引和塊內地址

cache的命中率

命中率:命中的次數佔總次數的比例
丟失率:未命中次數佔總次數的比例

平均訪問時間:命中率 * 命中訪問時間 + 丟失率 * 未命中訪問時間
訪問效率:命中訪問時間 / 平均訪問時間

如果全部命中,則訪問效率爲1,否則小於1

相聯存儲器

18

相聯存儲器是一種按內容訪問的存儲器,一般由存儲體、檢索寄存器、屏蔽寄存器、符合寄存器、比較線路、代碼寄存器、控制線路幾部分組成

  • 檢索寄存器:用以存放檢索字,其位數和相聯存儲器的存儲單元位數相等
  • 屏蔽寄存器:屏蔽寄存器也稱爲表徵碼寄存器,用以存放屏蔽碼,以確定檢索寄存器參與檢索的位數
  • 符合寄存器:存放按檢索項內容檢索cache存儲體時命中存儲體單元地址
  • 比較線路:把檢索項和從存儲體內讀出的單元內容進行比較,如果比較結果相同,則符合寄存器對應位置1
  • 代碼寄存器:用來存放存儲體中讀出的數據,或者存放向存儲體中寫入的數據
  • 存儲體:用以存放標記
  • 譯碼選擇電路:根據符合寄存器的狀態譯碼選出被檢索命中的地址,並將其內容讀出送到代碼寄存器

計算機系統中,相聯存儲器主要用以虛擬存儲器中存放段表、頁表、快表以及高速緩衝存儲器中的查找

cache的地址映射及變換方法

地址映射:是指把主存地址空間映射到cache的地址空間,即把存放在主存中的內容按照某種規則裝入cache,並建立兩者之間地址的對應關係
地址變換:在程序運行時,把主存地址變換爲cache地址

一個假設

假設本章節的內容,都是基於以下內容來講解

  • cache的容量爲4K字節
  • cahce和主存中,數據塊大小爲256字節,即cache劃分爲16塊
  • 主存容量爲1M,即地址線20根,主存被劃分爲4096個塊
  • 指令或數據從主存的0號單元開始存放

全相聯映射

associative mapping,在全相聯映射下,只對主存和cache分塊,包含塊號和塊內地址兩部分
19

全相聯映射下,主存中任意塊,可以映射到cache中的任意塊
20

由於沒有索引,地址變換時,需要將cache所有行的標記部分送到比較器中,與當時訪問地址中的標記部分進行對比,判斷內容是否在cache中

全相聯映射的特點

  • 主存數據塊可以映射到cache的任意一行,因此cache的利用率高
  • 只要cache中還有空行就不會引起衝突,因此cache衝突率低
  • 每次地址變換時要比較cache中所有行的標記,因此電路複雜
  • 適合小容量cache(行數少)

直接映射

direct mapping,在對主存分塊的基礎上,直接映射還對主存分區,每個分區中包含的塊數與cache的行數相同,直接映射對主存地址的邏輯劃分爲:
21

根據之前說的假設,主存被分爲256個區,每個區16塊,每塊256個字節
22

直接映射的特點:

  • 由於主存的一個數據塊只能映射到cache的特定行,因此cache利用率低
  • 索引值相同的所有主存塊映射到cache的同一行,因此cache衝突率高
  • 地址變化時只根據索引值取cache特定行的標記值進行比較,因此比較電路簡單,與cache行數無關
  • 適合於大容量cache使用

組相連映射

set associative mapping,是直接映射和全相聯映射的折中方案

組相連方式一

將cache分爲p組,每組有k行,稱cache中每組包含k行的組相聯稱爲k-路組相聯,在這個方式中,主存也分組,每組中包含的塊數同cache的組數,即主存中每組中包含p塊,該方式下,主存地址的邏輯劃分爲
23

根據映射算法,只將主存數據直接映射到cache數據存儲體的特定組,該組的位置由索引字段的值確定,至於調入該組的哪一行(塊)則是任意的
24

組相連方式二

設cache分爲p組,每組有k行,主存先分區,每區中包含的塊數同cache的行數(即p * k行),也就是說每個區的大小等同於cache整個的大小,然後對每個區再分組,每區中包含的組數及每組中的塊數與cache包含的組數及每組的行數相同,即組相聯方式2中,主存組的大小與cache組的大小完全相同,該方式對主存地址的邏輯劃分爲
25

需要注意的是,存入cache標記存儲器的,是主存區號+組內塊號,區內組號用作索引

組相聯方式2的映射算法也是將主存數據直接映射到cache數據存儲體的特定組,該組的位置由索引字段決定,至於調入該組的哪一行,則是任意的
26

對比兩種組相聯方式,發現同一主存塊映射到cache的組號可能不同,但是無論是哪種,它們都結合了全相聯映射和直接映射的特點

替換算法

如果cache中已裝滿數據,新的數據要進入時,就要將原來的數據塊替換掉

先進先出算法 FIFO

按照數據塊進入cache的先後順序進行替換

  • 優點:系統開銷小,實現容易
  • 缺點:不考慮程序的局部性,導致cache命中率不高

近期最少使用算法 LRU

least recently used, 將近期內長久未被訪問的行換出

  • 優點:cache命中率較高
  • 缺點:實現比FIFO複雜

最不經常使用算法 LFU

least frequently used,將一段時間內被訪問次數最少的那行數據換出

  • 優點:cache命中率較高,但是不如LRU
  • 缺點:不能嚴格反應近期訪問情況

隨機替換算法

random replacement,進行替換時,從特定的行位置中隨機地選取一行

  • 優點:硬件實現最容易,速度較前幾種快
  • 缺點:cache命中率和cache工作效率不高

隨着cache行數的增加,這種算法的負面影響會越小

cache的寫策略

CPU在執行程序期間,除了對cache進行大量的讀操作外,也存在對cache的寫操作

寫回法 WB

write-back,使用這種策略,cpu對cache寫命中時,只修改cache的內容,只有換出時才被寫入主存
爲了支持這種策略,每個cache行必須配置一個標誌位,即髒位,如果被cpu修改過則髒位爲1

寫直達法 WT

write-through,當cpu寫命中時,同時對cache和主存中同一數據塊進行修改

多cache結構

多cache結構在計算機系統中普遍採用

片內和片外兩級cache

  • 第一級 L1:將cache與處理器集成在同一芯片內,減少了對外總線的訪問
  • 第二級 L2:由於L1通常較小,在CPU片外和主存之間再設置一個cache

統一和獨立cache

  • 統一cache:指令和數據放在同一個cache,優點是設計和實現簡單,命中率高
  • 獨立cache:指令和數據放在不同cache

虛擬存儲器

虛擬存儲器的工作原理

虛擬存儲器出現的原因:

  • 受技術和成本限制,主存空間不能無限擴大
  • 程序員希望有一個很大的編程空間,在編寫程序時不受主存大小的限制
  • 計算機系統是多進程的,每個進程都需要有自己的地址空間,不可能爲每個進行提供完整地址空間的存儲器

在存儲系統的層次結構中,虛擬存儲器處於“主存-輔存”存儲層次,通過在主存和輔存之間增加部分軟件(如OS)和必要的硬件(如地址映射與轉換機構、缺頁中斷結構等),使輔存和主存構成一個有機的整體,就像一個單一的、可供CPU直接訪問的大容量主存

程序員可以使用虛擬存儲器提供的地址(虛擬地址)進行編程,這種存儲系統稱爲虛擬存儲器
27

虛擬地址通過MMU轉換成實際的物理地址

虛擬存儲器的地址映射和變換

在虛擬存儲器中有三種地址空間

  • 虛擬地址空間:稱爲虛擬空間,是應用層程序員編寫程序的地址空間
  • 主存的地址空間:稱爲物理地址空間或實地址空間
  • 輔存地址空間:磁盤存儲器的地址空間

在cache中,地址映射是將主存中的數據按照規則調入cache
虛擬存儲器類似,將虛擬地址空間映射到主存空間,並通過MMU建立虛地址與實地址的對應關係
地址變換,則是在程序裝入主存後,在實際運行時,把虛擬地址變換成實際地址或磁盤存儲器地址,以便CPU讀取相應的信息

頁式虛擬存儲器

頁式虛擬存儲器就是將其基本單位劃分爲頁,且將主存的物理空間劃分爲與虛擬存儲器等長的頁
系統基本信息的傳送單位是定長的頁,需要通過地址變換機構實現訪問過程,當訪問頁面不存在時,通過頁面置換算法,將需要的頁面調入主存

  • 優點:由於頁面的起點、終點地址是固定的,因此頁表簡單,調入方便,主存空間浪費小
  • 缺點:由於頁面不是邏輯上的獨立實體,因此處理、保護、共享都不如段式虛擬存儲器方便

段式虛擬存儲器

段式虛擬存儲器是一種將主存按段分配的存儲管理方式,各段的長度因程序而已,段是利用程序的模塊化性質,按照程序的邏輯結構劃分成的多個相對獨立部分,系統的基本信息傳送單位爲段,並通過地址變換機構實現訪存過程

  • 優點:段的分界與程序的自然分界相對應,段的邏輯獨立性使它易於編譯、管理、修改和保護,也便於多道程序共享,某些類型的段具有動態可變長度,允許自由調度以便有效利用主存空間
  • 缺點:段的長度各不相同,段的起點和終點不定,給主存空間分配帶來麻煩,而且容易在段間留下許多空餘的不易於利用的零碎存儲空間,造成浪費

段頁式虛擬存儲器

段頁式虛擬存儲器是段式虛擬存儲器和頁式虛擬存儲器的結合,在這種方式下,把程序按邏輯單位分段以後,再把每個段分成固定大小的也,程序對主存的調入調出是按頁面進行的,但它又可以實現按段共享和保護

  • 優點:兼備頁式虛擬存儲器和段式虛擬存儲器的優點
  • 缺點:在地址映射過程中需要多次查表

快表 TLB

爲了加快查找速度,利用程序的局部性原理,把頁表分爲快表和慢表,一般的頁表稱爲慢表放在主存中,最常用的頁表信息放在cache中,稱爲快表,快表是慢表的子集

存儲保護

爲了保證計算機系統正常運行,在處理多進程時,某一程序改寫或佔用其它程序的存儲空間,是不允許的

  • 段保護、頁保護:每個程序都有自己的段表和頁表,當虛擬的段號或頁號出錯時,找不到對應的內存
  • 鍵保護:爲主存的每一頁分配一個鍵,稱爲存儲鍵,每個用戶的實存頁面的鍵都相同,每道程序都有訪問鍵,當數據要寫入某一頁時,比較鍵值,相同則允許訪問
  • 越界保護:對於沒有MMU的主存而言,可採用越界保護方法,系統爲每個程序劃定存儲區域,用確定的上下界地址實現區域保護,禁止越界訪問

輔助存儲器

磁表面存儲器

在金屬或塑料的表面塗上一層薄薄的磁性材料,再在磁性材料上存儲信息
主要特點:存儲容量大、價格低、非破壞性讀出、可長期保存、反覆使用、存取速度慢、工作環境要求高

讀寫原理

磁表面存儲器利用磁性材料剩磁的兩種磁化方向來記錄信息
28

寫入時,在線圈中通脈衝電流(電流方向不同,寫入信息不同),磁頭氣隙處的磁場把它下面一小塊區域的磁層向某一方向磁化,形成某種剩磁狀態,因而記下一位二進制信息,磁層上這個被磁化的小區域,稱爲磁化單元,隨着磁層的運動,線圈通不同方向的電流,在磁層上依次形成相應的磁化單元

讀出時,某一磁化單元移動到磁頭處,在磁層與磁頭交鏈的磁路中磁通發生變化,於是在線圈中感生出不同方向的電流,經讀寫放大和整形後,還原出寫入時的信息

記錄方式

磁層上的信息是靠磁頭線圈中通不同方向的電流脈衝形成的,因此寫入時需要把二進制信息變爲對應的寫電流脈衝序列,將寫入電流波形的組成方式稱爲記錄方式
29

  • 歸零制:寫1時加正向電流,寫0時加負向電流,在寫入信息前,電流歸零,記錄簡單容易實現,但是抗干擾能力差
  • 不歸零制:寫1時正向電流,寫0是負向電流,電流不歸零,抗干擾能力強
  • 調相制:利用電流相位的變化來寫1或0,如寫1時電流先負後正,寫0時電流先正後負,抗干擾能力強
  • 調頻制:不論寫0或1,電流在位週期結束時一定要改變方向,寫1的電流頻率是寫0的兩倍,記錄密度高,具有自同步能力,磁盤存儲常用這種記錄方式

磁盤存儲器

磁盤存儲器由IBM公司在1956年研發成功

磁盤存儲器的組成

30

信息的載體是一個繞軸旋轉的圓盤,圓盤表面塗有一層磁性材料,盤面上有一個磁頭,磁頭裝在磁頭臂上,磁頭臂在步進電機的驅動下直線運動

圓盤的基片如果用金屬鋁製成,則稱爲硬盤,如果是塑料製成,則稱爲軟盤
31

如圖是磁盤存儲器的邏輯結構,它僅表示信息的讀寫邏輯,未畫出尋址定位機構
寫入時,從主機來的信息經過並轉串,由寫驅動器逐位功率放大後送讀寫磁頭線圈
讀出時,磁頭先找到指定磁道,磁道相對磁頭運動,產生感生電流經過讀出放大器還原,然後經過串轉並後輸出

磁盤上信息的編址和記錄格式

爲了在指定的磁盤區域內讀寫信息,需要將盤面劃分爲若干區,稱爲扇區(sector),每條磁道以扇區爲界分爲若干個記錄(扇段),每個記錄中信息的數量相同,記錄是磁盤地址的最小單位,只要知道磁道號和扇區號,就可以定位記錄。除了磁道號和扇區號,還有記錄面號,軟盤只有兩個記錄面,磁盤組有N個記錄面,所有這些記錄面上,半徑相等的磁道的集合稱爲圓柱面(cylinder)
32

磁盤與主機交換信息時,一次最少要交換一個記錄

磁盤存儲器的技術指標

  • 存儲密度:磁盤單位面積上所能存儲的二進制信息,它包括道密度(沿半徑方向單位長度的磁道數)和位密度(磁道單位長度上的二進制位數)兩個指標
  • 存儲容量:所能存放的總的信息量,單位是字節
  • 平均定位時間:從發出磁盤讀寫命令開始,磁頭從當前位置移動到指定的記錄位置,並開始讀寫操作所需要的時間
    • 尋道時間:將磁頭定位到指定磁道上所需的時間
    • 等待時間:找到指定磁道後至指定的記錄移動到磁頭下的時間
  • 數據傳輸速率:單位時間讀取的信息量

磁帶存儲器

讀寫原理與磁盤存儲器相同,不過它的載體是塑料帶

光盤存儲器

利用光學原理存取信息的存儲器,主要特點是存儲容量大、壽命長、可靠性高

光盤存儲器的類型

  • 只讀型光盤:CD-ROM,由廠家預先寫入,用戶只能讀取
  • 一次寫入光盤:WORM,可由用戶一次性寫入信息
  • 可擦可重寫光盤:Rewrite
  • 直接重寫光盤:Overwrite
  • 數字化視頻光盤:DVD

光盤存儲器的組成

33

由盤片、驅動器、控制器組成,驅動器主要由光頭和控制電路組成

  • 光頭部分:大功率激光器、光學系統、光電探測系統、調焦跟蹤執行機構及快速徑向移動機構
  • 控制電路:主軸恆角速度控制、光盤自動加載控制、點調焦跟蹤伺服控制、快速存取控制、激光器讀寫功率控制、信號處理及內部系統控制
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章