AArch64 是什么

原文地址:https://blog.csdn.net/rd_w_csdn/article/details/53841018

查看Android设备的CPU架构信息,可以使用命令来完成:

1、adb shell  
2、cat  /proc/cpuinfo
➜  ~ adb shell
shell@hennessy:/ $ cat  /proc/cpuinfo
Processor   : AArch64 Processor rev 2 (aarch64) //cpu架构
processor   : 0
BogoMIPS    : 26.00

//核心数
Features    : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: AArch64
CPU variant : 0x0
CPU part    : 0xd03
CPU revision    : 2

Hardware    : MT6795 //品牌
shell@hennessy:/ $

AArch64是ARMv8 架构的一种执行状态。

为了更广泛地向企业领域推进,需要引入 64 位构架。同时也需要在 ARMv8 架构中引入新的 AArch64 执行状态。AArch64 不是一个单纯的 32 位 ARM 构架扩展,而是 ARMv8 内全新的构架,完全使用全新的 A64 指令集。这些都源自于多年对现代构架设计的深入研究。更重要的是, AArch64 作为一个分离出的执行状态,意味着一些未来的处理器可能不支持旧的 AArch32 执行状态。 虽然最初的 64 位 ARM 处理器将会完全向后兼容,但我们大胆且前瞻性地将 AArch64 作为在 ARMv8 处理器中唯一的执行状态。我们在这些系统中将不支持 32 位执行状态, 这将使许多有益的实现得到权衡,如默认情况下,使用一个较大的 64K 大小的页面,并会使得纯净的 64 位 ARM 服务器系统不受遗留代码的影响。立即进行这种划分是很重要的,因为有可能在未来几年内将出现仅支持 64 位的服务器系统。没有必要在新的 64 位架构中去实现一个完整的 32 位流水线,这将会提高未来 ARM 服务器系统的能效。这样回想起来, AArch64 作为在 Fedora ARM 项目中被支持的 ARM 构架是一个很自然的过程: armv5tel、armv7hl、aarch64。新的架构被命名为:aarch64,这同 ARM 自己选择的主线命名方式保持一致,同时也考虑到了 ARM 架构名与 ARM 商标分开的期望。

ARMv8-A 将 64 位架构支持引入 ARM 架构中,其中包括:

  • 64 位通用寄存器、SP(堆栈指针)和 PC(程序计数器)
  • 64 位数据处理和扩展的虚拟寻址

两种主要执行状态:

  • AArch64 - 64 位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持
  • AArch32 — 32 位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持

这些执行状态支持三个主要指令集

  • A32(或 ARM):32 位固定长度指令集,通过不同架构变体增强部分 32 位架构执行环境现在称为 AArch32。
  • T32 (Thumb) 是以 16 位固定长度指令集的形式引入的,随后在引入 Thumb-2 技术时增强为 16 位和 32 位混合长度指令集。部分 32 位架构执行环境现在称为 AArch32。
  • A64:提供与 ARM 和 Thumb 指令集类似功能的 32 位固定长度指令集。随 ARMv8-A 一起引入,它是一种 AArch64 指令集。 
    ARM ISA 不断改进,以满足前沿应用程序开发人员日益增长的要求,同时保留了必要的向后兼容性,以保护软件开发投资。在 ARMv8-A 中,对 A32 和 T32 进行了一些增补,以保持与 A64 指令集一致。

传送门: 
https://fedoraproject.org/wiki/Architectures/ARM/AArch64/zh-cn#.E4.BB.8B.E7.BB.8D

https://www.arm.com/zh/products/processors/instruction-set-architectures/armv8-architecture.php


