【物联网】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的值

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SuperMap iClient3D for Cesium立体地图选中+下钻特效

在大屏展示系统中&#xff0c;对行政区划数据制作了立体效果&#xff0c;如果希望选中某一行政区划进行重点介绍&#xff0c;目前常见的方式是通过修改选中对象色彩、边线等方式进行实现&#xff1b;这里提供另外一种偏移动效的思路&#xff0c;并提供下钻功能&#xff0c;让地…

Linux的常用命令(三)

目录 六、网络通信命令 1.网络通信命令ping 2.网络通信命令ifconfig 七、系统命令 1. 系统命令shutdown 2. 系统命令reboot 八、vi编辑器 六、网络通信命令 1.网络通信命令ping 命令名称&#xff1a;ping 命令所在路径&#xff1a;/usr/sbin/ping 执行权限&#xff…

SQL Prompt 插件

SQL Prompt 插件 注&#xff1a;SQL Prompt插件提供智能代码补全、SQL格式化、代码自动提示和快捷输入等功能&#xff0c;非常方便&#xff0c;可以自行去尝试体会。 1、问题 SSMS&#xff08;SQL Server Management Studio&#xff09;是SQL Server自带的管理工具&#xff0c…

《小迪安全》学习笔记05

目录 读取&#xff1a; 写入&#xff1a; &#xff08;其中的读取和写入时我认为比较重要的&#xff0c;所以单独做成了目录&#xff0c;这里的读取和写入是指在进行sql注入的时候与本地文件进行的交互&#xff09; 好久没发博客了。。。从这篇开始的小迪安全学习笔记就开始…

SpringCloud源码-Ribbon

一、Spring定制化RestTemplate&#xff0c;预留出RestTemplate定制化扩展点 org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration 二、Ribbon定义RestTemplate Ribbon扩展点功能 org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguratio…

Linux 常用命令 - chmod 【改变文件或目录权限】

简介 “chmod” 这个命令来自于 “change mode” 的缩写&#xff0c;用于更改文件或目录的访问权限。这个命令允许用户设定谁可以读取、写入或执行一个文件。在 Linux 和其他类 Unix 系统中&#xff0c;文件权限对系统安全和用户隐私至关重要。 Linux/Unix 的文件调用权限分为…

Linux系统离线部署MySQL详细教程(带每步骤图文教程)

1、登录官网下载对应的安装包 MySQL :: Developer Zone 2、将压缩包上传到服务器上&#xff0c;这里直接上传到/usr/local路径上 使用sftp工具上传到/usr/local目录上 3、解压压缩包 tar -xf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz 4、将mysql-8.0.39-linux-glibc2.17…

PyTorch使用教程(1)—PyTorch简介

PyTorch是一个开源的深度学习框架&#xff0c;由Facebook人工智能研究院&#xff08;FAIR&#xff09;于2016年开发并发布&#xff0c;其主要特点包括自动微分功能和动态计算图的支持&#xff0c;使得模型建立更加灵活‌。官网网址&#xff1a;https://pytorch.org。以下是关于…

Linux浅谈——管道、网络配置和客户端软件的使用

目录 一、管道 1、管道符 2、过滤功能 3、特殊功能 4、扩展处理 5、xargs命令扩展 二、网络配置 1、ifconfig查看网络信息 2、配置文件详解 网卡配置文件位置 3、systemctl查看网卡状态 4、systemctl启动/重启/停止网卡 三、客户端软件 1、什么是SSH 2、常用SSH终…

arcgis中生成格网矢量带高度

效果 1、数据准备 (1)矢量边界(miain.shp) (2)DEM(用于提取格网标高) (3)DSM(用于提取格网最高点) 2、根据矢量范围生成格网 模板范围选择矢量边界,像元宽度和高度根据坐标系来输入,我这边是4326的,所以输入的是弧度,输出格网矢量gewang.shp 3、分区统计 …

IEC103 转 ModbusTCP 网关

