第3章 存储器体系结构ppt课件.ppt

上传人:牧羊曲112 文档编号:2133319 上传时间:2023-01-16 格式:PPT 页数:110 大小:8.32MB
返回 下载 相关 举报
第3章 存储器体系结构ppt课件.ppt_第1页
第1页 / 共110页
第3章 存储器体系结构ppt课件.ppt_第2页
第2页 / 共110页
第3章 存储器体系结构ppt课件.ppt_第3页
第3页 / 共110页
第3章 存储器体系结构ppt课件.ppt_第4页
第4页 / 共110页
第3章 存储器体系结构ppt课件.ppt_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《第3章 存储器体系结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章 存储器体系结构ppt课件.ppt(110页珍藏版)》请在三一办公上搜索。

1、第3章 存储器体系结构,内容提要:,随着计算机和微电子技术的发展,存储器无论是其器件还是体系结构都发生了很大的变化。本章首先介绍存储器层次结构、性能参数、多体并行存储器及磁盘阵列的基本概念与组成方式,然后讲述高速缓冲存储器Cache的组成与工作原理、虚拟存储器的构成与管理方式以及存储器保护措施。重点是存储器性能参数、多体并行存储器、磁盘阵列的组成方式、Cache的组成原理与地址映象、Cache的置换策略与主存更新、虚拟存储器组成与管理方式。难点是Cache的地址映象、Cache的置换策略与主存更新、虚拟存储器的组成与段页式管理。,第3章 存储器体系结构,3.1 概 述3.2 高速缓冲存储器Ca

2、che3.3 虚拟存储器3.4 存储器保护措施,3.1 概 述,3.1.1 存储器的层次结构3.1.2 基本概念与性能参数3.1.3 多体并行存储器3.1.4 磁盘阵列,3.1.1 存储器的层次结构,存储器是计算机的主要部件之一,其容量、速度、价格是存储器设计时所要考虑的三个要素。近年来出现了许多种类型的存储器,它们各有特色,有的速度快,但容量小;有的容量大,但速度慢。一般而言,速度快的存储器容量小,位价格高。目前,存储器按照存储介质可分为半导体存储器、磁表面存储器和光存储器等。其中半导体存储器容量小,速度快,位价格高,常用作主存。磁表面存储器有磁盘和磁带,属于非易失存储器,容量大,位价格低,

3、信息可以长久保存。光存储器容量也很大,位价格也很低,信息也可以长久保存。,1.存储器访问中的局部性原理 研究发现,程序在运行的过程中(8090)%时间是在执行(1020)%的程序代码,即局部性原理。表现为两个方面。(1)时间局部性:如果一个存储项被访问,则该存储项可能很快再次被访问。(2)空间局部性:如果一个存储项被访问,则该项及其相邻项可能很快被一起访问.形成这种局部性的原因在于程序的顺序执行和所包含的循环程序。2.存储器的层次结构 为满足CPU对高速大容量存储器的需求,又不过高地增加成本。无论是巨型机、大型机、中小型还是微型计算机,都采用层次化的存储器体系结构,其表示如图3.1所示。,图3

4、.1 多层存储器结构,寄存器一般与CPU制作在一起,其速度与CPU一致,但数量有限。高速缓冲存储器(Cache)一般由双极型器件构成,容量小,界于CPU和主存储器之间,速度与CPU匹配,用来存放(1020)%的常用程序或数据。主存多由半导体存储器构成,与CPU直接连接,容量较大。外存由非易失的存储器构成,容量很大,有时也称为海量存储器,用来存储暂不执行的程序或不被处理的数据。,3.1.2 基本概念与性能参数,1.基本概念 在CPU工作时,首先从Cache中读取指令或数据。如果能从Cache获得指令或数据,称为命中(Hit);否则称为未命中或者失效(Miss),这时需要访问主存,从主存中获取指令

5、或数据,同时传送到上层的Cache中。若在主存中未能获取指令或数据,则称访问主存失效或未命中,这时再去访问外存。一般情况下,上层所存储的信息是下层存储器中的一个子集,或者说是下层的映像。在Cache与主存之间传送信息,常以块或者页为单位;在主存与外存之间常以文件为单位。为了说明各层之间的关系和一些基本概念,下面以图3.2为例进行说明。,图3.2 存储器层次关系,图中Mi表示不同的存储器,靠近CPU的(M1)速度快,容量小,位价格高;远离CPU的(Mn)速度慢,容量大,位价格低。若以Si、Ci、Ti分别表示存储器Mi的容量、位价格和访问时间,则:SiSi+1CiCi+1TiTi+1 根据时间局部

