文档介绍:第7章存储系统
存储系统的层次结构
高速缓冲存储器(cache)
虚拟存储器
相联存储器
存储保护
习题
目前的计算机中,一般用半导体存储器作为主存储器(简称主存或内存),存放当前正在执行的程序和数据;而用磁盘、磁带、光盘作为外存储器或辅助存储器(简称外存或辅存),存放当前不在运行的大量程序和数据。
半导体存储器可随机访问任一单元,而辅助存储器一般为串行访问存储器。读写该存储器内容时,需要顺序地一位一位地进行,访问指定信息所需时间与信息所在位置有关。
串行存储器又可分成顺序存取存储器和直接存取存储器。例如,磁带上的信息以顺序的方式存储在带上,读/写时要待磁带移动到合适位置后才能顺序读/写,需要耗费较多时间,称为顺序存取存储器。而磁盘存储器对信息的存取包括两个操作: ①磁头直接移动到信息所在区域(磁道);②从该磁道的合适位置开始顺序读/写。比磁带要快得多,是直接存取存储器。
存储系统的层次结构
衡量存储器有三个指标: 容量、速度和价格/位。一般来讲,速度高的存储器,每位价格也高,因此容量不能太大。早期计算机主存容量很小(如几K字节),程序与数据从辅存调入主存是由程序员自己安排的,程序员必须花费很大精力和时间把大程序预先分成块,确定好这些程序块在辅存中的位置和装入主存的地址,而且还要预先安排好程序运行时各块如何和何时调入调出。现代计算机主存储器容量已达几十M字节到几百M字节,但是程序对存储容量的要求也提高了,因此仍存在存储空间的分配问题。
操作系统的形成和发展使得程序员有可能摆脱主、辅存之间的地址人工定位,通过软件、硬件结合,把主存和辅存统一成了一个整体,形成了一个存储层次。从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,而每位平均价格也接近于廉价的慢速的辅存平均价格。这种系统不断发展和完善,就逐步形成了现在广泛使用的虚拟存储系统。在系统中,应用程序员可用机器指令地址码对整个程序统一编址,如同程序员具有对应这个地址码宽度的全部虚存空间一样。该空间可以比主存实际空间大得多,以致可以存得下整个程序。
这种指令地址码称为虚地址(虚存地址、虚拟地址)或逻辑地址,其对应的存储容量称为虚存容量或虚存空间;而把实际主存的地址称为物理地址或实(存)地址,其对应的存储容量称为主存容量、实存容量或实(主)存空间。
当CPU用虚地址访问主存时,机器自动地把它经辅助软件、硬件变换成主存实地址。察看这个地址所对应的单元内容是否已经装入主存,如果在主存就进行访问,如果不在主存内就经辅助软件、硬件把它所在的那块程序和数据由辅存调入主存,而后进行访问。这些操作都不必由程序员来安排,也就是说,对应用程序员是透明的。
主-辅存层次满足了存储器的大容量和低成本需求。
在速度方面,计算机的主存和CPU一直保持了大约一个数量级的差距。显然这个差距限制了CPU速度潜力的发挥。为了弥合这个差距,必须进一步从计算机系统结构上去研究。设置高速缓冲存储器(cache)是解决存取速度的重要方法。在CPU和主存中间设置高速缓冲存储器,构成高速缓存(cache)-主存层次,要求cache在速度上能跟得上CPU的要求。cache-主存间的地址映像和调度吸取了比它较早出现的主-辅存存储层次的技术,不同的是因其速度要求高,不是由软、硬件结合而完全由硬件来实现。
从CPU的角度看,cache-主存层次的速度接近于cache,容量与每位价格则接近于主存。因此,解决了速度与成本之间的矛盾。
以上叙述了主存-辅存和cache-主存这两种存储层次。现代大多数计算机同时采用这两种存储层次,构成cache-主存-。其中cache容量最小,辅存容量最大,各层次中存放的内容都可以在下一层次中找到。这种多层次结构已成为现代计算机的典型存储结构。
三层次存储系统
高速缓冲存储器(cache)
cache存储器工作原理
在一个较短的时间间隔内,地址往往集中在存储器逻辑地址空间的很小范围内。程序地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次,因此,对程序地址的访问就自然地具有相对集中的倾向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象就称为程序访问的局部性。