x86_64架构是否不断更新?



正如我们所知,ARM不断更新ARM架构,我猜最近发布了v9。

但是x86_64架构也在被Intel或AMD不断更新吗?

x86-64按名称进行扩展,只有一个事实上的策略(Intel)让未来的cpu支持以前cpu所做的所有扩展(即向后兼容)。

即使这样,英特尔在服务器cpu中引入了新的ISA扩展,但在当代桌面cpu中却没有,或者movbe在Atom中明显先于主流cpu (Haswell)出现。并继续销售没有AVX或BMI1/BMI2的奔腾/赛扬cpu。(虽然冰湖和后来的奔腾/赛扬可能最终处理256位矢量与AVX2,从而解码VEX前缀,并能够启用BMI1/BMI2。)


AMD有时甚至放弃支持他们的ISA扩展,如果英特尔不采用他们。(就像《推土机家族》中引入的XOP,在《Zen》中被删除了。还有来自推土机的FMA4,在禅宗中正式出现,但在禅宗1中仍然有效,在禅宗2中真的消失了。)参见Agner Fog的博客文章《停止指令集战争》。


不幸的是,对于架构版本,供应商之间没有达成一致的机制,因此,例如,Intel在"486及以后"、"Pentium及以后"、"p6家族及以后"方面保证了各种宽度对齐存储的原子性保证。参见为什么在x86上对自然对齐的变量进行整数赋值是原子的?

请注意,在这种情况下,英特尔和AMD对可缓存内存的加载/存储的原子性保证的共同子集实际上来自AMD:英特尔保证不撕裂任何不跨越缓存线边界的2、4或8字节存储。但是AMD只保证在对齐的8字节块内的那些大小的原子性,而多套接字K10确实会在套接字之间传输。

没有任何一个文档涵盖了现代x86-64 cpu的功能和指令集扩展的最低公分母。