6、性,Mi级存储器一般只存放Mi+1级中近期使用过的数据块或页;根据空间局部性,在从Mi+1级存储器读取一个字并送往Mi级时,一般把该字所在的块或页整体送往Mi级,以提高CPU访问Mi级时的命中率。,2.性能参数 常用参数有4个,即命中率、等效访问时间、平均位价格和访问效率,分别用H、T、C和e表示。(1)命中率H 通常是把在Mi级访问成功的概率称为该级的命中率,用H来表示,一般用模拟的方法来确定,即测试程序,分别统计出访问成功的次数N1和不成功的次数N2,则命中率为:,若用F表示失效率或未命中率,则F=1-H,(2)等效访问时间T 等效访问时间也称为访问周期。以主存-辅存二级存储器系统为例,T

7、1表示访问M1成功所用的时间(即一个读/写周期);Tm表示访问失效所用的时间,它不仅是访问M2所用的时间T2,而且要从M2中读出一个数据块(或页)送入M1,再从M1中读出所需要的字,因此Tm应当包括这一过程的全部时间。这样,主存-辅存构成的二级存储器系统的等效访问时间为:T=HT1+(1-H)Tm(3.1)当命中率H近似于1时,等效访问时间近似于T1。但是,由于在上一级存储器中访问的命中率一般都很高,为了简单起见常用访问M2的时间T2来代替Tm。这样 T=HT1+(1-H)T2,对于上述二级存储器,访问效率可表示如下:(3.4),(3.3)(4)访问效率,(3)平均位价格 对于二级存储器系统,

8、若用C1和S1表示M1的位价格和容量,C2和S2表示M2的位价格和容量,则平均位价格为:,【例3.1】设有某台计算机是由高速缓冲存储器Cache与主存构成二级存储器系统,其中Cache的存取周期T1=50nS,主存的存取周期T2=400nS,访问Cache的命中率为98%。试问该存储器系统的等效访存时间T是多少?访问效率是多少?解:已知T1=50nS,T2=400nS,命中率H=0.98,使用简单算式得:T=HT1+(1-H)T2=0.9850+(1-0.98)400=57nS e=T1/T=50/570.877,3.1.3 多体并行存储器,为使存储器的速度能适应CPU的需求,已形成不同的体系

9、结构。主要有以下几种:(1)单体单字存储器 是最早的一种结构形式,一个存储体,一个地址对应一个字(或字节),字的位数与数据线的宽度相同,每访问一次存储器,可读/写一个字(或字节)。(2)单体多字存储器 是一种单体单字存储器的一种改进结构,数据线的宽度是存储器单元字(或字节)长的整倍数。每访问可同时读/写多个字(或字节),提高了访存速度,即支持猝发传送方式。,(3)多体单字交叉存储器 存储器由多个存储体构成,每个存储体中的字(字节)长与数据线相同,每次访问仅读/写一个字(或字节)。数据存储的方式有两种,一种是按存储体连续存放;另一种是把连续数据交叉存放在各个存储体中。多个存储体可按流水线的方式启

10、动,有利于提高整体速度,支持多处理机系统。(4)多体多字交叉存储器 存储器也是由多个存储体构成。但是数据线是每一个存储体字(或字节)长的整倍数,每访问一次存储器,可同时读/写多个字(或字节)。多个存储体按流水线的方式启动,提高了存储器的整体速度,支持猝发传送方式,支持多处理机系统。,1.高位地址交叉多体存储器 高位地址交叉多体存储器的逻辑结构如图3.3所示,体内地址连续,设有n位,容量为2n。若总体地址有m位,其高位地址经译码,选择某一存储体。存储体的个数最多有2m-n个,通过对m-n位的高位地址译码选择不同的存储体。,图3.3 高位地址交叉多体存储器的逻辑结构图,图3.4 低位地址交叉多体存

11、储器的逻辑结构图,2.低位地址交叉多体存储器 低位地址交叉多体存储器如图3.4所示,用低位地址译码选择不同的存储体,而高位地址用于内部寻址。若总体地址有m位,低位地址有n位,则可连接2n个存储体,体内地址空间为2m-n。,若设存储器的字存取周期为t0,由k个子周期组成,即t0=k。如果使用k个存储体交叉存储,再按时间依次启动k个存储体,则构成流水线存取方式,其示意如图3.5所示,其中k=4。,图3.5 多体交叉存储体流水线读/写操作示意,从整体上看,提高了存取速度,在访问存储器不冲突的情况下,3之后每隔时间就可读/写一个字。连续读/写k个字需要的时间为t0+(k-1);顺序读/写需要的时间为k

12、t0。显然,在不发生访问冲突时按流水线访问,其带宽是单体存储器的k倍。,3.1.4 磁盘阵列,1.磁盘 磁盘以其大容量、低成本、工作稳定可靠和存储信息的非易失性等特点,一直是各类计算机必不可少的外部辅助存储器。按照载体,分为硬盘和软盘;按照尺寸,常见的有14吋、10.8吋、5.25吋、3.5吋、2.5吋、1.8吋和1.3吋等。除了尺寸和结构之外,衡量磁盘性能的技术指标主要有以下6条。(1)记录密度 磁盘信息是记录在磁头掠过的同心圆上,分为道密度、位密度和面密度。显然:面密度=道密度位密度。过去,硬盘的道密度多在1257r/i之上,位密度多在23980b/i之上,面密度在100Mb/i2之上。现

