ARM相关理论知识

一、计算机的组成

1.输入设备:将数据与程序转换成计算机能够识别,存储,运算的形式,输送到计算机中。

2.输出设备:将计算机对程序和数据的运算结果输送到计算机外部设备

3.控制器:由程序技术器,指令计数器,指令译码器,时许产生器和操作控制器组成。完成计算机指挥工作

4.运算器:由算数逻辑单元(ALU),累计寄存器,数据缓冲寄存器,和状态条件寄存器组成,是数据加工处理部件,完成各种算数与逻辑运算

5.存储器:用于保存计算机相关数据模块,根据功能分为内存(主存储器),外存(辅组存储器),寄存器,高速缓冲。

        1)寄存器:存在CPU内部,用于暂时存放数据,CPU对此范围没有延时

        2)告诉缓冲:硬件管理,主存被分为高速缓冲行,存放在CPU内部或非常接近高速缓冲中。当高速缓存需要存储一个字时,高速缓存检查所需要的高速缓存行是否在高速缓冲中,如是,则称为高速缓存命中,满足缓冲要求,就不需要通过总线把范访问请求送入主存,如不是,则必须访问主存。

        3)主存(内存):随机存储器(RAM),断电会丢失数据,制度存储器(ROM),断电数据不丢失,不可修改,启动加载模块是存放其中。电可擦可编程ROM(EEPROM),断电不丢失,闪存(flash),断电不丢失,易失性(CMOS),存放当前时间和日期,没有电也能更新,还可以配置参数,如启动那个磁盘。

        4)磁盘(外存):磁盘便宜,空间大,但是随机访问数据时间慢,是一种机械装置。

二、指令与指令集

1.机器指令:机器指令又叫机器码,在运算器内部存在各种运算电路,当处理器从内存中获取一条机器指令,就可以按照指令让运算器内部的指定的运算电路进行运算

2.汇编指令:由于机器指令对人类不友好(记不住),当我们和计算机进行交互时不能直接通过机器指令来进行,这个时候汇编就出现了,每一条汇编指令都可以理解为一条机器指令的标识,当我们编写一条汇编指令时,相当于得到了一条机器指令,就可以让运算器进行对应的运算

3.指令集:指令集就是指令的集合,当设计一个处理器的内核时,需提前设计内核中应该有的运算器的运算电路种类和数量,每个运算电路都对应一条指令。所以,设计内核之前应该将每一条运算电路对应的指令设计出来,组成一个指令集,用于作为内核设计的框架。

4.一条指令执行过程:

        1)取指阶段:控制器将需要执行的指令地址发送给内存,内存将hzi'l返回给控制器

        2)译码阶段:取到指令后进行译码操作,分析当前指令的意义,通知运算器进行对应运算

        3)执行阶段:指令译码完毕后,运算器进行对应的运算操作,将运算的结果进行保存

地址总线:用于传输地址的媒介

32位地址总线:32根传输地址的线,寻址范围:0-2^32-1

三、程序编译的基本原理

1.程序编译步骤:

        1)预处理:将程序中以#开头的内容展开到当前文件中

        2)编译:检查语法的错误,将程序生成汇编

        3)汇编:编译汇编文件,生成二进制文件

        4)链接:链接程序中使用各种库,生成可执行的二进制文件

2.编译的原理:不同框架的机器识别的机器指令不一样,机器指令与汇编指令不可移植。但是C语言是可移植的,如让c语言程序在不同框架的机器上运行,需要使用不同的编译器,去编译生成不同框架可执行的文件。

四、精简指令集与复杂指令集

指令集用于设计处理器内核框架,不同指令集可以用于设计不同的处理器内核

1.复杂指令集(CISC):指令长度与周期不固定,在处理能力上有优势,一般相对功耗,体积,成本更高,更侧重于硬件执行指令的功能性,它的硬件结构更为复杂。

2.精简指令集(RISC):结构简单,选取了使用频率高的简单指令,指令长度固定,大小固定,多为单周期指令,在功耗,体积,价格方面多有优势,多用于嵌入式领域。

指令长度:一条指令占用存储空间的大小

指令周期:执行一条指令的时间

3.常见的精简指令集框架:

ARM架构:当前主流的精简指令集框架,需要ARM公司授权使用

