资源预览内容
第1页 / 共95页
第2页 / 共95页
第3页 / 共95页
第4页 / 共95页
第5页 / 共95页
第6页 / 共95页
第7页 / 共95页
第8页 / 共95页
第9页 / 共95页
第10页 / 共95页
亲,该文档总共95页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第1章 ARM体系结构,ARM7TDMI-S,1.1 简介,1.1.1 ARM ARM即Advanced RISC Machines的缩写。 ARM公司是知识产权(IP)供应商,成立于1990。 ARM公司本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。,1.1 简介,1.1.1 ARM 全球众多合作伙伴保证供应。ARM作为32位嵌入式RISC微处理器业界的领先供应商,商业模式的强大之处在于它在世界范围有超过100个合作伙伴包括半导体工业的著名公司,从而保证了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM处理器核的设计可以很快投入市场。,1.1 简介,1.1.1 ARM 功耗低、成本低、功能强; 16/32位双指令集; 全球众多合作伙伴保证供应。,1.1 简介,1.1.2 ARM的RISC结构特性 基于精简指令集计算机(RISC)原理 传统的CISC指令集计算机随着计算机的发展引入了各种各样的复杂指令,使得指令集和为实现这些指令的计算机体系结构越来越复杂,已经不堪重负。 经过大量的研究和分析,发现在CISC的指令集中,各种指令的使用频度相差悬殊。,1.1 简介,1.1.2 ARM的RISC结构特性 基于精简指令集计算机(RISC)原理 大概有20%的指令被反复使用,使用量约占整个程序的80%; 而有80%左右的指令则很少使用,其使用量约占整个程序的20%。 这就是所谓的20%80%规律。,1.1 简介,1.1.2 ARM的RISC结构特性 RISC指令集和相关的译码机制比复杂指令集计算机(CISC)的设计更简单。这种简单性得到了: 高指令吞吐率; 出色的实时中断响应; 体积小、性价比高的处理器宏单元。,1.1 简介,1.1.2 ARM的RISC结构特性 中央控制器没有采用微程序的方式。采用了硬接线PLA的方式。 减少复杂功能的指令,选用使用频度最高的指令; 简化处理器的结构,减少处理器的集成度; 采用32位定长指令。除了单机器周期执行1条指令外,每条指令具有多种操作功能,提高了指令使用效率。,1.1 简介,1.1.2 ARM的RISC结构特性 采用流水线结构,使每一条指令平均在一个机器周期内完成,以提高处理器的速度。 采用多寄存器的结构,使指令的操作尽可能在寄存器之间进行。 采用Load/Store结构,即只有Load/Store(加载存储)指令可与存储器打交道,减少访问存储器的频度,节约指令执行时间。 为了进一步提高指令和数据的存取速度,有的还增加指令快存ICache和数据快存DCache。,1.1 简介,1.1.2 ARM的RISC结构特性 例:下列叙述中,不属于RISC特点的是( ) A. 采用多周期指令,从而实现一条指令的多种功能 B. 采用大量寄存器,数据处理指令只对寄存器的内 容进行操作 C. 采用3级、5级或6级流水线,提高指令执行的并 行程度 D. 指令规整、对称、简单,基本寻址方式少,1.1 简介,1.1.3 ARM7TDMI T -支持16位压缩指令集Thumb; D -支持片上Debug; M -内嵌硬件乘法器; I -嵌入式ICE,支持片上断点和调试点。,1.1 简介,1.1.3 ARM7TDMI T: 新型ARM体系结构在32位指令集的基础上又定义了16位的Thumb指令集,可以使程序存储器更小。Thumb指令集比通常的8位和16位CISC/RISC处理器具有更好的代码密度,而芯片面积只增加6。,1.1 简介,1.1.3 ARM7TDMI I: 由于ICERT逻辑的支持,便于通过JTAG来仿真调试ARM体系结构芯片,从而可以省去价格昂贵的在线仿真器。 在处理器核中还集成了嵌入式跟踪宏单元(ETM), ETM可以用于监控内部总线,实时跟踪指令和数据的执行。,1.1 简介,1.1.4 ARM的流水线结构 1条指令的执行可分为若干个阶段: 取指,从存储器中取出指令; 译码,指令译码; 取操作数,假定从寄存器组中取操作 数;,1.1 简介,1.1.4 ARM的流水线结构 1条指令的执行可分为若干个阶段: 执行运算; 存储器访问,操作数与存储器有关; 结果写回寄存器。 各个阶段的操作相对都是独立的。因此,采用流水线的重叠技术可以大大提高系统性能。,1.1 简介,1.1.4 ARM的流水线结构 ARM体系结构的单周期3级流水线,1.1 简介,1.1.4 ARM的流水线结构 ARM体系结构的单周期3级流水线 例:设指令由取指、分析、执行3个子部件完成,每个子部件的工作周期为t,采用常规标量单流水线处理机。若连续执行10条指令,则共需要多少时间?,1.1 简介,1.1.5 ARM灵活和方便的接口 ARM体系结构具有协处理器接口,这样既可以使基本的ARM处理器内核尽可能小,又可以方便地扩充各种功能。ARM允许接16个协处理器。 ARM处理器核具有片上总线AMBA(Advanced Micro controller Bus Architecture)。,1.1 简介,1.1.5 ARM灵活和方便的接口 AMBA定义了3组总线: 先进高性能总线AHB(Advanced High performance Bus); 先进系统总线ASB(Advanced System Bus); 先进外围总线APB(Advanced Peripheral Bus)。,1.1 简介,1.1.5 ARM灵活和方便的接口 通过AMBA可以方便地扩充各种处理器及I/O,这样,可以把DSP、其他处理器和I/O接口(如UART、定时器和接口等)集成在一块芯片中。,1.1 简介,1.1.5 低电压低功耗的设计 CMOS电路的功耗关系: Pc = (1/2)fVDD2AgCLg 式中,f为时钟频率;VDD为工作电源电压;Ag是逻辑门在1个时钟周期内翻转的次数(通常为2);CLg为门的负载电容。,1.1 简介,1.1.5 低电压低功耗的设计 为降低功耗所采取的措施 降低电源电压,可工作在30V以下。 减少门的翻转次数,当某个功能电路不需要时,禁止门翻转。 减少门的数目,即降低芯片的集成度。 降低时钟频率(但也会损失系统的性能)。,1.2 ARM7TDMI-S的模块和内核框图,见书,1.3 体系结构直接支持的数据类型,Byte 字节,8位;(A31A0)32位地址均有效. Halfword 半字,16位(半字必须与2字节边界对准)。(A31A1,0)偶数地址,A0为0 ; Word 字,32位(字必须与4字节边界对准)。(A31A2,0,0)地址是4的倍数,A1,A0均为0.,1.4 处理器工作状态,ARM:这种状态下执行32位字对准的ARM指令;取指时程序计数器的PC.1和PC.0均为0 Thumb:这种状态下执行半字对准的16位Thumb指令。取指时程序计数器的PC.0为0,而使用PC.1位选择另一个半字。,1.4 处理器工作状态,ARM处理器可以在两种工作状态之间切换。ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。,1.4 处理器工作状态,工作状态切换 进入Thumb状态。当操作数寄存器的状态位(位0)为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。,1.4 处理器工作状态,工作状态切换 进入ARM状态。当操作数寄存器的状态位(位0)为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQ、FIQ、Reset、Undef、Abort和SWI)时,把PC放入异常模式链接寄存器中,从异常向量地址开始执行也可以进入ARM状态。,1.4 处理器工作状态,工作状态切换举例 ;从ARM状态转变为Thumb状态 LDR R0, =Lable + 1 BX R0 ;从Thumb状态转变为ARM状态 LDR R0, =Lable BX R0,1.5 处理器模式,异常模式,特权模式,1.5 处理器模式,模式的改变 在软件控制下可以改变模式; 外部中断或异常处理也可以引起模式发生改变。,1.5 处理器模式,大多数应用程序在用户模式下执行。 当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源; 用户模式下不能改变模式,除非异常(Exception)发生。这允许操作系统来控制系统资源的使用。,1.5 处理器模式,除用户模式外的其他6种模式称为特权模式。 特权模式服务于中断或异常; 特权模式可以访问被保护的资源; 特权模式下可以改变模式。,1.5 处理器模式,系统模式。 不能由任何其他模式进入该模式; 它与用户模式拥有完全相同的寄存器。然而它是特权模式,不受用户模式的限制。 它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。,1.5 处理器模式,除用户模式和系统模式之外的5种模式称作异常模式。 当特定的异常出现时,进入相应的模式。 每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。,1.6 内部寄存器,ARM7TDMI处理器总共有37个寄存器: 31个通用寄存器,包括程序计数器PC。这些寄存器是32位的。 6个状态寄存器。这些寄存器也是32位的,但只使用了其中的12位。 37个寄存器不能被同时看到,处理器状态和工作模式决定哪些寄存器编程者可见。,*白色表明用户或系统模式使用的一般寄存器已被异常模式特定的另一寄存器所替代,1.6 内部寄存器,通用寄存器 通用寄存器(R0R15)可分成3类: 不分组寄存器R0R7 分组寄存器R8R14 程序计数器R15,1.6 内部寄存器,不分组寄存器R0R7 R0R7是不分组寄存器,在所有的处理器模式下,它们每一个都访问同样的32位物理寄存器。它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。,1.6 内部寄存器,分组寄存器R8R14 R8R14是分组寄存器。它们每一个访问的物理寄存器取决于当前的处理器模式。每种处理器模式有专用的分组寄存器用于快速异常处理。 若要访问特定的物理寄存器而不依赖于当前的处理器模式,则要使用规定的名字。,1.6 内部寄存器,寄存器R8R12各有两组物理寄存器。一组为FIQ模式,另一组为除FIQ以外的其他模式。独立的FIQ模式允许快速中断处理。 第1组访问R8_fiqR12_fiq 第2组访问R8_usrR12_usr。,1.6 内部寄存器,寄存器R13、R14各有6个分组的物理寄存器。1个用于用户模式和系统模式,而其他5个分别用于5种异常模式。访问时需要指定其模式名。名字形式如下: R13_ R14_ 其中,可以从usr、svc、abt、und、irq和fiq 6种模式中选取一个。,1.6 内部寄存器,寄存器R13通常用作堆栈指针,称作SP。 每种异常模式都有自己的分组R13。 通常R13应当被初始化成指向异常模式分配的堆栈。 在异常处理程序的入口将用到的其他寄存器的值保存到堆栈中。返回时,重新将这些值加载到寄存器。这种异常处理方法保证了异常出现后不会导致执行程序的状态不可靠。,1.6 内部寄存器,寄存器R14用作子程序链接寄存器,也称为链接寄存器LR(Link Register)。 当执行带链接转移(BL)指令时, R14得到R15的拷贝。 在其他情况下,将R14当做通用寄存器。 类似地,当中断或异常出现时,或中断或异常程序执行BL指令时,相应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。,1.6 内部寄存器,应用提示: FIQ模式有7个分组的寄存器R8R14映射为R8_fiq R14_fiq。在ARM状态下,FIQ处理中使用R8R14没必要保存。 User、IRQ、Supervisor、Abort和Undefin
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号