2、ARM处理器概论

news2024/9/27 19:22:50

一、ARM处理器概述

1、ARM的含义

ARM(Advanced RISC Machines)有三种含义,一个公司的名称、一类处理器的通称、一种技术

ARM公司:

  • 成立于1990年11月,前身为Acorn计算机公司
  • 主要设计ARM系列RISC处理器内核
  • 授权ARM内核给生产和销售半导体的合作伙伴,ARM公司并不生产芯片
  • 提供基于ARM架构的开发设计技术软件工具、评估板、调试工具、应用软件总线架构、外围设备单元等

2、ARM产品系列

在这里插入图片描述

早先经典处理器:

  • 包括ARM7、ARM9、ARM11家族

Cortex-A系列:

  • 针对开放式操作系统的高性能处理器,应用于智能手机、数字电视、智能本等高端运用

Cortex-R系列:

  • 针对实时系统、满足实时性的控制需求,应于汽车制动系统、动力系统等

Cortex-M系列:

  • 为单片机驱动的系统提供了低成本优化方案,应用于传统的微控制器市场、智能传感器、汽车周边等

3、RISC处理器

  • 只保留常用的简单指令,硬件结构简单。复杂操作一般都通过简单指令的组合实现,一般指令长度固定,且多为单周期指令
  • RISC处理器在功耗、体积、价格方面有很大的优势,所以在嵌入式移动终端领域应用极为广泛

4、CISC处理器

  • 不仅包含了常用指令,还包含了许多不常用的特殊指令,硬件结构复杂、指令条数较多,一般指令长度和周期都不固定
  • CISC处理器在性能上有很大优势,多用于PC及服务器等领域

5、SOC(System on Chip)

  • 即片上系统,将一个系统中需要的全部部件集成在一个芯片中,在体积、功耗、价格上有很大的优势

二、ARM指令集概述

1、指令集

  • 指令:
    • 能够指示处理器执行某种运算的命令称为指令(加、减、乘…)
    • 指令在内存中以机器码(二进制)的方式存在
    • 每一条指令都对应一条汇编
    • 程序是指令的有序集合
  • 指令集:
    • 处理器能够识别的指令的集合称为指令集
    • 不同架构的处理器的指令集不同
    • 指令集是处理器对开发者提供的接口
      在这里插入图片描述

2、ARM指令集

大多数ARM都支持两种指令集
ARM指令集:

  • 所有的指令(机器码)都占用32bit的存储空间
  • 代码灵活度高,简化了解码的复杂度
  • 执行ARM指令集时,PC值每次自增4

Thumb指令集:

  • 所有指令(机器码)都占用16bit存储空间
  • 代码密度高、节省存储空间
  • 执行Thumb指令集时,PC值每次自增2

在这里插入图片描述

3、编译原理

  • 1、机器码(二进制)是处理器能够直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植

  • 2、汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条机器码,所以不同的处理器汇编也不一样,即汇编语言不可移植

  • 3、C语言在汇编时我们可以使用不同的编译器将C源码编译成不同的架构处理的汇编,所以C语言可以移植

三、ARM存储类型

1、ARM数据类型

ARM采用32位架构,基本数据类型有一下三种:

  • Byte:8bit
  • HalfWord:16bit
  • Word:32bit

数据存储:

  • Word型数据在内存的起始地址必须是4的整数倍
  • Half Word型数据在内存的起始地址必须是2的整数倍

注:即数据本身是多少位在内存存储时就应该多少位对齐
在这里插入图片描述

2、字节序

大端对齐

  • 低地址存放高位,高地址存放低位
  • 如:a = 0x12345678
    在这里插入图片描述
    小端对齐
  • 低地址存放低位,高地址存放高位
  • 如:a = 0x12345678
    在这里插入图片描述
    注:ARM一般使用小端对齐

3、ARM指令存储

处理器处于ARM状态时

  • 所有的指令在内存的起始地址必须是4的整数倍
  • PC值由其[31:2]决定,[1:0]位未定义