13、在,面密度已经达到1020Gb/i2。且面密度每经1.5年翻一番。(2)存储容量 磁盘在出厂时已经格式化,早期每个扇区记录512个字节的数据。因此:硬盘容量=柱面数磁头数(扇区数/道)512B现在,每一个扇区记录的字节数远不止512个字节,已有1KB、2KB、4KB和8KB等多种字节数。,【例3.2】已知Quantum的LSP 540AT硬盘机有1120个柱面、16个磁头,每道59个扇区,试求总的容量。解:在硬盘中,柱面数对应的是每面的磁道数,磁头数对应的是盘面数,若设每个扇区记录512个字节,则:总容量=11201659512B=541 327 360B54MB目前,硬盘的容量已经达到几百G

14、B甚至几TB以上。上述方式是在每一条磁道上记录相同的数据位,显然内道信息密度大,外道信息密度小。目前已有改进,即把盘面上的若干条相邻磁道分为一组,称为分带记录。每一个记录带内的各条磁道有相同的扇区数,各分带之间的磁道扇区数不同,靠近内部的分带磁道扇区数小,靠近外部的分带磁道扇区数大。(3)平均寻道时间是指磁头定位到所要寻找的磁道上时所用的时间,常以磁头沿半径方向运动一半所用的时间来表示。过去一般在8.5mS左右,现在可减小到4.2mS。,(4)旋转延迟时间 是指磁头定位到所要找的扇区所用的时间,常以磁头沿周长运动1/2周所用的时间。目前多采用的7200r/min的磁盘机,旋转延迟时间为4.17

15、mS。对于10000r/min和15000r/min的磁盘机,旋转延迟时间仅为3mS和2mS。(5)传输时间 是指数据传输所用的时间,它不仅与电机的转速、数据长度有关,而且与磁盘接口电路板有关。目前,常以传输率来表示,比如100MBps、200MBps等。(6)控制延迟时间 是指磁盘控制器从收到读/写磁盘命令到启动磁头移动所用的时间,主要由磁盘接口电路板决定。综上所述,访问磁盘数据的时间是寻道时间、旋转延迟时间、控制延迟时间和传输时间之和。,【例3.3】设有一个磁盘,其平均寻道时间为5ms,传输率为10MBps,控制开销为2ms,驱动电机的转速为7200r/min,求读/写一个512字节的扇区

16、所用的时间。解:根据题意:平均寻道时间为5ms,传送512字节数据的传输时间为512/10=51.2s,旋转延迟时间为 60/72000.5=4.17ms,控制延迟时间为2ms,则读/写一个512字节的扇区所用的时间为:5ms+51.2s+4.17ms+2ms=11.22ms。,2.磁盘阵列的概念在外部辅助存储器中磁盘阵列引人注目,全称廉价冗余磁盘阵列RAID(Redundant arrays of inexpensive disk),是由多台低成本的小型磁盘构成同步化的磁盘阵列,数据展开存放在多台磁盘上,既可提高数据传输的带宽,又可利用冗余技术提高可靠性,类似于存储器多体交叉存储。而且容量大

17、,数据传输率高,功耗低,体积小,成本低,便于维护。其关键技术是多台磁盘的同步控制,其逻辑框图如图3.6所示。,其中控制处理器由微处理器构成,是磁盘阵列的控制中心,它接收和分析主机的操作命令,调度和管理磁盘阵列通路,控制设备命令的执行。数据通路是在控制处理器的控制下,实现数据的分配,集中,缓冲,奇/偶校验,数据校正和通道重构等操作。,图3.6 磁盘阵列结构框图,主机接口用来与主机连接,实现主机与磁盘阵列的连接、通信、控制和数据传送等操作。磁盘接口用来与磁盘驱动器连接,一般采用国际化的工业标准,比如SCSI等。在磁盘阵列中各驱动器主轴的旋转有同步与异步之分。同步旋转时,数据按位或者字节分布在各个磁

18、盘上。异步旋转时,数据以块或文件为单位存储在单一磁盘上。3.磁盘阵列的组织形式 1987年加州大学伯克利分校的D.A.Patterson等人提出,并把RAID分成5级。(1)RAID-1镜像磁盘冗余阵列 是把每一个数据块重复存入镜像磁盘中,提高磁盘的可靠性。其冗余度为100%,使容量降低一半,形式简单,成本较高。,(2)RAID-2采用海明码纠错的冗余磁盘阵列 是把数据按位交叉写入多个磁盘中,并进行按位纠错检查。它对数据的读/写涉及到各个磁盘,比镜像磁盘阵列冗余度小,影响小文件的传送速率,较适合于大文件的存储。(3)RAID-3采用奇/偶校验冗余磁盘阵列是把数据按位交叉存储到多个磁盘上,用一个

