ARM处理器概论

news2024/11/18 10:53:59

目录

一、ARM处理器概述

1.ARM的含义

2.ARM公司

3.主流的两种处理器

RISC处理器(精简指令集)

CISC处理器(复杂指令集)

4.SOC

二、ARM指令集概述

1.指令与指令集

指令

指令集

2.ARM指令集

ARM指令集

Thumb指令集

3.编译原理

三、ARM存储模式

1.ARM数据类型

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

数据存储

2.字节序

3.ARM指令存储

处理器处于ARM状态时

处理器处于Thumb状态时

四、ARM工作模式

1.八种工作模式

2.模式间的区别

3.工作模式分类

按照权限

按照状态


一、ARM处理器概述

1.ARM的含义

    ARM(Advanced RISC Machines)有三种含义

一个公司的名称、一类处理器的通称、一种技术

2.ARM公司

    > 成立于1990年11月,前身为Acorn计算机公司

    > 主要设计ARM系列RISC处理器内核

    > 授权ARM内核给生产和销售半导体的合作伙伴,ARM公司并不生产芯片

    > 提供基于ARM架构的开发设计技术软件工具、评估板、调试工具、应用软件

      总线架构、外围设备单元等

 

3.主流的两种处理器

RISC处理器(精简指令集)

    只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令

    RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛

RISC体系结构_百度百科

CISC处理器(复杂指令集)

    不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定

    CISC处理器在性能上有很大优势,多用于PC及服务器等领域

复杂指令集计算机_百度百科

4.SOC

        SoC的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。一般说来, SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。

soc(系统级芯片)_百度百科 

二、ARM指令集概述

1.指令与指令集

指令

    能够指示处理器执行某种运算的命令称为指令(如加、减、乘 ...)

    指令在内存中以机器码(二进制)的方式存在

    每一条指令都对应一条汇编

    程序是指令的有序集合

指令集

    处理器能识别的指令的集合称为指令集

    不同架构的处理器指令集不同

    指令集是处理器对开发者提供的接口

 

2.ARM指令集

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

ARM指令集

    所有指令(机器码)都占用32bit存储空间

    代码灵活度高、简化了解码复杂度

    执行ARM指令集时PC值每次自增4

Thumb指令集

    所有指令(机器码)都占用16bit存储空间

    代码密度高、节省存储空间

    执行Thumb指令集时PC值每次自增2

ARM指令集_百度百科

3.编译原理

 

 编译原理_sundingh的博客-CSDN博客_编译原理

三、ARM存储模式

1.ARM数据类型

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

    Byte  8bits

    Halfword  16bits

    Word  32bits

C语言程序在ARM处理器上跑,编译器会自动将数据类型等位转换,float类型数据可以先处理整数部分,在处理小数部分

数据存储

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

    Halfword型数据在内存的起始地址必须是2的整数倍

   

注:即数据本身是多少位在内存存储时就应该多少位对齐

 

2.字节序

第一题验证电脑是大端字节序还是小端字节序

嵌入式面试题_宇努力学习的博客-CSDN博客 

3.ARM指令存储

处理器处于ARM状态时

    所有指令在内存的起始地址必须是4的整数倍

    PC值由其[31:2]决定,[1:0]位未定义

处理器处于Thumb状态时

    所有指令在内存的起始地址必须是2的整数倍

    PC值由其[31:1]决定,[0]位未定义

注:即指令本身是多少位在内存存储时就应该多少位对齐PC必须是对应指令的整数位,如果不是将相应位置自动变成0

比如ARM指令PC=7时写入111实际写入011

四、ARM工作模式

1.八种工作模式

  User(用户模式)               非特权模式,一般在执行上层的应用程序时ARM处于该模式

  FIQ(快速中断模式)         当一个高优先级中断产生后ARM将进入这种模式

  IRQ(外部中断模式)         当一个低优先级中断产生后ARM将进入这种模式

  SVC(超级用户模式)        当复位或执行软中断指令后ARM将进入这种模式

  Abort(终止模式)              当产生存取异常时ARM将进入这种模式

  Undef(指令未定义模式)  当执行未定义的指令时ARM将进入这种模式

  System(系统模式)           使用和User模式相同寄存器集的特权模式

  Monitor(监控模式)           为了安全而扩展出的用于执行安全监控代码的模式

注意:这是cortex—A9的模式,不同ARM版本模式不同

2.模式间的区别

ARM的七种工作模式-电子工程世界 

3.工作模式分类

按照权限

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

按照状态

    FIQ、IRQ、SVC、Abort、Undef属于异常模式,即当处理器遇到异常后

会进入对应的模式

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

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

相关文章

vuex----的辅助函数mapState, mapActions, mapMutations用法和混入

Vuex的辅助函数mapState, mapActions, mapMutations用法和混入 爱学习的渣渣关注IP属地: 江苏 2022.03.28 00:14:13字数 287阅读 469 一.使用mapState来获取state里的值 第一步先解构 1.最简单的使用数组的形式来获取模块中state中的值 2.用对象的形式来获取模块中的state的…

面试官:Spring refresh过程是怎样的?

小熊学Java网站:https://javaxiaobear.gitee.io/,每周持续更新干货,建议收藏! 1. Spring refresh 流程 refresh 是 AbstractApplicationContext 中的核心方法,负责初始化 ApplicationContext 容器,容器必须…

【算法】七月算法打卡

# 2022-07-11 深拷贝 const copyObject (obj {}) > {let newObj nullif (typeof (obj) object && obj ! null) {newObj obj instanceof Array ? [] : {}// 进入下一层进行递归for (let i in obj) newObj[i] copyObject(obj[i])} else {newObj obj}return …

