嵌入式系统第二讲arm体系结构与编程模型.ppt_第1页
嵌入式系统第二讲arm体系结构与编程模型.ppt_第2页
嵌入式系统第二讲arm体系结构与编程模型.ppt_第3页
嵌入式系统第二讲arm体系结构与编程模型.ppt_第4页
嵌入式系统第二讲arm体系结构与编程模型.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二讲 ARM体系结构与编程模型,电信学院崔寅鸣 Email: ,本讲主要内容,ARM体系结构 体系结构的版本 ARM体系的变种 ARM系列处理器介绍 ARM处理器架构 流水线结构 MMU,I/O,DMA,AMBA,JTAG 核与内核 ARM编程模型,ARM体系结构,ARM体系结构的发展,ARM 版本性能结构概览,ARM处理器命名规则,ARM7TDMI核命名规则 7 体系结构 T Thumb 代码支持 (16 bit 指令) D Debug 硬件调试模块支持 M 加强的乘法支持 I EmbeddedICE Logic S 可综合的软核 E DSP J Jazeller,允许直接执行Java字节

2、码,ARM体系的变种(一),Thumb指令集(T变种) Thumb指令集是ARM指令集的子集,16位长,与ARM指令集相比: 完成同样任务,Thumb代码通常使用更多的指令 Thumb指令集不包括异常处理所需的指令 目前Thumb指令集有2个版本 V1用于ARMV4 V2用于ARMV5,与V1比切换ARM/Thumb更高效,增加SWI,更严格定义了乘法指令对条件标志位的影响,ARM体系的变种(二,略),长乘法指令(M变种) 增加了两条用于长乘法操作的ARM指令 323264 32323264 在V3体系中引入,ARM体系的变种(三,略),增强型DSP指令(E变种) 几个新的16位乘法运算和乘加

3、指令; 完成饱和带符号加减运算; 可对双字数据操作的加载寄存器(LDRD)、存储寄存器STRD和协处理器寄存器传输指令MCRR、MRRC; Cache预加载指令PLD;,ARM体系的变种(四,略),另外,一些早期体系结构的E变量未实现指令LDRD、STRD、MCRR、MRRC,为了表示这种结构,通常用xP表示; 在非T或非M变量的体系结构中,E变量无效。 例如:ARMv5TExP表示: ARM指令集版本v5, 支持Thumb指令集,支持长乘法,支持除LDRD、STRD、MCRR、MRRC外的所有增强型DSP指令。,ARM体系的变种(五,略),Java加速器Jazelle(J变种) 提供Java

4、加速功能,比普通虚拟机(VM)相比,Jazelle使Java代码运行速度提高8倍,功耗降低80 使得同时运行Java应用程序,操作系统,中间件可以在单独的处理器上实现 在ARM v4TEJ中首先使用,ARM体系的变种(六,略),媒体功能扩展(SIMD变种) 音频/视频处理性能提高24倍 可以同时进行两个16位操作数或四个8位操作数的运算 提供小数算术运算 用户可定义饱和运算模式(溢出后使用最大的整数或最小的负数来表示) 两套16位操作数的乘加/乘减运算 3232位的小数MAC 同时8位/16位选择操作 低功耗,ARM微处理器分类,ARM7系列:如ARM7TDMI(TDMI = Thumb, D

5、ebugger, Multiplier, ICE)、ARM720T等 ARM9系列: MX1采用ARM920T核 ARM9E系列 ARM10系列 ARM11系列 StrongARM系列 Xscale,ARM7系列处理器特点(一),ARM7系列:如ARM7TDMI、ARM720T等 采用ARMV4T结构 常见芯片主频为20133MHz ARM720T以下没有MMU 适合对价位和功耗要求较高的产品。 3级流水线和冯.诺依曼结构 支持Window CE、Linux Palm OS等,ARM7系列处理器特点(二),指令和数据Cache(ARM710,720,740) 平均功耗0.6mW/MHz 每条指