19、磁盘作为奇/偶校验盘。这种阵列的冗余度小,由于数据顺序交叉存储,适合于大量数据的顺序存储。(4)RAID-4独立传送磁盘阵列一 是把数据按块交叉存储到多个磁盘上,用一个磁盘作为奇/偶校验盘。在数据不冲突的情况下,多个磁盘可以并行读/写数据,适合于小块数据的存储。(5)RAID-5独立传送磁盘阵列二 是另一种独立传送的磁盘阵列,它采用数据块交叉存储和分布冗余校验,数据和校验位分布在各个磁盘上,没有专门的奇/偶校验盘。这种结构冗余度低,支持数据并行读/写,适合于小数据块存储。但是结构复杂,实现起来困难较大。磁盘阵列示意如图3.7所示,,图3.7 磁盘阵列数据信息存储示意图,除了RAID-1之外,其

20、它磁盘阵列都采用数据交叉存储方式,是将数据分布在多个磁盘上,增添校验方式,提高数据存储的可靠性。其中:RAID-2是各数据位交叉存储在多个磁盘中,海明校验码也按位交叉存储在多个磁盘中。RAID-3是各数据位交叉存储在多个磁盘中,奇偶校验位依次存储在另一个磁盘中。RAID-4是按数据块交叉存储多个磁盘上,奇/偶校验码依次存储在另一个磁盘中。这里,位交叉磁盘阵列属于同步旋转阵列,适合于大数据块的存储;块交叉存储阵列一般为异步旋转阵列,适合于小数据块的存储。,3.2 高速缓冲存储器Cache,3.2.1 Cache的基本概念3.2.2 Cache的组成与工作原理3.2.3 地址映象与变换3.2.4

21、Cache置换策略与主存更新方法3.2.5 Cache性能分析,3.2.1 Cache的基本概念,3.2.1 Cache的基本概念高速缓冲存储器Cache具有与CPU相匹配的存取速度,界于CPU和主存之间,其示意如图3.8所示,用来存放频繁使用的程序和数据。,图3.8 Cache 示意图,Cache的容量一般较小,比如1KB1MB,主要存放(1020)%频繁使用的程序或数据。当访问Cache失效时,再去访问主存,并把主存中找到的数据送到Cache中。相反,若Cache中的数据被修改,也要修改主存中的相应单元,以保证Cache与主存的一致性。因此,Cache实际上是主存的一个子集。,一般情况下,

22、Cache与主存传送数据是以块为单位,数据块一般为4128字节,实际上也是Cache与主存之间的映像单位。访问Cache的时间一般是访问主存时间的1/41/10,命中率一般在90%以上。在访问Cache失效时访问主存,并把主存中读出的数据块传送到Cache中。这时,如果Cache中有空白区域,则直接写入;如果Cache已经写满,则要置换暂时不用的数据块。至于置换哪一块,有多种方法,即置换策略,将在3.2.4节介绍。如今,在许多CPU中设有一级或者二级Cache。这样与CPU外部Cache 结合,可构成二级或者三级Cache系统。,3.2.2 Cache的组成与工作原理,Cache被分割成大小相

23、等的块,也称为字块,主存以相同大小的块与之对应。这样主存地址可分为块地址(也称为块号)和块内地址,Cache地址也分为块号和块内地址。由于块的大小相同,块内地址相同。但是块号不一定相同,需要通过映像来说明二者之间的对应关系,也称为地址变换。,图3.9 Cache的组成原理,Cache的基本结构如图3.9所示,其中主存-Cache地址映象与变换机制用来确定主存块是否在Cache中。,CPU访问主存储器时输出地址,Cache控制器将其高位地址(即块号)送地址映像与变换机制,以确定是否命中。如果命中,从中获取相应Cache的块号送Cache地址寄存器的高位,同时主存地址中的块内地址送入Cache地址

24、寄存器的低位,然后访问Cache。如果未命中,则访问主存,按块读出所需要的数据,并写入Cache。写入Cache时,如果Cache中有空白存储区(块),则直接写入;如果C ache已经装满,则要置换其中的某一块。置换策略有先进先出、最近最少使用等。如果对Cache写操作,则写入的数据也要写回到主存的相应块中,以保证Cache与主存的一致性。至于什么时候写回主存,有两种方式,一种是立即写回,另一种是置换时写回。,3.2.3 地址映象与变换,地址映象是将主存地址映射到Cache的地址中。不同的Cache结构有不同的映象方式,分别为直接映象、全相联映象和组相联映象。,图3.10 直接映像示意图,1.

