微机原理&7-ARM微处理器体系结构课件.ppt

上传人(卖家):晟晟文业 文档编号:4319062 上传时间:2022-11-29 格式:PPT 页数:55 大小:2.23MB
下载 相关 举报
微机原理&7-ARM微处理器体系结构课件.ppt_第1页
第1页 / 共55页
微机原理&7-ARM微处理器体系结构课件.ppt_第2页
第2页 / 共55页
微机原理&7-ARM微处理器体系结构课件.ppt_第3页
第3页 / 共55页
微机原理&7-ARM微处理器体系结构课件.ppt_第4页
第4页 / 共55页
微机原理&7-ARM微处理器体系结构课件.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、第七章第七章 ARM微处理器编程模型微处理器编程模型 (第(第3章)章)7.1 ARM 内核体系结构内核体系结构(了解)(了解)ARM 体系结构版本ARM 内核简介7.2 ARM 编程模型编程模型(理解)(理解)处理器工作状态处理器运行模式寄存器组织数据类型和储存格式异常将技术授权给其它芯片厂商加入加入ROM、RAM和外部和外部接口形成各接口形成各具特色的具特色的ARM芯片芯片 ARM(Advanced RISC Machines)公司设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器;ARM公司的特点是只设计而不生产,也不销售。它将技术授权给世界上许多著名的半导体、软件和OEM厂商

2、,并提供服务。ARM的应用领域1.工业控制领域工业控制领域 电力控制、数控机床、电力控制、数控机床、ABS2.无线通讯领域无线通讯领域 基站、带蓝牙基站、带蓝牙/定位等的手机定位等的手机/PDA、GPS3.网络应用网络应用 ADSL、路由器、交换机、路由器、交换机、VoIP4.消费类电子产品消费类电子产品 DVD、机顶盒、游戏机、机顶盒、游戏机5.成像产品成像产品 数码相机、打印机、录像机数码相机、打印机、录像机6.安全产品安全产品 ATM机、机、POS机、考勤系统、机、考勤系统、SIM卡卡u到目前为止,基于到目前为止,基于ARM技术的技术的微处理器应用微处理器应用约占据了约占据了32位嵌入式

3、微处理器位嵌入式微处理器75以上的市场份额;以上的市场份额;u全球全球80%的的GSM/3G手机、手机、99%的的CDMA手机以及绝大手机以及绝大多数多数PDA产品均采用产品均采用ARM体系的体系的嵌入式处理器嵌入式处理器,“掌掌上计算上计算”相关的领域主要使用相关的领域主要使用ARM技术;技术;3/94ARM体系结构的特点 P2162.ARM体系特别技术在同一条数据处理指令中包含算术逻辑单元和移位处理支持Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容16 位器件使用地址自动增加(减少)来优化程序中的循环处理Load/Store指令可以批量传输数据,从而提高数据传输的效率三地

4、址指令格式所有指令的条件执行实现最快速的代码执行4/941.具有RISC技术共有特点 具有大量的寄存器 绝大多数操作都在寄存器中进行,通过Load/Store(装载装载/保存保存)的体系结构在内的体系结构在内存和存和寄存器之间传递数据寄存器之间传递数据 寻址方式寻址方式灵活简单灵活简单 采用固定长度的采用固定长度的指令格式,指令格式,简化了指令的译码,便于指令流水线设计 RISC简单的结构使简单的结构使ARM内核非常小、功耗低、成本低内核非常小、功耗低、成本低ARM体系结构的版本 P218ARM架构自诞生至今已发展并定义了架构自诞生至今已发展并定义了V1到到V7七种不同的版本。七种不同的版本。

5、1.V1版架构版架构 只在原型机只在原型机ARM1中出现过中出现过支持基本的数据处理指令支持基本的数据处理指令(无乘法无乘法)支持字节、半字和字的支持字节、半字和字的LOAD/STORE指令指令支持转移指令,包括子程序调用及链接指令支持转移指令,包括子程序调用及链接指令支持软件中断指令支持软件中断指令SWI寻址空间位寻址空间位64MB(26位)位)yyyy-M-d5/942.V2版架构版架构 已废弃不再使用已废弃不再使用支持乘法和乘加指令支持乘法和乘加指令支持协处理器操作指令支持协处理器操作指令支持基本的存储器与寄存器交换指令支持基本的存储器与寄存器交换指令SWP/SWPB支持快速中断模式支持

