- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式处理器体系结构课
第二章 嵌入式处理器体系结构
讲授内容:ARM处理器的编程模型
目 录:
一.处理器内核中数据的移动过程
ARM内核是数据(此处的数据包括指令和数据)总线连接的各个功能单元的集合:
1.数据经总线进入处理器核,其中的指令在执行前被指令译码器翻译;
2.ARM采用load/store体系结构将要使用的数据加载或移出,数据处理只能在寄存器里进行;
3.数据存储在寄存器文件里(一组32位的寄存器存储体),大部分指令认为寄存器中保存的是32位有符号/无符号数,故数据从存储器加载至寄存器前符号扩展硬件会把8/16位数转换为32位;
4.典型的ARM指令通常有2个源寄存器(Rm和Rn)和1个目的寄存器(Rd),源操作数分别通过内部总线A和B从寄存器文件中读出(ARM的一个重要特征是寄存器Rm可以选择进入ALU之前是否先经过桶形移位器预处理,从而计算较大范围的表达式和地址);
5.ALU和MAC(乘累加单元)通过A和B得到值计算出结果并将其写到寄存器文件中,ALU还会产生一个地址,该地址被保存到地址寄存器并发送到地址总线上协助数据的传输(地址加法器自动更新地址寄存器);
6.处理器连续执行指令直至异常或中断改变正常的执行流。
二.ARM处理器的工作状态和工作模式
1. 处理器的工作状态
ARM处理器内核支持3种工作状态:ARM状态(32位字对齐的指令)、Thumb状态(16位半字对齐的指令)和Jazelle状态(8位指令集,用来加速Java字节码的执行),某一时刻处理器只能处于其中的一种状态中。由于Jazelle指令集使用范围专一,故一般情况下只讨论ARM和Thumb两种指令集。
两种指令集各具特色,使用的场合也不同,同一个程序可以同时包含上述两种指令集,因此涉及到二者相互转换的问题。程序执行过程中,处理器可通过软件或异常处理在两种状态之间切换:
? 使用切换指令在ARM和Thumb指令集之间切换(处理器总是从ARM状态开始执行代码)
a. 执行BX指令时,如果操作数寄存器的状态位bit[0]=1,处理器切换到Thumb状态;
b. 执行BX指令时,如果操作数寄存器的状态位bit[0]=0,处理器切换到ARM状态。
? 所有异常处理均在ARM状态执行
2. 处理器的工作模式
a.概述
? ARM的体系结构支持7种工作模式(好似每个人都有几套不同风格的衣服来配合不同的场合);
? 每种工作模式的功能各异、所能访问的寄存器资源有所不同(特权模式允许对CPSR的完全读/写,非特权模式只允许读但允许对条件标志的写);
? 区分开不同的工作模式并赋于它们不同的硬件资源为的是不同的情况采用不同的资源来进行处理,从而避免资源的相互竞争。
b.工作模式一览表
? 用户模式(USR)—ARM处理器正常的程序执行状态
? 系统模式(SYS)—相当于一种可以使用操作系统的特权用户模式
? 快速中断模式(FIQ)—用于支持特殊的高速数据传输与通道处理
? 外部中断模式(IRQ)—用于通用的中断处理
? 管理模式(SVC)—操作系统使用的保护模式
? 中止模式(ABT)—数据或指令预取中止时进入的模式
? 未定义模式(UND)—执行未定义指令时进入的模式
c.相关寄存器CPSR
处理器具体工作在何种工作模式下是由ARM内核的cpsr寄存器的特定位控制的(它还有一个备份寄存器)。
d.工作模式的切换
ARM处理器的工作模式在一定的条件下是可以相互转换的,转换方式有两种:
? 硬件方式(内核响应异常或中断, CPSR的内容要复制到SPSR中)
? 软件方式(在特权模式下修改CPSR的模式控制位,不复制)
三.处理器的寄存器组
1. 概述
? ARM处理器采用Load/Store体系结构,这意味着没有直接操作存储器的指令,数据处理只能在寄存器中进行,结果被写回到存储器中。
? ARM处理器共有37个32位的寄存器,其中31个为通用寄存器,6个为状态寄存器。这些寄存器不能同时被访问,处理器的每种工作状态及其工作模式都对应一组可编程访问的寄存器组。
2. 详述
a.通用寄存器
通用寄存器包括R0-R15,主要用于保存数据、地址值和PC的当前值,共分为3类:
? 未分组寄存器(R0-R7)
? 分组寄存器(R8-R14)
? 程序计数器PC(R15)
a-1. 未分组寄存器
对于任何工作模式,R0-R7都指向同一个物理寄存器。由于不同的工作模式使用相同
文档评论(0)