先说两个规则:
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 的内存? - 北极的回答