计算机系统基础知识(二):硬件篇之存储器详解
📝 前言
在计算机硬件系统中,存储器是仅次于处理器的核心部件,负责存储程序指令和数据。存储器系统是一个多层次的复杂结构,从CPU内部的寄存器到外部的磁盘,构成了一个金字塔式的存储体系。
对于架构师考试而言,存储器部分是必考且分值占比较高的内容,通常涉及基本概念辨析、性能计算、Cache映射、主存扩展等多个维度。本文将系统梳理存储器的核心知识点,结合历年考点和真题,帮助你在复习中构建清晰的知识体系。
一、存储器概述
1.1 存储器的分类
存储器可以从多个维度进行分类:
|
|
|
|
|
|---|---|---|---|
| 存取方式 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 存储介质 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 断电后信息 |
|
|
|
|
|
|
|
|
| 读出特性 |
|
|
|
|
|
|
|
1.2 存储器的层次结构
为了解决速度、容量、成本三者之间的矛盾,现代计算机采用层次化存储结构:
寄存器(最快,容量最小,成本最高) ↓ 高速缓存(Cache:L1/L2/L3) ↓ 主存储器(内存:DRAM) ↓ 辅助存储器(硬盘、SSD、光盘——容量最大,速度最慢,成本最低)
这个层次结构包含两个关键层次:
-
Cache—主存层次:解决CPU与主存速度不匹配的问题,由硬件自动完成,对用户透明
-
主存—辅存层次:解决主存容量不足的问题,实现虚拟存储系统,由硬件和操作系统共同管理
1.3 程序访问的局部性原理
局部性原理是Cache和虚拟存储器设计的理论基础:
-
时间局部性:某个存储单元被访问后,不久可能再次被访问(如循环代码)
-
空间局部性:某个存储单元被访问后,其邻近单元不久也可能被访问(如数组元素、顺序指令)
二、主存储器技术详解
2.1 半导体存储器:SRAM vs DRAM
SRAM和DRAM是构成主存和Cache的核心器件,也是考试中的高频考点:
|
|
|
|
|---|---|---|
| 存储原理 |
|
|
| 破坏性读出 |
|
|
| 是否需要刷新 |
|
需要
|
| 运行速度 |
|
|
| 集成度 |
|
高 |
| 功耗 |
|
|
| 成本 |
|
低 |
| 地址线送法 |
|
分两次送
|
| 主要用途 | Cache | 主存
|
考点提示:2018年系统架构师考试真题——计算机系统的主存主要是由( )构成的?正确答案是DRAM。SRAM虽然速度更快,但因成本高、集成度低,主要用于Cache而非主存。
2.2 DRAM的刷新机制
DRAM依靠电容存储电荷,电荷只能维持约2ms,因此必须定期刷新:
-
刷新实质:读出原信息,再由刷新放大器形成原信息并重写(再生过程)
-
刷新单位:以行为单位,每次刷新一行
-
刷新不由CPU控制:由存储器独立完成
三种刷新方式:
|
|
|
|
|
|---|---|---|---|
| 集中刷新 |
|
|
|
| 分散刷新 |
|
|
|
| 异步刷新 |
|
|
|
2.3 只读存储器(ROM)
ROM虽然名为"只读存储器",但现代ROM大多支持写入,只是写入条件特殊:
|
|
|
|
|---|---|---|
| MROM |
|
|
| PROM |
|
|
| EPROM |
|
|
| Flash Memory |
|
|
| SSD |
|
|
注意:逻辑上,主存由RAM + ROM组成,两者统一编址。BIOS芯片就是典型的ROM,存储自举装入程序,负责引导操作系统。
2.4 主存的技术指标
-
存储容量 = 存储单元个数 × 存储字长(如 8K × 8位)
-
存取时间:执行一次读或写操作所需时间
-
存取周期:连续两次独立读写操作的最小时间间隔(存取周期 ≥ 存取时间)
-
存储器带宽:单位时间内存储器存取的信息量(字/秒或字节/秒)
三、Cache技术详解
Cache是解决CPU与主存速度差异的关键技术,也是考试中计算题和综合题的重点。
3.1 Cache的基本原理
-
位置:位于CPU和主存之间,通常集成在CPU内部
-
实现材料:SRAM(速度快,成本高)
-
数据交换单位:以"块"为单位(主存的块又叫"页/页框",Cache的块又叫"行")
-
命中率:h = 命中次数 / (命中次数 + 访问主存次数)
3.2 Cache与主存的地址映射
Cache很小,主存很大,需要建立映射关系。有三种基本映射方式:
|
|
|
|
|
|---|---|---|---|
| 直接映射 |
|
|
|
| 全相联映射 |
|
|
|
| 组相联映射 |
|
|
|
直接映射地址结构:
主存地址 = 主存字块标记 | Cache字块地址 | 块内地址
3.3 Cache替换算法
当Cache满时,需要选择替换哪个块:
|
|
|
|
|---|---|---|
| FIFO |
|
|
| LRU |
|
|
| 随机法 |
|
|
3.4 Cache写策略
CPU修改了Cache中的数据副本,如何保证主存数据一致?
|
|
|
|
|
|---|---|---|---|
| 写直达法 |
|
|
|
| 写回法 |
|
|
|
四、主存储器与CPU的连接
4.1 存储芯片的基本引脚
-
地址线:单向输入,位数决定寻址范围(n条地址线可寻址2^n个存储单元)
-
数据线:双向,位数决定每次读写的数据量
-
控制线:读写控制线(WE/WR)、片选线(CS/CE)
容量计算:存储芯片容量 = 2^(地址线数) × 数据线位数 例:地址线13根,数据线8根 → 2^13 × 8位 = 8K × 8位
4.2 存储器扩展技术
当单块芯片不能满足系统需求时,需要进行扩展:
|
|
|
|
|
|---|---|---|---|
| 位扩展 |
|
|
|
| 字扩展 |
|
|
|
| 字位扩展 |
|
|
|
4.3 片选信号生成方式
-
线选法:用CPU高位地址线直接作为片选信号(n条线 → n个片选信号)
-
优点:电路简单
-
缺点:地址空间不连续,存在地址重叠
-
译码片选法:通过译码器(如74LS138)生成片选信号(n条线 → 2^n个片选信号)
-
优点:地址空间连续,利用率高
-
缺点:电路略复杂
五、多模块存储器
为提高访存速度,采用多模块技术:
5.1 多体并行存储器
-
高位交叉编址:用高位地址选择存储体,连续地址在同一体内
-
连续取n个字耗时:n × 存取周期
-
低位交叉编址:用低位地址选择存储体,连续地址分布在各个体内
-
连续取n个字耗时:存取周期 + (n-1) × 存取时间
-
采用流水线方式,宏观并行,微观串行
模块数设计:设存取周期为T,存取时间为r,为使流水线不间断,需满足 m ≥ T/r
5.2 双端口RAM
-
作用:优化多核CPU访问同一内存条的速度
-
特点:有两组独立的数据线、地址线、控制线
-
访问冲突处理:
-
不同地址:可同时访问
-
同一地址读:可同时访问
-
同一地址写或一写一读:冲突,由判断逻辑关闭一个端口
六、虚拟存储器
6.1 基本概念
-
目的:解决主存容量不足的问题,让程序员在更大的虚拟地址空间中编程
-
实现:由硬件(MMU)和操作系统共同管理
-
特点:速度接近于主存,容量接近于辅存
6.2 实现方式
|
|
|
|
|---|---|---|
| 分页式 |
|
|
| 分段式 |
|
|
| 段页式 |
|
|
6.3 地址转换与TLB
-
地址转换:逻辑地址(虚页号+页内地址)→ 查页表 → 物理地址(页框号+页内地址)
-
TLB(快表):页表的Cache,存放常用页表项,加速地址转换
-
缺页处理:当访问的页不在主存时,发生缺页中断,由操作系统从磁盘调入
七、辅助存储器
7.1 磁盘存储器
磁盘结构:
-
记录面(盘面) → 磁道 → 扇区(最小读写单位)
-
柱面:不同盘面相同编号的磁道构成圆柱面
磁盘地址:驱动器号 + 柱面号 + 盘面号 + 扇区号
性能指标:
|
|
|
|---|---|
| 存取时间 |
|
| 数据传输率 |
|
| 格式化容量 |
|
7.2 固态硬盘(SSD)
-
原理:基于Flash芯片(EEPROM)
-
特点:
-
以页(page)为单位读写,以块(block)为单位擦除
-
读快写慢(写前需擦除)
-
支持随机访问,无寻道时间和旋转延迟
-
安静、抗震、功耗低、价格较高
-
磨损均衡技术:将擦除平均分布在各块上,延长使用寿命
-
动态磨损均衡:写入时优先选擦除次数少的块
-
静态磨损均衡:自动迁移数据,让老块承担读任务
八、考点归纳与真题解析
题型一:基本概念辨析
例题1(2017下半年):在程序的执行过程中,Cache与主存的地址映射是由( )完成的。 A. 操作系统 B. 程序员调度 C. 硬件自动 D. 用户软件
解析:Cache与主存的地址映射完全由硬件自动完成,对程序员和操作系统透明。正确答案是 C。
例题2(2016年):在嵌入式系统的存储部件中,存取速度最快的是( )。 A. 内存 B. 寄存器组 C. Flash D. Cache
解析:存储器层次结构中,寄存器最接近CPU,速度最快。正确答案是 B。
例题3:计算机系统的主存主要是由( )构成的。 A. DRAM B. SRAM C. Cache D. EEPROM
解析:主存使用DRAM,成本低、集成度高;SRAM用于Cache;EEPROM是ROM的一种。正确答案是 A。
题型二:SRAM与DRAM对比
例题4:以下关于DRAM和SRAM的描述,错误的是( )。 A. DRAM需要定期刷新,SRAM不需要 B. DRAM是破坏性读出,SRAM是非破坏性读出 C. DRAM集成度高,SRAM集成度低 D. DRAM速度比SRAM快
解析:DRAM速度比SRAM慢,D选项错误。正确答案是 D。
题型三:Cache映射与计算
例题5:某计算机主存容量为64KB,Cache容量为2KB,块大小为16B,采用直接映射方式。请计算: (1)Cache有多少块? (2)主存地址格式如何划分? (3)主存地址为1000H(十六进制)映射到Cache的哪一块?
解析:
-
Cache块数 = Cache容量 / 块大小 = 2KB / 16B = 2×1024 / 16 = 128块
-
块内地址:16B → 4位(2^4=16) Cache字块地址:128块 → 7位(2^7=128) 主存字块标记 = 主存总地址位数 - 7 - 4 = 16 - 11 = 5位
主存地址格式:| 主存字块标记(5位) | Cache字块地址(7位) | 块内地址(4位) |
-
1000H = 0001 0000 0000 0000B 块内地址(低4位):0000 → 0 Cache字块地址(中间7位):1000000B = 64 映射到Cache的第64块
题型四:磁盘性能计算
例题6:某硬盘有8个记录面,每面有1024个磁道,每道64个扇区,每扇区512字节,转速为5400转/分。求: (1)磁盘容量 (2)平均旋转延迟 (3)数据传输率
解析:
-
磁盘容量 = 8 × 1024 × 64 × 512 = 8 × 1024 × 32768 = 8 × 33,554,432 = 268,435,456字节 = 256MB
-
转速5400转/分 = 90转/秒 平均旋转延迟 = 1/2 × (1/90)秒 = 1/180秒 ≈ 5.56ms
-
每磁道容量 = 64 × 512 = 32KB 数据传输率 = 90转/秒 × 32KB = 2880KB/秒 ≈ 2.81MB/秒
题型五:主存芯片连接(综合题)
例题7:用4片8K×8位的RAM芯片和2片8K×8位的ROM芯片,组成一个32K×8位的存储器系统,其中RAM地址范围为0000H~7FFFH,ROM地址范围为8000H~9FFFH。请设计片选逻辑(用74LS138译码器)。
解析思路:
-
总容量32K×8位,需要15根地址线(A0~A14)
-
每片芯片8K,需要13根地址线(A0~A12)进行片内寻址
-
用A13、A14作为译码器输入
-
RAM占4片,地址连续,可用两个译码输出分别选通两片RAM(每两片一组进行位扩展)
-
ROM占2片,用另一个译码输出选通
九、复习建议与口诀记忆
9.1 知识体系梳理
text
存储器复习主线: 分类与层次 → SRAM/DRAM对比 → ROM类型 → Cache(映射/替换/写策略) ↓ 主存连接(位扩展/字扩展) → 多模块(低位交叉/高位交叉) ↓ 虚拟存储器(页式/段式/TLB) → 辅存(磁盘/SSD)
9.2 记忆口诀
SRAM vs DRAM口诀:
text
SRAM:触发(触发器)快(速度快)但贵(成本高),缓存(Cache)用它就对了 DRAM:电容(电容)慢(速度慢)便宜(成本低),内存(主存)全靠它
Cache映射方式口诀:
text
直接映射一对一(一个主存块只对应一个Cache块) 全相联映射多对多(任意映射) 组相联是中间派(固定组内任意放)
ROM类型口诀:
text
MROM厂里定(厂家生产时写入) PROM写一次(用户写一次) EPROM可重写(紫外线擦除) EEPROM电擦除(电信号擦除) Flash闪存最常见(U盘SSD都用它)
9.3 高频考点提醒
根据近年考试统计,存储器部分高频考点:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
结语
存储器是计算机硬件系统中内容最丰富、考点最密集的部分之一。从基础的SRAM/DRAM对比,到Cache映射计算,再到主存芯片连接和虚拟存储器,每一个知识点都可能成为考试的重点。
希望这篇复习笔记能帮助你系统梳理存储器知识,理清各概念之间的关系,掌握核心计算方法和解题思路。复习过程中,建议结合真题多练习,特别是Cache映射和磁盘性能计算类题目,做到熟练运用公式和原理。
如有疑问或需要深入探讨某个知识点,欢迎随时交流!


评论