ARM架构简介

处理器架构

常见的处理器架构有X86、ARM、MIPS等。

X86:X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,美国IBM公司1981年推出的世界第一台PC机中的CPU-i8088(i8086简化版)使用的也是X86指令。采用CISC(Complex Instruction Set Computer,复杂指令集计算机)架构。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。

ARM:ARM架构采用精简指令集计算机(RISC)架构,具有高性能、低功耗、低成本等优点,广泛应用于移动设备、嵌入式系统等领域。

MIPS:MIPS架构是一种高性能、低功耗的处理器架构,采用简单指令集计算机(RISC)架构,适合于各种嵌入式应用领域,如网络通信、多媒体处理等。

此外,还有一些其他的处理器架构,如PowerPC、SPARC等,但以上三种是最常见的处理器架构。

Arm 架构概述

Arm 架构是世界上最受欢迎的处理器架构之一, ARM架构,曾被称为进阶精简指令集机器(Advanced RISC Machine),更早被称为Acorn RISC Machine,是一个32位精简指令集(RISC)处理器架构。ARM架构广泛应用于许多嵌入式系统设计,低耗电节能,非常适用于移动通讯领域。其派生产品包括Marvell的XScale架构和德州仪器的OMAP系列。ARM家族在所有32位嵌入式处理器中占比达到75%,成为全球数量最多的32位架构。此外,ARM处理器还广泛应用于消费性电子产品、电脑外设和军用设施等领域。

A-Profile(应用):具备较高性能,常用于设计运行复杂的大型操作系统,例如 Linux 或 Windows等

R-Profile(实时):针对具有实时要求较高的系统,主要用于网络设备和嵌入式控制系统中。

M-Profile(微控制器):小型、高能效器件,位于许多物联网设备的核心,常见的很多单片机就是基于ARM M。

下图是常见智能手机内部包含的处理器类型,A-Profile作为主CPU,主要负责运行复杂的操作系统,比如Android系统。R-Profile常用于解调调制中的通信模块或实时性较高的WIFI模块,M-Profile广泛用于电源管理,摄像,定位等模组中。
请添加图片描述

系统架构

ARM架构指的是处理器的功能规范,架构会指定处理器的行为方式,常常包含指令集,寄存器集。异常模型,内存模型等的规范。当然系统不仅包括一个处理器内核。Arm 还提供了规范来描述包含处理器的系统的要求。如下图所示。

Arm 架构是第一层,通过指令集架构 (ISA) 兼容性为软件提供通用的开发者模型。

第二层是基本系统体系结构 (BSA) 规范,该规范描述了系统软件可以依赖的硬件系统体系结构。BSA 涵盖了处理器和系统架构的各个方面,例如中断控制器、定时器和操作系统所需的其他常见设备。这为标准操作系统、虚拟机管理程序和固件提供了一个可靠的平台。第二层也包含,基本启动要求 (BBR) 规范涵盖了基于 Arm 架构的系统以及操作系统和虚拟机监控程序可以依赖的系统的要求。此规范建立了固件接口要求,如 PSCI、SMCCC、UEFI、ACPI 和 SMBIOS。

第三层,xBSA 针对不同的市场和用例。其他标准可以建立在 BSA 的基础上,以提供特定于市场的标准化。

请添加图片描述

您可以将体系结构视为硬件和软件之间的契约。体系结构描述了软件可以依赖硬件提供的功能。有些功能是可选的。

微架构

处理器的构建和设计称为微架构。微架构告诉您特定处理器的工作原理。
微架构通常会详细的价绍处理器的内部细节,如:
管道长度和布局
缓存的数量和大小
单个指令的周期盘点
实现了哪些可选功能等等

其他Arm 架构

Arm 架构是最著名的 Arm 规范,但不是唯一的规范。Arm 对构成现代片上系统 (SoC) 的许多组件具有相似的规格。下图提供了一些示例

请添加图片描述
通用中断控制器:通用中断控制器 (GIC) 规范是用于 Armv7-A/R 和 Armv8-A/R 的标准化中断控制器。
系统内存管理单元:系统内存管理单元(SMMU 或有时是 IOMMU)为非处理器主机提供转换服务。
通用计时器:通用计时器为系统中的所有处理器提供通用参考系统计数。这些计时器提供用于操作系统调度程序滴答等功能的功能。通用计时器是 Arm 体系结构的一部分,但系统计数器是系统组件。
服务器基础系统体系结构和可信基础系统体系结构:服务器基础系统体系结构 (SBSA) 和可信基础系统体系结构 (TBSA) 为 SoC 开发人员提供系统设计指南。
高级微控制器总线架构:高级微控制器总线架构 (AMBA) 系列总线协议控制基于 Arm 的系统中组件的连接方式以及这些连接上的协议。

Cortex-A7 MPCore 简介

Cortex-A7 MPCore 支持在一个处理器上选配 1~4 个内核。在进行多核配置时,需要使用ACE主接口和中断控制器来控制Snoop Control unit(监控控制单元)。具体细节请参考ARM官方参考手册。
如图所示:
请添加图片描述

Cortex-A 处理器运行模型

ARM 处理器包含多种运行模型:User、FIQ、IRQ、Supervisor(SVC)、Abort、Undef和 System,其中 User 是非特权模式,其余 6 中都是特权模式。

在新的 Cortex-A 架构加入了TrustZone 安全扩展,所以就新加了一种运行模式:Monitor,新的处理器架构还支持虚拟化扩展,因此又加入了另一个运行模式:Hyp,所以 Cortex-A7 处理器有 9 种处理模式。

几种模式的功能描述如下:

模式功能
User(USR)用户模式,非特权模式,大部分程序运行的时候就处于此模式
FIQ快速中断模式,进入 FIQ 中断异常
IRQ一般中断模式。
Supervisor(SVC)超级管理员模式,特权模式,供操作系统使用。
Monitor(MON)监视模式,这个模式用于安全扩展模式
Abort(ABT)数据访问终止模式,用于虚拟存储以及存储保护。
Hyp(HYP)用于虚拟化扩展
Undef(UND)未定义指令终止模式。
System(SYS)系统模式,用于运行特权级的操作系统任务

这几个运行模式可以通过软件或者通过中断或者异常来进行切换。大多数的程序都运行在用户模式,用户模式下是不能访问系统所有资源的,有些资源是受限的,要想访问这些受限的资源就必须进行模式切换。

Cortex-A 寄存器组

ARM 架构提供了 16 个 32 位的通用寄存器(R0~R15)供软件使用,前 15 个(R0~R14)可以用作通用的数据存储,R15 是程序计数器 PC,用来保存将要执行的指令。ARM 还提供了一个当前程序状态寄存器 CPSR 和一个备份程序状态寄存器 SPSR,SPSR 寄存器就是 CPSR 寄存器的备份。

声明:本文旨在知识的分享,不涉及任何商业,部分内容或图片来自网络,如有侵权,请及时联系更正删除。

参考链接与书籍:
https://developer.arm.com/documentation
《正点原子IMX6U嵌入式linux驱动开发指南》
《ARM Cortex-A(armV7)编程手册》

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稚肩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值