




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机学院《计算机组成原理》——课程研讨计算机组成原理考查目标1.理解单处理器计算机系统中各部件的内部工作原理、组成结构以及相互连接方式,具有完整的计算机系统的整机概念。2.理解计算机系统层次化结构概念,熟悉硬件与软件之间的界面,掌握指令集体系结构的基本知识和基本实现方法。3.能够运用计算机组成的基本原理和基本方法,对有关计算机硬件系统中的理论和实际问题进行计算、分析,并能对一些基本部件进行简单设计。第三章存储器层次机构存储器分类存储器层次化结构半导体随机存取存储器只读存储器主存储器与CPU的连接双口RAM和多模块存储器高速缓冲存储器虚拟存储器存储器的层次化结构Cache-主存-辅存三级存储层次如图所示。其中Cache容量最小,辅存容量最大,各层次中存放的内容都可以在下一层次中找到。这种多层次结构已成为现代计算机的典型存储结构。存储器的层次化结构CacheCPU寄存器组高速缓冲存储器主存外设主机存储器的层次化结构寄存器
微处理器内部的存储单元高速缓存(Cache)
完全用硬件实现主存储器的速度提高主存储器
存放当前运行程序和数据,采用半导体存储器构成辅助存储器
磁记录或光记录方式
磁盘或光盘形式存放可读可写或只读内容
以外设方式连接和访问虚拟存储器双口RAM和多模块存储器双端口RAM同一个存储器具有两组相互独立的读写控制线路,提供了两个相互独立的端口,都可以对存储器中任何位置上的数据进行独立的存取操作。多模块存储器
1、提高存储器工作速度的技术每个模块各自以等同的方式与CPU传送信息。连续地址分布在相邻的模块,对连续字的成块传送可以重叠进行实现流水线并行存取。双口RAM和多模块存储器多个模块采用交叉编址,连续的地址被安排在不同的模块中。多体交叉存储器是指存储体内有多个容量相同的存储模块,而且各存储模块都有各自独立的地址寄存器、译码器和数据寄存器。各模块可独立进行工作。交叉存取是指各个模块的存储单元交叉编址且存取时间均匀分布在一个存取时间周期内。双口RAM和多模块存储器多体交叉存储器结构A
BM
A
R
0M
A
R
1M
A
R
2M
A
R
301234567M
0M
1M
2M
3K
+0K
+1K
+
2K
+3时序控制M
D
R
0M
D
R
1M
D
R
2M
D
R
3D
B双口RAM和多模块存储器3、多体交叉存储器编址方式大容量的主存储器可由多个存储体组成,每个存储体有自己独立的读写线路、地址寄存器和数据寄存器,称为“存储模块”。(m
=
2m
)若在M个模块上交叉编址 称为模M交叉编址。若存储器有M个模块,每个模块容量为LM,j
各+
i
模块低位交叉编址,连续分布,第i个模块的地址编号为:其中:j=0,1,2,…,L-1;i=0,1,2,…,M-1双口RAM和多模块存储器地址的模四交叉编址如下:一般模块数M取2的m次幂,有的机器采用质数个模块。银河机的M为31。模体地址编址序列对应二进制地址最低二位M00,4,8,12,…,4J+0,…00M11,5,9,13,…,4J+1,…01M22,6,10,14,…,4J+2,…10M33,7,11,15,…,4J+3,…11双口RAM和多模块存储器一般交叉存储器为了实现流水线方式存储,每通过τ(τ为总线传送周期)时间延迟后启动下一模块,应满足T=mτ,交叉存储器要求其模块数>=m,以保证启动某模块后经过mτ时间后再次启动该模块时,它的上次存取操作已经完成。这样连续读取m个字所需要时间为:t=T+(m–1)τ。例1:设存储器容量为32字,字长64位,模块数m=4,分别画出顺序方式和交叉方式组织的存储器结构和编址示意图。解:(1)顺序方式内存地址格式4
3
2
1
0模块字存储器结构和编址示意图如下图(a)所示。3.6双口RAM和多模块存储器43210模
块字译
码
器M
0M
1M
2M
3081
62
4191
72
5译21
01
82
631
11
92
7码41
22
02
851
32
12
9器61
42
23
071
52
33
1数据总线(6
4
位)(a)
顺序存储器双口RAM和多模块存储器(2)交叉方式内存地址格式4
3
2
1
0字模块存储器结构和编址示意图如下图(b)所示。双口RAM和多模块存储器4
3
210字模
块译
码
器M
0M
1M
2M
30123译4567891
01
1码1
21
31
41
51
61
71
81
9器2
02
12
22
32
42
52
62
72
82
93
03
1(b
)数据总线(6
4
位)交叉存储器双口RAM和多模块存储器例2:设存储器容量为4M字,字长32位,模块数m=4,分别用顺序方式和交叉方式进行组织,存储周期T=200ns,数据总线宽度32位,总线传送周期=50ns。问顺序存储器和交叉存储器的平均存取时间、带宽各是多少?【相关知识】顺序方式和交叉方式存储器的效率双口RAM和多模块存储器【解答】顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:q=32位×4
=128位
顺序存储器和交叉存储器连续读出4个字所需的时间分别是:T1
=
mT
=
4
×
200ns
=800ns=
8
×
10
-7
(S)T2
=
T
+
(m–1)
t
=200ns
+
3×50ns=
350ns =
3.5
×
10-7
(S)双口RAM和多模块存储器顺序存储器和交叉存储器的平均存取时间分别
T1a=800na/4=200ns T2a=350ns/4=87.5ns顺序存储器带宽W1=q/T2=128
位/(8×10-7)S=16
×107(位/S)交叉存储器带宽W2=q/T1=128
位/(3.5×10-7)S=36.5
×107(位/S)双口RAM和多模块存储器为了进行检索,还要求相联存储器能进行各种比较操作(相等、不等、小于、大于、求最大值和最小值等)。比较操作是并行进行的,即CR中的关键字段与存储器的所有W个字的相应字段同时进行比较。一般用门电路与触发器来进行比较与保存信号,所用电路较多,因此尽管在50年代中期已提出相联存储器概念,后来也有一些基于相联存储器原理的相联处理机出现,但没有得到很快发展。在相联处理机中,来自控制器的一条命令能对许多数据同时执行算术或逻辑运算,因此各个存储单元除了有存储信息的功能外,还应有处理信息的能力,也就是说每个存储单元必须有一个处理单元。由于集成电路的迅速发展,才使得半导体相联存储器有条件作为商品上市。双口RAM和多模块存储器相联存储器除了应用于虚拟存储器与cache中以外,还经常用于数据库与知识库中按关键字进行检索。从按地址访问的存储器中检索出某一单元,平均约进行m/2次操作(m为存储单元数),而在相联存储器中仅需要进行一次检索操作,因此大大提高了处理速度。近年来相联存储器用于一些新型的并行处理和人工智能系统结构中。例如,在语音识别、图像处理、数据流计算机、Prolog机中都有采用相联存储器的例子。高速缓冲存储器Cashe在相对容量较大而速度较慢的主存与高速处理器之间设置的少量但快速的存储器主要目的:提高存储器速度为追求高速,包括管理在内的全部功能由硬件实现高速缓冲存储器Cashe一、程序访问的局部性对大量的典型程序的运行情况的分析结果表明,在一个较短的时间间隔内,地址往往集中在存储器逻辑地址空间的很小范围内。程序地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次,因此,对程序地址的访问就自然地具有相对集中的倾向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。在一个较短的时间间隔内,CPU对局部范围的存储器地址频繁访问,而对此地址范围之外的地址访问很少,这种现象称程序访问的局部性。Cashe为了提高存储系统的存取速度而设立的,其理论依据是程序访问的局部性原理。高速缓冲存储器Cashecache存储器工作原理根据局部性原理,可以在主存和CPU之间设置一个高速的容量相对较小的存储器,如果当前正在执行的程序和数据存放在这个存储器中,当程序运行时,不必从主存储器取指令和取数据,而访问这个高速存储器即可,所以提高了程序运行速度,这
个存储器称作高速缓冲存储器(cache)。CPU与cache之间的数据交换以字(字节)为单位Cache与主存间的数据传送以数据块为单位一个块(Block)由若干字组成3.7高速缓冲存储器Cashe3.7高速缓冲存储器Cashecache存储器的基本结构3.7高速缓冲存储器Cashe当CPU发出读请求时,将主存地址m位(或m位中的一部分)与cache某块的标记相比较,根据其比较结果是否相等而区分出两种情况:当比较结果相等时,说明需要的数已在cache中,那么直接访问cache就行了,在CPU与cache之间,通常一次传送一个字;当比较结果不相等时,说明需要的数据尚未调入
cache,那么就要把该数据所在的整个字块从主存一次调进来。前一种情况称为访问cache命中,后一种情况称为访问cache不命中。块的大小称为“块长”。块长一般取一个主存周期所能调出的信息长度。3.7高速缓冲存储器Cashecache的容量和块的大小是影响cache的效率的重要因素。通常用“命中率”来测量cache的效率。命中率指CPU所要访问的信息在cache中的比率,而将所要访问的信息不在cache中的比率称为失效率。一般来说,cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。3.7高速缓冲存储器CasheCache的命中率命中率(Hit
Rate):高速命中的概率h=NccN
+Nmcache/主存系统的平均访问时间ta:ta=htc+(1-h)tmtc=命中时的cache访问时间
tm=未命中时的主存访问时间h=命中率Nc=cache完成存取的总次数
Nm=主存完成存取的总次数3.7高速缓冲存储器CasheCache的访问效率e设r=tm/tc表示主存慢于cache的倍率e=tcta=tchtc+
(1-h)tm1h+
(1-h)r=1r+
(1-r)h=高速缓冲存储器Cashe【例5】CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。【解】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=60ns或者,ta=h·tc+(1-h)·tm=60ns高速缓冲存储器Cashecache和主存之间的映射方式为了把信息放到Cache存储器中,必须应用某种函数把主存地址映像到Cache,称作地址映像。在信息按照这种映像关系装入Cache后,执行程序时,应将主存地址变换成Cache地址,这个变换过程叫做地址变换。高速缓冲存储器CasheCache通过地址映射(mapping)的方法确定主存块与Cache行之间的对应关系,确定一个主存块应该存放到哪个Cache行中全相联映像(fully
associative
mapping)可以将一个主存块存储到任意一个Cache行直接映像(direct
mapping)将一个主存块存储到唯一的一个Cache行组相联映像(set
associative
mapping)可以将一个主存块存储到唯一的一个Cache组中任意一个行高速缓冲存储器Cashe1、直接映像方式在直接映像方式中,主存和cache中字块的对应关系如图7.3所示。直接映像函数可定义为:j=i
mod
2c其中,j是cache的字块号,i是主存的字块号。在这种映像方式中,主存的第0块,第2c块,第2c+1块,…,只能映像到
cache的第0块,而主存的第1块,第2c+1块,第2c+1+1块,…,只能映像到cache的第1块。高速缓冲存储器Cashe高速缓冲存储器Cashe直接映像的优点是实现简单,只需利用主存地址按某些字段直接判断,即可确定所需字块是否已在cache存储器中。主存地址末b位是字块内地址(假定为字地址);中间c位是
cache字块地址;高(m-c)=t位就是主存字块标记,也就是记录在相应cache块标记中的内容,当有效位为“1”时,它表明该数据块是主存哪一块数据的副本。cache在接收到CPU送来的主存地址和读/写命令后,只需根据中间位字段找到cache存储器字块,然后看其标记是否与主存地址高t位符合,如果符合且有效位为“1”,则可根据b位块内地址,从cache中取得所需指令或数据;如果不符合或有效位为“0”,就从主存读人新的字块来替换旧的字块,并将CPU所需数据送往CPU,同时修改cache标记。假如原来有效位为“0”,还要将有效位改置成“1”。3.7高速缓冲存储器Cashe直接映像方式的缺点是不够灵活,即主存的2t个字块只能对应惟一的cache存储器字块,因此,即使cache存储器别的许多地址空着也不能占用。这使得cache存储空间得不到充分利用,并降低了命中率。高速缓冲存储器Cashe2、全相联映像方式全相联映像方式是最灵活但成本最高的一种方式,如图7.4所示。它允许主存中的每一个字块映像到cache存储器的任何一个字块位置上,也允许从确实已被占满的cache存储器中替换出任何一个旧字块。这是一个理想的方案。实际上由于它的成本太高而不能采用,不只是它的标记位数从t位增加到t+c位(与直接映像相比),使cache标记容量加大,主要问题是在访问cache时,需要和cache的全部标记进行“比较”才能判断出所访主存地址的内容是否已在cache中。高速缓冲存储器Cashe高速缓冲存储器Cashe由于cache速度要求高,所以全部“比较”操作都要用硬件实现,通常由“按内容寻址的”相联存储器完成。所需逻辑电路甚多,以致无法用于cache中。实际的cache组织则是采取各种措施来减少所需比较的地址数目。高速缓冲存储器Cashe3、组相联映像方式组相联映像方式是直接映像和全相联映像方式的一种折衷方案。组相联映像cache组织如图7.5所示。它把cache字块分为2c’组,每组包含2r个字块,于是有c=c’+r。那么,主存字块Mm(i)(0≤i≤2m-1)可以用下列映像函数映像到cache字块
Mc(j)(0≤j≤2c-1)上j=(i
mod
2c’)×
2r+k
0≤k≤2r-1k为位于上列范围内的可选参数(整数)。按这种映像方式,组间为直接映像,而组内的字块为全相联映像方式。高速缓冲存储器Cashe高速缓冲存储器Cashe组相联映像把地址划分成3段,末b位为块内地址,中间c’位为cache组地址,高t位和r位形成标记字段。根据主存地址的“cache组地址”字段访问cache,并将主存字块标记(t位+r位)与cache同一组的2r个字块标记进行比较,并检查有效位,以确定是否命中。当r不大时,需要同时进行比较的标记数不大,这个方案还是比较现实的。
组相联映像方式的性能与复杂性介于直接映像与全相联映像两
种方式之间。当r=0时,它就成为直接映像方式;当r=c时,就是全相联映像方式。高速缓冲存储器Cashecache的命中率除了与地址映像的方式有关外,还与cache的容量有关。cache容量大,命中率高,但达到一定容量后,命中率的提高就不明显了。【例1】设主存容量1MB,高缓容量16KB,块的大小为512字节。Cache地址格式写出主存地址格式
(3)块表的容量为多大?画出直接方式地址映像及变换示意图主存地址为CDE8FH的单元在cache中的什么位置?【例题解答】
(1)
Cache容量16KB,16KB=214,所以Cache地址为14位;块的大小为512字节,所以块内地址为9位,块地址为5位。高速缓冲存储器Cashe19
1413
98
0Cache地址格式为:13
9
8
0块地址 块内地址(2)主存容量1MB,1MB=220,所以主存地址为20位;块的大小为512字节,所以块内地址为9位,块地址为5位,块标记为6位。主存地址格式为:块标记 块地址 块内地址(3)Cache的每一块在块表中有一项,Cache的块地址为5位,所以块表的单元数为25;块表中存放的是块标记,由于块标记为6位,所以块表的字长为6位。故块表的容量为:25字×6位。高速缓冲存储器Cashe主存区号主存地址区内块号块内地址6
位5
位9
位第0
区C
a
c
h
e
地址比较命中C
a
c
h
e第1
区012区号Y第2
区3
03
1第0
块第1
块第Y
块第3
0
块第3
1
块图4
.
29
例4.8
直接映像方式的变换示意图第63
区第0
块第1
块…
…
…第31
块第0
块第1
块…
…
…第3
1
块第0
块第1
块…
…
…第3
1
块第0
块第1
块…
…
…第3
1
块(4)直接方式地址映像及变换示意图如图4.29所示:M
M高速缓冲存储器Cashe(5)因为cache容量为16KB=214B,块长为512B,所以cache有16×1024/512=32个块。因为CDE8FH=
1100,1101,1110,1000,1111所以块号=1100,1101,111
块内地址=0,1000,1111在直接映射方式下,主存中的第i块映射到cache
中第imod
25个块中;1100,1101,111
mod
32
=
01111;所以,地址CDE8F
的单元在cache
中的地址为01111
,010001111。高速缓冲存储器Cashe【例2】在上面的例1中(1)Cache容量16KB,16KB=214,所以Cache地址为14位;块的大小为512字节,所以块内地址为9位,块地址为5位,共
32个块。Cache地址格式为:13
9
8
0块地址块内地址(2)主存容量1MB,1MB=220,所以主存地址为20位;块的大小为512字节,所以块内地址为9位,块地址为11位,共211=2048个块。主存地址格式为:19
9
8
0块标记 块内地址高速缓冲存储器Cashe(3)Cache的每一块在块表中有一项,Cache的块地址为5位,所以块表的单元数为25;块表中存放的是块标记,由于块标记为11位,所以块表的字长为11位。故块表的容量为:25字×11位。(4)全相联映像方式地址映像及变换示意图如图所示:高速缓冲存储器CasheCache
存储器主存储器字块0字块0字块1字块1字块i标记标记标记字块31字块2047主存地址主存字块标记字块内地址m=11
位b=9
位块表11高速缓冲存储器Cashe【例3
】一个组相联映象Cache由64个存储块构成,每组包含4个存储块。主存包含4096个存储块,每块由8字组成,每字为32位。存储器按字节编址,访存地址为字地址。
(1)Cache地址位数和地址格式。(2)写出主存地址位数和地址格式。
(3)画出组相联映像方式的示意图。(4)主存地址18AB9H映射到Cache的哪个字块?【相关知识】Cache存储器的地址格式和组相联地址映像方式。高速缓冲存储器Cashe【例题解答】(1)
Cache由64个存储块构成,每块由8字组成,每字为32位,存储器按字节编址,所以Cache容量=64×8字×4B=211B,所以Cache的地址总数为11位。每组包含4个存储块,所以组内块号为2位;Cache有64/4=16个组,所以组号为4位。Cache地址格式为:10
9
8
5
4
2
1
0组内块号组号块内字地址块内字节地址高速缓冲存储器Cashe(2)主存包含4096个存储块,主存容量=4096×8字×4字节=217字节主存字块标记为17-11=6位。主存地址格式为:1611109854210主存字块标记组内块号组号 块内字地址
块内字节地址高速缓冲存储器Cashe(3)组相联映像方式的示意图如图所示。由于访存地址为字地址,所以块内字节地址无用,图中由主存高位地址和组内块号组成标记,分别与由组号选中的组中的四个标记进行比较,比较符合即可访问相应的字块。高速缓冲存储器Cashe第0
块第1
块1
区组cache(r=
2
)01第15
块第16
块第17
块14第31
块15标记
字块0标记字块1标记
字块2标记
字块3标记字块
4
标记
字块5
标记
字块6标记字块7标记字块
56标记字块57标记字块58标记
字块59标记
字块60标记字块61标记字块62标记字块63比
较第4079
块第4080
块64
区主存高位地址
组内块号
组号块内地址第4095
块16
11
10
9
8
5
4
0组相联映像方式的示意图高速缓冲存储器Cashe(4)主存地址18AB9H=1
1000
1010
1011
1001方法1:组号为0101,所以主存地址18AB9H可以映射到Cache的第5组中的字块21、字块22、字块23或字块24。方法2:块内地址位1
1001;块号位i=
1
1000
1010
101;设Cache的块号为j,因为j=(i
mod
24
)
×22
+
k
0≤k≤22-1所以j=(1
1000
1010
101
mod
24
)×22
+k=0101×22
+k=5×4+
k所以主存地址18AB9H可以映射到Cache的第5组中的字块21、字块22、字块23或字块24。高速缓冲存储器Cashe四、cache中主存块的替换算法当新的主存字块需要调入Cache存储器而它的可用位置又已被占满;辅存的页需要调入主存而主存的页已被占满时,就产生替换问题。常用的替换算法有:先进先出(FIFO)算法和近期最少使用(LRU)算法。FIFO算法总是把一组中最先调入的块或页替换出去,它不需要随时记录各个字块或页的使用情况,所以实现容易、开销小。
LRU算法是把一组中近期最少使用的字块或页替换出去。这种替换算法需随时记录Cache存储器中各个字块或主存中的各页的使用情况,以便确定那个字块是近期最少使用的字块。LRU替换算法的平均命中率比FIFO要高,并且当分组容量加大时,能提高LRU替换算法的命中率。高速缓冲存储器Cashe随机替换法(RAND),这种算法不考虑使用情况,在组内随机选择一块来替换。其性能比根据使用情况的替换算法要差些。最不常用(LFU:
least-frequently
used)替换使用次数最少的块。高速缓冲存储器CasheLRU替换算法LRU能较好地反映程序的局部性,因而其命中率较高,但实现的硬件较复杂。2路组相联:使用一个U位。某个Cache块被访问,该块U位置
1;对应块U位置0。替换U位为0的块。4/8路组相联:运用堆栈型算法。最近访问的块放上面,最下面存放最久没有访问的块。替换最下面的块。高速缓冲存储器Cashe高速缓冲存储器Cashe五、cache写策略处理器对Cache读占大多数,也容易提高速度写入Cache有些问题:
确认命中,才可以对Cache块写入
写入的数据字数不定
写入后可能导致与主存内容不一致写入策略解决主存内容的更新问题,保持正确直写法(write
through)=全写法写入Cache的同时也写入主存(下一级存储器)回写法(write
back)=写回法只写入Cache,在被替换时才写回主存高速缓冲存储器Cashe直写和回写的比较:直写策略
优点:简单可靠
缺点:总线操作频繁、影响工作速度
解决方法:在Cache与主存间设置一级/多级缓冲器,形成实用的“缓冲直写”方式,提高速度回写策略
优点:可以减少写入主存次数、提高速度
缺点:硬件结构比较复杂
实现方法:为了表明Cache是否被修改,需要设置一个更新位(update,污染位dirtybit)。替换时只需将被修改的Cache块内容写入主存高速缓冲存储器Cashe写未命中的处理方法:写访问并不需要Cache块中所有数据。写未命中时,写入的数据是否还要将其读回Cache呢?写分配法(write
allocate,WTWA)先把数据所在的块调入Cache,然后再进行写入。类似读失效的方式,也称fetchonwrite不写分配法(no-write
allocate,WTNWA)直接把数据写入下一级存储器,不将相应的块调入Cache,也称write
around直写策略通常配合不写分配法,回写策略一般采用写分配法高速缓冲存储器CasheMESI协议商业化多处理器系统中,Cache块常利用标签中额外的2位记录其数据共享的4种状态:修改(modified)、唯一(exclusive)、共享
(shared)和无效(invalid);所以也称为MESI协议
修改M:该Cache块已经被修改(与主存不同),而且只在这个Cache中可用
唯一E:该Cache块与对应主存块相同,而且不存在于其它Cache中
共享S:该Cache块与对应主存块相同,但可能存在于其它Cache中
无效I:该Cache块包含的数据无效综合应用实例【例】3个Cache存储器,每个由8个Block组成,每个Block只有一个字,第1个Cache存储器采用全相联映像,第2个Cache存储器采用2路组相联映像,采用LRU替换算法,第3个Cache存储器采用直接相联映像,下面是程序执行过程中的
Block地址流:21,24,25,21,25,17,9,17。请指出在这三种Cache结构中,哪些块是命中的,三种结构的命中率各为多少?【分析】(1)全相联映像,21,24,25,21命中,25命中,17,9,17命中。命中率=3/8。(2)21,24,25,21命中,25命中,17,9,17命中。命中率=3/8(3)对于直接相联映像,21,24,25,21命中,25命中,17,9,17。命中率=2/8虚拟存储器一、虚拟存储的基本概念虚拟存储技术是为了扩大主存的寻址空间而采用的。虚拟存储器是建立在主存与辅存物理结构基础之上,由附加硬件装置以及操作系统存储管理软件组成的一种存储体系。它把主存和辅存的地址空间统一编址,形成一个庞大的存储空间,在这个大空间里,用户可自由编程,完全不必考虑程序在主存中是否装得下,或者放在辅存的程序将来在主存中的实际位置,编好的程序由计算机操作系统装入辅助存储器中,程序运行时,附加的辅助硬件机构和存储管理软件会把辅存的程序一块块自动调入主存由CPU执行或从主存调出,用户感觉到的不再是处处受主存容量限制的存储系统,而是一个容量充分大的存储器。因为实质上CPU仍只能执行调入主存的程序,所以这样的存储体系称为“虚拟存储器”。虚拟存储器虚地址和实地址虚拟存储器的辅存部分也能让用户像内存一样使用,用户编程时指令地址允许涉及到辅存的空间范围,这种指令地址称为“虚地址”(即虚拟地址),或叫“逻辑地址”,虚地址对应的存储空间称为“虚拟空间”,或叫“逻辑空间”。实际的主存储器单元的地址则称为“实地址”(即主存地址),或叫“物理地址”,实地址对应的是“主存空间”,也称物理空间。显然,虚地址范围要比实地址大得多。虚拟存储器主存—辅存层次与主存—Cache层次的比较虚拟存储器和主存Cache存储器是两个不同存储层次的存储体系。但在概念上有不少相同之处:它们都把程序划分为一个个信息块,运行时都能自动地把信息块从慢速存储器向快速存储器调度,信息块的调度都采用一定的替换策略,新的信息块将淘汰最不活跃的旧的信息块,以提高继续运行时的命中率,新调入的信息块需遵守一定的映射关系变换地址后来确定其在存储器的位置。虚拟存储器两个存储体系均以信息块作为存储层次之间基本信息的传递单位,主存—Cache存储器每次传递是定长的的信息块,长度只有几十字节,而虚拟存储器信息块划分方案很多,有页、段等等,长度均在几百字节至几百千字节左右。由主存与辅存组成的虚拟存储器和主存Cache存储器也有很多不同之处。主存Cache存储器采用与CPU速度匹配的快速存储元件来弥补主存和CPU之间的速度差距,而虚拟存储器虽然最大限度地减少了慢速辅存对CPU的影响,但它却弥补了主存的容量不足,具有容量大和程序编址方便的优点。虚拟存储器CPU访问快速Cache存储器的速度比访问慢速主存快5~10倍。虚拟存储器中主存的速度要比辅存快100~1000倍以上。主存Cache存储体系中CPU与Cache和主存都建立了直接访问的通路,一旦在Cache中命中,CPU就直接访问Cache,并同时向Cache调度信息块,从而减少了CPU等待的时间,辅助存储器与CPU之间没有直接通路,一旦在主存中不命中,则只能从辅存调度信息块到主存,因为辅存的速度与CPU的速度差距太大,调度需要毫秒级时间,因此,CPU一般将改换执行另一个程序,等到调度完成后再返回原程序继续工作。虚拟存储器主存—Cache存储器存取信息的过程、地址变换和替换策略全部用硬件实现,所以对各类程序员均是透明的。主—辅层次的虚拟存储器基本上由操作系统的存储管理软件辅助一些硬件进行信息块的划分和主—辅存之间的调度,所以对设计存储管理软件的系统程序员来说,它是不透明的,而对于广大用户,因为虚拟存储器提供了庞大的逻辑空间可以任意使用,对应用程序员来说是透明的。虚拟存储器主存-外存层次的基本信息传送单位段:按程序逻辑划分为可变长的块,称为段页:机械地划分为大小相同的块,称为页面段页:程序按模块分段,段内分页虚拟存储器的管理段式管理:把主存按段分配的存储管理方式优点:段的界线分明,段易于编译、管理、修改和保护,便于多道程序共享缺点:段的长度各不相同,主存空间分配麻烦虚拟存储器页式管理:以定长页面进行存储管理的方式优点:页的起点和终点地址固定,方便造页表,新页调入主存也很容易掌握,比段式空间浪费小缺点:处理、保护和共享都不及段式来得方便段页式管理:分段和分页相结合的存储管理方式优点:综合段式和页式管理方式的特点缺点:需要多次查表过程虚拟存储器二、段式虚拟存储器段是利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立的部分。例如,过程、子程序、数据表、阵列等。段作为独立的逻辑单位可以被其他程序段调用,这样就形成段间连接,产生规模较大的程序。段式虚拟存储器一般用段表来指明各段在主存中的位置,如下图所示。虚拟存储器程序逻辑空间长度实主存空间地址段1段21K2K段33K段1段5段3起始地址装入位长度1011K2035K13K4051K12K段4段
表段51K2K(a)(b)01K3K5K8K-1虚拟存储器段表基地址段号段内地址主存地址段式管理的地址变换:用段表段表基址寄存器虚存地址实存地址+段表(在主存中)+段起址
装入位
段长段号虚拟存储器把主存按段分配的存储管理方式称为段式管理。段式管理系统的优点是段的分界与程序的自然分界相对应;段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享。其缺点是容易在段间留下许多空余的零碎存储空间不好利用,造成浪费。虚拟存储器三、页式虚拟存储器页式管理系统的信息传送单位是定长的页,主存的物理空间也被划分为等长的固定区域,称为页面。新页调入主存也很容易掌握,只要有空白页面就可。可能造成浪费的是程序最后一页的零头,是不能利用的页内空间,它比段式管理系统的空间浪费要小得多。页式管理系统的缺点正好和段式管理系统相反,由于页不是逻辑上独立的实体,所以处理、保护和共享都不及段式来得方便。虚拟存储器在页式虚拟存储系统中,把虚拟空间分成页,主存空间也分成同样大小的页,称为实页或物理页,而把前者称为虚页或逻辑页。假设虚页号为0,1,2,…,m,实页号为0,l,…,l,显然有m>l。可把虚拟地址分为两个字段,高位字段为虚页号,低位字段为页内字地址。虚拟地址到主存实地址的变换是由页表来实现的。在页表中,对应每一个虚存页号有一个表目,表目内容至少要包含该虚页所在的主存页面号,用它作为主存地址的高字段;与虚拟地址的页内地址字段相拼接,就产生完整的实主存地址,据此访问主存。虚拟存储器逻辑页:页式虚拟存储系统中,虚拟空间分成页;物理页:主存空间也分成同样大小的页。虚存地址分为两个字段:高字段为逻辑页号,低字段为页内行地址。实存地址也分两个字段:高字段为物理页号,低字段为页内行地址。逻辑页号页内行地址物理页号页内行地址虚拟存储器页式管理的地址变换如图所示。虚拟存储器通常,在页表的表项中还包括装入位(有效位)、修改位、替换控制位及其他保护位等组成的控制字。如装入位为“1”,表示该虚页已从辅存调入主存;如装入位为“0”,则表示对应的虚页尚未调入主存,如访问该页就要产生页面失效中断,启动输入输出子系统,根据外页表项目中查得的辅存地址,由磁盘等辅存中读出新的页到主存中来。修改位指出主存页面中的内容是否被修改过,替换时是否要写回辅存。替换控制位指出需替换的页等。假设页表是保存在(或已调入)主存储器中,那么,在访问存储器时,首先要查页表,即使页面命中,也得先访问一次主存去查页表,再访问主存才能取得数据,这就相当于主存速度降低了一倍。如果页面失效,要进行页面替换,页面修改,访问主存次数就更多了。虚拟存储器因此,把页表的最活动部分存放在快速存储器中组成快表,这是减少时间开销的一种方法。此外,在一些影响工作速度的关键部分引入了硬件支持。例如,采用按内容查找的相联存储器并行查找,也是可供选择的技术途径。一种经快表与慢表实现内部地址变换的方式如图所示。虚拟存储器虚拟存储器快表由硬件组成,通常称为转换旁路缓冲器(translationlookasidebuffer,简称TLB)。它比页表小得多,一般在16行~64行之间,快表只是慢表(指主存中的页表)的小小的副本。查表时,由虚页号同时去查快表和慢表,当在快表中有此虚页号时,就能很快地找到对应的实页号送入实主存地址寄存器。并使慢表的查找作废,从而就能做到虽采用虚拟存储器但访主存速度几乎没有下降。如果在快表中查不到时,那就要费一个访主存时间查慢表,从中查到实页号送人实主存地址寄存器,并将此虚页号和对应的实页号送入快表,替换快表中某一行内容,这也要用到替换算法。虚拟存储器快表与慢表虚拟存储器【例3】设主存容量64KB,虚存容量1MB,页面大小为512B。写出主存地址格式写出虚拟地址格式页表的长度为多少?画出虚实地址转换示意图【相关知识】虚拟存储器的地址格式和虚实地址转换过程。虚拟存储器【例题解答】(1)主存容量64KB,64KB=216,所以主存地址为16位。主存地址格式为:8
015
9物理页号(7位)页内地址(9位)(2)虚存容量1MB,1MB=220,所以虚存地址为20位。虚拟地址格式为:19
9
8
0虚页面号(11位)页内地址(9位)虚拟存储器(3)每一个虚页面号在页表中有一项,所以页表的长度为211=2048(4)虚实地址转换示意图如图所示:虚拟存储器虚
地页
面
号址页
内
地
址0
0
5
H1
5
0
H页表起址寄存器1
0
0
0
H虚页面号0
0
0
H0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版工业自动化控制系统设备监造与维护合同
- 2025年度网络安全产品保密协议范本
- 2025建筑工程劳务合同样本
- 2025年私人住宅渗水修复合同协议
- 2025企业合同管理指南合同履行与监督实施细则文档模板
- 语文专业知识培训心得
- 红色船员基础知识培训课件
- 红色家书课件带稿
- 企业资产保理融资合同
- 农业智能追溯管理系统合作协议
- 现代设计理论与方法(上)
- 碳纤维材料工程检验批质量验收记录表优质资料
- GB/T 5907.4-2015消防词汇第4部分:火灾调查
- GB 31701-2015婴幼儿及儿童纺织产品安全技术规范
- 健身理论与指导课件讲义
- 浙江省科学作业本2022版四年级上册作业本参考答案
- 2023年中远海运船员管理有限公司招聘笔试题库及答案解析
- 美国共同基金SmartBeta布局及借鉴
- 企业劳动用工法律风险与防范
- 普通逻辑ppt课件(完整版)
- 2022年08月安徽省芜湖市招考大学生科技特派员岗位冲刺题(带答案)
评论
0/150
提交评论