版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统与应用 第第2 2章章 ARM ARM处理器基础处理器基础2022-7-222022-7-2嵌入式系统与应用 教学要点1. ARM简介简介2. ARM处理器的分类处理器的分类3. 流水线(流水线(pipeline)4. 模式(模式(model)和寄存器)和寄存器5. 异常和异常向量表异常和异常向量表6. 存储和存储和I/O7. AHBA总线总线8. ARM指令系统指令系统32022-7-2嵌入式系统与应用 1 ARM1 ARM简介简介42022-7-2嵌入式系统与应用 1.1 ARM公司和公司和ARM处理器处理器1)ARM是一个是一个CPU内核。内核。ARM公司自己并不生产或销售芯片
2、,公司自己并不生产或销售芯片,它采用技术授权模式,通过出售芯片技术授权,收取授权费和它采用技术授权模式,通过出售芯片技术授权,收取授权费和技术转让费。技术转让费。2)基于)基于ARM内核的处理器是目前消费类电内核的处理器是目前消费类电子市场中占有量第一的处理器,尤其是子市场中占有量第一的处理器,尤其是手机行业。手机行业。3)ARM是是“Advanced RISC Machine”的缩写,最早的的缩写,最早的ARM处理器诞生于处理器诞生于80年代的英国。年代的英国。52022-7-2嵌入式系统与应用 知识产权:产品、规划和路线图知识产权:产品、规划和路线图qCPUs从从ARMv4T 到到ARMv
3、6 结构体系结构体系qARM 系统级系统级 IP 和设计方法和设计方法AMBAReference methodologiesq软件软件 IPMedia engines - Move, Swerve 3D q先进技术先进技术 Java, security, multiprocessorq软件开发工具软件开发工具RealView - 开发工具和平台开发工具和平台62022-7-2嵌入式系统与应用 ARM处理器的使用量处理器的使用量ARM 200372022-7-2嵌入式系统与应用 1.2 ARM处理器的特点处理器的特点q支持支持CACHE和和MMUq冯冯诺依曼体系结构诺依曼体系结构/哈佛体系结构哈
4、佛体系结构qRISC指令集指令集固定的固定的32位指令位指令Load/Store体系结构体系结构大多数指令单周期完成大多数指令单周期完成q流水线执行流水线执行qThumbDSPjazeller功能扩展功能扩展q低功耗低功耗82022-7-2嵌入式系统与应用 支持支持CACHE和和MMUq为什么采用高速缓存(为什么采用高速缓存(Cache)?)?微处理器的时钟频率比内存速度提高快得多,高速缓微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。存可以提高内存的平均性能。q高速缓存的工作原理:高速缓存的工作原理:高速缓存是一种小型、快速的存储器,它保存部分主高速缓存是一种小型、快
5、速的存储器,它保存部分主存内容的拷贝。存内容的拷贝。 CPU高速缓存控制器CACHE主存数据高速数据地址写缓冲器块数据92022-7-2嵌入式系统与应用 qMMU(Memory Management Unit)虚实地址变换虚实地址变换内存地址访问保护内存地址访问保护支持支持CACHE和和MMU102022-7-2嵌入式系统与应用 指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0指令指令1指令指令2指令指令3指令指令4数据数据数据数据0数据数据1数据数据2ARM7 冯冯诺依曼体系结构模型诺依曼体系结构模型112022-7-2嵌入式
6、系统与应用 1)数据与指令都存储在同一存储区中,取指令与取数据利)数据与指令都存储在同一存储区中,取指令与取数据利用同一数据总线。用同一数据总线。2)被早期大多数计算机所采用)被早期大多数计算机所采用3)ARM7冯诺依曼体系冯诺依曼体系结构简单,但速度较慢。取指不能同时取数据。结构简单,但速度较慢。取指不能同时取数据。冯冯诺依曼体系结构模型诺依曼体系结构模型122022-7-2嵌入式系统与应用 指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地
7、址地址数据数据ARM9 +哈佛体系结构模型哈佛体系结构模型132022-7-2嵌入式系统与应用 1)程序存储器与数据存储器分开)程序存储器与数据存储器分开2)提供了较大的存储器带宽,各自有自己的总线)提供了较大的存储器带宽,各自有自己的总线3)适合于数字信号处理)适合于数字信号处理4)大多数)大多数DSP都是哈佛结构都是哈佛结构5)ARM9是哈佛结构是哈佛结构取指和取数在同一周期进行,提高速度。取指和取数在同一周期进行,提高速度。哈佛体系结构模型哈佛体系结构模型142022-7-2嵌入式系统与应用 RISC与与CISCq RISC和和CISC是目前设计制造微处理器的两种典型技术,虽然它们都是目
8、前设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,它们主要有:因此,在很多方面差异很大,它们主要有:q CISC:复杂指令集(:复杂指令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式具有大量的指令和寻址方式 8/2原则:原则:80%的程序只使用的程序只使用20%的指令的指令 大多数程序只使
9、用少量的指令就能够运行大多数程序只使用少量的指令就能够运行 CISC CPU 包含有丰富的单元电路,因而功能强、面积大、功耗大包含有丰富的单元电路,因而功能强、面积大、功耗大q RISC:精简指令集(:精简指令集(Reduced Instruction Set Computer) 在通道中只包含最有用的指令在通道中只包含最有用的指令 确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令 使使CPU硬件结构设计变得更为简单硬件结构设计变得更为简单 RISC CPU包含较少的单元电路,因而面积小、功耗低包含较少的单元电路,因而面积小、功耗低152022-7-2嵌入式系统与应用 RISC与与
10、CISCqCISCIFIDREGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道qRISC162022-7-2嵌入式系统与应用 流水线操作流水线操作q流水线技术:几个指令可以并行执行流水线技术:几个指令可以并行执行提高了提高了CPU的运行效率的运行效率内部信息流要求通畅流动内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp172022-7-2嵌入式系统与应用 ARM RISC体系结构体系结构182022-7-2嵌入式系统与应用 1.4 命名的含义命名的含义标志标志含义含义说明说明T支持支持Thumb指令集指令集Thum
11、b指令集版本指令集版本1:ARMv4TThumb指令集版本指令集版本2:ARMv5TThumb-2:ARMv6TD片上调试片上调试M支持长乘法支持长乘法32位乘位乘32位得到位得到64位,位,32位的乘加得到位的乘加得到64位位IEmbedded ICEEDSP指令指令增加了增加了DSP算法处理器指令:算法处理器指令:16位乘加指令,饱和的位乘加指令,饱和的带符号数的加减法,双字数据操作,带符号数的加减法,双字数据操作,cache预取指令预取指令JJava加速器加速器Jazelle提高提高java代码的运行速度代码的运行速度S可综合可综合提供提供VHDL或或Verilog语言设计文件语言设计文
12、件192022-7-2嵌入式系统与应用 ARM processors nameFamily number 7: ARM7 9: ARM910: ARM1011: ARM11Memory system 2: Cache, MMU, Process ID 4: Cache, MPU 6: Write buffer, no cacheMemory size 0: Cache size (4-128KB) 2: Reduced cache size 6: TCMSynthesizableExtensions E: DSP extension J: Jazelle extension T: Thumb
13、support202022-7-2嵌入式系统与应用 2 ARM2 ARM处理器的分类处理器的分类q基于处理器内核的分类基于处理器内核的分类ARM7T,ARM7E,ARM9,ARM9E,ARM10T,ARM10E,ARM11q基于指令集体系结构的分类基于指令集体系结构的分类v4T,v5T,v5TE,v5TEJ,v6212022-7-2嵌入式系统与应用 2.1 ARM Core(ARM核)核)q 处理器核处理器核/整数核整数核(Processor Core/Integer Core):ARM7TDMI, ARM9TDMI, ARM9E-S, ARM10TDMI,ARM10E等。等。q ARM CP
14、U核核(ARM CPU Cores):ARM710T/720T/740T, ARM920T/940T, ARM946E-S, ARM966E-S, ARM1020E等。等。q 基于基于ARM Core CPU的应用处理器,比如:的应用处理器,比如:Intel的的PXA25x,Philip的的lpc22xx系列,系列, Samsung的的S3C44B0等。等。222022-7-2嵌入式系统与应用 ARM7T和和ARM7E FamilyUnified Cache内存管理内存管理流水线级别流水线级别ThumbDSPJazelleARM7TDMI无无无无3有有无无无无ARM7TDMI-S无无无无3有有
15、无无无无ARM710T/720T8kMMU3有有无无无无ARM740T8k或或4kProtection Unit3有有无无无无ARM7EJ-S无无无无3有有有有有有232022-7-2嵌入式系统与应用 ARM7系列的升级系列的升级Embedded Trace Macrocell- ETM242022-7-2嵌入式系统与应用 ARM9 FamilyCache内存管理内存管理流水线流水线级别级别ThumbDSPJazelleARM9TDMI无无无无5有有无无无无ARM920T16K/16kMMU5有有无无无无ARM922T8k/8kMMU5有有无无无无ARM940T4k/4kProtection
16、Unit5有有无无无无252022-7-2嵌入式系统与应用 ARM9系列的升级系列的升级262022-7-2嵌入式系统与应用 ARM9E FamilyCache内存管理内存管理流水线级别流水线级别ThumbDSPJazelleARM9E-S无无无无5有有有有无无ARM946E-S4k-1M/4k-1MProtection Unit5有有有有无无ARM966E-S无无无无5有有有有无无ARM968E-S无无无无5有有有有无无ARM9EJ-S无无无无5/6有有有有有有ARM926EJ-S14k-128k/4k-128kMMU5/6有有有有有有272022-7-2嵌入式系统与应用 ARM9E系列的升
17、级系列的升级ARM926EJ-SARM946E-SARM966E-S282022-7-2嵌入式系统与应用 ARM10E和和ARM10T FamilyARM10EJ-S无无无无6有有有有有有ARM1026EJ-S0,4-128k/0,4-128kMMU6有有有有有有Cache内存内存管理管理流水线流水线级别级别ThumbDSPJazelleARM10E无无无无6有有有有无无ARM1020E32k/32kMMU6有有有有无无ARM1022E16k/16kMMU6有有有有无无ARM10TDMI无无无无6有有无无无无ARM1020T32k/32kMMU6有有无无无无292022-7-2嵌入式系统与应用
18、 ARM11 FamilyCache内存内存管理管理流水线流水线级别级别ThumbDSPJazelle浮点运算浮点运算ARM1136J-S4-64kMMU8有有有有有有无无ARM1136JF-S4-64kMMU8有有有有有有有有ARM1156T2-S可配置可配置9Thumb-2有有无无无无ARM1156T2F-S可配置可配置9Thumb-2有有无无有有302022-7-2嵌入式系统与应用 StrongARM和和XScaleq SA-1110 (基于(基于StrongARM)内核内核SA-116k I-Cache + 8k D-CacheI-MMU + D-MMUq PXA25x/26x/27x
19、 IXP2400(基于基于XScale)内核内核XScale7/8级流水线级流水线32k I-Cache + 32k D-CacheI-MMU + D-MMU312022-7-2嵌入式系统与应用 2.2 指令集体系结构(指令集体系结构(ISA)ThumbDSPJazelleMediaTrustZoneThumb-2v4StrongARMv4T*ARM7T, ARM9v5T*ARM10T,XScalev5TE*ARM9E, ARM10Ev5TEJ*ARM7EJ,ARM9EJ, ARM10EJv6*ARM1136J(F)-Sv6Z*v6T2*ARM1156T2(F)-S注:v5T支持的Thumb是
20、对v4T中的Thumb的扩展322022-7-2嵌入式系统与应用 指令集体系结构指令集体系结构332022-7-2嵌入式系统与应用 q流水线方式是把一个重复的过程分解为若干个子过程,流水线方式是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程同时进行。由于这种工每个子过程可以与其他子过程同时进行。由于这种工作方式与工厂中的生产流水线十分相似,因此,把它作方式与工厂中的生产流水线十分相似,因此,把它称为流水线工作方式。称为流水线工作方式。3 3 流水线流水线342022-7-2嵌入式系统与应用 3.1 ARM7的流水线的流水线指令流水线的目的是提高执行速度。指令流水线的目的是提高执
21、行速度。PC指向的是预取指令,指向的是预取指令,因此如果直接读取因此如果直接读取PC值,得到的是值,得到的是“当前指令地址当前指令地址+8”从内存中取指令指令译码执行指令/读写REG352022-7-2嵌入式系统与应用 q 指令流水线的目的是提高执行速度。指令流水线的目的是提高执行速度。PC指向的是预取指指向的是预取指令,因此如果直接读取令,因此如果直接读取PC值,得到的是并不是当前正在值,得到的是并不是当前正在执行的指令地址。执行的指令地址。q CUP中的一条指令的执行可以分若干个阶段:中的一条指令的执行可以分若干个阶段: 1.取指,从存储器中取出指令(取指,从存储器中取出指令(fetch)
22、 2.译码,指令译码(译码,指令译码(dec) 3.取操作数,假定操作数从寄存器组中取(取操作数,假定操作数从寄存器组中取(reg) 4.执行运算(执行运算(ALU) 5.存储器访问(存储器访问(mem) 6.结果写回寄存器(结果写回寄存器(res)q 各个阶段的操作相对都是独立的。因此,可以采用流水线各个阶段的操作相对都是独立的。因此,可以采用流水线的重叠技术,可以大大提高系统的性能。的重叠技术,可以大大提高系统的性能。指令流水线362022-7-2嵌入式系统与应用 ARM7TDMI Processor Coreq 冯冯诺依曼诺依曼 架构架构q 三级流水线三级流水线q 快速中断响应快速中断响
23、应q 性能指标性能指标: 0.9 Dhrystone MIPs/MHzq Embedded ICE-RT 调试逻辑调试逻辑q No memory managementq No cacheq CPI = 1.9 q 使用最广泛的使用最广泛的 32位嵌入式内核位嵌入式内核q 主要应用领域主要应用领域: 个人音频设备 手机和移动通信终端 Modems, xDSL, Cable Modems ATM and Ethernet 网络设备 打印机 数码相机 PDA 机顶盒372022-7-2嵌入式系统与应用 q ARM7 内核使用内核使用 3 级流水线,以提高指令流传递给处理器级流水线,以提高指令流传递给
24、处理器的速度,的速度,使得某些操作达到并行处理的效果,比单纯的使得某些操作达到并行处理的效果,比单纯的串行处理要好。串行处理要好。q PC 指向处于指令读取级的指令地址,而不是处于执行级指向处于指令读取级的指令地址,而不是处于执行级的指令地址。的指令地址。FETCHDECODEEXECUTE从存储器读取指令从存储器读取指令译码译码读寄存器读寄存器移位和算术逻辑运算移位和算术逻辑运算写寄存器写寄存器PCPCPC - 4PC-2PC - 8PC - 4ARMThumb指令流水线382022-7-2嵌入式系统与应用 q本例中本例中 6 个时钟周期内一共完成了个时钟周期内一共完成了 6 条指令条指令q
25、全部对寄存器进行操作全部对寄存器进行操作 (单周期执行)(单周期执行)q指令周期数指令周期数 (CPI) = 1 OperationCycle 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch优秀的流水线结构优秀的流水线结构392022-7-2嵌入式系统与应用 q本例中本例中 6 个时钟周期内一共完成了个时钟周期内
26、一共完成了 4 条指令条指令 q指令周期数指令周期数(CPI) = 1.5 Cycle Operation12 3 4 5 6 ADD SUB LDR MOV AND ORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetch流水线执行举例:流水线执行举例:LDR402022-7-2嵌入式系统与应用 ARM9TDMIq5 级流水线级流水线q性能改进性能改进提升提升 CPI 至至 1.5提高时钟频率提高时钟频率412022-7-2嵌入式系统与应用
27、ARM9TDMI 流水线流水线InstructionFetch Shift + ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI422022-7-2嵌入式系统与应用 CycleOperationADD R1, R1, R2SUB R3, R4,
28、 R1ORR R8, R3, R4AND R6, R3, R1EOR R3, R1, R212345678LDRR4, R79FDEFDEWFDEWFDEWFDWEFDEWF - FetchD - DecodeE - ExecuteI - InterlockM - Memory W Write-backILDR 内部周期内部周期q 本例中本例中 7 个时钟周期完成个时钟周期完成 6 条指令,条指令, CPI 等于等于 1.2q Interlock: LDR 后面的指令马上要用到后面的指令马上要用到LDR 的结果寄存器,的结果寄存器,导致插入一个内部周期导致插入一个内部周期WIM432022-7
29、-2嵌入式系统与应用 3.2 更多级的流水线更多级的流水线qARM10采用了采用了6级流水线,但是处于兼容考虑,级流水线,但是处于兼容考虑,直接读取直接读取PC值依然等于值依然等于“当前指令地址当前指令地址+8”。442022-7-2嵌入式系统与应用 3.3 流水线对程序的影响流水线对程序的影响lr = lr & 15;lr = pc + lr * 4; cpsr=spsr;pc = lr; andlr, lr, #15ldrlr, pc, lr, lsl #2movs pc, lr.LCtab_irq:.word _irq_usr 0 x0.word _irq_invalid 0 x
30、1.word _irq_invalid 0 x2.word _irq_svc 0 x3.word _irq_invalid 0 x4.word _irq_invalid 0 xf452022-7-2嵌入式系统与应用 3.4 指令预取和自修改代码指令预取和自修改代码q流水线使得流水线使得CPU在执行当前指令的同时,从存储在执行当前指令的同时,从存储器中预取其后若干条指令。器中预取其后若干条指令。q预取的指令不一定得到执行。比如发生跳转或中预取的指令不一定得到执行。比如发生跳转或中断。断。q自修改代码指的是代码在执行过程中可能修改自自修改代码指的是代码在执行过程中可能修改自身。被修改的指令可能和预
31、取得指令不同,从而身。被修改的指令可能和预取得指令不同,从而产生错误。产生错误。462022-7-2嵌入式系统与应用 q 相邻指令执行的数据相关性会产生指令执行的停顿相邻指令执行的数据相关性会产生指令执行的停顿(stall),严重的会产生数据灾难(),严重的会产生数据灾难(hazards)。如图所示,)。如图所示,第第2条指令的条指令的reg操作需要第操作需要第1条指令执行的结果(条指令执行的结果(res),),因此,第因此,第2条指令在执行时,不得不产生停顿。条指令在执行时,不得不产生停顿。fetch decreg ALU mem res1fetch decreg ALU mem res2t
32、imestallinstruction472022-7-2嵌入式系统与应用 q 另外碰到分支类指令,那么,会使后面紧接该条指令的几另外碰到分支类指令,那么,会使后面紧接该条指令的几条指令的执行都会无效,如图所示。条指令的执行都会无效,如图所示。 fetch decregALU memres1 (branch)fetch decregALU mem resfetch decregALU memres23timeinstructionfetchdecregALU mem resfetch decregALU mem res45 (branch target)482022-7-2嵌入式系统与应用 4
33、 4 模式和寄存器模式和寄存器q模式分类模式分类qARM处理器的寄存器处理器的寄存器q状态寄存器状态寄存器q异常和异常向量表异常和异常向量表492022-7-2嵌入式系统与应用 4.1 模式分类模式分类qARM 一共有一共有 7 种执行模式种执行模式:User: 非特权级模式,多数应用程序使用的模式非特权级模式,多数应用程序使用的模式FIQ: 进入快速中断响应时进入快速中断响应时IRQ: 进入一般中断响应时进入一般中断响应时Supervisor: 复位后的缺省模式,或进入软件中断响应时复位后的缺省模式,或进入软件中断响应时Abort: 遇到存储器访问出错时遇到存储器访问出错时Undef: 遇到
34、未定义指令时遇到未定义指令时System: 特权级的特权级的User模式模式502022-7-2嵌入式系统与应用 4.2 ARM处理器的寄存器处理器的寄存器q ARM 一共有一共有 37个个32位的寄存器位的寄存器 1 个个PC寄存器寄存器 1 个个CPSR(当前状态寄存器)(当前状态寄存器) 5 个个SPSR(状态保留寄存器)(状态保留寄存器) 30 个通用寄存器个通用寄存器q 当前的处理器模式决定了可以访问到的寄存器组,以下是对当前的处理器模式决定了可以访问到的寄存器组,以下是对所有模式都有的寄存器所有模式都有的寄存器 一组特定的一组特定的 r0-r12 寄存器寄存器 一个特定的一个特定的
35、 r13 (堆栈指针堆栈指针, sp) 和和 r14 (连接寄存器连接寄存器, lr) PC寄存器寄存器 r15 当前状态寄存器当前状态寄存器 cpsrq 特权模式(特权模式(System 模式除外)独有的模式除外)独有的 特定的特定的 spsr (状态保留寄存器)(状态保留寄存器)512022-7-2嵌入式系统与应用 ARM处理器的寄存器处理器的寄存器User/SystemSupervisorAbortUndefinedInterruptFIQR0R0R0R0R0R0R1R1R1R1R1R1R2R2R2R2R2R2R3R3R3R3R3R3R4R4R4R4R4R4R5R5R5R5R5R5R6R
36、6R6R6R6R6R7R7R7R7R7R7R8R8R8R8R8R8_FIQR9R9R9R9R9R9_FIQR10R10R10R10R10R10_FIQR11R11R11R11R11R11_FIQR12R12R12R12R12R12_FIQR13R13_SVCR13_ABORT R13_UNDEFR13_IRQR13_FIQR14R14_SVCR14_ABORTR14_UNDEFR14_IRQR14_FIQPCPCPCPCPCPC CPSRCPSRCPSRCPSRCPSRCPSR SPSR_SVCSPSR_ABORTSPSR_UNDEFSPSR_IRQSPSR_FIQ522022-7-2嵌入式系
37、统与应用 寄存器组织寄存器组织Usermoder0-r7,r15,andcpsrr8r9r10r11r12r13 (sp)r14 (lr)spsrFIQr8r9r10r11r12r13 (sp)r14 (lr)r15 (pc)cpsrr0r1r2r3r4r5r6r7Userr13 (sp)r14 (lr)spsrIRQUsermoder0-r12,r15,andcpsrr13 (sp)r14 (lr)spsrUndefUsermoder0-r12,r15,andcpsrr13 (sp)r14 (lr)spsrSVCUsermoder0-r12,r15,andcpsrr13 (sp)r14 (l
38、r)spsrAbortUsermoder0-r12,r15,andcpsrThumb stateLow registersThumb stateHigh registersNote: System mode uses the User mode register set 532022-7-2嵌入式系统与应用 ARM处理器的寄存器处理器的寄存器qr0 r12:通用寄存器。当:通用寄存器。当C和汇编互相调用时,和汇编互相调用时,r0 r3用来传递函数参数,可记为用来传递函数参数,可记为a0 a3qr13:用于各工作态的堆栈寄存器:用于各工作态的堆栈寄存器 (sp)qr14:用来保护程序返回地址的链
39、接寄存器:用来保护程序返回地址的链接寄存器 ( lr )qr15:程序计数器(:程序计数器(pc)qr8_FIQ r12_FIQ:允许快速中断处理允许快速中断处理qr8_User r12_User:除了:除了FIQ外各模式公用外各模式公用q除了除了User和和System模式外,各种模式都有自己模式外,各种模式都有自己独立的独立的r13和和r14542022-7-2嵌入式系统与应用 4.3 状态寄存器状态寄存器q 条件标识位条件标识位 N = 结果为负结果为负 Z = 结果为零结果为零 C = 进位进位 V = 溢出溢出q Q 标识位标识位 只在只在 5TE/J 系列中有效系列中有效 指示指示
40、sticky overflow的发生的发生q J 标识位标识位 仅在仅在 5TEJ 系列中有效系列中有效 J = 1: 处理器处于处理器处于 Jazelle 状态状态q 中断使能位中断使能位 I = 1: 禁止禁止 IRQ. F = 1: 禁止禁止 FIQ.q T 标识位标识位 只在只在 xT 系列内核中有效系列内核中有效 T = 0: 处理器处于处理器处于 ARM 状态状态 T = 1: 处理器处于处理器处于 Thumb 状态状态q 模式位模式位 指示当前处理器模式指示当前处理器模式2731N Z C V Q2867I F T mode162381554024fsxc U n d e f i
41、 n e dJ552022-7-2嵌入式系统与应用 CPSR/SPSRM4:0模式模式Accessible Registers10000UserPC, R14 to R0, CPSR10001FIQPC, R14_FIQ to R8_FIQ, R7 to R0, CPSR, SPSR_FIQ10010IRQPC, R14_IRQ, R13_IRQ, R12 to R0, CPSR, SPSR_IRQ10011SVCPC, R14_SVC, R13_SVC, R12 to R0, CPSR, SPSR_SVC10111AbortPC, R14_ABORT, R13_ABORT, R12 to R
42、0, CPSR, SPSR_ABORT11011UndefPC, R14_UNDEF, R13_UNDEF, R12 to R0, CPSR, SPSR_UNDEF11111SystemPC, R14 to R0, CPSR (Architecture 4 only)562022-7-2嵌入式系统与应用 PC寄存器寄存器 (r15)q当处理器处于当处理器处于 ARM 状态时状态时:所有指令都是所有指令都是32位长度位长度所有指令存储必须所有指令存储必须 word 对齐对齐pc31:2 有效,有效, 1:0 未定义未定义q当处理器处于当处理器处于 Thumb 状态时状态时:所有指令都是所有指令都
43、是16位长度位长度所有指令存储必须所有指令存储必须 halfword 对齐对齐pc31:1 位有效,位有效, 最低位未定义最低位未定义q当处理器处于当处理器处于 Jazelle 状态时状态时:所有指令都是所有指令都是 8 位长度位长度处理器一次执行处理器一次执行 1 个个word的读取指令获得的读取指令获得 4 条条Java指令指令q注意在指令中访问注意在指令中访问PC寄存器的值寄存器的值不是当前指令地址不是当前指令地址572022-7-2嵌入式系统与应用 5 5 异常和异常向量表异常和异常向量表q异常的产生异常的产生q异常优先级异常优先级q异常处理异常处理q异常返回指令异常返回指令58202
44、2-7-2嵌入式系统与应用 5.1 异常的产生异常的产生q直接异常:软件中断,未定义指令(包括所要求直接异常:软件中断,未定义指令(包括所要求的协处理器不存在时的协处理器命令)和预取指的协处理器不存在时的协处理器命令)和预取指令令q间接异常:数据中止(在间接异常:数据中止(在Load和和Store数据访问时数据访问时的存储器故障)的存储器故障)q外部异常:复位,外部异常:复位,IRQ和和FIQ592022-7-2嵌入式系统与应用 5.2 异常优先级异常优先级q异常在当前指令执行完成之后才被响应异常在当前指令执行完成之后才被响应q多个异常可以在同一时间产生多个异常可以在同一时间产生q 异常指定了
45、优先级和固定的服务顺序异常指定了优先级和固定的服务顺序:ResetData AbortFIQIRQPrefetch AbortSWIUndefined instruction602022-7-2嵌入式系统与应用 Vector TableVector table can be at 0 xFFFF0000 on ARM720T and on ARM9/10 family devicesFIQIRQ(Reserved)Data AbortPrefetch AbortSoftware InterruptUndefined InstructionReset0 x1C0 x180 x140 x100 x
46、0C0 x080 x040 x005.3 异常处理异常处理q 当异常产生时当异常产生时, ARM core:拷贝拷贝 CPSR 到到 SPSR_设置适当的设置适当的 CPSR 位:位: 改变处理器状态进入 ARM 状态 改变处理器模式进入相应的异常模式 设置中断禁止位禁止相应中断 保存返回地址到保存返回地址到 LR_设置设置 PC 到相应的异常向量到相应的异常向量q 返回时返回时, 异常处理需要异常处理需要:从从 SPSR_恢复恢复CPSR从从LR_恢复恢复PC 这些操作只能在这些操作只能在 ARM 态执行态执行.612022-7-2嵌入式系统与应用 622022-7-2嵌入式系统与应用 q
47、从从SWI 和和 Undef异常返回异常返回MOVS pc,lrq 从从FIQ, IRQ 和预取异常和预取异常(Prefect Abort)返回返回SUBS pc,lr,#4q 从数据异常从数据异常(Data Abort)返回返回SUBS pc,lr,#8q 若若 LR 之前被压栈,使用之前被压栈,使用LDM“” LDMFD sp!,pc异常返回:异常返回:q 使用一数据处理指令:使用一数据处理指令: 相应的指令取决于什么样的异常相应的指令取决于什么样的异常 带带 S 位位 把把 PC 作为目标寄存器作为目标寄存器q 在特权模式下,这些操作不仅在特权模式下,这些操作不仅更新更新PC,而且拷贝,
48、而且拷贝SPSR到到CPSR5.4 异常返回指令异常返回指令632022-7-2嵌入式系统与应用 q汇编指令中的汇编指令中的 和和 S 标记可用于异常返回,恢复标记可用于异常返回,恢复PC的同时恢复的同时恢复CPSR。q如果如果使用堆栈返回,预先保存在栈中的返回地址使用堆栈返回,预先保存在栈中的返回地址要求以做好调整。在异常返回时使用类似如下指要求以做好调整。在异常返回时使用类似如下指令:令:“ldmfd r13!, (r0-r3,pc)”1)“”后缀不允许在后缀不允许在usr和和svc模式下使用。模式下使用。2)如果用在)如果用在LDM指令中,且寄存器列表中含有指令中,且寄存器列表中含有PC
49、时,时,那么除了正常的多寄存器传送外,将那么除了正常的多寄存器传送外,将SPSR拷贝到拷贝到CPSR中。这一特点用于异常处理返回。中。这一特点用于异常处理返回。642022-7-2嵌入式系统与应用 ARM or Thumb?Thumb / ARM 混合应用程序ARM CodeARM CodeThumbCodeFIQIRQ(Reserved)Data AbortPrefetch AbortSoftware InterruptUndefined InstructionReset652022-7-2嵌入式系统与应用 FIQ vs IRQqFIQ 和和 IRQ 提供了非常基本的优先级级别提供了非常基本
50、的优先级级别。q在下边两种情况下,在下边两种情况下,FIQs有高于有高于IRQs的优先级的优先级: 当多个中断产生时,当多个中断产生时,FIQ高于高于IRQ. 处理处理 FIQ时禁止时禁止 IRQs. IRQs 将不会被响应直到 FIQ处理完成.qFIQs 的设计使中断处理尽可能地快的设计使中断处理尽可能地快. FIQ 向量位于中断向量表的最末向量位于中断向量表的最末. 为了使中断处理程序可从中断向量处连续执行 FIQ 模式有模式有5个额外的私有寄存器个额外的私有寄存器 (r8-r12) 中断处理必须保护其使用的非私有寄存器 可以有多个可以有多个FIQ中断源中断源,但是考虑到系统性能应避免嵌套
51、。但是考虑到系统性能应避免嵌套。662022-7-2嵌入式系统与应用 6 ARM6 ARM的存储和的存储和I/OI/O空间空间q特点特点q大端和小端大端和小端q非对齐的存储访问非对齐的存储访问672022-7-2嵌入式系统与应用 6.1 特点特点qARM体系同时支持大端体系同时支持大端/小端。小端。q32位地址线位地址线/数据线,支持如下数据类型:数据线,支持如下数据类型:字节(字节(byte)8 bits半字(半字(Half word)16 bits,半字必须对齐,半字必须对齐2字节边界字节边界字(字(Word)32 bits,字必须对齐,字必须对齐4字节边界字节边界qARM的的I/O空间采
52、用统一编址方式。空间采用统一编址方式。682022-7-2嵌入式系统与应用 qARM 可以通过配置支持两种可以通过配置支持两种endianr0 = 0 x11223344STR r0, r1LDRB r2, r1r1 = 0 x100Memory3 2 1 0 0 1 2 3Byte Lane3124 2316 158 70112233443124 2316 158 70112233443124 2316 158 70112233443124 2316 158 70000000443124 2316 158 7000000011Little endianBig endianR2 = 0 x44
53、R2 = 0 x116.2 Endian Configuration/大端和小端大端和小端Little endian:Big endian692022-7-2嵌入式系统与应用 6.3 非对齐的存储访问非对齐的存储访问q非对齐的取指非对齐的取指不可预知结果。不可预知结果。ARM状态:忽略低状态:忽略低2两位;两位;Thumb状态:忽略最低位。状态:忽略最低位。忽略由存储器实现。忽略由存储器实现。q非对齐的数据访问非对齐的数据访问执行结果不可预知。执行结果不可预知。忽略字单元地址的最低两位;忽略半字单元地址的最忽略字单元地址的最低两位;忽略半字单元地址的最低位。忽略可能由处理器或存储器完成。低位。
54、忽略可能由处理器或存储器完成。702022-7-2嵌入式系统与应用 7 AMBA7 AMBA总线总线q 当当ARM核作为一个元件集成到复杂的系统芯片上时,需要核作为一个元件集成到复杂的系统芯片上时,需要某种接口和其它元件进行通讯,这就是某种接口和其它元件进行通讯,这就是AMBA总线。总线。q ARM研发的研发的AMBA(Advanced Microcontroller Bus Architecture)提供一提供一种特殊的机制,可将种特殊的机制,可将RISC处理器集成在其它处理器集成在其它IP芯核和外设芯核和外设中,中,2.0版版AMBA标准定义了三组总线:标准定义了三组总线:AHB(AMBA
55、高性能总线高性能总线):用于高性能、高数据吞吐部:用于高性能、高数据吞吐部件,如件,如CPU、DMA、DSP之间的互连之间的互连 。ASB(AMBA系统总线系统总线):用来作处理器与外设之间的互:用来作处理器与外设之间的互连连 ,将被,将被AHB取代。取代。APB(AMBA外设总线外设总线):为系统的低速外部设备提供低:为系统的低速外部设备提供低功耗的简易互连。功耗的简易互连。 712022-7-2嵌入式系统与应用 q 系统总线和外设总线之间的桥接器提供系统总线和外设总线之间的桥接器提供AHB/ASP部件与部件与APB部件间的访问代理与缓冲。部件间的访问代理与缓冲。ARM核片内RAMDMA控制
56、器桥路UART定时器并口APBAHB/ASB外部总线接口测试接口控制722022-7-2嵌入式系统与应用 q AHB用来研发宽带宽处理器芯核的片上总线。用来研发宽带宽处理器芯核的片上总线。q 应用于高性能、高时钟频率的系统模块,它构成了高性能应用于高性能、高时钟频率的系统模块,它构成了高性能的系统骨干总线(的系统骨干总线( back-bone bus )。它主要支持的特性是:)。它主要支持的特性是: 用于高性能、高数据吞吐部件,如用于高性能、高数据吞吐部件,如CPU、DMA、DSP之间数据突发之间数据突发传输(传输( burst transfer ) 数据分割传输(数据分割传输( split
57、transaction ) 流水线方式流水线方式 一个周期内完成总线主设备(一个周期内完成总线主设备(master)对总线控制权的交接)对总线控制权的交接 单时钟沿操作单时钟沿操作 内部无三态实现内部无三态实现 更宽的数据总线宽度(最低更宽的数据总线宽度(最低32位,最高可达位,最高可达1024位,但推荐不要超位,但推荐不要超过过256位)位)732022-7-2嵌入式系统与应用 q 是第一代是第一代AMBA系统总线,同系统总线,同AHB相比,它数据宽度要小相比,它数据宽度要小一些,它支持的典型数据宽度为一些,它支持的典型数据宽度为8位、位、16位、位、32位。它的主位。它的主要特征如下:要特
58、征如下:流水线方式流水线方式数据突发传送数据突发传送多总线主设备多总线主设备内部有三态实现内部有三态实现742022-7-2嵌入式系统与应用 q 是本地二级总线(是本地二级总线(local secondary bus ),通过桥和),通过桥和AHB/ASB相连。它主要是为了满足不需要高能流水线接相连。它主要是为了满足不需要高能流水线接口或不需要高带宽接口的设备的互连。口或不需要高带宽接口的设备的互连。APB的总线信号经的总线信号经改进后全和时钟上升沿相关,这种改进的主要优点如下:改进后全和时钟上升沿相关,这种改进的主要优点如下:更易达到高频率的操作更易达到高频率的操作性能和时钟的占空比无关性能
59、和时钟的占空比无关单时钟沿简化了单时钟沿简化了更易与基于周期的仿真器集成更易与基于周期的仿真器集成APB 只有一个只有一个APB桥,它将来自桥,它将来自AHB/ASB的信号转换的信号转换为合适的形式以满足挂在为合适的形式以满足挂在APB上的设备的要求。桥要上的设备的要求。桥要责锁存地址、数据以及控制信号,同时要进行二次译责锁存地址、数据以及控制信号,同时要进行二次译码以选择相应的码以选择相应的APB设备设备752022-7-2嵌入式系统与应用 762022-7-2嵌入式系统与应用 q ARM指令集总体分为指令集总体分为6类指令类指令跳转指令:跳转指令:B和和BL数据处理指令:数据传输指令,算术
60、指令,逻辑指令,数据处理指令:数据传输指令,算术指令,逻辑指令,比较指令,乘法指令,前导零计数比较指令,乘法指令,前导零计数访存指令:单数据访存指令,多数据访存指令,信号量访存指令:单数据访存指令,多数据访存指令,信号量操作指令操作指令程序状态访问指令:程序状态访问指令:MRS和和MSR协处理器指令协处理器指令异常指令:异常指令:SWI和和BKPT8 ARM8 ARM指令系统指令系统772022-7-2嵌入式系统与应用 q 所有指令都是所有指令都是32bitq 大多数指令都在单周期内完成大多数指令都在单周期内完成q 所有指令都可以条件执行所有指令都可以条件执行q load/store体系结构体系结构q 指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025车祸私了和解协议书
- (2024)人造刚玉项目可行性研究报告写作范本(一)
- 2024秋新沪科版物理八年级上册课件 第六章 熟悉而陌生的力 第1节 力及其描述
- 2023年体外循环管路项目筹资方案
- 平安夜圣诞节介绍活动方案215
- 电工(初级工)模拟习题含答案
- 山东省枣庄市2023-2024学年七年级上学期期末考试数学试卷(含解析)
- 养老院老人生活设施定期检查制度
- 养老院老人安全教育培训制度
- 《家庭心理咨询》课件
- 第七、八章原核生物、真核生物基因的表达调控
- 煤矿岗位标准化作业流程
- 超算中心运营管理
- 医保政策对医药行业的影响与调整
- 中药饮片项目融资计划书
- 急性化脓性扁桃体炎查房课件
- 华住酒店管理制度
- 辽宁省沈阳市2022-2023学年五年级上学期数学期末考试试卷(含答案)
- 国开电大《人文英语3》一平台机考真题(第八套)
- 煤质柱状活性炭
- +北京市顺义区2022-2023学年七年级上学期期末考试数学试卷+
评论
0/150
提交评论