跳转至

3.1存储器概述

存储器的分类

存储器 按存储介质 按存取方式 按可改写性 按可保存性 按功能和存取速度
磁带
磁表面存储器
顺序存取 (SAM)
读写存储器




非易失性

辅存 (外存)
机械硬盘 (HDD)
直接存取 (DAM)
光盘 (CD-ROM) 光存储器
只读存储器
BIOS芯片 (ROM)





半导体存储器

随机存取
主存 (ROM区)
固态硬盘 (SSD)/Flash 读写存储器 (电可擦除) 辅存 (外存)
CPU寄存器



读写存储器



易失性
寄存器存储器
快表(TLB)/全相联 Cache 按内容访问 (CAM) 高速缓存
Cache 随机存取 (SRAM) 高速缓冲存储器
内存 (RAM区) 随机存取 (DRAM) 主存 (内存)

按功能/容量/读取速度/所在位置分类

  • 寄存器存储器:它是由多个寄存器组成的存储器,如 CPU 内部的通用寄存器组,一般由几个或几十个寄存器组成,其字长一般与计算机字长相同,主要用来存放地址、数据及运算的中间结果,速度与CPU 匹配(快),容量很小。
  • 高速缓冲存储器:简称Cache;它位于主存和CPU之间,用来存放正在执行的程序段和数据,以便CPU能够高速地使用它们(用于缓冲 CPU 与慢速主存之间的性能差异,提高存储系统的访问速度);用 SRAM 实现, 其读取速度可以和CPU相匹配,但存储容量小,价格高,目前会被集成在CPU当中。
  • 主存储器MM(Main Memory):简称主存,又称内存;用来存放计算机运行期间所需的大量程序和数据;主要 由 DRAM 实现, CPU可以直接对其进行访问,也可以和高速缓冲存储器(Cache)及辅助存储器交换数据;特点是容量较小,存储速度较快,造价高。(注意主存并不是单一的内存,还包括 BIOS、硬件端口等)
  • 辅助存储器:简称辅存,又称外存;是主存储器的后援存储器,用来存放当前暂时不用的程序和数据,以及一些需要永久性保存的信息,它不能与CPU直接交换信息;用磁盘、SSD等实现,特点是容量极大,存储速度较慢,造价低

1775231161546-950c32a5-c2f6-405b-835f-d061d21ba0b5.png

按照存储介质分类

存储元件必须具有两个截然不同的物理状态,才能被用来表示二进制代码0和1。目前使用的存储元件主要有半导体器件、磁性材料和光介质。

  1. 磁表面存储器:如磁盘、磁带等

注意:固态硬盘≠ 磁盘,传统的机械硬盘 HDD 才是磁盘,依靠磁盘盘片 +读写磁头完成读写;我们现在常用的固态硬盘(Solid State Disk,SSD),是基于闪存技术Flash Memory,属于电可擦除ROM,即EEPROM。

  1. 半导体存储器:分为MOS型存储器和双极型存储器两种,常见的半导体存储器有 BIOS、内存、寄存器、Cache、固态硬盘 SSD、ROM 芯片、RAM 芯片等。
  2. 光存储器:如只读光盘(CD-ROM),和磁盘一样采用直接存取方式,只可读不可写。
关于 CD-ROM 的一些容易误解的地方
  1. 光盘和磁盘一样,磁头/光头可以先直接跳到目标数据所在的区域附近,然后再顺序查找具体的扇区,这种“先定位区域、再顺序查找”的模式属于直接存取(Direct Access / DAM);
  2. CD-ROM 的全称是 Compact Disc Read-Only Memory(只读光盘)。它是在工厂生产线上通过物理模具“压制”出来的,数据被永久固化在盘面的凹坑中。用户买到手后绝对无法写入或修改数据。市面上能让用户自己刻录数据的光盘叫 CD-R(一次性写入)或 CD-RW(可重复擦写),它们不能被称为 CD-ROM
  3. CD-ROM 不属于 ROM,虽然它和所有的 ROM 一样,具备“非易失性”以及“只能读取数据”的属性,但是从计算机体系结构上看:不属于(或不能划等号)。 在硬件术语中,当我们单独讨论“ROM”时,通常有严格的限定条件:材质 专指半导体芯片(如 BIOS ROM、Flash ROM 等);层级属于内存/主存的一部分,CPU 可以通过总线直接从中读取指令并执行。相反,CD-ROM 是光学介质,属于外存(辅存), CPU 无法直接执行光盘里的程序,必须先将光盘里的数据读取到内存(RAM)中,CPU 才能进行处理。

