概述
存储器是一个记忆装置,用来存放程序和数据。它是计算机五大功能部件中的重要部件,是计算机能够实现“存储程序控制”的基础。
通常,将两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件或者软件和硬件相结合的方法连接起来就组成了存储系统。
在这一章的学习中,我们将重点讨论主存储器的工作原理、组成方式以及运用半导体存储芯片组成主存储器的一般原则和方法,同时我们还将介绍高速缓冲存储器和虚拟存储器的基本原理。
存储系统的层次结构
对于存储器的要求是容量大、速度快、成本低。但是要在一个存储器中同时兼顾这三个方面是比较困难的。为此,目前的计算机系统中,通常采用多级存储器体系结构。
通常把各种不同存储容量、不同存取速度的存储器,按一定的体系结构组织在一起,就形成了一个统一整体的存储系统。
目前,比较常用的存储系统是由高速缓冲存储器(cache)、主存储器和外存储器构成的三级存储系统。

图5.1-1 存储器的层次结构

图5.1-2 存储器的层次结构(从硬件角度)
三级存储系统分为两个层次,其中高速缓冲存储器和主存之间层位Cache-主存层次,主存和辅存之间成为主存-辅存层次。

图5.1-3 两种存储层次
Cache存储器是为了解决主存速度不足而提出来的。在cache和主存之间,增加辅助的硬件,构成一个整体。从cpu的角度看,速度接近cache的速度,容量是主存的容量,价格接近主存的价格。由于cache的管理是用硬件来管理的,因此对程序员和用户而言是透明的。
虚拟存储器是为了解决主存容量不足而提出来的。在主存和辅存之间,增加辅助的软件和硬件,让它们构成一个整体。从cpu的角度看,速度接近主存的速度,容量接近辅存的容量,价格接近辅存的价格。由于虚拟存储器需要通过软件和硬件来统一管理,因此,对系统程序员是不透明的,但是对应用程序员是透明的。
层次间应满足的原则:
一致性原则:处在不同层次的同一个信息应保持相同的值。
包含性原则:处在内层的信息一定被包含在其外层的存储器中,反之则不成立,即内层存储器的全部信息,是其相邻外层信息的一部分的复制品
存储器的分类
构成存储器的存储介质,目前主要采用的是半导体器件和磁性材料。存储器中最小的存储单位,我们成为是存储位元,即存放一位二进制代码。由若干个存储位元可以组成一个存储单元。由许多存储单元就可以组成一个存储器。
根据存储材料的性能和使用方法不同,存储器有各种不同的分类方法。
1. 按照存储介质分:用半导体器件组成的存储器称为半导体存储器;用磁性材料做成的存储器称为磁表面存储器。采用激光技术控制访问的存储器称为光存储器。
2. 按存取方式:如果存储器中任何存储单元的内容都能被随机存取,而且存储时间和存取单元的物理位置无关,这种存储器就是随机存储器。半导体存储器都是随机存储器。如果存储器只能按某种顺序来存储,也就说存取时间和存储单元的物理位置有关,这种存储器就是顺序存储器。比如磁带。
3. 按存储内容的可变性:有些半导体存储器存储的内容是固定不变的,也就是说只能读出而不能写入,这种半导体存储器称为只读存储器。那种既能读出又能写入的半导体存储器称为随机存储器。
4. 按存储器在计算机系统中的作用:高速缓冲存储器、主存储器和辅助存储器。这三种存储器的基本特性和工作原理我们将在随后的讲解中做详细的介绍。
存储器层次结构概念小结
概括来说,基于缓存的存储器层次结构行之有效,是因为较慢的存储设备比较快的存储设备更便宜,还因为程序倾向于展示局部性:
1. 利周时间局部性:由于时间局部性,同一数据对象可能会被多次使用。一旦一个数据对象在第一次不命中时被复制到缓存中,我们就会期望后面对该目标有一系列的访问命中,因为缓存比低一层的存储设备更快,对后面的命中的服务会比最开始的不命中快很多。
2. 利用空间局部性:块通常包含有多个数据对象,由于空间局部性,我们会期望后面对该块中其他对象的访问能够补偿不命中后复制该块的花费。