版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 存储系统,3.5 并行存储器,由于CPU和主存储器之间在速度上是不匹配的,这种情况便成为限制高速计算机设计的主要问题。为了提高CPU和主存之间的数据传输率,除了主存采用更高速的技术来缩短读出时间外,还可以采用并行技术的存储器。,高速存储器,双端口存储器: 是指同一个存储器具有两组相 互独立的读写控制线路,是一种高速工作的存储器。 它提供了两个相互独立的端口,即左端口和右端 口。两个端口分别具有各自的地址线、数据线和控制 线,可以对存储器中任何位置上的数据进行独立的存 取操作。,1.双端口存储器的逻辑结构,高速存储器,双端口存储器IDT7133的介绍,IDT7133为2K 16位的双端口
2、SRAM 两个端口有各自的地址线A10-A0,IO0-IO15,控制线(R/W,CE,OE,BUSY),当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。 当任一端口被选中驱动时,就可对整个存储器进行存取,每一个端口都有自己的片选控制(CE)和输出驱动控制(OE)。读操作时,端口的OE(低电平有效)打开输出驱动器,由存储矩阵读出的数据就出现在I/O线上。,2.无冲突读写控制,高速存储器,表3.5无冲突读写控制,高速存储器,有冲突读写控制 当两个端口同时存取存储器同一存储单元时,便发生读写冲突。为解决此问题,特设置了BUSY标志。在这种情况下,片上的判断逻辑可以决定对哪个端口
3、优先进行读写操作,而对另一个被延迟的端口置BUSY标志(BUSY变为低电平),即暂时关闭此端口。,仲裁原则: 1.CE判断: 如果地址匹配且在CE之前有效,则:片上的控制逻辑在CEL和CER之间进行判断来选择端口,谁先有效,谁就优先获得对存储器的读写控制权。 2.地址有效判断: 如果CE在地址匹配之前先有效,则:片上的控制逻辑在左、右地址间进行判断来选择获得优先权的端口。谁先有效,谁就优先获得对存储器的读写控制权。,3.有冲突的读写控制,解决方法: 设置BUSY标志,采用仲裁逻辑。 由芯片上的判断逻辑决定由哪个端口优先进行读写操作,而暂时关闭另一个被延迟的端口。,1.存储器的模块化组织 通常,
4、一个由若干个模块组成的主存储器是线性编址的。这些地址在各模块有两种安排方式:一种是顺序方式,一种是交叉方式。 顺序方式:模块中的地址是连续的。高位地址选择不同的模块,低位地址指向模块内存储字。 某个模块进行存取时,其他模块不工作; 某一模块出现故障时,其他模块可以照常工作; 通过增添模块来扩充存储器容量比较方便。 但由于各模块串行工作,存储器的带宽受到了限制。,3.4.2多模块交叉存储器,高速存储器,一、顺序方式 如,M0M3共四个模块,则每个模块8个字 顺序方式 M0:07 M1:815 M2:1623 M3:2431 5位地址组织如下: X X X X X 高位选模块,低位选块内地址,地址
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的流水线方式存取示意图,【例5】 设:存储器容量为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.6 cache存储器,3.6.1 cache基本原理 3.6.2 主存与cache的地址映射 3.6.3 替换策略 3.6.4 cache的写操作策略 3.6.5 奔腾PC机的cache,cache存储器,存储体系的形成和发展 容量的要求-虚拟存储 速度要求-从通用寄存器发展到Cache,存储系统: 两个或两个以上速度、容量和价格不相同的存储器用硬件、软件或硬件与软件结合
10、的方法连成系统。,性能:速度、容量、每位价格 存储系统设计目标 希望访问速度近似等于存储周期中最小者 容量与最大者相近 每位价格接近最便宜者,存储体系的基本要求和性能评价,存储层次的设计依据(局部性原则) 程序的局部性(Locality)原则 在一段时间内,典型程序所需的地址趋向于集中在一个较小的范围内,在给定的主存内容被处理后,下一个要处理的指令或数据极大可能的在该主存单元附近区域,即程序的执行时的地址不是随机分布的,而是自然的簇集成“块”和“页”。,空间的局部性(Spatial locality) 当处理机访问某个单元时,该单元附近的存储单元最有可能被随后访问。 时间的局部性(Tempor
11、al locality) 处理机访问某个单元后,该单元最有可能再次被访问。 处理机在某段时间经常使用的空间范围被称作工作集合(working set)。在几乎所有的程序中,工作集合的改变是非常缓慢的,有时甚至是不变的 。,3.5.1 cache基本原理,1.cache的功能 cache是介于CPU和主存之间的小容量存储器,存取速度比主存快(一般可达510倍以上)。它能高速地向CPU提供指令和数据,加快程序的执行速度。 它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。,cache存储器,cache与CPU的关系,为追求高速,包括管理在内的全部功能由硬件实现。对程序员是透明的。,2.
12、cache的基本原理,CPU与cache之间的数据交换以字为单位,cache与主存之间的数据交换是以块为单位。一个块由通常若干定长的字组成。,cache存储器,2. cache的基本原理,基本原理:当CPU要读取主存中一个字时,将内存地址同时发给cache和主存。cache控制逻辑依据地址,判断该字当前是否已在 cache中: 若是,将此字立即传送给CPU,无需再访问主存(让主存访问失效); 若非,用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的数据块从主存读出并装入到cache中,将Cache中较旧的内容(块)替换掉。 替换控制由管理cache使用情况的硬件逻辑电路来实现,最
13、常用的替换算法为LRU。,cache原理图,存放Cache地址,Cache16字的容量,相联存储器,按内容寻址的存储器 把存储单元所存内容的某一部分作为检索项,去检索该存储器,并对存储器中与该检索项符合的存储单元内容进行读出或写入,3.cache的命中率,增加cache的目的,就是希望在性能上使主存的平均读出时间尽可能接近cache的读出时间。因此,cache的命中率应接近于1。由程序访问的局部性原理可知,这是可能的。 在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:,(3.4),cache存储器,若tc表示命中时的cache访问时
14、间,tm表示未命中时的主存访问时间,(1-h)表示未命中率,则cache/主存系统的平均访问时间ta为: ta=htc+(1-h)tm (3.5) 设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有:,cache存储器,为提高访问效率,命中率h越接近1越好,r值以510为宜,不宜太大(防止Cache访问失效而造成过大的时间损耗)。 命中率h与程序的行为、cache的容量、组织方式、块的大小有关。,【例6】CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效
15、率和平均访问时间。 【解】: 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.6.2.主存与cache的地址映射,cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。 地址映射: 即是应用某种方法把主存地址定位到cache中。 地址映射方式: 全相联、直接、组相联。,3.6.2.主存与cache的地
16、址映射,cache的数据块大小称为行,用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存储器,
17、全相联映射的示意图,最多可能有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,直接映射方
18、式的示意图,直接映射的检索过程: CPU送来主存地址后,首先用r位行号找到Cache中某一行,然后用标记与主存地址的标记部分在比较器中进行比较。 如果符合,则命中,可根据字地址访问Cache中的字; 如果不符合,则未命中,就要从主存读入所要求的字。 优点:硬件简单,成本低。 缺点:每个主存块只有一个固定的行位置可存放,容易产生冲突和Cache空间使用效率的降低。因此一般只适合在大容量cache中采用。,3.组相联映射方式,这种方式是前两种方式的折衷方案。 基本思想: 将cache分成u组,每组v行。主存块与Cache组之间采用直接映射方式,而每个组内部的块、行之间则采用全相联映射方式,即主存块
19、可以存放到固定组的任一行中。 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来说,只要把此特
20、定位置上的原主存 块换出cache即可。 对全相联和组相联cache来说, 就要从允许存放新主存块 的若干特定行中选取一行换出。 常用的替换算法如下图所示:,cache存储器,最不经常使用(Least Frequently Used,LFU)算法,将Cache中一段时间内被访问次数最少的行数据换出。每行设置一个计数器,从0开始计数,每访问一次,被访行的计数器增1。当需替换时,将计数值最小的行换出,同时将这些行的计数器都清零。 这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。,cache存储器,近期最少使用(Least Recently Used,LRU)
21、算法,LRU算法将近期内长久未被访问过的行换出。每行也设置一个计数器,cache每命中一次,命中行计数器清0,其它各行计数器增1。当需要替换时,将计数值最大的行换出。 这种算法保护了刚拷贝到cache中的新数据行,有较高的命中率。 随机替换 随机替换策略从特定的行位置中随机地选取一行换出。在硬件上容易实现,且速度也比前两种策略快。缺点是降低了命中率和cache工作效率。,cache存储器,3.5.4 cache的写操作策略,注意到:当CPU对cache有写入操作时,就可能会更改cache的内容。而Cache内容的“原件”保留在主存中。因为数据真正的保存地点是在主存中,Cache所保存的内容只是
22、一部分主存内容的镜象而已。所以,应当采用方法,使cache内容和主存内容保持一致,Cache的写操作策略就是解决这个问题。,cache存储器,写回法(Write Back,WB),当CPU写cache命中时,只修改cache的内容,而 不立即写入主存;只有当此行被换出时才写回主存。 若写未命中,则将此块整个拷贝到cache后对其 进行修改。 这种方法减少了访问主存的次数,但是存在不一 致性的隐患。 实现这种方法时,每个cache行必须配置一个修 改位,以反映此行是否被CPU修改过。,cache存储器,全写法(Write Through,WT),当写cache命中时,cache与主存同时发生写修
23、改,因而较好地维护了cache与主存内容的一致性。 当写cache未命中时,直接向主存进行写入。cache中每行无需设置一个修改位以及相应的判断逻辑。 缺点是降低了cache的功效。,cache存储器,在写Cache 不命中的情况下,是否把所写字在内的块读入Cache? 读入时可采用两种方法。 按写不分配法“WTNWA(WriteThrough-with.NO-Write-Allocate) ”: 写Cache不命中,只把所要写的字写入主存,而包括所写的字在内的块不写入Cache。 “按写分配法WTWA”: 写Cache未命中,把所要写的字写入主存,而包括所写的字在内的块写入Cache。,写一
24、次法,(基于写回法并结合全写法的写策略) 写命中与写未命中的处理方法与写回法基 本相同,只是第一次写命中时要同时写入主存。 这便于维护系统全部cache的一致性。,cache存储器,3.6.5 Pentium 4 的Cache,主要包括四个部分: 取指/译码单元:顺序从L2cache中取程序指令,将它们译成一系列的微指令,并存入L1指令cache中。 乱序执行逻辑:依据数据相关性和资源可用性,调度微指令的执行,因而微指令可按不同于所取机器指令流的顺序被调度执行.,执行单元:它执行微指令,从L1数据cache中取所需数据,并在寄存器组中暂存运算结果。 存储器子系统:这部分包括L2cache、L3
25、cache和系统总线。当L1、L2cache未命中时,使用系统总线访问主存。系统总线还用于访问I/O资源。,不同于所有先前Pentium模式和大多数处理器所采用的结构,Pentium 4的指令cache位于指令译码逻辑和执行部件之间。 其设计理念是:Pentium 4将机器指令译成由微指令组成的简单RISC类指令,而使用简单定长的微指令可允许采用超标量流水线和调度技术,从而增强机器的性能。 关于流水线技术,将留在第5章中讨论。,3.6 虚拟存储器,3.6.1 虚拟存储器的基本概念 3.6.2 页式虚拟存储器 3.6.3 段式虚拟存储器 3.6.4 段页式虚拟存储器 3.6.5 替换算法 3.6
26、.6 奔腾系列机的虚拟存储组织,虚拟存储器,P282,1.虚拟存储器中关于地址与空间的若干名词:,物理地址(又称实地址):(对应主存物理空间) 由CPU地址引脚送出,用于访问主存的地址。 虚拟地址(又称虚地址):(对应主存逻辑空间)由编译程序生成的,是程序的逻辑地址。工作在虚拟地址模式下的CPU理解这些虚拟地址,并将他们转换成物理地址。若虚拟地址长为n位,则虚拟地址空间的大小可用2n来表示。因虚拟存储器的内容要保存在磁盘上,故其地址空间的大小实际上受到辅助存储器容量的限制。,高速存储器,主存-外存层次和cache-主存层次用的地址变换映射方法和替换策略是相同的,都基于程序局部性原理。 遵循的原
27、则: 把程序中最近常用的部分驻留在高速存储器中。 一旦这部分变得不常用了,把它们送回到低速的存储器中。 这种换入换出是由硬件或操作系统完成的,对用户是透明的。 力图使存储系统在性能上接近高速存储器、在价格上接近低速存储器。,高速存储器,2.虚存的访问过程 虚存空间的用户程序按照虚地址编程并存放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。每次访存时,首先判断该虚地址所对应的部分是否在实存中:如果是,则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存。,由此可见,每个程序的虚地址空间可以远大于实地
28、址空间,也可以远小于实地址空间。前一种情况以提高存储容量为目的,后一种情况则以地址变换为目的。后者通常出现在多用户或多任务系统中:实存空间较大,而单个任务并不需要很大的地址空间,较小的虚存空间则可以缩短指令中地址字段的长度。,3.cache与虚存的异同 cache-主存和主存-辅存这两个存储层次有许多相同点: (1)出发点相同:二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。 (2)原理相同:都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。,cache-主存和主
29、存-辅存这两个存储层次不同点: (1)侧重点不同:cache主要解决主存与CPU的速度差异问题;而就性能价格比的提高而言,虚存主要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。 (2)数据通路不同:CPU与cache和主存之间均有直接访问通路,cache不命中时可直接访问主存;而虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。,(3)透明性不同:cache的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用
30、程序员透明(段式和段页式管理对应用程序员“半透明”)。 (4)未命中时的损失不同:由于主存的存取时间是cache的存取时间的510倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于cache未命中时的损失。,4. 虚存机制要解决的关键问题 (1)调度问题:决定哪些程序和数据应被调入主存。 (2)地址映射问题:在访问主存时把虚地址变为主存物理地址(这一过程称为内地址变换);在访问辅存时把虚地址变成辅存的物理地址(这一过程称为外地址变换),以便换页。此外还要解决主存分配、存储保护与程序再定位等问题。 (3)替换问题:决定哪些程序和数据应被调出主存。 (4)更新问
31、题:确保主存与辅存的一致性。 在操作系统的控制下,硬件和系统软件为用户解决了上述问题,从而使应用程序的编程大大简化。,5.主存-外存层次的基本信息传送单位,主存-外存层次的基本信息传送单位可采 用几种不同的方案:段、页或段页。 段式:按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。把段作为基本信息单位在主存-外存之间传送和定位。每段都有名称、段起点、段长。 段式管理:把主存按段分配的存储管理方式。,高速存储器,段式虚拟存储器的优缺点: 优点: 段的界线分明,就是程序的自然分界。 段易于编译、管理、修改和保护。 便于多道程序共享。 某些类似的段(如堆栈,队例)具有可变长度,允许自
32、由调度,以便有效利用主存空间。 缺点:由于段的长度各不相同,段的起点和终点不定,给主存空间分配带来麻烦。容易在段间留下许多空余的零碎主存空间,不好利用,造成浪费。,页式:是主存物理空间中划分出来的等长的固定区域(又称为页面)。 页式管理:系统的基本信息传送单位是定长的页。 优点:是页面的起点和终点地址是固定的,方便造页表,新页调入主存也很容易掌握,比段式空间浪费小,唯一可造成浪费的是程序最后一页的零头的页内空间。 缺点:处理、保护和共享都不及段式来得方便。,高速存储器,段页式:这种管理是采用分段和分页结合的方法。 程序按模块分段,段内再分页,进入主存以页为基本信息传送单位,用段表和页表进行两级
33、定位管理。 优点:综合了段式和页式管理方式的特点。 缺点:需要多次查表过程。 (下面依次介绍页式、段式、段页式虚拟存储器的管理方法),高速存储器,3.6.2 页式虚拟存储器,逻辑页:页式虚拟存储系统中,虚拟空间分成页; 物理页:主存空间也分成同样大小的页。 虚存地址分为两个字段:高字段为逻辑页号,低字段为页内行地址。 实存地址也分两个字段:高字段为物理页号,低字段为页内行地址。,虚拟存储器,虚拟存储器页式管理的地址变换,页表多大?,工作原理 CPU提供虚地址:逻辑页号+页内地址 访问页表: 页表基址寄存器+逻辑页号,查表 若页面命中: 主存地址:物理页号+页内地址 若未命中: 启动I/O系统,
34、从外存调入主存。,页表一般放在主存中,为了避免由于需要频繁地查页表而造成对主存访问次数的增多, 通常把页表的最活跃部分存放在由高速存储器组成的快表中。 快表与慢表实现内部地址变换的方式演示。 快表由硬件组成,比页表小得多,查表时,由逻辑页号同时去查快表和慢表,当在快表中有此逻辑页号时,就能很快地找到对应的物理页号送入实主存地址寄存器,从而做到虽采用虚拟存储器但访主存速度几乎没有下降。,高速存储器,由硬件组成,是慢表的一个小小的副本,3.6.3 段式虚拟存储器,在段式虚拟存储系统中,段是按照程序的逻辑结构划分的,各个段的长度因程序而异。 虚拟地址: 由段号和段内地址组成, 为了把虚拟地址变换成实
35、主存地址,需要一个段表。地址变换方法与页式管理方法类似。 段表也是一个段,可以存在外存中,但一般也是驻留在主存中.,高速存储器,段式虚拟存储器虚存地址向实存地址的变换过程,3.6.4 段页式虚拟存储器,段页式虚拟存储器: 是将段式虚拟存储器和页式虚拟存储器结合的一种管理方式。把程序按逻辑单位分段以后,再把每段分成固定大小的页。 程序对主存的调入调出按页面进行,它又可按段实现共享和保护,兼备页式和段式的优点。 缺点: 是在映象过程中需要多次查表。 在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。段表中的每个表目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护
36、信息。由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息。,高速存储器,如果有多个用户在机器上运行,多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。 虚拟地址格式:,高速存储器,【例6】 假设有三道程序(用户标志号为A,B,C),其基址寄存器内容分别为SA,SB,SC ,逻辑地址到物理地址的变换过程见演示。在主存中,每道程序都有一张段表,A程序有4段,C程序有3段。每段应有一张页表,段表的每行就表示相应页表的起始位置,而页表内的每行即为相应的物理页号。请说明虚实地址变换过程。,高速存储器,段页式虚拟存储系统的地址变换过程,【解】:地址变换过程如下: 根据基号C执行S
37、C加1(段号)操作,得到段表相应行地址,其内容为页表的起始地址。 执行b+2(页号),得到物理页号的地址,其内容即为物理页10。 物理页号与页内地址拼接即得物理地址。 假如计算机只有一个基址寄存器,基号可不要,多道程序切换时,操作系统修改基址寄存器内容。,可以看出,段页式虚拟存储系统由虚拟地址向主存地址的变换至少需要查两次表。 段表、页表构成表层次。 当一个页表的大小超过一个页面的大小时,页表可能需要分为几个页,分存于几个不连续的主存页面中,这时需要一个新页(即页目录表)存放页表的起始地址。从而形成二级页表层次:页目录表、页表。,例:在页式虚拟存储器中,若主存容量为16MB,页面容量为4KB,
38、程序地址空间为1G,问虚页号有多少位?页表长度为多少?页内地址有多少位?,解:由于页面容量为4KB=212B,程序地址空间=1GB=230B 故虚页号字段位数=30-12=18 页表长度=218行,页内地址段为12位数。,3.6.5 替换算法,虚拟存储器中的页面替换策略和cache中的行替换策略有很多相似之处,但有三点显著不同: 缺页至少要涉及一次磁盘存取,读取所缺的页,缺页使系统蒙受的损失要比cache未命中大得多。 页面替换由操作系统软件实现。 页面替换的选择余地很大,属于一个进程的页面都可替换。,高速存储器,3.6.5 替换算法,虚拟存储器中的替换策略一般采用近期最少使用(LRU)算法、
39、最不经常使用(LFU)算法、先进先出(FIFO)算法,或将两种算法结合起来使用。 对于将被替换出去的页面,假如该页调入主存后没有被修改,就不必进行处理,否则就把该页重新写入外存,以保证外存中数据的正确性。为此,在页表的每一行应设置一修改位。,存储管理部件MMU: 实现逻辑地址地址到物理地址的转换,并在页面失效时进入操作系统环境。由硬件实现MMU,【例7】假设主存只有a,b,c三个页框,组成a进c出的FIFO队列,进程访问页面的序列是0,1,2,4,2,3,0,2,1,3,2号。若采用FIFO算法,FIFO算法+LRU算法,用列表法分别求两种替换策略情况下的命中率。 【解】:求解表格如下所示:,高速存储器,2020/7/16,郑州大学信息工程学院,99,调入,调入,调入,替换,替换,替 换,替 换,替 换,替 换,3.7 存储保护,高速存储器,多道程序及多处理机系统导致必须进行存储器保护。, 存储区域保护: 界限REG保护、页表、段表保护、键式保护、环状保
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年阿拉善市畜牧系统事业单位人员招聘考试备考试题及答案详解
- 2026年大兴安岭市政府采购中心(公共资源交易中心)人员招聘考试备考试题及答案详解
- 安全生产费用提取和使用制度培训
- 2026年承德市广播电视台(融媒体中心)人员招聘考试备考试题及答案详解
- 2026年阿克苏市建设系统事业单位人员招聘考试备考试题及答案详解
- 2026年安顺市政府采购中心(公共资源交易中心)人员招聘考试备考试题及答案详解
- 2026广东江门市花木有限公司招聘1人笔试备考试题及答案详解
- 2026年白城市中小学(幼儿园)教师招聘考试备考试题及答案详解
- 2026 增肌期牛肝菌课件
- 安全管理师培训
- 2025年中国冶金地质总局三局校园招聘48人笔试历年参考题库附带答案详解
- 海南省重点名校2026届毕业升学考试模拟卷英语卷含答案
- 2026年园林绿化高大树木修剪与高空作业车使用测试
- (2025年)电气工程概论课后思考题参考答案
- 08J333 建筑防腐蚀构造
- 【超星尔雅学习通】《纷争的年代二十世纪西方思想文化潮流》章节测试题及答案
- 2023年公务员体检表
- JJF 1836-2020微量分光光度计校准规范
- GB/T 37977.23-2019静电学第2-3部分:防静电固体平面材料电阻和电阻率的测试方法
- GB/T 1095-2003平键键槽的剖面尺寸
- 施工扬尘治理六个百分百检查表格
评论
0/150
提交评论