按信息的可更改性分类

  1. 可读可写存储器(Read/Write Memory):读写存储器中的信息可以读出和写入,RAM芯片是一种读写存储器;
  2. 只读存储器(Read Only Memory):只读存储器用ROM表示,ROM芯片中的信息一旦确定,通常情况下只读不写,但在某些情况下也可重新写入(如 E2PROM、Flash)。

按断电后信息的可保存性分类

  • 易失性存储器:断电后,存储的信息会消失,如RAM、Cache等
  • 非易失性存储器:断电后,存储的信息仍然会保持,如ROM、磁表面存储器、光存储器等

按存取方式分类

  1. 随机存取存储器(Random Access Memory,RAM):特点是按地址访问存储单元,因为每个地址译码时间相同,所以,在不考虑芯片内部缓冲的前提下,每个单元的访问时间是一个常数,与地址无关。不过,现在的DRAM芯片内都具有 行缓冲 ,因而有些数据可能因为已在缓冲而缩短了访问时间。RAM又分为静态RAM(以触发器原理寄存信息)和动态RAM(以电容充电原理寄存信息)
  2. 顺序存取存储器(Sequential Access Memory,SAM):特点是信息按顺序存放和读出,其存取时间取决于信息存放位置,以记录块为单位编址。磁带存储器就是一种顺序存取存储器,其存储容量大,但存取速度慢。
  3. 直接存取存储器(Direct Access Memory,DAM):存取方式兼有随机访问和顺序访问的特点。首先可直接选取所需信息所在区域,然后按顺序方式存取,磁盘存储器就是如此。
  4. 相联存储器Associate Memory(AM): 上述3类存储器都是按所需信息的地址来访问,但有些情况下可能不知道所访问信息的地址,只知道要访问信息的内容特征,此时,只能按内容检索到存储位置进行读写。这种存储器称为按内容访问存储器(Content Addressed Memory,CAM)或相联存储器(Associative Memory)。例如,快表就是一种相联存储器。

Note

ROM 和 RAM 一样,都是随机存取存储器吗?\ 答:是的。虽然经常把只读存储器(ROM)和随机访问存储器(RAM)放在一起进行分类,但ROM的存取方式和RAM是一样的,都是通过对地址进行译码,选择某个单元进行读写。所以两者采用的都是随机存取方式。不过,在程序执行过程中,ROM存储区只能读出信息,不能修改,而RAM区可以读出,也可以修改信息。

存储器的主要性能指标

  1. 存储器容量:存储器可以存储的二进制信息总量(或者说包含的存储单元的总数);若存储器按字节编址,那么一个存储单元为 1 个字节,128B 表示该存储器有 128 个存储单元。
  2. 存取时间 (Access Time,\(T_A\))

定义: 启动一次存储器操作(读或写分别对应取与存)到该操作真正完成所经历的时间。注意读写时间可能不同,DRAM 读慢写快、闪存读快写慢。

具体到读写操作,它的衡量起点和终点如下:

  • 读出时间(Read Access Time): 从存储器接收到有效的地址和读命令开始,直到从存储介质中将数据读出,并稳定地送到存储器的数据总线上为止的时间。
  • 写入时间(Write Access Time): 从存储器接收到有效的地址、数据和写命令开始,直到数据被可靠地写入到指定的存储单元中为止的时间。

核心特征: 存取时间只关注“单次操作”的耗时,它衡量的是存储器阵列本身寻址、信号放大和数据传输的纯粹物理延迟。

  1. 存取周期 (Memory Cycle Time,\(T_C\))

严格定义: 存储器进行两次独立的、连续的存取操作之间所需的最小时间间隔。

核心特征: 存取周期关注的是存储器的“吞吐率”或“连续工作能力”。它不仅仅包含了一次读或写的时间,还包含了让存储器“缓过神来”准备下一次操作的时间。

为什么 存取周期 > 存取时间?

它们之间的数学关系可以严格表示为:公式;其中,公式 被称为恢复时间(Recovery Time)。

