第2章 嵌入式处理器体系结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
扩展为32位并在内部进行处理。 六.流水线技术 6.1 背景 采用流水线技术后,能够提高处理器的性能。这一结论可以
从分析处理器执行一个程序所花费的时间得到(Ninst----程序所包
含指令的数目,CPI----执行一条指令的平均周期数):
T = ( Ninst*CPI )/fclk
第2章 嵌入式处理器体系结构 •单纯的提高fclk会带来处理器功耗的增加
第2章 嵌入式处理器体系结构
第2章 嵌入式处理器体系结构 七.异常中断
7.1 异常的定义
·任何打断程序正常执行顺序的情况都被视为异常(中断是
一种特殊的异常,是由外设引起的程序执行顺序的间断);
·异常可以翻译为:a. Exception─从处理器被动接受异 常角度而言;b. Interrupt─从处理器主动申请角度而言; ·程序的运行状态总是在‘正常执行’和‘处理异常’之 间来回切换,所以异常处理是嵌入式系统的核心内容之一。
第2章 嵌入式处理器体系结构 R14的使用方法如下: 1. 用BL或BLX指令调用子程序,将PC值自动赋给R14; 2. 执行完子程序后,再将R14的值复制到PC,实现子程序的调 用返回。
第2章 嵌入式处理器体系结构 c. 程序状态寄存器 c.1 概述
• ARM使用CPSR来监视和控制内部操作,是一个32位的专
常处于这种模式
• 中止模式—处理器访问存储器失败(数据或指令预取中止) 时进入 • 未定义模式—处理器遇到没有定义的指令或处理器不支持 的指令时进入
第2章 嵌入式处理器体系结构 2.2.3 相关寄存器CPSR
第2章 嵌入式处理器体系结构
第2章 嵌入式处理器体系结构
2.2.4 工作模式的切换
ARM处理器的工作模式在一定的条件下是可以相互转换的,转 换方式有两种: • 硬件方式(内核响应异常或中断, CPSR SPSR) • 软件方式(在特权模式下修改CPSR的模式控制位,不复制)
用寄存器; • ARM包括1个当前程序状态寄存器(CPSR—Current Program Status Register)和5个备份程序状态寄存器(SPSR—Saved Program Status Register);
• 每种异常模式对应一个SPSR,用户和系统模式没有对应的
SPSR; • 在任何模式都可以访问CPSR,但用户和系统模式下访问 SPSR会带来不可预测的后果。
相关(借助于指令预测来解决)
第2章 嵌入式处理器体系结构 6.4 关于PC=PC+8
ARM7采用3级流水线,ARM9采用5级流水线,但二者在程
序中使用PC时都同样涉及PC+8的问题。 ·3级和5级流水线中“执行”阶段都位于第3个阶段 ·PC的值总是保存正在被取指的指令的地址 ·PC = PC + 4x中的x和流水线的级数没有关系,只和“执 行阶段”所处的“位置”有关
3. 数据存储在寄存器文件里,数据加载至寄存器前符号扩展
硬件会将其转换为32位;
第2章 嵌入式处理器体系结构 4. 典型的ARM指令通常有2个源寄存器和1个目的寄存器,分
别通过内部总线A和B从寄存器文件中读出;
5. ALU和MAC通过A和B得到值计算出结果并将其写到寄存 器文件中,ALU还会产生一个地址协助数据的传输; 6. 处理器连续执行指令直至异常或中断改变正常的执行流。
第2章 嵌入式处理器体系结构
第2章 嵌入式处理器体系结构
目前,世界上的四大嵌入式处理器内核生产厂家为: MIPS公司(MIPS处理 器内核)、ARM公司(ARM处理器内核)、IBM/Apple/Motorola联合开发
(PowerPC)、Motorola(68K/COLDFIRE)。
“体系结构描述了从用户角度看到的计算机(处理器内核)”----将具体的 电路抽象为各个功能模块和各种内核资源,是作为使用者的用户眼中的内核
•程序所包含指令的数目基本不变
•减小CPI是改善处理器性能最有效的方法----采用流水线技术 (指令的角度和处理器的角度)
第2章 嵌入式处理器体系结构 6.2 特点
·流水线的一条指令只有在完全通过“执行”阶段才被处理
·在指令“执行”阶段,pc总是指向当前指令地址加8字节的 地方(使用pc计算相对偏移量时这点很重要)
每种工作状态及其工作模式都对应一组可编程访问的寄存器组。
第2章 嵌入式处理器体系结构
第2章 嵌入式处理器体系结构 3.2 详述
3.2.1 通用寄存器
通用寄存器包括R0-R15,主要用于保存数据、地址值和PC 的当前值,共分为3类: • 未分组寄存器(R0-R7) • 分组寄存器(R8-R14) • 程序计数器PC(R15)。
第2章 嵌入式处理器体系结构 2.2.2 工作模式一览表
第2章 嵌入式处理器体系结构 • 用户模式—ARM处理器运行应用程序
• 系统模式—一种特殊的用户模式,允许对cpsr的完全读/写
访问 • 快速中断模式—用于支持特殊的高速数据传输与通道处理 • 外部中断模式—用于通用的中断处理 • 管理模式—处理器复位后进入的模式,操作系统内核也通
第2章 嵌入式处理器体系结构 7.2 异常的类型 7.2.1 异常的触发条件
第2章 嵌入式处理器体系结构 三.处理器的寄存器组
3.1 概述
• ARM处理器采用Load/Store体系结构,这意味着没有直接操 作存储器的指令,数据处理只能在寄存器中进行,结果被写回到 存储器中。
第2章 嵌入式处理器体系结构 • ARM处理器共有37个32位的寄存器,其中31个为通用寄存
器,6个为状态寄存Leabharlann Baidu。这些寄存器不能同时被访问,处理器的
第2章 嵌入式处理器体系结构 6.3 五级流水线
随着流水线级数的增加系统性能也越好,但也意味着可能更
多的产生数据相关,需要相应技术来缓解。 ·5级流水线采用哈佛结构,增加了硬件资源使访问指令和数 据互不影响 ·常见的3种相关:结构相关(即资源冲突 ‘资源重复’
I-cache和D-cache、数据相关(采用定向技术等加以解决)和控制
第2章 嵌入式处理器体系结构 ·执行一条分支指令或直接修改pc而发生跳转时,会使ARM
内核清空流水线
·即使产生一个中断,处于“执行”阶段的指令也将会完 成(流水线中其它指令被放弃,处理器将从向量表的适当入口开 始填充流水线) ·ARM10使用分支预测技术,通过预测可能的分支并在指令
执行前装载新的分支地址,从而减小清空流水线的影响
第2章 嵌入式处理器体系结构
第2章 嵌入式处理器体系结构 五.处理器的数据类型
• ARM采用的是32位架构,基本数据类型分为:字、半字和
字节,存储器按照‘字节’编址(字的地址是4的整数倍);
第2章 嵌入式处理器体系结构 • 除了数据传送指令支持字节/半字操作外,ARM指令均面
向32位的操作数,当从存储器调用一个字节/半字时系统会自动
Thumb状态下的寄存器集是ARM状态下寄存器集的子集 (缺
少了R8-R12): • 8个通用寄存器R0-R7 • 堆栈指针SP • 链接寄存器LR
• 程序计数器PC
• 程序状态寄存器CPSR和SPSR 高位寄存器不是标准寄存器集的一部分,但可以使用汇编程 序“受限制”地访问----仅能使用MOV、CMP和ADD三条指令。
第2章 嵌入式处理器体系结构
• 保留位:用于ARM版本的扩展,采用 “位运算”修改
CPSR时,不修改保留位; • 在有DSP扩展的ARM内核中,Q位表示增强的DSP指令是 否发生了溢出或饱和。 c.3 说明
• 条件执行:大多数ARM指令可根据条件标志位决定该指令
是否被执行; • 条件属性作为指令助记符的后缀被编进指令,若没有条件 符号则默认为无条件(AL――always execute)执行;
构成。
第2章 嵌入式处理器体系结构
第2章 嵌入式处理器体系结构 一.处理器内核中数据的移动过程
第2章 嵌入式处理器体系结构 ARM内核是数据(此处的数据包括指令和数据)总线连接的各
个功能单元的集合:
1. 数据经总线进入处理器核,其中的指令在执行前被指令译 码器翻译; 2. ARM采用load/store体系结构将要使用的数据加载或移出, 数据处理只能在寄存器里进行;
大端模式和小端模式。
第2章 嵌入式处理器体系结构 ARM微处理器的寄存器宽度为4个字节,而存储器中却是
以字节为单位组织的,每个存储器地址对应的是一个“字节”,
这就导致一个问题:如何安排与寄存器对应的存储器中的4个
相邻字节?
于是,ARM体系结构中用两种方法存储数据:大端模式 (数据的高位保存在内存的低地址中)和小端模式(数据的低位保 存在内存的低地址中)。
第2章 嵌入式处理器体系结构
二.ARM处理器的工作状态和工作模式
2.1 处理器的工作状态 内核的状态决定了处理器将执行哪种指令集。 ARM处理器 内核支持3种工作状态: • ARM状态(32位字对齐的指令) • Thumb状态(16位半字对齐的指令) • Jazelle状态(8位指令集,用来加速Java字节码的执行)
第2章 嵌入式处理器体系结构 a. 未分组寄存器
对于任何工作模式,R0-R7都指向同一个物理寄存器。由于
不同的工作模式使用相同的物理寄存器,故可能造成其中的数
据损坏,在程序设计时要注意。
b. 分组寄存器 每个分组寄存器都对应多个物理寄存器,工作模式不同所 访问的物理寄存器也不一样。某种特定模式所对应的分组寄存 器采用“寄存器__模式标记”的方式来表示,如R14_abt。
第2章 嵌入式处理器体系结构 四.ARM存储器接口 • ARM微处理器不带片内RAM和ROM,系统所需的RAM和 ROM都通过总线与CPU相连;
• 32位的微处理器其最大寻址空间为4GB,ARM将存储器看
作从零地址开始的“字节”的线性组合;
• ARM寄存器宽度为4个字节,用两种方法存储“字节”数据:
某一时刻处理器只能处于其中的一种状态中。由于Jazelle指
令集使用范围专一,故一般情况下只讨论ARM和Thumb两种指 令集。
第2章 嵌入式处理器体系结构 两种指令集各具特色,使用的场合也不同,同一个程序可以 同时包含上述两种指令集,因此涉及到二者相互转换的问题。
• 使用切换指令在ARM和Thumb指令集之间切换 Ⅰ. 执行BX指令时,如果操作数寄存器的状态位bit[0]=1, 处理器切换到Thumb状态;
第2章 嵌入式处理器体系结构 c.2 位域分配图
第2章 嵌入式处理器体系结构 • 条件标志位(N、Z、C、V):其内容可以被算术或逻辑运
算的结果改变,并且可以决定指令的条件执行;
• 控制位(I、F、T、M[4:0]):发生异常时被改变,如果处理
器运行于特权模式也可通过软件对其进行修改;
A.I=1则禁止IRQ中断,F=1则禁止FIQ中断; B.T=1则ARMv5及以上版本的T系列处理器运行于Thumb 状态(对于ARMv5及以上版本的非T系列处理器,当T=1时执行下 一条指令以引起未定义指令异常);
第2章 嵌入式处理器体系结构 Ⅰ.R8-R12分别对应2个不同的物理寄存器 • FIQ模式具有使用独立的物理寄存器R8_fiq-R12_fiq • 其他模式使用R8-R12
Ⅱ. R13-R14分别对应6个不同的物理寄存器
• R13指向对应模式专用的堆栈空间,用于进入异常处理程
序时保护现场;
• R14用于程序跳转时保存返回地址。
第2章 嵌入式处理器体系结构
第2章 嵌入式处理器体系结构 • 条件标志的使用:比较指令或带有后缀S的ALU操作结果
可以设置其内容,后续指令可以根据其内容条件执行;
ADDEQ r1,r2,r2
• 为了方便阅读,可以使用符号表示CPSR的当前值:大写
字母表示1,小写字母表示0。
第2章 嵌入式处理器体系结构 3.3 Thumb状态下的寄存器组织
Ⅱ. 执行BX指令时,如果操作数寄存器的状态位bit[0]=0,
处理器切换到ARM状态。
第2章 嵌入式处理器体系结构
第2章 嵌入式处理器体系结构 • 所有异常处理均在ARM状态执行(处理器总是从ARM状态
开始执行代码 )
2.2 处理器的工作模式
2.2.1 概述
• ARM支持7种工作模式(每个人都有几套不同风格的衣服); • 工作模式功能各异、所能访问的寄存器资源有所不同; • 区分工作模式是为了避免资源的相互竞争。
相关文档
最新文档