6、令平均需要1.9时钟周期 处理速度0.9MIPS/MHz 小型、快速、低能耗、集成式RISC内核 广泛应用于手持式计算机、数据通信和消费类多媒体,ARM9系列处理器特点(一),ARM9系列: MX1采用ARM920T核 采用ARMV4T结构 常见的芯片主频为100233MHz 5级流水线和哈佛结构 支持32位的高速AMBA总线接口 MMU 支持实时操作系统,ARM9系列处理器特点(二),指令数据分离的Cache(ARM920,940,9E) 平均功耗0.7mW/MHz 132MIPS(120MHz时钟,3.3V供电)或220MIPS(200MHz时钟) 配写缓冲 低价、低能耗、高性能 应用于高

7、级引擎管理、保安系统、机顶盒、便携计算机和高档打印机,ARM9E处理器特点(略),ARM9E系列 采用ARMV5TE结构 5级流水线和哈佛结构 紧耦合的存储器接口 支持32位的高速AMBA总线接口 MMU 支持DSP指令集,适合高速数字信号处理 支持实时操作系统 具有指令Cache和数据Cache 支持VFP9浮点处理协处理器,ARM10系列处理器特点(一),ARM10系列 采用ARMV5TE结构 6级流水线和哈佛结构 支持64位的高速AHB总线接口 MMU 支持DSP指令集,适合高速数字信号处理 支持实时操作系统 具有指令Cache和数据Cache 支持VFP9浮点处理协处理器,ARM10系

8、列处理器特点(二),时钟速度300MHz 每条指令平均需要1.2个时钟周期 适用于高性能手持式因特网设备,数字式消费类产品,ARM11系列处理器特点,ARM11 采用ARMV6结构 8级流水 时钟达到550MHz 0.13um工艺 支持IEM(Intelligent Energy Manager),节约高达75的处理器功耗 ARM1156T2-S,ARM1156T2F-S首批含有Thumb-2内核技术,其他系列ARM处理器(一),SecureCore系列 专为安全需要而设计 灵活的保护单元 Strong ARM 融合了Intel技术的具有ARM体系结构的32位处理器 采用ARMV4T结构 5级

9、流水 Intel以SA110命名 包括SA1100 PDA系统芯片和SA1500 多媒体处理器芯片,其他系列ARM处理器(二),Xscale Intel新一代的性能全、性价比高、低功耗的微处理器 ARMV5TE 7级超流水线 32k数据缓存、32k指令缓存,ARM处理器架构简述,ARM处理器架构(三级流水),ARM处理器包括: 32位ALU 31个32位通用寄存器及6个状态寄存器 32x8位乘法器 32x32位桶形移位寄存器 指令译码及控制逻辑 数据/地址寄存器组成,ARM处理器流程示意,ARM的流水线结构(一),流水线结构 一条指令典型执行过程可能包括: 取指:从存储器中取出指令(fetch

10、); 译码(dec); 取操作数,从寄存器组中读操作数(reg); 执行运算(ALU); 存储器访问(mem); 结果写回寄存器(res);,ARM的流水线结构(二),指令流水线,ARM7的三级流水,ARM7 采用3级流水线,即分为取指、译码和执行。,ARM9的五级流水,ARM9 5级流水线,即分为取指、译码、执行、数据缓存和写回。 3级流水线阻塞主要发生在存储器访问和数据通路的占用上,ARM9则采用5级流水线,把存储器存取和数据存取分开,且增加I-Cache和D-Cache,同时增加了数据写回的专用通道,I-Cache和D-Cache,快存(Cache)结构 新型ARM处理器采用I- Cac

11、he和D- Cache独立的结构,存储器管理单元MMU,存储器管理单元MMU(Memory Management Unit) MMU可以通过CP15协处理器的R1的设置,选择打开或关闭。 MMU的主要功能 将虚拟地址转换为物理地址; 控制存储器访问权限。 MMU支持基于段或页的存储器访问,其中有段(1MB)、大页面(64kB)、小页面(4 kB)、微小页面(1 kB),MMU的控制,ARM存储器管理单元的控制,通过协处理器CP15的寄存器R1、R2、R3、R4、R5、R6、R8、和R10来实现,其中R2为转换表基址寄存器,详细内容参见ARM Architecture Reference Man

