|
|
发表于 2007-6-5 22:43:25
|
显示全部楼层
x86-64除了提供64位整数和可以直接访问>4GB的空间外,另外一个优势就是通用寄存器(general-purpose registers)从8个提升到16个,能更有效地利用优化过的指令. 其中一个优势就是减少cpu从内存中读取次数,减少读取等待时间.
目前gcc所生成的64位程序,是将32位的源代码编译成64位系统下可运行的程序,而并利用到x86-64中通用寄存器的优势.写asm程序的话,这个通用寄存器的优势会很明显.同样,如果用C写一个针对64位的程序,那么程序的作者需要在其软件中作出相应的优化来提升64位程序的效率.而目前的情况来看,没有多少程序是完全针对这个优势而作出优化.所以现在32位和64位的程序没有什么太多的差距.
另外,如果用64位的cpu运行32为的系统,那么系统只能看到8个通用寄存器,而如果用64位的系统的话,会看到全部的通用寄存器.
x86-64另外的优势就是NX bit,系统安全上防止buffer overflow.可以一定程度上起到反hack的作用,主要用于服务器方面.
总体来说,x84-64对于桌面系统来说,目前没有什么太多的优势.因人而定,选择32位或64位的系统.但是从长远方面来说,64位终究是将来的目标.
另外,如果有兴趣,可以看看World Domination 201,但是很长.一篇讨论64位下Linux,Windows和OSX的文章.一些论点指出未来2-30年linux有可能会替代Windows成为OS的主流.其中也有一些16位->32位的历史和64位的研究. |
|