<think>好的,用户想了解aarch64是什么,我需要用中文给他解释清楚。首先,我得确定用户的知识背景,可能是个开发者或者对计算机架构感兴趣的人。先从基本定义开始,说明aarch64是ARM架构的64位版本,属于处理器指令集架构。然后需要区分aarch64和ARM64,避免混淆,可能用户会听过这两个术语,要指出它们通常指同一个东西。 接下来,要介绍ARM架构的特点,比如低功耗、高效能,应用在移动设备、嵌入式系统,现在也扩展到服务器和PC。这部分用户可能知道ARM在手机上的应用,但可能不了解其他领域的发展。需要提到苹果M1芯片这样的例子,帮助用户理解实际应用。 然后要对比AArch64和AArch32,强调64位的优势,比如更大的内存寻址、性能提升、新指令集。这部分技术性较强,但需要用简单明了的语言,避免太专业的术语。可能需要提到寄存器数量增加到31个,指令集的优化,这些都是关键点。 还要解释AArch64的运行模式,兼容32位应用,这对开发者来说很重要,说明处理器如何在不同模式间切换,保持兼容性。这部分可能需要举例子,比如手机运行旧应用的情况。 最后,应用场景部分需要覆盖移动设备、嵌入式、服务器和桌面,特别是近年来ARM在服务器和PC领域的发展,比如AWS的Graviton和苹果的M系列芯片。这部分帮助用户看到趋势,理解aarch64的重要性。 总结时要强调aarch64作为ARMv8-A的核心,推动各领域的发展。整个过程中要注意结构清晰,分点说明,使用用户熟悉的例子,确保技术细节准确但易于理解。检查是否有需要纠正的地方,比如术语是否统一,有没有混淆概念,确保回答正确可靠。</think>aarch64 是 **ARM架构的64位版本**,属于处理器指令集架构(ISA)。以下是逐步解析: --- ### 1. **基本定义** - **ARM架构**:由英国ARM公司设计的精简指令集(RISC)架构,以低功耗、高能效著称,广泛应用于移动设备、嵌入式系统等领域。 - **aarch64**:专指ARMv8-A及后续版本中引入的64位指令集,是ARM架构从32位(如ARMv7)向64位扩展的关键升级。 --- ### 2. **关键区别:aarch64 vs ARM64** - 两者通常指同一概念,但技术上有细微差异: - **aarch64**:严格定义64位执行状态(AArch64),包含64位寄存器和指令集。 - **ARM64**:更通用的术语,常用于描述支持aarch64的处理器或操作系统(如Android ARM64)。 --- ### 3. **核心特性** - **64位寻址**:支持最大4EB(Exabyte)内存寻址,远超32位的4GB限制。 - **寄存器扩展**: - 通用寄存器从16个(AArch32)增至31个(AArch64)。 - 寄存器位宽从32位扩展至64位。 - **新指令集**:优化了数据处理、加密运算和浮点计算效率。 - **向后兼容**:支持在64位模式下运行32位程序(需操作系统配合)。 --- ### 4. **运行模式** aarch64通过两种执行状态实现兼容性: 1. **AArch64**:纯64位模式,使用aarch64指令集。 2. **AArch32**:兼容旧版32位ARM指令集(如ARMv7)。 处理器可根据任务需求切换模式,例如: - 手机运行旧版32位应用时使用AArch32。 - 运行现代64位应用时切换至AArch64。 --- ### 5. **应用场景** - **移动设备**:如iPhone(Apple A系列芯片)、Android旗舰手机(高通骁龙、联发科天玑)。 - **嵌入式系统**:物联网设备、车载芯片。 - **服务器与云计算**:AWS Graviton、华为鲲鹏等ARM服务器芯片。 - **桌面/笔记本**:苹果M1/M2芯片、Windows on ARM设备。 --- ### 6. **技术演进** - **ARMv8-A**(2011年):首次引入aarch64。 - **ARMv9-A**(2021年):增强安全性(如机密计算)、AI加速和矢量处理能力。 --- ### 总结 aarch64是ARM架构的64位标准,通过更高的性能、能效和扩展性,推动了移动设备、服务器等领域的革新。其核心价值在于平衡了**低功耗**与**高性能**,成为现代计算生态的重要基石。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值