第3章 多層次的存儲器_第1頁
第3章 多層次的存儲器_第2頁
第3章 多層次的存儲器_第3頁
第3章 多層次的存儲器_第4頁
第3章 多層次的存儲器_第5頁
已閱讀5頁,還剩149頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1第三章多層次的存儲器3.1存儲器概述3.2SRAM存儲器3.3DRAM存儲器3.4只讀存儲器和閃速存儲器3.5并行存儲器3.6Cache存儲器3.7虛擬存儲器3.8奔騰系列機的虛存組織返回23.1存儲器概述3.1.1存儲器的分類3.1.2存儲器的分級3.1.3主存儲器的技術指標

返回33.1.1存儲器的分類按存儲介質分類:磁表面/半導體存儲器按存取方式分類:隨機/順序存?。ù艓В┌醋x寫功能分類:ROM,RAMRAM:雙極型/MOSROM:MROM/PROM/EPROM/EEPROM按信息的可保存性分類:永久性和非永久性的按存儲器系統(tǒng)中的作用分類:內部存儲器、外部存儲器1、按存儲介質分類半導體存儲器(semi-conductormemory):隨機存取存儲器(簡稱RAM)和只讀存儲器(只讀ROM)

體積小、功耗低、存取時間短、易失性。磁表面存儲器:磁盤、磁帶、磁鼓磁芯存儲器:硬磁材料的環(huán)狀元件光盤存儲器:激光、磁光3.1.1存儲器的分類1、按存儲介質分類2、按數(shù)據(jù)的可保存性分類隨機存儲器(RandomAccessMemory,RAM)易失性靜態(tài)隨機存儲器、動態(tài)隨機存儲器只讀存儲器(ReadOnlyMemory,ROM)非易失性掩膜型只讀存儲器(ROM)、可編程只讀存儲器(PROM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)2、按數(shù)據(jù)保存方式分類可擦除可編程只讀存儲器EPROM紫外線接收窗2、按數(shù)據(jù)保存方式分類電可擦除可編程只讀存儲器(EEPROM)2、按數(shù)據(jù)保存方式分類Flash存儲器關于閃存Flash-ROM已經(jīng)成為了目前最成功、最流行的一種固態(tài)內存,與EEPROM相比具有讀寫速度快,而與RAM相比具有非易失、以及價廉等優(yōu)勢。Intel于1988年首先開發(fā)出NORflash技術芯片內執(zhí)行(XIP,eXecuteInPlace),不必再把代碼讀到系統(tǒng)RAM中。NORflash讀速度較快,寫入和擦除速度較慢。1989年東芝公司發(fā)表了NANDflash技術NAND結構能提供極高的單元密度,可以達到高存儲密度,并且寫入和擦除的速度也很快,這也是為何所有的U盤都使用NAND閃存做為存儲介質的原因。應用NAND的困難在于閃存和需要特殊的系統(tǒng)接口。接口復雜。103.1.2存儲器的分級目前存儲器的特點是:速度快的存儲器價格貴,容量小;價格低的存儲器速度慢,容量大。在計算機存儲器體系結構設計時,我們希望存儲器系統(tǒng)的性能高、價格低,那么在存儲器系統(tǒng)設計時,應當在存儲器容量,速度和價格方面的因素作折中考慮,建立了分層次的存儲器體系結構如下圖所示。113.1.2存儲器的分級高速緩沖存儲器簡稱cache,它是計算機系統(tǒng)中的一個高速小容量半導體存儲器。主存儲器簡稱主存,是計算機系統(tǒng)的主要存儲器,用來存放計算機運行期間的大量程序和數(shù)據(jù)。外存儲器簡稱外存,它是大容量輔助存儲器。CAI3.1.2存儲器的分級寄存器高速緩沖存儲器(cache)主存儲器輔助存儲器3.1.2存儲器的分級寄存器高速緩沖存儲器(Cache)主存儲器輔助存儲器為什么要采取金字塔型層次結構呢?存儲器指標存儲器有3個重要的指標:速度、容量和每位價格,一般來說,速度越快,位價越高;容量越大,位價越低,容量大,速度就越低。上述三者的關系:高低小大快慢外存寄存器緩存主存磁盤光盤磁帶光盤磁帶速度容量價格位/CPUCPU內存磁盤、磁帶、光盤高速緩沖存儲器(Cache)FlashMemory存儲器主存儲器輔助存儲器MROMPROMEPROMEEPROMRAMROM靜態(tài)RAM動態(tài)RAM4.1存儲器分類總結二、存儲器的層次結構1、存儲器各層位置及特點低CPU主存硬盤光盤磁帶控制器運算器寄存器cache二、存儲器的層次結構1、存儲器各層位置及特點高低小大快慢輔存寄存器緩存主存磁盤光盤磁帶光盤磁帶速度容量價格位/CPUCPU主機二、存儲器的層次結構1、存儲器各層位置及特點高低小大快慢輔存寄存器緩存主存磁盤光盤磁帶光盤磁帶速度容量價格位/CPUCPU主機目標:高速度、大容量、低成本。具體來說:接近高速緩存的速度、接近輔存的容量、接近輔存的平均每位成本。2、兩個主要層次緩存——主存層次 主要解決速度匹配和成本問題主存——輔存層次 主要解決速度、容量、成本問題緩存CPU主存輔存10ns20ns200nsms地址空間虛地址(邏輯地址):程序員編程時采用的地址(相對地址),地址空間大于實際主存。實地址(物理地址):主存的實際地址虛地址實地址硬件:MMU軟件:OS地址空間虛地址實地址硬件:MMU軟件:OS0MOVAX,#41MOVBX,#22MOVCX,#63JMPLabel4ANDAX,#235ANDBX,#22Label:

SUBDX,AX20MOVAX,#421MOVBX,#222MOVCX,#6JMPLable……75ANDAX,#2376ANDBX,#2277Lable:78SUBDX,AX硬件:MMU軟件:OS邏輯地址物理地址存儲系統(tǒng)運行遵循的原理(1)程序運行的局部性原理程序的局部性原理是指程序總是趨向于使用最近使用過的數(shù)據(jù)和指令,也就是說程序執(zhí)行時所訪問的存儲器地址分布不是隨機的,而是相對地簇集;這種簇集包括指令和數(shù)據(jù)兩部分。程序的時間局部性:是指程序即將用到的信息可能就是目前正在使用的信息。程序的空間局部性:是指程序即將用到的信息可能與目前正在使用的信息在空間上相鄰或者臨近。存儲系統(tǒng)運行遵循的原理(2)一致性原則和包含性原則

一致性原則:同一個信息會同時存放于幾個層次的存儲器中,此時,該信息在幾個層次的存儲器中必須保持相同值。

