【嵌入式系统】第二章 ARM体系结构

1 ARM微处理器概述

1.1 ARM(Advanced RISC Machines)

特点:

  • 体积小,功耗低,成本低,高性能
  • 支持Thumb(16 bit)和ARM(32 bit)双指令集
  • 使用寄存器,大多数数据操作都在寄存器中完成,指令执行速度快
  • 寻址方式灵活简单,执行效率高
  • 指令长度固定

处理器系列

  • 基于指令集体系结构版本分类:v1,v2,v5,v6,v7,v8等
  • 基于处理器系列分类:ARM7,ARM9,ARM10,ARM11,StrongARM,XScale

PPT有个指令集版本对应处理器系列的图,以及各指令集版本特点。我估计不考(考了也太丧心病狂了)
但有几点:

  • v4引入Thumb指令集

ARM产品名称含义请添加图片描述

PPT上有对于处理器核的介绍,我觉得更多的像是产品介绍,有需要再去看吧

1.2 ARM的流水线模式

PC指向正被取指的指令,而非正在执行的指令

ARM7采用三级流水线的冯诺依曼结构

取指令(Fetch) -----> 译码(Decode) -----> 执行(Execute)


ARM9采用五级流水线的哈佛结构

取指令(Fetch) -----> 译码(Decode) -----> 执行(Execute) -----> 访存(Memory) -----> 写入(Write)

ARM9的五级流水线将存储器的访问寄存器的写操作分别单独处理,
请添加图片描述
解决了三级流水线的LDR/STR指令执行的延迟,提升效率
请添加图片描述请添加图片描述
如果ARM9指令不是对存储器的访问,本级流水线为空时钟周期

1.3 RISC体系结构

CISC缺点:随着指令集不断引入新的指令,计算机体系结构会越来越复杂。在各种指令中使用频率差距比较大 。
特点

  • 指令小于100条
  • 指令长度一致,单拍完成便于流水操作
  • 寄存器数量多,不少于32个。数据处理的指令只对寄存器的内容操作,只有LDM/STM访问存储器

CISC对比RISC

类别CISCRISC
指令系统数量多数量少,通常少于100
执行时间有些指令执行时间长,如整块存储器内容拷贝没有较长执行时间的指令
编码长度编码长度不定,1-15 Byte编码长度固定,通常为4 Byte
寻址方式寻址方式多样简单寻址
操作可对寄存器,存储器进行算数逻辑操作只能对寄存器进行算术操作和逻辑操作,只有Load/Store操作存储器
编译难以用优化编译器生成高效目标代码程序采用优化编译技术,生成高效的目标代码程序

1.4 寄存器

ARM处理器有37个物理寄存器:31个通用寄存器和6个状态寄存器。寄存器被安排成部分重叠的组,每种处理器模式有不同的寄存器组,以便得到快速的上下文切换

1.5 ARM指令集概述

ARM指令集可分为5大类:

  1. 数据处理指令:MOV,AND,SUB,ADD
  2. 加载和存储指令:LDR,STR,LDM,STM
  3. 分支指令:B,BX
  4. 协处理器指令:LDC,STC
  5. 杂项指令:SWI,MRS,MSR
    • MRS:读状态寄存器指令,将状态寄存器值保存在通用寄存器上
    • MSR:写状态寄存器指令,将通用寄存器值写回状态寄存器

1.6 Thumb指令集概述

16 bit Thumb指令集,是ARM指令集的子集

可分为四大类指令

  1. 分支指令
  2. 数据处理指令
  3. 寄存器加载和存储指令
  4. 异常产生指令

2 ARM微处理器体系结构

2.1 数据类型

  • 字节Byte:长度均为8 bit
  • 字Word:在ARM体系结构中为32 bit,在8 bit /16 bit 处理器体系结构中,字的长度为16 bit
  • 半字Half-Word:在ARM体系结构中为16 bit,在8 bit /16 bit 处理器体系结构中,字的长度也为16 bit

2.2 ARM微处理器工作状态

分为ARM状态和Thumb状态,当操作数寄存器状态位(位[0])为1进去Thumb状态,状态位为0时进入ARM状态。

;从ARM状态切换到Thumb状态
LDR		R0,  =Lable+1
BX		R0
;从Thumb状态切换到ARM状态
LDR		R0,  =Lable
BX		R0

