【物联网】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
ARM是Advanced 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的值
相关文章:

【物联网】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.…...

Android系统定制APP开发_如何对应用进行系统签名
前言 当项目开发需要使用系统级别权限或frame层某些api时,普通应用是无法使用的,需要在AndroidManifest中配置sharedUserId: AndroidManifest.xml中的android:sharedUserId“android.uid.system”,代表的意思是和系统相同的uid&a…...
Tesla Free-Fall Attack:特斯拉汽车网络安全事件纪要
Tesla Free-Fall Attack:特斯拉汽车网络安全事件纪要 1. 引言 Tesla Free-Fall Attack 是由腾讯科恩实验室(Tencent Keen Security Lab)于2016年9月对特斯拉Model S汽车实施的一次远程攻击事件,揭示了汽车网络安全的严重漏洞&am…...
网络安全工程师学习路线
https://www.processon.com/view/link/6584f06465b7eb6189e99508 1、HTML基本语言 常用标签、表单、上传页面、登录页面、超链接2、javascript基本语法 变量、函数、流程控制语法、post请求、ajax请求、输入数据到页面、文件上传3、mysql基本用法 增删改查 infromation_sch…...
分区和分表有什么区别?
数据库中数据量过多,表太大的时候,不仅可以做分库分表,还可以做表分区,分区和分表类似,都是按照一定的规则将一张大表进行分解。 听上去好像也差不多,不就是将表拆分吗?那具体有什么差别呢&…...

C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程
通过本课程的学习,你可以掌握C#编程的重点,享受编程的乐趣。 在本课程之前,你无需具备任何C#的基础知识,只要能操作电脑即可。 不过,希望你的数学不是体育老师教的。好的程序是数理化的实现与模拟。没有较好的数学基础…...

简述mysql 主从复制原理及其工作过程,配置一主两从并验证。
MySQL 主从同步是一种数据库复制技术,它通过将主服务器上的数据更改复制到一个或多个从服务器,实现数据的自动同步。 主从同步的核心原理是将主服务器上的二进制日志复制到从服务器,并在从服务器上执行这些日志中的操作。 MySQL主从同步是基…...
Android 右键后无Java class创建
Android studio 创建java class : 最近几个月用Android studio 开发,因为电脑设置了一个新的用户使用,原来的android studio,打开之前的正常的项目总是报一些奇奇怪怪的错误,就重新安装了最新的版本 问题描述 但是新的android s…...

【从零开始入门unity游戏开发之——C#篇46】C#补充知识点——命名参数和可选参数
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、…...

哈尔滨有双线服务器租用吗?
哈尔滨有双线服务器租用吗?双线服务器是一种针对哈尔滨特有的网络环境优化的服务器解决方案,它能够同时支持中国电信和中国联通或移动其中两家主要ISP(互联网服务提供商)的连接。 由于中国南方地区多采用电信网络,而北…...

JVM 面试八股文
目录 1. 前言 2. JVM 简介 3. JVM 内存划分 3.1 为什么要进行内存划分 3.2 内存划分的核心区域 3.2.1 核心区域一: 程序计数器 3.2.2 核心区域二: 元数据区 3.2.3 核心区域三: 栈 3.2.4 核心区域四: 堆 4. JVM 类加载机制 4.1 类加载的步骤 4.1.1 步骤一: 加载 4…...

STM32 FreeRTOS内存管理简介
在使用 FreeRTOS 创建任务、队列、信号量等对象时,通常都有动态创建和静态创建的方式。动态方式提供了更灵活的内存管理,而静态方式则更注重内存的静态分配和控制。 如果是1的,那么标准 C 库 malloc() 和 free() 函数有时可用于此目的&#…...

【云岚到家】-day02-客户管理-认证授权
第二章 客户管理 1.认证模块 1.1 需求分析 1.基础概念 一般情况有用户交互的项目都有认证授权功能,首先我们要搞清楚两个概念:认证和授权 认证: 就是校验用户的身份是否合法,常见的认证方式有账号密码登录、手机验证码登录等 授权:则是该用…...
【达梦数据库】两地三中心环境总结
目录 架构监视器位置异步备库同步频率配置:dmtimer.ini断网测试异地切换过程&回切:允许丢数据模式切换回切 架构 2(1主1实时备库)1(实时备库)1(异步备库),分别为节点1、2、3、4监视器位置 …...
【springboot 集成 mybatis-plus】
springboot 集成 mybatis-plus 前言实战代码生成器自动填充字段 前言 正如MyBatis-Plus官网所说,MyBatis-Plus 是一个 MyBatis 的增强工具,提供了强大的CRUD操作,支持主键自动生成,代码生成器,自动填充字段等等&#…...
深入浅出 Go语言并发安全字典 sync.Map:原理、使用与优化
深入浅出 Go语言并发安全字典 sync.Map:原理、使用与优化 背景介绍 Go语言作为一种高效的并发编程语言,其标准库中提供了丰富的并发工具,如sync.WaitGroup、sync.Mutex等。然而,在实际开发中,我们经常需要在多个goroutine之间共享数据,这就涉及到并发安全的问题。传统的…...

【Go】Go数据类型详解—指针
1. 前言 在我看来,一门编程语言语法的核心就在于数据类型。而各类编程语言的基本数据类型大致相同:int整型、float浮点型、string字符串类型、bool布尔类型,但是在一些进阶数据类型上就有所不同了。本文将会介绍Go语言当中核心的数据类型——…...

道格拉斯-普克算法(DP)轮廓点精简(Python)
1、介绍 道格拉斯-普克算法由David H. Douglas和Thomas K. Peucker于1973年提出,主要用于简化曲线或折线。而实际中,激光点云的边缘点非常粗糙,如果直接将点进行连接,锯齿问题严重。经过DP算法处理后,数据显示会比较光…...
WPF如何跨线程更新界面
WPF如何跨线程更新界面 在WPF中,类似于WinForms,UI控件只能在UI线程(即主线程)上进行更新。WPF通过Dispatcher机制提供了跨线程更新UI的方式。由于WPF的界面基于Dispatcher线程模型,当你在非UI线程(例如后…...
Ubuntu 24.04 LTS 服务器折腾集
目录 Ubuntu 更改软件源Ubuntu 系统语言英文改中文windows 远程链接 Ubuntu 图形界面Windows 通过 openssh 连接 UbuntuUbuntu linux 文件权限Ubuntu 空闲硬盘挂载到 文件管理器的 other locationsUbuntu 开启 SMB 服务,并通过 windows 访问Ubuntu安装Tailscale&am…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...

aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...

GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...