英特尔正在通过 APX 和 AVX10 扩展对 x86 ISA 进行重大更改
普通读者会记得我们不久前写过有关英特尔 X64S 提案的文章。这还只是处于概念阶段,但这是一个摆脱 x86 兼容处理器的许多遗留问题的想法。不过,英特尔的工程师似乎还没有结束在指令集上的摆弄,因为该公司刚刚宣布了针对未来处理器的 x86 的两项重大变化:高级性能扩展 (APX) 和统一的 AVX10。
我们先讨论 APX,因为没什么可说的。APX 是 Intel 所说的 x86 ISA 的扩展,主要是将通用寄存器 (GPR) 的数量从 16 个增加到 32 个。如果您不熟悉硬件术语,“寄存器”是一个非常重要的概念。 CPU 内的小空间用于存储处理器在任何给定时间正在积极处理的数据。从某种意义上说,这有点像将 CPU 上的 RAM 加倍,因为它减少了对较慢存储的访问,只是在这种情况下,“较慢存储”是 CPU 缓存。
APX 还做了很多其他事情,这些事情对非开发人员和低级程序员来说意义不大。该扩展添加了三操作数指令格式,这意味着您可以将操作结果存储在第三个寄存器中,而不是覆盖以前的值。(看起来有点像 RISC-y,英特尔。)此外,还对寄存器状态保存/恢复操作进行了优化,通过重新使用最初为英特尔 MPX 扩展标记的空间(该空间已于 2019 年删除)来节省芯片面积。
最终,APX 将意味着平均指令长度的增加,但给定代码块的指令数量显着下降。它还可能导致(取决于应用程序)显着减少对较大缓存和主内存的访问量。总的来说,这些变化应该可以提高使用新扩展的 CPU 的效率,而这在传统上一直是 x86 ISA 的弱点。
过去十年间,x86 公司发生的一件奇怪的事情就是 AVX-512 指令的奇怪碎片。最初是随 Xeon Phi 处理器推出的,随后的 CPU 获得了对某些指令(但不是全部)的支持,或者添加了新指令,但缺少对某些先前指令的支持。Rocket Lake 得到了支持指令,但由于与这些 CPU 的混合性质相关的问题,它们在 Alder Lake 和 Raptor Lake 中被删除。