包含性原則:處于內層(靠近CPU)存儲器中的信息一定包含在各外層的存儲器中,即內層存儲器中的全部信息一定是各外層存儲器信息中一小部分的副本。243.1.3主存儲器的技術指標字存儲單元:存放一個機器字的存儲單元,相應的單元地址叫字地址。字節(jié)存儲單元:存放一個字節(jié)的單元,相應的地址稱為字節(jié)地址。存儲容量:指一個存儲器中可以容納的存儲單元總數(shù)。存儲容量越大,能存儲的信息就越多。253.1.3主存儲器的技術指標存取時間又稱存儲器訪問時間:指一次讀操作命令發(fā)出到該操作完成,將數(shù)據(jù)讀出到數(shù)據(jù)總線上所經(jīng)歷的時間。通常取寫操作時間等于讀操作時間,故稱為存儲器存取時間。存儲周期:指連續(xù)啟動兩次讀操作所需間隔的最小時間。通常,存儲周期略大于存取時間,其時間單位為ns。存儲器帶寬:單位時間里存儲器所存取的信息量,通常以位/秒或字節(jié)/秒做度量單位。263.2SRAM存儲器3.2.1基本的靜態(tài)存儲元陣列3.2.2基本的SRAM邏輯結構3.2.3讀/寫周期波形圖

273.2SRAM存儲器主存(內部存儲器)是半導體存儲器。根據(jù)信息存儲的機理不同可以分為兩類:靜態(tài)讀寫存儲器(SRAM):存取速度快動態(tài)讀寫存儲器(DRAM):存儲容量比SRAM大,單位價格便宜。283.2.1基本的靜態(tài)存儲元陣列1、存儲位元2、三組信號線地址線數(shù)據(jù)線行線列線控制線CAI293.2.2基本的SRAM邏輯結構SRAM芯大多采用雙譯碼方式,以便組織更大的存儲容量。采用了二級譯碼:將地址分成x向、y向兩部分如圖所示。CAI303.2.2基本的SRAM邏輯結構存儲體(256×128×8)通常把各個字的同一個字的同一位集成在一個芯片(32K×1)中,32K位排成256×128的矩陣。8個片子就可以構成32KB。地址譯碼器采用雙譯碼的方式(減少選擇線的數(shù)目)。A0~A7為行地址譯碼線A8~A14為列地址譯碼線313.2.2基本的SRAM邏輯結構讀與寫的互鎖邏輯 控制信號中CS是片選信號,CS有效時(低電平),門G1、G2均被打開。OE為讀出使能信號,OE有效時(低電平),門G2開啟,當寫命令WE=1時(高電平),門G1關閉,存儲器進行讀操作。寫操作時,WE=0,門G1開啟,門G2關閉。注意,門G1和G2是互鎖的,一個開啟時另一個必定關閉,這樣保證了讀時不寫,寫時不讀。323.2.3讀/寫周期波形圖讀周期讀出時間Taq讀周期時間Trc寫周期寫周期時間Twc寫時間twd存取周期讀周期時間Trc=寫時間twdCAI33例1:圖3.5(a)是SRAM的寫入時序圖。其中R/W是讀/寫命令控制線,當R/W線為低電平時,存儲器按給定地址把數(shù)據(jù)線上的數(shù)據(jù)寫入存儲器。請指出圖3.5(a)寫入時序中的錯誤,并畫出正確的寫入時序圖。CAI錯誤原因:在寫存儲器期間,時序信號必須同步,當R/W為低電平時,地址線和數(shù)據(jù)線必須保持不變。34CAI353.3DRAM存儲器3.3.1DRAM存儲位元的記憶原理3.3.2DRAM芯片的邏輯結構3.3.3讀/寫周期、刷新周期3.3.4存儲器容量的擴充3.3.5高級的DRAM結構3.3.6DRAM主存讀/寫的正確性校驗363.3.1DRAM存儲位元的記憶原理

SRAM存儲器的存儲位元是一個觸發(fā)器,它具有兩個穩(wěn)定的狀態(tài)。而DRAM存儲器的存儲位元是由一個MOS晶體管和電容器組成的記憶電路,根據(jù)電容器上存儲電量的多少來表示1和0,當電容充滿電量時,代表存儲了1,當電容沒有電荷時代表0,具體如圖3.6所示。373.3.1DRAM存儲位元的記憶原理CAI383.3.2DRAM芯片的邏輯結構下面我們通過一個例子來看一下動態(tài)存儲器的邏輯結構如圖。圖3.7(a)示出1M×4位DRAM芯片的管腳圖,其中有兩個電源腳、兩個地線腳,為了對稱,還有一個空腳(NC)。393.3.2DRAM芯片的邏輯結構CAI403.3.2DRAM芯片的邏輯結構圖3.7(b)是該芯片的邏輯結構圖。與SRAM不同的是:(1)增加了行地址鎖存器和列地址鎖存器。由于DRAM存儲器容量很大,地址線寬度相應要增加,這勢必增加芯片地址線的管腳數(shù)目。為避免這種情況,采取的辦法是分時傳送地址碼。若地址總線寬度為10位,先傳送地址碼A0~A9,由行選通信號RAS打入到行地址鎖存器;然后傳送地址碼A10~A19,由列選通信號CAS打入到列地址鎖存器。芯片內部兩部分合起來,地址線寬度達20位,存儲容量為1M×4位。413.3.2DRAM芯片的邏輯結構圖3.7(b)是該芯片的邏輯結構圖。與SRAM不同的是:(2)增加了刷新計數(shù)器和相應的控制電路。DRAM讀出后必須刷新,而未讀寫的存儲元也要定期刷新,而且要按行刷新,所以刷新計數(shù)器的長度等于行地址鎖存器。刷新操作與讀/寫操作是交替進行的,所以通過2選1多路開關來提供刷新行地址或正常讀/寫的行地址。423.3.3讀/寫周期、刷新周期1、讀/寫周期讀周期、寫周期的定義是從行選通信號RAS下降沿開始,到下一個RAS信號的下降沿為止的時間,也就是連續(xù)兩個讀周期的時間間隔。通常為控制方便,讀周期和寫周期時間相等。CAI433.3.3讀/寫周期、刷新周期2、刷新周期刷新周期:DRAM存儲位元是基于電容器上的電荷量存儲,這個電荷量隨著時間和溫度而減少,因此必須定期地刷新,以保持它們原來記憶的正確信息。刷新操作有兩種刷新方式:集中式刷新:DRAM的所有行在每一個刷新周期中都被刷新。例如刷新周期為8ms的內存來說,所有行的集中式刷新必須每隔8ms進行一次。為此將8ms時間分為兩部分:前一段時間進行正常的讀/寫操作,后一段時間(8ms至正常讀/寫周期時間)做為集中刷新操作時間。8ms內集中安排所有刷新周期。死區(qū)用在實時要求不高的場合。①集中式刷新R/W刷新R/W刷新8ms50ns453.3.3讀/寫周期、刷新周期2、刷新周期刷新周期:DRAM存儲位元是基于電容器上的電荷量存儲,這個電荷量隨著時間和溫度而減少,因此必須定期地刷新,以保持它們原來記憶的正確信息。刷新操作有兩種刷新方式:分散式刷新:每一行的刷新插入到正常的讀/寫周期之中。例如p72圖3.7所示的DRAM有1024行,如果刷新周期為8ms,則每一行必須每隔8ms÷1024=7.8us進行一次。②分散式刷新各刷新周期分散安排在存取周期中。R/W刷新R/W刷新100ns用在低速系統(tǒng)中。8ms③