6、快速中断模式3.V3版架构版架构 已废弃不再使用已废弃不再使用寻址范围扩展到寻址范围扩展到4GB(32位)位)快速中断模式具有两个以上的分组寄存器快速中断模式具有两个以上的分组寄存器增加状态寄存器增加状态寄存器CPSR/SPSR,及从异常处理返回的,及从异常处理返回的MSR/MRS指令,指令,便于异常的处理便于异常的处理增加了中止和未定义两种处理器模式增加了中止和未定义两种处理器模式yyyy-M-d6/944.V4版架构版架构 目前应用最广的目前应用最广的ARM体系结构,体系结构,ARM7、ARM8、ARM9和和StrongARM都采用该版架构都采用该版架构增加了有增加了有/无符号的半字和有符

7、号字节的无符号的半字和有符号字节的Load/Store指令指令增加了增加了16位位Thumb指令集指令集完善了软件中断完善了软件中断SWI指令的功能指令的功能增加了处理器的特权模式增加了处理器的特权模式5.V5版架构版架构 ARM10和和XScale都采用该版架构都采用该版架构改进了改进了ARM/Thumb状态之间的切换效率;状态之间的切换效率;E-增强增强DSP指令集指令集,包括全部算法操作和包括全部算法操作和16位乘法操作;位乘法操作;J-支持新的支持新的JAVA,提供字节代码执行的加速功能提供字节代码执行的加速功能增加了带有链接和交换指令增加了带有链接和交换指令BLX增加了计数前导零指令

8、增加了计数前导零指令CLZ增加了软件断点指令增加了软件断点指令为协处理器增加更多可选择的指令为协处理器增加更多可选择的指令7/946.V6版架构版架构 ARM11处理器采用该版架构处理器采用该版架构增加了多媒体功能扩展增加了多媒体功能扩展SIMD,提高了嵌入式应用系统,提高了嵌入式应用系统的音、视频处理能力的音、视频处理能力改进了内存管理改进了内存管理改进了混合端与不对齐数据支持,使得小端系统支持大改进了混合端与不对齐数据支持,使得小端系统支持大端数据端数据7.V7版架构版架构 Cortex-A8处理器采用该版架构处理器采用该版架构 2005年发布,采用年发布,采用Thumb-2技术。技术。y

9、yyy-M-d8/94ARM芯片、内核和ARM CPU的关系 P221ARM9EJ-S CPUARM处理器内核处理器内核ARM芯片芯片ARM核命名规则 P222x系列号系列号(最小为最小为7)y存储管理存储管理/保护单元保护单元zCacheTThumb指令集指令集DJTAG调试器调试器M快速乘法器快速乘法器I嵌入式跟踪宏单元嵌入式跟踪宏单元E增强增强DSP指令指令JJazelle技术技术F向量浮点单元向量浮点单元S可综合的内核可综合的内核ARM7TDMI-SARM926EJ-SARM966ESARM1022E10/94ARM x y z T D M I E J F-S0:标准标准cache2:

10、小小cache6:可变可变cache2:带带MMU4:带带MPU6:无无MMU和和MPUMMU:Memory Management Unit,MPU:Memory Protection UnitARM系系列列微处理器核微处理器核特点特点ARM7ARM7TDMI:整数处理核:整数处理核ARM7TDMI 处理器的可处理器的可综合版本;综合版本;ARM720T:带:带MMU的处理的处理器核心,支持操作系统;器核心,支持操作系统;ARM7EJ-S:带有:带有DSP和和Jazelle TM 技术,能够实现技术,能够实现Java加速功能加速功能l 冯冯 诺伊曼体系结构诺伊曼体系结构;l ARMTDMI是目

11、前应用最广的微处理是目前应用最广的微处理器核器核l ARM720T带有带有MMU和和8KB的指令数的指令数据混合据混合cache;l ARM7EJ-执行执行ARMv5TEJ指令,指令,5级级流水线,提供流水线,提供Java加速指令,没有存加速指令,没有存储器保护。储器保护。ARM9ARM920T:带有独立的:带有独立的16KB 数据和指令数据和指令Cache;ARM922T:带有独立的:带有独立的8位位KB 数据和指令数据和指令Cache;ARM940T包括更小数据和包括更小数据和指令指令Cache和一个和一个MPUl 基于基于ARM9TDMI,带,带16位的位的Thumb指令集,增强代码密度

