题记:复杂的问题事实上都很简单
例子一
假设说我们有一个16KB的存储器,那么他按字节、字、双字编址的寻址范围究竟是多少呢?
我们可以这么来理解。
存储器的存储空间 = 每一个寻址单元的容量 × 寻址单元的数量
而寻址单元的数量也就是我们所说的寻址范围了
因此,我们有:
-
如果是按字节寻址
一个字节占1B,故我们的寻址单元的大小为1B,因此寻址范围就是:
存储器的存储空间 / 每一个寻址单元的容量 = 寻址范围
16KB / 1B = 16K -
如果是按字寻址
一个字占2B,因此寻址范围就是 16KB / 2B = 8K -
如果是按双字寻址
一个双字占4B,因此寻址范围就是 16KB / 4B = 4K
例子二
假设说我们的存储器的地址线有24根,那么存储器按字节、字、双字编址的寻址范围究竟是多少呢?
-
按字节寻址
因为存储器的存储单元默认为字节,因此,寻址范围自然就是
224=16M -
按字寻址
根据例子一的公式
存储器的存储空间 = 每一个寻址单元的容量 × 寻址单元的数量
那么因为寻址单元的容量增加了一倍,故寻址单元的数量减少一半,寻址范围自然就是
223=8M -
按双字寻址
同理,寻址范围就是
222=4M
总结
上述例子阐释了存储器的存储空间 = 每一个寻址单元的容量 × 寻址单元的数量这个公式的用法,这样一来,逻辑就较为统一,比较好理解了。当然,例子二还有其他的做法,不妨参考他的见解。最后,贴一张这张图片,这张图片是课堂上截下的图片,当时没有听懂,实在惭愧。