ARM9体系结构(1)课件_第1页
ARM9体系结构(1)课件_第2页
ARM9体系结构(1)课件_第3页
ARM9体系结构(1)课件_第4页
ARM9体系结构(1)课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、ARM9体系结构ARM(advancedRISCMachines)公司成立于1990年,不生产芯片,只提供芯片设计技术,有合作公司生产各具特色芯片。

ARM处理器具有高性能、小体积、低功耗、紧凑代码度等特点。其RISC性能在业界领先,已成为移动通信设备、手持计算设备和多媒体数字设备等嵌入式系统的RISC标准。1.1ARM处理器系列主要有以下系列:·ARM7系列;·ARM9系列;·ARM9E系列;·ARM10E系列;·SecurCore系列;·Intel的StrongARM;·Intel的Xscale。ARM9系列:ARM9TDMI处理器核,其中包含了16位的Thumb指令集。ARM9TDMI中的后缀含义:T:支持16位的压缩指令集Thumb;D:支持在片调试,允许微处理器响应调试请求暂停;M:具有增强型乘法器,可生成全64位的结果;I:嵌入式ICE部件,可以提供片上断电和调试点的支持。ARM9系列主要包括:ARM920T、ARM922T、ARM940T等3种类型。

其中ARM920T由内核ARM9TDMI、哈佛结构高速缓存和内存管理单元(MMU)组成。

ARM920T结构:这是一种配置的S3C2410核心板:ARM920T微处理器的指令流水采用了典型的RISC五级流水线结构,将指令执行过程分为取指、译码、执行、访存和写回五个步骤。五级流水线结构采用分离指令cache和数据cache。MCS-51系列(Intel80年代初推出的8位单片机):

型号:8031、8032、8051、8052、8751等。片内含:4K/8KROM、128B/256BRAM、32条I/O引脚、111条指令、主频十几M到几十M不等,高的是33MHz.片外可扩展:数据存储器64KB、程序存储器64KB。

1.2ARM9工作模式ARM9微处理器核共支持7种工作模式,他们的名称及意义如表2-1所示。处理器模式模式符号意义用户模式Usr正常执行程序时的处理器模式系统模式Sys运行特权操作系统任务时的模式管理模式Svc操作系统的保护模式中止模式Abt指令或数据预取操作中止时的模式,该模式下实现虚拟存储器或存储器保护未定义模式Und当执行未定义的指令时进入该模式IRQ模式Irq响应普通中断时的处理模式FIQ模式Fiq响应快速中断时的处理模式1.3ARM9的存储组织结构ARM920T允许32位长的地址,它把存储器看成是0地址开始的字节的线性组合。即一个地址对应于一个存储字节,其范围是232个字节(8位二进制数)。大端存储和小端存储ARM9存储器系统的存储单元与地址的对应方式有两种:一种是大端存储系统,如图2-2所示;另一种是小端存储系统,如图2-3所示。小端存储模式是ARM9处理器的默认模式。ARM处理器使用协处理器15(CP15)的寄存器来控制cache、TCM和存储器管理。比如:可以通过CP15协处理器c1寄存器中V位(bit[13])控制中断向量。V和中断向量表的对应关系如下:V=0~0x00000000~0x0000001C

V=1~0xffff0000~0xffff001CARM9访问存储字时

其地址应该是字对准的,既字地址可以被4整除。假如:

某个字其地址是X(X能被4整除),那么,该字的4个字节对应的地址是X、X+1、X+2、X+3。I/O端口的访问方式

ARM9采用存储器映射的方法来实现I/O端口的访问。即为每个I/端口分配特定的存储器地址,但对这些地址进行读写时,实际完成的是对I/O端口的输入输出操作。内部寄存器ARM9处理器的内部总共有37个32位的寄存器,其中31个用作通用寄存器,6个用作状态寄存器。37个寄存器根据处理器的状态及其工作模式的不同而被安排成不同的组。程序代码运行时涉及的工作寄存器组是由RAM9微处理器的工作模式确定的。用户系统管理中止未定义中断快中断R0R0R0R0R0R0R0R1R1R1R1R1R1R1R2R2R2R2R2R2R2R3R3R3R3R3R3R3R4R4R4R4R4R4R4R5R5R5R5R5R5R5R6R6R6R6R6R6R6R7R7R7R7R7R7R7R8R8R8R8R8R8R8_fiq*R9R9R9R9R9R9R9_fiq*R10R10R10R10R10R10R10_fiq*R11R11R11R11R11R11R11_fiq*R12R12R12R12R12R12R12_fiq*R13R13R13_svc*R13_abt*R13_und*R13_irq*R13_fiq*R14R14R14_svc*R14_abt*R14_und*R14_irq*R14_fiq*R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)CPSRCPSRCPSRCPSRCPSRCPSRCPSR

SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq表1-2不同工作模式下的寄存器组R0~R15称为通用寄存器,其中,R0~R7是不分组的寄存器;R8~R14是根据工作模式进行分组的寄存器;R15是程序计数器,也是不分组的。R0~R7寄存器是不分组的,在所有的工作模式下,它们物理上是同一个寄存器。R8~R14是分组寄存器,它们中的每一个寄存器根据当前工作模式的不同,所访问的寄存器实际可能不是同一个物理寄存器。R13寄存器的作用通常是堆栈指针,又称为SP。每种异常模式都有对应于该模式下的R13物理寄存器。