12、最多到指令集,增强代码密度最多到35%;l 在在0.13m工艺下最高性能可达到工艺下最高性能可达到300MIPS(Dhrystone 2.1测试标准);测试标准);l 集成了数据和指令集成了数据和指令Chche;l 32位位AMBA总线接口的总线接口的MMU支持;支持;l 可在可在0.18m、0.15m和和0.13m工艺的工艺的硅芯片上实现。硅芯片上实现。ARM核分类yyyy-M-d11/94ARM9EARM926EJ-S:Jazelle 技术,有技术,有MMU,可配置的数据和指令,可配置的数据和指令Cache,TCM接口;接口;ARM946E-S:可配置的数据和指:可配置的数据和指令令Cac

13、he及及TCM;ARM966E-S:针对要求高性能和:针对要求高性能和低功耗的可预测的指令执行时间的低功耗的可预测的指令执行时间的硬实时应用设计硬实时应用设计 ARM968E-S:最小、功耗最小:最小、功耗最小的的 ARM9E系列处理器,针对嵌入系列处理器,针对嵌入式实时应用设计;式实时应用设计;lARM9E是针对微控制器、是针对微控制器、DSP和和Java的单的单处理器解决方案;处理器解决方案;lARM Jazelle 技术提供技术提供 8倍的倍的 Java 加速性加速性能能(ARM926EJ-S);l5-级整数流水线;级整数流水线;l在在0.13m工艺下最高性能可达到工艺下最高性能可达到3

14、00MIPS(Dhrystone 2.1测试标准);测试标准);l可选择的可选择的 向量浮点单元向量浮点单元VFP9 协处理器指令协处理器指令优秀海浮点性能,对于优秀海浮点性能,对于3D图形加速和实时控图形加速和实时控制可达到制可达到 215MFLOPS。l高性能的高性能的AHB总线,带总线,带MMUl可在可在0.18m,0.15m,0.13m工艺的硅芯工艺的硅芯片上实现。片上实现。ARM10EARM1020E:带:带DSP指令集,在指令集,在片调试功能,独立的片调试功能,独立的32KB数据和数据和指令指令Cache,MMU支持;支持;ARM1022E:与:与ARM1020E相同,相同,只是独

15、立的数据和指令只是独立的数据和指令Cache变为变为16KB;ARM1026EJ-S:同时具有:同时具有MPU和和MMU,可综合版本;,可综合版本;l带分支预测的带分支预测的6级整数流水线;级整数流水线;l在在0.13m工艺下最高性能可达到工艺下最高性能可达到430MIPS(Dhrystone 2.1测试标准);测试标准);l对于对于3D图形运算和实时控制采用图形运算和实时控制采用VFP协处理协处理器,浮点运算性能最高可达器,浮点运算性能最高可达650MFLOPS;l双双64位位AMBA总线接口和总线接口和64位内部总路线接位内部总路线接口;口;l优化的缓存结构提高了处理器访问低速存储优化的缓

16、存结构提高了处理器访问低速存储器的性能;器的性能;l可在可在0.18m,0.15m,0.13m工艺的硅芯工艺的硅芯片上实现片上实现ARM11ARM11 MPCore:可综合:可综合的多处理器核,的多处理器核,1至至4个处理个处理器可配置;器可配置;ARM1136J(F)-S:可配置:可配置的数据和指令的数据和指令Cache,可提,可提供供1.9位的位的MPEG4编码加速编码加速功能;功能;ARM1156T2(F)-S:带集成:带集成浮点协处理器,带内存保护浮点协处理器,带内存保护单元单元MPU;ARM1176JZ(F)-S:带针对:带针对CPU和系统安全架构扩展的和系统安全架构扩展的Trust

17、Zone技术。技术。l增强的增强的Thumb、Jazelle、DSP扩展扩展支持;支持;l带片上和系统安全带片上和系统安全TrustZone 技术支技术支持持;l在在0.13m工艺下最高可达到工艺下最高可达到550MHz;lMPCore在在0.13m工艺下最高性能可工艺下最高性能可达到达到740MIPS(Dhrystone 2.1测试标测试标准);准);l支持多媒体指令支持多媒体指令SIMD;l采用三种电源模式:全速采用三种电源模式:全速/待命待命/休眠休眠l集成集成DMA的的TCMl低功耗、高性能低功耗、高性能。SecurCoreSC100:第一个:第一个32位安全处位安全处理器;、理器;、

