您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第2章ARM微处理器硬件结构2
第二章ARM微处理器硬件结构山东大学精品课程嵌入式系统原理与接口技术主编:贾智平张瑞华清华大学出版社ARM处理器工作状态•ARM和Thumb状态ARM指令系统(V4版以后具有Thumb指令集):–32位ARM指令集:固定的32位指令,Load/StoreRISC特征,3地址格式。–16位Thumb指令集:是ARM指令集的子集,按16位指令重新编码,固定的16位指令,Load/StoreRISC特征,2地址格式。2注意:两个状态之间的切换并不影响处理器模式或寄存器内容。处理器状态切换3使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换,程序如下所示。;从Arm状态切换到Thumb状态LDRR0,=Lable+1BXR0;从Thumb状态切换到ARM状态LDRR0,=LableBXR0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号流水线技术•流水线(Pipeline)技术:若干个指令可以并行执行–提高了CPU的运行效率–内部信息流要求通畅流动(pc-8)add(pc-4)sub(pc)cmp4译码取指执行add译码取指执行sub译码取指执行cmp时间3周期指令的ARM3级流水线1T2T3T流水线技术•为增加处理器指令流的速度,ARM7系列使用3级流水线–允许多个操作同时处理,比逐条指令执行要快。•PC指向正被取指的指令,而非正在执行的指令5FetchDecodeExecute从存储器中读取指令cmp解码指令sub寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank)addPCPCPC-4PC-2PC-8PC-4ARMThumb当前pc所指向的指令已完成取指的指令已完成解码的指令流水线技术•在ARM7的3级流水线结构中流水线易出现间断,这必然降低了流水线的效率,为了提高处理器的性能,必然要考虑如何优化处理器的组织结构。(1)缩短程序执行时间:提高时钟频率fclk减少每条指令的平均时钟周期数CPI6Tprog:程序执行时间Ninst:指令条数CPI:指令平均时钟周期数FCLK:时钟频率流水线技术(2)解决流水线相关:结构相关数据相关控制相关7如果某些指令在流水线中重叠执行时,产生资源冲突,则称该流水线存在结构相关。解决:资源重复(Cache分离、ALU中单独的地址计算加法器)写后读”、“写后写”“读后写”解决:专用通路提高写入寄存器的速度,流水线互锁技术硬件会停止相关指令的执行。当流水线遇到分支指令和其他会改变PC值的指令时,取指取决于指令执行条件,可能需重新取指,致使流水线停顿。解决:引入延时分支(硬件加入空操作指令)、尽早计算转移成功时的目标地址。addr0,r1,r2movr2,r0addr0,r1,r2addr0,r3,r5movr2,r0addr0,r1,r2多周期ARM指令的3级流水线操作(结构相关)8fetchADDdecodeexcute123指令时间fetchSTRdecodecalc:addrdataxferfetchADDdecodeexcutefetchADDdecodeexcutefetchADDdecodeexcute45STR计算存储器地址与ADD译码,都为下一周期产生数据传送控制信号,不能同步进行。Dataxfer-excute占用数据路径两条指令不能同时译码。取指与存数冲突若流水线产生资源冲突,则称该流水线存在结构相关。如,取指存数冲突,2条指令同时占用译码级等。1T2T3T4T5T6T7T8T流水线技术•超标量(Superscalar)执行:超标量CPU采用多条流水线结构9执行1取指指令译码2译码1执行2执行1取指译码2译码1执行2流水线1流水线2数据回写流水线技术ARM各个系列的流水线:10预取(Fetch)译码(Decode)执行(Execute)预取(Fetch)译码(Decode)执行(Execute)访存(Memory)写入(Write)预取(Fetch)译码(Decode)发送(Issue)预取(Fetch)预取(Fetch)执行(Execute)访存(Memory)写入(Write)译码(Decode)发送(Issue)执行(Execute)转换(Snny)访存(Memory)写入(Write)ARM7ARM9ARM10ARM11ARM7硬件结构11ARM7TDMI(ARM核)11类指令:1、数据处理2、跳转3、load/store4、程序状态寄存器传送5、协处理器6、异常中断ARM7内核硬件结构12时钟中断总线控制电源调试协处理器接口存储管理接口存储器处理器状态处理器模式边界扫描控制信号边界扫描1、时钟mclk系统时钟wait等待信号,为低时arm7等待。2、中断信号nIRQ外部中断nFIQ快速中断3、总线控制复位、总线使能、字节/字选择等4、存储器信号地址线A[31:0],内部数据线DoutDin[31:0]、Din[31:0]和DDin[31:0],读写控制nRW5、边界扫描通过边界扫描寄存器(位于芯片管脚附近)观察和控制调试状态下的处理器芯片内部状态。硬件结构13ARM7硬件结构14第2章ARM微处理器硬件结构1512计算机体系结构ARM处理器结构和技术特征ARM处理器模式及内部寄存器34ARM存储系统机制处理器7种工作模式16处理器模式说明备注用户(usr)正常程序执行模式不能直接切换到其它模式系统(sys)运行操作系统的特权任务与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)用于高速数据传输及通道处理FIQ异常响应时且CPSR的F=0进入进入此模式中断(irq)用于通用中断处理IRQ异常响应时且CPSR的I=0进入进入此模式管理(svc)操作系统保护模式系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式用户程序运行在用户模式。此模式下不能访问受操作系统保护的资源,除异常发生切换到异常模式外,不能以软件切换到其它模式。Arm处理器工作于7种模式,不同模式所能访问的系统资源不同,由此提供了对系统资源的有效保护并提高了异常处理的速度。系统启动过程:引导程序把系统引导至ram区,进入管理模式,设置各模式堆栈,进入用户模式。若发生异常,进入异常模式,异常处理结束后返回用户模式。系统模式可以访问系统资源。异常模式下通过软件进入系统模式可以访问系统资源。Arm处理器欲访问的数据或指令的地址不存在,进入中止模式。处理器模式特权模式17处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。用指令向CPSR的M[4:0]字段写入特定的值,以进入相应的工作模式.未定义(und)中止(abt)管理(svc)中断(irq)快中断(fiq)系统(sys)处理器模式•异常模式18处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式未定义(und)中止(abt)管理(svc)中断(irq)快中断(fiq)这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。处理器模式•用户和系统模式19处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式这两种模式都不能由异常进入,都使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。系统(sys)用户(usr)通用寄存器寄存器•简介在ARM7TDMI处理器内部有37个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。20ARM状态各模式下的寄存器21寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiq*R9(SB,v6)R9R9_fiq*R10(SL,v7)R10R10_fiq*R11(FP,v8)R11R11_fiq*R12(IP)R12R12_fiq*R13(SP)R13R13_svc*R13_abt*R13_und*R13_irq*R13_fiq*R14(LR)R14R14_svc*R14_abt*R14_und*R14_irq*R14_fiq*R15(PC)R15状态寄存器R16(CPSR)CPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态各模式下的寄存器22寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqSPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR
本文标题:第2章ARM微处理器硬件结构2
链接地址:https://www.777doc.com/doc-3620180 .html