手机(Android)刷NetHunter安装指南,无需ssh执行kali命令, NetHunter支持的无线网卡列表!

一、安装NetHunter 前提:确保手机已经root,已装上magisk。如果没有root,可用尝试magisk root 后执行此文 1、下载Nethunter:Get Kali | Kali Linux 然后push 到sdcard 里, 2、打开magisk,选择刚刚下好的…

krpt.dll丢失怎么安装?怎么修复快一点

krpt.dll丢失怎么安装?其实你只要记住一点,只要是dll文件丢失,那么就不外乎那几种修复方法,自己下载丢失的文件安装,或者使用dll修复工具,这些方法都是可以修复的。下面我们详细的说一说。 目录 一.krpt.…

性能优化-内存泄漏、内存溢出、cpu占用高、死锁、栈溢出、FullGC频繁检测手段-总结与分享

介绍 什么是内存泄漏 含义:内层泄露是程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费。(换言之,GC回收不了这些不再被使用的对象,这些对象的生命周期太长) 危害&#xff…

Linux学习03-Linux基础命令1

1 开始执行命令 command [-options] parameter1 parameter2 一行命令中第一个输入的部分绝对是命令或者可执行文件。 例如 ls命令列出目录的文件,需要列出隐藏文件则加 -al。 ls -al ls ls -a -l 2 基础命令操作 显示日期与时间的命令:date 显示日…

Ubuntu22.04系统中二进制包安装公有云k8s

目录公有云版k8s的架构是怎样的公有云中创建k8s实例的过程如下二进制法创建k8s的一般过程Kubernetes的重要性check nodes每台服务器执行基线配置CA rootetcd HA cluster根据CA根证书创建etcd的专有CA证书将etcd注册成为systemd服务配置各master节点的etcd.confansible配置各个m…

东北大学2023分布式操作系统考试重点

Note:以下10个点为老师画的重点 1.分布式系统目标 第一章 分布式系统概论,第二节 2.RPC过程 第四章 分布式通信管理, 第二节 客户过程以普通方式调用相应的客户存根客户存根建立消息并激活内核陷阱内核将消息发送到远程内核远程内核将消息…

计算机毕设Python+Vue写字楼物业管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

C++ Reference: Standard C++ Library reference: Containers: map: map: operator[]

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/operator[]/ 公有成员函数 <map> std::map::operator[] C98 mapped_type& operator[] (const key_type& k); C11 mapped_type& operator[] (const key_type& k); mapped_type& …

SQL基础——数据更新

数据更新前言思维导图数据的插入&#xff08;INSERT语句的使用方法&#xff09;什么是INSERTINSERT语句的基本语法语法4.1 INSERT语句代码示例4.2 创建 ProductIns表的CREATE TABLE语句代码示例4.3 向表中插入一行数据代码示例4.4 INSERT插入多行数据列清单的省略代码示例4.5 省…

chatGPT的49种应用场景,及各开发语言对接chatGPT参考指南

前沿 可能有人在问我&#xff0c;勇哥为什么chatGPT都被微信下架了&#xff0c;你还要写相关的chatGPT的文章呢&#xff1f;其实我们先不论微信下架的原因&#xff0c;单说chatGPT的达芬奇模型给勇哥带来的科技感早就超越了一切&#xff0c;所以勇哥依旧决定连续熬两个夜为大家…

【与达梦同行】达梦驱动图谱

达梦驱动图谱 摘要 达梦提供了大部分主流开发语言的驱动接口&#xff0c;在我用使用过的国产数据库中对客户端驱动的支持应该算是非常不错的。本文主要介绍达梦的驱动开发&#xff0c;通过实际操作&#xff0c;从环境搭建到实践验证&#xff0c;介绍了达梦各种语言驱动的详细使…

博途S7-1500T 使用工艺对象驱动液压轴(含SimaHydTO库)

利用工艺对象控制液压轴位置含PLC控制和仿真程序文档资料下载地址如下: https://support.industry.siemens.com/cs/document/109756217/simatic-s7-1500(t)-lsimahydto-for-hydraulic-applications-and-hydraulic-presses?dti=0&dl=en&lc=zh-CNhttps://support.indu…

圣诞树-python绘制雪夜圣诞树并封装为小程序

绘制雪夜圣诞树并封装为小程序 使用turtle绘制一颗雪夜圣诞树&#xff0c;然后封装成exe小程序送给你的朋友吧&#xff01; PS&#xff1a;只能在windows运行。 转载注明本文链接和作者 先看效果图&#xff1a; 绘制雪夜圣诞树 由于代码有三百多行&#xff0c;我放在下面的两…

一文彻底搞懂cookie、session、token

1.Cookie Cookie是客户端保存用户信息的一种机制&#xff0c;用来记录用户的一些信息&#xff0c;实际上Cookie是服务器在本地机器上存储的一小段文本&#xff0c;并随着每次请求发送到服务器。 Cookie技术通过请求和响应报文中写入Cookie信息来控制客户端的状态。 Cookie会…

28.项目搭建网关

项目搭建网关 一、项目架构 二、创建模块&#xff0c;引入依赖&#xff0c;创建启动类&#xff0c;添加application.yml配置文件 2.1依赖 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-…

【AI with ML】第 9 章 :了解序列和时间序列数据

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

【linux】linux环境变量初始化与对应文件的生效顺序

1.认识环境变量&#xff08;PATH) 环境变量&#xff08;PATH&#xff09;是一个列表&#xff0c;里面是有序的一些程序的地址&#xff08;一般是xxx/bin&#xff09;&#xff0c;添加环境变量后&#xff0c;系统在任何目录输入命令&#xff0c;都可以识别命令并执行命令对应程…