存储器在完成一次存取操作后,其内部的物理电路并不能立刻无缝衔接处理下一个请求,而是需要一段“恢复”和“复位”的时间。导致这种现象的原因包括:

    • 破坏性读出(如 DRAM): DRAM的读取是破坏性的。读出数据后,原存储单元内的电荷会被释放掉。因此,在读出操作完成后,存储器内部必须强制执行一个“重写”操作,把数据写回去并让位线电压复位,这段时间就是典型的恢复时间。
    • 电路延迟: 地址译码器、读写控制逻辑等内部电路在电平翻转后,需要一定时间才能稳定回初始状态,以防止下一次操作出现信号干扰。

存取时间决定了 CPU 请求一次数据需要等多久(单次响应速度);而存取周期决定了 CPU 每秒钟最多能向内存发多少次请求(整体带宽上限)。在现代计算机系统中,尤其是对于主存(DRAM)而言,存取周期永远大于存取时间。

  1. 存储器带宽:单位时间内存储器所能传输(存入或读出)的连续最大数据量。

它是衡量存储系统整体数据传输能力的最关键指标,通常以 字节/秒(B/s)、兆字节/秒(MB/s)或 吉字节/秒(GB/s)为单位。它的理论计算公式为:

\(B_m = \frac{W}{T_C}\)

  • \(B_m\):存储器带宽 (Memory Bandwidth)。
  • \(W\):存储器的数据位宽或数据总线宽度。这代表在一次存取周期内,内存能够同时送出或接收的数据位数(通常在计算时会除以 8 转换为字节 Byte)。
  • \(T_C\):存取周期 (Memory Cycle Time)。

从上述公式可以看出,要提升存储器的带宽,通常依赖以下两个核心路径:

  1. 缩短存取周期(减小\(T_C\))

这等同于提高存储器的工作频率(频率是周期的倒数)。例如,每一代内存条的更迭(从 DDR3 到 DDR4,再到 DDR5),其核心进步之一就是通过改进电气特性和预取技术,大幅提高了等效工作频率,从而缩短了连续传输的周期时间。 2. 增加数据位宽(增大\(W\))\ 这等同于拓宽数据传输的“车道”。在现代计算机系统中,最典型的应用就是双通道或四通道内存技术。(例如单根内存条的物理位宽是 64 bit(8 字节),当你在主板上组建双通道时,CPU 的内存控制器会同时并行操作两根内存,将位宽翻倍扩展至 128 bit(16 字节)。在存取周期不变的情况下,理论带宽直接翻倍)

如果将数据传输比作供水系统:

  • 存取时间 (Access Time): 是你拧开水龙头后,等待“第一滴水”流出来所需的时间(单次延迟)。
  • 存取周期 (Cycle Time): 是水龙头连续开关两次之间所必须等待的最短时间。
  • 存储器带宽 (Bandwidth): 是结合了水管的“粗细”(位宽)和连续供水能力(周期)之后,在一秒钟内总共能流出的“总水量”。

存储器的层次化结构

为什么需要层次化结构?

  • 核心矛盾: 人们理想中的存储器需要同时具备“容量大、速度快、成本低”的特点,但现有的技术无法让单一存储器同时满足这三点(例如 SRAM 快但贵且容量小,磁盘容量大且便宜但慢)。
  • 性能鸿沟: 过去几十年,CPU 处理器性能的提升速度远超存储器访问速度的提升,导致 CPU 经常需要等待数据的存取。
  • 解决思路: 利用程序的局部性原理,将不同速度、容量、成本的存储设备有机组合成金字塔结构,使得整个存储系统的“速度接近最高层,容量和单位成本接近最低层”。

存储器的“金字塔”结构

存储系统从上到下一般由 5 级构成,整体呈现金字塔形。

1775288093863-e742df96-4ffd-48b6-baff-cef3ef85a882.png

  • 四大规律: 从上至下(越远离 CPU),访问速度越慢、存储容量越大、单位字节价格越低、被 CPU 访问的频次越低。
  • 内外存划分: 寄存器、Cache、主存统称为内部存储器(内存),CPU 可直接访问;辅存及以下统称为外部存储器(外存),其信息必须先调入主存才能被 CPU 访问。

