关于4M×16字寻址主存所需寻址位数含义的疑问
问题解答
先明确「寻址需要多少位」的定义
指的是可以唯一标识主存中所有可寻址单元的二进制地址的最小位数,对应硬件层面就是CPU连接到主存的地址总线的根数。
针对本题的逻辑拆解
- 首先明确
4M × 16主存的参数含义:4M代表该主存的可寻址单元总数量,×16代表每个可寻址单元的容量是16bit(本题指定为字寻址,即1个可寻址单元就是1个16bit的字) - 换算单元总数:
4M = 4 × 2^10 × 2^10 = 2^22,也就是说总共有2^22个需要独立寻址的存储单元 - n位二进制数最多可以表示2n个互不重复的数值,要覆盖222个不同的单元地址,最小需要22位二进制数
22位地址的实际作用
这22位会作为地址信号从CPU发送到主存的地址译码器:
- 当CPU需要读写某个存储单元时,会先把该单元对应的22位地址输出到地址总线上
- 主存的译码电路会对这22位地址做解码,唯一选中对应编号的16bit存储单元
- 之后就可以对被选中的单元执行读/写操作,此时传输数据的宽度是16bit,对应16根数据线,数据线的位数和寻址所需的地址线位数没有关联
内容的提问来源于stack exchange,提问作者mathswhizz
相关产品推荐
相关产品推荐

