Appearance
题目
某计算机的存储器总线中有 24 位地址线和 32 位数据线,按字编址,字长为 32 位。若 000000H~3FFFFFH 为 RAM 区,则需要 512K×8 位的 RAM 芯片数为( )。
错因
A
只算了"字方向"扩展、忘了"位方向"。把 RAM 区直接当作 4M 字节存储(误以为按字节编址),4M B / 512K B = 8——但题目明说按字编址、字长 32 位,每个地址对应 4 字节。漏乘字宽方向需要的 倍后,结果少了 4 倍。
B
把数据线宽度看成 16 位(或把字长当作 16 位)。位方向 片、字方向 片,。题目给的字长是 32 位,位方向应该是 4 片,不是 2 片。
D
把 RAM 区容量算成 16M 字(误以为 24 根地址线全部用满,0000,0000H~FFFFFFH), 片——但题目实际只占 0~3FFFFFH,是 24 位地址里的低 22 位(4M 字)。或更简单的诱因:把 、 算对了但又翻倍一次(写成 )。
总解析
第一步:算 RAM 区总容量
地址范围 000000H ~ 3FFFFFH 共 个地址。按字编址意味着每个地址对应一个 32 位字(=4 字节):
注意:24 根地址线最多寻址 M 字,但本题 RAM 区只占低 4M 个字,剩下的 12M 字地址空间留给其他用途(题目未涉及)。
第二步:算单片 RAM 芯片容量
第三步:分别求"位方向"和"字方向"扩展数
需要存储器总线一侧呈现:地址数 = 4M 字、字宽 = 32 位。
- 位方向(每个字宽 32 位,单片只提供 8 位): 片
- 字方向(总地址 4M 个,单片只提供 512K 个): 片
第四步:相乘得总片数
| 位方向 | 字方向 | 总数 | |
|---|---|---|---|
| 计算 | |||
| 结果 | 4 片 | 8 片 | 32 片 |
最终答案是 C(32)。
关键易错点:
- 按字编址 ≠ 按字节编址——按字编址下"地址数 × 字宽 = 总位数"
- 存储扩展永远是"位方向 × 字方向"两步乘法,少算一维就差倍数
- 地址区间 000000H ~ 3FFFFFH 不要默认占满 24 根地址线