R14寄存器可用作子程序链接寄存器,又称为LR(LinkRegister)。当ARM9处理器执行带链接的分支指令(如:BL指令)时,R14保存R15的值。当异常发生时,相应的寄存器分组R14_svc、R14_abt、R14_und、R14_irq和R14_fiq用来保存R15的返回值。

R15寄存器的功能是程序计数器,又称为PC。在ARM状态下,R15寄存器的[1:0]位为0b00,[31:2]位是PC的值;CPSR寄存器称为当前程序状态寄存器,又称为R16。在所有处理器模式下,CPSR都是同一个物理寄存器,它保存了程序运行的当前状态。在各种异常模式下,均有一个称为SPSR的寄存器用于保存进入异常模式前的程序状态,即当异常出现时,SPSR中保留CPSR的值。CPSR和SPSR均为32位的寄存器,其格式如下:NZCV

DNM(RAZ)IFTM4M3M2M1M0(1)条件码标志N(negative)、Z(zero)、C(carry)和V(overflow)位称为条件码标志,简称为标志,CPSR中的标志可用于检测以决定指令是否执行。(2)控制位程序状态寄存器的最低8位I、F、T和M[4:0]用做控制位,当异常出现时改变控制位,处理器在特权模式下也可用软件改变。I和F是中断禁止位。I置1时禁止IRQ中断;F置1时禁止FIQ中断。T位T=0时指示ARM执行;T=1时指示Thumb执行。模式位M0、M1、M2、M3和M4是模式位。这些位决定处理器的工作模式,如表1-3所示。表中未列出的模式位的组合是不可用的。表1-3模式位M[4:0]模式可访问的寄存器10000用户PC、R14~R0、CPSR10001FIQPC、R14_fiq~R8_fiq、R7~R0、CPSR、SPSR_fiq10010IRQPC、R14_irq、R13_irq、R12~R0、CPSR、SPSR_irq10011管理PC、R14_svc、R13_svc、R12~R0、CPSR、SPSR_svc10111中止PC、R14_abt、R13_abt、R12~R0、CPSR、SPSR_abt11011未定义PC、R14_und、R13_und、R12~R0、CPSR、SPSR_und11111系统PC、R14~R0、CPSR1.4ARM9的异常只要正常的程序流程被暂时停止,则异常发生。或者说,异常是由内部或外部产生一个引起处理器处理的事件。例如,外部中断或处理器执行一个未定义的指令都会引起异常。在处理异常之前,处理器状态必须保留,以便在异常处理程序完成后,原来的程序能够继续执行。同一时刻可能会出现多个异常。ARM支持7种类型的异常处理,如下1-4表。异常出现后处理器强制从异常类型所对应的固定存储器地址开始执行程序,这些存储器地址称为异常向量(exceptionvectors)。表1-4ARM9的异常处理模式异常类型模式正常地址高地址向量复位管理0x000000000xFFFF0000未定义指令未定义0x000000040xFFFF0004软件中断(SWI)管理0x000000080xFFFF0008中止0x0000000C0xFFFF000C数据中止中止0x000000100xFFFF0010IRQ(中断)IRQ0x000000180xFFFF0018FIQ(快速中断)FIQ0x0000001C0xFFFF001C预取中止(取指令存储器中止)(1)复位:处理器上一旦有复位信号输入,ARM处理器立刻停止执行当前指令,复位后,ARM处理器在禁止中断的管理模式下,从地址0x00000000或0xFFFF0000开始执行程序。(2)未定义指令异常:当ARM处理器执行协处理器指令时,它必须等待任一外部协处理器应答后,才能真正执行这条指令。若协处理器没有响应,就会出现未定义指令异常。另外,试图执行未定义的指令,也会出现未定义指令异常。(3)软件中断异常:软件中断异常指令SWI进入管理模式,以请求特定的管理函数(4)预取中止:存储器系统发出存储器中止(abort)信号,响应取指激活的中止标记所取的指令无效,若处理器试图执行无效指令,则产生预取中止异常;若指令未执行,则不发生预取中止。(5)数据中止:存储器系统发出存储器中止信号,响应数据访问激活中止标记的数据无效。(6)IRQ(中断请求):通过处理器上的IRQ输入引脚,由外部产生IRQ异常。IRQ异常的优先级比FIQ异常的低。当进入FIQ处理时,会屏蔽掉IRQ异常。(7)FIQ(快速中断请求):通过处理器上的FIQ输入引脚,由外部产生FIQ异常。异常的优先级优先级异常优先级异常1(最高)复位4IRQ2数据中止5预取中止3FIQ6(最低)未定义指令,SWI异常向量异常向量是异常服务程序的入口,在某些ARM的应用中,允许异常向量的位置由32位地址空间低端的正常位置,既0x00000000~0x0000001C,移到地址空间高端的另一地址范围0xFFFF0000~0xFFFF001C。这些改变后的地址位置称为高端向量。由ImplementationDefined决定是否支持高端向量。如果支持,则在输入硬件配置时,选择是使用正常向量还是高端向量。异常的进入当处理一个异常时,ARM9完成以下动作:(1)将下一条指令的地址保存在相应的LR寄存器中。如果异常是从ARM状态进入,则保存在LR中的是下一条指令的地址。如果异常是从Thumb状态进入,则保存在LR中的是当前PC的偏移量。(2)将CPSR复制到相应的SPSR中。(3)迫使CPSR模式位M[4:0]的值设置成对应的异常模式值。(4)迫使PC从相关的异常向量取下一条指令。(5)也可以设置中断禁止位来阻止其

温馨提示

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

评论

0/150

提交评论