25、直接映象与变换 直接映象是把主存划分成与Cache大小相同的区,每区划分成大小相同的字块,如图3.10所示。每一区中的第0块映射到Cache中的第0块,第1块影射到Cache中的第1块。,显然,Cache中的块号与主存各区中的块号一致。因此,只要能够标识Cache中的数据块属于哪一个区就可以了。,故需建造一个直接目录表,也称为块表,用来存放区号。其映象与变换逻辑如图3.11所示,,图3.11 直接映像地址变换逻辑,其中n表示主存块号的位数。目录表的序号与块号一致。地址变换时根据主存的块号在目录表中读出数据,与主存地址中的区号比较。如果不相等,未命中,需访问主存。如果相等,命中,即把主 存的块地

26、址和块内地址送入 Cache地址寄器,然后访问Cache,对Cache单元 进行读/写作。未命中时访问主存,从主存中读出一个数据块,写入Cache,同时还要把读出数据块的区号写入目录表中的相应单元中。如果Cache已经装满,则要按照置换策略置换某一数据块。在对Cache写操作时必须按照区号写入相应的主存单元,可立即写回或置换时写回。直接映象结构简单,变换速度快,但是映象关系固定,块冲突率高;在把从主存中读出的数据写入Cache时,由于关系固定,即使有其它空白存储块,也不能写入。,2.全相联映象与变换全相联映象是主存不分区,其中每 一块可影射到Cache的任意块,其示意如图3.12所示。除了二者

27、块内地址相同外,块号不相同。因此需要建立一个全相联目录表,用来存放Cache块号和对应的主存块号。,图3.12 全相联映像示意图,全相联映象与变换逻辑如图3.13所示,,图3.13 全相联映像地址变换逻辑,其中n表示主存块号的位数。全相联目录表的序号与主存地址中的块号一致,每个单元存放主存块号和与之对应的Cache块号。地址变换时根据主存块号在目录表中搜寻与主存块号对应的Cache块号。找到后,即命中,读出Cache块号,与主存块内地址一起送入Cache地址寄存器中。如果没有查到,即未命中,则访问主存,读主存数据块,并写入Cache,且把二者的块号写入全相联目录表中。由于主存块号地址位n很长,

28、全相联目录表会很大,甚至无法实现。为此,可在目录表中仅存放已经存入Cache的主存数据块的块号和对应于Cache中的块号。这样目录表中的单元数与Cache中的块数相同。在查表时,按内容访问。但是查表电路复杂,时间长,速度慢。,3.组相联映象与变换 组相联映象是在直接映象的基础上对Cache和主存中的块分组,其映象方式是组间直接映象,组内全相联映象,其示意如图3.14所示。在组相联映象中,块冲突的概率比直接映象低,命中率比直接映象高,广泛使用。,图3.14 组相联映像示意图,(1)组相联映象与变换 组相联映象与变换逻辑如图3.15所示,,图3.15 组相联映像地址变换逻辑,主存地址分成4段:区号

29、、组号、组内块号、块内地址。Cache地址分成3段:组号、组内块号、块内地址。二者的组号和块内地址一致。组相联目录表按组号排列,每个单元存放主存块映象到Cache中的组内块号和该块在主存中的区号和组内块号。地址变换时根据主存地址中的组号查表,取出其中存放的区号和组内块号,与主存地址中的区号和组内块号比较。设组号n位,组内块号k位。这样,表中一个组号对应的单元 中存放2k个组内块号,查表 时一 一比较。为了提高速度,也可按 内容同时比较。如果命中,该单元中存放的Cache组内块号和主存地址中的组号一起送入Cache 地址 寄存器中,访问Cache。未 命中,则访问主存,读出所需要 的数据块,并置

30、换到Cache中,同时修改目录表。如果是在命中情况下的写操作,还要适时写入主存的相应单元中,以保持Cache与主存一致。,(2)组相联映象快速变换,组相联映象快速地址变换是把主存中多个数据块的区号和组内块号存放在目录表的同一单元中,假设有4对区号和组内块号,如图3.16所示。地址变换时把目录表中同一单元中多个区号和组内块号取出,与主存地址中的区号和组内地址比较。当某一对区号和组内块号与之相等时命中,于是可从目录表中取出相应的组内块号送Cache地址寄存器。如果图中的4个区号和组内块号都不相等,即未命中,经“与”门输出块失效信号。由于同时与4个区号和组内块号进行比较,因此速度提高。,图3.16

31、组相联映像快速地址变换逻辑,4.N路相联映象法 N路相联映象与变换是把Cache分成多个体,或称多路。主存分成若干个区,在许多书中称为页,其容量与Cache的大小相同。这样具有相同区内地址的主存块单元可映象到若干个体的相应单元中。因此,使用N路映象方式可使命中率成倍提高。但是体数太多,结构复杂。一般使用2体或者4体。当体数为1时,与直接映象法完全相同。,3.2.4 Cache置换策略与主存更新方法,1.Cache置换策略 目前,置换策略主要有三种,即随机法、先进先出法和最近最少使用法。(1)随机法 是设置一个随机数发生器,需要置换时由随机数发生器给出一个随机数,以确定置换那一个块单元。这种方法