RISC-V架构:开源,正迅速发展的精简指令集架构

MIPS:中国龙芯收购,在原有的架构基础上进行优化

五、ARM

1.ARM架构:ARM推出的用于设计不同处理器核心的框架,本质上是不同的ARM指令集

2.ARM内核:不同的ARM处理器核心,它基于ARM架构设计

3.SOC:片上系统,若干个内核组成了一个处理器,在处理器外部集成各个外设(GPIO/UART/DMA/IIC/SPI),通过总线完成连接,组成一个微型计算机系统

六、ARM产品分布

1.Cortex-A系列:内核更加注重功能性的完善,继承以往ARM的内核,属于ARM高端产品,一般用于手机,电脑,pad。

2.Cortex-R系列:用在实时性要求比较高的场景,如智能汽车,军工,医疗

3.Cortex-M系列:属于RAM的低端产品,主要进行一些智能控制工作

4.SecurCore系列:用于对安全性能要求比较高的场景

5.Cortex-X系列:在2016年推出的一种内核系列,在云计算,边缘计算性能比较优越

6.ARM的数据约定:

A7采用的是32位框架:

约定:

Byte 8 bits
Halfword 16 bits
Word 32 bits
Doubleword 64 bits
大部分ARM core 提供:
ARM 指令集(32 bit)
THumb指令集(16 bit)

7.ARM工作模式

在ARM处理器面对不同的工作场景时会进入不同的工作模式去执行

User:非特权模式,大部分任务执行在这种模式
FIQ:当一个高优先级(fast)中断产生时,会进入这种模式
IRQ:当一个低优先级(normal)中断产生时,会进入这种模式
Supervisor:当复位或软中断指令执行时时会进入该种模式
Abort:当存取异常时,会进入该模式
Undef:当执行未定义的指令时,会进入该模式
System:使用和User模式相同寄存器集的特权模式
Cortex-A特有的模式:
monitor模式:执行安全监控代码时进入的模式
HYP模式:虚拟支持模式

8.ARM V7架构寄存器组织
ARM有37个32bits的长寄存器(1个PC,1个CPSP,5个SPSR,30个通用寄存器)
Cortex体系结构下有43个32bits长的寄存器
当前处理器的模式决定了哪些寄存器可操作,在任何模式下都可以存取
特权模式(除System模式)可以存取

9.ARMv7架构下的一些特殊寄存器

1).R15寄存器(PC):又称为程序计数器,PC寄存器保存即将被从内存中取出来的指令地址,当保存的指令地址被处理器发送给内存之后,PC值会自动向下加一条指令大小,这便是程序继续向下顺序执行断电原因

实现程序跳转的本质就是修改PC值

2).R14寄存器(LR):链接寄存器,当执行指令进行程序跳转,LR会保存跳转指令下一条指令的地址,为了程序返回

3).R13寄存器(SP):栈指针寄存器,保存栈内存栈顶地址,对临时数据进行压栈出栈时,需要操作SP的值来找到栈区位置。

4).当前程序状态寄存器(CPSR):保存当前程序工作状态(工作模式,中断禁止位,程序运算结果条件位)

5).被保存的程序状态寄存器(SPSR):因各种异常切换到异常工作模式时,会将CPSR的值提前保存到SPSR中,处理器处理完异常后,会将SPSR的值赋值给CPSR,用于恢复处理器的工作状态

N[31]:指令运算的结果为负数时,N位被自动置1,否则为0
Z[30]:指令运算的结果为零时,Z位被自动置1,否则为0
C[29]:加法运算产生进位,C位被自动置1,否则为0,减法运算产生借位,C位被自动置0,否则为1
V[28]:符号位发生变化,V位自动置1,否则为0
I[7]:IRQ中断屏蔽位,I=0,不屏蔽IRQ中断,I=1,屏蔽IRQ中断
F[6]:FIQ中断屏蔽位,F=0,不屏蔽FIQ中断,F=1,屏蔽FIQ中断
T[5]:状态位,T=0,表示ARM状态,执行ARM指令集,T=1,Thumb状态,执行Thumb指令集
ARM指令集:一条汇编指令编译生成32位机器码
Thumb指令集:一条汇编指令编译生成16位机器码
ARM的指令集代码密度低,Thumb指令集代码密度高,ARM指令集功能性高于Thumb指令集
M[4:0]:模式位
10000:User mode
10001:FIQ mode
10010:IRQ mode
10011:SVC mode
10111:Abort mode
11011:Undef mode
11111:System mode
10110:monitor mode

