您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > ARM7体系结构介绍
ARM7体系结构介绍姓名:猪俞坑专业:通信工程班级:二班学号:20101321142012年6月23日ARM7体系结构介绍ARM体系结构ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:1、大的、统一的寄存器文件;2、装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;3、简单的寻址模式;4、统一和固定长度的指令域,简化了指令的译码一、ARM体系结构的特点:1、每条数据处理指令都对算术逻辑单元和移位器控制,以实现ALU和移位器的最大利用;2、地址自动增加和减少寻址模式,优化程序循环;3、多寄存器装载和存储指令实现最大数据吞吐量;4、所有指令的条件执行实现最快速的代码执行ARM处理器核简介——ARM7该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T。该系列处理器提供Thumb16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足。ARM7TDMI的后缀意义为:ARM7TDMI,7支持高密度16位的Thumb指令集;T支持片上调试;D支持64位乘法;M支持EmbededICE观察硬件;ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。三级流水线:ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指。令从存储器中取出。二、存储器访问ARM7TDMI处理器使用了冯·诺依曼(VonNeumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。数据可以是字节(8位)、半字(16位)或者字(32位)。计算机结构说明:“冯·诺依曼”结构:把代码作为一种特殊的数据来操作,指令总线和数据总线及其存储区域是统一的;“哈佛”结构:指令总线和数据总线及其存储区是分开、独立的。体系结构直接支持的数据类型ARM处理器支持下列数据类型:字节8位;半字16位(必须分配为占用两个字节)字;32为(必须分配为占用4各字节)注意:V4版本之后的ARM结构都支持这3种结构(包括V4版本),而以前的版本只支持字节和字;当数据类型定义为无符号型时,N位数据值使用正常的二进制格式表示范围为0~2N-1的非负整数;当数据类型定义为有符号型时,N位数据值使用2的补码格式表示范围为-2N-1~+2N-1-1的整数;所有数据操作,例如ADD,都以字为单位;装载和保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符号扩展;ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)。ARM体系中的数据的存储ARM处理器可以对32位的数据字进行操作,也可以对16位的数据半字进行操作,也可以对8位的字节进行操作。对于ARM这样的结构,每一个数据(或指令代码)要占据4个存储单元(32位)或两个存储单元(16位)。这些存储单元是怎样排列的?这就产生两种存储格是:小端(littleendian),大端(bigendian).大端存储格式:数据0x11335577小端存储格式:数据0x11335577ARM处理器的指令存储下面一段ARM程序,首地址是0x8004,小端格式0x8004[0xe3a00018]movr0,#0x180x8008[0xe59f1000]ldrr1,=0x200260x800c[0xef123456]swi0x123456可以推论出,可以被4整除的地址都是指令的存储地址,而其它地址例如0x200B,0x2017等都不是正确的指令地址。同样,Thumb指令存储的正确地址应该能被2整除。对数据存储来说,首先要找到正确的地址,在对32位数据操作时,地址末两位(1:0)都是零;在对16位数据操作时,地址末位(0)是零。处理器状态ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态:ARM状态:32位,这种状态下执行的是字方式的ARM指令;Thumb状态:16位,这种状态下执行半字方式的Thumb指令。注意:两个状态之间的切换并不影响处理器模式或寄存器内容。使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换,程序如下所示。Thumb技术介绍Thumb是ARM体系结构的T变种,是一种新的指令体系,它是ARM技术的一大特色。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度。ARM7TDMI是第一个支持Thumb的核,支持Thumb的核仅仅是ARM体系结构的一种发展的扩展,所以编译器既可以编译Thumb代码,又可以编译ARM代码支持Thumb的ARM体系结构的处理器状态可以方便的切换到Thumb状态,并在该状态下运行,在该状态下指令集是16位的。与ARM指令集相比.Thumb指令集具有以下局限完成相同的操作,Thumb指令通常需要更多的指令,因此在对系统运行时间要求苛刻的应用场合ARM指令集更为适合;Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,还是需要使用ARM指令,这种限制决定了Thumb指令需要和ARM指令配合使用。四、处理器模式简介:ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式,如下表所示。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。内部寄存器简介:在ARM7TDMI处理器内部有37个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。ARM状态和Thumb状态之间寄存器的关系Thumb状态R0~R7与ARM状态R0~R7相同;Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同;Thumb状态SP映射到ARM状态R13;Thumb状态LR映射到ARM状态R14;Thumb状态PC映射到ARM状态PC(R15)。程序状态寄存器简介:ARM7TDMI内核包含1个CPSR和5个供异常处理程序使用的SPSR。CPSR反映了当前处理器的状态,其包含:4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V));2个中断禁止位,分别控制一种类型的中断;5个对当前处理器模式进行编码的位;1个用于指示当前执行指令(ARM还是Thumb)的位。每个异常模式还带有一个程序状态保存寄存器(SPSR),它用于保存在异常事件发生之前的CPSR。CPSR和SPSR通过特殊指令进行访问。注意:如果通过程序修改CPSR寄存器中的模式位进入异常模式,那么硬件将不会把CPSR保存至SPSR中。五、条件代码标志大多数“数值处理指令”可以选择是否影响条件代码标志位。通常如果指令带S后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志。N、Z、C和V位都是条件代码标志。通过算术操作、逻辑操作、MSR或者LDM指令可以对这些位进行设置。所有ARM指令都可按条件来执行,而Thumb指令中只有分支指令可按条件执行。各标志位的含义如下:N运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;Z指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0;C当进行加法运算(包括CMN指令),并且最高位产生进位时C=1,否则C=0。当进行减法运算(包括CMP指令),并且最高位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,其它指令C通常不变;V当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。控制位CPSR的最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。它们分别是:中断禁止位;T位;模式位。中断禁止位包括I和F位:当I位置位时,IRQ中断被禁止;当F位置位时,FIQ中断被禁止。T位反映了正在操作的状态:当T位置位时,处理器正在Thumb状态下运行;当T位清零时,处理器正在ARM状态下运行。模式位包括M4、M3、M2、M1和M0,这些位决定处理器的操作模式。注意:不是所有模式位的组合都定义了有效的处理器模式,如果使用了错误的设置,将引起一个无法恢复的错误。保留位CPSR中的保留位被保留将来使用。为了提高程序的可移植性,当改变CPSR标志和控制位时,请不要改变这些保留位。另外,请确保您程序的运行不受保留位的值影响,因为将来的处理器可能会将这些位设置为1或者0。ARM的异常中断在ARM体系结构中,异常中断用来处理软件中断、未定义指令陷阱(它不是真正的“意外”事件)及系统复位功能和外部事件,这些“不正常”事件都被划归“异常”,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。ARM的异常中断响应过程;从异常中断处理程序中返回;异常中断向量表;异常中断的优先级ARM的异常中断响应过程:将CPSR的内容保存到将要执行的异常中断对应的SPSR中(硬件);设置当前状态寄存器CPSR中的相应位(硬件);将引起异常指令的下一条指令的地址保存到新的异常工作模式的R14(硬件);给程序计数器(PC)强制赋值(硬件);每个异常模式对应有两个寄存器R13_mode、R14_mode分别保存相应模式下的堆栈指针、返回地址;堆栈指针可用来定义一个存储区域保存其它用户寄存器,这样异常处理程序就可以使用这些寄存器(软件)。FIQ模式还有额外的专用寄存器R8_fiq~R12_fiq,使用这些寄存器可以加快快速中断的处理速度。从异常中断处理程序中返回:从异常中断处理程序中返回时,需要执行以下四个基本操作:所有修改过的用户寄存器必须从处理程序的保护堆栈中恢复,即出栈(软件);将SPSR_mode寄存器内容复制到CPSR中,即恢复被中断的程序工作状态(软件);根据异常类型将PC变回到用户指令流中相应指令处(软件);最后清除CPSR中的中断禁止标志位I/F(软件)。异常中断向量表中断向量表中指定了各异常中断与其处理程序的对应关系,每个异常中断对应的中断向量表的4个字节的空间中存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令(一条ARM指令),存储器的前8个字中除了地址0x00000014之外,全部被用作异常矢量地址异常中断的含义:复位:复位引脚有效,系统复位;未定义:未定义的指令;软中断:用户自定义的指令,可以由用户模式进入特权模式。;取指中止:在取指时发生指令不存在或取制无效。;数据中止:在取数据时发生数据不存在或数据无效。;IRQ:普通中断,IRQ引脚引起的中断;FIQ:快速中断,FIQ引脚引起的中断异常中断的优先级当几个异常中断同时发生时,在ARM中通过给各异常中
本文标题:ARM7体系结构介绍
链接地址:https://www.777doc.com/doc-3275072 .html