虽然pae确实可以让32位用大内存,但依然有必要用64位。因为只有 64 位才能完整的用到 CPU 的性能,并不仅仅只是访问大内存。
以 x86_64 的这个架构为例子吧。
x86_64 有 16 个 64 位通用寄存器。总共 1024 比特。
x86 32位 有 8 个 32 位通用寄存器。总共 256 比特。
这意味着,当你的操作系统是 64 位操作系统,程序是 64 位程序时。可以使用的寄存器尺寸为 32 位的 4 倍。
类似的例子还有很多,有很多指令是 64 位专用的扩展,你使用 32 位系统,32 位程序,就没法用到这些扩展。
实际上,arm平台也是一样的。首先 64 位的处理器,寄存器是 64 位,你用 32 位程序就有一半的寄存器闲置无法使用。。。另外还有很多指令,是仅 64 位使用的,32 位程序无法使用。
根据早年间的统计,用 32 位程序,相当于性能上平均打折 11%。不过这是平均水平,对于不同的程序,这个差异很大。有的程序可能64跟32区别不大,有的可能64效率高几倍。
所以结论是有必要。因为只有新架构才会开放新的指令,才能完整的用上 CPU 的性能。

875

被折叠的 条评论
为什么被折叠?