12、ual。,地址变换后备缓冲器TLB,类似Cache,只存放最近使用过的页表项,也称为快表 是虚拟地址和物理地址之间的高速缓存,包含了64项虚页号和实页号的对应关系,同时还为访问控制提供信息。 若TLB包含虚拟地址的变换项,则存储控制逻辑决定是否允许访问; 若允许访问,则MMU输出与虚拟地址对应的物理地址; 若不允许访问,则MMU向CPU发出中止信号 若请求的虚拟地址不在TLB中时,则引发地址变换过程,直接存储器访问DMA,DMA直接存储器访问 I/O的数据块直接传送到存储器的缓冲区而不需要处理器的介入 在I/O的数据流量比较大,中断处理频繁的场合可以提高系统性能,ARM的I/O结构形式,ARM

13、采用存储器映像I/O的方式,即把I/O端口当作特殊的存储器地址来访问。一般有若干个寄存器: 发送数据寄存器(只写) 接收数据寄存器(只读) 控制寄存器 状态寄存器(只读) 中断控制寄存器 中断IRQ和快速中断FIQ 对于FIQ的请求响应时长最多28个周期,ARM JTAG调试接口(一),JTAG测试标准是由联合测试行动小组(Joint Test Action Group)提出的一种国际标准,主要用于芯片内部测试及对系统进行仿真、调试,ARM JTAG调试接口(二),TAP控制器(测试访问端口) 指令寄存器 器件ID寄存器 旁路寄存器 边界扫描寄存器,ARM JTAG调试接口(三),Embedd

14、ed-ICE模块 JTAG调试接口基础上的扩展; 包含2个观察点寄存器以及控制与状态寄存器; 能够中止ARM处理器的运行,完成设置断点、观测点等功能; 包含调试通信端口,使得目标系统的软件可以与主机通信; 其寄存器需要通过JTAG测试端口来编程。,ARM处理器内核,核与内核的概念 核=内核I-Cache/D-Cache/MMU/AMBA/写缓冲 ARM架构的处理器内核有 ARM7TDMI ARM8 ARM9TDMI ARM10TDMI StrongARM(SA-1),ARM处理器核,ARM架构的处理器核有 ARM720T/ARM740T ARM920T/ARM940T ARM946E-S/AR

15、M966E-S ARM1020E StrongARM SA-110,ARM920T结构图,ARM编程模型,主要内容,ARM处理器编程模型 寄存器组 处理器工作模式 异常处理,ARM处理器支持的运行模式,ARM处理器共支持7种运行模式,分别为: 用户(usr):ARM处理器正常的程序执行状态; 系统模式(sys):运行具有特权的操作系统任务; 快速中断(fiq):用于高速数据传输或通道处理; 外部中断(irq):用于通用的中断处理; 管理模式(svc):操作系统使用的保护模式; 中止(abt):当数据或指令访问中止时进入该模式,可用于虚拟存储及存储保护; 未定义(und):当未定义指令执行时进入

16、该模式,可用于硬件协处理器的软件仿真。,ARM处理器运行模式,除用户模式之外的其余6种称为非用户模式,或特权模式(Privileged Modes);而特权模式中,除系统模式之外的其余5种又称为异常模式(Exception Modes)。 用户程序运行在用户模式下,不能访问一些受操作系统保护的系统资源。应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器处理器模式的切换。这种体系结构可以使系统控制整个系统的资源。,系统模式,系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所

17、有的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式的寄存组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时可以正常保存当前工作状态,进行模式切换。,ARM处理器运行模式,当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器(保存了程序运行状态)不被破坏。,ARM的寄存器组织,ARM处理器共有37个32位寄存器,其中31个为通用寄存器,6个状态寄存器。 ARM状态下的寄存器组织 未分