一、产品概述 IEC103 转 ModbusTCP 网关型号 SG-TCP-IEC103 &#xff0c;是三格电子推出的工业级网关&#xff08;以下简 称网关&#xff09;&#xff0c;主要用于 IEC103 数据采集、 DLT645-1997/2007 数据采集&#xff0c; IEC103 支持遥测和遥 信&#xff0c;可接…

Android BottomNavigationView不加icon使text垂直居中,完美解决。

这个问题网上千篇一律的设置iconsize为0&#xff0c;labale固定什么的&#xff0c;都没有效果。我的这个基本上所有人用都会有效果。 问题解决之前的效果&#xff1a;垂直方向&#xff0c;文本不居中&#xff0c;看着很难受 问题解决之后&#xff1a;舒服多了 其实很简单&…

【蓝桥杯】43687.赢球票

题目描述 某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。 主持人拿出 N 张卡片&#xff08;上面写着 1⋯N 的数字&#xff09;&#xff0c;打乱顺序&#xff0c;排成一个圆圈。 你可以从任意一张卡片开始顺时针数数: 1,2,3 ⋯ ⋯ 如果数到的数字刚好和卡片上的数字…

(01)FreeRTOS移植到STM32

一、以STM32的裸机工程模板 任意模板即可 二、去官网上下载FreeRTOS V9.0.0 源码 在移植之前&#xff0c;我们首先要获取到 FreeRTOS 的官方的源码包。这里我们提供两个下载 链 接 &#xff0c; 一 个 是 官 网 &#xff1a; http://www.freertos.org/ &#xff0c; 另…

金融项目实战 05|Python实现接口自动化——登录接口

目录 一、代码实现自动化理论及流程 二、脚本实现的理论和准备工作 1、抽取功能转为自动化用例 2、搭建环境(测试工具) 3、搭建目录结构 三、登录接口脚本实现 1、代码编写 1️⃣api目录 2️⃣script目录 2、断言 3、参数化 1️⃣编写数据存储文件&#xff1a;jso…

C# .NetCore 使用 Flurl.Http 与 HttpClient 请求处理流式响应

AI对话接口采用流式返回&#xff1a; 1、使用Flurl处理返回的数据流 using Flurl; using Flurl.Http; [HttpPost] public async Task<string> GetLiushiChatLaw() { //1、请求参数&#xff0c;根据实际情况 YourModel request new YourModel();string allStr …

南京地铁路线和站点2021-2030含规划线路shp数据arcmap地铁图坐标wgs84无偏移内容分析测评

南京地铁路线与站点数据是地理信息系统&#xff08;GIS&#xff09;中常用的一种数据格式&#xff0c;主要用来表示城市轨道交通网络。在本压缩包中&#xff0c;包含的是2021年至2030年&#xff0c;包括规划线路的南京地铁信息&#xff0c;数据类型为Shapefile&#xff08;shp&…

Web3D交互展示:重塑产品展示的新维度

在当今数字化时代&#xff0c;如何高效、直观地展示产品成为企业营销的关键一环。传统的二维图片和视频展示虽然在一定程度上能够传达产品信息&#xff0c;但往往缺乏沉浸感和互动性&#xff0c;难以满足消费者日益增长的体验需求。在此背景下&#xff0c;Web3D交互展示应运而生…

JVM远程调试原理剖析

一、如何开启JVM远程调试 当一个 Java 应用启动时&#xff0c;JVM 会根据启动参数配置其运行环境。使用 -agentlib:jdwp 参数启动远程调试功能&#xff0c;JVM 会初始化调试代理。 agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005 -jar your_application.jar…

人工智能之深度学习-[1]-了解深度学习

深度学习 深度学习&#xff08;Deep Learning&#xff09;是机器学习&#xff08;Machine Learning&#xff09;的一种方法&#xff0c;它通过模拟人脑的神经网络结构来进行学习和推理。深度学习使用多层神经网络来分析和建模数据&#xff0c;尤其擅长处理大量数据和复杂模式的…