異步刷新例.各刷新周期分散安排在8ms內。用在大多數(shù)計算機中。每隔一段時間刷新一行。128行≈62.4微秒每隔62.4微秒提一次刷新請求,刷新一行;8毫秒內刷新完所有行。R/W刷新R/W刷新R/WR/WR/W62.4微秒62.4微秒62.4微秒刷新請求刷新請求(DMA請求)(DMA請求)483.3.4存儲器容量的擴充1、字長位數(shù)擴展 給定的芯片字長位數(shù)較短,不滿足設計要求的存儲器字長,此時需要用多片給定芯片擴展字長位數(shù)。三組信號線中,地址線和控制線公用而數(shù)據(jù)線單獨分開連接。

d=設計要求的存儲器容量/選擇芯片存儲器容量

493.3.4存儲器容量的擴充

[例2]利用1M×4位的SRAM芯片,設計一個存儲容量為1M×8位的SRAM存儲器。解:所需芯片數(shù)量=(1M×8)/(1M×4)=2片設計的存儲器字長為8位,存儲器容量不變。連接的三組信號線與例相似,即地址線、控制線公用,數(shù)據(jù)線分高4位、低4位,但數(shù)據(jù)線是雙向的,與SRAM芯片的I/O端相連接。見書上圖3.9所示。503.3.4存儲器容量的擴充2、字存儲容量擴展給定的芯片存儲容量較?。ㄗ謹?shù)少),不滿足設計要求的總存儲容量,此時需要用多片給定芯片來擴展字數(shù)。三組信號組中給定芯片的地址總線和數(shù)據(jù)總線公用,控制總線中R/W公用,使能端EN不能公用,它由地址總線的高位段譯碼來決定片選信號。所需芯片數(shù)仍由(d=設計要求的存儲器容量/選擇芯片存儲器容量)決定。513.3.4存儲器容量的擴充[例3]利用1M×8位的DRAM芯片設計2M×8位的DRAM存儲器解:所需芯片數(shù)d=(2M×8)/(1M×8)=2(片)設計的存儲器見書上圖3.10所示。字長位數(shù)不變,地址總線A0~A19同時連接到2片DRAM的地址輸入端,地址總線最高位有A20、A20,分別作為兩片DRAM的片選信號,兩個芯片不會同時工作。523.3.4存儲器容量的擴充3、存儲器模塊條存儲器通常以插槽用模塊條形式供應市場。這種模塊條常稱為內存條,它們是在一個條狀形的小印制電路板上,用一定數(shù)量的存儲器芯片,組成一個存儲容量固定的存儲模塊。如圖所示。內存條有30腳、72腳、100腳、144腳、168腳等多種形式。30腳內存條設計成8位數(shù)據(jù)線,存儲容量從256KB~32MB。72腳內存條設計成32位數(shù)據(jù)總線100腳以上內存條既用于32位數(shù)據(jù)總線又用于64位數(shù)據(jù)總線,存儲容量從4MB~512MB。533.3.5高級的DRAM結構1、FPMDRAM:

快速頁模式動態(tài)存儲器,它是根據(jù)程序的局部性原理來實現(xiàn)的。讀周期和寫周期中,為了尋找一個確定的存儲單元地址,首先由低電平的行選通信號RAS確定行地址,然后由低電平的列選信號CAS確定列地址。下一次尋找操作,也是由RAS選定行地址,CAS選定列地址,依此類推,如下圖所示。CAI543.3.5高級的DRAM結構2、CDRAMCDRAM稱為帶高速緩沖存儲器(cache)的動態(tài)存儲器,它是在通常的DRAM芯片內又集成了一個小容量的SRAM,從而使DRAM芯片的性能得到顯著改進。如圖所示出1M×4位CDRAM芯片的結構框圖,其中SRAM為512×4位。CAI553.3.5高級的DRAM結構3、SDRAMSDRAM稱為同步型動態(tài)存儲器。計算機系統(tǒng)中的CPU使用的是系統(tǒng)時鐘,SDRAM的操作要求與系統(tǒng)時鐘相同步,在系統(tǒng)時鐘的控制下從CPU獲得地址、數(shù)據(jù)和控制信息。換句話說,它與CPU的數(shù)據(jù)交換同步于外部的系統(tǒng)時鐘信號,并且以CPU/存儲器總線的最高速度運行,而不需要插入等待狀態(tài)。其原理和時序關系見下一頁圖和動畫。56CAI573.3.5高級的DRAM結構[例4]CDRAM內存條組成實例。 一片CDRAM的容量為1M×4位,8片這樣的芯片可組成1M×32位4MB的存儲模塊,其組成如下圖所示。CAI583.3.6DRAM主存讀/寫的正確性校驗DRAM通常用做主存儲器,其讀寫操作的正確性與可靠性至關重要。為此除了正常的數(shù)據(jù)位寬度,還增加了附加位,用于讀/寫操作正確性校驗。增加的附加位也要同數(shù)據(jù)位一起寫入DRAM中保存。其原理如圖所示。CAI593.4只讀存儲器和閃速存儲器3.4.1只讀存儲器ROM3.4.2FLASH存儲器

603.4.1只讀存儲器ROMROM叫做只讀存儲器。顧名思義,只讀的意思是在它工作時只能讀出,不能寫入。然而其中存儲的原始數(shù)據(jù),必須在它工作以前寫入。只讀存儲器由于工作可靠,保密性強,在計算機系統(tǒng)中得到廣泛的應用。主要有兩類:掩模ROM:掩模ROM實際上是一個存儲內容固定的ROM,由生產(chǎn)廠家提供產(chǎn)品。可編程ROM:用戶后寫入內容,有些可以多次寫入。一次性編程的PROM多次編程的EPROM和E2PROM。613.4.1只讀存儲器ROM1、掩模ROM(1)掩模ROM的陣列結構和存儲元CAI623.4.1只讀存儲器ROM1、掩模ROM(2)掩模ROM的邏輯符號和內部邏輯框圖CAI633.4.1只讀存儲器ROM2、可編程ROMEPROM叫做光擦除可編程可讀存儲器。它的存儲內容可以根據(jù)需要寫入,當需要更新時將原存儲內容抹去,再寫入新的內容?,F(xiàn)以浮柵雪崩注入型MOS管為存儲元的EPROM為例進行說明,結構如右圖所示。643.4.1只讀存儲器ROM2、可編程ROM

