【ARM-0】基本概念
1. ARM 介绍
之前称作艾康精简指令集机器,Acorn RISC Machine。现在的含义是 Advanced RISC Machine,高级 RISC 机器;
ARM 是 RISC(精简指令集计算机) 的一种。
指令集分为精简指令集与复杂指令集,对应两种计算机:
- RISC
- CISC
1.0 常见术语
- PE Processing Element:状态机 ,单核单线程的处理器是一个 PE;多核,每个核单线程的处理器,每个核是一个 PE;多核,每个核多线程的处理器,每个线程是一个 PE
- IMPLEMENTATION DEFINED:实现已经被定义,简称 IMP DEF。被描述为 IMP DEF 的特性或功能,其任何实现必须提供完全一致的行为或完全相同值。
- UNPREDICTABLE and CONSTRAINED UNPREDICTABLE: 不可预测和约束不可预测 ,用来描述软件不应该做的事。当某个事件是 不可预测和约束不可预测 时,软件不能依赖处理器的行为。如果软件多次执行不良操作,处理器可能会展现出不同的行为。
- DEPRECATED:不赞成。有时某个特性、功能会因为性能问题、不经常使用或者没有必要而删除,再删除之前,该特性或功能会被标记为 DEPRECATED,同时在该架构中添加一个控制开关,来允许关闭该特性或功能,也方便了使用该特性或功能的遗留代码进行测试。
- RES0/RES1
- Reserved, should be Zero:保留字段,初始化时应为 0
- Reserved, should be One:保留字段,初始化时应为 1
1.1 ARM 与 APPLE
ARM 的前身为艾康电脑,1978年于英国剑桥创立。在1980年代晚期,苹果电脑开始与艾康电脑合作开发新版的ARM核心。1985年,艾康电脑研发出采用精简指令集的新处理器,名为ARM(Acorn RISC Machine),又称ARM 1。因为艾康电脑的财务出现状况,1990年11月27日,获得Apple与VLSI科技的资助,分割出ARM,成为独立子公司。—— 维基百科
ARM 架构所属的公司是安谋科技。2016年7月18日,日本软银集团收购了安谋科技。ARM 盈利模式为出售 ARM IP(Intellectual Property,知识产权)授权。
1.2 ARM 核类型
- A(Applications):高性能,可以运行复杂系统,例如 Linux、Windows
- R(Real-time):面向实时应用场景,通常用在网络设备、嵌入式设备中
- M(Microcontroller):高功耗效率比,用在 IoT,即物联设备中
1.3 ARM 架构版本号
ARMv8-A:具体信息在 v8-A
- v8,表示 verison 8,版本号是 8
- A,表示核的类型是 A 型,即 Application
A 核最新版本是 ARMv9-A,ARMv9-A 基于 ARMv8-A,新增了一些特性:
- 可扩展向量扩展,版本2,SVE2(Scalable Vector Extension2)
- 事务内存扩展,TME(Transactional Memory Extension)
- 分支记录缓存扩展,BRBE(Branch Record Buffer Extension)
- 嵌入式跟踪扩展,ETE(Embeded Trace Extension)
- 追踪缓存扩展,TRBE(Trace Buffer Extension)
1.4 Architecture 与 Micro-Architecture,架构与微架构
架构不会讲处理器是如何构建的,以及内部如何运行。
1.5 Architecture 包括什么
- 指令集
- 寄存器集
- 异常模型
- 内存模型
- Debug、Trace跟踪、Profiling分析
1.6 Micro-Architecture 包括什么
- 流水线长度以及布局
- Cache 分级、数量、大小
- 单个指令有多少个指令周期(Cycle Count,这里说指令周期可能不准确,有待查证)
- 实现了哪些可选的特性
- …
1.7 不止是架构和微架构规范
Arm 对构成现代系统级芯片 (SoC) 的许多组件都有类似的规范。
- Generic Interrupt Controller(GIC):标准的通用中断控制器的规范,在 Armv7-A/R、Armv8-A/R 中有使用。
- System Memory Management Unit(SMMU\IOMMU):提供给非处理器 master 译址服务
- Generic Timer:通用计时器 Generic Timer 是 ARM 架构的一部分,system counter 是一个系统组件。Generic Timer 提供给所有处理器一个 system count reference(参考、引用),Generic Timer 提供的功能通常用在诸如 OS scheduler tick 之类的地方。
- Server Base System Architecture and Trusted Base System Architecture:SBSA、TBSA 为 SoC 开发者提供设计指导。
- Advanced Microcontroller Bus Architecture:总线协议系列的高级微控制器总线体系结构 (AMBA) 控制基于Arm的系统中的组件的连接方式以及这些连接上的协议。
1.8 阅读 ARM 文档
- Arm Architecture Reference Manual:描述了架构规范
- Arm Cortex processor has a Technical Reference Manual (TRM):每个 Cortex 处理器都有一个 TRM 文档。TRM 描述了特定 Cortex 处理器的特性。通常,TRM不会重复ARM架构参考手册中给出的任何信息。
- Arm Cortex processor also has a Configuration and Integration Manual (CIM):每个 Cortex 处理器也有一个 CIM 文档。CIM描述了如何将处理器集成到系统中。通常,该信息仅与SoC设计者相关。
以 Cortex-A75 为例,相关文档如下:图片引用自 ARM 官方文档 [Introducing the Arm architecture]。
reference manuals 和 user guides 的区别:前者提供概念、技术细节,后者提供使用方法。