32、简单,但不利于提高Cache的命中率,因此已不再使用。(2)先进先出法FIFO 是用一个队列来表示置换最先进入Cache的数据块。简单,易于实现,但是没有很好体现出Cache中的局部性原理,不利于提高Cache的命中率。因此,已经很少使用。(3)最近最少使用法 也称为最久未使用法,是替换Cache中最近不常使用的数据项,有利于提高Cache命中率,因此普遍使用。,2.LRU的实现方法 LRU的实现方法有多种,比较常用的是寄存器堆栈法和计数法,另外还有一种比较对法。(1)寄存器堆栈法是设置一个与Cache中数据块数相等的寄存器堆栈,用来压入Cache中的块号,如图3.17所示。,图3.17 寄存

33、器堆栈法,当数据写入Cache时,Cache块号压入栈顶,并且检查堆栈中是否已有该块号。如果有,删除,直到Cache装满。若再有数据块从主存读出写入Cache时,则置换栈底中的块号所指示的数据块。显然,栈顶指示的是最近使用过的数据块;而栈底指示的则是最近一直没有使用过的数据块。,(2)计数法 是为Cache中的每一个数据块设置一个由寄存器构成的标记。其中若干位按一定的周期自动计数。当某一Cache块被访问时,其计数器清0。这样,最近未被访问的Cache块的计数值最大。在置换时优先置换。,4.更新策略比较“写贯穿”与“置换时写回”法略有差异:置换时写回法仅在Cache中的数据块被置换时写入主存,

34、可减少访问主存的开销,而写贯穿法能始终保持二者之间的一致性。采用“写贯穿”写入主存时,一次写入一个字,仅需一个奇/偶校验位;而“置换时写回法”一次写入一个数据块,需要多个校验位。“写贯穿法”需要较多的缓冲寄存器存放要写入主存的数据,而“置换时写回法”较简单一些。两种更新策略各有特点。单处理机Cache多采用“置换时写回法”,共享主存的多处理机系统多采用“写贯穿法”。此外还可采用“播写法”和“写作废法”,以保证Cache与主存的一致性。,5.Cache结构举例 80486微处理器内设8KBCache,称为一级Cache;在其外部可配置一个二级Cache。(1)片内Cache 片内Cache共有8

35、KB,采用4路相联映象方式,程序和数据共用。字块排列成行,一个字块16B,写入时采用“写贯穿”法,替换策略为LRU。,图3.18 80486内部Cache空间分配,8KB的分配如图3.18所示,分为4个体,每个体2KB,每个字块16B(4个32位字)。,图3.19 80486内部Cache结构,内部组成如图3.19所示,共分4路,每路128个字块(即行)。每行中存放有来自主存的21位地址标志以及LRU指针和行有效信息。图中的阴影框表示一个完整的字块信息。,Cache寻址时使用32位的物理地址,中间7位称为索引字段,即子块号,寻址128个子块中的某一个,低4位确定一个字块中的某一字节。高21位作

36、为标记(区号),与Cache中的标记比较。若相等,且有效位标志该字块有效,表示命中。若不相等,或者有效位标志该字块无效,表示未找到。于是,再去访问主存,找到后除送CPU,同时按LRU原则置换到Cache中,且置相应的有效标志位。图中LRU/有效模块有128项,每一项对应4路中的4个字块。在每一项中,高3位是LRU指针;低4位是有效标志位,分别表示4个字块是否有效。为与主存保持一致性,片内Cache采用了两种措施。一是Cache字块修改时,采用“写贯穿”方式,写入主存的相应单元中。二是设置一个监视逻辑电路,监视片外主存的写入操作,当有其它主设备对片外主存写入时,产生Cache作废周期,向内部Ca

37、che输入地址,使片内相应字块(行)无效。,(2)片外二级Cache 80486除8KB片内Cache外,外部可配置更大的二级Cache,一般大一个数量级,即80KB。为了简单起见,最好相等,也可使用专门的485Turbo Cache。485Turbo Cache包括两个Cache体、两个标记RAM、一个状态RAM和控制逻辑电路。每个Cache体有8K或16K个字(32)位,写入时每次4个字,即16字节。485Turbo Cache可连接成64KB/128KB/256KB/512KB,如图3.20所示,图3.20 80486二级Cache示意图,在80486中的控制寄存器CR3,用来设置内/外