E2PROM存儲元

EEPROM,叫做電擦除可編程只讀存儲器。其存儲元是一個具有兩個柵極的NMOS管,如圖(a)和(b)所示,G1是控制柵,它是一個浮柵,無引出線;G2是抹去柵,它有引出線。在G1柵和漏極D之間有一小面積的氧化層,其厚度極薄,可產(chǎn)生隧道效應。如圖(c)所示,當G2柵加20V正脈沖P1時,通過隧道效應,電子由襯底注入到G1浮柵,相當于存儲了“1”。利用此方法可將存儲器抹成全“1”狀態(tài)。653.4.2FLASH存儲器

FLASH存儲器也翻譯成閃速存儲器,它是高密度非失易失性的讀/寫存儲器。高密度意味著它具有巨大比特數(shù)目的存儲容量。非易失性意味著存放的數(shù)據(jù)在沒有電源的情況下可以長期保存。總之,它既有RAM的優(yōu)點,又有ROM的優(yōu)點,稱得上是存儲技術劃時代的進展。663.4.2FLASH存儲器1、FLASH存儲元

在EPROM存儲元基礎上發(fā)展起來的,由此可以看出創(chuàng)新與繼承的關系。如右圖所示為閃速存儲器中的存儲元,由單個MOS晶體管組成,除漏極D和源極S外,還有一個控制柵和浮空柵。CAI673.4.2FLASH存儲器2、FLASH存儲器的基本操作

編程操作、讀取操作、擦除操作如圖(a)表示編程操作時存儲元寫0、寫1的情況。實際上編程時只寫0,不寫1,因為存儲元擦除后原始狀態(tài)全為1。要寫0,就是要在控制柵C上加正電壓。一旦存儲元被編程,存儲的數(shù)據(jù)可保持100年之久而無需外電源。CAI683.4.2FLASH存儲器3、FLASH存儲器的陣列結構FLASH存儲器的簡化陣列結構如右圖所示。在某一時間只有一條行選擇線被激活。讀操作時,假定某個存儲元原存1,那么晶體管導通,與它所在位線接通,有電流通過位線,所經(jīng)過的負載上產(chǎn)生一個電壓降。這個電壓降送到比較器的一個輸入端,與另一端輸入的參照電壓做比較,比較器輸出一個標志為邏輯1的電平。如果某個存儲元原先存0,那么晶體管不導通,位線上沒有電流,比較器輸出端則產(chǎn)生一個標志為邏輯0的電平。CAI693.5并行存儲器3.5.1雙端口存儲器3.5.2多模塊交叉存儲器703.5并行存儲器

由于CPU和主存儲器之間在速度上是不匹配的,這種情況便成為限制高速計算機設計的主要問題。為了提高CPU和主存之間的數(shù)據(jù)傳輸率,除了主存采用更高速的技術來縮短讀出時間外,還可以采用并行技術的存儲器。713.5.1雙端口存儲器1、雙端口存儲器的邏輯結構雙端口存儲器由于同一個存儲器具有兩組相互獨立的讀寫控制電路而得名。由于進行并行的獨立操作,因而是一種高速工作的存儲器,在科研和工程中非常有用。舉例說明,雙端口存儲器IDT7133的邏輯框圖。如下頁圖。723.5.1雙端口存儲器CAI733.5.1雙端口存儲器2、無沖突讀寫控制當兩個端口的地址不相同時,在兩個端口上進行讀寫操作,一定不會發(fā)生沖突。當任一端口被選中驅動時,就可對整個存儲器進行存取,每一個端口都有自己的片選控制(CE)和輸出驅動控制(OE)。讀操作時,端口的OE(低電平有效)打開輸出驅動器,由存儲矩陣讀出的數(shù)據(jù)就出現(xiàn)在I/O線上。3、有沖突讀寫控制當兩個端口同時存取存儲器同一存儲單元時,便發(fā)生讀寫沖突。為解決此問題,特設置了BUSY標志。在這種情況下,片上的判斷邏輯可以決定對哪個端口優(yōu)先進行讀寫操作,而對另一個被延遲的端口置BUSY標志(BUSY變?yōu)榈碗娖?,即暫時關閉此端口。743.5.1雙端口存儲器有沖突讀寫控制判斷方法(1)如果地址匹配且在CE之前有效,片上的控制邏輯在CEL和CER之間進行判斷來選擇端口(CE判斷)。(2)如果CE在地址匹配之前變低,片上的控制邏輯在左、右地址間進行判斷來選擇端口(地址有效判斷)。無論采用哪種判斷方式,延遲端口的BUSY標志都將置位而關閉此端口,而當允許存取的端口完成操作時,延遲端口BUSY標志才進行復位而打開此端口。753.5.1雙端口存儲器CAI763.5.2多模塊交叉存儲器1、存儲器的模塊化組織

一個由若干個模塊組成的主存儲器是線性編址的。這些地址在各模塊中如何安排,有兩種方式:一種是順序方式,一種是交叉方式

CAI773.5.2多模塊交叉存儲器1、順序方式[例]M0-M3共四個模塊,則每個模塊8個字順序方式:

M0:0—7

M1:8-15

M2:16-23

M3:24-315位地址組織如下:

XX

XXX高位選模塊,低位選塊內地址特點:某個模塊進行存取時,其他模塊不工作,優(yōu)點是某一模塊出現(xiàn)故障時,其他模塊可以照常工作,通過增添模塊來擴充存儲器容量比較方便。缺點是各模塊串行工作,存儲器的帶寬受到了限制。783.5.2多模塊交叉存儲器[例]M0-M3共四個模塊,則每個模塊8個字2、交叉方式:

M0:0,4,...除以4余數(shù)為0

M1:1,5,...除以4余數(shù)為1

M2:2,6,...除以4余數(shù)為2

M3:3,7,...除以4余數(shù)為35位地址組織如下:

XXX

