16根地址线的寻址范围是64KB。
计算方法如下:
每一根地址线可以表示2个状态,即0和1。所以,16根地址线可以表示2^16个不同的状态。
在计算机中,每一个状态对应一个字节的存储空间,所以16根地址线可以表示2^16字节的存储空间。
换算成KB,就是2^10KB,即64KB。
先说两个规则:
1. 寻址范围=寻址单元大小*寻址字长
2. 寻址字长与CPU字长无直接关系
对于比较老的硬盘来说:
寻址单元是一个扇区512字节,寻址字长是2^32,所以可用的最大磁盘容量是2TB
对于现在的硬盘来说:
寻址单元是一个扇区,可能是512字节也可能是4096字节,寻址字长是2^48,所以可用的最大磁盘容量是128PB~1EB左右。
解释一下CPU的字长与寻址字长无直接关系(以下讨论仅限内存,寻址单元大小是字节):
CPU字长可以比寻址字长大,比如:64位系统里的一些DMA控制器地址线就是32位的。
CPU字长也可以比寻址字长小,比如:小霸王学习机里8位系统可用最大内存是64KB;386的16位系统可用内存可以达到640K甚至更大,x86架构下32位CPU开启PAE可以获得物理上超过4GB的寻址范围。
如果CPU字长比地址线要多,那么软件设计时,会尝试屏蔽某些高位;
如果CPU字长比地址线要少,那么访问时一般采取多级选择、多寄存器组合的方式,比如内存分段、分页都是在CPU字长不足的情况下获得更大的内存访问能力手段。
对于32位CPU来说,开启PAE可以获得更大的寻址能力,但Windows将其在软件上限制死了,这个问题可以参见:
为何微软不在新的操作系统中让 32 位支持大于 4GB 的内存? - 北极的回答