18、SC110:在:在SC100上增加密钥协处理器;上增加密钥协处理器;SC200:带:带Jazelle技术的技术的高级安全处理器;高级安全处理器;SC210:在:在SC200上增加密上增加密钥协处理器钥协处理器lSecurCore是专门为智能卡、安全是专门为智能卡、安全IC提供的提供的32位安全处理器位安全处理器,为电子商务、为电子商务、银行、网络、移动多媒体、公共交通提银行、网络、移动多媒体、公共交通提供安全解决方案;供安全解决方案;l体积小、功耗低,代码压缩密度高;体积小、功耗低,代码压缩密度高;l为快速增长的为快速增长的Java卡平台提供卡平台提供Java加速功能;加速功能;项目项目ARM

19、7ARM9ARM10ARM11流水线流水线3568典型频率典型频率MHz80150260335功耗功耗mW/MHz0.060.19(+cache)0.5(+cache)0.4(+cache)性能性能MIPS/MHz0.971.11.31.2架构架构冯冯 诺伊曼诺伊曼哈佛哈佛哈佛哈佛哈佛哈佛ARMARM核比较核比较ARM处理器内核流水线工作流程 P217例如:例如:韩国三星公司生产的韩国三星公司生产的S3C2440AS3C2440A芯片,采芯片,采用用ARM920TARM920T内核,体系结构版本为内核,体系结构版本为ARMv4TARMv4T。ARM内核有体系结构版本号和内核命名两种不同标内核有

20、体系结构版本号和内核命名两种不同标识方式,采用识方式,采用ARM内核的芯片由生产厂家命名。内核的芯片由生产厂家命名。P216ARM处理器的工作状态 P2251.ARM状态状态 :执行执行32位位(字方式字方式)的的ARM指令指令2.Thumb状态状态:执行执行16位位(半字方式半字方式)的的Thumb指令指令3.Jazelle状态状态:执行执行可变长的、以字节可变长的、以字节为单位的为单位的Jazelle(Java)指令)指令注意:注意:1.1.处理器处理器复位复位后处于后处于ARMARM状态;状态;2.2.处理器处理器异常处理异常处理时进入时进入ARMARM状态(即中断服务子程状态(即中断服

21、务子程序处于序处于ARMARM状态);状态);3.3.若处理器在若处理器在ThumbThumb状态进入异常状态进入异常(此时为此时为ARMARM状态状态),则则异常返回异常返回仍然自动转换到仍然自动转换到ThumbThumb状态状态;4.4.状态切换状态切换不影响工作模式及寄存器不影响工作模式及寄存器内容。内容。yyyy-M-d17/94ARM处理器工作状态的切换 使用跳转指令使用跳转指令BX(此处的此处的X表示需要进行状态表示需要进行状态切换切换)可将处理器内核在可将处理器内核在ARM状态状态和和Thumb状态状态之间进行切换。之间进行切换。;从从Arm状态切换到状态切换到Thumb状态状态

22、 LDR R0,=Label+1 BX R0;从从Thumb状态切换到状态切换到ARM状态状态 LDR R0,=Label BX R0 地址最低位为地址最低位为1 1,表示,表示切换到切换到ThumbThumb状态状态 地址最低位为地址最低位为0 0,表示,表示切换到切换到ARMARM状态状态跳转地址标号跳转地址标号,最低最低2bit2bit为为0 0yyyy-M-d18/94处理器模式处理器模式说明说明备注备注 用户用户(usr)正常程序执行模式正常程序执行模式 不能直接切换到其它模式不能直接切换到其它模式 系统系统(sys)运行操作系统的特运行操作系统的特权任务权任务与用户模式类似,但具有

23、可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断(fiq)支持高速数据传输支持高速数据传输及通道处理及通道处理FIQ异常响应时进入此模式异常响应时进入此模式 中断中断(irq)用于通用中断处理用于通用中断处理 IRQ异常响应时进入此模式异常响应时进入此模式 管理管理(svc)操作系统保护模式操作系统保护模式系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式 中止中止(abt)用于支持虚拟内存用于支持虚拟内存和和/或存储器保护或存储器保护在在ARM7TDMI没有大用处没有大用处 未定义未定义(und)支持硬件协处理器支持硬件协处理器的

