ARM内核与ARM指令集区别以及命名规则

ARM内核与架构

日常中我们所见到的芯片一般是SOC(System on Chip 片上系统),意指它是一个产品的完整解决方案,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容,SOC的种类繁多,很难给出精确的组成部分,但是通常SOC会集成CPU、视频编解码器和GPU等各类专用处理单元以及外设部分。任何一款ARM芯片都至少包含:ARM内核、外设部分

海思3516DV300系统架构图

ARM内核

ARM内核: 包括了寄存器组、指令集、总线、存储器映射规则、中断逻辑和调试组件等。 内核是由ARM公司设计并以销售方式授权给个芯片厂商使用的(ARM公司本身不做芯片)。我们平时说的Cortex-A53、Cortex-A72、Cortex-A9等都是指的ARM内核。

外设部分:包括计时器、A/D转换器、存储器、i2c、UART、SPI、ROM…等等,则完全由各芯片厂商自己设计并与ARM内核衔接配套。不同的芯片厂商就有不同的外设,因此构成了数量和规格庞大的ARM芯片产业。

ARM指令集

指令集的设计是CPU设计过程中的关键一环,指令集是操作CPU的命令集合,存在32位和64位两种。早期的ARM指令集为32位,从ARMv8开始引入64位指令集,新指令集称为A64,在AArch64状态下执行。ARMv8还包括原始ARM指令集,现在称为A32和Thumb(T32)指令集。A32和T32都在AArch32状态下执行,并与ARMv7兼容。对于32位的CPU,这些指令就是一个个32位的01的序列,不同的值就代表了不同的机器指令,CPU的硬件能完美的解析并执行这些指令,比如寻址、运算、异常处理等等。下面是ARMv4(ARM7TDMI-S处理器)指令集所支持的指令

ARM7TDMI-S处理器支持指令
ARM7TDMI-S处理器支持指令

从1985年ARMv1指令集诞生开始,到目前为止总共发布了9个版本,即Armv1 - Armv9。

ARM架构

当我们使用**架构(或体系结构)**一词时,是指的一种功能的规范。对于 Arm 架构,我们指的是处理器的功能规范。架构指定处理器的行为方式,例如它有哪些指令以及这些指令的作用。

可以将架构视为硬件和软件之间的约定。体系结构描述了软件可以依赖的硬件提供的功能。正如我们在架构和微架构中解释的那样,一些功能特性是可选的

架构(或体系结构)规范包括:指令集、寄存器组、异常模型、内存模型、Debug, trace, and profiling

-描述
指令集各指令的作用
该指令在内存中的表示方式(其编码)
寄存器组有多少个寄存器
寄存器的大小
寄存器的作用
他们的初始状态
异常模型不同级别的特权
异常的类型
捕获异常或返回会发生什么
内存模型内存访问是如何排序的
缓存如何运行,软件何时以及如何执行显式维护
Debug, trace, and profiling如何设置和触发断点
跟踪工具可以捕获哪些信息以及以何种格式捕获

官方给出的定义:

请添加图片描述

ARM命名规则

ARM的命名规则分为两类

1、基于ARM Architecture版本的“指令集架构”命名规则

2、基于ARM Architecture版本的“处理器系列”命名规则

比如: s3c2410采用ARMv4T架构版本,ARM920T处理器系列

1、 “指令集架构”命名规则

固定部分   指令集版本号  变种标识     排除变种标记   被排除变种
ARMv       1 - 9       T/M/E/J等         x        T/M/E/J等
T -- Thumb指令集
M -- 长乘法指令
E -- 增强型DSP指令
J -- Java加速器Jazelle
SIMD -- ARM媒体功能扩展

例如:ARMv5TxM表示ARM指令集版本为5,支持T变种,不支持M变种

2、“处理器系列”命名规则

ARMv3 ~ ARMv6 时期:
ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}

x -- 处理器系列
y -- 存储管理/保护单元
z -- cache
T -- 支持Thumb指令集
D -- 支持片上调试
M -- 支持快速乘法器
I -- 支持Embedded ICE,支持嵌入式跟踪调试
E -- 支持增强型DSP指令
J -- 支持Jazelle
F -- 具备向量浮点单元VFP
S -- 可综合版本

例如:ARM7-TDMI,属于ARMv4指令集,是ARM7系列处理器,支持Thumb指令集、支持片上调试、支持快速乘法器、支持Embedded ICE,支持嵌入式跟踪调试
在ARMv7版本之后,处理器均以Cortex为主名

3、ARM处理器型号与指令集对应关系

请添加图片描述

架构与系统架构(Architecture And System architecture)

片上系统(SOC)不仅仅包括一个处理器核心。Arm还提供了规范来描述包含处理器的系统的要求,如下图所示

请添加图片描述

BSA:

基本系统体系结构(BSA)规范描述了系统软件可以依赖的硬件系统体系结构。BSA涵盖处理器和系统架构的各个方面,例如中断控制器、计时器和操作系统需要的其他常见设备。这为标准操作系统、管理程序和固件提供了可靠的平台。

BSA广泛适用于不同的市场和用例。其他标准可以在BSA的基础上提供特定于市场的标准化。例如,服务器基础系统体系结构(SBSA)是针对服务器的BSA的补充。SBSA描述了服务器操作系统的硬件和特性要求。该规范包含了一组级别,随着CPU架构的发展,这些级别越来越详细地记录了硬件特性。

BBR:

基本引导需求(BBR)规范涵盖了基于Arm架构的系统需求,以及操作系统和管理程序可以依赖的系统需求。该规范建立了固件接口需求,如PSCI、SMCCC、UEFI、ACPI和SMBIOS。

ISA:

规范是软件兼容性的基础。根据规范构建硬件意味着可以编写与之匹配的软件。根据规范编写软件意味着它可以在兼容的硬件上运行。Arm架构是第一层,通过指令集架构(ISA)兼容性为软件提供了一个通用的程序员模型。

架构与微观架构

架构(或体系结构)描述包括:指令集、寄存器组、异常模型、内存模型、Debug, trace, and profiling 等宏观上的结构,一般开发者只需要了解体系结构即可

微观架构(微观体系结构)则是描述处理器是怎样构建的,怎样工作,一般是SOC设计者来参考,通常微观架构描述会包含如下信息:

• 流水线长度和布局
• Cache 的数量和大小
• 单个指令需要的机器周期数
• 哪些可选的特性被实现

ARM官方提供的文档

1、每个Arm架构参考手册描述了一个架构规范。Arm架构参考手册与该架构的任何实现都相关。

2、每个Arm Cortex处理器有一个技术参考手册(TRM)。TRM描述特定于该处理器的特性。一般来说,trm不会重复Arm架构参考手册中给出的任何信息。

3、每个Arm Cortex处理器也有一个配置和集成手册(CIM)。CIM描述如何将处理器集成到系统中。一般来说,这些信息只与SoC设计人员相关。CIM手册仅授权用户可拿到

Arm架构参考手册,trm和CIMs,都是参考手册。它们不提供如何使用处理器的指导。例如,Arm架构参考手册没有关于如何打开MMU的章节。需要获得如何使用相关的信息需要去查看对应架构的用户指导手册

通常使用现有的SOC只需要查看SOC的数据手册就可以得到相关的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值