计算机组成与结构PPT课件(全)第7章存储系统.ppt
《计算机组成与结构PPT课件(全)第7章存储系统.ppt》由会员分享,可在线阅读,更多相关《计算机组成与结构PPT课件(全)第7章存储系统.ppt(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 存储系统存储系统7.1 存储系统的层次结构存储系统的层次结构7.2 高速缓冲存储器(高速缓冲存储器(cache)7.3 虚拟存储器虚拟存储器7.4 相联存储器相联存储器7.5 存储保护存储保护习题习题目前的计算机中,一般用半导体存储器作为主存储目前的计算机中,一般用半导体存储器作为主存储器器(简称主存或内存简称主存或内存),存放当前正在执行的程序和,存放当前正在执行的程序和数据;而用磁盘、磁带、光盘作为外存储器或辅助数据;而用磁盘、磁带、光盘作为外存储器或辅助存储器存储器(简称外存或辅存简称外存或辅存),存放当前不在运行的大,存放当前不在运行的大量程序和数据。量程序和数据。半导体存
2、储器可随机访问任一单元,而辅助存储器半导体存储器可随机访问任一单元,而辅助存储器一般为串行访问存储器。读写该存储器内容时,需一般为串行访问存储器。读写该存储器内容时,需要顺序地一位一位地进行,访问指定信息所需时间要顺序地一位一位地进行,访问指定信息所需时间与信息所在位置有关。与信息所在位置有关。串行存储器又可分成顺序存取存储器和直接存取存串行存储器又可分成顺序存取存储器和直接存取存储器。例如,磁带上的信息以顺序的方式存储在带储器。例如,磁带上的信息以顺序的方式存储在带上,读写时要待磁带移动到合适位置后才能顺序上,读写时要待磁带移动到合适位置后才能顺序读写,需要耗费较多时间,称为顺序存取存储器。
3、读写,需要耗费较多时间,称为顺序存取存储器。而磁盘存储器对信息的存取包括两个操作:而磁盘存储器对信息的存取包括两个操作:磁磁头直接移动到信息所在区域头直接移动到信息所在区域(磁道磁道);从该磁道的从该磁道的合适位置开始顺序读写。比磁带要快得多,是直合适位置开始顺序读写。比磁带要快得多,是直接存取存储器。接存取存储器。7.1 存储系统的层次结构存储系统的层次结构衡量存储器有三个指标:衡量存储器有三个指标:容量、速度和价格位。容量、速度和价格位。一般来讲,速度高的存储器,每位价格也高,因此一般来讲,速度高的存储器,每位价格也高,因此容量不能太大。早期计算机主存容量很小容量不能太大。早期计算机主存容
4、量很小(如几如几K字字节节),程序与数据从辅存调入主存是由程序员自己,程序与数据从辅存调入主存是由程序员自己安排的,程序员必须花费很大精力和时间把大程序安排的,程序员必须花费很大精力和时间把大程序预先分成块,确定好这些程序块在辅存中的位置和预先分成块,确定好这些程序块在辅存中的位置和装入主存的地址,而且还要预先安排好程序运行时装入主存的地址,而且还要预先安排好程序运行时各块如何和何时调入调出。现代计算机主存储器容各块如何和何时调入调出。现代计算机主存储器容量已达几十量已达几十M字节到几百字节到几百M字节,但是程序对存储字节,但是程序对存储容量的要求也提高了,因此仍存在存储空间的分配容量的要求也
5、提高了,因此仍存在存储空间的分配问题。问题。操作系统的形成和发展使得程序员有可能摆脱主、操作系统的形成和发展使得程序员有可能摆脱主、辅存之间的地址人工定位,通过软件、硬件结合,辅存之间的地址人工定位,通过软件、硬件结合,把主存和辅存统一成了一个整体,形成了一个存储把主存和辅存统一成了一个整体,形成了一个存储层次。从整体看,其速度接近于主存的速度,其容层次。从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,而每位平均价格也接近于量则接近于辅存的容量,而每位平均价格也接近于廉价的慢速的辅存平均价格。这种系统不断发展和廉价的慢速的辅存平均价格。这种系统不断发展和完善,就逐步形成了现在广泛使
6、用的虚拟存储系统。完善,就逐步形成了现在广泛使用的虚拟存储系统。在系统中,应用程序员可用机器指令地址码对整个在系统中,应用程序员可用机器指令地址码对整个程序统一编址,如同程序员具有对应这个地址码宽程序统一编址,如同程序员具有对应这个地址码宽度的全部虚存空间一样。该空间可以比主存实际空度的全部虚存空间一样。该空间可以比主存实际空间大得多,以致可以存得下整个程序。间大得多,以致可以存得下整个程序。这种指令地址码称为虚地址这种指令地址码称为虚地址(虚存地址、虚拟地址虚存地址、虚拟地址)或逻辑地址,其对应的存储容量称为虚存容量或虚或逻辑地址,其对应的存储容量称为虚存容量或虚存空间;而把实际主存的地址称
7、为物理地址或实存空间;而把实际主存的地址称为物理地址或实(存存)地址,其对应的存储容量称为主存容量、实存地址,其对应的存储容量称为主存容量、实存容量或实容量或实(主主)存空间。存空间。当当CPU用虚地址访问主存时,机器自动地把它经辅用虚地址访问主存时,机器自动地把它经辅助软件、硬件变换成主存实地址。察看这个地址所助软件、硬件变换成主存实地址。察看这个地址所对应的单元内容是否已经装入主存,如果在主存就对应的单元内容是否已经装入主存,如果在主存就进行访问,如果不在主存内就经辅助软件、硬件把进行访问,如果不在主存内就经辅助软件、硬件把它所在的那块程序和数据由辅存调入主存,而后进它所在的那块程序和数据
8、由辅存调入主存,而后进行访问。这些操作都不必由程序员来安排,也就是行访问。这些操作都不必由程序员来安排,也就是说,对应用程序员是透明的。说,对应用程序员是透明的。主主-辅存层次满足了存储器的大容量和低成本需求。辅存层次满足了存储器的大容量和低成本需求。在速度方面,计算机的主存和在速度方面,计算机的主存和CPU一直保持了大约一直保持了大约一个数量级的差距。显然这个差距限制了一个数量级的差距。显然这个差距限制了CPU速度速度潜力的发挥。为了弥合这个差距,必须进一步从计潜力的发挥。为了弥合这个差距,必须进一步从计算机系统结构上去研究。设置高速缓冲存储器算机系统结构上去研究。设置高速缓冲存储器(cac
9、he)是解决存取速度的重要方法。在是解决存取速度的重要方法。在CPU和主存和主存中间设置高速缓冲存储器,构成高速缓存中间设置高速缓冲存储器,构成高速缓存(cache)-主存层次,要求主存层次,要求cache在速度上能跟得上在速度上能跟得上CPU的要的要求。求。cache-主存间的地址映像和调度吸取了比它较主存间的地址映像和调度吸取了比它较早出现的主早出现的主-辅存存储层次的技术,不同的是因其辅存存储层次的技术,不同的是因其速度要求高,不是由软、硬件结合而完全由硬件来速度要求高,不是由软、硬件结合而完全由硬件来实现。实现。从从CPU的角度看,的角度看,cache-主存层次的速度接近于主存层次的速
10、度接近于cache,容量与每位价格则接近于主存。因此,解,容量与每位价格则接近于主存。因此,解决了速度与成本之间的矛盾。决了速度与成本之间的矛盾。以上叙述了主存以上叙述了主存-辅存和辅存和cache-主存这两种存储层次。主存这两种存储层次。现代大多数计算机同时采用这两种存储层次,构成现代大多数计算机同时采用这两种存储层次,构成cache-主存主存-辅存三级存储层次如图辅存三级存储层次如图7.1所示。其中所示。其中cache容量最小,辅存容量最大,各层次中存放的容量最小,辅存容量最大,各层次中存放的内容都可以在下一层次中找到。这种多层次结构已内容都可以在下一层次中找到。这种多层次结构已成为现代计
11、算机的典型存储结构。成为现代计算机的典型存储结构。图图7.1 三层次存储系统三层次存储系统7.2 高速缓冲存储器高速缓冲存储器(cache)7.2.1 cache存储器工作原理存储器工作原理 在一个较短的时间间隔内,地址往往集中在存储器在一个较短的时间间隔内,地址往往集中在存储器逻辑地址空间的很小范围内。程序地址的分布本来逻辑地址空间的很小范围内。程序地址的分布本来就是连续的,再加上循环程序段和子程序段要重复就是连续的,再加上循环程序段和子程序段要重复执行多次,因此,对程序地址的访问就自然地具有执行多次,因此,对程序地址的访问就自然地具有相对集中的倾向。数据分布的这种集中倾向不如指相对集中的倾
12、向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象就称为程序访问的局部性。访问甚少的现象就称为程序访问的局部性。根据局部性原理,可以在主存和根据局部性原理,可以在主存和CPU之间设置一个之间设置一个高速的容量相对较小的存储器,如果当前正在执行高速的容量相对较小的存储器,如果当前正在执行的程序和数据存放在这个存储器中,当程序运行时,的程序和
13、数据存放在这个存储器中,当程序运行时,不必从主存储器取指令和取数据,而访问这个高速不必从主存储器取指令和取数据,而访问这个高速存储器即可,所以提高了程序运行速度,这个存储存储器即可,所以提高了程序运行速度,这个存储器称作高速缓冲存储器器称作高速缓冲存储器(cache)。cache存储器介于存储器介于CPU和主存之间,它的工作速度和主存之间,它的工作速度数倍于主存,全部功能由硬件实现,并且对程序员数倍于主存,全部功能由硬件实现,并且对程序员是透明的。是透明的。图图7.2表示表示cache的基本结构。的基本结构。图图7.2 cache的基本结构的基本结构cache的容量和块的大小是影响的容量和块的
14、大小是影响cache的效率的重要的效率的重要因素。通常用因素。通常用“命中率命中率”来测量来测量cache的效率。命中的效率。命中率指率指CPU所要访问的信息在所要访问的信息在cache中的比率,而将中的比率,而将所要访问的信息不在所要访问的信息不在cache中的比率称为失效率。中的比率称为失效率。一般来说,一般来说,cache的存储容量比主存的容量小得多,的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显
15、地增长。但后,命中率随容量的增加将不会有明显地增长。但随着芯片价格的下降,随着芯片价格的下降,cache的容量还是不断增大,的容量还是不断增大,已由几十已由几十K发展到几百发展到几百K字节,甚至达到几字节,甚至达到几M字节。字节。在从主存读出新的字块调入在从主存读出新的字块调入cache存储器时,如果存储器时,如果遇到遇到cache存储器中相应的位置已被其他字块占有,存储器中相应的位置已被其他字块占有,那么就必须去掉一个旧的字块,让位于一个新的字那么就必须去掉一个旧的字块,让位于一个新的字块。这种替换应该遵循一定的规则,最好能使被替块。这种替换应该遵循一定的规则,最好能使被替换的字块是下一段时
16、间内估计最少使用的。这些规换的字块是下一段时间内估计最少使用的。这些规则称为替换策略或替换算法,由替换部件加以实现。则称为替换策略或替换算法,由替换部件加以实现。cache存储器中保存的字块是主存中相应字块的一存储器中保存的字块是主存中相应字块的一个副本。如果程序执行过程中要对该字块的某个单个副本。如果程序执行过程中要对该字块的某个单元进行写操作,就会遇到如何保持元进行写操作,就会遇到如何保持cache与主存的与主存的一致性问题。通常有两种写入方式:一致性问题。通常有两种写入方式:一种方式是暂一种方式是暂时只向时只向cache存储器写入,并用标志加以注明,直存储器写入,并用标志加以注明,直到经
17、过修改的字块被从到经过修改的字块被从cache中替换出来时才一次中替换出来时才一次写入主存;第二种方式是每次写入写入主存;第二种方式是每次写入cache存储器时存储器时也同时写入主存,使也同时写入主存,使cache和主存保持一致。前一和主存保持一致。前一种方式称为标志交换种方式称为标志交换(flag-swap)方式。只有写标志方式。只有写标志“置位置位”的字块才有必要最后从的字块才有必要最后从cache存储器一次写存储器一次写回主存,所以又称其为回主存,所以又称其为“写回法写回法”。这种方式写操作速度快,但因在此以前,主存中的这种方式写操作速度快,但因在此以前,主存中的字块未经随时修改而可能失
18、效。后一种方式称为通字块未经随时修改而可能失效。后一种方式称为通过式写过式写(write-through),又称写直达法。这种方式,又称写直达法。这种方式实现简单,且能随时保持主存数据的正确性。但是,实现简单,且能随时保持主存数据的正确性。但是,有可能要增加多次不必要的向主存的写入。假如向有可能要增加多次不必要的向主存的写入。假如向cache存储器某一单元写入多少次,也要向主存相存储器某一单元写入多少次,也要向主存相应单元写入多少次。应单元写入多少次。另有一种写操作方法是:另有一种写操作方法是:当被修改的单元根本就不当被修改的单元根本就不在在cache存储器时,写操作直接对主存进行,而不存储器
19、时,写操作直接对主存进行,而不写入写入cache存储器。存储器。为了说明标记是否有效,每个标记至少还应设置一为了说明标记是否有效,每个标记至少还应设置一个有效位,当机器刚加电启动时,总机的个有效位,当机器刚加电启动时,总机的reset信号信号或执行程序将所有标记的有效位置或执行程序将所有标记的有效位置“0”,使标记无,使标记无效。在程序执行过程中,当效。在程序执行过程中,当cache不命中时逐步将不命中时逐步将指令块或数据块从主存调入指令块或数据块从主存调入cache中的某一块,并中的某一块,并将这一块标记中的有效位置将这一块标记中的有效位置“1”,当再次用到这一,当再次用到这一块中的指令或数
20、据时,肯定命中,可直接从块中的指令或数据时,肯定命中,可直接从cache中取指或取数。从这里也可看到,刚加电后所有标中取指或取数。从这里也可看到,刚加电后所有标记位都为记位都为“0”,因此开始执行程序时,命中率较低。,因此开始执行程序时,命中率较低。另外另外cache的命中率还与程序本身有关,即不同的的命中率还与程序本身有关,即不同的程序,其命中率可能不同。程序,其命中率可能不同。具有具有cache的存储器,其平均存取时间计算如下:的存储器,其平均存取时间计算如下:设设cache的存取时间为的存取时间为tc,命中率为,命中率为h,主存的存取,主存的存取时间为时间为tM,则,则平均存取时间平均存
21、取时间=htc+(1-h)(tc+tM)。7.2.2 cache存储器组织存储器组织 1.地址映像地址映像为了把信息放到为了把信息放到cache存储器中,必须应用某种函存储器中,必须应用某种函数把主存地址映像到数把主存地址映像到cache,称作地址映像。在信,称作地址映像。在信息按照这种映像关系装入息按照这种映像关系装入cache后,执行程序时,后,执行程序时,应将主存地址变换成应将主存地址变换成cache地址,这个变换过程叫地址,这个变换过程叫做地址变换。地址的映像和变换是密切相关的。做地址变换。地址的映像和变换是密切相关的。假设主存储器空间被分为假设主存储器空间被分为Mm(0),Mm(1)
22、,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块,第块,第2c块,第块,第2c+1块,块,只
23、能映像到,只能映像到cache的第的第0块,而主存的第块,而主存的第1块,块,第第2c+1块,第块,第2c+1+1块,块,只能映像到,只能映像到cache的第的第1块。块。直接映像的优点是实现简单,只需利用主存地址按直接映像的优点是实现简单,只需利用主存地址按某些字段直接判断,即可确定所需字块是否已在某些字段直接判断,即可确定所需字块是否已在cache存储器中。存储器中。图图7.3 直接映像直接映像cache组织组织(2)全相联映像全相联映像全相联映像方式是最灵活但成本最高的一种方式,全相联映像方式是最灵活但成本最高的一种方式,如图如图7.4所示。所示。图图7.4 全相联映像全相联映像cach
24、e组织组织(3)组相联映像组相联映像组相联映像方式是直接映像和全相联映像方式的一组相联映像方式是直接映像和全相联映像方式的一种折衷方案。组相联映像种折衷方案。组相联映像cache组织如图组织如图7.5所示。所示。组相联映像方式的性能与复杂性介于直接映像与全组相联映像方式的性能与复杂性介于直接映像与全相联映像两种方式之间。当相联映像两种方式之间。当r=0时,它就成为直接时,它就成为直接映像方式;当映像方式;当r=c时,就是全相联映像方式。时,就是全相联映像方式。cache的命中率除了与地址映像的方式有关外,还的命中率除了与地址映像的方式有关外,还与与cache的容量有关。的容量有关。cache容
25、量大,命中率高,但容量大,命中率高,但达到一定容量后,命中率的提高就不明显了。达到一定容量后,命中率的提高就不明显了。图图7.5 组相联映像组相联映像cache组织组织 2.替换算法替换算法当新的主存字块需要调入当新的主存字块需要调入cache存储器而它的可用存储器而它的可用位置又已被占满时,就产生替换算法问题。先介绍位置又已被占满时,就产生替换算法问题。先介绍两种替换算法:两种替换算法:先进先出先进先出(FIFO)算法和近期最少算法和近期最少使用使用(LRU)算法。算法。FIFO算法总是把一组中最先调入算法总是把一组中最先调入cache存储器的字存储器的字块替换出去,它不需要随时记录各个字块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 结构 PPT 课件 存储系统
限制150内