24、软件仿真的软件仿真未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式ARM处理器的运行模式 P226 除用户模式外,其它模式均为除用户模式外,其它模式均为特权模式特权模式。ARMARM内部寄存器和一些内部寄存器和一些片内外设在硬件设计上只允许(或片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切理器模式,而用户模式不能直接切换到别的模式。换到别的模式。未定义未定义(und)中止中止(abt)管理管理(svc)中断中断(irq)快中断快中断(fiq)系统

25、系统(sys)未定义未定义(und)中止中止(abt)管理管理(svc)中断中断(irq)快中断快中断(fiq)这五种模式称为这五种模式称为异常模式异常模式。它们除了。它们除了可以通过程序切换进入外,也可以由特定可以通过程序切换进入外,也可以由特定的异常进入。每种异常模式都有一些独立的异常进入。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的的寄存器,以避免异常退出时用户模式的状态不可靠。状态不可靠。这两种模式是常规工作模式,它们使用完全这两种模式是常规工作模式,它们使用完全相同的寄存器组。用户模式通过相同的寄存器组。用户模式通过SWISWI进入特性模式进入特性模式 系统模式是特权

26、模式,操作系统在该模式下系统模式是特权模式,操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受统的一些特权任务可以使用这个模式访问一些受控的资源。控的资源。系统系统(sys)用户用户(usr)寄存器寄存器类别类别寄存器在汇编寄存器在汇编中的名称中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通用通用寄存寄存器和器和程序程序计数计数器器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R

27、6(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_svc SPSR_abtSPSR_und SPSR_irq SPSR_fiq无无CPSRR15R14R13R12R11R10R9R8R7

28、R6R5R4R3R2R1R0用户用户无无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6

29、R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARMARM状态的状态的3737个寄存器个寄存器(V3V3版架构以上版架构以上)P227)P227R7R6R5R4R3R2R1R0R0R0R7R7为为不分组寄存器不分组寄存器注意:在异常处理中进行模注意:在异常处理中进行模式切换时,可能会破坏寄存式切换时,可能会破坏寄存器中的数据,需要保护;器中的数据,需要保护;R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_f

30、iqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R8R8R14R14为为分组寄存器分组寄存器。不同处理器模式下它们对不同处理器模式下它们对应不同的物理寄存器。应不同的物理寄存器。R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 R8 R8R12R12有一个分组专用于有一个分组专用于FIQFIQ模式。这样在发生模式。这样在发生FIQFIQ中断后,中断后,可以加速可以加速FIQFIQ的处理速度。的处理速度。R14R14为为链接寄存器链接寄存器LR

31、LR,具有两个特殊功能:,具有两个特殊功能:用于保存子程序返回地址;用于保存子程序返回地址;根据不同的异常模式保存为异常返回地址根据不同的异常模式保存为异常返回地址(有些异常有一个小的固定偏移量)。(有些异常有一个小的固定偏移量)。R14_fiqR14_irqR14_undR14_abtR14_svcR14Label程序程序1程序程序2R14R14(LR)寄存器与子程序调用)寄存器与子程序调用BL Label地址地址A?MOV PC,LRR14(地址地址A)1.1.程序程序1 1执行过程中执行过程中调用程序调用程序2 2;2.2.程序跳转至标号程序跳转至标号LabelLabel,执行程序,执行

32、程序2 2。3.3.同时硬件将同时硬件将“BL BL LabelLabel”的下一条指的下一条指令所在地址存入令所在地址存入R14R14(LRLR););4.4.程序程序2 2执行完后,将执行完后,将R14R14 (LRLR)寄存器的内容放入)寄存器的内容放入PCPC,返回程序返回程序1 1继续执行;继续执行;yyyy-M-d21/94Label?1.1.异常返回地址的处理与子程序调用类似,都是由硬件自动完成。异常返回地址的处理与子程序调用类似,都是由硬件自动完成。区别在于有些异常有一个小区别在于有些异常有一个小常量偏移常量偏移。2.2.当发生异常嵌套时,这些异常之间可能会发生冲突。如用户模当

