1.7.4 主存编址计算
📝 学习目标
- 掌握主存编址的两个核心量:
- 存储单元个数(行数)
- 编址内容(每个单元多少 bit/Byte)
- 会用“最大地址-最小地址+1”求地址空间大小
- 能在十六进制地址范围题里正确做进制/单位换算
- 能计算“用多少片 64K×8 芯片拼装出目标容量”
🎯 知识点
1) 两个基础概念
- 存储单元(memory cell / addressable unit):内存按某个粒度分组,每组有一个地址
- 编址内容(addressing unit size):每个存储单元包含多少位
课堂提醒:
- 题干不说明时,常默认 按字节编址(1 个地址对应 1 Byte = 8 bit)。
2) 核心公式(必背)
若地址范围为 [Amin, Amax](包含端点),则:
存储单元个数 = Amax - Amin + 1若按字节编址,则“存储单元个数=字节数”。
3) 单位换算(软设常考坑)
在存储容量语境中:
- 1KB = 210 Byte = 1024 Byte
- 1MB = 220 Byte
课堂提醒:别把 1KB 当 1000B(厂商标称可能这么算,但考试通常按 1024)。
4) 芯片容量表示法
- 64K×8 表示:
- 有 64K 个存储单元(行)
- 每个单元 8 bit(= 1 Byte)
- 总容量 = 64K Byte
芯片拼装常用:
总片数 = 总容量 / 单片容量🧠 难点与易错点
- 易错1:忘了“+1”(地址是包含端点的)
- 易错2:十六进制地址直接当十进制减
- 易错3:K 的含义(存储容量里 K=210)
🔑 关键词解释
- 字长(word length):CPU 一次处理的位数(16/32/64)。
- 字节(Byte):固定 8 bit;题干说“字节编址”时必须按 8 bit/单元。
🔍 联想扩展(常见题型组合)
- 题型1:给地址范围(十六进制),求容量(KB/MB)
- 题型2:给总容量 + 单片容量,求芯片片数
- 题型3:给芯片拼装方式(扩位/扩字),求最终容量(更偏硬件,可选了解)
🧪 例题(按难度)
简单(3题)
地址范围为 `[Amin, Amax]`(包含端点),其可编址的存储单元个数应为:
存储芯片规格 `64K×8` 表示该芯片总容量为:
软考存储容量换算中,通常采用:
中级(3题)
例题1(地址范围求容量:课堂例)
内存按字节编址,地址范围从 `A0000H` 到 `CFFFFH`。该地址空间大小约为:
例题2(芯片拼装:课堂例)
若要存储上一题的地址空间(按字节编址),采用 `64K×8` 的存储芯片,需要至少多少片?
字节编址,地址范围从 `0000H` 到 `7FFFH`,该地址空间大小约为:
困难(1题)
要组成 256KB 的主存(字节编址),若使用 `16K×8` 存储芯片(每片容量 16KB),至少需要多少片?
📚 本课小结
- 单元个数 = 最大地址 - 最小地址 + 1
- 默认字节编址:单元个数就是字节数
- 1KB=1024B
- 芯片片数=总容量/单片容量