计算机组成与结构课件(王爱英)第7章

上传人:w****i 文档编号:91817726 上传时间:2019-07-02 格式:PPT 页数:86 大小:342.50KB
返回 下载 相关 举报
计算机组成与结构课件(王爱英)第7章_第1页
第1页 / 共86页
计算机组成与结构课件(王爱英)第7章_第2页
第2页 / 共86页
计算机组成与结构课件(王爱英)第7章_第3页
第3页 / 共86页
计算机组成与结构课件(王爱英)第7章_第4页
第4页 / 共86页
计算机组成与结构课件(王爱英)第7章_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《计算机组成与结构课件(王爱英)第7章》由会员分享,可在线阅读,更多相关《计算机组成与结构课件(王爱英)第7章(86页珍藏版)》请在金锄头文库上搜索。

1、第7章 存储系统,7.1 存储系统的层次结构 7.2 高速缓冲存储器(cache) 7.3 虚拟存储器 7.4 相联存储器 7.5 存储保护 习题,目前的计算机中,一般用半导体存储器作为主存储器(简称主存或内存),存放当前正在执行的程序和数据;而用磁盘、磁带、光盘作为外存储器或辅助存储器(简称外存或辅存),存放当前不在运行的大量程序和数据。 半导体存储器可随机访问任一单元,而辅助存储器一般为串行访问存储器。读写该存储器内容时,需要顺序地一位一位地进行,访问指定信息所需时间与信息所在位置有关。,串行存储器又可分成顺序存取存储器和直接存取存储器。例如,磁带上的信息以顺序的方式存储在带上,读写时要待

2、磁带移动到合适位置后才能顺序读写,需要耗费较多时间,称为顺序存取存储器。而磁盘存储器对信息的存取包括两个操作: 磁头直接移动到信息所在区域(磁道); 从该磁道的合适位置开始顺序读写。比磁带要快得多,是直接存取存储器。,7.1 存储系统的层次结构 衡量存储器有三个指标: 容量、速度和价格位。一般来讲,速度高的存储器,每位价格也高,因此容量不能太大。早期计算机主存容量很小(如几K字节),程序与数据从辅存调入主存是由程序员自己安排的,程序员必须花费很大精力和时间把大程序预先分成块,确定好这些程序块在辅存中的位置和装入主存的地址,而且还要预先安排好程序运行时各块如何和何时调入调出。现代计算机主存储器容

3、量已达几十M字节到几百M字节,但是程序对存储容量的要求也提高了,因此仍存在存储空间的分配问题。,操作系统的形成和发展使得程序员有可能摆脱主、辅存之间的地址人工定位,通过软件、硬件结合,把主存和辅存统一成了一个整体,形成了一个存储层次。从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,而每位平均价格也接近于廉价的慢速的辅存平均价格。这种系统不断发展和完善,就逐步形成了现在广泛使用的虚拟存储系统。在系统中,应用程序员可用机器指令地址码对整个程序统一编址,如同程序员具有对应这个地址码宽度的全部虚存空间一样。该空间可以比主存实际空间大得多,以致可以存得下整个程序。,这种指令地址码称为虚地址(

4、虚存地址、虚拟地址)或逻辑地址,其对应的存储容量称为虚存容量或虚存空间;而把实际主存的地址称为物理地址或实(存)地址,其对应的存储容量称为主存容量、实存容量或实(主)存空间。 当CPU用虚地址访问主存时,机器自动地把它经辅助软件、硬件变换成主存实地址。察看这个地址所对应的单元内容是否已经装入主存,如果在主存就进行访问,如果不在主存内就经辅助软件、硬件把它所在的那块程序和数据由辅存调入主存,而后进行访问。这些操作都不必由程序员来安排,也就是说,对应用程序员是透明的。,主-辅存层次满足了存储器的大容量和低成本需求。 在速度方面,计算机的主存和CPU一直保持了大约一个数量级的差距。显然这个差距限制了