XX高位選塊內地址,低位選模塊特點:連續(xù)地址分布在相鄰的不同模塊內,同一個模塊內的地址都是不連續(xù)的。優(yōu)點是對連續(xù)字的成塊傳送可實現(xiàn)多模塊流水式并行存取,大大提高存儲器的帶寬。使用場合為成批數(shù)據(jù)讀取。793.5.2多模塊交叉存儲器2、多模塊交叉存儲器的基本結構右圖為四模塊交叉存儲器結構框圖。主存被分成4個相互獨立、容量相同的模塊M0,M1,M2,M3,每個模塊都有自己的讀寫控制電路、地址寄存器和數(shù)據(jù)寄存器,各自以等同的方式與CPU傳送信息。在理想情況下,如果程序段或數(shù)據(jù)塊都是連續(xù)地在主存中存取,那么將大大提高主存的訪問速度。CAI803.5.2多模塊交叉存儲器2、多模塊交叉存儲器的基本結構

CPU同時訪問四個模塊,由存儲器控制部件控制它分時使用數(shù)據(jù)總線進行信息傳遞,這樣,對每一個存儲模塊來說,從CPU給出訪存命令到讀出信息仍然使用一個存取周期,而對于CPU來說,它可以在一個存取周期內期訪問四個模塊。CAI813.5.2多模塊交叉存儲器假設,模塊字長等于數(shù)據(jù)總線寬度,模塊存取一個字的周期為T,總線傳送周期為t,存儲器的交叉模塊數(shù)為m,那么實現(xiàn)流水線方式應當滿足:T=mt823.5.2多模塊交叉存儲器m=T/t為交叉存取度,這樣在交叉方式下連續(xù)讀取m個字的時間為:t1=T+(m-1)t而順序方式下連續(xù)讀取m個字的時間為:t2=mTCAI83例5設存儲器容量為32字,字長64位,模塊數(shù)m=4,分別用順序方式和交叉方式進行組織。存儲周期T=200ns,數(shù)據(jù)總線寬度為64位,總線傳送周期=50ns。若連續(xù)讀出4個字,問順序存儲器和交叉存儲器的帶寬各是多少?解:順序存儲器和交叉存儲器連續(xù)讀出m=4個字的信息總量都是:

q=64b×4=256b順序存儲器和交叉存儲器連續(xù)讀出4個字所需的時間分別是:t2=mT=4×200ns=800ns=8×10-7st1=T+(m-1)t=200ns+350ns=350ns=35×10-7s順序存儲器和交叉存儲器的帶寬分別是:W2=q/t2=256b÷(8×10-7)s=320Mb/sW1=q/t1=256b÷(35×10-7)s=730Mb/s84

3、二模塊交叉存儲器舉例3.5.2多模塊交叉存儲器CAI85

3、二模塊交叉存儲器舉例3.5.2多模塊交叉存儲器CAI863.6cache存儲器3.6.1cache基本原理3.6.2主存與cache的地址映射3.6.3替換策略3.6.4cache的寫操作策略3.6.5Pentium4的cache組織3.6.6使用多級cache減少缺失損失873.6.1cache基本原理1、cache的功能解決CPU和主存之間的速度不匹配問題一般采用高速的SRAM構成。CPU和主存之間的速度差別很大采用兩級或多級Cache系統(tǒng)早期的一級Cache在CPU內,二級在主板上現(xiàn)在的CPU內帶L1Cache和L2Cache全由硬件調度,對用戶透明883.6.1cache基本原理893.6.1cache基本原理CPU與存儲器系統(tǒng)的關系903.6.1cache基本原理2、cache基本原理

CPU與cache之間交換數(shù)據(jù)以字為單位,而cache與主存之間交換數(shù)據(jù)以塊為單位CAI913.6.1cache基本原理2、cache基本原理地址映射;替換策略;寫一致性;性能評價。CAI923.6.1cache基本原理3、Cache的命中率從CPU來看,增加一個cache的目的,就是在性能上使主存的平均讀出時間盡可能接近cache的讀出時間。為了達到這個目的,在所有的存儲器訪問中由cache滿足CPU需要的部分應占很高的比例,即cache的命中率應接近于1。由于程序訪問的局部性,實現(xiàn)這個目標是可能的。933.6.1cache基本原理3、cache命中率公式命中率

Cache/主存系統(tǒng)的平均訪問時間訪問效率Cache與內存的速度比94例6CPU執(zhí)行一段程序時,cache完成存取的次數(shù)為1900次,主存完成存取的次數(shù)為100次,已知cache存取周期為50ns,主存存取周期為250ns,求cache/主存系統(tǒng)的效率和平均訪問時間。

解:h=Nc/(Nc+Nm)=1900/(1900+100)=0.95r=tm/tc=250ns/50ns=5e=1/(r+(1-r)h)=1/(5+(1-5)×0.95=83.3%ta=tc/e=50ns/0.833=60ns953.6.2主存與Cache的地址映射無論選擇那種映射方式,都要把主存和cache劃分為同樣大小的“塊”。選擇哪種映射方式,要考慮:硬件是否容易實現(xiàn)地址變換的速度是否快主存空間的利用率是否高主存裝入一塊時,發(fā)生沖突的概率以下我們介紹三種映射方法961、全相聯(lián)的映射方式(1)將地址分為兩部分(塊號和字),在內存塊寫入Cache時,同時寫入塊號標記;(2)CPU給出訪問地址后,也將地址分為兩部分(塊號和字),比較電路塊號與Cache表中的標記進行比較,相同表示命中,訪問相應單元;如果沒有命中訪問內存,CPU直接訪問內存,并將被訪問內存的相對應塊寫入Cache。3.6.2主存與cache的地址映射971、全相

聯(lián)的

映射方式CAI983.6.2主存與cache的地址映射1、全相聯(lián)的映射方式

轉換公式

主存地址長度=(s+w)位

尋址單元數(shù)=2w個字或字節(jié)

塊大?。叫写笮。?w個字或字節(jié)

主存的塊數(shù)=2s

標記大?。絪位

cache的行數(shù)=不由地址格式確定993.6.2主存與cache的地址映射1、全相聯(lián)的映射方式

1003.6.2主存與cache的地址映射1、全相聯(lián)的映射方式特點:優(yōu)點:沖突概率小,Cache的利用高。缺點:比較器難實現(xiàn),需要一個訪問速度很快代價高的相聯(lián)存儲器應用場合:適用于小容量的Cache1013.6.2主存與cache的地址映射2、直接映射方式映射方法(一對多)如:i=jmodm主存第j塊內容拷貝到Cache的i行,一般i和m都是2N級。

1022、直接映射方式2、基本原理利用行號選擇相應行;把行標記與CPU訪問地址進行比較,相同表示命中,訪問Cache;如果沒有命中,訪問內存,并將相應塊寫入CacheCAI103

3.6.2主存與cache的地址映射2、直接映射方式

轉換公式

主存地址長度=(s+w)位

尋址單元數(shù)=2s+w個字或字節(jié)

塊大?。叫写笮。?w個字或字節(jié)

主存的塊數(shù)=2s

cache的行數(shù)=m=2r

標記大?。?s-r)位

