Jac*_*ack 7 cpu x86 assembly instruction-set amd-processor
zen 3 CPU 上有多少条指令是 AMD 独有的?
我只知道3个:mwaitx
, monitorx
, 和clzero
另外,3DNow!和 lwp 指令集曾经是 AMD 独有的,但后来已被删除。
MWAITX
事实上,AMD Zen3 支持、MONITORX
、 和这三个指令CLZERO
,但英特尔处理器尚不支持。
Zen3还支持由4条指令(、、和)组成的SSE4a指令集,这是Intel不支持的。EXTRQ
INSERTQ
MOVNTSD
MOVNTSS
它还支持AMD独有的SEV-SNPPSMASH
指令集(安全加密虚拟化-安全嵌套分页),由4条指令( 、PVALIDATE
、RMPADJUST
和)组成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)。