38、Cache的工作方式。内部Cache采用“写贯穿”方式,外部Cache既可采用“写贯穿”,也可采用“置换时写回”方式。,3.2.5 Cache性能分析,1.一体化Cache与分离Cache(1)一体化Cache 一体化Cache是指程序与数据共用一个Cache。在早期的计算机中常把程序和数据存储在同一存储器中,往往只有一个Cache,程序/数据共用。结构简单。(2)分离Cache 分离Cache是指程序和数据高速缓冲存储器分别独立设置。如今,许多CPU把数据和程序存储器分开,因此Cache也分为程序Cache和数据Cache。结构复杂,但有利于提高访问存速度和Cache的命中率。,2.Cach

39、e性能分析 目前,人们考虑的主要性能有Cache加速比、Cache命中率及访存平均时间。(1)访存平均时间 由3.1.2节已经知道,二级存储器系统等效访问时间为:T=HT1+(1-H)Tm 则由Cache与主存构成的二级存储器的访存平均时间可表示为:T=HcTc+(1-Hc)Tm(2)Cache加速比 加速比是不用Cache时访问主存所用的时间与使用Cache之后的平均访存时间之比:,可以看出,加速比Sp是命中率Hc和访问Cache的时间Tc与访问主存时间Tm之比的函数。设Tm/Tc为10倍时:,图3.21 Cache加速比,其加速比Sp与命中率Hc之间的关系如图3.21所示,通过提高命中率可

40、提高加速比。,图3.22 命中率与Cache容量的关系,图3.23 命中率与块大小的关系,与块大小的关系如图3.23所示,块增大,命中率Hc提高;但是再增大,块的数量减少,大到一定程度,命中率Hc下降。因此,二者之间有一个平衡点。与组数的关系。在组相联映像方式中,由于组间是直接映像,组内是全相联映像,若组数增加,直接映像的成分增加,致使主存中的数据块影射到Cache中的块数减小,命中率下降;相反,命中率提高。,3.共享主存多处理机系统中Cache的一致性 对于共享主存的多处理机系统,绝大多数都有自己的高速缓存Cache,且与主存连接,构成二级存储器系统,如图3.24所示。各处理机中的Cache

41、称为局部Cache,都存在与共享主存保持一致性的问题。在图3.24中,若某一个处理机修改了自己的Cache和主存中的数据,则对其它处理机的Cache如何处理,怎样使之与主存储器保持一致呢?解决的方法有多种。,图3.24 共享多处理机系统Cache示意图,建立目录表,用来记录在某一Cache中的数据块同时还保存在哪些处理机的Cache中。当某处理机修改自己局部Cache中的数据时,同时传送到其它处理机局部Cache的相应块中,这种处理方法称为“播写法”;另一种方法是向存有该数据块副本的Cache发送一个信息,作废该数据块的副本,这种方法称为“作废法”。目录表可建立在主存中,称为中心目录表或者集中

42、式目录表;也可以建立在各处理机中,称为分布式目录表。使主存中属于各处理机共享的某些数据信息不进入各处理机的Cache中。采用共享Cache,使属于各处理机共享的数据进入共享Cache。但是这种结构要求Cache非常大,管理方法比较复杂;另有一些CPU内置Cache,不支持共享Cache的结构。,3.3 虚拟存储器,3.3.1 虚拟存储器的基本概念3.3.2 虚拟存储器的管理方式3.3.3 虚拟地址快速变换法3.3.4 置换策略3.3.5 虚拟存储器管理举例,3.3.1 虚拟存储器的基本概念,1.什么是虚拟存储器,随着信息处理技术的发展,微处理器都有大量的地址线,比如40位、64位、128位等,

43、为构成硕大的主存空间提供支持。但是按全部地址线配置主存尚有一定的困难,因此常使用其中的一部分,另外大部分容量借助于外存来实现,所有空间按主存地址访问,这就是所谓虚拟存储器的思想。,图3.25 虚拟存储器空间,虚拟存储器如图3.25所示:这一扩大了的空间称为逻辑(或虚拟)存储空间,其地址称为逻辑(或虚拟)地址。这就使存储系统具有相当大的存储空间和接近于主存的访问速度。,2.虚拟存储器的访问过程 当用虚拟地址访问存储器时,将其影射成主存的物理地址,如果虚拟地址对应的存储单元在实际物理主存中,直接访问,称为命中;如果不在,未命中,则需要将该存储单元中的数据从外存调入主存,并将该存储单元与虚拟地址建立

44、映像关系,然后再访问主存单元。其管理方式有多种,比如段式管理、页式管理和段页式管理。目前大多数计算机的虚拟存储器多采用页式管理和段页式管理,因此主存与外存之间常以“页”为单位交换数据。当把外部存储器中的数据调入主存时,若主存中没有足够的空间时则要置换暂时不用的段或者页,置换策略有先进先出FIFO和最久未使用LRU等。虚拟地址到主存实地址的映像一般采用全相联映像方式,替换策略常采用最久未使用LRU,页面更新时采用“置换时写回外存”的策略。,3.主要参数 衡量虚拟存储器的主要参数有命中率和主存空间利用率。(1)命中率 与Cache相同,是访问主存单元成功的次数与访存总次数之比。(2)主存空间利用率

