arm技术与arm体系结构

上传人:好** 文档编号:109898461 上传时间:2019-10-28 格式:PPT 页数:46 大小:643.50KB
返回 下载 相关 举报
arm技术与arm体系结构_第1页
第1页 / 共46页
arm技术与arm体系结构_第2页
第2页 / 共46页
arm技术与arm体系结构_第3页
第3页 / 共46页
arm技术与arm体系结构_第4页
第4页 / 共46页
arm技术与arm体系结构_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《arm技术与arm体系结构》由会员分享,可在线阅读,更多相关《arm技术与arm体系结构(46页珍藏版)》请在金锄头文库上搜索。

1、大连理工大学软件学院 邱铁 办公楼409 Tel:87571521 E_mail: qiutie,嵌入式系统结构,第二讲 ARM技术与ARM体系结构,ARM体系结构的基本版本 Thumb技术 处理器工作模式 ARM7TDMI ARM9TDMI 异常处理,ARM技术的产生,第一片ARM处理器是1983年10月到1985年4月 间在位于英国剑桥的Acorn Computer公司开发 1990年,ARM公司成立 20世纪90年代, ARM快速进入世界市场 1995年 StrongARM 问世 XScale是下一代StrongARM芯片的发展基础 ARM10TDMI是ARM处理器核中的高端产品 ARM

2、11是ARM家族中性能最强的一个系列,一.ARM体系结构的基本版本,ARM7TDMI,4T,1,支持Halfword 和signed halfword / byte 和System mode,支持Thumb指令集,2,4,ARM9TDMI,ARM720T,ARM940T,改良的ARM/Thumb 交互作用 以及CLZ 指令,5TE,Saturated maths DSP multiply-accumulate instructions,XScale,ARM1020E,ARM9E-S,ARM966E-S,3,早期的ARMs,ARM9EJ-S,5TEJ,ARM7EJ-S,ARM926EJ-S,Ja

3、zelle 支持 Java字节码,6,ARM11,SIMD,SISIMDMD,S,SIMD,ARM体系结构的基本版本,版本4与以前版本相比增加了下列指令: 有符号、无符号的半字和有符号字节的load和store指令。 增加了T变种,处理器可以工作于Thumb状态,在该状态下的指令集是16位的Thumb指令集。 增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。,ARM体系结构的基本版本,版本5主要由两个变型版本5T、5TE组成 相比与版本4,版本5的指令集有了如下的变化: 提高了T变种中ARM/Thumb混合使用的效率。 增加前导零记数(CLZ)指令,该指令可使整数除法和中断优先

4、级排队操作更为有效; 增加了BKPT(软件断点)指令; 为协处理器设计提供了更多的可供选择的指令; 更加严格地定义了乘法指令对条件码标志位的影响。,ARM体系结构的基本版本,ARM体系版本6是2001年发布的。新架构v6在降低耗电量的同时还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD功能,将语音及图像的处理功能提高到了原机型的4倍。ARM体系版本6首先在2002年春季发布的ARM11处理器中使用。,ARM体系结构的基本版本命名规则,ARMxyzTDMIEJF-S 大括号内的字母是可选的,各个字母的含义如下: x 号,例如ARM7中的“7”、ARM9中的“9”; y 内部存储管理/保

5、护单元,例如ARM72中的“2”、ARM94中的“4”; z 内含有高速缓存Cache; T 技持16位的Thumb指令集; D 支持JTAG片上调试; M 支持用于长乘法操作(64位结果)的ARM指令,包含快速乘法器; I 带有嵌入式追踪宏单元ETM(Embedded Trace Macro),用来设置断点和观察点的调试硬件;,续,E 增强型DSP指令(基于TDMI); J 含有Java加速器Jazelle,与Java虚拟机相比,Java加速器Jazelle使Java代码运行速度提高了8倍,功耗降低到原来的80%; F 向量浮点单元; S可综合版本,意味着处理器内核是以源代码形式提供的。这种

6、源代码形式又可以被编译成一种易于EDA工具使用的形式。,ARM体系结构的基本版本,二.Thumb技术,为解决代码长度的问题,ARM体系结构增加了变种,这就是Thumb指令集,它是ARM技术的一大特色。 Thumb是ARM体系结构的扩展。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度 。 ARM7TDMI是第一个支持Thumb的核。,三.处理器工作模式,ARM 有7个基本工作模式: User:非特权模式,大部分任务执行在这种模式 正常程序执行的模式 FIQ:当一个高优先级(fast)中断产生时将会进入这种模式 高速数据传输和通道处理 IRQ

7、:当一个低优先级(normal)中断产生时将会进入这种模式 通常的中断处理 Supervisor:当复位或软中断指令执行时将会进入这种模式 供操作系统使用的一种保护模式 Abort: 当存取异常时将会进入这种模式 虚拟存储及存储保护 Undef: 当执行未定义指令时会进入这种模式 软件仿真硬件协处理器 System: 使用和User模式相同寄存器集的特权模式 特权级的操作系统任务,ARM 寄存器,寄存器组织概要,User mode r0-r7, r15, and cpsr,r8,r9,r10,r11,r12,r13 (sp),r14 (lr),spsr,FIQ,User,r13 (sp),r1

