【物联网】ARM核介绍

文章目录

  • 一、芯片产业链
    • 1. CPU核
      • (1)ARM
      • (2)MIPS
      • (3)PowerPc
      • (4)Intel
      • (5)RISC-V
    • 2. SOC芯片
      • (1)主流厂家
      • (2)产品解决方案
    • 3. 产品
  • 二、ARM核发展
    • 1. 不同架构的特点分析
      • (1)VFP
      • (2)Jazelle
      • (3)Thumb
      • (4)TrustZone
      • (5)SIMD
      • (6)NEON
  • 三、ARM核(ARMv7)工作模式
    • 1. 权限级别(privilege level)
    • 2. ARM processor modes
      • (1)用户模式 User mode
      • (2)系统模式 system mode
      • (3)管理模式 Supervisor mode
      • (4)中止模式 Abort mode
      • (5)未定义模式 Undefined mode
      • (6)中断模式<快速> FIQ mode
      • (7)中断模式<一般> IRQ mode
      • (8)非安全PL2模式 Hyp mode
      • (9)监视者模式 Monitor mode
  • 四、ARM核(ARMv7)的寄存器资源
    • 1. 寄存器用途分析
    • 2. CPSR(Current Program Status Register)
    • 3. SPSR(Saved Program status Register)


一、芯片产业链

1. CPU核

CPU又叫中央处理器,其主要功能是进行运算和逻辑运算,内部结构大概可以分为控制单元、算术逻辑单元和存储单元等几个部分。按照其处理信息的字长可以分为:八位微处理器、十六位微处理器、三十二位微处理器以及六十四位微处理器等等

在这里插入图片描述

CPU厂家主要工作:

  • 机器码设计
  • 主频
  • 高速缓存(cache)
  • 多核集成
  • 硬件浮点运算
  • 数据运算
  • 功耗
  • 等等……

CISC: Complex Instruction Set Computer,复杂指令集计算机;
RISC: Reduced Instruction Set Computer, 精简指令集计算机;

(1)ARM

ARMAdvanced RIsc Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、低功耗的RISC(精简指令集)处理器
ARM 公司的特点是只设计芯片,而不生产(被逼的)。它将技术授权给半导体厂商,并提供服务。

在这里插入图片描述

ARM将其芯片设计技术(内核、体系扩展、微处理器和系统芯片方案)授权给Intel,Samsung,TI,高通(Qualcomm),意法半导体等半导体制造商,这些厂商拿到ARM内核以后,再设计外围的各种控制器,和ARM核整合成一块SOC芯片

(2)MIPS

MIPS(Million Instructions Per second) 技术公司是美国一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商,在RISC处理器方面占有重要地位。
MIPS的商业模式和ARM相似,也是研发处理器内核,将知识产权授权给其他公司。我国的国产处理器商龙芯就是获得MIPS32和MIPS64架构的授权,借此开发龙芯CPU。

(3)PowerPc

PowerPC(英语:Performance Optimization With Enhanced RIsC-Performance Computing,有时简称PPC)是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM的POWER(Performance Optimized With Enhanced RIsc);

(4)Intel