5、CPU速度潜力的发挥。为了弥合这个差距,必须进一步从计算机系统结构上去研究。设置高速缓冲存储器(cache)是解决存取速度的重要方法。在CPU和主存中间设置高速缓冲存储器,构成高速缓存(cache)-主存层次,要求cache在速度上能跟得上CPU的要求。cache-主存间的地址映像和调度吸取了比它较早出现的主-辅存存储层次的技术,不同的是因其速度要求高,不是由软、硬件结合而完全由硬件来实现。,从CPU的角度看,cache-主存层次的速度接近于cache,容量与每位价格则接近于主存。因此,解决了速度与成本之间的矛盾。 以上叙述了主存-辅存和cache-主存这两种存储层次。现代大多数计算机同时采用

6、这两种存储层次,构成cache-主存-辅存三级存储层次如图7.1所示。其中cache容量最小,辅存容量最大,各层次中存放的内容都可以在下一层次中找到。这种多层次结构已成为现代计算机的典型存储结构。,图7.1 三层次存储系统,7.2 高速缓冲存储器(cache) 7.2.1 cache存储器工作原理 在一个较短的时间间隔内,地址往往集中在存储器逻辑地址空间的很小范围内。程序地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次,因此,对程序地址的访问就自然地具有相对集中的倾向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对

7、局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象就称为程序访问的局部性。,根据局部性原理,可以在主存和CPU之间设置一个高速的容量相对较小的存储器,如果当前正在执行的程序和数据存放在这个存储器中,当程序运行时,不必从主存储器取指令和取数据,而访问这个高速存储器即可,所以提高了程序运行速度,这个存储器称作高速缓冲存储器(cache)。 cache存储器介于CPU和主存之间,它的工作速度数倍于主存,全部功能由硬件实现,并且对程序员是透明的。 图7.2表示cache的基本结构。,图7.2 cache的基本结构,cache的容量和块的大小是影响cache的效率的重要因素。通常用“命中

8、率”来测量cache的效率。命中率指CPU所要访问的信息在cache中的比率,而将所要访问的信息不在cache中的比率称为失效率。一般来说,cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。但随着芯片价格的下降,cache的容量还是不断增大,已由几十K发展到几百K字节,甚至达到几M字节。,在从主存读出新的字块调入cache存储器时,如果遇到cache存储器中相应的位置已被其他字块占有,那么就必须去掉一个旧的字块,让位于一个新的字块。这种替换应该遵循一定的规则,最好能使被替换的

9、字块是下一段时间内估计最少使用的。这些规则称为替换策略或替换算法,由替换部件加以实现。,cache存储器中保存的字块是主存中相应字块的一个副本。如果程序执行过程中要对该字块的某个单元进行写操作,就会遇到如何保持cache与主存的一致性问题。通常有两种写入方式: 一种方式是暂时只向cache存储器写入,并用标志加以注明,直到经过修改的字块被从cache中替换出来时才一次写入主存;第二种方式是每次写入cache存储器时也同时写入主存,使cache和主存保持一致。前一种方式称为标志交换(flag-swap)方式。只有写标志“置位”的字块才有必要最后从cache存储器一次写回主存,所以又称其为“写回法

10、”。,这种方式写操作速度快,但因在此以前,主存中的字块未经随时修改而可能失效。后一种方式称为通过式写(write-through),又称写直达法。这种方式实现简单,且能随时保持主存数据的正确性。但是,有可能要增加多次不必要的向主存的写入。假如向cache存储器某一单元写入多少次,也要向主存相应单元写入多少次。 另有一种写操作方法是: 当被修改的单元根本就不在cache存储器时,写操作直接对主存进行,而不写入cache存储器。,为了说明标记是否有效,每个标记至少还应设置一个有效位,当机器刚加电启动时,总机的reset信号或执行程序将所有标记的有效位置“0”,使标记无效。在程序执行过程中,当cac

11、he不命中时逐步将指令块或数据块从主存调入cache中的某一块,并将这一块标记中的有效位置“1”,当再次用到这一块中的指令或数据时,肯定命中,可直接从cache中取指或取数。从这里也可看到,刚加电后所有标记位都为“0”,因此开始执行程序时,命中率较低。另外cache的命中率还与程序本身有关,即不同的程序,其命中率可能不同。,具有cache的存储器,其平均存取时间计算如下: 设cache的存取时间为tc,命中率为h,主存的存取时间为tM,则 平均存取时间=htc+(1-h)(tc+tM)。,7.2.2 cache存储器组织 1. 地址映像 为了把信息放到cache存储器中,必须应用某种函数把主存