104

3.6.2主存與cache的地址映射2、直接映射方式

105

3.6.2主存與cache的地址映射2、直接映射方式特點優(yōu)點:比較電路少m倍線路,所以硬件實現(xiàn)簡單,Cache地址為主存地址的低幾位,不需變換。缺點:沖突概率高(抖動)應用場合適合大容量Cache1063.6.2主存與cache的地址映射3、組相聯(lián)映射方式前兩者的組合Cache分組,組間采用直接映射方式,組內采用全相聯(lián)的映射方式Cache分組U,組內容量V映射方法(一對多)q=jmodu主存第j塊內容拷貝到Cache的q組中的某行地址變換設主存地址x,看是不是在cache中,先y=xmodu,則在y組中一次查找1073.6.2主存與cache的地址映射3、組相聯(lián)映射方式分析:比全相聯(lián)容易實現(xiàn),沖突低v=1,則為直接相聯(lián)映射方式u=1,則為全相聯(lián)映射方式v的取值一般比較小,一般是2的冪,稱之為v路組相聯(lián)cache.108CAI1093.6.2主存與cache的地址映射3、組相聯(lián)映射方式

轉換公式

主存地址長度=(s+w)位

尋址單元數(shù)=2s+w個字或字節(jié)

塊大?。叫写笮。?w個字或字節(jié)

主存的塊數(shù)=2s

每組的行數(shù)=k

每組的v=2d

cache的行數(shù)=kv

標記大?。?s-d)位

1103.6.2主存與cache的地址映射3、組相聯(lián)映射方式

1113.6.2主存與cache的地址映射1123.6.2主存與cache的地址映射例8:一個組相聯(lián)cache由64個行組成,每組4行。主存包含4K個塊,每塊128字。請表示內存地址的格式。

解:

塊大?。叫写笮。?w個字=128=27∴w=7

每組的行數(shù)k=4

cache的行數(shù)=kv=K×2d=4×2d=64∴d=4

組數(shù)v=2d=24=16

主存的塊數(shù)2s=4K=22×210=22∴s=12

標記大小(s-d)位=12-4=8位

主存地址長度(s+w)位=12+7=19位

主存尋址單元數(shù)2s+w=219

故k=4各組相聯(lián)的內存地址格式如下所示:

8位

4位

7位標記s-d組號d字號w113

3.6.3替換策略當新的主存字塊需要調入cache存儲器而它的可用位置又已被占滿時,就產(chǎn)生替換算法問題。先介紹兩種替換算法先進先出(FIFO)算法和近期最少使用(LRU)算法。

FIFO算法總是把一組中最先調入cache存儲器的字塊替換出去,它不需要隨時記錄各個字塊的使用情況,所以實現(xiàn)容易開銷小

LRU算法是把一組中近期最少使用的字塊替換出去。這種替換算法需隨時記錄cache存儲器中各個字塊的使用情況,以便確定那個字塊是近期最少使用的字塊。LRU替換算法的平均命中率比FIFO要高,并且當分組容量加大時,能提高LRU替換算法的命中率。LRU是最常使用的一種算法、其設計思想是把組中各塊的使用情況記錄在一張表上(如圖7.6所示)。并把最近使用過的塊放在表的最上面。這種算法用硬件實現(xiàn)比較麻煩,經(jīng)常采用修改型LRU算法。

114

3.6.3替換策略另外還有一種隨機替換法(RAND),這種算法不考慮使用情況,在組內隨機選擇一塊來替換。其性能比根據(jù)使用情況的替換算法要差些。11522222*6661111111111*449999*37777*高速緩沖存儲器之替換算法(續(xù))例:設一個容量為4個塊的全相聯(lián)Cache,分別采用FIFO和LRU替換算法,假定訪問的主存地址塊號序列為2、11、2、9、7、6、4、3,畫出每次訪問后Cache中的內容變化情況。解:訪問順序12345678地址塊號211297643塊分配情況(FIFO)操作狀態(tài)調進調進命中調進調進替換替換替換(續(xù))116高速緩沖存儲器之替換算法(續(xù))訪問順序12345678地址塊號2

11297643近期最少使用(LRU)操作狀態(tài)調進調進命中調進調進替換替換替換22*2222*441111*11*11*6669999*37777*1173.6.4寫操作策略由于cache的內容只是主存部分內容的拷貝,它應當與主存內容保持一致。而CPU對cache的寫入更改了cache的內容。如何與主存內容保持一致,可選用如下三種寫操作策略。寫回法:換出時,對行的修改位進行判斷,決定是寫回還是舍掉。全寫法:寫命中時,Cache與內存一起寫寫一次法:與寫回法一致,但是第一次Cache命中時采用全寫法。

1183.6.5Pentium4的Cache組織主要包括四個部分:取指/譯碼單元:順序從L2cache中取程序指令,將它們譯成一系列的微指令,并存入L1指令cache中。亂序執(zhí)行邏輯:依據(jù)數(shù)據(jù)相關性和資源可用性,調度微指令的執(zhí)行,因而微指令可按不同于所取機器指令流的順序被調度執(zhí)行。執(zhí)行單元:它執(zhí)行微指令,從L1數(shù)據(jù)cache中取所需數(shù)據(jù),并在寄存器組中暫存運算結果。存儲器子系統(tǒng):這部分包括L2cache、L3cache和系統(tǒng)總線。當L1、L2cache未命中時,使用系統(tǒng)總線訪問主存。系統(tǒng)總線還用于訪問I/O資源。 不同于所有先前Pentium模式和大多數(shù)處理器所采用的結構,Pentium4的指令cache位于指令譯碼邏輯和執(zhí)行部件之間。其設計理念是:Pentium4將機器指令譯成由微指令組成的簡單RISC類指令,而使用簡單定長的微指令可允許采用超標量流水線和調度技術,從而增強機器的性能。1193.6.5Pentium的Cache組織基本原理見下圖CAI1203.6.6使用多級cache減少缺失損失

為進一步縮小現(xiàn)代CPU和DRAM訪問速度的差距,CPU支持附加一級的cache。二級cache在訪問主cache缺失時被訪問,各級cache都不包含所訪問數(shù)據(jù)時,需要訪問主存儲器。

[例10]現(xiàn)有一處理器,基本CPI為1.0,所有訪問在第一級cache中命中,時鐘頻率5GHz。假定訪問一次主存儲器的時間為100ns,其中包括所有缺失處理。設平均每條指令在第一級cache中產(chǎn)生的缺失率為2%。若增加一個二級cache,命中或缺失的訪問時間都為5ns,且容量大到可使必須訪問主存的缺失率降為0.5%,問處理器速度提高多少。