33、发生异常嵌套时,这些异常之间可能会发生冲突。如用户模式下发生式下发生IRQIRQ中断嵌套中断嵌套时,时,R14_irqR14_irq中低级中断返回主程序的地中低级中断返回主程序的地址将被高级中断的返回地址所覆盖;址将被高级中断的返回地址所覆盖;R14(LR)寄存器与异常处理)寄存器与异常处理R14R14_irq用户模式下的程序用户模式下的程序0IRQ模式下的程序模式下的程序1指令指令m+1.指令指令m+n指令指令m地址地址A地址地址A未被破坏未被破坏IRQ模式下的程序模式下的程序2return指令指令j+1.指令指令j+k指令指令j地址地址B地址地址BR14_irq 被破坏被破坏returnr

34、eturn1.1.执行用户模式执行用户模式下的程序下的程序0 0;2.2.发生发生IRQIRQ中断中断后,硬件将带后,硬件将带偏移的返回地偏移的返回地址存入址存入IRQIRQ模式模式下的下的R14_irqR14_irq寄寄存器,存器,用户模用户模式下的式下的R14R14没有没有被破坏被破坏;3.IRQ3.IRQ服务程服务程序序1 1执行完后,执行完后,可将可将R14_irqR14_irq寄寄存器的内容减存器的内容减去偏移量后存去偏移量后存入入PCPC,返回之,返回之前被中断的程前被中断的程序;序;4.4.如果在如果在IRQIRQ处理程序中打处理程序中打开开IRQIRQ中断,并中断,并且再次发生

35、且再次发生IRQIRQ中断;中断;5.5.硬件将返回硬件将返回地址保存在地址保存在R14_irqR14_irq寄存器寄存器中,中,原来保存原来保存的返回地址信的返回地址信息将被覆盖,息将被覆盖,造成错误造成错误;6.6.在程序在程序2 2返回返回到程序到程序1 1,然后,然后在返回到用户在返回到用户模式下被中断模式下被中断的程序时,发的程序时,发生错误,将不生错误,将不能正确返回;能正确返回;解决办法是:使解决办法是:使用堆栈保护和恢用堆栈保护和恢复现场,不再使复现场,不再使用用R14)yyyy-M-d22/94R15(PC)寄存器的读操作)寄存器的读操作ARMARM指令以字为单位,因此指令以

36、字为单位,因此R15R15的的最低两位总是为最低两位总是为0 0;R15R15的值是处理器的值是处理器正在取指的指令地址正在取指的指令地址。因为有流水。因为有流水线,它与当前正在执行指令的地址之间存在一个线,它与当前正在执行指令的地址之间存在一个偏移偏移(对于确定的(对于确定的ARMARM芯片该值为常量)。芯片该值为常量)。当使用指令当使用指令STR/STMSTR/STM保存保存R15R15时,不同芯片中时,不同芯片中(可能是可能是三级流水的三级流水的ARM7ARM7或五级流水的或五级流水的ARM9)PCARM9)PC偏移量可偏移量可能是能是8 8或或1212,因此需,因此需事先计算出该芯片的

37、事先计算出该芯片的PCPC偏移量。偏移量。MOV R0,PC?PCPCPC-4PC-4PC-8PC-8正在执行正在执行正在译码正在译码正在取指正在取指流水线、流水线、ARM状态下状态下指令地址指令地址程序代码程序代码写入写入R15 R15 的值被当作指令地址,程序将从这个的值被当作指令地址,程序将从这个地址处继续执行(相当于执行地址处继续执行(相当于执行无条件跳转无条件跳转););由于由于ARMARM指令以字为边界,因此写入指令以字为边界,因此写入R15R15的值的值最低两位通常为最低两位通常为0b000b00。具体的规则取决于内核。具体的规则取决于内核结构的版本:结构的版本:a)a)在在V3

38、V3及以下版本中,写入及以下版本中,写入R15R15的值的最低两位被忽略,的值的最低两位被忽略,因此跳转地址由指令的实际目标地址(写入因此跳转地址由指令的实际目标地址(写入R15R15的值)的值)和和0 xFFFFFFFC0 xFFFFFFFC相与得到;相与得到;b)b)在在V4V4及以上版本中,写入及以上版本中,写入R15R15的值的最低两位如果不的值的最低两位如果不为为0 0,结果将不可预测。,结果将不可预测。R15(PC)寄存器的写操作寄存器的写操作yyyy-M-d24/94NZCV IM0M1M2M3M4TF.31 30 29 28 27 26 8 7 6 5 4 3 2 1 0程序状