2.3 ARM体系结构的存储器格式

  • 大端存储:高字节存储在低地址,类似字符串读取数字读一个存一个
  • 小端存储:高字节存储在高地址,
    ARM默认采用小端格式

2.4 处理器模式

ARM体系结构支持7种处理器模式:

处理器模式说明备注
用户usr正常程序工作模式不能直接切换到其他模式
系统sys用于支持操作系统的特权任务与用户模式使用完全相同的寄存器组,但可以直接切换到其他模式
快中断fiq支持高速数据传输及通道处理FIQ异常响应时进入此模式
中断irq用于通用中断处理IRQ异常响应时进入此模式
管理svc操作系统保护代码系统复位和软件中断响应时进入此模式
中止abt用于支持虚拟内存和存储器保护预取中止和数据中止
未定义und支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式

特权模式:除了用户模式其他都属于特权模式,可以自由切换处理器模式,ARM内部寄存器和一些片内外设只允许特权模式访问。
异常模式:特权模式中除了系统模式都是异常模式,通过程序切换或由特定异常进入

启动时模式转换

  1. 管理模式
  2. 多种特权模式变化:完成各模式的堆栈设置,初始化每种模式的R13指向该运行模式的栈空间
  3. 用户模式:用户程序的运行模式

2.5 寄存器组织

请添加图片描述

R0~R13:通用寄存器,可用于任何使用通用寄存器的指令
R0~R7:未分组寄存器,对于任意处理器模式,对应相同的32位物理寄存器
R8~R14:分组寄存器,对应的物理寄存器取决于当前的处理器模式

R13堆栈指针

SP,指向各状态模式的专用堆栈,ARM中没有特殊方式使用,但Thumb有

R14寄存器与子程序调用

R14是链接寄存器,一个功能是在每种模式下,保存子程序的返回地址,另一个功能是当发生异常的时候,该模式下的R14设置成异常模式将要返回的地址

下面是子程序调用的过程:

  1. 程序A调用程序B
  2. 程序跳转至Lable,执行B,同时硬件将BL Lable指令的下一条指令地址存入R14
  3. 程序B执行完毕,将R14的值存入PC,实现子程序返回请添加图片描述
    异常发生时,程序跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成,区别在于有些异常由一个小常量的偏移。

R15寄存器

R15寄存器是程序计数器PC,指向正在取指的地址

在这里插入图片描述使用STR或STM指令保存R15时,将会在当前指令加上8字节或12字节的偏移,对于不同芯片有不同的偏移量

计算偏移汇编程序:
在这里插入图片描述

Thumb状态下寄存器

可以直接访问的寄存器有:

  • R0~R7
  • R13~R15
  • CPSR

发生异常时,处理器自动进入ARM状态

程序状态寄存器CPSR

在这里插入图片描述 N、Z、C、V,最高4位称为条件码标志。ARM的大多数指令可以条件执行的,即通过检测这些条件码标志来决定程序指令如何执行。

各个条件码的含义如下:

  • N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0。

  • Z:如果结果为0,则Z=1;如果结果为非零,则Z=0。

  • C:其设置分一下几种情况:

    • 对于加法指令(包含比较指令CMN),如果产生进位,则C=1;否则C=0。
    • 对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。
    • 对于有移位操作的非法指令,C为移位操作中最后移出位的值。
    • 对于其他指令,C通常不变。
  • V:对于加减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0;对于其他指令,V通常不发生变化。

SPSR:备份程序状态字,保存异常事件发生之前的CPSR
CPSR/SPSR的读写指令

MRS:读状态寄存器到通用寄存器MRS R1, CPSR
MSR:写通用寄存器到状态寄存器MSR CPSR, R1

2.6 异常

正常的程序流被暂时中止,处理器就进入异常模式
在这里插入图片描述

异常优先级

在这里插入图片描述

未完待续

