什么是 ARM 版本?

当您在处理设备硬件或安装软件时,可能会遇到“ARM 版本”这个词。它通常指的是您的设备处理器(CPU)所基于的 ARM 架构版本指令集架构(ISA)

ARM 架构与核心

首先需要理解,ARM 公司设计的是 处理器架构(Architecture)处理器核心(Core)

  • 架构 (Architecture): 这是一套规范或蓝图,定义了处理器如何执行指令,包括指令集、寄存器模型、内存模型等。常见的架构版本有 ARMv7、ARMv8、ARMv9 等。
  • 核心 (Core): 这是根据特定架构设计和实现的具体处理器单元。例如,Cortex-A7、Cortex-A53、Cortex-A78、Cortex-X1 等都是 ARM 设计的处理器核心,它们分别实现了不同的 ARM 架构版本(如 Cortex-A7 基于 ARMv7,Cortex-A53 基于 ARMv8,Cortex-A78/X1 基于 ARMv8.2 或更新)。设备制造商(如 Qualcomm, MediaTek, Apple, Samsung)会使用这些核心设计自己的芯片(SoC – System on Chip),或者根据 ARM 架构授权自己设计核心。

AArch32 与 AArch64:关键区别

在谈论 ARM 版本时,一个非常重要的概念是

简单来说,AArch32 是 ARMv7 架构及其之前版本使用的 32 位指令集。而 AArch64 是在 ARMv8 架构中引入的 64 位指令集。ARMv8 及更新的架构通常同时支持 AArch64 和 AArch32,但最新的高端芯片(如 ARMv9 架构)可能只支持 AArch64。

当软件需要指定“ARM 版本”时,往往指的是它需要运行在支持特定 指令集(AArch32 或 AArch64) 和相关 ABI(Application Binary Interface)的处理器上。

为什么我需要知道我的设备的 ARM 版本?

了解设备的 ARM 版本至关重要,主要原因在于 软件兼容性性能

软件兼容性

这是最常见也最重要的原因。

  • 许多软件(尤其是 Android 应用 APK 文件、Linux 软件包、或者一些跨平台的应用)会提供针对不同处理器架构的版本。
  • 例如,一个应用可能提供 `app-armeabi-v7a.apk` (对应 32 位 ARMv7 架构/AArch32) 和 `app-arm64-v8a.apk` (对应 64 位 ARMv8 架构/AArch64)。
  • 如果您下载了错误的版本,软件将无法安装或运行。特别是 64 位应用 (AArch64) 无法在只支持 32 位 (AArch32) 的老旧 ARMv7 设备上运行。反之,虽然支持 AArch64 的设备通常也能运行 AArch32 应用,但运行原生的 AArch64 版本通常能获得更好的性能和内存支持。
  • 某些较新的应用程序或操作系统功能可能 仅支持 64 位 ARM (AArch64)。如果您的设备是较老的 32 位 ARMv7,则无法使用这些软件或功能。

性能与功能

不同的 ARM 架构版本引入了新的指令集、更优化的执行管道、更好的缓存管理以及额外的硬件功能(如加密指令、AI/ML 加速指令等)。

  • 基于更新架构的核心通常比旧架构的核心性能更高、能效比更好。
  • 一些特定的功能(如硬件虚拟化增强、更高级别的安全性特性)可能仅在较新的 ARM 版本中可用。

哪里可以找到与我的设备 ARM 版本相关的信息?

您通常在以下地方会遇到需要区分 ARM 版本的情况:

  • 第三方应用商店或下载网站: 当从非官方渠道下载 APK (Android) 或其他格式的软件时,经常会看到多个针对不同 CPU 架构的版本列表。

  • 开发者网站: 一些开源软件或开发工具提供针对不同平台的预编译版本,其中就包括针对 ARM 架构的各种变体。

  • 操作系统系统信息: 在设备的系统设置或关于本机信息中,通常会显示处理器型号。虽然不直接显示“ARMvX”,但通过处理器型号通常可以推断出其支持的 ARM 架构和指令集。

  • Linux 包管理器: 在基于 ARM 的 Linux 系统上(如树莓派、某些服务器),安装软件时包管理器会自动选择适合您架构的版本,但有时手动安装 `.deb` 或 `.rpm` 文件时需要知道架构名(如 `armhf` 代表 32 位硬浮点,`arm64` 或 `aarch64` 代表 64 位)。

  • 编译软件: 如果您从源代码编译软件,需要配置编译器以针对您的具体 ARM 架构和 ABI。

如何检查我的设备的 ARM 版本?

检查设备支持的 ARM 版本取决于您使用的操作系统。以下是一些常见平台的检查方法:

  1. 打开设备的
  2. 向下滚动并找到
  3. 查找
  4. 您可能需要查找您处理器型号的技术规格,以确定它是基于 ARMv8 (支持 AArch64) 还是 ARMv7 (只支持 AArch32)。
  5. 更直接的方法(对于部分设备):
  6. 回到设置主菜单,找到并进入
  7. 在开发者选项中,查找与
  8. 使用第三方应用: 可以安装一些系统信息查看应用(如 CPU-Z),它们通常能详细列出处理器的架构信息(ARMv7 或 ARMv8/AArch64)。

如果您使用的是搭载 ARM 处理器(如 Microsoft SQ 系列, Qualcomm Snapdragon)的 Windows 笔记本或平板电脑:

  1. 按下
  2. 输入 `msinfo32` 并按回车,打开
  3. 在左侧导航栏中,选择
  4. 查找右侧列表中的
  5. 您也可以查看
  6. 通过任务管理器: 按下

如果您在使用树莓派或其他基于 ARM 处理器的 Linux 设备:

  1. 打开终端。
  2. 输入命令 `lscpu` 并按回车。

    查看输出中的以下几行:

  3. 另一种方法是使用 `uname` 命令:

    输入命令 `uname -a` 并按回车。

    输出中会包含架构信息,例如 `armv7l` 或 `aarch64`。

搭载 Apple Silicon (M1, M2, M3 等) 芯片的 Mac 电脑是基于 ARM 架构的。

  1. 点击屏幕左上角的
  2. 选择
  3. 在概览选项卡中,您会看到 项,显示具体的 Apple M 系列芯片型号。
  4. Apple 的 M 系列芯片基于 ARMv8 架构的定制版本,并支持 AArch64 指令集。因此,如果您看到这里是 Apple M 系列芯片,就知道它是 64 位 ARM 架构。

不同的 ARM 版本(特别是 ARMv7 与 ARMv8/v9)有何区别?

主要的区别在于架构引入的

ARMv7-A (通常对应 AArch32)

  • 这是过去十多年智能手机和平板电脑的主流架构。

ARMv8-A (引入 AArch64 并兼容 AArch32)

  • 这是当前大多数智能手机、平板电脑、以及基于 ARM 的笔记本和服务器使用的架构。
  • 增强的硬件虚拟化支持。
  • 新的加密和哈希指令。
  • ARMv9-A (进一步增强,通常只支持 AArch64)

    • 这是最新的 ARM 架构版本,主要面向高性能计算、服务器和高端移动设备。
  • ARM 版本与软件下载如何对应?

    当您需要下载软件时,特别是针对 Android 或 Linux,您会看到一些约定俗成的命名来指示其对应的 ARM 版本或 ABI (Application Binary Interface):

    选择与您设备支持的架构和位宽

    总而言之,了解设备的 ARM 版本,尤其是它是 32 位 (ARMv7/AArch32) 还是 64 位 (ARMv8+/AArch64),是确保软件兼容性和利用设备全部性能的关键。