最近の ARM CPU Core は 32bit 命令への対応が徐々に無くなりつつあり 64bit 命令のみ動作するようになっています。
Apple はすでに iOS11 の段階で 64bit に完全移行しており 32bit のアプリが動作しません。同時にプロセッサも 32bit 命令が廃止されており、Apple A11 (iPhone8/X) 以降は AArch32(ARMv7) 命令非対応となっています。
同じように ARM の CPU Core も完全な 64bit 化が進んでいます。ARM Core の世代と 32bit/64bit への対応状況をまとめてみました。
Arch | Prime CORE | big (P-Core) | LITTLE (E-Core) |
---|---|---|---|
ARMv7 | Cortex-A15 | Cortex-A7 | |
Cortex-A17 | |||
ARMv8 | Cortex-A57 | Cortex-A53 | |
Cortex-A72 | |||
Cortex-A73 | |||
ARMv8.2 | Cortex-A75 | Cortex-A55 | |
Cortex-A76 | |||
Cortex-A77 | |||
Cortex-X1 | Cortex-A78 | ||
ARMv9 | Cortex-X2 | Cortex-A710 | Cortex-A510 |
Cortex-X3 | Cortex-A715 | ||
ARMv9.2 | Cortex-X4 | Cortex-A720 | Cortex-A520 |
32bit のみ | 32bit/64bit 両対応 | 64bit のみ |
ARMv8 世代の CPU までは 32bit/64bit 両方の命令に対応していますが、ARMv9 世代になってからは段階的に 32bit 命令が廃止されてきていることがわかります。
Apple の watchOS のように、ILP32 で 32bit OS ながら対応命令が 64bit (AArch64) のみとなっているものもあります。(詳しくはこちら「Apple Watch Series 6 と CPU 性能の測定」)