处理器处于Thumb状态时

  • 所有指令在内存的起始地址必须是2的整数倍
  • PC值由其[31:1]决定,[0]位未定义

注:即指令本身是多少位在内存存储时,就应该多少位对齐

四、ARM工作模式

1、ARM有八个基本的工作方式模式

  • User:非特权模式,一般在执行上层的应用程序时ARM处于该模式
  • FIQ: 当一个高优先级中断产生后ARM将进入这种模式
  • IRQ:当一个低优先级中断产生后ARM将进入这种模式
  • SVC:当复位或执行软中断指令后ARM将进入这种模式
  • Abort:当产生存取异常时ARM将进入这种模式
  • Undef:当执行未定义的指令时ARM将进去这种模式
  • System:使用和User模式相同的寄存器集的特权模式
  • Moniter:为了安全而扩展出的用于执行安全监控代码的模式

2、不同模式的理解

  • 不同的模式拥有不同的权限
  • 不同模式执行不同代码
  • 不同模式完成不同功能

3、模式的分类

按照权限分:

  • User为非特权模式(权限较低),其余模式均为特权模式(权限较高)

按照状态分:

  • FIQ、IRQ、SVC、Abort、Undef属于异常模式,即当处理器遇到异常的时候会进入对应的模式

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

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

相关文章

数据包络分析(DEA)

写在前面: 博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。 目录 1. …

gma 2 教程(二)数据操作:8.矢量数据功能逻辑架构和格式支持

安装 gma:pip install gma 功能逻辑架构 gma矢量数据操作类主要包括数据资源(DataSource)、矢量图层(Layer)、矢量要素(Feature),三者的示意图如下: 图 29 矢量数据组成…

【JAVA-Day22】深度解析 Java 的包机制

深度解析 Java 的包机制 深度解析 Java 的包机制摘要引言一、什么是包机制1.1 包的定义1.2 包的命名规范1.3 包的声明1.4 包的导入1.5 包的访问权限1.6 包的层次结构1.7 包的目录结构 二、包的命名冲突问题三、总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默…

ARM架构过程调用标准AAPCS(学习)

AAPCS是ARM架构的处理器规定的一些标准。 参数和返回值传递,对于简单的情况,输入参数由R0-R3分别用来记录第1到4个参数。当传递的参数超过4个时,就需要借助栈来保存参数。函数的返回值通常保存在R0中,若返回值为64位,…

Linux 多线程 ( 多线程概念 )

文章目录 Linux线程概念什么是线程?二级页表线程的优点线程的缺点线程异常 Linux线程概念 什么是线程? 在一个程序里的一个执行路线叫做线程 thread ),更准确的定义为:“线程是一个进程内部的控制序列"。一切进程至少有一个执行线程。…

ArcGIS Maps SDK for JavaScript系列之四:添加自定义底图

目录 Basemap类介绍Basemap类的常用属性Basemap类的常用方法 使用Basemap添加自定义底图引用Basemap引用切片图层创建一个新的Basemap对象将自定义图层应用到地图视图中引入并创建Camera对象引入并创建SceneView对象 Basemap类介绍 Basemap类是ArcGIS Maps SDK for JavaScript…

Linux:centos9的本地yum仓库配置

其实9和7的配置方法是差不多一样的,只不过你使用7的本地yum仓库里面直接挂载就可以直接把仓库位置指向挂载点 具体可以看我往期文章,但是先看完我下面的描述再去看我链接的文章才能看懂如何配置centos9的yum仓库 Linux:YUM仓库服务_鲍海超-…

Scratch游戏------打砖块(不用VIP)

打砖块游戏是一款较老的动作电子游戏。玩家操作“挡板”,让一颗不断弹来弹去的“球”击碎砖块,作为过关目标消去的“砖块”且的途中不会落到屏幕底下。 目录 1.操作说明: 2.背景: 3.挡板: 4.游戏控制: …

【算法训练-二叉树 二】【重建二叉树】依据前序与中序遍历序列重建二叉树

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【重建二叉树】,使用【二叉树】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