数据的访问与调度规则

  • 子集副本原则: 一般情况下上一层的内容始终是下一层内容的子集(副本)。即 Cache 中的数据在主存中,主存中的数据也在辅存中(由于写策略的不同,若采用回写,则可能有些新数据不一定在下一层内容里)。
  • 逐层查找原则: 当 CPU 执行指令需要数据时,遵循 寄存器 -> Cache -> 主存 -> 辅存 的顺序逐级查找。
  • 如果 Cache 未命中,则访问主存;主存没有,则访问辅存。
  • 数据调入规则: 数据一般只在相邻两层之间复制传送,且传送单位通常是定长块(Block)。
  • 如果数据在辅存被找到,它不能直接送给 CPU,而是需要:从辅存读出 -> 送到主存 -> 从主存送到 Cache -> 送到寄存器/CPU 。
  • 直接交互特例: 主存作为枢纽,不仅与 Cache 和辅存交换数据,CPU 也可以和主存直接交换信息。

习题演练

  1. 【2010-16】下列有关RAM和ROM的叙述中,正确的是( )。

Ⅰ. RAM是易失性存储器,ROM是非易失性存储器

Ⅱ. RAM和ROM都采用随机存取方式进行信息访问

Ⅲ. RAM和ROM都可用作Cache

Ⅳ. RAM和ROM都需要进行刷新

A. 仅Ⅰ和Ⅱ

B. 仅Ⅱ和Ⅲ

C. 仅Ⅰ、Ⅱ和Ⅳ

D. 仅Ⅱ、Ⅲ和Ⅳ

解析

答案选 A

解答:

I正确,II正确,不再解释。

在实际应用中,通常使用高速RAM作为Cache,而不使用ROM。III错误。

RAM需要定期进行刷新,以防止数据丢失。这是由于RAM采用了电容来存储数据,而电容会逐渐失去电荷,需要定期重新充电。ROM不需要刷新,因为它使用了固化的存储技术,数据是永久保存的。IV错误。

综上,I和II正确。

本题选A。

  1. 【2011-14】下列各类存储器中,不采用随机存取方式的是( )。

A. EPROM

B. CDROM

C. DRAM

D. SRAM

解析

答案选 B

CDROM 采用直接存取方式,注意 CD-ROM 不是 ROM,ROM 特指只读属性的半导体存储器,CDROM 属于光存储器。

  1. (袁书配套习题)下面有关 ROM 和 RAM 的叙述中,错误的是( )\ A. RAM 是可读可写存储器,ROM 是只读存储器\ B. ROM 和 RAM 都采用随机访问方式进行读写\ C. 系统的主存由 RAM 和 ROM 组成\ D. 系统的主存都用 DRAM 芯片实现
解析

答案选 D

A是正确的: RAM(随机存储器)正常工作时可以随时读写;ROM(只读存储器)在正常工作时只能读出数据。

B是正确的: 这里的“随机访问方式”(Random Access)指的是存取时间与存储单元的物理位置无关。RAM和ROM在读取数据时,都可以直接按地址访问任意一个存储单元,且花费的时间相同,所以它们都属于随机存取方式。(这说法稍有瑕疵,一般来说ROM存储区只能读出信息,不能修改,因此RAM和ROM都采用随机存取方式进行信息访问这种真题的描述更为合适)

C是正确的: 计算机的主存(内存)实际上是由RAM和ROM共同组成的。RAM占据了主存的绝大部分,用于存放运行中的程序和数据;而ROM通常用于存放系统启动和底层的BIOS程序。

D是错误的: 通用 PC 系统的主存由 RAM 区和 ROM 区组成,其中 RAM 区一般都用 DRAM 芯片实现,ROM 区则用相应的 ROM 存储元件实现。有些嵌入式专用系统可能其主存都是由 ROM 存储元件实现,还有些系统也会用 SRAM 芯片实现内存,所以,并不是所有系统的内存都是由 DRAM 芯片实现的。答案为选项 D。

  1. (袁书配套习题)下面有关半导体存储器的叙述中,错误的是( )。\ A. 半导体存储器都采用随机存取方式进行读写\ B. ROM 芯片属于半导体随机存储器芯片\ C. SRAM 是半导体静态随机访问存储器,可用作 cache\ D. DRAM 是半导体动态随机访问存储器,可用作主存
解析

答案选 A

A是错误的: 有些半导体存储器可以采用按内容访问方式。例如,全相联映射的 cache 就是根据标志信息(Tag)来访问的。因此,选项 A 的说法是错误的。

B 正确;