45、 对于一个程序来说,在运行的过程中往往是使用实际主存的一部分。主存空间的利用率大致可定义为被程序所使用的活跃部分的空间与分配给程序的主存总空间之比。4.主要特性 从不同的角度来看,虚拟存储器具有不同的特性,这里仅对照Cache的结构,说明一些主要的特点。,按照CPU的地址范围配置的硕大存储空间,其速度接近于实际的物理主存。虚拟存储器是在操作系统中由软件来实现,管理方式多采用页管理或段页式管理,以“页”为调度或置换单位,映像方式采用全相联映象方式,替换策略采用最久未使用LRU,页面更新时采用“置换时写回外存”的策略。Cache的存在及操作对程序员是透明的,虚拟存储器中页管理对系统程序员是不透明的

46、,而对用户是透明的;在段页式管理中,段对用户可以透明,也可以不透明。在虚拟存储器系统中,外存储器除了以可编址的形式成为主存的下层存储器外,还可以文件形式使用。,3.3.2 虚拟存储器的管理方式,目前有三种:段式管理、页式管理和段页式管理,使用的多为后面两种。1.段式管理 段式管理是一种模块化的存储器管理方式。它给每一个用户程序模块分配一个段,该程序模块在该段中运行,按段内地址访问其中的单元。这种方式有利于模块化管理,其长度可以放大或者缩小。实际使用中,一个大的程序可由多个逻辑上相对独立的模块组成,这些模块可以段的方式存储,根据其相对独立性和实际长度分配存储空间,即段式管理。,图3.26 段式管

47、理虚拟存储器地址映像,在段式管理中,设有一个段表,记录用户程序的信息,比如程序名或段号、段起始地址和段长等,其示意如图3.26所示。,其中程序名或段号表示用户程序的逻辑段地址,段起始地址是该程序段在物理主存中起始地址,段长用以防止访问时越界;装入位表示该段是否已经装入主存,1表示装入,0表示未装入;访问方式说明只读或者读写,用于段保护。另有其它标志,说明其属性,比如访问权限、修改标志等。其中权限说明该段的级别,以确定某程序是否有权访问该段;修改标志表示该段是否被修改过,若没有被修改过,该段被置换时不必写回外存而直接被覆盖;若被修改过,则在被置换时必须写回外存。在虚拟存储器中,用户的程序模块或数

48、据也是以段的方式存储的。当运行某一程序时,根据用户程序名或段号查找段表,若该程序段已装入物理主存,则取出表中的段起始地址,与逻辑地址中的段内地址结合,构成物理主存中的单元地址;若用户程序不在物理主存中,则要从外存调入主存,同时把逻辑段号、段长和在物理主存中的起始地址写入段表。,图3.26显示的仅是一个段表,以此构成的段式管理仅是一级段管理系统。对于一级管理系统,用户程序的逻辑地址可分为两个部分。高位是段号;低位是段内地址,也称为偏移量。地址变换时,只要依据用户程序逻辑地址的高位(即段号)查表,得到实际段的起始地址,再与逻辑地址中的段内地址结合,即得实际的物理地址。但是对于一个大的存储器系统,段

49、可能很多,为此,可实施二级段管理,如图3.27所示。,图3.27 段式管理地址变换,但是对于一个大的存储器系统,段可能很多,为此,可实施二级段管理,如图3.27所示。,图3.28 页式管理虚拟存储器地址映像,2.页式管理 页式管理是把虚拟存储器和物理主存都划分成大小固定相等的“页”,其大小一般为4KB1GB。在地址映象中,所有虚拟页可装入物理主存的任何页位置。逻辑地址由虚拟页号和页内地址组成,实际的物理地址也分成页号和页内地址。这种把存储空间划分成页并按页管理的方式称为页式管理。在地址映象中,物理主存中的页可以与虚拟存储器中的任何一页构成映象,即全相联映象,如图3.28所示。,图3.29 页式

50、管理地址变换,在页式管理中,页表也分为两级。一级页表有若干个,每个页表中有若干个单元,分别存放若干个页的起始地址、装入标志、访问方式、以及修改标志等信息。二级页表仅有一个,一般由寄存器组构成,存放所有页表的起始地址,如图3.29所示。,地址映象时首先根据逻辑地址中的基号,查找页表基址寄存器,找到页表起始地址,如图P0所示,再从以P0为起始地址的页表中查找页起始地址。如果该页已经装入,则取出相应物理主存中的实页号与逻辑地址中的页内地址结合,构成主存物理实地址;如果没有装入,即未命中,则从外存置换到主存中。页面大小一般固定,但是有的计算机允许通过软件改变页的大小。也有的计算机提供的用户页面小,而虚

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号