8、4 (lr),spsr,IRQ,User mode r0-r12, r15, and cpsr,r13 (sp),r14 (lr),spsr,Undef,User mode r0-r12, r15, and cpsr,r13 (sp),r14 (lr),spsr,SVC,User mode r0-r12, r15, and cpsr,r13 (sp),r14 (lr),spsr,Abort,User mode r0-r12, r15, and cpsr,Thumb state Low registers,Thumb state High registers,Note: System模式使用us

9、er模式寄存器集,ARM 寄存器,ARM 有37个32-Bits长的寄存器. 1 个用作PC( program counter) 1个用作CPSR(current program status register) 5个用作SPSR(saved program status registers) 30 个通用寄存器 当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取: 相应的r0-r12子集 相应的 r13 (the stack pointer, sp) and r14 (the link register, lr) 相应的 r15 ( the program counter, pc)

10、 相应的CPSR(current program status register, cpsr) 特权模式 (除system模式) 还可以存取; 相应的 spsr (saved program status register),程序状态寄存器,条件位: N = 1-结果为负,0-结果为正或0 Z = 1-结果为0,0-结果不为0 C =1-进位,0-借位 V =1-结果溢出,0结果没溢出 Q 位: 仅ARM 5TE/J架构支持 指示增强型DSP指令是否溢出 J 位 仅ARM 5TE/J架构支持 J = 1: 处理器处于Jazelle状态,中断禁止位: I = 1: 禁止 IRQ. F = 1:

11、禁止 FIQ. T Bit 仅ARM xT架构支持 T = 0: 处理器处于 ARM 状态 T = 1: 处理器处于 Thumb 状态 Mode位(处理器模式位): 0b10000 User 0b10001 FIQ 0b10010 IRQ 0b10011 Supervisor 0b10111 Abort 0b11011 Undefined 0b11111 System,当处理器执行在ARM状态: 所有指令 32 bits 宽 所有指令必须 word 对齐 所以 pc值由bits 31:2决定, bits 1:0 未定义 (所以指令不能halfword / byte对齐). 当处理器执行在Thu

12、mb状态: 所有指令 16 bits 宽 所有指令必须 halfword 对齐 所以 pc值由bits 31:1决定, bits 0 未定义 (所以指令不能 byte对齐). 当处理器执行在Jazelle状态: 所有指令 8 bits 宽 处理器执行 word 存取一次取4条指令,程序指针PC (r15),The ARM 可以用 little/big endian 格式存取数据.,r0 = 0x11223344,STR r0, r1,LDRB r2, r1,r1 = 0x100,Memory,3 2 1 0,0 1 2 3,Byte Lane,31,24,23,16,15,8,7,0,11,2

13、2,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,00,00,00,44,31,24,23,16,15,8,7,0,00,00,00,11,Little endian,Big endian,R2 = 0x44,R2 = 0x11,For more information, see: “Application Note : Big and Little Endian Byte Addressing”,字节顺序,四. ARM7TDMI,ARM7TDMI 是基于

14、 ARM7 内核 3 级流水线-0.9MIPS/MHz 冯.诺依曼架构 CPI(Cycle Per Instruction) 约为1.9 T - Thumb 架构扩展, 提供两个独立的指令集: ARM 指令,均为 32位 Thumb指令,均为 16位 两种运行状态,用来选择哪个指令集被执行 D - 内核具有Debug扩展结构 M - 增强乘法器 支持64位结果. I - EmbeddedICE-RT逻辑-提供片上断点和调试点支持,ARM7TDMI 内核信号,ARM7TDMI 方框图,ARM7TDMI 内核,TAP 控制器,JTAG 接口,数据总线,控制信号,D31:0,地址总线,A31:0,D

15、IN31:0,DOUT31:0,BUS Splitter,Embedded ICE 逻辑,乘法器,ARM7TDMI 内核,指令 解码,地址 自增器,nRESET,nMREQ,SEQ,ABORT,nIRQ,nFIQ,nRW,MAS1:0,LOCK,nCPI,CPA,CPB,nWAIT,MCLK,nOPC,BIGEND,ISYNC,nTRANS,nM4:0,D31:0,桶形 移位器,32 位 ALU,DBE,写数据 寄存器,读数据 寄存器,地址寄存器,寄存器,A31:0,ABE,及,控制 逻辑,PC Update,解码站,指令 解码,Incrementer,P C,A B u s,B B u s,A L U B u s,外部地址产生,PC31:2 ARM State PC31:1 Thumb State,ALU31:0,INC,自增器,A31:0,向量,0x1C,0x00,地址 寄存器,指令流水线,为增加处理器指令流的速度,ARM7 系列使用3级流水线. 允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令,Fetch,Decode,Execute,从存储器中读取指令,解码指令,寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Ba

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 往来文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号