10.ARM处理器的流水线工作

一条指令的执行过程分为取指,译码,执行三阶段,为了充分利用处理器资源,提高指令执效率,引入ARM三级流水线工作

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

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

相关文章

SpringMVC系列十: 中文乱码处理与JSON处理

文章目录 中文乱码处理自定义中文乱码过滤器Spring提供的过滤器处理中文 处理json和HttpMessageConverter<T>处理JSON-ResponseBody处理JSON-RequestBody处理JSON-注意事项和细节HttpMessageConverter<T\>文件下载-ResponseEntity<T\>作业布置 上一讲, 我们学…

假冒国企现形记:股权变更视角下的甄别分析

启信慧眼-启信宝企业版 假冒国企公告2024-06-07&#xff0c;中粮集团有限公司官网发布《关于冒名中粮企业名单公告》。公告显示&#xff0c;”有不法分子通过伪造相关材料等方式&#xff0c;以我集团子公司名义开展业务&#xff0c;进行虚假宣传。经核实&#xff0c;上述公司假…

伸展树(数据结构篇)

数据结构之伸展树 伸展树 概念&#xff1a; 伸展树是一颗对任意一个节点被访问后&#xff0c;就经过一系列的AVL树的旋转操作将该节点放到根上的特殊二叉查找树。伸展树能保证对树操作M次的时间复杂度为O(MlogN)&#xff0c;而当一个查找树的一个节点刚好处于查找树最坏的情…

物联网系统运维——实验备份与恢复,数据镜像软件DRBD介绍,DRBD的安装和应用,extundelete的安装和应用(重点),环境准备,配置设置

一.数据备份 1.数据备份的重要性 备份是系统中需要考虑的最重要的事项,虽然这在系统的整个规划,开发和测试过程中甚至占不到1%,看似不太重要且默默无闻的工作只有到恢复的时候才能真正体现出其重要性,任何数据的丢失与数据宕机&#xff0c;都是不可以被接收的。 2.数据备份策…

基于Pytorch框架构建LeNet-5模型

Pytorch 一、训练模型1.导入必要的库2.设置超参数3.数据预处理4.读取数据 二、定义卷积神经网络1.定义卷积神经网络2.定义学习率3.实例化模型并且移动到GPU4.选择优化器 三、定义调整学习率的函数1.定义调整学习率的函数 四、训练模型1.设置模型为训练模式2.遍历训练数据加载器…

【Day02】0基础微信小程序入门-学习笔记

文章目录 模板与配置学习目标WXML 模板语法1.数据绑定&#xff08;类似于 Vue2 &#xff09;2. 事件绑定3. 条件渲染4.列表渲染 WXSS模板样式1. rpx尺寸单位2.样式导入3. 全局样式和局部样式 全局配置1. window2. tabBar 页面配置网络数据请求总结 持续更新~ 模板与配置 学习目…

gateway整合sentinel限流

官方文档&#xff1a;https://github.com/alibaba/Sentinel/wiki/%E7%BD%91%E5%85%B3%E9%99%90%E6%B5%81 从 1.6.0 版本开始&#xff0c;Sentinel 提供了 Spring Cloud Gateway 的适配模块&#xff0c;可以提供两种资源维度的限流&#xff1a; route 维度&#xff1a;即在 Spr…

【第28章】Vue实战篇之用户重置密码

文章目录 前言一、调用接口二、重置密码三、界面展示总结 前言 这里我们来通过调用后端接口来完成密码重置功能并且修改成功清除缓存重新登录。 一、调用接口 export const userResetPasswordService (data)>{return request.patch(/user/updatePwd, data) }二、重置密码…

【数据结构与算法】详解循环队列:基于数组实现高效存储与访问

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法》 期待您的关注 ​ 目录 一、引言 &#x1f343;队列的概念 &#x1f343;循环队列的概念 &#x1f343;为什…

DIY灯光特效:霓虹灯动画制作教程

