计算机组成原理 第三章(存储器)—第一节(概述)
写在前面:
- 本系列笔记主要以《计算机组成原理(唐朔飞)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
-
视频链接:计算机组成原理(哈工大刘宏伟)135讲(全)高清_哔哩哔哩_bilibili
一、存储器的功能
存储器是计算机系统中的记忆设备,以二进制的形式存放程序和数据。
由于超大规模集成电路的制作技术的现世,CPU的速度变得惊人得高,而存储器的取数和存数的速度和它很难适配,这使得计算机系统的运行速度在很大程度上受存储器速度的制约。此外,由于I/O设备不断增多,如果它们与存储器交换信息都通过CPU来实现,这将大大降低CPU的工作效率,为此,出现了I/O与存储器的直接存取方式(DMA),这也使存储器的地位更加突出,尤其在多处理机的系统中,各处理机本身都需与其主存交换信息,而且各处理机在互相通信中也都需共享存放在存储器中的数据,因此存储器的地位就更为重要。
二、存储器的分类
1、按存储介质分类
(1)半导体存储器:
存储元件由半导体器件组成的存储器称为半导体存储器。现代半导体存储器都用超大规模集成电路工艺制成芯片,其优点是体积小、功耗低、存取时间短,缺点是当电源消失时,所存储的信息也随即丢失,是一种易失性存储器。近年来(以2020年计)已研制出用非挥发性材料制成的半导体存储器,克服了信息易失的弊病。
半导体存储器又可按其材料的不同分为双极型(TTL)半导体存储器和MOS半导体存储器两种,前者具有高速的特点,后者具有高集成度的特点,并且后者制造简单、成本低廉,故MOS半导体存储器被广泛应用。
(2)磁表面存储器:
磁表面存储器是在金属或塑料基体的表面上涂一层磁性材料作为记录介质,工作时磁层随载磁体高速旋转,用磁头在磁层上进行读/写操作,故称为磁表面存储器。按载磁体形状的不同,又可分为磁盘、磁带和磁鼓(现代计算机已很少采用磁鼓)。
由于用具有矩形磁滞回线特性的材料作磁表面物质,它们按其剩磁状态的不同而区分“0”或“1”,而且剩磁状态不会轻易丢失,故这类存储器具有非易失性的特点。
(3)磁芯存储器:
磁芯是由硬磁材料做成的环状元件,在磁芯中穿有驱动线(通电流)和读出线,这样便可进行读/写操作。磁芯属磁性材料,故它也是不易失的永久记忆存储器。不过磁芯存储器的体积过大、工艺复杂、功耗太大,20世纪70年代后它就逐渐被半导体存储器取代,至2020年几乎已不被采用。
(4)光盘存储器:
光盘存储器是应用激光在记录介质(磁光材料)上进行读/写的存储器,具有非易失性的特点。由于光盘记录密度高、耐用性好、可靠性高和可互换性强等特点,光盘存储器越来越经常被用于计算机系统。
2、按存取方式分类
(1)随机存储器(RAM):
RAM是一种可读/写存储器,其特点是存储器的任何一个存储单元的内容都可以随机存取(也就是想访问哪个存储单元就访问哪个存储单元),而且存取时间与存储单元的物理位置无关。计算机系统中的主存都采用这种随机存储器。
由于存储信息原理的不同,RAM又分为静态RAM(以触发器原理寄存信息)和动态RAM(以电容充放电原理寄存信息)。
(2)只读存储器(ROM):
只读存储器是能对其存储的内容读出,而不能对其重新写入的存储器,这种存储器一旦存入了原始信息后,在程序执行过程中只能将其内部信息读出,而不能随意重新写入新的信息去改变原始信息,因此通常用它存放固定不变的程序、常数和汉字字库,甚至用于操作系统的固化,它与随机存储器可共同作为主存的一部分,统一构成主存的地址域。
早期只读存储器的存储内容根据用户要求,厂家采用掩模工艺把原始信息记录在芯片中,一旦制成后就无法更改,称为掩模型只读存储器(MROM),随着半导体技术的发展和用户需求的变化,只读存储器先后派生出可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)以及电擦除可编程只读存储器(EEPROM),近年来(以2020年计)还出现了闪速存储器(Flash Memory,简称闪存),它具有EEPROM的特点,而且速度比EEPROM快得多。
(3)串行访问存储器:
如果对存储单元进行读/写操作时需按其物理位置的先后顺序寻找地址(也就是存取时间与物理地址有关),则这种存储器称为串行访问存储器。
这种存储器由于信息所在位置不同,使得读、写时间均不相同,例如磁带,不论信息处在哪个位置,读/写时必须从其介质的始端开始按顺序寻找,故这类串行访问的存储器又称为顺序存取存储器。
还有一种属于部分串行访问的存储器,如磁盘,在对磁盘读/写时,首先直接指出该存储器中的某个小区域(磁道),然后再顺序寻访,直至找到位置,故其前段是直接访问,后段是串行访问,称为直接存取存储器。
3、按在计算机中的作用分类
(1)按在计算机系统中的作用不同,存储器主要分为主存储器、辅助存储器、缓冲存储器。
(2)主存储器(简称主存)的主要特点是它可以和CPU直接交换信息。辅助存储器(简称辅存)是主存储器的后援存储器,用来存放当前暂时不用的程序和数据,它不能与CPU直接交换信息。主存和辅存相比,主存速度快、容量小、每位价位高,辅存速度慢、容量大、每位价位低。
(3)缓冲存储器(简称缓存)用在两个速度不同的部件中,例如CPU与主存之间可设置一个快速缓存,起到缓冲作用。
三、存储器的层次结构
1、存储器速度、容量和位价的关系
(1)存储器有3个主要性能指标——速度、容量和每位价格(简称位价),一般来说,速度越高的位价越高,容量越大的位价就越低,而且容量越大,速度一定越低。
(2)下图反映了三个指标的关系,图中由上至下位价越来越低,速度越来越慢,容量越来越大,CPU访问的频度也越来越少。
(3)最上层的寄存器通常都制作在CPU芯片内,寄存器中的数直接在CPU内部参与运算,CPU内可以有十几个、几十个寄存器,它们的速度最快,位价最高,容量最小。主存用来存放将要参与运行的程序和数据,其速度与CPU速度差距较大,为了使它们之间的速度能更好地匹配,在主存与CPU之间插入了一种比主存速度更快、容量更小的高速缓冲存储器Cache,其位价高于主存。以上三类存储器都是由速度不同、位价不等的半导体存储材料制成的,它们都设在主机内。现在计算机将Cache也制作在CPU内。磁盘、磁带属于辅助存储器,其容量比主存大得多,大都用来存放暂时未用到的程序和文件。CPU不能直接访问辅存,辅存只能与主存交换信息,因此辅存的速度可以比主存慢得多。
2、两个层次
(1)存储系统的层次结构主要体现在缓存—主存和主存—辅存这两个存储层次上,如下图所示,CPU和缓存、主存都能直接交换信息,缓存能直接和CPU、主存交换信息,主存可以和CPU、缓存、辅存交换信息。
①缓存—主存层次主要解决CPU和主存速度不匹配的问题。由于缓存的速度比主存的速度高,只要将CPU近期要用的信息调入缓存,CPU便可以直接从缓存中获取信息,从而提高访存速度,但由于缓存的容量小,因此需不断地将主存的内容调入缓存,使缓存中原来的信息被替换掉。主存和缓存之间的数据调动是由硬件自动完成的,这个过程对程序员是透明的。
②主存—辅存层次主要解决存储系统的容量问题。辅存的速度比主存的速度低,而且不能和CPU直接交换信息,但它的容量比主存大得多,可以存放大量暂时未用到的信息,当CPU需要用到这些信息时再将辅存的内容调入主存供CPU直接访问。主存和辅存之间的数据调动是由硬件和操作系统共同完成的。
(2)从CPU的角度来看,缓存—主存这一层次的速度接近于缓存,高于主存,其容量和位价却接近于主存,这就从速度和成本的矛盾中获得了理想的解决办法。主存—辅存这一层次,从整体分析,其速度接近于主存,容量接近于辅存,平均位价也接近于低速、廉价的辅存位价,这又解决了速度、容量、成本这三者之间的矛盾。
(3)在主存—辅存这一层次的不断发展中逐渐形成了虚拟存储系统。
①在虚拟存储系统中,程序员编程的地址范围与虚拟存储器的地址空间相对应,例如机器指令码为24位,则虚拟存储器存储单元的个数可达16M,可是这个数与主存的实际存储单元个数相比要大得多,称这类指令地址码为虚地址(虚存地址、虚拟地址)或逻辑地址,由辅助硬件将虚地址映射到主存当中的某个单元,而把主存的实际地址称为物理地址或实地址。
②物理地址是程序在执行过程中能够真正访问的地址,也是实实在在的主存地址空间,对具有虚拟存储器的计算机系统而言,程序员编程时,可用的地址空间远远大于主存空间,使程序员以为自己占有一个容量极大的主存,但其实这个主存并不存在,这就是将其称为虚拟存储器的原因。
③对虚拟存储器而言,其逻辑地址变换为物理地址的工作是由计算机系统的硬件和操作系统自动完成的,对程序员是透明的(也就是说,程序员基本上只需要关心逻辑地址即可)。用户给出一个地址(虚地址/逻辑地址),虚拟存储器要给出该地址对应的数据,当虚地址的内容在主存时,机器便可立即使用;若虚地址的内容不在主存,则必须先将此虚地址的内容传递到主存的合适单元后再为机器所用。
④关于虚拟存储器的更多内容将会在《操作系统》中介绍。