12、地址映像到cache,称作地址映像。在信息按照这种映像关系装入cache后,执行程序时,应将主存地址变换成cache地址,这个变换过程叫做地址变换。地址的映像和变换是密切相关的。 假设主存储器空间被分为Mm(0),Mm(1),Mm(i),Mm(2m-1)共2m个块,字块大小为2b个字;cache存储空间被分为Mc(0),Mc(1),Mc(j),Mc(2c-1)共2c个同样大小的块。,(1) 直接映像 在直接映像方式中,主存和cache中字块的对应关系如图7.3所示。直接映像函数可定义为: j=i mod 2c 其中,j是cache的字块号,i是主存的字块号。在这种映像方式中,主存的第0块,第2

13、c块,第2c+1块,只能映像到cache的第0块,而主存的第1块,第2c+1块,第2c+1+1块,只能映像到cache的第1块。 直接映像的优点是实现简单,只需利用主存地址按某些字段直接判断,即可确定所需字块是否已在cache存储器中。,图7.3 直接映像cache组织,(2) 全相联映像 全相联映像方式是最灵活但成本最高的一种方式,如图7.4所示。 图7.4 全相联映像cache组织,(3) 组相联映像 组相联映像方式是直接映像和全相联映像方式的一种折衷方案。组相联映像cache组织如图7.5所示。 组相联映像方式的性能与复杂性介于直接映像与全相联映像两种方式之间。当r=0时,它就成为直接映

14、像方式;当r=c时,就是全相联映像方式。 cache的命中率除了与地址映像的方式有关外,还与cache的容量有关。cache容量大,命中率高,但达到一定容量后,命中率的提高就不明显了。,图7.5 组相联映像cache组织,2. 替换算法 当新的主存字块需要调入cache存储器而它的可用位置又已被占满时,就产生替换算法问题。先介绍两种替换算法: 先进先出(FIFO)算法和近期最少使用(LRU)算法。 FIFO算法总是把一组中最先调入cache存储器的字块替换出去,它不需要随时记录各个字块的使用情况,所以实现容易,开销小。,LRU算法是把一组中近期最少使用的字块替换出去。这种替换算法需随时记录ca

15、che存储器中各个字块的使用情况,以便确定那个字块是近期最少使用的字块。LRU替换算法的平均命中率比FIFO要高,并且当分组容量加大时,能提高LRU替换算法的命中率。 LRU是最常使用的一种算法。其设计思想是把组中各块的使用情况记录在一张表上(如图7.6所示)。 另外还有一种随机替换法(RAND),这种算法不考虑使用情况,在组内随机选择一块来替换。其性能比根据使用情况的替换算法要差些。,图7.6 LRU算法替换登记表,7.2.3 cache存储器举例 今以Intel 82385 cache控制器为例来作进一步说明。 与80386微处理器相匹配的主存-cache存储系统是由82385 cache

16、控制器来实现地址映像和变换的。可全部映像80386的32位地址提供的4G(千兆)字节的地址空间,使CPU几乎无任何等待地读出数据,命中率可高达99%。 82385片内只含有cache控制器,cache数据保存在片外的SRAM中。 82385提供了两种地址映像方式: 直接映像和两路组相联映像。,当采用直接映像方式时,80386的地址总线分配如图7.7所示。 图7.7 80386地址总线字段分配(直接映像方式),直接映像cache组织如图7.8所示。 图7.8 82385直接映像cache组织,在两路组相联映像方式下,80386地址总线分配和cache组织分别如图7.9和图7.10所示。 图7.9 80386地址总线字段分配(两路组相联方式),图7.10 两路组相联cache组织,Intel 82385还有监听功能,其作用解释如下: 现代计算机以存储器为中心,除了CPU访存以外,输入输出(I/O)设备也可直接访问存储器,而cache中的数据又要与主存储器相应单元的内容保持一致(相同),因此需要对地址进行监听。假如某一I/O设备直接向存储器传送数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号