资源预览内容
第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
第9页 / 共44页
第10页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
大连理工大学软件学院 邱铁 办公楼413 Tel:87571521 E_mail: 参考教材:ARM嵌入式系统结构与编程 清华大学出版社2009年3月出版,ARM嵌入式系统结构与编程,第2章 ARM技术与ARM体系结构,本章主要介绍ARM处理器的产生及版本发展历史,以及各个版本的典型处理器及应用情况和性能分析;ARM处理器的内核调试结构,重点分析了ARM7TDMI-S、ARM9TDMI两种结构;ARM处理器的工作模式及寄存器组织结构,分析了在什么情况下进入到相应的工作模式;ARM处理器支持的内存数据存储格式,分为大端格式和小端格式;最后介绍了ARM7的三级流水线运行机制和ARM9的五级流水线运行机制。,内容提要,21 ARM体系结构版本与内核 22 ARM内核模块 23 ARM处理器的工作模式 24 ARM内部寄存器 25 ARM异常处理 26 存储方式与存储器映射机制 27 ARM流水线技术分析,21 ARM体系结构版本与内核,第一片ARM处理器是1983年10月到1985年4月 间在位于英国剑桥的Acorn Computer公司开发 1990年,ARM公司成立 20世纪90年代, ARM快速进入世界市场 1995年 StrongARM 问世 XScale是下一代StrongARM芯片的发展基础 ARM10TDMI是ARM处理器核中的高端产品 ARM11是ARM家族中性能最强的一个系列,211ARM体系结构版本,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,Jazelle 支持 Java字节码,6,ARM11,SIMD,SISIMDMD,S,SIMD,7,ARM Cotex,第一阶段: 版本V1、V2、V3这3个早期ARM版本功能单一,没有大范围占领市场,主要是处于开发和实验阶段 第二阶段: 从ARM4开始,ARM体系结构处于完善和提高阶段,版本4与以前版本相比增加了下列指令: 有符号、无符号的半字和有符号字节的load和store指令。 增加了T变种,处理器可以工作于Thumb状态,在该状态下的指令集是16位的Thumb指令集。 增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。,版本5主要由两个变型版本5T、5TE组成 相比与版本4,版本5的指令集有了如下的变化: 提高了T变种中ARM/Thumb混合使用的效率。 增加前导零记数(CLZ)指令,该指令可使整数除法和中断优先级排队操作更为有效; 增加了BKPT(软件断点)指令; 为协处理器设计提供了更多的可供选择的指令; 更加严格地定义了乘法指令对条件码标志位的影响。,ARM体系版本6是2001年发布的。新架构v6在降低耗电量的同时还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD功能,将语音及图像的处理功能提高到了原机型的4倍。ARM体系版本6首先在2002年春季发布的ARM11处理器中使用。,2.1.2 ARM体系结构的基本版本命名规则,ARMxyzTDMIEJF-S 大括号内的字母是可选的,各个字母的含义如下: x系列号,例如ARM7中的“7”、ARM9中的“9”; y内部存储管理/保护单元,例如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可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以被编译成一种易于EDA工具使用的形式。,ARM体系结构的基本版本,2.2ARM内核模块,ARM处理器一般都带有嵌入式追踪宏单元ETM(Embedded Trace Macro),它是ARM公司自己推出的调试工具,ARM调试结构,221ARM7TDMI-S内核结构,ARM7TDMI-S是一款32位嵌入式RISC处理器。它作为优化的硬核是性能、功耗和面积特性的最佳组合。使用ARM7TDMI核使得系统设计师能够设计出小尺寸、低功耗以及高性能的嵌入式设备。,ARM7TDMI,ARM7TDMI 是基于 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,DIN31: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,向量,0 x1C,0 x00,地址 寄存器,特 点: 32/16 位RISC架构(ARM v4T)。 具有最高性能和灵活性的32位ARM指令集。 代码紧凑的16位Thumb指令集。 统一的总线接口,指令与数据都在32位总线上传输。 3级流水线。 32位算术逻辑单元(ALU)。 极小的核心尺寸以及低功耗。 完全的静态操作。 协处理器接口。 扩展的调试设备:,T标志位的作用,16,16,32-bit data,16,A1,Mux,Thumb 指令 解码,Mux,Mux,T标志,ARM 指令 解码,阶段 1,阶段 2,D31:0,0,1,1,0,Fetch,Decode,Execute,带Cache的ARM7TDMI,ARM710T 8K 统一的 cache 完整的内存管理单元(mmu),支持虚拟地址和存储器保护 写缓冲,ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲,ARM7TDMI 内核,地址,地址,数据读,AMBA接口,写 缓冲,MMU,数据写,数据,ARM7xxT,控制 逻辑,Cache,AMBA 总线 接口,JTAG 和非 AMBA 信号,CP15,ARM7系列内核采用了三条流水线的内核结构,三级流水线分别为取指(Fetch)、译码(Decode)、执行(Execute),取指:将指令从存储器中取出,放入指令Cache中。 译码:由译码逻辑单元完成,是将在上一步指令Cache中的指令进行解释,告诉CPU将如何操作。 执行:这阶段包括移位操作、读通用寄存器内容、输出结果、写通用寄存器等。,需要注意的是,PC指向正被取指的指令而不是正在执行的指令:,详细信息见教材ARM嵌入式系统结构与编程第16页,222 ARM9内核结构,ARM920是一款32位嵌入式RISC处理器内核。在指令操作上采用5级流水线 . 取指:从指令Cache中读取指令。 译码:对指令进行译码,识别出是对哪个寄存器进行操作并从通用寄存器中读取操作数。 执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在ALU中计算出要访问的存储器地址。 存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据Cache)。 寄存器回写:将指令运算或操作结果写回到目标寄存器中。,ARM920 的5级流水线操作,2.3ARM处理器的工作模式,ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自动跳转到对应异常入口处进行异常服务。,ARM处理器共有7种工作模式,1用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式 2FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先级(fast)中断产生时将会进入这种模式。,3IRQ模式:也称为普通中断模式,:当一个低优先级(normal)中断产生时将会进入这种模式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中断处理都在IRQ模式下进行。 4SVC模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指令执行时处理器将进入这种模式。,5中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。 6未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。 7系统模式:使用和User模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。,在这7种工作模式中,除了用户模式以外,其他6种处理器模式可以称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。 在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式,每种异常都对应有自己的异常处理入口点。,2.4内部寄存器,ARM处理器共有37个寄存器,这些寄存器包括以下两类寄存器。 (1)31个通用寄存器:包括程序计数器PC等,这些寄存器都是32位寄存器。 (2)6个状态寄存器:状态寄存器也是32位的寄存器,但是目前只使用了其中的14位。,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,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号