arm体系结构概述和编程模型

2023-11-04

1、arm体系结构的版本

1、arm1~6

2、arm体系的变种

1、T 系列:Thumb指令集,可以支持Thumb指令集

2、M系列:支持长乘法,32位*32位生成64位数据,长乘加指令,再加上32位数据

3、E系列:增强型DSP指令,增强一些典型的DSP算法的性能

4、J系列:java加速器,java代码运行速度提高了8倍,功耗降低了80%

5、SIMD系列:流媒体的处理性能提高了4倍,主要应用于流媒体

3、arm体系版本的命名方式

ARMv+指令集版本号(1~6)+变种系列字符+xP(排除某种指令的支持)

4、ARM9系列特点

 

5、ARM的处理器模式

1、用户模式User:正常执行程序的模式

2、快速中断模式FIQ:用于高速数据传输和通道处理

3、外部中断模式IRQ:用于通常的中断处理

4、特权模式SVE:供操作系统使用的一种保护模式

5、数据访问中止模式Abort:用于虚拟存储以及存储保护

6、未定义指令中止模式underfined:用于支持通过软件方针硬件的协处理器

7、系统模式System:用于运行特权级的操作系统任务

除用户模式外,其他都为特权模式,可以任意的进行模式切换,访问系统资源。除系统模式之外,都被称为异常模式。

应用程序进行模式切换时是不能直接切换的,需要产生异常处理才可以切换异常模式,在异常处理中进行模式切换.

每组异常模式都有一组寄存器,以保证进入异常模式时用户模式下的寄存器不被破坏.

系统模式不是通过异常处理进入的,时可以直接切换的.

arm拥有37个寄存器,包括31个通用寄存器(32位),6个状态寄存器(32位,但是目前只使用了12位).

 

R0~R14 + PC :16个通用寄存器

R0~R7未备份寄存器:所有模式下都共用一个,所以切换模式时数据容易被破坏

R8~R14 备份寄存器:

R8~R12,每个寄存器对应两个寄存器,一种是快速中断的,一种是其他的。这样在响应快速中断时就不需要保存现场和恢复现场,从而使中断响应快速

R13~R14,每个寄存器对应6个不同的寄存器,其中用户模式和系统模式时共用的,

R13:一般来说R13都作为栈指针,但是不强制。进入异常模式时,将需要使用的寄存器保存在R13所知的栈中,退出异常程序时,再进行出栈操作。

R14:被称为连接寄存器LR,有两种作用:1、存放子程序的返回地址,调用子程序将PC保存,返回时将寄存器赋值给PC 2、异常模式产生时,将PC入栈,异常模式返回时,将寄存器地址赋给PC

PC 程序计数器:又被称为R15,因为arm使用的是流水线机制,所以正确的读取PC的值一般都是下两个指令的地址,即当前正在执行的指令加8个字节。即三级流水线

arm指令时按字对齐的,所以写入PC的值第0位和第1位应该是0。知道为啥吗?因为可以被4整除,而4就是100

CPSR寄存器:程序状态寄存器,可以在任何模式下被访问,在异常模式下都有一个SPSR物理状态寄存器,用来在异常发生时,存储CPSR的值。从异常返回时,恢复SPSR的值。

 

Q标志位,表示增强型DSP指令是否发生溢出。

I F 中断禁止位,I表示禁止(1)IRQ中断,F标志禁止(1)FIQ中断

T表示执行的是ARM指令(0)还是Thumb指令(1)

M表示处理器模式

6.arm体系中的中断

 

异常中断:

 

异常中断的响应过程:1、保存处理器当前状态,中断屏蔽位、以及各条件标志CPSR——》SPSR。

 2、设置当前CPSR中的相应的位,包括设置模式,禁止中断等。

 3、设置LR的值为返回地址

4、将PC设置为异常中断的中断向量地址。从而跳转到相应的地方去执行

异常中断程序的返回:1、SPSR-》CPSR

2、将LR(R14)->PC

 

7、存储系统

Arm32位的系统地址空间大小最大为232个字节,但是因为寻址是4字节对齐,所以只能寻址为2e30个单元,每个单元4个字节,也可以看作为2e31个2字节单元

在字单元中,这4个字节,哪一个时高位地址,哪一个时低位地址,则有两种不同的格式:大端(高位低地址)和小端(高位高地址)

 

如果访问地址单元没有按照字对齐原则,即4字节对齐,则被称为非对齐的存储访问操作

如果访问的是指令,则结果要么不可预知,要么指令地址的低两位被忽略,但是这全靠系统,如果系统存在非对齐访问时的处理,则会忽略

