我们已经谈过了CPU寄存器,现在来谈谈人们谈到64位就会说的的“内存问题”。
CPU寄存器的一个重要类型就是内存寻址,它只有一个word大小,而且不能被桥接起来使用,CPU处理的数据块“流出”CPU之前就是呆在CPU的内存寻址里的。
听起来很复杂?让我们来做一个比喻:你要到一个远方朋友的家里,你必须要座火车、地铁、飞机等,你先走路来到车站座火车,但是火车一般不能直接将你带到你要去的地方,通常你需要转车。你要到哪个车站?什么时间?在车站的时候你要到哪里去?
内存寻址就是用来解决这些问题的,它保存着CPU处理过的数据在“流出”CPU之后的地址信息,这样CPU再次要使用这个数据的时候就可以马上找到它。数据们通过各种总线来进入CPU,被CPU所处理、变换,但是一次运算通常是不够的,之后数据还需要被带到RAM来做以后的处理之用。
寄存器就是隐藏在数据的后面,当CPU需要某个数据的时候告诉它数据的位置。寄存器是一个word大小,所以word越大,寄存器存储的信息或者说地址组合就越多,处理效率也就更高。
如果你的CPU是32位的,安装了32位的windows XP系统,你升级内存到了4G,却发现系统只能看到有3.2G,这个诡异的现象就是寄存器的限制在作怪。一个32位的操作系统只能寻址最大4G的地址,除了内存地址之外,还有核心和进程以及保留未来虚拟内存的地址等,所以Windows XP SP2的用户不可能利用完整的4G系统内存容量。
|