基于matlab实现的电磁波反射折射动态仿真

完整程序: %题目要求电场入射到xo平面 clear; clc; u04*pi*1e-7; %自由空间中的磁导率 e01e-9/(36*pi); %自由空间中的电介质常数 f1e8; %电磁波的频率 w2*pi*f; Ei5*1.41; %入射波幅度 R0.052; …

Linux: Cache 简介

文章目录 1. 前言2. 背景3. Cache 硬件基础3.1 什么是 Cache ?3.2 Cache 工作原理3.3 Cache 层级架构3.4 内存架构中各级访问速度概览3.5 Cache 分类3.6 Cache 的 查找 和 组织方式3.6.1 Cache 组织相关术语3.6.2 Cache 查找3.6.2.1 Cache 查找过程概述3.6.2.2 Cach…

函数式编程汇总

目录 一 . Lambda 表达式 实例 省略规则 二. Stream 流 案例数据准备 入门实例 调试技巧 常用操作 创建流 1. 单例集合 2. 数组 3. 双列集合 中间操作 1. filter 2. map 3. distinct 4. sorted 5. limit 7. flatMap 终结操作 1. forEach 2. count 3. max…

解决MySQL8.0本地计算机上的MySQL服务启动后停止没有报告任何错误

1.启动MySQL的错误信息如下 (1)“本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。” (2)又在PowerShell中运行"net start MySQL",服务启动失败。“MySQL 服务无法启…

27、git的安装和配置(自用简易版)

1.git的安装 安装没有什么好说的,运行安装包,一直下一步下一步,就好了 2.配置 首先配置用户名和邮箱吧 git config -global user.name "liu_liangyi"git config -global user.email 993261877qq.com配置好后可以查看一下,输入指令…

Java - LambdaQueryWrapper 的常用方法

1、查看项目中是否导入mybatisPlus的jar包 2、servie 层和实现类要集成mybatisPlus service 继承IService<> 实现类中要继承IService的实现类ServiceImpl<mapper,实体类> 3、如果想要mapper中的一些方法&#xff0c;mapper 要继承BaseMapper<实体类> 4、在实…

Nginx替代产品-Tengine健康检测

1、官网地址 官网地址&#xff1a;The Tengine Web Server 文档地址&#xff1a;文档 - The Tengine Web Server 健康检测模块&#xff1a;ngx_http_upstream_check_module - The Tengine Web Server 2、安装 下载 wget https://tengine.taobao.org/download/tengine-3.…

JAVA智慧物业源码 智慧物业系统源码

JAVA智慧物业源码 智慧物业系统源码 基于SpringBoot、Spring Security、Jwt、Vue的前后端分离的后台管理系统 编号&#xff1a;LQ8 1、系统环境 Java EE 8Servlet 3.0Apache Maven 3 2、主框架 Spring Boot 2.2.xSpring Framework 5.2.xSpring Security 5.2.x 3、持久层…

​全球人类读书会《乡村振兴战略下传统村落文化旅游设计》中国建筑出版传媒许少辉博士著作

​全球人类读书会《乡村振兴战略下传统村落文化旅游设计》中国建筑出版传媒许少辉博士著作

基于Xml方法的Bean的配置-实例化Bean的方法-构造方法

SpringBean的配置详解 Bean的实例化配置 Spring的实例化方法主要由以下两种 构造方法实例化&#xff1a;底层通过构造方法对bean进行实例化 构造方法实例化bean又分为无参方法实例化和有参方法实例化&#xff0c;在Spring中配置的<bean>几乎都是无参构造该方式&#xff…

如何把文件从本地上传云服务器

1、从服务器下载文件到本地&#xff08;如win电脑&#xff09; scp&#xff1a;命令&#xff0c; iss_train0110.33.16.2是服务器用户名&#xff0c;10.33.16.2是服务器ip&#xff0c; :是选择 /mnt/linaro/sample/sample/YOLOv8/cpp/yolov8_bmcv/yolov8_bmcv.soc&#xff1a;服…