nebois
关注 关注
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第三讲 ARM嵌入式处理器体系结构
03-01
嵌入式处理器概述 ARM体系结构概览 ARM编程模型
ARM:软件是挑战X86的最后瓶颈
航海日志
11-09 1842
有意思的是,尽管Intel和IBM在RISC-CISC上的争论持续了很多年,CISC也正在不断蚕食以IBM为代表的RISC低端市场,但时至今日,Intel突然转过头发现,自己的低端市场也正在遭遇以ARM为代表的RISC产品侵蚀。 在2009年,Dell就已经推出了基于威盛Nano芯片的低功耗XS11-VX8服务器,其体积相当于一块3.5英寸的硬盘,而且在一个标准2U机箱内放置12台这样的服务
ARM嵌入式学习(1)-----
weixin_47186404的博客
09-16 255
ARM技术概述以及指令集合本学期开始学习ARM嵌入式,为了便于自己学习以及后续的复习,就在这里做些笔记吧寄存器组织程序状态寄存器ARM指令集ARM指令寻址方式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 本学期开始学习ARM嵌入式,为了便于自己学习以及后续的复习,就在这里做些笔记吧 第一
嵌入式ARM的工作模式与寄存器组织
timerring的博客
12-10 988
ARM处理器总共有37个寄存器,可以分为以下两类寄存器31个通用寄存器(包括程序计数器PC)R0~R15(PC);6个状态寄存器CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq。
嵌入式系统----原理与应用技术考点
weixin_44955712的博客
01-15 2522
嵌入式系统概论 嵌入式系统的定义: 以应用为中心 以计算机技术为基础 软/硬件可裁剪 满足应用系统对功能、可靠性、成本、体积和功耗的要求 与通用计算机相比,嵌入式系统具有一下重要特征: 通常是面向特定应用的 软硬件都必须高效率的设计,满足功耗、可靠性、功能的要求 实时操作系统支持 嵌入式系统的与具体应用有机结合在一起 有专门的开发工具支持 与一般操作系统相比,嵌入式系统的的特点: 强稳定性,弱交互性 较强的实时性 可伸缩性 外围硬件接口的统一性 根据响应时间不同,嵌入式系统可分为: 强实时嵌入
【STM32教程】一文搞懂ARM内核是如何控制外设寄存器的
小超电子笔记
01-01 2072
Cortex‐M3 处理器拥有 R0‐R15 的寄存器组。其中 R13 作为堆栈指针 SP。SP 有两个,但在同一 时刻只能有一个可以看到,这也就是所谓的“banked”寄存器。R0-R12:通用寄存器通用寄存器,用于数据操作。比如我们常用的加减乘除。MOV R0,#1(给R0寄存器赋值1)R13(SP): 两个堆栈指针:主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包 括中断服务例程)进程堆栈指针(PSP):由用户的应用程序代码使用。
第2章 ARM体系结构-教程与笔记习题
05-19
**第2章 ARM体系结构-教程与笔记习题** 在嵌入式系统设计领域,ARM处理器因其高效能、低功耗的特点,广泛应用于各种设备中,尤其是ARM9系列,是许多开发者的首选平台。本章将深入探讨ARM体系结构,帮助你理解其核心...
第2章 ARM体系结构.zip-综合文档
05-19
第二章的内容可能涵盖了ARM处理器的几个关键部分。例如,它可能会介绍不同系列的ARM处理器,如Cortex-A(面向高性能应用,如智能手机和平板电脑)、Cortex-R(用于实时系统,如存储和网络设备)和Cortex-M(适用于微...
嵌入式系统及应用:第三章 ARM体系结构与指令集.ppt
07-12
本章重点讨论的是嵌入式系统中的关键组件——ARM处理器体系结构及其指令集。 ARM(Advanced RISC Machines)是一种广泛应用的微处理器架构,以其高效能、低功耗的特性著称。在ARM处理器中,寻址方式是实现程序...
ARM嵌入式体系结构与接口技术
02-10
这是某大学课程的ppt,从基础开始,讲解ARM体系结构,对嵌入式有兴趣或刚开始学的可以下载来看看
嵌入式ARM结构修正版第二章.pptx
10-21
Thumb技术是ARM体系结构的一个重要创新,它采用16位指令格式,有效降低了代码大小,从而节省了存储空间和功耗,特别适用于资源有限的嵌入式系统。 2.4 ARM 处理器工作状态 ARM处理器可以在多种工作状态之间切换,...
ARM寄存器组
嵌入式软硬件设计/方案设计
08-29 1290
CM3 拥有通用寄存器 R0‐R15 以及一些特殊功能寄存器。
ARM9五级流水线
tutb12345的专栏
10-25 8365
blank_page
ARM9——五级流水线结构,以及PC指针
猪哥的专栏
07-03 9969
    ARM7是三级流水线,所以PC = 执行指令地址 + 8,这很好理解,但是在ARM9中,是五级流水线,仍然是:PC = 执行指令地址 + 8,而不是 PC = 执行指令地址 + 16.    这个理解显然有些难度,首先看下ARM7和ARM9的流水线区别和联系:        相比ARM7,ARM9采用了更高效的五级流水线设计,在取指令、译码、执行之后,又增加了LS1和LS2阶段,LS1负责...
ARM处理器中的寄存器
最新发布
fantasy_ARM9的博客
10-22 279
R14 寄存器又称为链接寄存器,在函数调用过程中主要用来保存上一级函数调用者的返回地址,寄存器R15又称为程序计数器,CPU从内存取指令执行,就是默认从PC保存的地址中取的,每取一次指令,PC寄存器的地址值自动增加,CPU一条条不停的取指令,程序也就源源不断的一直运行下去,在ARM三级流水线中,PC指针的值等于当前正在运行的指令地址+8,后续的32位处理器虽然流水线的级数不断增加,但是为了简化编程,PC这孩子很的值继续延续了这种计算方式。N=1表示运算结果为负数,N=0表示结果为正数或者0。
Arm汇编学习笔记(七)——ARM9五级流水及流水线互锁
热门推荐
beyond702的专栏
08-17 1万+
本文主要是通过分析五级流水及流水线互锁的原理,从而可以编写出更加高效的汇编代码。 1. ARM9五级流水线 ARM7采用的是典型的三级流水线结构,包括取指、译码和执行三个部分。其中执行单元完成了大量的工作,包括与操作数相关的寄存器和存储器读写操作、ALU操作及相关器件之间的数据传输。这三个阶段每个阶段一般会占用一个时钟周期,但是三条指令同时进行三级流水的三个阶段的话,还是可以达到每个周
ARM体系结构】之寄存器与三级流水线
distant_Rove666的博客
01-27 1827
寄存器与三级流水线
ARM3级流水和5级流水为什么都是PC=PC+8
编程小栈
04-17 4716
首先介绍前置知识 arm7采用三级流水 (1)取指(fetch) 取指级的任务是从程序存储器中读取指令。 (2)译码(decode) 译码级完成对指令的分析,并为下一个周期准备数据路径需要的控制信号。在这一级,指令占用译码逻辑,不占用数据通路。 (3)执行(excute) 完成指令要求的操作,并根据需要将结果写回寄存器。指令占用数据路径,寄存器堆被读取,操作数在桶行移位器中被移位。运
写文章

热门文章

  • JAVA网络聊天室课程设计(socket+swing) 2858
  • [编译原理] 算符优先分析实验报告 1422
  • 动态规划之最少硬币问题 1135
  • JAVA论述8 694
  • 【嵌入式系统】第二章 ARM体系结构 557

分类专栏

  • 算法板子咯 1篇
  • 笔记 1篇
  • 离散数学

最新评论

  • JAVA网络聊天室课程设计(socket+swing)

    jewnicornnn: 想问下大佬如何运行多个客户端呢?

最新文章

  • [编译原理] 算符优先分析实验报告
  • [ 设计模式 ]常用模式速查
  • 【嵌入式实验】实验初始化
2023年5篇
2022年2篇
2021年12篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家合浦玻璃钢雕塑厂家福建特色商场美陈厂家直销户外玻璃钢雕塑供应商酒店商场花卉美陈酒桶玻璃钢雕塑价格扬州玻璃钢花盆玻璃钢钢琴雕塑价格公园玻璃钢卡通雕塑参考价端州玻璃钢浮雕雕塑批发崂山玻璃钢花盆花器文昌玻璃钢雕塑厂家咨询客服十堰商场美陈商场9周年美陈苏州玻璃钢佛像雕塑玻璃钢雕塑供货厂家河北玻璃钢雕塑厂家规格尺寸广东会发光的玻璃钢雕塑生产商玻璃钢雕塑有什么用爆销玻璃钢艺术雕塑聊城玻璃钢广场雕塑欧式罗马玻璃钢花盆浙江季节性商场美陈价格2021木船的商场美陈黔南商场美陈信阳卡通玻璃钢雕塑江西特色玻璃钢雕塑订做价格苏州大型玻璃钢雕塑工厂玻璃钢雕塑盘龙柱许昌玻璃钢神像雕塑梅州玻璃钢雕塑定制公司香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化