当前位置: 首页 > article >正文

ARM原理

一、指令集

1、指令集 就是cpu用来计算和控制计算机系统的一套指令的集合。

2、每一种新型cpu在设计的时候就规定好了一套和硬件电路适配的指令系统。指令集先进与否与CPU性能发挥占有很大的因素,也因此,指令集尝尝作为一个判定CPU性能强弱的重要指标。

3、从现阶段主流的指令集来进行分类,主要分为复杂指令集(CISC)和精简指令集(RISC)。


二、CISC和RISC的区别

1、RISC精简指令集(ARM)

1. 概念

        复杂指令集中提取了一些简单和常用的指令集组成

2. 特点

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

        指令宽度:一条汇编指令编译生成机器码所占用的空间

3. 结论:

        精简指令集:指令周期以及指令宽度都是固定的

        thumb指令集:一条指令占用两个字节的空间

        arm指令集:一条指令占用四个字节的空间

注意:thumb指令集在使用的时候需要搭配arm指令集使用


2、复杂指令集

1. 概念

        更加注重指令的功能和性能

2. 结论

        复杂指令集指令宽度和周期都是不固定的 重点在实现功能


三、ARM数据类型的约定

重点区分字和字节的区别

1、arm-v7

2、armv-8


四、数据的存储(重点)

数据的存储方式分为大小端存储

        对于大端存储方式:低位地址存高字节数据

        对于小端存储方式:低位地址存低字节数据


五、ARM处理器的工作模式

1、ARM处理器工作模式概念

ARM处理器工作模式一共有七种

1. User(用户程序运行模式)

        非特权模式,大部分任务在这里执行

2. FIQ(快速中断模式)

        当一个高优先级(fast)中断产生时进入FQ模式。

3. IRQ(普通/一般中断模式)

        当一个低优先级中断产生式进入IRQ模式

4. Supervisor(管理模式)

        当复位或者软中断指令执行时会进入管理模式 重启上电时也是管理模式

        提供操作系统使用的一种保护模式,swi命令状态

5. Abort(中止)

        当存取异常时会进入Abort模式 对虚拟内存管和内存数据的保护

6. Undef(未定义指令中止)

        当执行未定义指令时进入,支持通过软件仿真硬件的协处理

7. system(系统)

        使用和User模式相同的寄存器集的特权模式 和user类似只是权限更高(基本遇不到)

2、总结

        在特定的模式下,一般会执行特定的代码,完成某个特定功能。

        除了用户模式,其余所有模式均为特权模式。

        这几种工作模式可以进行切换,可以通过外部硬件进行切换也可以通过软件编程来进行切换。

        进入特权模式的异常模式 是为了处理相应的中断

        user和system共用一套寄存器


六、ARM寄存器组织

1、CPU从逻辑上划分可以分为三个模块:分别是控制单元、存储单元、运算单元,这三部分是CPU内部总线连接起来的。

2、冯诺依曼提出计算机架构,其工作过程可以分五个阶段:取指令、指令译码、执行指令、访存取数、结果协回。

3、运算器、控制器、存储器、寄存器,由ARM公司集成到CPU内部的。


1、寄存器的位置

1. 寄存器处于SOC内部的cortex-A7核内部

2. 优缺点

        运算速率快 但因为适合CPU结合在一起 数量相对较少

2、寄存器介绍

1. 概念

        寄存器属于处理器内部寄存器,没有地址,只有编号,使用者只能通过编号对寄存器进行操作。

2. 作用

        一般存放暂时需要运算的数据

每一个方块都代表一个寄存器 一个寄存机可以存放32bit(4byte)

每种工作模式都有自己的私有寄存器

寄存器为白色的代表为公有寄存器 带标识的为私有寄存器

如果某个工作模式下有私有寄存器 则不可以访问公有的

寄存器个数有限,一般cortex处理器一共43个寄存器,arm处理器一般有37个寄存器


七、特殊功能寄存器

1、SP------->栈指针寄存器

        R13--------->SP

作用:指向栈顶空间的地址

2、LR------->链接寄存器

        R14--------->LR

        作用:用于存放函数的返回地址

3、PC---->程序计数器

        R13----->PC

        作用:PC中存放的是当前取指指令的地址

4、CPSR状态寄存器

        CPSR--->当前状态寄存器

        作用:保存当前的程序状态,分析CPSR寄存器中的值可以判断当前程序的运行状态

5、SPSR寄存器

        SPSR----->保存状态寄存器

        作用:备份CPSR寄存器的值


八、指令流水线(取指 译码 执行)

1、概念

1. 指令流水线的作用

        提高代码的执行效率

2. 取指器

        根据PC寄存器中的值进行取指操作

3. 译码器

        翻译指令 执行功能 并且给到对应的执行器

4. 执行器

        执行命令 完成特定的功能 并且将相应的结果给到对应寄存器

2、ARM指令流水线

        V7采用三级 V9采用5级 A9采用8级

注:虽然流水线的等级越来越多,但是其本质还是在三级的基础上进行细分

PC不管是几级流水线,PC指向的永远是当前正在取指的指令,而当前正在执行的指令的地址就是PC。

3、多核处理器

1. 概念

        即一个SOC集成多个CPU内核

2. 作用

        不同的线程可以在不同的核中进行 实现真正的并发


http://www.kler.cn/a/447500.html

相关文章:

  • Nginx的stream模块代理四层协议TCP的流量转发
  • 知网研学 | 知网文献(CAJ+PDF)批量下载
  • 回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测
  • 写SQL太麻烦?免费搭建 Text2SQL 应用,智能写 SQL | OceanBase AI 实践
  • Linux 文件系统目录结构及其简要介绍
  • Windows11 离线更新 WSL
  • 文件包含tomato靶机通关
  • 39.在 Vue3 中使用 OpenLayers 导出 GeoJSON 文件及详解 GEOJSON 格式
  • LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读
  • 前端知识补充—HTML
  • Java每日一题(2)
  • 260-高速AD/DA开发板 大容量FPGA编程 USRP K7-SDR Kintex-7 XC7K325T
  • 基于NodeMCU的物联网空调控制系统设计
  • zookepper安装部署
  • Vue.js 核心概念:模板、指令、数据绑定
  • centos7安装python3(保留python2.7)
  • 酷黑金色配色 影片素材不过时 色彩丰富 电影主题html
  • 前端的Python应用指南(一):快速构建 Web 服务器 - Flask vs Node.js 对比
  • 智能语音识别模块与声音传感器模块对比分析:原理、优缺点、性价比与应用领域
  • Flutter/Dart:使用日志模块Logger Easier
  • 分析excel硕士序列数据提示词——包含对特征的筛选,非0值的过滤
  • 洛谷 P1595 信封问题 C语言递归
  • Ajax中的axios
  • MySQL外连接
  • HTML 图像标签使用陷阱
  • 渗透实录-01