Zen 3 CPU 上有多少条 AMD 专有指令?

Jac*_*ack 7 cpu x86 assembly instruction-set amd-processor

zen 3 CPU 上有多少条指令是 AMD 独有的?

我只知道3个:mwaitx, monitorx, 和clzero

另外,3DNow!和 lwp 指令集曾经是 AMD 独有的,但后来已被删除。

Jér*_*ard 5

MWAITX事实上,AMD Zen3 支持、MONITORX、 和这三个指令CLZERO,但英特尔处理器尚不支持。

Zen3还支持由4条指令(、、和)组成的SSE4a指令集,这是Intel不支持的。EXTRQINSERTQMOVNTSDMOVNTSS

它还支持AMD独有的SEV-SNPPSMASH指令集(安全加密虚拟化-安全嵌套分页),由4条指令( 、PVALIDATERMPADJUST和)组成RMPUPDATE。它还应该支持由 SEV-ES(安全加密虚拟化 - 加密状态)指令组成的较旧的相关指令集VMGEXIT。所有这些都是AMD-V的一部分(所有这些缩写都有点令人困惑)。话虽这么说,此类指令通常仅在 EPYC 处理器上可用,而在 Ryzen 处理器上不可用。此外,据我所知,英特尔对此有类似的指令集,例如Total Memory Encryption。AMD-V 的替代品是Intel VT-x

此外,skinit 指令集(为了安全)也是 AMD-V 的一部分,由 2 条指令SKINIT和组成STGI,也是 AMD 特定的。它似乎在某些 Zen 处理器(包括 Zen3)上可用,但尚不清楚到底是哪一款(它至少针对 AMD Ryzen PRO 处理器)。

与 3DNow! 一样,FMA4指令集是 AMD 独有的。它肯定在 Zen1 上受到支持,尽管官方并未如此(没有出现在任何 AMD Zen 相关文档中,也没有由 CPUID 指令提供)。事实上,多个用户报告指令集工作正常(参见[1][2][3])。Zen2 和 Zen3 当然根本不支持它(参见@PeterCordes 的评论)。官方表示,并非所有 Zen 架构都支持 AMD 的 TBM、FMA4、XOP 和 LWP 指令集(之前在 Bulldozer 架构上可用)(请参阅)。

欲了解更多信息,您可以查看AMD的手册(vol 3, rev 3.33)