【嵌入式汇编基础】-ARM架构基础(一) - 详解
ARM架构基础(一)
在本文中,大家将介绍 Arm 的架构配置文件、异常级别以及 Armv8-A 架构拥护的两种执行状态:AArch64 和 AArch32。
1、架构和配置文件
Arm 生态系统中存在数十种不同的处理器,每种处理器都具有不同的特性、性能、功耗和其他特性。为了在这些处理器之间保持一致性,并允许现有已编译的应用程序在新发布的处理器上运行,Arm 生态系统中的每个处理器都遵循一个架构和一个配置文件。
通过架构指定了支持的指令集、可用的寄存器集以及作为架构异常模型、程序员模型和内存模型一部分的不同特权级别。它定义了处理器必须支持的核心能力以及它们能够选择支持的特性。
您可能听说过“微架构”这个术语,并且想知道架构和微架构之间的区别。当您从基于 Arm 的设备对可执行文件进行逆向工程时,在开始深入研究汇编代码之前,需确定两件事。
- 处理器的微架构是什么?
- 处理器完成了哪种架构?
架构是对处理器行为的描述,并定义了指令集等组件。微架构定义了处理器的构建方式,包括缓存的数量和大小、实现的功能、流水线布局,甚至内存系统的建立方式。
通过具有不同微架构的处理器能够实现相同的架构并执行相同的代码。例如,以下处理器内核完成了 Armv8-A 架构,但在微架构层面有所不同:Cortex-A32、Cortex-A35、Cortex-A72、Cortex-A65、Cortex-A78 等等。确定目标设备基于哪种微架构后,您可能搜索技术参考手册来识别处理器实现的架构,并查找与您的用例相关的微架构详细信息。