39、态寄存器PSR P228条件代码标志条件代码标志保留保留控制位控制位溢出溢出oVerflow进进/借位扩展借位扩展 Carry零零 Zero负负Negative禁止禁止I IRQ禁止禁止 FIQThumb状态状态模式模式 (Mode)NZCVIM0M1M2M3M4TF1.一般指令带一般指令带S后缀后缀时,执行结果会影响条件代码标志;但有时,执行结果会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志。一些指令的执行总是会影响条件代码标志。2.所有所有ARM指令都可由指令都可由条件域条件域来指定是否需要执行,而来指定是否需要执行,而Thumb指令中只有分支指令可按条件执行。指令中只有分支

40、指令可按条件执行。3.每个异常模式还有每个异常模式还有SPSR用于保存在异常发生之前的用于保存在异常发生之前的CPSR。CPSR和和SPSR可通过特殊指令(可通过特殊指令(MRS/MSR)进行访问。)进行访问。25/94CPSR中的条件标志位中的条件标志位关于C、V值更多的解释 lCPUCPU内部以补码表示有符号数,内部以补码表示有符号数,8 8个二制位能够表达的整数范围是个二制位能够表达的整数范围是:+127 -128+127 -128,1616位表达的范围是:位表达的范围是:+32767 -32768+32767 -32768。如果运。如果运算结果超出了这个范围,就是产生了溢出算结果超出了

41、这个范围,就是产生了溢出,有溢出,说明有符号有溢出,说明有符号数的运算结果需要考虑溢出情况。数的运算结果需要考虑溢出情况。l溢出标志溢出标志V V和进位标志和进位标志C C是两个意义不同的标志。进位标志表示无是两个意义不同的标志。进位标志表示无符号数运算结果是否超出范围;溢出标志表示有符号数运算结果符号数运算结果是否超出范围;溢出标志表示有符号数运算结果是否超出范围。是否超出范围。l处理器对两个操作数进行运算时,按照无符号数求得结果,并相处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志应设置进位标志C C;同时,根据是否超出有符号数的范围设置溢;同时,根据是否超出有符号数

42、的范围设置溢出标志出标志V V。l应该利用哪个标志,则由程序员来决定。也就是说,如果将参加应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。数,则要注意是否溢出。l判断运算结果是否溢出有一个简单的规则:只有当两个相同符号判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加,而运算结果的符号与原数据符号相反时,产生溢出;其数相加,而运算结果的符号与原数据符号相反时,产生溢出;其他情况下,则不会产生溢出。他情况下,则不会产生溢出。如何判定溢出如何判定

43、溢出如果加法的最高位和次高位进位一致则没有溢出如果加法的最高位和次高位进位一致则没有溢出,如果不一致则溢出如果不一致则溢出举例说明四种条件代码标志的变化情况。举例说明四种条件代码标志的变化情况。M4:0模式模式可见的可见的Thumb状态寄存器状态寄存器可见的可见的ARM状态寄存器状态寄存器10000用户用户R0R7,SP,LR,PC,CPSRR0R14,PC,CPSR 10001快中断快中断R0R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiq R0R7,R8_fiqR14_fiq,PC,CPSR,SPSR_fiq 10010中断中断R0R7,SP_irq,LR_irq,PC,

44、CPSR,SPSR_fiq R0R12,R13_irq,R14_irq,PC,CPSR,SPSR_irq 10011管理管理R0R7,SP_svc,LR_svc,PC,CPSR,SPSR_svc R0R12,R13_svc,R14_svc,PC,CPSR,SPSR_svc 10111中止中止R0R7,SP_abt,LR_abt,PC,CPSR,SPSR_abt R0R12,R13_abt,R14_abt,PC,CPSR,SPSR_abt 11011未定义未定义R0R7,SP_und,LR_und,PC,CPSR,SPSR_und R0R12,R13_und,R14_und,PC,CPSR,SP

