




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章存儲系統本章學習要點計算機存儲系統的分級結構及其構成。常用半導體存儲器。雙端口存儲器和多模塊交叉存儲器。虛擬存儲器4.1存儲器概述存儲器的基本概念:1、存儲器是計算機中用來存儲信息的部件,正是因為有了存儲器,計算機才有了對信息的記憶功能。2、計算機中的存儲器可以分為兩大類:一類叫內部存儲器,簡稱為內存或主存,另一類叫外部存儲器,簡稱為外存或輔存。3、內存是計算機主機的重要組成部分,它用來存儲當前正在使用的、或者經常要使用的程序和數據。存儲器的基本概念:4、外存也是用來存儲各種信息的,但是CPU要使用這些信息時,必須通過專門的設備(比如,軟磁盤要配有軟盤驅動器,硬磁盤則配有硬盤驅動器,磁帶也必須配有磁帶機)將信息先傳送到內存中,因此,外存存放相對來說不經常使用的程序和數據。5、構成存儲器的存儲介質,目前主要采用半導體器件和磁性材料。
存儲器的基本結構和性能存儲器中最小的存儲單位就是一個由雙穩(wěn)態(tài)半導體電路或一個CMOS晶體管或磁性材料構成的存儲元,它可存儲一位二進制代碼。由若干個存儲元組成一個存儲單元,然后再由許多存儲單元組成一個存儲器。對存儲器的要求是容量大、速度快、成本低,但這三者之間是有矛盾的,為了解決這三者之間的矛盾,計算機采用多級存儲體系結構。在計算機存儲系統中,我們最關注的是內存的性能,反映其性能的指標主要是存儲容量、存取時間、存儲周期和存儲器帶寬。4.1.1存儲器的分類
計算機從問世至今所使用過的存儲器五花八門,種類繁多。從早期的磁芯存儲器、磁鼓存儲器、磁帶存儲器,發(fā)展到當代的半導體存儲器、磁表面存儲器、光盤存儲器,讓人眼花繚亂。把存儲器科學規(guī)范地進行分類有助于我們正確選用及合理組織。根據存儲材料的性能及使用方法不同,存儲器有各種不同的分類方法。⒈按存儲介質分
1、存儲介質的基本要求:作為存儲介質的基本要求是,必須有兩個明顯區(qū)別的物理狀態(tài),分別用來表示二進制的代碼0和1。另一方面,存儲器的存取速度又取決于這種物理狀態(tài)的改變速度。2、目前最常使用的存儲介質:主要是半導體器件和磁性材料。用半導體器件組成的存儲器稱為半導體存儲器。用磁性材料做成的存儲器稱為磁表面存儲器,如磁盤存儲器和磁帶存儲器。采用激光讀寫的光盤或磁光盤存儲器目前也已被大量采用。⒉按存取方式分
1、隨機存儲器:如果存儲器中任何存儲單元的內容都能被隨機存取,且存取時間和存儲單元的物理位置無關,這種存儲器被稱為隨機存儲器。半導體存儲器是隨機存儲器。2、順序存儲器:如果存儲器只能按某種順序來存取,也就是說存取時間和存儲單元的物理位置有關,則這種存儲器稱為順序存儲器。如磁帶存儲器就是順序存儲器,它的存取周期較長。磁盤存儲器是半順序存儲器。⒊按存儲器的讀寫功能分1、只讀存儲器(ROM)
有些半導體存儲器存儲的內容是固定不變的,即只能讀出而不能寫人,因此這種半導體存儲器稱為只讀存儲器(ROM)。2、讀寫存儲器(RAM)
既能讀出又能寫人的半導體存儲器,稱為隨機讀寫存儲器(RAM)。⒋按信息的可保存性分
1、易失性存儲器:斷電后信息即消失的存儲器,稱為非永久記憶的存儲器,也稱為易失性存儲器;2、非易失性存儲器斷電后仍能保存信息的存儲器,稱為永久性記憶的存儲器,也稱為非易失性存儲器。磁性材料做成的存儲器是永久性存儲器,半導體讀寫存儲器RAM是非永久性存儲器。⒌按在計算機系統中的作用分
根據存儲器在計算機系統中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等?,F代計算機存儲系統中經常使用的存儲器
現代計算機存儲系統中經常使用的存儲器是半導體存儲器RAM(靜態(tài)RAM做Cache和顯存,動態(tài)RAM做主存),半導體存儲器ROM(存BIOS程序),磁盤存儲器(做輔存)以及磁帶、光盤存儲器(做大容量后援存儲器)。4.1.2存儲器的分級結構
對存儲器的要求是容量大、速度快、成本低,但是單一存儲器同時兼顧這三方面要求是非常困難的。為了解決這個問題,目前的計算機系統中,通常采用高速緩沖存儲器(Cache)、主存儲器和輔助存儲器構成多級存儲器體系結構,如圖所示存儲器體系結構⒈高速緩沖存儲器
高速緩沖存儲器簡稱Cache,它是計算機系統中的一個高速小容量半導體存儲器。在計算機中,為了提高計算機的處理速度,利用Cache來高速存取指令和數據。和主存儲器相比,它的存取速度快,但存儲容量比較小。高速緩沖存儲器由半導體靜態(tài)RAM存儲器擔任。⒉主存儲器
主存儲器簡稱主存,是計算機系統的主要存儲器,用來存放計算機運行期間的大量程序和數據。它能和Cache交換數據和指令。主存儲器通常由半導體動態(tài)RAM存儲器組成。⒊外存儲器
外存儲器簡稱外存,它是大容量輔助存儲器。目前主要使用磁盤存儲器、磁帶存儲器和光盤存儲器。外存的特點是存儲容量大,位成本低,通常用來存放系統程序和大型數據文件及數據庫。
各級存儲器擔當的職能
Cache主要強調快速存取,以便使存取速度和CPU的運算速度相匹配;外存儲器主要強調大的存儲容量,以滿足計算機的大容量存儲要求;主存儲器介于Cache與外存之間,要求選取適當的存儲容量和存取周期,使它既能存儲系統的核心軟件和較多的用戶程序,又能較快速地工作。4.2.1半導體存儲器的基本存儲原理⒈SRAM的基本存儲原理(1)基本存儲元基本存儲元是組成存儲器的基礎和核心,它用來存儲一位二進制信息0或1。SRAM的基本存儲元由六個MOS管組成。SRAM的基本結構SRAM的基本存儲過程
它實際上是由兩個MOS反相器交叉耦合而成的觸發(fā)器電路,這種電路有兩個穩(wěn)定的狀態(tài),并且A,B兩點的電位總是互為相反的,因此它能表示一位二進制的1和0。其讀寫操作原理如下:寫“1”:在I/O線上輸入高電位,在I/O線上輸入低電位,由譯碼線(高電平)打開T5,T6,T7,T8四個MOS管,把高、低電位分別加在A,B點,使T1管截止,T2管導通,將“1”寫入存儲元。SRAM的寫操作寫“0”:在I/O線上輸入低電位,在I/O線上輸入高電位,由譯碼線(高電平)打開T5,T6,T7,T8四個MOS管,把低、高電位分別加在A,B點,使T1管導通,T2管截止,將“0”寫入存儲元。SRAM的讀操作讀操作:若某個存儲元被選中,則該存儲元的T5,T6,T7,T8管均導通,A,B兩點與位線D與D相連,存儲元的信息被送到I/O與I/O線上。I/O與I/O線接有差動讀出放大器,從其電流方向可以判知所存信息是“1”還是“0”。(2)SRAM存儲器的組成
⒉DRAM的基本存儲原理(1)四管動態(tài)存儲元四管的動態(tài)存儲電路是將六管靜態(tài)存儲元電路中的負載管T3,T4去掉而成的。見圖:四管動態(tài)存儲元4管動態(tài)M0S存儲元電路讀操作讀出操作:當讀出時,先給出預充信號,于是電源就向位線的寄生電容CD充電,使它們都達到電源電壓(CD
=VD
),當字選擇線使T2
、T3
管導通時,存儲的信息通過A、B端向位線輸出。若原存信息為1,則電容C1
上存有電荷,T1
管導通而T0
管截止,因此,位線BS1
的預充電荷經T1
管泄漏,位線BS1
有讀出電流流過。經讀出放大電路鑒別輸出。與此同時,BS0
上的預充電荷CD
可以通過A點向C1
進行充電。故讀出過程也是刷新過程。4管動態(tài)M0S存儲元電路寫操作
寫入操作:當寫入時,字選擇線加入高電平,打開T2
、T3
控制管,將BS0
,BS1
上的信息存儲在T0
、T1
管的柵極電容上。當T2
、T3
管截止時,靠T0
、T1
管柵極電容的存儲作用,在一定時間內,(如2ms)可以保留所寫入的信息。4管動態(tài)M0S存儲元電路再生操作再生操作:
“再生”或“刷新”。由于4管存儲元的信息電荷有泄漏,電荷數不象6管存儲元電路由電源經負載管源源不斷地補充,時間一長就會丟失信息。必須設法在外界按一定規(guī)律不斷給柵極進行充電,按需要補足柵極的信息電荷。4管動態(tài)M0S存儲元的刷新
刷新過程:在字選擇線上加一個脈沖就能實現自動刷新。顯然,只要定時給全部存儲元電路執(zhí)行一遍讀操作,而信息不向外輸出,那么就可以實現動態(tài)存儲器的再生或刷新單管動態(tài)存儲電路單管動態(tài)存儲電路讀寫操作
寫入時,字選擇線加高電平,使T1管導通,寫入信息由數據線D(位線)存入電容CS中。 讀出時,首先要對數據線上的分布電容CD預充電,再加入字脈沖,使T1管導通,CS與CD上電荷重新分配以達到平衡。根據動態(tài)平衡的電荷數多少來判斷原存信息是0或1,因此,每次讀出后,存儲內容就被破壞。是破壞性讀出,必須采取措施,以便再生原存信息。 動態(tài)MOS隨機存儲芯片的組成大體與靜態(tài)MOS隨機芯片相似,由存儲體和外圍電路組成,但外圍電路由于再生操作要復雜得多。4.2.2靜態(tài)隨機存取存儲器實例
我們對此SRAM存儲器的組成做一具體介紹:存儲體:存儲單元的集合,通常用X選擇線(行線)和Y選擇線(列線)的交叉來選擇所需要訪問的單元。地址譯碼器:將用二進制代碼表示的地址轉換成輸出端的高電位,用來驅動相應的讀寫電路,以便選擇所要訪問的存儲單元。地址譯碼有兩種方式,見下表:單譯碼與雙譯碼單譯碼適用于小容量存儲器一個地址譯碼器雙譯碼適用于大容量存儲器X向和Y向兩個地址譯碼器驅動與片選驅動器:雙譯碼結構中,在譯碼器輸出端加驅動器,驅動掛在各條X方向選擇線上的所有存儲元電路。I/O電路:處于數據總線和被選中的單元之間,控制被選中的單元讀出或寫入,并能將讀出信號放大。片選:只有當片選信號有效時,此片所連的地址線才有效。輸出驅動電路輸出驅動電路:為了擴展存儲器的容量,常需要將幾個芯片的數據線并聯使用;另外存儲器的讀出數據或寫入數據都放在雙向的數據總線上,這就要用到三態(tài)輸出緩沖器,以提高驅動能力。主存儲器的技術指標存儲容量主存存儲容量:以字節(jié)B(Byte)為基本單位半導體存儲器芯片:以位b(Bit)為基本單位存儲容量以210=1024規(guī)律表達KB,MB,GB和TB廠商常以103=1000規(guī)律表達KB,MB,GB和TB主存儲器的技術指標存取時間(訪問時間)發(fā)出讀/寫命令到數據傳輸操作完成所經歷的時間存取周期兩次存儲器訪問所允許的最小時間間隔存取周期大于等于存取時間存儲器帶寬(數據傳輸速率)單位時間里存儲器所存取的信息量芯片的存儲容量存儲單元數×每個存儲單元的數據位數 =2M×N=芯片的存儲容量M=芯片地址線的個數N=數據線的個數例:存儲結構2K×816K位存儲容量11個地址引腳8個數據引腳存儲器實例2114地址端:2114(1K×4)191018A6A5A4A3A0A1A2CSGNDVccA7A8A9D0D1D2D3WEA9~A0(入)數據端:D3~D0(入/出)控制端:片選CS=0選中芯片=1未選中芯片寫使能WE=0寫=1讀電源、地地址端:2164(64K×1)18916GNDCASDoA6A3A4A5A7A7~A0(入)數據端:Di(入)控制端:片選寫使能WE=0寫=1讀電源、地空閑/刷新DiWERASA0A2A1Vcc分時復用,提供16位地址。Do(出)行地址選通RAS列地址選通CAS:=0時A7~A0為行地址高8位地址:=0時A7~A0為列地址低8位地址
CPU對存儲器進行讀/寫操作,首先由地址總線給出地址信號,然后要對存儲器發(fā)出讀操作或寫操作的控制信號,最后在數據總線上進行信息交流。所以,存儲器與CPU之間,要完成:
①地址線的連接;②數據線的連接;③控制線的連接。
存儲器芯片的容量是有限的,為了滿足實際存儲器的容量要求,需要對存儲器進行擴展。存儲器與CPU連接
位擴展法:只加長每個存儲單元的字長,而不增加存儲單元的數量字擴展法:僅增加存儲單元的數量,而各單元的位數不變存儲器系統的存儲容量:M×N位使用芯片的存儲容量:L×K位(L≤M,K≤N)需要存儲器芯片個數:(M×N)/(L×K)[例]:利用2K×4位的存儲芯片,組成16K×8位的存儲器,共需要多少塊芯片?[解]:(16K×8)/(2K×4)=8×2=16即:共需16塊芯片。(既需要位擴展,又需要字擴展)[又例]:利用1K×4位的存儲芯片,組成2K×8位的存儲器,共需要芯片數:(2K×8)/(1K×4)=2×2=4字、位同時擴展法:字位同時擴展法:既增加存儲單元的數量,也加長各單元的位數半導體存儲器邏輯設計需解決:芯片的選用、例1.用2114(1K×4)SRAM芯片組成容量為4K×8的存儲器。地址總線A15~A0(低),雙向數據總線D7~D0(低),讀/寫信號線R/W。給出芯片地址分配與片選邏輯,并畫出M框圖。1.計算芯片數(1)先擴展位數,再擴展單元數。地址分配與片選邏輯、信號線的連接。2片1K×4
1K×8
4組1K×8
4K×8
8片
存儲器尋址邏輯2.地址分配與片選邏輯(2)先擴展單元數,再擴展位數。4片1K×4
4K×4
2組4K×4
4K×8
8片
芯片內的尋址系統(二級譯碼)芯片外的地址分配與片選邏輯為芯片分配哪幾位地址,以便尋找片內的存儲單元由哪幾位地址形成芯片選擇邏輯,以便尋找芯片存儲空間分配:4KB存儲器在16位地址空間(64KB)中占據任意連續(xù)區(qū)間。64KB1K×41K×41K×41K×41K×41K×41K×41K×4需12位地址尋址:4KBA15…A12A11A10A9……A0A11~A0000……0任意值
001……1011……1101……1010……0100……0110……0111……1片選芯片地址
低位地址分配給芯片,高位地址形成片選邏輯。
芯片芯片地址片選信號片選邏輯1K1K1K1KA9~A0A9~A0A9~A0A9~A0CS0CS1CS2CS3A11A10A11A10A11A10A11A10連接方式(1)擴展位數41K×41K×44101K×41K×44101K×41K×441041K×41K×441044A9~A0D7~D4D3~D044R/WA11A10CS3A11A10CS0A11A10CS1A11A10CS2(2)擴展單元數(3)連接控制線(4)形成片選邏輯電路例CPU有16根地址線,8根數據線,2114(1K*4)要擴展成2KB的內存,地址范圍為:2000H---27FFH,試畫出CPU與138譯碼器的連接。例2現有芯片:1K*4(RAM)4K*8(RAM)2K*8(RoM)以及3-8譯碼器,畫出CPU與存儲器的連接貯存地址分配如下:6000H—67FFH為系統程序區(qū)6800---6BFFH為用戶工作區(qū)例3地址線16根,數據線8根,主存地址空間分配如下:0-8191為系統程序區(qū),8192-32767為用戶程序區(qū),最后2K為系統程序區(qū)。EPROM:8K*8SRAM:16K*1位,2K*8位,4K*8位,8K*8位4.2.3DRAM的刷新(Refresh)刷新是對動態(tài)存儲元不斷充電的過程DRAM不進行刷新,存儲的信息會丟失DRAM內部有“讀出再生放大電路”的刷新電路設計有僅行地址有效的刷新周期每次刷新一行存儲單元存儲系統的外部刷新控制電路將刷新行地址同時送達所有DRAM芯片所有DRAM芯片同時進行一行的刷新在一定時間間隔內啟動一次刷新(異步刷新)每次行地址增量動態(tài)隨機存儲器的刷新方式
DRAM存儲器采用“讀出”方式進行刷新。從上一次對整個存儲器刷新結束到下一次對整個存儲器全部刷新一遍為止,這一段時間間隔叫刷新周期,一般應小于2ms。
DRAM存儲器常用的刷新方式有三種,一種是集中式刷新,另一種是分散式刷新,第三種是異步式刷新。集中式刷新:在整個刷新間隔內,前一段時間重復進行讀/寫周期或維持周期,等到需要進行刷新操作時,便暫停讀/寫或維持周期,而逐行刷新整個存儲器,它適用于高速存儲器。見圖。
由于刷新集中進行,會造成芯片“死時間”過長;因為芯片在刷新過程中,禁止了正常的讀/寫操作集中式刷新:分散式刷新:把一個存儲系統周期tc分為兩半,周期前半段時間tm用來讀/寫操作或維持信息,周期后半段時間tr作為刷新操作時間。這樣,每經過128個系統周期時間,整個存儲器便全部刷新一遍。見圖。
加長了系統周期,刷新過于頻繁分散式刷新:分散式刷新:把一個存儲周期分為兩半,前半段時間用來讀/寫操作或維持信息,后半段時間作為刷新操作時間加長了系統周期,刷新過于頻繁異步式刷新異步式刷新方式是前兩種方式的結合。
DRAM存儲器的刷新需要有硬件電路的支持,包括刷新計數器、刷新/訪存裁決、刷新控制邏輯等。這些控制線路形成DRAM控制器,它將CPU的信號變換成適合DRAM芯片的信號。異步式刷新15.5μs地址行號X…Y
0
R
…S1ABm-1tC
…
tC
tC
tC…
tC
tC
tC…tC
tCR/W…
R/W
REF
R/W…
R/W
REFR/W…
R/W
REF15.5μs15.5μs……刷新周期(如2ms)設芯片需刷新128次,則每次刷新間隔2000/128=15.5μs異步式刷新前兩種方式的結合,把刷新操作平均分散到整個刷新周期(PC機采用的刷新方式)例如:將6116芯片在2ms內分散地把128行刷新一遍2000s÷128=15.625s15.5s即每隔15.5s刷新一行
說明1M×1位(=512×2048)DRAM芯片的刷新方法,刷新周期定為8ms【解】
512行,每行2048個存儲元同時進行刷新,整個芯片在8ms內進行512次刷新操作集中刷新 在8ms中某個時間段,連續(xù)進行512次刷新操作
“死時間”:t0=512T
(T為存儲器讀寫周期)異步刷新8ms分成512個時間段,每隔8ms÷512=15.625μs對芯片刷新一次(一行),消除長時間的“死時間”
DRAM存儲器的刷新需要有硬件電路的支持,包括刷新計數器、刷新/訪存裁決、刷新控制邏輯等。這些控制線路形成DRAM控制器。存儲器控制電路電路組成它由以下幾部分組成:(1)地址多路開關:刷新時需要提供刷新地址,由多路開關進行選擇。(2)刷新定時器:定時電路用來提供刷新請求。(3)刷新地址計數器:只用RAS信號的刷新操作,需要提供刷新地址計數器。(4)仲裁電路:對同時產生的來自CPU的訪問存儲器的請求和來自刷新定時器的刷新請求的優(yōu)先權進行裁定。(5)定時發(fā)生器:提供行地址選通信號RAS、列地址選通信號CAS和寫信號WE。主存儲器組成實例采用DRAM控制器W4006AF構成的80386主存儲器4.3半導體只讀存儲器(ROM)
只讀存儲器中的信息在正常工作時只能讀出不能寫入,斷電后信息仍保持,用于存放固定的信息,電路結構較RAM簡單。根據制造工藝的不同,可將ROM分為掩膜ROM(MROM)、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(E2PROM)和閃速ROM(FlashROM)等。詳見下表:ROM的分類類型編程方式優(yōu)點缺點掩模式數據在芯片制造過程中確定可靠性和集成度高,價格便宜不能重寫一次編程用戶可自行改變某些存儲元的內容可以根據用戶需要編程只能一次性改寫多次編程可以用紫外光照射或電擦除原來的數據,然后再重新寫入新的數據可以多次改寫ROM中的內容4.3.1MROM和PROM掩膜ROM中的信息在制造過程中通過掩膜工藝存入,用戶不能進行修改。它適用于大批量生產。PROM在出廠時,其中所有的基本存儲元全通或全斷,即內容為全1或全0。用戶可以使用專門設備將自己的數據寫入PROM中,數據一旦寫入就不可修改。PROM相當于由用戶自己完成ROM生產中寫入信息的工序,它適用于小批量生產。
常見的PROM基本存儲元是熔絲。PROM在出廠時,每個字線位線交叉處接有帶熔絲的三極管或MOS管,如圖所示:PROM基本存儲元4.3.2EPROM
EPROM的基本存儲元采用浮柵雪崩注入MOS管,又稱FAMOS管。FAMOS管的柵極完全被二氧化硅絕緣層包圍,無導線外引呈懸浮狀態(tài),故稱為浮柵。EPROM
EPROM出廠時,所有FAMOS管的浮柵都不帶電荷,FAMOS管不導通,位線呈現1態(tài)。若FAMOS管漏極D接25V高壓,則漏源間瞬時產生雪崩擊穿,浮柵累聚正電荷,使FAMOS管導,位線呈現0態(tài)。待高壓撤銷后,由于浮柵中的電荷無處泄漏,所存信息不會丟失。
EPROM
EPROM中寫入內容后,必須用不透光的膠紙將芯片上的石英玻璃窗口封住,以免所存信息丟失。若用紫外光照射EPROM芯片上的石英玻璃窗口,10~20分鐘后,所有FAMOS浮柵中的電荷都會消失,EPROM恢復到全1的狀態(tài),又可寫入新的內容。
通用編程器4.3.3閃速存儲器(FLASHROM)
閃速存儲器是在EPROM功能的基礎上,增加了電路的電擦除和重新編程能力的一種高密度、非易失性的讀/寫半導體存儲器,它突破了傳統的存儲器體系,改善了現有存儲器的特性。下圖是28F256A閃速存儲器芯片邏輯結構圖:閃速存儲器基本的CPU與閃速存儲器的接口。4.4多體交叉存儲器和雙端口存儲器
由于CPU和主存儲器制造工藝不同,因而它們之間在速度上是很不匹配的,更何況在一個CPU周期中可能需要用幾個存儲器字。這種情況便成為限制高速計算的主要問題。 為了使CPU不至于因為等待存儲器讀寫操作的完成而無事可做,可以采取一些加速CPU和存儲器之間信息高效傳輸的特殊措施,這可以通過下列幾種途徑來實現:幾種途徑(1)主存儲器采用更高速的技術來縮短存儲器的讀出時間,或加長存儲器的字長;(2)采用并行操作的雙端口存儲器;(3)在CPU和主存儲器之間插入一個高速緩沖存儲器(Cache),以縮短讀出時間;(4)在每個存儲器周期中存取幾個字。
4.4.1多體交叉存儲器的工作原理1.存儲器的模塊化組織一個由若干個模塊組成的主存儲器是線性編址的。這些地址在各模塊有兩種安排方式:一種是順序方式,一種是交叉方式。順序方式:某個模塊進行存取時,其他模塊不工作,某一模塊出現故障時,其他模塊可以照常工作,通過增添模塊來擴充存儲器容量比較方便。但各模塊串行工作,存儲器的帶寬受到了限制。多體交叉存儲器交叉方式:1.地址碼的低位字段經過譯碼選擇不同的模塊,而高位字段指向相應模塊內的存儲字。2.連續(xù)地址分布在相鄰的不同模塊內,同一個模塊內的地址都是不連續(xù)的。3.對連續(xù)字的成塊傳送可實現多模塊流水式并行存取,大大提高存儲器的帶寬。多體交叉存儲器交叉方式:2.多模塊交叉存儲器的基本結構和工作原理交叉方式:
每個模塊各自以等同的方式與CPU傳送信息。CPU同時訪問四個模塊,由存儲器控制部件控制它們分時使用數據總線進行信息傳遞。這是一種并行存儲器結構。交叉方式:可作如下定量分析:我們認為模塊字長等于數據總線寬度,模塊存取一個字的存儲周期為T,總線傳送周期為τ,存儲器的交叉模塊數為m,為了實現流水線方式存取,應當滿足
T=mτ
(m=T/τ稱為交叉存取度)。交叉存儲器要求其模塊數必須大于或等于m,以保證啟動某模塊后經mτ時間再次啟動該模塊時,它的上次存取操作已經完成。這樣,連續(xù)讀取m個字所需的時間為t1=T+(m-1)τ,而順序方式存儲器連續(xù)讀取m個字所需時間為t2=mT,可見交叉存儲器的帶寬確實大大提高了。4.4.2雙端口存儲器的工作原理1.雙端口存儲器的邏輯結構雙端口存儲器是指同一個存儲器具有兩組相互獨立的讀寫控制線路,是一種高速工作的存儲器。它提供了兩個相互獨立的端口,即左端口和右端口。它們分別具有各自的地址線、數據線和控制線,可以對存儲器中任何位置上的數據進行獨立的存取操作。雙端口存儲器2.無沖突讀寫控制當兩個端口的地址不相同時,在兩個端口上進行讀寫操作,一定不會發(fā)生沖突。當任一端口被選中驅動時,就可對整個存儲器進行存取,每一個端口都有自己的片選控制和輸出驅動控制。雙端口存儲器3.有沖突的讀寫控制當兩個端口同時存取存儲器同一存儲單元時,便發(fā)生讀寫沖突。為解決此問題,特設置了BUSY標志。由片上的判斷邏輯決定對哪個端口優(yōu)先進行讀寫操作,而暫時關閉另一個被延遲的端口。4.5.2高速緩沖存儲器
高速緩沖存儲器也稱為Cache,它是介于CPU和主存之間的小容量存儲器,存取速度比主存快得多。它能高速地向CPU提供指令和數據,加快程序的執(zhí)行速度。它是為了解決CPU和主存之間速度不匹配而采用的一項重要技術。3.5
Cache存儲器Cache:asafeplaceforhidingorstoringthings.在相對容量較大而速度較慢的主存與高速處理器之間設置的少量但快速的存儲器。主要目的:提高存儲器速度為追求高速,包括管理在內的全部功能由硬件實現Cache的基本原理
CPU與Cache之間的數據交換以字為單位,而Cache與主存之間的數據交換以塊為單位。一個塊由若干定長字組成。當CPU讀取主存中一個字時,便發(fā)送此字的內存地址到Cache和主存。此時Cache控制邏輯依據地址判斷此字當前是否在Cache中,若是,此字立即傳送給CPU,否則,則用主存讀周期把此字從主存讀出送到CPU,與此同時,把含有這個字的整個數據塊從主存讀出送到Cache中。管理Cache使用情況的硬件邏輯電路能按照LRU(最近最少使用)替換算法不斷更新Cache的內容,以便最大限度地滿足CPU的需求。Cache基本原理CPU與cache之間的數據交換以字(字節(jié))為單位Cache與主存間的數據傳送以數據塊為單位一個塊(Block)由若干字組成Cache的讀操作高速命中(Hit):微處理器讀取主存的內容已包含在Cache中,可以直接讀取Cache,不用訪問主存從CPU接收地址RAY(命中hit)N(失效miss)開始Cache中含RA?從Cache讀RA的字送CPU從主存讀含RA的塊向CPU傳送RA的字向Cache傳送含RA的主存塊結束高速失效(Miss)、缺失、未命中:微處理器讀取主存的內容不在Cache中,需要訪問主存讀取一個數據塊Cache的工作原理1、Cache以塊為單位進行操作2、當CPU發(fā)出訪內操作請求后,首先由Cache控制器判斷當前請求的字是否在Cache中,若在,叫命中,否則,不命中3、
若命中:若是“讀”請求,則直接對Cache讀,與主存無關若是“寫”請求:Cache單元與主存單元同時寫(Writethrough寫)只更新Cache單元并加標記,移出時修改主存(寫回Copyback)只寫入主存,并在Cache中加標記,下次從MM讀出,保證正確。Cache的工作原理4、未命中時:若是“讀”請求,則從主存讀出所需字送CPU,且把含該字的一塊送Cache,稱“裝入通過”,若Cache已滿,置換算法;若是“寫”請求,直接寫入主存。⒉Cache的命中率
增加Cache的目的,就是在性能上使主存的平均讀出時間盡可能接近Cache的讀出時間。因此,Cache的命中率應接近于1,由于程序訪問主存具有局部性,這是可能的。在一個程序執(zhí)行期間,設Nc表示Cache完成存取的總次數,Nm表示主存完成存取的總次數,h定義為命中率,則有:Cache的命中率
若tc表示命中時的Cache訪問時間,tm表示未命中時的主存訪問時間,1-h表示未命中率,則Cache/主存系統的平均訪問時間ta為:
ta=htc+(1-h)tm
設r=tm/tc表示主存慢于Cache的倍率,e表示訪問效率,則有:Cache的命中率
為提高訪問效率,命中率h越接近1越好,r值以5—10為宜,不宜太大。命中率h與程序的結構、cache的容量、組織方式、塊的大小都有關系。⒊主存與Cache的地址映射
Cache的容量很小,它保存的內容只是主存內容的一個子集,且Cache與主存的數據交換是以塊為單位。地址映射即是應用某種方法把主存地址定位到Cache中。地址映射方式有全相聯方式、直接方式和組相聯方式三種。⒊主存與Cache的地址映射⑴全相聯映射方式主存中一個塊的地址與塊的內容一起存于Cache的行中,其中塊地址存于Cache行的標記部分中。這種方法可使主存的一個塊直接拷貝到Cache中的任意一行上,非常靈活。它的主要缺點是比較器電路難于設計和實現,因此只適合于小容量Cache采用。示意圖如下:Cache結構Cache的數據塊稱為行(線Line,槽Slot)用Li表示,其中i=0,1,…,m-1,共有m=2r行主存的數據塊稱為塊(Block)用Bj表示,其中j=0,1,…,n-1,共有n=2s塊行與塊是等長的,包含k=2w個主存字字是CPU每次訪問存儲器時可存取的最小單位Cache由數據存儲器和標簽存儲器組成數據存儲器:高速緩存主存數據標簽存儲器:保存數據所在主存的地址信息3.5.2主存與Cache的地址映射Cache通過地址映射(mapping)的方法確定主存塊與Cache行之間的對應關系,確定一個主存塊應該存放到哪個Cache行中全相聯映射(fullyassociativemapping)可以將一個主存塊存儲到任意一個Cache行直接映射(directmapping)將一個主存塊存儲到唯一的一個Cache行組相聯映射(setassociativemapping)可以將一個主存塊存儲到唯一的一個Cache組中任意一個行全相聯優(yōu)點:命中率較高,Cache的存儲空間利用率高缺點:線路復雜,成本高,速度低主存與Cache的地址映射⑵直接映射方式這也是一種多對一的映射關系,但一個主存塊只能拷貝到Cache的一個特定行位置上去。Cache的行號i和主存的塊號j有如下函數關系:i=jmodm(m為Cache中的總行數)直接映射方式的優(yōu)點是硬件簡單,成本低。缺點是每個主存塊只有一個固定的行位置可存放,容易產生沖突。因此適合大容量Cache采用。示意圖如下:主存與Cache的地址直接映射優(yōu)點:硬件簡單,容易實現缺點:命中率低,Cache的存儲空間利用率低主存與Cache的地址映射⑶.組相聯映射方式這種方式是前兩種方式的折衷方案。它將Cache分成u組,每組v行,主存塊存放到哪個組是固定的,至于存到該組哪一行是靈活的,即有如下函數關系:
m=u×v
組號q=jmodu組相聯映射方式中的每組行數v一般取值較小,這種規(guī)模的v路比較器容易設計和實現。而塊在組中的排放又有一定的靈活性,使沖突減少。示意圖如下:主存與Cache的地址映射⒋替換策略對Cache工作的要求是盡量保存最新數據。當一個新的主存塊需要拷貝到Cache中,而允許存放此塊的行位置都被其他主存塊占滿時,就會產生替換。替換問題與Cache的組織方式緊密相關。對直接映射的Cache來說,因一個主存塊只有一個特定的行位置可存放,所以問題解決很簡單,只要把此特定位置上的原主存塊換出Cache即可。對全相聯和組相聯Cache來說,就要從允許存放新主存塊的若干特定行中選取一行換出。如何選取就涉及到替換策略,又稱替換算法。目前Cache的替換算法已全由硬件(Cache控制器)來實現,常用替換算法主要有以下三種:替換算法(1)最不經常使用(LFU)算法
LFU算法認為應將一段時間內被訪問次數最少的那行數據換出。為此,每行設置一個計數器。新行建立后從0開始計數,每訪問一次,被訪行的計數器增1。當需要替換時,對這些特定行的計數值進行比較,將計數值最小的行換出,同時將這些特定行的計數器都清零。這種算法將計數周期限定在對這些特定行兩次替換之間的間隔時間內,因而不能嚴格反映近期訪問情況。替換算法(2)近期最少使用(LRU)算法
LRU算法將近期內長久未被訪問過的行換出。為此,每行也設置一個計數器,但它們是Cache每命中一次,命中行計數器清零,其它各行計數器增1。當需要替換時,比較各特定行的計數值,將計數值最大的行換出。這種算法有效保護了剛拷貝到Cache中的新數據行,符合Cache工作原理,因而使Cache有較高的命中率。替換算法(3)隨機替換隨機替換策略實際上不需要什么算法,從特定的行位置中隨機地選取一行換出即可。這種策略在硬件上容易實現,且速度也比前兩種策略快。缺點是隨意換出的數據很可能馬上又要使用,從而降低命中率和Cache工作效率。但這個不足隨著Cache容量增大會被有效彌補。研究表明,隨機替換策略的效率只是稍遜于前兩種替換策略。例某程序要求訪問的塊的號為342643743634846,cache的容量為4塊,描述出調用情況及FIFO\LRU算法的命中率。4.6虛擬存儲器虛擬存儲器只是一個容量非常大的存儲器的邏輯模型,并不是任何實際的物理存儲器。它借助于磁盤等輔助存儲器來擴大主存容量,使之為更大或更多的程序所使用。虛擬存儲器不僅是解決存儲容量和成本之間矛盾的一種方法,而且也是管理外存儲設備的有效手段。它屬于存儲系統的主存-輔存層次。能夠以透明的方式給用戶提供一個比實際主存空間大得多的程序地址空間。有了虛擬存儲器,用戶就無需再考慮所編程序在主存中是否放得下或放在什么位置等問題。4.6.1虛擬存儲器的基本概念1.什么是虛擬存儲器虛擬存儲器只是一個容量非常大的存儲器的邏輯模型,并不是任何實際的物理存儲器。它指的是主存-輔存存儲層次結構。能夠以透明的方式給用戶提供一個比實際主存空間大得多的程序地址空間。此時程序的邏輯地址稱為虛擬地址(虛地址),程序的邏輯地址空間稱為虛擬地址空間?;靖拍?/p>
物理地址(實地址)由CPU地址引腳送出,它是用于訪問主存的地址。設CPU地址總線的寬度為m位,那么物理地址空間的大小用2m來表示。虛擬地址是由編譯程序生成的。工作在虛擬地址模式下的CPU理解這些虛擬地址,并將它們轉換成物理地址。設虛擬地址字長為n位,則虛擬地址空間的大小可用2n來表示。但因虛擬存儲器的內容要保存在磁盤上,故虛擬地址空間的大小實際上受到輔助存儲器容量的限制。替換策略遵循的原則
⑴把程序中最近常用的部分駐留在高速的存儲器中。⑵一旦這部分變得不常用了,把它們送回到低速的存儲器中。⑶這種換入換出是由硬件或操作系統完成的,對用戶是透明的。⑷力圖使存儲系統的性能接近高速存儲器,價格接近低速存儲器。兩種存儲系統的主要區(qū)別在于:在虛擬存儲器中未命中的性能損失要遠大于Cache系統中未命中的損失。主存-輔存層次的基本信息傳送單位
主存-輔存層次的基本信息傳送單位可采用幾種不同的方案:段、頁或段頁。段是按照程序的邏輯結構劃分成的多個相對獨立部分,作為獨立的邏輯單位。優(yōu)點是段的邏輯獨立性使它易于編譯、管理、修改和保護,也便于多道程序共享;某些類型的段具有動態(tài)可變長度,允許自由調度以便有效利用主存空間。缺點是因為段的長度各不相同,起點和終點不定,給主存空間分配帶來麻煩,而且容易在段間留下許多空余的零碎存儲空間,造成浪費。主存-輔存層次的基本信息傳送單位頁是主存物理空間中劃分出來的等長的固定區(qū)域。優(yōu)點是頁面的起點和終點地址是固定的,方便造頁表,新頁調入主存也很容易掌握,比段式空間浪費小。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論