x86-64是否支持16-32-bit或64-bit更好?单词“本机"是什么意思?或“扩展"有? [英] Does x86-64 support one of 16- 32- or 64-bit better than the others? What meaning do the words "native" or "extension" have?

查看:60
本文介绍了x86-64是否支持16-32-bit或64-bit更好?单词“本机"是什么意思?或“扩展"有?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据 wiki x86-64支持16位,32位和64位程序.从运行代码的速度来看,它是否比另一种更好地支持它?有人(可能是在抽烟),告诉我,Operteron CPU是第一个运行64位的CPU,而本机仍是32位.

According to wiki x86-64 supports 16-bit, 32-bit and 64-bit programs. Does it support one better than the others in the sense it runs the code faster? Someone (who was probably blowing smoke up my ass) was telling me that Operteron CPUs were the first to run 64bits with still being native in 32bits.

在这种情况下,本土"意味着什么?我在Wikipedia上注意到它说64位是x86的扩展,所以这有什么影响?

What does it mean to be "native" in this context? I noticed on wikipedia it said 64bit is an extension to x86 so what impact does this have?

推荐答案

x86-64能够在基本上相同的单位时间内执行多种操作数宽度的指令,因此64位操作数的指令就不会通常比其他宽度更快或更慢.(部分较小宽度的指令实际上可能会由于部分寄存器写停顿而减慢速度).

The x86-64 is capable of executing many instructions of a wide variety of operand widths in essentially the same unit time, so instructions with 64 bit operands aren't really faster or slower than other widths as a general rule. (Some of the smaller-width instructions may actually be slowed down by partial-register write stalls).

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

But 64 bit instructions are more efficient in the sense that more data bits get processed per unit time. (For integer operands, I wonder how effective this is in practice: most just-plain-integer numbers are pretty small and processing the top 56 bits of all-zeros or all-ones doesn't really add value, instead it just adds heat).

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

The x86-64 also offers the assembly coder and the compiler an additional 8 integer registers, which helps complex loops avoid spills to memory, thus making some programs actually faster.

X86-64运行带有64位操作数的指令,而x86-32根本无法做到这一点,因此存在真正的质量差异.这样就可以处理较大的单个值,并且可能是64位系统的主要优点,而无需复杂的地址空间管理,可以处理更大的数据集.从技术上讲,X86-64可以运行更大的程序,但实际上,没有人编写足够大的单个程序来解决这个问题.

X86-64 runs instructions with 64 bit operands, which x86-32 simply cannot do, so there's a real qualitative difference. This allows larger individual values to be processed, and, probably the major benefit of 64 bit systems, much larger data sets without complex address space management. Technically an X86-64 can run much larger programs, but in practice nobody writes single programs big enough for this to matter.

关于本机":我怀疑您的某人"说"32位本地化"仅意味着它将运行32位指令而没有任何有效的代价,除了操作数的大小.

Regarding "native": I suspect that your "someone" saying "Being native in 32 bits" merely means it will run the 32 bit instructions without any effective penalty except for the size of the operands.

我怀疑皓龙是第一个这样做的人.(几乎没有人声称自己是第一;首先考虑克里斯托弗·哥伦布).大型机厂商(例如IBM)很早就从32位转换到64位,从而允许32位和64位指令形式在同一CPU上本机"运行,而PSW只需更改为一位.皓龙处理器很可能是英特尔指令集领域中第一个这样做的计算机.

I doubt about Opterons were first to do this. (Hardly anybody who claims to be first was first; consider Christopher Columbus). The mainframe guys (e.g., IBM) made transitions from 32 to 64 bits quite awhile back, allowing both 32 and 64 bit instruction forms to run "natively" on the same CPU with just a change to one bit in the PSW. The Opterons were likely the first to do this in the Intel instruction set space.

这篇关于x86-64是否支持16-32-bit或64-bit更好?单词“本机"是什么意思?或“扩展"有?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