- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章存储系统_修改过祥解.ppt
第7章 存储系统 7.1 存储系统的层次结构 7.2 高速缓冲存储器(cache) 7.3 虚拟存储器 7.4 相联存储器 7.5 存储保护 习题 目前的计算机中,一般用半导体存储器作为主存储器(简称主存或内存),存放当前正在执行的程序和数据;而用磁盘、磁带、光盘作为外存储器或辅助存储器(简称外存或辅存),存放当前不在运行的大量程序和数据。 半导体存储器可随机访问任一单元,而辅助存储器一般为串行访问存储器。读写该存储器内容时,需要顺序地一位一位地进行,访问指定信息所需时间与信息所在位置有关。 串行存储器又可分成 顺序存取存储器:如磁带 直接存取存储器。如磁盘: ① 磁头直接移动到信息所在区域(磁道); ② 从该磁道的合适位置开始顺序读/写。 7.1 存储系统的层次结构 存储器三个指标: 容量、速度和价格/位。三者是互相矛盾的。 早期计算机主存容量很小(如几K字节),程序与数据从辅存调入主存是由程序员自己安排的。程序员必须花费很多精力和时间把大程序预先分块,确定好这些程序块在辅存中的位置和装入主存的地址,以及调入调出顺序。 现代计算机主存储器容量已达几百M字节到几G字节,但是程序对存储容量的要求也提高了,因此仍存在存储空间的分配问题。 操作系统的形成和发展使得程序员有可能摆脱主、辅存之间的地址人工定位,通过软件、硬件结合,把主存和辅存统一成了一个整体,形成了一个存储层次,即虚拟存储系统。 虚拟存储系统:整个主存和辅存构成的整体统一编址,从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,而每位平均价格也接近于廉价的慢速的辅存平均价格。 这种主辅存统一编址的指令地址码称为虚地址(虚存地址、虚拟地址)或逻辑地址,其对应的存储容量称为虚存容量或虚存空间;而把实际主存的地址称为物理地址或实(存)地址,其对应的存储容量称为主存容量、实存容量或实(主)存空间。 虚实地址转换。当CPU用虚地址访问主存时,机器自动地把它经辅助软件和硬件变换成主存实地址。察看这个地址所对应的单元内容是否已经装入主存,如果在主存就进行访问,如果不在主存内就经辅助软件和硬件把它所在的那块程序和数据由辅存调入主存,而后进行访问。这些操作都不必由程序员来安排,也就是说,对应用程序员是透明的。 主-辅存层次满足了存储器的大容量和低成本需求。 在速度方面,在CPU和主存中间设置高速缓冲存储器来解决主存和CPU之间大约一个数量级的差距。从CPU的角度看,cache-主存层次的速度接近于cache,容量与每位价格则接近于主存。因此,解决了速度与成本之间的矛盾。 现代大多数计算机同时采用主存-辅存和cache-主存这两种存储层次,构成cache-主存-辅存三级存储层次。其中,cache容量最小,辅存最大,各层次中存放的内容都可以在下一层次中找到。这种多层次结构已成为现代计算机的典型存储结果。 7.2 高速缓冲存储器(cache) 7.2.1 cache存储器工作原理 程序访问的局部性:程序运行时,在一个较短的时间间隔内,程序地址往往集中在存储器逻辑地址空间的很小范围内,具有相对集中的倾向。程序地址的连续分布,以及循环程序和子程序段的重复执行,程序地址的访问具有集中的倾向。数据分布的集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。 高速缓冲存储器(cache):根据局部性原理,可以在主存和CPU之间设置一个高速的容量相对较小的存储器,如果当前正在执行的程序和数据存放在这个存储器中,当程序运行时,不必从主存储器取指令和取数据,而访问这个高速存储器即可,所以提高了程序运行速度。 cache存储器介于CPU和主存之间,由SRAM组成,工作速度数倍于主存,全部功能由硬件实现,对程序员是透明的。 图7.2表示cache的基本结构 设主存有2n个单元(一个单元容量一字节),地址码为n位,将主存分块,每块有B个字节,则共分成M= 2n/B块。cache也由同样大小的块组成,由于其容量小,所以块的数目小得多,主存中只有一小部分块的内容可存放在cache中。 在cache中,每一块外加有一个标记,指明它是主存的哪一块的副本,相当于主存中块的编号。设主存地址为n位,且n=m+b,则可得出:主存的块数M=2m,块内字节数B=2b。cache地址码为(c+b)位。cache的块数为2c。块内字节数与主存相同。 图7.2 cache的基本结构 当CPU发出读请求时,将主存地址m位(或m位中的一部分)与cache某块的标记相比较,如果结果相等,即访问cache命中(通常一次传送一个字),否则为不命中(说明需要的数据尚未调入cache,那么就要把该数据所在的整个字块从主存一次调进来)。 块的大小称为“块长”
文档评论(0)