ARM技术与ARM体系结构.ppt_第1页
ARM技术与ARM体系结构.ppt_第2页
ARM技术与ARM体系结构.ppt_第3页
ARM技术与ARM体系结构.ppt_第4页
ARM技术与ARM体系结构.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

大连理工大学软件学院邱铁办公楼409Tel 87571521E mail qiutie 嵌入式系统结构 第二讲ARM技术与ARM体系结构 ARM体系结构的基本版本Thumb技术处理器工作模式ARM7TDMIARM9TDMI异常处理 ARM技术的产生 第一片ARM处理器是1983年10月到1985年4月间在位于英国剑桥的AcornComputer公司开发1990年 ARM公司成立20世纪90年代 ARM快速进入世界市场1995年StrongARM问世XScale是下一代StrongARM芯片的发展基础ARM10TDMI是ARM处理器核中的高端产品ARM11是ARM家族中性能最强的一个系列 一 ARM体系结构的基本版本 ARM7TDMI 4T 1 支持Halfword和signedhalfword byte和Systemmode 支持Thumb指令集 2 4 ARM9TDMI ARM720T ARM940T 改良的ARM Thumb交互作用以及CLZ指令 5TE SaturatedmathsDSPmultiply accumulateinstructions XScale ARM1020E ARM9E S ARM966E S 3 早期的ARMs ARM9EJ S 5TEJ ARM7EJ S ARM926EJ S Jazelle支持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 指令 该指令可使整数除法和中断优先级排队操作更为有效 增加了BKPT 软件断点 指令 为协处理器设计提供了更多的可供选择的指令 更加严格地定义了乘法指令对条件码标志位的影响 ARM体系结构的基本版本 ARM体系版本6是2001年发布的 新架构v6在降低耗电量的同时还强化了图形处理性能 通过追加有效进行多媒体处理的SIMD功能 将语音及图像的处理功能提高到了原机型的4倍 ARM体系版本6首先在2002年春季发布的ARM11处理器中使用 ARM体系结构的基本版本命名规则 ARM x y z T D M I E J F S 大括号内的字母是可选的 各个字母的含义如下 x 系列号 例如ARM7中的 7 ARM9中的 9 y 内部存储管理 保护单元 例如ARM72中的 2 ARM94中的 4 z 内含有高速缓存Cache T 技持16位的Thumb指令集 D 支持JTAG片上调试 M 支持用于长乘法操作 64位结果 的ARM指令 包含快速乘法器 I 带有嵌入式追踪宏单元ETM EmbeddedTraceMacro 用来设置断点和观察点的调试硬件 续 E 增强型DSP指令 基于TDMI J 含有Java加速器Jazelle 与Java虚拟机相比 Java加速器Jazelle使Java代码运行速度提高了8倍 功耗降低到原来的80 F 向量浮点单元 S 可综合版本 意味着处理器内核是以源代码形式提供的 这种源代码形式又可以被编译成一种易于EDA工具使用的形式 ARM体系结构的基本版本 二 Thumb技术 为解决代码长度的问题 ARM体系结构增加了 变种 这就是Thumb指令集 它是ARM技术的一大特色 Thumb是ARM体系结构的扩展 它有从标准32位ARM指令集抽出来的36条指令格式 可以重新编成16位的操作码 这能带来很高的代码密度 ARM7TDMI是第一个支持Thumb的核 三 处理器工作模式 ARM有7个基本工作模式 User 非特权模式 大部分任务执行在这种模式正常程序执行的模式FIQ 当一个高优先级 fast 中断产生时将会进入这种模式高速数据传输和通道处理IRQ 当一个低优先级 normal 中断产生时将会进入这种模式通常的中断处理Supervisor 当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式Abort 当存取异常时将会进入这种模式虚拟存储及存储保护Undef 当执行未定义指令时会进入这种模式软件仿真硬件协处理器System 使用和User模式相同寄存器集的特权模式特权级的操作系统任务 ARM寄存器 寄存器组织概要 Usermoder0 r7 r15 andcpsr r8 r9 r10 r11 r12 r13 sp r14 lr spsr FIQ User r13 sp r14 lr spsr IRQ Usermoder0 r12 r15 andcpsr r13 sp r14 lr spsr Undef Usermoder0 r12 r15 andcpsr r13 sp r14 lr spsr SVC Usermoder0 r12 r15 andcpsr r13 sp r14 lr spsr Abort Usermoder0 r12 r15 andcpsr ThumbstateLowregisters ThumbstateHighregisters Note System模式使用user模式寄存器集 ARM寄存器 ARM有37个32 Bits长的寄存器 1个用作PC programcounter 1个用作CPSR currentprogramstatusregister 5个用作SPSR savedprogramstatusregisters 30个通用寄存器当前处理器的模式决定着哪组寄存器可操作 任何模式都可以存取 相应的r0 r12子集相应的r13 thestackpointer sp andr14 thelinkregister lr 相应的r15 theprogramcounter pc 相应的CPSR currentprogramstatusregister cpsr 特权模式 除system模式 还可以存取 相应的spsr savedprogramstatusregister 程序状态寄存器 条件位 N 1 结果为负 0 结果为正或0Z 1 结果为0 0 结果不为0C 1 进位 0 借位V 1 结果溢出 0结果没溢出Q位 仅ARM5TE J架构支持指示增强型DSP指令是否溢出J位仅ARM5TE J架构支持J 1 处理器处于Jazelle状态 中断禁止位 I 1 禁止IRQ F 1 禁止FIQ TBit仅ARMxT架构支持T 0 处理器处于ARM状态T 1 处理器处于Thumb状态Mode位 处理器模式位 0b10000User0b10001FIQ0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System 当处理器执行在ARM状态 所有指令32bits宽所有指令必须word对齐所以pc值由bits 31 2 决定 bits 1 0 未定义 所以指令不能halfword byte对齐 当处理器执行在Thumb状态 所有指令16bits宽所有指令必须halfword对齐所以pc值由bits 31 1 决定 bits 0 未定义 所以指令不能byte对齐 当处理器执行在Jazelle状态 所有指令8bits宽处理器执行word存取一次取4条指令 程序指针PC r15 TheARM可以用little bigendian格式存取数据 r0 0 x11223344 STRr0 r1 LDRBr2 r1 r1 0 x100 Memory 3210 0123 ByteLane 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 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 Littleendian Bigendian R2 0 x44 R2 0 x11 Formoreinformation see ApplicationNote BigandLittleEndianByteAddressing 字节顺序 四 ARM7TDMI ARM7TDMI是基于ARM7内核3级流水线 0 9MIPS MHz冯 诺依曼架构CPI CyclePerInstruction 约为1 9T Thumb架构扩展 提供两个独立的指令集 ARM指令 均为32位Thumb指令 均为16位两种运行状态 用来选择哪个指令集被执行D 内核具有Debug扩展结构M 增强乘法器支持64位结果 I EmbeddedICE RT逻辑 提供片上断点和调试点支持 ARM7TDMI内核信号 ARM7TDMI方框图 ARM7TDMI内核 TAP控制器 JTAG接口 数据总线 控制信号 D 31 0 地址总线 A 31 0 DIN 31 0 DOUT 31 0 BUSSplitter EmbeddedICE逻辑 乘法器 ARM7TDMI内核 指令解码 地址自增器 nRESET nMREQ SEQ ABORT nIRQ nFIQ nRW MAS 1 0 LOCK nCPI CPA CPB nWAIT MCLK nOPC BIGEND ISYNC nTRANS nM 4 0 D 31 0 桶形移位器 32位ALU DBE 写数据寄存器 读数据寄存器 地址寄存器 寄存器 A 31 0 ABE 及 控制逻辑 PCUpdate 解码站 指令解码 Incrementer PC ABus BBus ALUBus 外部地址产生 PC 31 2 ARMStatePC 31 1 ThumbState ALU 31 0 INC 自增器 A 31 0 向量 0 x1C 0 x00 地址寄存器 指令流水线 为增加处理器指令流的速度 ARM7系列使用3级流水线 允许多个操作同时处理 比逐条指令执行要快 PC指向正被取指的指令 而非正在执行的指令 Fetch Decode Execute 从存储器中读取指令 解码指令 寄存器读 从寄存器Bank 移位及ALU操作寄存器写 到寄存器Bank PCPC PC 4PC 2 PC 8PC 4 ARMThumb 最佳流水线 该例中用6个机器周期执行了6条指令所有的操作都在寄存器中 单周期执行 指令周期数 CPI 1机器周期 操作 周期 123456 Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Decode Execute Fetch Decode Fetch Fetch LDR流水线举例 该例中 用6机器周期执行了4条指令指令周期数 CPI 1 5机器周期 周期 操作 123456 Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Data Writeback Fetch Decode Execute Fetch Decode Fetch 分支流水线举例 流水线被阻断注意 内核运行在ARM状态 周期 12345 地址操作 Fetch Decode Execute Fetch Decode Execute Fetch Decode Fetch Fetch Decode Execute Linkret Adjust Fetch Decode Fetch 中断流水线举例 周期 12345678 IRQ IRQ中断的反应时间最小 7机器周期 地址操作 F D E Linkret Adjust F F DecodeIRQ Linkret ExecuteIRQ Adjust F D E F D F F D E F D F F D 对齐 存储器访问必须始终适当地保持地址对齐非对齐地址将产生不可预测的 未定义的结果用 DataAbort 异常来检测无效的非对齐数据存取扩展逻辑要求 或使用MMU在720T 920T 926E S 1020E谨防指令读取时出现非对齐非对齐数据存取能够完成 但不是用LDR使用LDRB STRB传递字节 或使用LDM加移位 屏蔽 T标志位的作用 16 16 32 bitdata 16 A 1 Mux Thumb指令解码 Mux Mux T标志 ARM指令解码 阶段1 阶段2 D 31 0 0 1 1 0 Fetch Decode Execute 带Cache的ARM7TDMI ARM710T8K统一的cache完整的内存管理单元 mmu 支持虚拟地址和存储器保护写缓冲 ARM720T同ARM710T 但支持WinCEARM740T8K统一的cache内存管理单元写缓冲 ARM7TDMI内核 地址 地址 数据读 AMBA接口 写缓冲 MMU 数据写 数据 ARM7xxT 控制逻辑 Cache AMBA总线接口 JTAG和非AMBA信号 CP15 五 ARM9TDMI Harvard架构增加了可用的存储器宽度指令存储器接口数据存储器接口可以实现对指令和数据存储器的同时访问5级流水线实现了以下改进 提高了最大时钟频率 ARM9TDMI流水线的变化 InstructionFetch Shift ALU MemoryAccess RegWrite RegRead RegDecode FETCH DECODE EXECUTE MEMORY WRITE ARM9TDMI ARMorThumbInstDecode RegSelect RegRead Shift ALU RegWrite Thumb ARMdecompress ARMdecode InstructionFetch FETCH DECODE EXECUTE ARM7TDMI ARM9TDMI数据通道 1 寄存器Bank ALU C B A DINFWD 结果 DA DD 数据递增 向量 指令递增 IA 字节旋转 符号扩展 MU逻辑 双向缓冲器 字节 半字复制 MU逻辑单元包含有 多路复用器 乘法器和桶形移位器 数据总线 地址总线 字节 半字 指令地址总线 ARM9TDMI数据通道 2 寄存器Bank PSR 乘法器 移位器 ALU B A Imm DINFWD BDATA ADATA 锁存 锁存 MU逻辑 至IA生成逻辑 结果 周期 操作 ADDR1 R1 R2 SUBR3 R4 R1 ORRR8 R3 R4 ANDR6 R3 R1 EORR3 R1 R2 1 2 3 4 5 6 7 8 LDRR4 R7 9 F D E F D E W F D E W F D E W F D W E F D E W F 取指 Fetch D 解码 Decode E 执行 Execute I 互锁 Interlock M 存储器 Memory W 写回 Writeback I LDR互锁 本例中 用了7个机器周期执行6条指令 CPI 1 2机器周期 LDR指令之后立即跟一条数据操作指令 由于使用了相同的寄存器 将会导致互锁 W I M 周期 操作 ADDR1 R1 R2 SUBR3 R4 R1 ORRR8 R3 R4 ANDR6 R3 R1 EORR3 R1 R2 LDRR4 R7 最佳流水线 本例中 用了6个机器周期执行6条指令 CPI 1机器周期 LDR指令没有引起流水线互锁 LDM互锁 1 本例中 用了8个机器周期执行5条指令 CPI 1 6在LDM期间 有并行的存储器访问和回写周期 周期 操作 LDMIAR13 R0 R3 SUBR9 R7 R8 ORRR8 R4 R3 ANDR6 R3 R1 1 2 3 4 5 6 7 8 STRR4 R9 9 F 取指 Fetch D 解码 Decode E 执行 Execute MW 存储器和回写同时执行I 互锁 Interlock M 存储器 Memory W 写回 Writeback F D E W F D E W D E F D E W F M D W E I I I I I I M F LDM互锁 2 本例中 用了9个机器周期执行5条指令 CPI 1 8此处SUB使用了R3 增加了一个额外的互锁周期来完成该寄存器数据的获取这种情况对任何LDM指令 像带IA DB FD 等 都会发生 ARM9TDMI系统举例 注意 数据接口必须能够读取指令存储器中的数据 为调试方便 建议数据接口能够读写指令存储器 带Cache的ARM9TDMI ARM9TDMI DCache ICache MMU GLUE 外部存储器 ARM920T2x16KcachesMMU支持虚拟地址和内存保护写缓冲 ARM940T2x4KcachesMPU写缓冲 ARM9xxT ARM10E系列概述 ARM1020Ev5TE架构CPI 1 36级流水线静态分支预测32

温馨提示

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

评论

0/150

提交评论