解得

只有一級cache的CPU:總的CPI=11.0

有二級cache的CPU:總的CPI=4.0

后者是前者CPU性能的:11.0÷4.0=2.8倍

1213.7虛擬存儲器3.7.1虛擬存儲器的基本概念3.7.2頁式虛擬存儲器3.7.3段式虛擬存儲器和段頁式虛擬存儲器3.7.4虛存的替換算法返回1223.7.1虛擬存儲器的基本概念1、實地址與虛地址:用戶編制程序時使用的地址稱為虛地址或邏輯地址,其對應的存儲空間稱為虛存空間或邏輯地址空間;而計算機物理內存的訪問地址則稱為實地地或物理地址,其對應的存儲空間稱為物理存儲空間或主存空間。程序進行虛地址到實地址轉換的過程稱為程序的再定位。1233.7.1虛擬存儲器的基本概念2、虛存的訪問過程虛存空間的用戶程序按照虛地址編程并存放在輔存中。程序運行時,由地址變換機構依據(jù)當時分配給該程序的實地址空間把程序的一部分調入實存。每次訪存時,首先判斷該虛地址所對應的部分是否在實存中:如果是,則進行地址轉換并用實地址訪問主存;否則,按照某種算法將輔存中的部分程序調度進內存,再按同樣的方法訪問主存。由此可見,每個程序的虛地址空間可以遠大于實地址空間,也可以遠小于實地址空間。前一種情況以提高存儲容量為目的,后一種情況則以地址變換為目的。后者通常出現(xiàn)在多用戶或多任務系統(tǒng)中:實存空間較大,而單個任務并不需要很大的地址空間,較小的虛存空間則可以縮短指令中地址字段的長度。1243.7.1虛擬存儲器的基本概念3、cache與虛存的異同從虛存的概念可以看出,主存輔存的訪問機制與cache主存的訪問機制是類似的。這是由cache存儲器、主存和輔存構成的三級存儲體系中的兩個層次。cache和主存之間以及主存和輔存之間分別有輔助硬件和輔助軟硬件負責地址變換與管理,以便各級存儲器能夠組成有機的三級存儲體系。cache和主存構成了系統(tǒng)的內存,而主存和輔存依靠輔助軟硬件的支持構成了虛擬存儲器。1253.7.1虛擬存儲器的基本概念

在三級存儲體系中,cache主存和主存輔存這兩個存儲層次有許多相同點;(1)出發(fā)點相同

二者都是為了提高存儲系統(tǒng)的性能價格比而構造的分層存儲體系,都力圖使存儲系統(tǒng)的性能接近高速存儲器,而價格和容量接近低速存儲器。(2)原理相同

都是利用了程序運行時的局部性原理把最近常用的信息塊從相對慢速而大容量的存儲器調入相對高速而小容量的存儲器。但cache主存和主存輔存這兩個存儲層次也有許多不同之處:(3)側重點不同

cache主要解決主存與CPU的速度差異問題;而就性能價格比的提高而言,虛存主要是解決存儲容量問題,另外還包括存儲管理、主存分配和存儲保護等方面。(4)數(shù)據(jù)通路不同

CPU與cache和主存之間均有直接訪問通路,cache不命中時可直接訪問主存;而虛存所依賴的輔存與CPU之間不存在直接的數(shù)據(jù)通路,當主存不命中時只能通過調頁解決,CPU最終還是要訪問主存。(5)透明性不同

cache的管理完全由硬件完成,對系統(tǒng)程序員和應用程序員均透明;而虛存管理由軟件(操作系統(tǒng))和硬件共同完成,由于軟件的介入,虛存對實現(xiàn)存儲管理的系統(tǒng)程序員不透明,而只對應用程序員透明(段式和段頁式管理對應用程序員“半透明”)。(6)未命中時的損失不同

由于主存的存取時間是cache的存取時間的5~10倍,而主存的存取速度通常比輔存的存取速度快上千倍,故主存未命中時系統(tǒng)的性能損失要遠大于cache未命中時的損失。1263.7.1虛擬存儲器的基本概念4、虛存機制要解決的關鍵問題(1)調度問題決定哪些程序和數(shù)據(jù)應被調入主存。(2)地址映射問題在訪問主存時把虛地址變?yōu)橹鞔嫖锢淼刂罚ㄟ@一過程稱為內地址變換);在訪問輔存時把虛地址變成輔存的物理地址(這一過程稱為外地址變換),以便換頁。此外還要解決主存分配、存儲保護與程序再定位等問題。(3)替換問題決定哪些程序和數(shù)據(jù)應被調出主存。(4)更新問題確保主存與輔存的一致性。在操作系統(tǒng)的控制下,硬件和系統(tǒng)軟件為用戶解決了上述問題,從而使應用程序的編程大大簡化。1273.7.2頁式虛擬存儲器1、頁式虛存地址映射

頁式虛擬存儲系統(tǒng)中,虛地址空間被分成等長大小的頁,稱為邏輯頁;主存空間也被分成同樣大小的頁,稱為物理頁。相應地,虛地址分為兩個字段:高字段為邏輯頁號,低字段為頁內地址(偏移量);實存地址也分兩個字段:高字段為物理頁號,低字段為頁內地址。通過頁表可以把虛地址(邏輯地址)轉換成物理地址。