对于非对齐的数据访问:1、执行结果不可预知

    2、忽略字单元地址的低两位的值

指令预取:CPU执行当前指令时,可以从存储器预取其后的若干条指令,具体多少,看arm的实现

自修改代码:代码在执行过程中可能会修改自身(主存中的),这是预取则显得不可靠

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

arm体系结构概述和编程模型 的相关文章

  • 《移动浪潮》读书笔记

    移动浪潮 一书深入浅出地解读了信息革命第五次浪潮即将为人们生活带来的巨变 首先论述移动的力量 它是一股无法阻挡的浪潮 将引发颠覆性的革命 随后从电脑逐渐小型化 纸张的消失 娱乐的自由 钱包 社交网络 医疗 教育乃至工农业等方方面面论述移动互
  • 《国富论》笔记——货币

    上一个读书笔记 我简单发散思维到了货币 从以物易物到以贝壳作为货币举了一段例子 国富论 第四章就马上讲到了货币 并且补充了我很多未分析到的地方 货币的起源 当以物易物的时候 也许是因为我不再需要你的物品了 所以不再需要和你交换 你的东西只有
  • 【Java书笔记】:《Redis 深度历险:核心原理和应用实践》分布式锁,延时队列,位图,HyperLogLog,布隆过滤器,漏斗限流,GeoHash,Scan,管道,事务,主从,Redis源码

    Redis 深度历险 核心原理和应用实践 目 录 开篇 授人以鱼不若授人以渔 Redis 可以用来做什么 7 由 Redis 面试想到的 7 小册的内容范围 8 Redis 可以做什么 8 基础 万丈高楼平地起 Redis 基础数据结构 1
  • 《Android 开发艺术探索》笔记1--Activity的生命周期和模式

    文章目录 Activity的生命周期和模式思维导图 Activity的生命周期 异常情况下的生命周期 当系统配置发生改变的时候 禁止异常重建Activity Activity的启动模式 Activity的Flags IntentFilter
  • 构造方法的访问级别之private

    构造方法的访问级别 public protected private 默认访问级别都可以 在此重点记录由private修饰的构造方法 private修饰的构造方法的访问级别 当构造方法别声明为private时 就意味着只有当前类的方法可以调
  • S7协议解析

    S7 1 西门子通信场景 西门子设备使用多种不同现场总线协议 例如 MPI Profibus IE Profinet 等 Profinet用于将PLC连接到IO模块 而不是设备的管理协议 S7以太网通信协议 主要用于将PLC连接到 i pc
  • 《魔童降世》影评——从封神演义谈到宿命

    今日看完魔童降世中的哪吒 不得不称赞这次改编很精妙 也不得不说编剧的三观很正 哪吒在我们大多数人的心中可能是纯真无害的小孩子 生来便拥有法宝乾坤圈和混天绫 得遇名师太乙真人 修得神通三头六臂 坚持正义 帮助武王伐纣 灭石叽 最后肉身 莲花
  • 【好文鉴赏】初创公司到底值不值得去?从以下几点考虑

    关键词 初创公司 职业发展 就业 原文链接 https tech sina cn csj 2018 09 10 doc ihiixyeu5565677 d html https www zhihu com question 31272586
  • cuda编程学习笔记 第一章 introduction

    准备系统学习cuda知识 这一章基本都懂 记录一下一些细节 global 表示函数在device上 后面永远是void device function is asynchromous cudaDeviceSynchronize waits
  • 做你自己

    2017 03 06 2017 03 10将彼得 巴菲特的书籍 做你自己 个股神巴菲特送给儿子的人生礼物 读完了 感受颇深 沃伦 巴菲特的名言 出生时嘴里含着的金汤匙 最后可能会变成扎在背上的金匕首 考虑不周的赠与会浇灭一个人的雄心并枯竭他
  • LeetCode 101Pro

    LeetCode 101 本文档是对LeetCode101中题目的详细解释和扩展 文章目录 LeetCode 101 第一章 题目分类 第二章 最易懂的贪心算法 2 1 算法解释 2 2 分配问题 455 分发饼干 135 分发糖果 2 3
  • 《Android 开发艺术探索》笔记7--RemoteViews的内部机制和意义

    RemoteViews的内部机制和意义思维导图 RemoteViews的内部机制 RemoteViews的意义可以模拟一个通知栏效果并实现跨进程的UI更新 参看文章 RemoteViews的内部机制和意义思维导图 RemoteViews的内
  • 《曾国藩家书》读书手记(修身篇一)

    曾国藩被章太炎评价为 誉之则圣相 谳之则元凶 为什么有这样的评价呢 我们可以看出曾国藩这个人褒贬不一 不过毛和蒋对于曾国藩都是推崇备至 毛说过 吾近于人 独服于曾国藩 看来曾国藩还是有可取之处的 尤其是他的家书 很多人评价甚高 一 修身篇
  • 《从Paxos到ZooKeeper》读书笔记之第一章(二)

    从Paxos到ZooKeeper 读书笔记之第一章 二 1 2从ACID到CAP BASE 这一节由三小节 从大家数值的数据库事务的四个特性 引出来分布式事务的概念 通过对ACID模型的讨论 提出如何构建一个兼顾可用性和一致性的分布式系统方
  • 书摘

    因为近几个项目都是基于Linux 平台 于是开始持续关注linux shell 和linux系统管理相关的知识 平时除了阅读在线的博客来汲取这方面的知识 也努力看一些书籍来完善知识体系 而这本
  • 2022.04.11【读书笔记】

    文章目录 摘要 研究意义 转录组学意义 技术比较 研究方法 细胞筛选 文库构建 测序 实验方法 实验流程 常见问题 分析内容 重点 分析内容总览 细胞亚群分类 细胞类型频率统计 Marker基因分析 富集分析 样本差异分析 逆时分析 WGC
  • 数仓相关知识点/笔记(OLTP和OLAP)

    现在实时数仓是一个非常火的趋势 最近开始逐渐了解一些数仓相关的东西 从基础的理论知识包括架构 算一个基础总结和学习记录吧 包括OLTP和OLAP 基础表和数据湖相关概念 不定期补充更新 联机事务处理OLTP和联机分析处理OLAP 关键词 日
  • 大话数据结构读书笔记 1---线性表

    大话数据结构读书笔记 编程基础 数据结构 算法 1 线性表 顺序储存结构的结构代码 define MAXSIZE 20 储存空间的起始分配量 typedef int ElemType ElemType类型根据实际类型而定 这里假设是int
  • 【读书笔记】-《工业互联网-技术与实践》

    前言 现在的技术发展潮流 基本上往大数据 人工智能的方向发展 但是归根结底 是什么推动了这些技术产业的发展 是什么支撑的 主要说的话 这和互联网的发展息息相关 也就是说现在一些主要的发达国家是如何拓展先技术新领域 并且如何把这些新技术应用到
  • 【华为数据之道学习笔记】5-6非结构化数据入湖

    1 非结构化数据管理的范围 非结构化数据包括无格式的文本 各类格式的文档 图像 音频 视频等多样异构的格式文件 相较于结构化数据 非结构化数据更难以标准化和理解 因而非结构化数据的管理不仅包括文件本身 而且包括对文件的描述属性 也就是非结构

