您的位置  > 互联网

《书香度年华》「ARM架构专栏」之Arm架构的底层逻辑

目录

前言

温馨提示:全文10000字,预计阅读时间15分钟;

读者对象:对Arm架构感兴趣的朋友;

摘要:本文主要讨论Arm架构的底层逻辑,并介绍Arm架构的顶层设计。 基于处理器核心架构,以系统架构为核心,以A系列和M系列架构为典型示例,对系统关键部件进行分析。 易于理解的描述; 本文提到的Arm架构不包括GPU和NPU架构;

关键词:Arm架构、微架构、-A、-R、-M、Armv7、Armv8、Armv9、ISA、指令集、AMBA总线、调试、、虚拟化、EL-2、S-EL2、EL-1、S-EL1 、操作系统、RISC-V;

相关推荐:如果您对结构、架构、系统等概念感兴趣,建议阅读 and ;

相关推荐:如果您对Arm公司感兴趣,建议阅读本文,了解Arm公司;

1. 架构概述 1.1 冯诺依曼架构

冯·诺依曼结构,又称普林斯顿结构,是一种结合了程序指令存储器和数据存储器的存储器结构。 程序指令存储地址和数据存储地址指向同一内存中的不同物理位置,因此程序指令和数据具有相同的宽度。 例如,Intel的8086中央处理器的程序指令和数据都是16位宽。

数学家冯·诺依曼提出了计算机制造的三个基本原理,即使用二进制逻辑、程序存储和执行,计算机由五部分组成(运算器、控制器、存储器、输入设备、输出设备)。 这套理论被称为冯·诺依曼架构。

1.2 哈佛架构

哈佛架构是一种并行架构。 其主要特点是将程序和数据存储在不同的存储空间中。 即程序存储器和数据存储器是两个独立的存储器,每个存储器独立寻址、独立访问。 与这两个存储器对应的是系统的四根总线:数据总线以及程序和数据的地址总线。

1.3 Arm架构

Arm架构是指Arm处理器的架构,包括中央处理器(CPU)微架构、系统微架构、总线微架构、监控微架构、安全微架构和虚拟化微架构。

CPU微架构是指令集架构ISA的实现,包括A32/T32、A64、NEON、VFP等;

系统架构集包括中断控制器GIC/系统内存管理器SMMU/电源管理PSCA/APCI等;

总线微架构是指AMBA微架构,包括AHB、APB、AXI、CHI等;

监控微架构包括调试和跟踪;

安全微架构包括Realm、Cell等;

虚拟化微架构包括VMSA、LPAE、EL-2、S-EL2等。

表1 微架构系统

CPU微架构

实现指令集架构的中央计算单元架构。 A、R 和 M 系列架构描述了 CPU 架构。

系统微架构

为处理器各组件正常运行而存在的系统组件架构

总线微架构

连接各个建筑子系统的桥梁架构

监控微架构

调试和跟踪系统的各种架构组件

安全微架构

用于实现系统安全的架构集合

虚拟化微架构

用于虚拟化硬件资源的架构集合

通常指令集架构ISA的实现称为微架构。 例如,Armv8.0-M是ISA,-M33是微架构。

关于ISA和微架构,我在《RISC-V架构科普解读》里写得比较清楚了。

2. 架构图 2.1 三驾马车

Arm架构根据不同的应用场景分为三个架构家族——A、-M、-R;

Arm A架构主要包括面向移动和PC的-A系列处理器、面向云计算和机器学习的高性能处理器以及与客户合作开发的高性能-X系列处理器。 后两个系列可组成独立系列;

Arm M架构主要包括Armv6的M0、Armv7的-M3和-M4、Armv8的-M23、-M33、-M35、-M55和-M85,应用于通用MCU和IoT领域;

Arm R-架构主要包括Armv7的-R4、-R5、-R7、-R8,以及Armv8的-R52、-R82,应用于实时控制领域。

每个体系结构家族的演变既独立又相关。 目前A系列已经进化到Armv9版本,M系列已经进化到Armv8版本,R系列已经进化到Armv8版本。 以下是各家族代表性处理器的架构。

2.2 六代传承

Arm架构从Armv4到Armv9经历了六个版本;

目前市场上活跃的有三个版本:Armv7、Armv8、Armv9;

每个版本引入/放弃了不同的功能特性,例如Armv6和Armv7的虚拟化、Armv8的矢量扩展SVE、Armv9的矩阵扩展SME等。

2.3 最新成员 2.3.1 老大哥-A710

-A710是-A78的增强版。 是Armv9-A架构的大核架构。 与上一代基本相同。 全新的微架构可以实现更好的性能和更低的功耗; 向量计算扩展架构的增强版本。 SVE2支持; NEON架构支持先进的SIMD&DSP; FPU 浮点架构与 VFPv3 矢量浮点兼容。

图4-A710架构图