45、SR_und11111系统系统R0R7,SP,LR,PC,CPSR R0R14,PC,CPSR 程序状态寄存器CPSR模式位设置表yyyy-M-d29/94Thumb状态与ARM状态的寄存器映射关系 R1 R2 R3 R4 R5 T humb R6 R7(C PSR)(SPSR)R1 R2 R3 R4 R5 A R M R6 R7 R8(C PSR)(SPSR)R9 R10 R11 R12 R0 R0 状态 状态 堆栈指针(SP)连接寄存器(LR)程序计数器(PC)当前程序状态寄存器 被保存程序状态寄存器 堆栈指针(R13)连接寄存器(R14)程序计数器(R15)当前程序状态寄存器 被保存程序

46、状态寄存器 R8 R9 R10 R11 R12 堆栈指针(R13)连接寄存器(R14)程序计数器(R15)低低寄寄存存器器高高寄寄存存器器 Thumb状态下高寄存器(状态下高寄存器(R8R15)不是标准寄存器集的一部)不是标准寄存器集的一部分,但可以使用分,但可以使用MOV、CMP和和ADD指令对高寄存器操作。指令对高寄存器操作。ARM体系中存储空间体系中存储空间lARM体系使用单一的平板地址空间。该地址空间的大小为体系使用单一的平板地址空间。该地址空间的大小为232个个8位的字节单元,器其范围为位的字节单元,器其范围为0到到232 -1lARM地址空间也可以看作地址空间也可以看作230个个3

47、2位的字单元,这些字单元的位的字单元,这些字单元的地址可以被地址可以被4整除,也就是说该地址的低两位为整除,也就是说该地址的低两位为00(即地址线的即地址线的A0=0,A1=0)。地址为。地址为A的字数据包括地址为的字数据包括地址为A、A+1、A+2、A+3这这4个字节单元的内容个字节单元的内容lARMv4及以上版本,及以上版本,ARM地址空间也可以看作地址空间也可以看作231个个16位的半位的半个单元,这些字单元的地址可以被个单元,这些字单元的地址可以被2整除,也就是说该地址的最整除,也就是说该地址的最低位为低位为0(即地址线的即地址线的A0=0)。地址为。地址为A的字数据包括地址为的字数据

48、包括地址为A、A+1这这2个字节单元的内容个字节单元的内容l各存储单元的地址为各存储单元的地址为32位无符号数位无符号数,可以进行常规的整数运算。可以进行常规的整数运算。这些运算结果进行这些运算结果进行232 取模。即发生溢出时,地址发生卷绕取模。即发生溢出时,地址发生卷绕ARM支持的数据类型 P2301.字节:字节:8位位2.半字:半字:16位(必须分配为占用位(必须分配为占用2个字节)个字节)3.字:字:32位(必须分配为占用位(必须分配为占用4个字节)个字节)注意数据存储的对齐问题:注意数据存储的对齐问题:1)半字存储单元地址最低位为)半字存储单元地址最低位为0 2)字存储单元地址最低两

49、位为)字存储单元地址最低两位为0N位无符号数:位无符号数:二进制格式表示范围为二进制格式表示范围为0 2N-1的非负整数;的非负整数;N位有符号数时,位有符号数时,N位数据值使用位数据值使用2的补码格式表示范围为的补码格式表示范围为-2N-1 +2N-1-1的的整数整数1112342yyyy-M-d32/94数据存储格式1.1.ARMARM体系结构所支持的最大寻址空间为体系结构所支持的最大寻址空间为4GB4GB(2 23232字节)字节)2.2.ARMARM体系结构将存储器看成是以字节为单位的线性组合,存储单体系结构将存储器看成是以字节为单位的线性组合,存储单元地址从元地址从0 x000000

50、000 x00000000开始编址(开始编址(复位后从地址执行指令复位后从地址执行指令)3.3.ARMARM可按大端格式和小端格式两种方式存储字数据可按大端格式和小端格式两种方式存储字数据 地址偏移地址偏移小端格式小端格式 0 x00000003 0 x12 0 x00000002 0 x34 0 x00000001 0 x56 0 x00000000 0 x78 地址偏移地址偏移大端格式大端格式 0 x00000003 0 x78 0 x00000002 0 x56 0 x00000001 0 x34 0 x00000000 0 x12字数据字数据0 x12345678在内存中的格式在内存中

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(微机原理&7-ARM微处理器体系结构课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|