计算机组成原理中,寻址范围 和 主存容量 的关系。
有一个地址线为20,字长为16位的计算机,求:按字节 和 按字 的寻址范围各为多少?
1、存储单元个数=2的 地址线个数 次方=2^20=1M 个
2、1个存储单元所含二进制位数=存储字长=16位
3、主存容量=存储单元个数×存储子长=2^20 × 16= 2^24 bit = 2^21 B = 2MB
书上答案是:按字节寻址范围为 1M。
存储器容量不是 2MB吗,为何寻址范围只有1M?
如果说cpu访问不了比1M更高的地址空间,也就是说通过容量无法确定寻址范围,或者说通过寻址范围无法确定存储器容量?
要确定寻址范围,主要取决于CPU和存储单元之间的数据读写能力,而不仅仅取决于存储器容量。对于上面提到的计算机,它有20个地址线,也就是可以寻址到2^20个字节,即1M个字节,因此,按字节寻址范围为1M,按字寻址范围为0.5M。
该回答引用ChatGPT
在计算机组成原理中,寻址范围与主存容量的关系是直接相关的。寻址范围指的是 CPU 可以寻址的内存地址的范围,主存容量指的是计算机主存可以存储的数据量。
对于一个地址线为20位、字长为16位的计算机,它的寻址范围和主存容量可以按照字节和按照字进行计算。
1、按字节寻址
按字节寻址时,每个内存单元存储一个字节(8位),因此一个字需要两个内存单元存储。由于字长为16位,因此一个字由两个字节组成。因此,该计算机的寻址范围为:
$2^{20}$ 个地址 $\times$ 1 字节/地址 = 1 MB 的寻址范围
而该计算机的主存容量为:
$2^{20}$ 个地址 $\times$ 2 字节/地址 = 2 MB 的主存容量
2、按字寻址
按字寻址时,每个内存单元存储一个字(16位),因此一个地址对应一个字,不需要将一个字拆分为两个字节进行存储。因此,该计算机的寻址范围为:
$2^{20}$ 个地址 $\times$ 1 字/地址 = 1 MB 的寻址范围
该计算机的主存容量为:
$2^{20}$ 个地址 $\times$ 1 字/地址 = 1 MB 的主存容量
因此,该计算机的寻址范围和主存容量取决于是按字节寻址还是按字寻址。在本例中,按字节寻址时的寻址范围和主存容量都是按字寻址时的两倍。