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

下载本文档

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

文档简介

1 TM1 n大连理工大学软件学院 邱铁 办公楼413 Tel:87571521 E_mail: 参考教材:ARM嵌入式系统结构与编程 清华大学出版社2009年3月出版 ARM嵌入式系统结构与编程 2 TM 第2章 ARM技术与ARM体系结构 本章主要介绍ARM处理器的产生及版本发展历 史,以及各个版本的典型处理器及应用情况和性能 分析;ARM处理器的内核调试结构,重点分析了 ARM7TDMI-S、ARM9TDMI两种结构;ARM处理器 的工作模式及寄存器组织结构,分析了在什么情况 下进入到相应的工作模式;ARM处理器支持的内存 数据存储格式,分为大端格式和小端格式;最后介 绍了ARM7的三级流水线运行机制和ARM9的五级流 水线运行机制。 3 TM3 内容提要 21 ARM体系结构版本与内核 22 ARM内核模块 23 ARM处理器的工作模式 24 ARM内部寄存器 25 ARM异常处理 26 存储方式与存储器映射机制 27 ARM流水线技术分析 4 TM4 21 ARM体系结构版本与内核 第一片ARM处理器是1983年10月到1985年4月 间 在位于英国剑桥的Acorn Computer公司开发 1990年,ARM公司成立 20世纪90年代, ARM快速进入世界市场 1995年 StrongARM 问世 XScale是下一代StrongARM芯片的发展基础 ARM10TDMI是ARM处理器核中的高端产品 ARM11是ARM家族中性能最强的一个系列 5 TM5 211ARM体系结构版本 ARM7TDMI 4T 1 支持 Halfword 和 signed halfword / byte 和 System mode 支持 Thumb 指令集 2 4 ARM9TDMI ARM720TARM940T 改良的 ARM/Thumb 交互作用 以及CLZ 指 令 5TE Saturated maths DSP multiply-accumulate instructions XScale ARM1020EARM9E-S ARM966E-S 3 早期的ARMs ARM9EJ-S 5TEJ ARM7EJ-S ARM926EJ-S Jazelle 支持 Java字节码 6 ARM11 SIMD SISIMDMD S SIMD 7 ARM Cotex 6 TM6 n第一阶段: n版本V1、V2、V3这3个早期ARM版本功能单 一,没有大范围占领市场,主要是处于开发 和实验阶段 n第二阶段: n从ARM4开始,ARM体系结构处于完善和提 高阶段 7 TM7 n 版本4与以前版本相比增加了下列指令: 有符号、无符号的半字和有符号字节的load和store 指令。 增加了T变种,处理器可以工作于Thumb状态,在 该状态下的指令集是16位的Thumb指令集。 增加了处理器的特权模式。在该模式下,使用的是 用户模式下的寄存器。 8 TM8 n版本5主要由两个变型版本5T、5TE组成 n相比与版本4,版本5的指令集有了如下的变化: 提高了T变种中ARM/Thumb混合使用的效率。 增加前导零记数(CLZ)指令,该指令可使整数除法和中断 优先级排队操作更为有效; 增加了BKPT(软件断点)指令; 为协处理器设计提供了更多的可供选择的指令; 更加严格地定义了乘法指令对条件码标志位的影响。 9 TM9 nARM体系版本6是2001年发布的。新架构v6在 降低耗电量的同时还强化了图形处理性能。 通过追加有效进行多媒体处理的SIMD功能, 将语音及图像的处理功能提高到了原机型的4 倍。ARM体系版本6首先在2002年春季发布的 ARM11处理器中使用。 10 TM10 2.1.2 ARM体系结构的基本版本命名规则 ARMxyzTDMIEJF-S n大括号内的字母是可选的,各个字母的含义如下: n x系列号,例如ARM7中的“7”、ARM9中的“9”; n y内部存储管理/保护单元,例如ARM72中的“2”、ARM94中的“4”; n z内含有高速缓存Cache; n T技持16位的Thumb指令集; n D支持JTAG片上调试; n M支持用于长乘法操作(64位结果)的ARM指令,包含快速乘法器; n I带有嵌入式追踪宏单元ETM(Embedded Trace Macro),用来设 置断点和观察点的调试硬件; 11 TM11 续 n E 增强型DSP指令(基于TDMI); n J 含有Java加速器Jazelle,与Java虚拟机相比, Java加速器Jazelle使Java代码运行速度提高了8倍,功耗 降低到原来的80%; n F 向量浮点单元; nS可综合版本,意味着处理器内核是以源代码形式提供 的。这种源代码形式又可以被编译成一种易于EDA工具使用 的形式。 12 TM12 ARM体系结构的基本版本 版本版本变 种 系列号处理器核 V1V1ARM1ARM1 V2V2ARM2ARM2 V2aARM2aS ARM3ARM3 V3V3ARM6ARM6、ARM600、ARM610 ARM7ARM7、ARM700、ARM710 V4V4TARM7TDMI、ARM710T、ARM720T、ARM740T V4ARM8StrongARM、ARM8、ARM810 V4TARM9ARM9TDMI、ARM920T、ARM940T V5V5TEARM9E-S ARM10ARM10TDMI、ARM1020E V6V6ARM11ARM11、ARM11562-S、ARM1156T2F-S、 ARM11JZF-S V7V7 ARM Cotex ARM Cotex-A8、ARM Cotex-R4、ARM Cotex-M3 13 TM13 2.2ARM内核模块 nARM处理器一般都带有嵌入式追踪宏单元 ETM(Embedded Trace Macro),它是 ARM公司自己推出的调试工具 14 TM14 ARM调试结构 15 TM15 221 ARM7TDMI-S内核结构 nARM7TDMI-S是一款32位嵌入式RISC处理 器。它作为优化的硬核是性能、功耗和面积 特性的最佳组合。使用ARM7TDMI核使得系 统设计师能够设计出小尺寸、低功耗以及高 性能的嵌入式设备。 16 TM16 ARM7TDMI nARM7TDMI 是基于 ARM7 内核 n3 级流水线-0.9MIPS/MHz n冯.诺依曼架构 nCPI(Cycle Per Instruction) 约为1.9 nT - Thumb 架构扩展, 提供两个独立的指令集: nARM 指令,均为 32位 nThumb指令,均为 16位 n两种运行状态,用来选择哪个指令集被执行 nD - 内核具有Debug扩展结构 nM - 增强乘法器 支持64位结果. nI - EmbeddedICE-RT逻辑-提供片上断点和 调试点支持 17 TM17 ARM7TDMI 内核信号 ARM7TDMI 内核 MCLK nIRQ nFIQ nRESET BUSEN BIGEND ISYNC nWAIT VDD VSS APE DBE 协处理器接口 存储器管理 存储器接口 ABORT nOPC CPB CPA nCPI nTRANS nM4:0 MAS1:0 nRW nMREQ LOCK SEQ nENOUT A31:0 DOUT31:0 DIN31:0 D31:0 电源 总线控制 时钟 配置 中断 18 TM18 ARM7TDMI 方框图 ARM7TDMI 内核 TAP 控制器 JTAG 接口 数据总线 控制信号 D31:0 地址总线 A31:0 DIN31:0 DOUT31:0 BUS Splitter Embedded ICE 逻辑 19 TM19 乘法器 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:0ABE 及 控制 逻辑 PC Update 解码站 指令 解码 Incrementer P C A B u s B B u s A L U B u s 20 TM20 外部地址产生 PC31:2 ARM State PC31:1 Thumb State ALU31:0 INC 自增器 A31:0 向量 0x1C 0x00 地址 寄存器 21 TM21 n特 点: n32/16 位RISC架构(ARM v4T)。 n具有最高性能和灵活性的32位ARM指令集。 n代码紧凑的16位Thumb指令集。 n统一的总线接口,指令与数据都在32位总线上传输。 n3级流水线。 n32位算术逻辑单元(ALU)。 n极小的核心尺寸以及低功耗。 n完全的静态操作。 n协处理器接口。 n扩展的调试设备: 22 TM22 T标志位的作用 16 16 32-bit data 16 A1 Mux Thumb 指令 解码 Mux Mux T标志 ARM 指令 解码 阶段 1阶段 2 D31:0 0 1 1 0 Fetch DecodeExecute 23 TM23 带Cache的ARM7TDMI nARM710T n8K 统一的 cache n完整的内存管理单元(mmu),支 持虚拟地址和存储器保护 n写缓冲 ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲 ARM7TDMI 内核 地址 地址 数据读 AMBA 接口 写 缓冲 MMU 数据写 数据 ARM7xxT 控制 逻辑 Cache AMBA 总线 接口 JTAG 和非 AMBA 信号 CP15 24 TM24 nARM7系列内核采用了三条流水线的内核结 构,三级流水线分别为取指(Fetch)、译码 (Decode)、执行(Execute) 25 TM25 n取指:将指令从存储器中取出,放入指令 Cache中。 n译码:由译码逻辑单元完成,是将在上一步指 令Cache中的指令进行解释,告诉CPU将如何 操作。 n执行:这阶段包括移位操作、读通用寄存器内 容、输出结果、写通用寄存器等。 26 TM26 n需要注意的是,PC指向正被取指的指令而不 是正在执行的指令: 27 TM27 n详细信息见教材ARM嵌入式系统结构与编 程第16页 28 TM28 222 ARM9内核结构 nARM920是一款32位嵌入式RISC处理器内核。在 指令操作上采用5级流水线 . n取指:从指令Cache中读取指令。 n译码:对指令进行译码,识别出是对哪个寄存器进行操作并从通用寄 存器中读取操作数。 n执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在 ALU中计算出要访问的存储器地址。 n存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能( 通过数据Cache)。 n寄存器回写:将指令运算或操作结果写回到目标寄存器中。 29 TM29 ARM920 的5级流水线操作 30 TM30 2.3ARM处理器的工作模式 nARM技术的设计者将ARM处理器在应用中可 能产生的状态进行了分类,并针对同一类型 的异常状态设定了一个固定的入口点,当异 常产生时,程序会自动跳转到对应异常入口 处进行异常服务。 31 TM31 ARM处理器共有7种工作模式 n1用户模式:非特权模式,也就是正常程序 执行的模式,大部分任务在这种模式下执行 。在用户模式下,如果没异常发生,不允许 应用程序自行改变处理器的工作模式,如果 有异常发生,处理器会自动切换工作模式 n2FIQ模式:也称为快速中断模式,支持高 速数据传输和通道处理,当一个高优先级 (fast)中断产生时将会进入这种模式。 32 TM32 n3IRQ模式:也称为普通中断模式,:当一个 低优先级(normal)中断产生时将会进入这种 模式。在这模式下按中断的处理器方式又分 为向量中断和非向量中断两种。通常的中断 处理都在IRQ模式下进行。 n4SVC模式:称之为管理模式,它是一种操 作系统保护模式。当复位或软中断指令执行 时处理器将进入这种模式。 33 TM33 n5中止模式:当存取异常时将会进入这种模式, 用来处理存储器故障、实现虚拟存储或存储保护。 n6未定义指令异常模式:当执行未定义指令时会 进入这种模式,主要是用来处理未定义的指令陷阱 ,支持硬件协处理器的软件仿真,因为未定义指令 多发生在对协处理器的操作上。 n7系统模式:使用和User模式相同寄存器组的特 权模式,用来运行特权级的操作系统任务。 34 TM34 n在这7种工作模式中,除了用户模式以外,其 他6种处理器模式可以称为特权模式,在这些 模式下,程序可以访问所有的系统资源,也 可以任意地进行处理器模式的切换。 n在这6种特权模式中,除了系统模式外的其他 5种特权模式又称为异常模式,每种异常都对 应有自己的异常处理入口点。 35 TM35 2.4内部寄存器 nARM处理器共有37个寄存器,这些寄存器包 括以下两类寄存器。 n(1)31个通用寄存器:包括程序计数器PC等,这 些寄存器都是32位寄存器。 n(2)6个状态寄存器:状态寄存器也是32位的寄存 器,但是目前只使用了其中的14位。 36 TM36 r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 (sp) r14 (lr) r15 (pc) cpsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) spsr FIQIRQSVCUndefAbort User Mode r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 (sp) r14 (lr) r15 (pc) cpsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) spsr Current Visible Registers Banked out Registers FIQIRQSVCUndefAbort r0 r1 r2 r3 r4 r5 r6 r7 r15 (pc) cpsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) spsr Current Visible Registers Banked out Registers UserIRQSVCUndefAbort r8 r9 r10 r11 r12 r13 (sp) r14 (lr) FIQ ModeIRQ Mode r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r15 (pc) cpsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) spsr Current Visible Registers Banked out Registers UserFIQSVCUndefAbort r13 (sp) r14 (lr) Undef Mode r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r15 (pc) cpsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) spsr Current Visible Registers Banked out Registers UserFIQIRQSVCAbort r13 (sp) r14 (lr) SVC Mode r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r15 (pc) cpsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) spsr Current Visible Registers Banked out Registers UserFIQIRQUndefAbort r13 (sp) r14 (lr) Abort Mode r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r15 (pc) cpsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r13 (sp) r14 (lr) spsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) spsr 当前可见寄存器 备用寄存器 UserFIQIRQSVCUndef r13 (sp) r14 (lr) ARM 寄存器 37 TM37 寄存器组织概要 User mode r0-r7, r15, and cpsr r8 r9 r10 r11 r12 r13 (sp) r14 (lr) spsr FIQ r8 r9 r10 r11 r12 r13 (sp) r14 (lr) r15 (pc) cpsr r0 r1 r2 r3 r4 r5 r6 r7 User r13 (sp) r14 (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模式使用user模式寄存器集 38 TM38 ARM 寄存器 nARM 有37个32-Bits长的寄存器. n1 个用作PC( program counter) n1个用作CPSR(current program status register) n5个用作SPSR(saved program status registers) n30 个通用寄存器 39 TM39 n当前处理器的模式决定着哪组寄存器可操作. 任何 模式都可以存取: n相应的r0-r12子集 n相应的 r13 (the stack pointer, sp) and r14 (the link register, lr) n相应的 r15 ( the program coun

温馨提示

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

评论

0/150

提交评论