C是正确的: SRAM(静态随机存储器)存取速度快,但集成度低、功耗大、成本高,通常用来制作计算机的高速缓存(Cache)。

D是正确的: DRAM(动态随机存储器)集成度高、容量大、成本较低,但速度比SRAM慢,且需要定期刷新,通常用来制作计算机的主存。

  1. (原创题)某计算机的主存存取周期为 50 ns,存取时间为 40 ns,数据总线宽度为 64 位。若不考虑其他开销,该主存的最大理论带宽是多少?

A. 200 MB/s

B. 160 MB/s

C. 1280 MB/s

D. 1.28 GB/s

解析

正确答案:B

解析: 存储器带宽衡量的是连续传输数据的能力。由于存储器在一次存取后需要恢复时间(公式),所以连续访问的最小时间间隔是存取周期(50 ns),而不是存取时间(40 ns)。题干中的“存取时间为 40 ns”是迷惑信息。

计算过程:存储器带宽公式为:公式

数据位宽 公式

存取周期 公式

带宽 公式。

因此选 B。

  1. (袁书配套习题)在主存和 CPU 之间增加 cache 的目的是( )。

A. 增加内存容量

B. 提高内存可靠性

C. 加快信息访问速度

D. 增加内存容量,同时加快访问速度

解析

答案:C.

解析:

  • Cache-主存层次的核心目的是为了缓解 CPU 和主存之间速度不匹配的矛盾,利用局部性原理将 CPU 最常访问的数据放在速度极快的 Cache 中,从而加快信息的整体访问速度。
  • 选项 A 和 D 中提到的“增加内存容量”,是主存-辅存层次(即虚拟存储器)要解决的问题。而且 Cache 的内容是主存的副本,它再大也不会增加内存的容量。

核心考点与易错点补充

  1. 存取方式的陷阱
    • ROM 与 RAM 的存取方式一样: 虽然名称叫“只读”和“随机访问”,但 ROM 和 RAM 都采用随机存取方式(即存取时间与物理位置无关,通过地址译码访问)。
    • 光盘 (CD-ROM) 属于直接存取 (DAM): 磁头/光头先跳到目标区域附近(直接),再顺序查找扇区(顺序),这种结合的模式叫直接存取。
    • 不要忽略“按内容访问”: 并不是所有半导体存储器都按地址访问(随机存取)。相联存储器(CAM,如快表 TLB、全相联 Cache 的标志位 Tag)是按内容访问的。
  2. 介质与概念的区分
    • CD-ROM ≠ ROM: CD-ROM 是光存储器(辅存),而计算机硬件术语中的 ROM 特指半导体存储器(主存的一部分)。CPU 可以直接从 BIOS ROM 中执行指令,但不能直接执行 CD-ROM 中的内容。
    • SSD ≠ 磁盘: 传统的机械硬盘 (HDD) 才是磁盘。固态硬盘 (SSD) 基于闪存技术 (Flash Memory),本质上属于电可擦除的 ROM (EEPROM),是半导体介质。

3. 主存的构成

  • 主存 = RAM + ROM: 现代计算机的内存(主存)绝大部分由 DRAM(动态 RAM,需要刷新)构成,但也包含存放系统启动程序的 ROM 区。因此“主存都用 DRAM 芯片实现”是错误的。

4. 易错点 :混淆“存取时间”与“存取周期” - 误区: 认为 CPU 可以按照“存取时间”的频率去连续读取内存。 - 纠正: CPU 连续读写内存的最大频率受限于存取周期,而非存取时间。做题时如果题目问“连续读取的最小时间间隔”或计算带宽,必须使用存取周期。 6. 易错点 :透明性的概念混淆 - 误区: 看到“透明”就觉得是“能看透、能看见”。 - 纠正: 在计算机体系结构中,透明 = 看不见 = 不需要管。Cache 对系统程序员透明,意思是系统程序员写底层代码时不需要写调度 Cache 的逻辑,硬件全包了。

  1. 易错点 :数据缺失时的流向
  • 误区: CPU 需要的数据如果在 Cache 和主存都没找到,在辅存找到了,辅存会直接把数据送给 CPU。
  • 纠正: 严格遵循层级传递。辅存数据必须先送入主存,再从主存调入 Cache,最后才进入寄存器/CPU。不过要注意特例:CPU 可以绕过 Cache 直接和主存交换信息。