18、组寄存器R0R7 分组寄存器R8R14 程序计数器R15(PC) 当前程序状态寄存器 (CPSR) 备份的程序状态寄存器(SPSR),ARM状态下寄存器组织,Thumb状态下的寄存器组织,Thumb状态下的寄存器组织 通用寄存器R0R7 程序计数器PC 堆栈指针SP(R13) 连接寄存器LR CPSP和SPSR,R13(SP堆栈指针),每种异常模式都有备份寄存器 R13_usr, R13_svc, R13_abt, R13_und, R13_irq, R13_fiq 用作堆栈指针 每种异常模式有自己专用的栈地址 R13用于被中断程序的现场保护,即保存需要保护的寄存器值,R14(LR连接寄存器)

19、,每种异常模式都有备份寄存器 R14_usr, R14_svc, R14_abt, R14_und, R14_irq, R14_fiq 作用 存放当前子程序的返回地址 异常中断发生时,该异常模式R14_xxx被设置为将要返回的地址,R15(PC程序计数器),指令地址 PC=当前执行指令地址8 地址值字对齐及半字对齐 例MOV PC,PC;跳转到下面第二条指令,状态寄存器,状态寄存器: 当前程序状态寄存器 CPSR,可以在任何工作模式下被访问; 程序状态备份寄存器SPSR,只有在异常模式下,才能被访问 ;,CPSR当前程序状态寄存器(一),当前程序状态寄存器CPSR N:补码形式的有符号数运算时

20、,1为负,0为正; Z:1表示结果为零; C:加减法的进位或借位,以及非加减法的最后移位; V:1表示补码形式的有符号数加减运算时符号位溢出;,CPSR当前程序状态寄存器(二),Q:v5以上版本才有,描述增强DSP运算指令是否发生溢出; I、F:中断禁止位,1表示中断禁止; T:指示处理器处于ARM或Thumb工作状态;,CPSR当前程序状态寄存器(三),M4:0:表示处理器的运行模式 0b10000User 0b10001FIQ 0b10010IRQ 0b10011Supervisor 0b10111Abort 0b11011Undefined 0b11111System,ARM控制程序执行

21、的方式,正常执行,每执行一条指令 ARM指令PC+4 Thumb指令PC+2 跳转:B、BL、BX、BLX 异常中断 执行完当前指令,跳转到异常中断处理程序 执行完返回到发生中断指令的下一条处 要保护和恢复被中断程序的执行现场,ARM处理器的异常中断(一),异常是指正常的程序执行流程发生暂时的停止或改变,例如在复位、有中断请求及指令预取中止时; ARM处理器支持7种类型的异常。 复位(RESET):当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。 未定义指令(UDEF):当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。

22、软件中断(SWI):该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。使用该异常机制可以实现系统功能调用。,ARM处理器的异常中断(二),指令预取中止(PABT):若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。 数据中止(DABT):若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。 IRQ(外部中断请求):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务。 FIQ(快速中断请求):当处理器的快

23、速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。,ARM处理器的异常中断(三),ARM处理器的异常中断(四),ARM处理器对异常的处理(一),对异常的响应: 将下一条指令的地址存入相应异常类型的连接寄存器LR_mode; 将CPSR复制到相应异常类型的SPSR_mode中; 设置CPSR的M4:0,强制改变到相应的运行模式; 禁止正常中断,如果异常类型为快速中断或复位,同时禁止快中断; 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。,ARM处理器对异常的处理(二),异常返回 从堆栈中恢复用户寄存器 将SPSR_mode复制回CPSR中 复制LR_m

24、odePC,未定义异常的操作过程,进入异常: R14_und=产生异常的下一条指令地址 SPSR_und=CPSR CPSR4:0=0b11011/*进入未定义运行模式*/ CPSR5=0/*进入ARM工作状态*/ CPSR7=1/*禁止正常中断*/ 如果设置了高向量模式,则 PC=0 xFFFF0004 否则PC=0 x00000004 退出异常: MOVS PC R14 恢复PC(从R14_und)和CPSR(从SPSR_und),并返回到该未定义指令的下一条指令处,ARM推荐的异常退出指令,例:SWI中断的R14,例如: 0 x8000 mov . 0 x8004 add . 0 x8008 SWI . 0 x800C mov . 0 x8010 add . 当程序执行SWI异常时,PC指向0 x8010,在跳转到异常向量的之前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论