X86架构是复杂指令集,主要用于PC产业 (AMD YES

(5)RISC-V

开源的内核

RISC-V(读作"RISC-FIVE”)是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC(精简指令集计算机),表示此前已经有四代RISC处理器原型芯片。每一代RISC处理器都是在同一人带领下完成,那就是加州大学伯克利分校的David A.Patterson教授。与大多数ISA相反,RISC-V ISA可以免费地用于所有希望的设备中,允许任何人设计、制造和销售RISC-V芯片和软件。


2. SOC芯片

SOC(System On chip:CPU核 + 外围控制器),片上系统,即在一块芯片上集成一整个信息处理系统,简单来说 SoC芯片是在中央处理器CPU的基础上扩展专用接口的超大规模集成电路,是智能设备的“大脑”。
在这里插入图片描述

(1)主流厂家

  • 德州仪器(TI)
  • 高通(Qualcomm)
  • 三星(Samsung)
  • 恩智浦(NXP)
  • 全志(Allwinner Technology)
  • 华为海思(Hisilicon)
  • 联发科(MTK)
  • 瑞星薇(rockchip)

(2)产品解决方案

  • 手机解决方案
  • 平板解决方案
  • 智能电视解决方案
  • 等等……

3. 产品

  • 特斯拉
  • 小米
  • 华为
  • 格力
  • 大疆
  • 飞利浦

二、ARM核发展

在这里插入图片描述
ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不后的市场提供服务。Cortex系列属于ARMv7架构,由于应用领域不同,基于v7架构的Cortex处理器系列所采用的技术也不相同,基于v7A的称为Cortex-A系列,基于v7R的称为Cortex-R系列,基于v7M的称为Cortex-M系列。
在这里插入图片描述

1. 不同架构的特点分析

(1)VFP

VFP(Vector Floating-point Coprocessor for ARM)向量浮点运算单元(协处理器)。它提供低成本的单精度和倍精度浮点运算能力,并完全相容于ANSI/IEEE Std 754-1985 二进制浮点算数标准。VFP 提供大多数适用于浮点运算的应用,例如PDA、智慧手机、语音压缩与解压、3D图像以及数位音效、打印机、机上盒,和汽车应用等。

(2)Jazelle

Jazelle是ARM体系结构的一种相关技术,用于在处理器指令层次对JAVA加速。ARM的Jazelle技术使Java加速得到比基于软件的java虛拟机(JVM)高得多的性能,和同等的非java加速核相比功耗降低80%。

(3)Thumb

表示ARM处理器可以工作在Thumb状态,执行Thumb指令集。ARM指令集是32bit的指令集,在Thumb状态执行的指令集是16bit的。
Thumb指令集不是完整的指令集,它是ARM指令集的子集。 但是Thumb指令具有更高的代码密度,即占用存储空间小,仅为ARM代码规格的65%,但其性能却下降的很少。所以,Thumb指令集使ARM处理器能应用到有限的存储带宽,并且,代码密度要求很高的嵌入式系统中去。

Thumb-2 是 Thumb 指令集的一项主要增强功能,并且由 ARMv6T2 和 ARMv7M体系结构定义。Thumb-2 提供了几平与 ARM 指令集完全一样的功能它兼有16 位和 32 位指令,并可检索与ARM 类似的性能,但其代码密度与 Thumb 代码类似。

(4)TrustZone

TrustZone是ARM针对消费电子设备设计的一种硬件架构,其目的是为消费电子产品构建一个安全
框架来抵御各种可能的攻击。

TrustZone在概念上将SoC的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界,所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密、安全认证等),其余操作在非安全世界执行(如用户操作系统、各种应用程序等)。

在这里插入图片描述

(5)SIMD

SIMD,即 single instruction multiple data,单指令流多数据流,也就是说一次运算指令可以执行多个数据流,从而提高程序的运算速度,实质是通过 数据并行来提高执行效率
在这里插入图片描述

(6)NEON

ARMv7之后,将SIMD升级为 NEON技术 相当于扩展了点运算向量表 有一个VFS的二维向量表,将数据存放到这个表中,cpu可以一次性取某个区域进行执行,NEON就是SIMD的升级 相当于将上面SIMD执行指令的表格长度与宽度进行扩展,提升了数据集的压缩算法。 NENO可以进行指令扩展来实现相关功能,但我们一般不使用,如果做一些GPU相关的工作就需要利用NENO的浮点运算特性。可用于加速多媒体和信号处理算法(如视频编码/解码)、2D/3D图形、游戏、音频和语音处理、图像处理技术、电话和声音合成,其性能至少为ARMv5的3倍,为ARMV6 SIMD性能的两倍 在SIMD的基础上提升了两倍效率 所以运算速度的加快不是单纯的提升CPU的频率 通过这两个技术提升指令执行的方式,还有其他的方法(比如增加二级缓存)


三、ARM核(ARMv7)工作模式

在这里插入图片描述

1. 权限级别(privilege level)

在这里插入图片描述
安全状态2种级别 非安全状态3种级别


2. ARM processor modes

7+2 种工作模式 最后两种是v7版本加入的

(1)用户模式 User mode

操作系统在用户模式下运行应用程序以限制系统资源的使用。在用户模式下执行的软件在PL0执行。
在用户模式下执行有时被描述为非特权执行。

应用程序通常在用户模式下执行,而在用户模式下执行的任何程序

  • 仅对系统资源进行非特权访问,这意味着它无法访问受保护的系统资源。
  • 仅对内存进行非特权访问。
  • 除非引起异常,否则无法更改模式

用户模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限去操作其它硬件资源,只能执行处理自己的数据,也不能切换到其它模式下,要想访问硬件资源或切换到其它模式只能通过软中断或产生异常,

(2)系统模式 system mode

在系统模式下执行的软件在PL1上执行。系统模式具有与用户模式相同的寄存器,并且不能通过任何异常进入

系统模式是特权模式,不受用户模式的限制。用户模式和系统模式共用一套寄存器,操作系统在该模式下可以方便的访问用户模式的寄存器, 而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。

(3)管理模式 Supervisor mode

Supervisor模式是采取Supervisor Call异常的默认模式。执行SVC(Supervisor Call)指令会生成Supervisor Call异常,该异常被带到Supervisor模式。处理器在复位时进入Supervisor模式。

管理模式是CPU上电后默认模式,因此在该模式下主要用来做系统的初始化,软中断处理也
在该模式下。当用户模式下的用户程序请求使用硬件资源时,通过软件中断进入该模式

(4)中止模式 Abort mode

中止模式是数据中止异常或预取中止异常的默认模式采取。

中止模式用于支持虚拟内存或存储器保护,当用户程序访问非法地址,没有权限读取的内存地址时,会进入该模式,linux下编程时经常出现的segment fault通常都是在该模式下抛出返回的。

(5)未定义模式 Undefined mode

未定义模式是与指令相关的异常(包括任何执行未定义指令的尝试)采取的默认模式。

(6)中断模式<快速> FIQ mode

FIQ模式是采用FIQ中断的默认模式。

快速中断模式是相对一般中断模式而言的,它是用来处理对时间要求比较紧急的中断请求,主要用于高速数据传输及通道处理中

(7)中断模式<一般> IRQ mode

IRQ模式是采用IRQ中断的默认模式。

一般中断模式也叫普通中断模式,用于处理一般的中断请求,通常在硬件产生中断信号之后
自动进入该模式,该模式为特权模式,可以自由访问系统硬件资源。

(8)非安全PL2模式 Hyp mode

Hyp模式是作为虚拟化扩展的一部分实现的非安全PL2模式。Hyp模式在从非安全状态获取必须带到PL2的异常时进入

Hypervisor Call异常和Hyp Trap异常是作为虚拟化扩展的一部分实现的异常,并且始终在Hyp模式下执行。

在非安全PL1模式下,执行HVC(Hypervisor Cal)指令会生成Hypervisor Call异常。

(9)监视者模式 Monitor mode

监视器模式是采用安全监视器调用异常的模式。在PL1模式下,执行SMC(安全监视器调用)指令会
生成安全监视器调用异常。

监视器模式是一种安全模式,这意味着无论SCR.NS位的值如何,它都始终处于安全状态。在监视器模式下运行的软件可以访问系统寄存器的安全和非安全副本。这意味着监视器模式提供了在安全和非安全安全状态之间更改的正常方法。


四、ARM核(ARMv7)的寄存器资源

在这里插入图片描述

1. 寄存器用途分析

  • RO-R10 用来存放用户的数据
  • R11(fp:frame-pointer)用来记录一个栈空间的开始地址
  • R12(ip: The Intra-Procedure-call scratch register)用来临时存储sp
  • R13(sp:stack pointer) 栈指针寄存器
  • R14(lr:link register)在发生跳转的时候,用来保存PC寄存器的值
  • R15(pc:program counter)用来存放CPU需要执行的指令所在内存的地址

2. CPSR(Current Program Status Register)

在这里插入图片描述
在这里插入图片描述

3. SPSR(Saved Program status Register)

异常产生的时候,用来保存CPSR的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/956428.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】关键技术-损失函数(Loss Function)

损失函数&#xff08;Loss Function&#xff09; 是机器学习和深度学习模型训练过程中的核心概念&#xff0c;用于度量模型的预测输出与真实标签之间的差异。通过最小化损失函数的值&#xff0c;模型可以逐步优化其参数&#xff0c;提高预测性能。 损失函数的作用 衡量模型性能…

软件测试 —— Postman(2)

软件测试 —— Postman&#xff08;2&#xff09; GETURL结构协议与主机名路径查询字符串&#xff08;Query String&#xff09; 总结 urlcode和urldecodeParams 参数Authorization基本结构常见的认证方案1. Basic 认证2. Bearer Token (OAuth 2.0)3. API 密钥4. 其他认证方案 …

靠右行驶数学建模分析(2014MCM美赛A题)

笔记 题目 要求分析&#xff1a; 比较规则的性能&#xff0c;分为light和heavy两种情况&#xff0c;性能指的是 a.流量与安全 b. 速度限制等分析左侧驾驶分析智能系统 论文 参考论文 两类规则分析 靠右行驶&#xff08;第一条&#xff09;2. 无限制&#xff08;去掉了第一条…

算法日记6.StarryCoding P52:我们都需要0(异或)

一、题目 二、题解&#xff1a; 1、对于这道题&#xff0c;题意为让我们寻找一个数x使得 b[i]a[i]^x&#xff0c; 并且b[1]^b[2]^b[3]^ b[4]^b[5]....0 2、我们把b[i]给拆开&#xff0c;可以得到 3、又因为^满足结合律&#xff0c;因此&#xff0c;可以把括号给拆开 4、接着…

快速入门:如何注册并使用GPT

文章目录 ProtonMail邮箱步骤 1&#xff1a;访问Proton官网步骤 2&#xff1a;创建ProtonMail账户步骤 3&#xff1a;选择注册免费账户步骤 4&#xff1a;填写邮箱地址和手机号&#xff08;可选&#xff09;步骤 5&#xff1a;邮箱验证&#xff08;必须进行验证&#xff09;步骤…

嵌入式硬件篇---PID控制

文章目录 前言第一部分&#xff1a;连续PID1.比例&#xff08;Proportional&#xff0c;P&#xff09;控制2.积分&#xff08;Integral&#xff0c;I&#xff09;控制3.微分&#xff08;Derivative&#xff0c;D&#xff09;控制4.PID的工作原理5..实质6.分析7.各种PID控制器P控…

将IDLE里面python环境pyqt5配置的vscode

首先安装pyqt5全套&#xff1a;pip install pyqt5-tools 打开Vscode&#xff1a; 安装第三方扩展&#xff1a;PYQT Integration 成功配置designer.exe的路径【个人安装pyqt5的执行路径】&#xff0c;便可直接打开UI文件&#xff0c;进行编辑。 配置pyuic,如果下图填写方法使用…

LDD3学习9--数据类型和定时器

这部分对应的是第七章和第十一章&#xff0c;因为内容也不是很多&#xff0c;就一起写了。里面的内容基本上就是一个个的点&#xff0c;所以也就一个个点简单总结一下。 1 数据类型 1.1 数据长度 不同操作系统类型长度可能不一样&#xff0c;看图的话最好用u8&#xff0c;u16&…

python http server运行Angular 单页面路由时重定向,解决404问题

问题 当Angular在本地ng server运行时候&#xff0c;可以顺利访问各级路由。 但是运行ng build后&#xff0c;在dist 路径下的打包好的额index.html 必须要在服务器下运行才能加载。 在服务器下我们第一次访问路由页面时是没有问题的&#xff0c;但是尝试刷新页面或手动输入路…

SparkSQL数据源与数据存储

文章目录 1. 大数据分析流程2. Spark SQL数据源2.1 SparkSQL常见数据源2.2 SparkSQL支持的文本格式2.3 加载外部数据源步骤 3. 本地文件系统加载数据3.1 本地文件系统加载JSON格式数据3.1.1 概述3.1.2 案例演示 3.2 本地文件系统加载CSV格式数据3.2.1 概述3.2.2 案例演示 3.3 本…

LLM - 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数(PLM) 教程(2)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145188660 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…

AI agent 在 6G 网络应用,无人机群控场景

AI agent 在 6G 网络应用,无人机群控场景 随着 6G 时代的临近,融合人工智能成为关键趋势。借鉴 IT 行业 AI Agent 应用范式,提出 6G AI Agent 技术框架,包含多模型融合、定制化 Agent 和插件式环境交互理念,构建了涵盖四层结构的框架。通过各层协同实现自主环境感知等能力…

信息奥赛一本通 1168:大整数加法

这道题是一道大整数加法&#xff0c;涉及到高精度的算法&#xff0c;比如说有两个数要进行相加&#xff0c;1111111111111111111111111111111111111112222222222222222222222222222222&#xff0c;那么如果这两个数很大的话我们常用的数据类型是不能进行计算的&#xff0c;那么…

基于YOLOv4与Tkinter的口罩识别系统

往期精彩 基于YOLOv11的番茄成熟度实时检测系统设计与实现 用YOLOv11检测美国手语&#xff1a;挥动手腕的科技魔法 基于YOLOv11模型PyQt的实时鸡行为检测系统研究 OpenCV与YOLO在人脸识别中的应用研究(论文源码) 计算机视觉&#xff1a;农作物病虫害检测系统&#xff1a;基于Y…

机器学习:监督学习与非监督学习

监督学习是利用带有标签的数据进行训练,模型通过学习输入和输出之间的关系来进行预测。也就是说,数据集中既有输入特征,也有对应的输出标签,模型的目标是找到从输入到输出的映射关系。 而无监督学习则使用没有标签的数据进行训练,模型的任务是发现数据中的内在结构或模式…

【unity进阶篇】不同Unity版本对应的C# 版本和API 兼容级别(Api Compatibility Level)选择

考虑到每个人基础可能不一样&#xff0c;且并不是所有人都有同时做2D、3D开发的需求&#xff0c;所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】&#xff1a;主要讲解C#的基础语法&#xff0c;包括变量、数据类型、运算符、…

H3CNE-13-静态路由(二)

1.路由优先级 路由类型DirectOSPFStaticRIP管理距离01060100 2.路由度量 配置示例&#xff1a; 配置接口IP、静态路由&#xff08;去包、回包&#xff09; 3.静态路由之路由备份 RTB: ip route-static 192.168.1.0 24 10.0.12.1 ip route-ststic 192.168.1.0 24 20.0.12.1 …

【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01;本次我们为大家带来的就是具体到气象监…

[Qualcomm]Qualcomm MDM9607 SDK代码下载操作说明

登录Qualcomm CreatePoing Qualcomm CreatePointhttps://createpoint.qti.qua

PID控制算法原理,并用python实现演示

PID算法控制运用在哪些地方&#xff1f; PID&#xff1a;比列(Proportion)&#xff0c;积分(Integral)&#xff0c;微分(Differential) PID算法可以用来控制温度&#xff0c;压强&#xff0c;流量&#xff0c;化学成分&#xff0c;速度等等。汽车的定速巡航&#xff1b;伺服驱…