有人可以解释intel64和amd64体系结构之间是否有区别吗?
有人可以解释intel64和amd64体系结构之间是否有区别吗?
Answers:
根据我的阅读,扩展内存64位技术(EM64T)是Intel对AMD AMD64的实现,而Intel64和AMD64之间的区别是:
当源为0并且操作数大小为32位时,EM64T的BSF和BSR指令的行为不同。处理器将置零标志并将目标的高32位保留为未定义状态。
AMD64支持3DNow!说明。这包括使用操作码0x0F 0x0D和PREFETCHW进行的预取,这对于隐藏内存等待时间很有用。
EM64T缺乏保存和恢复浮点状态的简化(因此更快)版本(涉及FXSAVE和FXRSTOR指令)的能力。
EM64T缺少一些特定于模型的寄存器,这些寄存器被认为是AMD64的体系结构。这些包括SYSCFG,TOP_MEM和TOP_MEM2。
EM64T支持32位模式下的微码更新,而AMD64处理器使用不同的微码更新格式并控制MSR。
EM64T的CPUID指令是特定于供应商的,这与x86风格的处理器一样。
EM64T支持MONITOR和MWAIT指令,操作系统使用它们来更好地处理超线程。
AMD64系统允许将AGP孔径用作IO-MMU。操作系统可以利用此优势使普通PCI设备DMA达到4 GiB以上的内存。EM64T系统要求使用反弹缓冲区,该缓冲区速度较慢。
SYSCALL和SYSRET也仅在EM64T上的IA-32e模式(不兼容模式)下受支持。两种模式均支持SYSENTER和SYSEXIT。
前缀为0×66(操作数大小)的近分支的行为不同。一种类型的CPU仅清除前32位,而另一种类型清除前48位。
在Wikipedia的x86页面上,您可以阅读
在1999-2003年,AMD将这种32位体系结构扩展到了64位,并在早期文档中将其称为x86-64,后来又称为AMD64。英特尔很快以IA-32e的名义采用了AMD的体系结构扩展,后来将其更名为EM64T,最后更名为Intel 64。
换句话说,差异化主要是营销。指令集有特定于Intel和AMD的扩展,但是只要您在用户空间中编写程序,通常就不需要知道它们之间的区别。
you don't generally need to know the difference
错误:在通用说明,即使微小的差别是非常重要的bugs.chromium.org/p/nativeclient/issues/detail?id=2010