下面我们根据这张霓虹灯案例,教大家如何用智能动物霓虹灯闪烁的效果,大家可以根据思路,实现自己想要的动效效果,一起动手来做吧。 即时设计-可实时协作的专业 UI 设计工具 设置背景 新建画板尺寸为:800PX^600PX,设置背景色#120527。 绘制主题 输入自己喜欢文案,轮廓化,具体…

网络基础-协议

一、ARP 通过IP得到Mac 首先会查看缓存的arp表中是否有相应的IP和Mac对应关系&#xff0c;如果有直接进行包封装。如果没有则进行广播当对应的地址就收到广播包后会根据arp中的源地址进行单播返回相应的IP和Mac对应关系。 arp -a 查看现有的arp缓存 二、RARP反向地址解析 通过…

酒店多商户版微信小程序源码

一站式预订新体验 一、引言&#xff1a;打破传统&#xff0c;开启智能预订新时代 在数字化浪潮的推动下&#xff0c;传统的酒店预订方式已经逐渐无法满足现代人的需求。为此&#xff0c;一款集众多酒店商户于一体的“酒店多商户版小程序”应运而生&#xff0c;以其便捷、智能…

江门电子行业实施MES系统前后对比

在江门电子行业实施MES系统之前和之后的对比可以涉及以下几个方面&#xff1a; 生产效率提升&#xff1a;实施MES系统后&#xff0c;江门电子行业可以实现生产过程的实时监控和优化&#xff0c;减少生产中的浪费和停机时间&#xff0c;提高生产效率。 质量控制改善&#xff1a;…

【机器学习】机器学习重要方法——深度学习:理论、算法与实践

文章目录 引言第一章 深度学习的基本概念1.1 什么是深度学习1.2 深度学习的历史发展1.3 深度学习的关键组成部分 第二章 深度学习的核心算法2.1 反向传播算法2.2 卷积神经网络&#xff08;CNN&#xff09;2.3 循环神经网络&#xff08;RNN&#xff09; 第三章 深度学习的应用实…

解释一下在React中,什么是“渲染Props”模式,以及它与使用Hooks之前的状态管理有何不同?

在React中&#xff0c;"渲染Props"模式是一种组件设计模式&#xff0c;它通过将一个函数作为prop传递给组件&#xff0c;允许父组件定义子组件的渲染逻辑。这种模式使得组件更加灵活和可复用&#xff0c;因为它们可以接受一个渲染函数来决定如何渲染自己。 渲染Prop…

视频监控解决方案:视频平台升级技术方案(下)

目录 1 项目概况 2 项目需求 2.1 视频感知资源扩充 2.2 视频支撑能力升级 2.3 视频应用能力升级 3 技术设计方案 3.1系统总体架构 3.2视频感知资源扩充设计 3.3 视频支撑能力升级设计 3.4 视频应用能力升级设计 3.4.1视频资源目录管理 3.4.2标签管理 3.4.3设备智能…

MySQL----undo log回滚日志原理、流程以及与redo log比较

回滚日志 回滚日志&#xff0c;保存了事务发生之前的数据的一个版本&#xff0c;用于事务执行时的回滚操作&#xff0c;同时也是实现多版本并发控制&#xff08;MVCC&#xff09;下读操作的关键技术。 如何理解Undo Log 事务需要保证原子性&#xff0c;也就是事务中的操作要…

Nvidia Isaac Sim图编程OmniGraph 入门教程 2024(6)

Nvidia Isaac Sim 入门教程 2024 版权信息 Copyright 2023-2024 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. …

学习笔记——动态路由——RIP(距离矢量协议)

一、距离矢量协议 1、距离矢量协议 矢量行为&#xff1a;协议收到一个路由之后&#xff0c;查看是否可以加入到本地的路由表中&#xff0c;如果可以加入&#xff0c;则可以传递&#xff0c;如果不可以加入&#xff0c;则无法传递。 距离矢量路由协议 RIP基于距离矢量算法(又…

使用 Reqable 在 MuMu 模拟器进行App抓包(https)

1、为什么要抓包&#xff1f; 用开发手机应用时&#xff0c;查看接口数据不能像在浏览器中可以直接通过network查看&#xff0c;只能借助抓包工具来抓包&#xff0c;还有一些线上应用我们也只能通过抓包来排查具体的问题。 2、抓包工具 实现抓包&#xff0c;需要一个抓包工具…