M4 升级到 ARMv9.2 后,加入了什么?

比较了M4加入的新功能。

前言

最近在使用16核Zen4/5玩y-cruncher,看到了启动时针对CPU支持的指令集进行选择二进制包的能力。它是由FeatureDetector提供的。

我照着y-cruncher的组件FeatureDetector写了一个适用于 macOS arm64平台的移植版,也叫做相同的名字。

我们明确得知,M4这一代使用了ARMv9.2,M3仍是ARMv8.6,有新的功能加入进去了。

于是分别在我使用的两台Mac上,运行我的FeatureDetector移植版。

部分探测项两台机器都不支持,以此可以猜测是M5新加入的指令或已经被弃用的指令。由于没有M5的机器,就无法测试了。

多了什么?少了什么?

  • 去掉SSBS(Speculative Store Bypass Safe),用于允许访问推测存储旁路安全位。
  • 新增WFxT(ARMv8.7-A/ARMv9.2-A强制),包含WFET和WFIT,当CNTVCT_EL0中的虚拟计数首次等于或超过指令提供的值时,这些指令支持生成本地超时事件,以作为PE的唤醒事件。
  • 新增SME(ARMv9.2-A),超强SIMD,显著用于刷分(导致了GeekBench6,ST4000+)

Raw文本

其中:

  • ?为两台机器都不支持的项(推测为M5新加入或已经弃用的项)
  • +为新增
  • -为缺失
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
SIMD / Vector:
? EBF16
? HBC

FP Behavior:
+ FPACCOMBINE

Atomics / Memory Model:
- SSBS
? CSSC
+ WFxT
? SPECRES
? SPECRES2

Control-Flow / Security:
? MTE
? MTE2
? MTE3
? MTE4
? MTE_ASYNC
? MTE_CANONICAL_TAGS
? MTE_NO_ADDR_TAGS
? MTE_STORE_ONLY

Matrix / SME:
+ SME
+ SME2
? SME2p1
? SME_B16B16
? SME_F16F16
+ SME_F64F64
+ SME_I16I64
+ SME_B16F32
+ SME_BI32I32
+ SME_F16F32
+ SME_F32F32
+ SME_I16I32
+ SME_I8I32

M4 升级到 ARMv9.2 后,加入了什么?
https://blog.zlicdt.top/2026/03/08/compare-m4-w-m3/
作者
zlicdt
发布于
2026年3月8日
许可协议