版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 存储系统,3.4 高速存储器,3.4.1 双端口存储器 3.4.2 多模块交叉存储器 3.4.3 相联存储器,高速存储器,主存速度与CPU处理速度存在差距 由于速度上不匹配,相对低速的主存无法为CPU 提供快速的数据服务。如果在一个CPU周期中同时需 要用几个存储器字时,就更显主存速度的不足,这便 限制了CPU高速处理信息能力的发挥。 为了使CPU不至因为等待存储器读写操作的完成而 无事可做,通常需要采取一些加速CPU和存储器之间 有效传输的特殊措施,常用措施如下:,3.4.1双端口存储器,高速存储器,双端口存储器: 是指同一个存储器具有两组相 互独立的读写控制线路,是一种高速工作的存
2、储器。 它提供了两个相互独立的端口,即左端口和右端 口。两个端口分别具有各自的地址线、数据线和控制 线,可以对存储器中任何位置上的数据进行独立的存 取操作。,1.双端口存储器的逻辑结构,高速存储器,双端口存储器IDT7133的介绍,IDT7133为2K 16位的双端口SRAM 两个端口有各自的地址线A10-A0,IO0-IO15,控制线(R/-W,-CE,-OE,-BUSY),对两个端口地址(单元地址)不相同,在两个端口读写 两个端口地址(单元地址)相同,在两个端口读 无冲突时,当任一端口被选中驱动时,就可对整个存储器进行存取,每一个端口都有自己的片选控制和输出驱动控制。,2.无冲突读写控制,
3、高速存储器,无冲突,读,读,无冲突,表3.5无冲突读写控制,高速存储器,问题:当两个端口同时存取存储器同一存储单元时,便发生端口间的写冲突。 对相同地址单元,两边同时写,或一边写而另一边读,则会发生冲突。,3.有冲突的读写控制,高速存储器,有冲突,有冲突,有冲突,仲裁原则: 1.-CE判断: 如果地址匹配且在-CE之前有效,则:片上的控制逻辑在-CEL和-CER之间进行判断来选择端口,谁先有效,谁就优先获得对存储器的读写控制权。 2.地址有效判断: 如果-CE在地址匹配之前先有效,则:片上的控制逻辑在左、右地址间进行判断来选择获得优先权的端口。谁先有效,谁就优先获得对存储器的读写控制权。表3.
4、6,3.有冲突的读写控制,解决方法: 设置-BUSY标志,采用仲裁逻辑。 由芯片上的判断逻辑决定由哪个端口优先进行读写操作,而暂时关闭另一个被延迟的端口。,1.存储器的模块化组织 通常,一个由若干个模块组成的主存储器是线性编址的。这些地址在各模块有两种安排方式:一种是顺序方式,一种是交叉方式。 顺序方式:模块中的地址是连续的。高位地址选择不同的模块,低位地址指向模块内存储字。 某个模块进行存取时,其他模块不工作; 某一模块出现故障时,其他模块可以照常工作; 通过增添模块来扩充存储器容量比较方便。 但由于各模块串行工作,存储器的带宽受到了限制。,3.4.2多模块交叉存储器,高速存储器,地址按顺序
5、分配给各模块,与字扩展相同, 32各单元,共4个模块,每块8个单元。,交叉方式特点: 连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。 地址码的低位字段经过译码选择不同的模块,而高位字段指向相应模块内的存储字。 这种方式对连续字的成块传送可实现多模块流水式并行存取,因而可大大提高存储器的带宽。,高速存储器,每个模块各自以等同的方式与CPU传送信息。CPU同时访问4个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递。是一种并行存储器结构。,2.多模块交叉存储器的基本结构,高速存储器,四模块交叉存储器结构框图,0 1 2 3 4 5 6 7,定量分析: 设模块字长等于数据
6、总线宽度,模块存取一个字的存储周期为T,总线传送周期为,存储器的交叉模块数为m,为了实现流水线方式存取,应当满足: T=m(m=T/称为交叉存取度) 交叉存储器要求其实际模块数m必须大于或等于m,以保证启动某模块后经m时间再次启动该模块时,它的上次存取操作已经完成。这样,连续读取m个字所需的时间为: t1=T+(m-1) 而顺序方式存储器连续读取m个字所需时间为t2=mT。可见,交叉存储器的带宽大大提高了。,高速存储器,m=4的流水线方式存取示意图,【例4】 设:存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传
7、送周期=50ns。问顺序存储器和交叉存储器的带宽各是多少?,高速存储器,【解】: 顺序和交叉存储器连续读出m=4个字的信息总量都是: q=64位4=256位 顺序和交叉存储器连续读出4个字所需的时间分别是: t2=mT=4200ns=800ns=810-7s; t1=T+(m-1) =200ns+350ns=350ns=3.510-7s 顺序存储器和交叉存储器的带宽分别是: W2=q/t2=256(810-7)=32107位/s; W1=q/t1=256(3.510-7)=73107位/s,高速存储器,DRAM存储器读/写周期时,在行选通信号-RAS有效下输入行地址,在列选通信号-CAS有效下
8、输入列地址。 如果是读周期,此位组内容被读出; 如果是写周期,将总线上数据写入此位组。 刷新周期是在RAS有效下输入刷新地址,此地址指示的一行所有存储元全部被再生。A20A3的18位地址用于模块中256K个存储字的选择。A2用模块选择 ,连续的存储字交错分布在两个模块上,偶地址在模块0,奇地址在模块1。,3.二模块交叉存储器举例,高速存储器,二模块交叉存储器方框图,“存储体-块-字”寻址,DRAM存储器需要逐行定时刷新,而且,DRAM芯片 的读出是一种破坏性读出,因此在读取之后要立即按 读出信息予以充电再生。 这样,若CPU先后两次读取 的存储字使用同一RAS选通信号的话,CPU在接收到第 一
9、个存储字之后必须插入等待状态,直至前一存储字 再生完毕才开始第二个存储字的读取。 由于采用m=2的交叉存取度的成块传送,两个连 续地址字的读取之间不必插入等待状态(无等待存 取)。,高速存储器,无等待状态成块存取示意图,按内容寻址的存储器,3.4.3相联存储器 ,地址 存储项(记录) 字段,1.相联存储器的基本原理 相联存储器是指其中任一存储项内容作为地址来存取的存储器。选用来寻址存储器的子段叫做关键字。 存放在CAM中的项可看成具有下面的格式: KEY,DATA KEY是地址,DATA是被读写信息。 CAM的基本原理:是把存储单元所存内容的某一部分作为检索项(即KEY项),去检索该存储器,并
10、对存储器中与该检索项符合的存储单元内容进行读出或写入。,3.4.3相联存储器CAM ,高速存储器,相联存储器的组成 检索寄存器 屏蔽寄存器 符合寄存器 比较线路 代码寄存器 存储体,检索寄存器:用来存放检索字,其位数和相联存储器的存储单元位数相等。 屏蔽寄存器:用来存放屏蔽码,其位数和检索寄存位数相同。 符合寄存器:用来存放按检索项内容检索存储体中与之符合的单元地址,其位数等于相联存储器的存储单元位数,每一位对应一个存储单元,位的序数即为相联存储器的单元地址。,2.相联存储器的组成,高速存储器, 比较线路:把检索项和从存储体中读出的所有单元内容的相应位进行比较,如果有某个存储单元和检索项符合,
11、就把符合寄存器的相应位置“1”,表示该字已被检索 。 代码寄存器:用来存放存储体中读出的代码,或者存放向存储体中写入的代码。 存储体:由高速半导体存储器构成,以求快速存取。 在计算机系统中,相联存储器主要用于存放需要快速查找的内容,如:虚拟存储器中存放分段表、页表和快表等;在高速缓冲存储器中,相联存储器作为存放cache的行地址之用。,高速存储器,3.5 cache存储器,3.5.1 cache基本原理 3.5.2 主存与cache的地址映射 3.5.3 替换策略 3.5.4 cache的写操作策略 3.5.5 奔腾PC机的cache,cache存储器,存储体系的形成和发展 容量的要求-虚拟存
12、储 速度要求-从通用寄存器发展到Cache,存储系统: 两个或两个以上速度、容量和价格不相同的存储器用硬件、软件或硬件与软件结合的方法连成系统。,性能:速度、容量、每位价格 存储系统设计目标 希望访问速度近似等于存储周期中最小者 容量与最大者相近 每位价格接近最便宜者,存储体系的基本要求和性能评价,存储层次的设计依据(局部性原则) 程序的局部性(Locality)原则 在一段时间内,典型程序所需的地址趋向于集中在一个较小的范围内,在给定的主存内容被处理后,下一个要处理的指令或数据极大可能的在该主存单元附近区域,即程序的执行时的地址不是随机分布的,而是自然的簇集成“块”和“页”。,空间的局部性(
13、Spatial locality) 当处理机访问某个单元时,该单元附近的存储单元最有可能被随后访问。 时间的局部性(Temporal locality) 处理机访问某个单元后,该单元最有可能再次被访问。 处理机在某段时间经常使用的空间范围被称作工作集合(working set)。在几乎所有的程序中,工作集合的改变是非常缓慢的,有时甚至是不变的 。,3.5.1 cache基本原理,1.cache的功能 cache是介于CPU和主存之间的小容量存储器,存取速度比主存快(一般可达510倍以上)。它能高速地向CPU提供指令和数据,加快程序的执行速度。 它是为了解决CPU和主存之间速度不匹配而采用的一项
14、重要技术。,cache存储器,cache与CPU的关系,为追求高速,包括管理在内的全部功能由硬件实现。对程序员是透明的。,2. cache的基本原理,CPU与cache之间的数据交换以字为单位,cache与主存之间的数据交换是以块为单位。一个块由通常若干定长的字组成。,cache存储器,2. cache的基本原理,基本原理:当CPU要读取主存中一个字时,将内存地址同时发给cache和主存。cache控制逻辑依据地址,判断该字当前是否已在 cache中: 若是,将此字立即传送给CPU,无需再访问主存(让主存访问失效); 若非,用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的数据块
15、从主存读出并装入到cache中,将Cache中较旧的内容(块)替换掉。 替换控制由管理cache使用情况的硬件逻辑电路来实现,最常用的替换算法为LRU。,cache原理图,存放Cache地址,Cache16字的容量,3.cache的命中率,增加cache的目的,就是希望在性能上使主存的平均读出时间尽可能接近cache的读出时间。因此,cache的命中率应接近于1。由程序访问的局部性原理可知,这是可能的。 在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:,(3.4),cache存储器,若tc表示命中时的cache访问时间,tm表示未命
16、中时的主存访问时间,(1-h)表示未命中率,则cache/主存系统的平均访问时间ta为: ta=htc+(1-h)tm (3.5) 设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有:,cache存储器,为提高访问效率,命中率h越接近1越好,r值以510为宜,不宜太大(防止Cache访问失效而造成过大的时间损耗)。 命中率h与程序的行为、cache的容量、组织方式、块的大小有关。,【例5】CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间
17、。 【解】: h=Nc/(Nc+Nm)=1900/(1900+100)=0.95 r=tm/tc=250ns/50ns=5 e=1/(r+(1-r)h)=1/(5+(1-5)0.95)=83.3% ta=tc/e=50ns/0.833=60ns 或者,ta=htc+(1-h)tm=60ns,cache存储器,3.5.2.主存与cache的地址映射,cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。 地址映射: 即是应用某种方法把主存地址定位到cache中。 地址映射方式: 全相联、直接、组相联。,3.5.2.主存与cache的地址映射,cach
18、e的数据块大小称为行,用Li表示,其中i=0,1,m-1,共有m=2r行。 主存的数据块大小称为块,用Bj表示,其中j=0,1,n-1,共有n=2s块。 行与块是等长的,每个块(行)由k=2w个连续的字组成,字是CPU每次访问存储器时可存取的最小单位。,1.全相联映射方式,主存中一个块的地址与块的内容一起存于cache的行中,其中块地址存于cache行的标记部分中。 优点:是可使主存的一个块直接拷贝到cache中的任意一行上,非常灵活。 缺点:是比较器电路难于设计和实现,尤其当Cache有一定容量时,查找某块(行)比较麻烦。因此只适合于小容量cache采用。,cache存储器,全相联映射的示意
19、图,最多可能有256块与该行相映射,cache存储器,CAM,Cache的该行保存主存块的块号,全相联映射示意图,2.直接映射方式,这也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。 cache的行号i和主存的块号j有如下关系: i=j mod m(m为cache中的总行数),cache存储器,直接映射方式的示意图演示,最多可能有32块与该行相映射,cache存储器,(主存的块号j) mod (cache的行数m),(主存的块号j) (cache的行数m) 的商,记录(主存的块号j) mod (cache的行数m)相同的所有的tag,直接映射方式的示意图,直接映
20、射的检索过程: CPU送来主存地址后,首先用r位行号找到Cache中某一行,然后用标记与主存地址的标记部分在比较器中进行比较。 如果符合,则命中,可根据字地址访问Cache中的字; 如果不符合,则未命中,就要从主存读入所要求的字。 优点:硬件简单,成本低。 缺点:每个主存块只有一个固定的行位置可存放,容易产生冲突和Cache空间使用效率的降低。因此一般只适合在大容量cache中采用。,3.组相联映射方式,这种方式是前两种方式的折衷方案。 基本思想: 将cache分成u组,每组v行。主存块与Cache组之间采用直接映射方式,而每个组内部的块、行之间则采用全相联映射方式,即主存块可以存放到固定组的
21、任一行中。 Cache被分为:u(组)v(行) cache组号q与主存块号j的关系为: qj (mod u),cache存储器,3.组相联映射方式,组相联映射方式中的每组行数v一般取值较小,常称之为V路组相联cache,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,可以减少冲突。,组相联映射的示意图演示,(主存的块号j) mod (cache的组数u) 2d=u,(主存的块号j) (cache的组数u) 的商,3.5.3.替换策略,cache工作原理要求它尽量保存最新数据,因此,必然要 产生新、旧内容的替换问题。 对直接映射的cache来说,只要把此特定位置上的原主存
22、块换出cache即可。 对全相联和组相联cache来说, 就要从允许存放新主存块 的若干特定行中选取一行换出。 常用的替换算法如下图所示:,cache存储器,最不经常使用(Least Frequently Used,LFU)算法,将Cache中一段时间内被访问次数最少的行数据换出。每行设置一个计数器,从0开始计数,每访问一次,被访行的计数器增1。当需替换时,将计数值最小的行换出,同时将这些行的计数器都清零。 这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。,cache存储器,近期最少使用(Least Recently Used,LRU)算法,LRU算法将
23、近期内长久未被访问过的行换出。每行也设置一个计数器,cache每命中一次,命中行计数器清0,其它各行计数器增1。当需要替换时,将计数值最大的行换出。 这种算法保护了刚拷贝到cache中的新数据行,有较高的命中率。 随机替换 随机替换策略从特定的行位置中随机地选取一行换出。在硬件上容易实现,且速度也比前两种策略快。缺点是降低了命中率和cache工作效率。,cache存储器,3.5.4 cache的写操作策略,注意到:当CPU对cache有写入操作时,就可能会更改cache的内容。而Cache内容的“原件”保留在主存中。因为数据真正的保存地点是在主存中,Cache所保存的内容只是一部分主存内容的镜
24、象而已。所以,应当采用方法,使cache内容和主存内容保持一致,Cache的写操作策略就是解决这个问题。,cache存储器,写回法(Write Back,WB),当CPU写cache命中时,只修改cache的内容,而 不立即写入主存;只有当此行被换出时才写回主存。 若写未命中,则将此块整个拷贝到cache后对其 进行修改。 这种方法减少了访问主存的次数,但是存在不一 致性的隐患。 实现这种方法时,每个cache行必须配置一个修 改位,以反映此行是否被CPU修改过。,cache存储器,全写法(Write Through,WT),当写cache命中时,cache与主存同时发生写修改,因而较好地维护
25、了cache与主存内容的一致性。 当写cache未命中时,直接向主存进行写入。cache中每行无需设置一个修改位以及相应的判断逻辑。 缺点是降低了cache的功效。,cache存储器,在写Cache 不命中的情况下,是否把所写字在内的块读入Cache? 读入时可采用两种方法。 “不按写分配法WTNWA”: 写Cache不命中,只把所要写的字写入主存,而包括所写的字在内的块不写入Cache。 “按写分配法WTWA”: 写Cache未命中,把所要写的字写入主存,而包括所写的字在内的块写入Cache。,写一次法,(基于写回法并结合全写法的写策略) 写命中与写未命中的处理方法与写回法基 本相同,只是第
26、一次写命中时要同时写入主存。 这便于维护系统全部cache的一致性。,cache存储器,3.5.5 奔腾PC机的cache,奔腾PC机采用两级cache结构: 安装在主板上的2级cache(L2),512KB,采用2路组相联映射。每行32B、64B、128B。 集成在CPU内的1级cache(L1),16KB,采用2路组相联映射。每行32B。 L1是L2的子集。 CPU中的L1分成: 8KB的指令cache,是只读的。 8KB的数据cache,是随机读写的。 有利于CPU高速执行程序。,cache存储器,L1中的指令cache是只读的,没有写操作,不存在一致性问题,因此只讨论数据cache。
27、数据cache采用2路组相联,分成128组,每组2行,每行32字节(8个双字)。 容量:128*2*32B=8KB。, 数据cache采用2路组相联结构,采用LRU替换算法,一组两行共用一个LRU二进制位。,内存地址,一组两行, 数据cache工作方式受CPU控制寄存器CR0中CD和NW位组合状态控制,如表所示。 (其中CD=1,NW=1时复位后状态,而CD=0,NW=0时最佳使用状态),CPU与外部数据交换时,存储器读写总线周期主要有两类: 一类是256位猝发式传送,用于L1的行填入和行写出,一次完成整行的填入或写出。 另一类是不经L1的64位传送 ,此时CHACE仅为高电平,称为非超高速缓
28、存式传送。,cache存储器,L2级cache采用的是写回法,L1级数据cache采用的是写一次法。 为了维护cache的一致性,L1和L2均采用MESI协议,即要求每个cache行有两个状态位,表示四种状态位,用以描述该行当前所处于的状态,从而决定对它的读/写操作行为。,Cache每行有四种状态位:,修改态:此行已被修改(脏行),为此Cache专有; 专有态:此行与主存相同(干净行),其它Cache无; 共享态:此行与主存相同(干净行),其它Cache有; 无效态:此行已作废(空行)。,总之,L2级cache的内容是主存的子集,而L1级又是L2级的子集。L2负责整个系统的cache/主存一致
29、性,L1负责响应L2,与L2一起维护L1/L2两个cache的一致性,保证三级存储系统的一致性。,两级cache和主存之间的工作环境方框图,3.6 虚拟存储器,3.6.1 虚拟存储器的基本概念 3.6.2 页式虚拟存储器 3.6.3 段式虚拟存储器 3.6.4 段页式虚拟存储器 3.6.5 替换算法 3.6.6 虚拟存储器实例,虚拟存储器,3.6.1 虚拟存储器的基本概念,1.什么是虚拟存储器 虚拟存储器: 是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。 它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。 虚拟存储器不仅解决了存储容量和存取速度的矛盾,而且也
30、是管理存储设备的有效方法。 特点:它指的是主存-外存层次。以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。,虚拟存储器,虚拟存储器中关于地址与空间的若干名词:,物理地址(又称实地址):(对应主存物理空间) 由CPU地址引脚送出,用于访问主存的地址。 虚拟地址(又称虚地址):(对应主存逻辑空间)由编译程序生成的,是程序的逻辑地址。工作在虚拟地址模式下的CPU理解这些虚拟地址,并将他们转换成物理地址。若虚拟地址长为n位,则虚拟地址空间的大小可用2n来表示。因虚拟存储器的内容要保存在磁盘上,故其地址空间的大小实际上受到辅助存储器容量的限制。,高速存储器,主存-外存层次和cache-主
31、存层次用的地址变换映射方法和替换策略是相同的,都基于程序局部性原理。 遵循的原则: 把程序中最近常用的部分驻留在高速存储器中。 一旦这部分变得不常用了,把它们送回到低速的存储器中。 这种换入换出是由硬件或操作系统完成的,对用户是透明的。 力图使存储系统在性能上接近高速存储器、在价格上接近低速存储器。,高速存储器,Cache/主存存储系统与主存/外存的存储系统的 主要区别: “Cache+主存”的存储结构,主要目的是解决主 存的工作速度问题;而“主存+外存”的存储结构,则 是主要解决主存的存储容量问题。 在虚拟存储系统中,主存未命中的性能损失要 远大于cache系统中的Cache未命中的损失。
32、(因为外存与主存的速度差异达近千倍,而主存 与Cache的速度差异仅10倍左右) 因此两种存储器的管理方案的实施细节也有差异。,高速存储器,虚拟存储器与Cache的管理方式的区别,1.替换策略和更新策略,Cache:硬件控制、组相联、全写法、LRU,虚存: OS控制、全相联、写回法、LRU,2.透明性,Cache:对系统程序员透明;,虚存: 对系统程序员不透明,对用户透明。,2.主存-外存层次的基本信息传送单位,主存-外存层次的基本信息传送单位可采 用几种不同的方案:段、页或段页。,高速存储器,段式:按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。把段作为基本信息单位在主存-外
33、存之间传送和定位。每段都有名称、段起点、段长。 段式管理:把主存按段分配的存储管理方式。,高速存储器,段式虚拟存储器的优缺点: 优点: 段的界线分明,就是程序的自然分界。 段易于编译、管理、修改和保护。 便于多道程序共享。 某些类似的段(如堆栈,队例)具有可变长度,允许自由调度,以便有效利用主存空间。 缺点:由于段的长度各不相同,段的起点和终点不定,给主存空间分配带来麻烦。容易在段间留下许多空余的零碎主存空间,不好利用,造成浪费。,页式:是主存物理空间中划分出来的等长的固定区域(又称为页面)。 页式管理:系统的基本信息传送单位是定长的页。 优点:是页面的起点和终点地址是固定的,方便造页表,新页
34、调入主存也很容易掌握,比段式空间浪费小,唯一可造成浪费的是程序最后一页的零头的页内空间。 缺点:处理、保护和共享都不及段式来得方便。,高速存储器,段页式:这种管理是采用分段和分页结合的方法。 程序按模块分段,段内再分页,进入主存以页为基本信息传送单位,用段表和页表进行两级定位管理。 优点:综合了段式和页式管理方式的特点。 缺点:需要多次查表过程。 (下面依次介绍页式、段式、段页式虚拟存储器的管理方法),高速存储器,3.6.2 页式虚拟存储器,逻辑页:页式虚拟存储系统中,虚拟空间分成页; 物理页:主存空间也分成同样大小的页。 虚存地址分为两个字段:高字段为逻辑页号,低字段为页内行地址。 实存地址
35、也分两个字段:高字段为物理页号,低字段为页内行地址。,高速存储器,虚拟存储器页式管理的地址变换,页表多大?,工作原理 CPU提供虚地址:逻辑页号+页内地址 访问页表: 页表基址寄存器+逻辑页号,查表 若页面命中: 主存地址:物理页号+页内地址 若未命中: 启动I/O系统,从外存调入主存。,页表一般放在主存中,为了避免由于需要频繁地查页表而造成对主存访问次数的增多, 通常把页表的最活跃部分存放在由高速存储器组成的快表中。 快表与慢表实现内部地址变换的方式演示。 快表由硬件组成,比页表小得多,查表时,由逻辑页号同时去查快表和慢表,当在快表中有此逻辑页号时,就能很快地找到对应的物理页号送入实主存地址
36、寄存器,从而做到虽采用虚拟存储器但访主存速度几乎没有下降。,高速存储器,由硬件组成,是慢表的一个小小的副本,3.6.3 段式虚拟存储器,在段式虚拟存储系统中,段是按照程序的逻辑结构划分的,各个段的长度因程序而异。 虚拟地址: 由段号和段内地址组成, 为了把虚拟地址变换成实主存地址,需要一个段表。地址变换方法与页式管理方法类似。 段表也是一个段,可以存在外存中,但一般也是驻留在主存中.,高速存储器,段式虚拟存储器虚存地址向实存地址的变换过程,3.6.4 段页式虚拟存储器,段页式虚拟存储器: 是将段式虚拟存储器和页式虚拟存储器结合的一种管理方式。把程序按逻辑单位分段以后,再把每段分成固定大小的页。
37、 程序对主存的调入调出按页面进行,它又可按段实现共享和保护,兼备页式和段式的优点。 缺点: 是在映象过程中需要多次查表。 在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。段表中的每个表目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息。由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息。,高速存储器,如果有多个用户在机器上运行,多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。 虚拟地址格式:,高速存储器,【例6】 假设有三道程序(用户标志号为A,B,),其基址寄存器内容分别为SA,SB,SC ,逻辑地址到物理地址的变换过程见
38、演示。在主存中,每道程序都有一张段表,A程序有4段,C程序有3段。每段应有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。请说明虚实地址变换过程。,高速存储器,段页式虚拟存储系统的地址变换过程,【解】:地址变换过程如下: 根据基号C执行SC加1(段号)操作,得到段表相应行地址,其内容为页表的起始地址。 执行b+2(页号),得到物理页号的地址,其内容即为物理页10。 物理页号与页内地址拼接即得物理地址。 假如计算机只有一个基址寄存器,基号可不要,多道程序切换时,操作系统修改基址寄存器内容。 可以看出,段页式虚拟存储系统由虚拟地址向主存地址的变换至少需要查两次表。,
39、可以看出,段页式虚拟存储系统由虚拟地址向主存地址的变换至少需要查两次表。 段表、页表构成表层次。 当一个页表的大小超过一个页面的大小时,页表可能需要分为几个页,分存于几个不连续的主存页面中,这时需要一个新页(即页目录表)存放页表的起始地址。从而形成二级页表层次:页目录表、页表。,例:在页式虚拟存储器中,若主存容量为16MB,页面容量为4KB,程序地址空间为1G,问虚页号有多少位?页表长度为多少?页内地址有多少位?,解:由于页面容量为4KB=212B,程序地址空间=1GB=230B 故虚页号字段位数=30-12=18 页表长度=218行,页内地址段为12位数。,3.6.5 替换算法,虚拟存储器中
40、的页面替换策略和cache中的行替换策略有很多相似之处,但有三点显著不同: 缺页至少要涉及一次磁盘存取,读取所缺的页,缺页使系统蒙受的损失要比cache未命中大得多。 页面替换由操作系统软件实现。 页面替换的选择余地很大,属于一个进程的页面都可替换。,高速存储器,3.6.5 替换算法,虚拟存储器中的替换策略一般采用近期最少使用(LRU)算法、最不经常使用(LFU)算法、先进先出(FIFO)算法,或将两种算法结合起来使用。 对于将被替换出去的页面,假如该页调入主存后没有被修改,就不必进行处理,否则就把该页重新写入外存,以保证外存中数据的正确性。为此,在页表的每一行应设置一修改位。,存储管理部件M
41、MU: 实现逻辑地址地址到物理地址的转换,并在页面失效时进入操作系统环境。由硬件实现MMU,【例7】假设主存只有a,b,c三个页框,组成a进c出的FIFO队列,进程访问页面的序列是0,1,2,4,2,3,0,2,1,3,2号。若采用FIFO算法,FIFO算法+LRU算法,用列表法分别求两种替换策略情况下的命中率。 【解】:求解表格如下所示:,高速存储器,调入,调入,调入,替换,替换,替 换,替 换,替 换,替 换,3.6.6 虚拟存储器实例,1.奔腾PC的虚地址模式 奔腾PC的存储管理部件MMU包括: 分段部件SU和分页部件PU两部份 可允许SU,PU单独工作或同时工作。,高速存储器,分段不分
42、页模式: 虚拟地址由一个16位的段参照和一个32位的偏移组成。段参照的最低两位与保护机构打交道,高14位用于指定具体的段。 一个进程拥有的最大虚拟地址空间是214+32= 246=64TB。分段部件SU将二维的分段虚拟地址转换成一维的32位线性地址,也就是主存的物理地址。 优点是无需访问页目录和页表,地址转换速度快。对段提供的一些保护定义可以一直贯通到段的单个字节级。,高速存储器,不分段分页模式:这种模式下SU不工作,只是分页部件PU工作。程序也不提供段参照,寄存器提供的32位地址被看成是由页目录、页表、页内偏移三个字段组成。由PU完成虚拟地址到物理地址的转换。这种模式减少了虚拟空间,但能提供
43、保护机制,比分段模式具有更大的灵活性。,高速存储器,分段分页模式:在分段基础上增加分页存储管理的模式。即将SU部件转换后的32位线性地址看成由页目录、页表、页内偏移三个字段组成,再由PU部件完成两级页表的查找,将其转换成32位物理地址。 一个进程可以访问的最大虚拟地址空间是64TB兼顾了分段和分页两种方式的优点。,2.保护模式的分页地址转换,高速存储器,奔腾PC有两种分页方式: 页面(页框)大小为4KB的分页方式,使用二级页表(页目录表和页表),这是从80486继承的分页方式。 页面(页框)大小为4MB的分页方式,使用一级页表,只进行一次主存访问,地址转换过程加快了。,在页面(页框)大小为4M
44、B的分页方式下,32位线性地址分为高10位的页面和低22位的页内偏移两个字段 。 页表项的I位指示页面大小,P位为出现位,A位为访问过位,D位为修改过位.RW位用于读/写控制,US位用于用户/监督控制,PCD位用于页cache禁止的控制,PWT位用于页全写法的控制。,奔腾机4MB分页方式地址转换,3.7 存储保护,高速存储器,多道程序及多处理机系统导致必须进行存储器保护。, 存储区域保护: 界限REG保护、页表、段表保护、键式保护、环状保护, 访问方式保护: R、W、E,所有保护均由硬件实现。,3.7.1 存储区域保护,当多个用户共享主存时,应防止由于一个用户程序出错而破坏其他用户的程序和系统软件,以及一个用户程序不合法地访问不是分配给它的主存区域。 在虚拟存储系统中,通常采用页表保护、段表保护和键式保护方法。,高速存储器,1. 页表保护和段表保护,每个程序的段表和页表本身都有自己的保护功能。每个程序的虚页号是固定的,经过虚地址向实地址变换后的实存页号也就固定了。那么不论虚地址如何出错, 也只能影响到相对的几个主存页面。不会侵犯其他程序空间。段
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 年沈阳市二年级语文秋季开学学情检测 - 提升卷(人教版)
- 考评标准及制度内容
- 2025年庐山文旅学院高职单招职业技能考试模拟试卷带答案详解(新)
- 2025年潍河数字职业学院高职单招职业适应性测试考试题库1套附答案详解
- 2027年河南鹿邑职业学院单招综合素质考试题库及参考答案详解【夺分金卷】
- 2025年河南省信阳市单招综合素质考试模拟试卷(综合卷)附答案详解
- 2024年重庆水利电力职院单招职业技能考试题库含完整答案详解(名师系列)
- 2027年绵阳江油技师学院高职单招职业技能考试题库含答案详解【夺分金卷】
- 2024年雪峰职业学院高职单招职业技能考试题库有完整答案详解
- 2025年拉脊专修学院高职单招职业技能考试模拟试卷及参考答案详解【培优A卷】
- 2026江苏镇江市总工会集中招录工会社会工作者11人笔试参考题库及答案详解
- 2026年江苏省保安员考试试题带解析含完整答案
- 2025-2026学年小学英语的教学活动设计
- 闪蒸罐设计计算书
- 中小学教师超课时补贴与临时代课费管理办法(2026年修订)
- 《黑龙江省超低能耗建筑评审信息表》
- 护理差错事故的根因分析(RCA)
- 2025年贵州锦麟化工有限责任公司公开招聘13人笔试历年参考题库附带答案详解
- 成都湔江投资集团有限公司2026年春季第一批次招聘考试参考题库及答案解析
- 2026公需课人工智能赋能制造业高质量发展试题及答案.backup
- 药物检测滥用制度
评论
0/150
提交评论