随机推荐

  • 用大数乘法计算阶乘

    在比较小的范围内阶乘可以递归实现 而求更大的数的阶乘一般用到long long长整形数 不过 即使这样 在耗时和再大些的阶乘上力有不逮 所以 在输入比较大的情况下 用大数乘法计算阶乘是最好的选择 计算过程分2步 1 输入字符串s 将它的值保
  • 瑞吉外卖【用户移动端】

    用户移动端 一 手机验证码登录 1 短信发送 1 1 短信服务介绍 1 2 阿里云短信服务 2 手机验证码登录 2 1 需求分析 2 2 数据模型 2 3 代码开发 二 菜品展示 购物车 下单 1 用户地址薄 1 1 需求分析 1 2 数据
  • VLT:Vision-Language Transformer用于引用的视觉语言转换和查询生成分割

    摘要 在这项工作中 我们解决了引用分割的挑战性任务 引用分割中的查询表达式通常通过描述目标对象与其他对象的关系来表示目标对象 因此 为了在图像中的所有实例中找到目标实例 模型必须对整个图像有一个整体的理解 为了实现这一点 我们将引用分割重新
  • kali Linux的优点与缺点

    Kali Linux简介 用于数字取证操作系统 Kali Linux是基于Debian的Linux发行版 设计用于数字取证操作系统 由Offensive Security Ltd维护和资助 最先由Offensive Security的Mat
  • 使用X-WIN32 EXCEED等软件显示远程LINUX桌面的设置

    href http blog bcchinese net shiaohuazhang Services Pingback aspx rel pingback gt 使用X WIN32 EXCEED等软件显示远程LINUX桌面的设置 RED
  • 使用思维导图,优雅的完成自己的代码

    我自己常常在写代码的时候 会突然搞不清变量用来干嘛的 也会被理不清的逻辑搞得自己异常烦躁 我甚至常常暗示自己我不适合写代码 思维总是那么不清晰 直到我发现了思维导图的妙用 最开始使用思维导图的时候 我其实是用来记知识点的 然而某一刻就灵光一
  • Scrum是用来发现问题的

    原文链接作者 Mark Levison 机械的Scrum对比真正的Scrum 差别在哪里 最近 我和一个朋友聊到了他们公司实施Scrum的情况 他们有些迷茫 在实施Scrum之前 他们经常为了访问一台测试机而不得不等上一个小时 甚至更多时间
  • 单例模式 - 饿汉式与懒汉式详解

    什么是单例模式 对于一个软件系统中的某些类而言 只有一个实例很重要 就像Windows中的任务管理器一样 只能打开一个 如果不适用机制对窗口对象进行唯一化 必定会弹出多个窗口 如果这些窗口显示的内容完全一致 则是重复对象 浪费内存资源 如果
  • H2数据库攻略之一-简介

    1 H2数据库介绍 常用的开源数据库 H2 Derby HSQLDB MySQL PostgreSQL 其中H2 HSQLDB类似 十分适合作为嵌入式数据库使用 其它的数据库大部分都需要安装独立的客户端和服务器端 H2的优势 1 h2采用纯
  • jQuery qTip2提示插件 (示例图,API)

    author YHC 首先介绍一下 主要的作用 用作网页中的提示 例如新手入门的导航 看下图你就明白了 当然这个插件在提示上功能非常丰富 下面主要介绍下载地址 以及入门的一个最小的 例子 qTip2官网下载地址 qTip2官网推荐下载地址
  • Android webView去除默认边框

    Android WebView无论怎么修改它的属性都会存在一定的边距 这是因为 HTML 的 body 标签默认存在一定边距 修改 webView 的属性并没有作用 解决办法 修改 html 代码 html data 原本需要加载的html
  • KaTeX

    KaTeX LaTeX数学公式编辑手册 只需要在第三列写法前后分别加上 就可以转换为符号 但需注意 CSDN的使用的是 KaTeX KaTeX KATE X数学公式 而不是 LaTeX LaTeX LATE X 两者会有些许区别 如果有
  • 漂亮的计算器页面 html,html+css实现一个好看的计算器实例代码

    最终效果如下图 2 有bug 就是整数后点击 号结果正确 如果小数后面点击 的话结果就错误 其他都正常 求指点 input的value是string类型的 在JS中改如何正确处理下图 1中的if部分 图 1 图 2 HTML代码如下 简单的
  • 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了

    由于文章有点多 并且发的文章也不是一个系列一个系列发的 不过我的文章大部分都是围绕着 数据结构 算法 计算机网络 操作系统 Linux 数据库 这几个方面发的 为了方便大家阅读 我整理了一波 不过公众号可以说是不支持修改文章 因为我决定每两
  • Java环境从删除到重装

    Java环境从删除到重装 前言 须知 如何完全删除jdk 安装jdk 前言 今天由于一些原因把Java环境删除了 怎么装都装不好 遇到了很多错误 在网上找了好多解决办法之后终于弄好了 所以写成一份Java环境从删除到重装 给各位不小心删除J
  • Centos7下基于jdk11 安装RocketMQ

    1 简介 RocketMQ是阿里巴巴中间件团队自研的一款高性能 高吞吐量 低延迟 高可用 高可靠 具备金融级稳定性 的分布式消息中间件 开源后并于2016年捐赠给Apache社区孵化 目前已经成为了 Apache顶级项目 当前在国内被广泛的
  • 用html+js实现代码背景墙特效【建议收藏】

    在csdn里面 有些博主的主页非常的帅 就是代码从上往下掉的特效 那么这种效果我们作为程序员该如何去写出来呢 不用担心 这篇博客就分享如何创建一个代码背景墙 1 效果展示 2 代码分享
  • java.io.FileNotFoundException: http://www.xxxxx.net:8080/test/test/ 403错误

    POST请求错误内容 java io FileNotFoundException http www xxxxx net 8080 test test at libcore net http HttpURLConnectionImpl get
  • python 中的六种“复制”方法

    以列表为例 方法一 直接变量赋值 将 li 赋值给变量 li1 打印他们的id会发现 他们的id是一样的 即是 li 和 li1 这两个变量在python中是同一个内存地址 对他们任何一个变量进行修改 另外一个会跟着变化 li 1 2 3
  • arm体系结构概述和编程模型

    1 arm体系结构的版本 1 arm1 6 2 arm体系的变种 1 T 系列 Thumb指令集 可以支持Thumb指令集 2 M系列 支持长乘法 32位 32位生成64位数据 长乘加指令 再加上32位数据 3 E系列 增强型DSP指令 增