頁式虛擬存儲器的地址映射過程見下圖。1283.7.2頁式虛擬存儲器1、頁式虛存地址映射CAI1293.7.2頁式虛擬存儲器1、頁式虛存地址映射在大多數(shù)系統(tǒng)中,每個進程對應一個頁表。頁表中對應每一個虛存頁面有一個表項,表項的內容包含該虛存頁面所在的主存頁面的地址(物理頁號),以及指示該邏輯頁是否已調入主存的有效位。地址變換時,用邏輯頁號作為頁表內的偏移地址索引頁表(將虛頁號看作頁表數(shù)組下標)并找到相應物理頁號,用物理頁號作為實存地址的高字段,再與虛地址的頁內偏移量拼接,就構成完整的物理地址?,F(xiàn)代的中央處理機通常有專門的硬件支持地址變換。每個進程所需的頁數(shù)并不固定,所以頁表的長度是可變的,因此通常的實現(xiàn)方法是把頁表的基地址保存在寄存器中,而頁表本身則放在主存中。由于虛存地址空間可以很大,因而每個進程的頁表有可能非常長。例如,如果一個進程的虛地址空間為2G字節(jié),每頁的大小為512字節(jié),則總的虛頁數(shù)為231/29=222。1303.7.2頁式虛擬存儲器為了節(jié)省頁表本身占用的主存空間,一些系統(tǒng)把頁表存儲在虛存中,因而頁表本身也要進行分頁。當一個進程運行時,其頁表中一部分在主存中,另一部分則在輔存中保存。另一些系統(tǒng)采用二級頁表結構。每個進程有一個頁目錄表,其中的每個表項指向一個頁表。因此,若頁目錄表的長度(表項數(shù))是m,每個頁表的最大長度(表項數(shù))為n,則一個進程最多可以有m×n個頁。在頁表長度較大的系統(tǒng)中,還可以采用反向頁表實現(xiàn)物理頁號到邏輯頁號的反向映射。頁表中對應每一個物理頁號有一個表項,表項的內容包含該物理頁所對應的邏輯頁號。訪存時,通過邏輯頁號在反向頁表中逐一查找。如果找到匹配的頁,則用表項中的物理頁號取代邏輯頁號;如果沒有匹配表項,則說明該頁不在主存中。這種方式的優(yōu)點是頁表所占空間大大縮小,但代價是需要對反向頁表進行檢索,查表的時間很長。有些系統(tǒng)通過散列(哈希)表加以改進。1313.7.2頁式虛擬存儲器2、轉換后援緩沖器由于頁表通常在主存中,因而即使邏輯頁已經(jīng)在主存中,也至少要訪問兩次物理存儲器才能實現(xiàn)一次訪存,這將使虛擬存儲器的存取時間加倍。為了避免對主存訪問次數(shù)的增多,可以對頁表本身實行二級緩存,把頁表中的最活躍的部分存放在高速存儲器中,組成快表。這個專用于頁表緩存的高速存儲部件通常稱為轉換后援緩沖器(TLB)。保存在主存中的完整頁表則稱為慢表。1323.7.2頁式虛擬存儲器TLB的地址映射過程見圖CAI1333.7.2頁式虛擬存儲器內頁表和外頁表頁表是虛地址到主存物理地址的變換表,通常稱為內頁表。與內頁表對應的還有外頁表,用于虛地址與輔存地址之間的變換。當主存缺頁時,調頁操作首先要定位輔存,而外頁表的結構與輔存的尋址機制密切相關。例如對磁盤而言,輔存地址包括磁盤機號、磁頭號、磁道號和扇區(qū)號等。1343.7.3段式虛擬存儲器和段頁式虛擬存儲器1、段式虛擬存儲器:段是按照程序的自然分界劃分的長度可以動態(tài)改變的區(qū)域。通常,程序員把子程序、操作數(shù)和常數(shù)等不同類型的數(shù)據(jù)劃分到不同的段中,并且每個程序可以有多個相同類型的段。在段式虛擬存儲系統(tǒng)中,虛地址由段號和段內地址(偏移量)組成。虛地址到實主存地址的變換通過段表實現(xiàn)。每個程序設置一個段表,段表的每一個表項對應一個段。每個表項至少包含下面三個字段:

(1)有效位:指明該段是否已經(jīng)調入實存。

(2)段起址:指明在該段已經(jīng)調入實存的情況下,該段在實存中的首地址。

(3)段長:記錄該段的實際長度。設置段長字段的目的是為了保證訪問某段的地址空間時,段內地址不會超出該段長度導致地址越界而破壞其他段。段表本身也是一個段,可以存在輔存中,但一般是駐留在主存中。1353.7.3段式虛擬存儲器和段頁式虛擬存儲器段式虛地址向實存地址的變換過程CAI1363.7.3段式虛擬存儲器和段頁式虛擬存儲器段式虛擬存儲器的特點段式虛擬存儲器有許多優(yōu)點:①段的邏輯獨立性使其易于編譯、管理、修改和保護,也便于多道程序共享。②段長可以根據(jù)需要動態(tài)改變,允許自由調度,以便有效利用主存空間。段式虛擬存儲器也有一些缺點:①因為段的長度不固定,主存空間分配比較麻煩。②容易在段間留下許多外碎片,造成存儲空間利用率降低。③由于段長不一定是2的整數(shù)次冪,因而不能簡單地像分頁方式那樣用虛地址和實地址的最低若干二進制位作為段內偏移量,并與段號進行直接拼接,必須用加法操作通過段起址與段內偏移量的求和運算求得物理地址。因此,段式存儲管理比頁式存儲管理方式需要更多的硬件支持。1373.7.3段式虛擬存儲器和段頁式虛擬存儲器2、段頁式虛擬存儲器段頁式虛擬存儲器是段式虛擬存儲器和頁式虛擬存儲器的結合。實存被等分成頁。每個程序則先按邏輯結構分段,每段再按照實存的頁大小分頁,程序按頁進行調入和調出操作,但可按段進行編程、保護和共享。1383.7.3段式虛擬存儲器和段頁式虛擬存儲器[例1]假設有三道程序,基號用A、B和C表示,其基址寄存器的內容分別為SA、SB和SC。程序A由4個段構成,程序C由3個段構成。段頁式虛擬存儲系統(tǒng)的邏輯地址到物理地址的變換過程如圖所示。在主存中,每道程序都有一張段表,A程序有4段,C程序有3段,每段應有一張頁表,段表的每行就表示相應頁表的起始位置,而頁表內的每行即為相應的物理頁號。請說明虛實地址變換過程。1393.7.3段式虛擬存儲器和段頁式虛擬存儲器CAI1403.7.3段式虛擬存儲器和段頁式虛擬存儲器[例1]解:地址變換過程如下:(1)由存儲管理部件根據(jù)基號C找到段表基址寄存器表第c個

表項,獲得程序C的段表基址SC。再根據(jù)段號S(=1)找到

程序C段表的第S個表項,得到段S的頁表起始地址b。(2)根據(jù)段內邏輯頁號P(=2)檢索頁表,得到物理頁號(圖中

為10)。(3)物理頁號與頁內地址偏移量拼接即得物理地址。

假如計算機系統(tǒng)中只有一個基址寄存器,則基號可不要。

多道程序切換時,由操作系統(tǒng)修改基址寄存器內容。

實際上,上述每個段表和頁表的表項中都應設置一個有

效位。只有在有效位為1時才按照上述流程操作,否則需中斷

當前操作先進行建表或調頁。

可以看出,段頁式虛擬存儲器的缺點是在由虛地址向主存地

址的映射過程中需要多次查表,因而實現(xiàn)復雜度較高.1413.7.4虛存的替換算法當從輔存調頁至主存而主存已滿時,也需要進行主存頁面的替換。虛擬存儲器的替換算法與cache的替換算法類似,有FIFO算法、LRU算法、LFU算法等。1423.7.4虛存的替換算法虛擬存儲器的替換算法與cach

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論