Performance x86-64是否比其他版本更好地支持16-32位或64位中的一种?这些词是什么意思;本地的;或;“扩展”;有

Performance x86-64是否比其他版本更好地支持16-32位或64位中的一种?这些词是什么意思;本地的;或;“扩展”;有,performance,assembly,x86-64,cpu-architecture,Performance,Assembly,X86 64,Cpu Architecture,根据x86,64支持16位、32位和64位程序。在运行代码速度更快的意义上,它是否比其他程序更好地支持其中一个?有人(可能是在向我吹毛求疵)告诉我Opteron CPU是第一个运行64位的CPU,并且仍然是32位的本地CPU 在这种情况下,“本土”意味着什么?我注意到wikipedia上说64位是x86的扩展,那么这有什么影响呢?x86-64能够在基本相同的单位时间内执行多种操作数宽度的指令,因此一般来说,具有64位操作数的指令并不比其他宽度的指令更快或更慢。(一些较小宽度的指令实际上可能会因部

根据x86,64支持16位、32位和64位程序。在运行代码速度更快的意义上,它是否比其他程序更好地支持其中一个?有人(可能是在向我吹毛求疵)告诉我Opteron CPU是第一个运行64位的CPU,并且仍然是32位的本地CPU


在这种情况下,“本土”意味着什么?我注意到wikipedia上说64位是x86的扩展,那么这有什么影响呢?

x86-64能够在基本相同的单位时间内执行多种操作数宽度的指令,因此一般来说,具有64位操作数的指令并不比其他宽度的指令更快或更慢。(一些较小宽度的指令实际上可能会因部分寄存器写入暂停而变慢)

但64位指令的效率更高,因为单位时间内处理的数据位更多。(对于整数操作数,我想知道这在实践中有多有效:大多数纯整数都非常小,处理全零或全一的前56位并不会真正增加值,而只是增加热量)

x86-64还为汇编编码器和编译器提供了额外的8个整数寄存器,这有助于复杂循环避免溢出到内存,从而使某些程序实际上更快

X86-64使用64位操作数运行指令,而X86-32根本无法做到这一点,因此存在着本质上的区别。这允许处理更大的单个值,并且可能是64位系统的主要优点,可以处理更大的数据集,而无需复杂的地址空间管理。从技术上讲,X86-64可以运行大得多的程序,但实际上没有人编写足够大的单个程序

关于“本机”:我怀疑您的“某人”说的“32位本机”仅仅意味着它将运行32位指令,除了操作数的大小之外,没有任何有效的惩罚


我怀疑奥普特龙是第一个这样做的。(几乎没有人声称第一个是第一个;想想Christopher Columbus)。大型机人员(例如IBM)不久前就实现了从32位到64位的转换,允许32位和64位指令形式在同一CPU上“本机”运行,只需在PSW中更改为一位。Opteron很可能是第一个在Intel指令集空间中这样做的人。

Oops,我误解了这个问题。我的回答是“在64位模式下,哪种大小的操作最有效”。请参见下面的答案