ARM架构介绍(1)
本章主要介绍ARM架构通用知识,不仅仅包括ARMv7\ARMv8/ARMv9
1.ARM体系结构介绍
ARM公司主要向客户提供处理器IP。ARM体系结构是一种硬件规范,主要用来约定指令集、芯片内部体系结构等。以指令集为例,ARM体系结构并没规定每一条指令在硬件IP中如何实现,只是约定了每条指令的格式、行为规范、参数等。
为了降低客户基于ARM体系结构开发处理器(processor 或 core)的难度,ARM公司通常在发布新版本的体系结构之后,根据不同的应用需求开发出兼容该体系结构的处理器(processor 或 core)IP,然后授权给客户。客户获得ARM设计的处理器IP后,基于其定制和设计自己的SOC。
以ARMv8体系结构为例,ARM公司先后开发出Cortex-A53、Cortex-A55、Cortex-A72、Cortex-A73等多款处理器IP。
ARM架构为 processor 或 core的设计提供了基础,通常我们可以将processor 或 core称为Processing Element(PE)。
2.ARM授权模式
ARM公司一般有两种授权方式:
- 体系结构授权。客户可以根据这个规范自行设计与之兼容的处理器。
- 处理器IP授权。ARM公司根据某个版本的体系结构来设计处理器,然后把处理器的设计方案授权给客户。
市面上的大部分芯片都是直接采用ARM处理器IP,少部分大厂如高通、TI他们基于ARM 公版IP进行二次开发,而像苹果这样的大佬甚至自己基于ARM架构规范实现自己的处理器IP。
3.架构和微架构
3.1 什么是架构(处理器领域)
其实前面已经有所介绍。在这里,主要指的是处理器的功能规范。 架构指定处理器的行为方式,例如它有什么指令以及指令做什么,而不包括如何做。
架构视为硬件和软件之间的规则。 该架构描述了软件可以依赖硬件提供哪些功能。 一些功能是可选的,我们将在稍后的微架构部分讨论。
架构可能会规定:
3.2 什么是微架构
架构(Architecture)不会告诉您处理器是如何构建和工作的。 处理器的构建和设计被称为微架构。 微架构( micro-architecture)规定了处理器应该如何工作,我们上述提到的”ARM公司根据某个版本的体系结构来设计处理器IP“ 就是微架构,如Cortex-A53 和Cortex-A72 都是基于Armv8-A 架构实现的微架构。
微架构通常包括:
- 几级Cache和Cache Size大小等。
- 几级流水线。
- 每条指令执行的周期。
- 其他可选供能。
例如,Cortex-A53 和 Cortex-A72 都是 Armv8-A 架构的实现。 这意味着它们具有相同的架构,但它们具有非常不同的微架构,如下图所示
4.Arm 架构和微架构的发展
4.1 Timeline
4.2 产品演进
Arm 架构是最著名的 Arm 规范,但它并不是唯一的规范。现代片上系统 (SoC) 除了Core之外的其他IP同样也遵循一些其他ARM规范。 下图提供了一些示例:
- Generic Interrupt Controller
- System Memory Management Unit (SMMU or IOMMU)
- Generic Timer
- Server Base System Architecture and Trusted Base System Architecture
- Advanced Microcontroller Bus Architecture(AMBA)
4.3 ARM产品分类
ARM11芯片之后,也就是从ARMv7架构开始,ARM IP微架构的命名方式有所改变。
新的处理器家族,改以Cortex命名,ARM微架构根据应用场景分为三个系列,分别是Cortex-A,Cortex-R,Cortex-M。
Cortex-A系列(A:Application)
面向性能密集型系统的应用处理器内核。主要针对日益增长的消费娱乐和无线产品设计,用于具有高计算要求、运行丰富操作系统及提供交互媒体和图形体验的应用领域,如智能手机、平板电脑、汽车娱乐系统、数字电视,智能本、电子阅读器、家用网络、家用网关和其他各种产品。。
Cortex-R系列 (R:Real-time)
面向实时应用的高性能内核。主要针对需要运行实时操作的系统应用,面向如汽车制动系统、动力传动解决方案、大容量存储控制器等深层嵌入式实时应用。
Cortex-M系列(M:Microcontroller)
面向各类嵌入式应用的微控制器内核。该系列面向微控制器领域,主要针对成本和功耗敏感的应用,如智能测量、人机接口设备、汽车和工业控制系统、家用电器、消费性产品和医疗器械等。
Cortex-SC系列(SC:SecurCore)
其实,除了上述三大系列之外,还有一个主打安全的Cortex-SC系列(SC:SecurCore),主要用于政府安全芯片。
5. Arm 架构文档
- Arm Architecture Reference Manual (Arm ARMs) – 架构类的文档, 一般就看这个
- Arm Cortex processor has a Technical Reference Manual (TRM) – arm core的文档, 基本不用看
- Arm Cortex processor also has a Configuration or Integration Manual (CIM) – 可能是给ASIC看的
例如你要学习 Cortex-A75 processor,可以去查看以下文档: