ARM体系结构

上传人:豆**** 文档编号:123655450 上传时间:2022-07-22 格式:PPT 页数:77 大小:3.08MB
返回 下载 相关 举报
ARM体系结构_第1页
第1页 / 共77页
ARM体系结构_第2页
第2页 / 共77页
ARM体系结构_第3页
第3页 / 共77页
点击查看更多>>
资源描述
第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 2 主要内容主要内容1 ARM CPU ISA的发展历史 2 典型ARM CPU Core体系结构 3 ARM编程模型 本章部分内容可以参考:http:/ ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 3 ARMARM公司公司 成立于1990年11月 前身为 Acorn计算机公司 主要设计ARM系列RISC处理器内核 授权ARM内核给生产和销售半导体的合作伙伴 ARM 公司不生产芯片 另外也提供基于ARM架构的开发设计技术 软件工具,评估板,调试工具,应用软件,总线架构,外围设备单元,等等第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 4 ARM CPU CoreARM CPU Core概述概述ARM内核是一种32/64位RISC微处理器,具有功耗低、性价比高、代码密度高等三大特色。ARM处理器具有RISC体系结构的典型特征:体积小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成 寻址方式灵活简单,执行效率高 指令长度固定 所有指令都可以条件执行,以增大执行吞吐量。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 5 2.1 ARM CPU ISA2.1 ARM CPU ISA的发展历史的发展历史 ARM CPU的指令集体系ISA(即ARM Instruction Set Architecture)从最初的V1版本发展到现在,先后出现了V1,V2,V3,V4,V4T,V5TE,V5TEJ,V6,V7,V8等主要的版本。ARM V1V3版本的处理器未得到大量应用,ARM处理器的大量广泛应用是从其V4版本开始的V7系列CPU被称作CorTex系列到目前V8是最新的版本,可以选择64或32执行状态。64执行状态针对64位处理技术,引入了一个全新指令集A64,可以存取大虚拟地址空间。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 6 Development of the ARM ArchitectureDevelopment of the ARM ArchitectureHalfword and signed halfword/byte supportSystem modeThumb instruction set(v4T)Improved interworkingCLZ Saturated arithmeticDSP MAC instructionsExtensions:Jazelle(5TEJ)SIMD InstructionsMulti-processingv6 Memory architectureUnaligned data supportExtensions:Thumb-2(6T2)TrustZone(6Z)Multicore(6K)Thumb only(6-M)Note that implementations of the same architecture can be different Cortex-A8-architecture v7-A,with a 13-stage pipeline Cortex-A9-architecture v7-A,with an 8-stage pipelineThumb-2Architecture Profiles7-A -Applications7-R -Real-time7-M -Microcontrollerv4v5v6v7v864bit Arch第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 7 -ARM V4-ARM V4ARMV4是目前支持的最老的架构,是基于32-bit地址空间的32-bit指令集。ARMv4除了支持ARMv3的指令外还扩展了:v支持支持halfwordhalfword的存取的存取v支持支持bytebyte和和halfwordhalfword的符号扩展读的符号扩展读v支持支持ThumbThumb指令指令v提供提供ThumbThumb和和NormalNormal状态的转换指令状态的转换指令v进一步的明确了会引起进一步的明确了会引起UndefinedUndefined异常的指令异常的指令 v对以前的对以前的26bits26bits体系结构的体系结构的CPUCPU不再兼容不再兼容 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 8 -ARMv4T-ARMv4TARMv4T增加了16-bit Thumb 指令集,这样使得编译器能产生紧凑代码(相对于32-bit代码,内存能节省到35%以上)并保持32-bit系统的好处。Thumb在处理器中仍然要扩展为标准的32位ARM指令来运行。用户采用16位Thumb指令集最大的好处就是可以获得更高的代码密度和降低功耗。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 9 -ARM V5TE-ARM V5TE1999年推出ARMv5TE其增强了Thumb体系,增强的Thumb体系增加了一个新的指令同时改进了Thumb/ARM相互作用、编译能力和混合及匹配ARM与Thumb例程,以更好地平衡代码空间和性能并在ARM ISA上扩展了增强的DSP 指令集:增强的DSP指令包括支持饱和算术(saturated arithmetic),并且针对Audio DSP应用提高了70%性能。E扩展表示在通用的CPU上提供DSP能力。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 10 -ARMv5TEJ-ARMv5TEJ2000年推出ARMv5TEJ,增加了Jazelle扩展以支持Java加速技术(处理器指令层对JAVA加速)。Jazelle技术比仅仅基于软件的JVM性能提高近8倍的性能减少了80的功耗。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 11 -ARMv6-ARMv62001年推出ARMv6,它在许多方面做了改进如内存系统、异常处理和较好地支持多处理器。SIMD扩展使得广大的软件应用如Video和Audio codec的性能提高了4倍。Thumb-2和TrustZone 技术也用于ARMv6中。ARMv6第一个实现是2002年春推出的ARM1136J(F)-STM处理器,2003年又推出了 ARM1156T2(F)-S 和ARM1176JZ(F)-S处理器。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 12 -ARMv7-ARMv7ARMv7定义了3种不同的处理器配置(processor profiles):Profile AProfile A是面向复杂、基于虚拟内存的是面向复杂、基于虚拟内存的OSOS和应用的和应用的 Profile RProfile R是针对实时系统的是针对实时系统的 Profile MProfile M是针对低成本应用的优化的微控制器的是针对低成本应用的优化的微控制器的。所有ARMv7 profiles实现Thumb-2技术,比纯32位代码少使用31%的内存,高出38%的性能。同时还包括了NEON技术的扩展提高DSP和多媒体处理吞吐量400,并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要。关于ARM架构发展可以参考:http:/ ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 13 -ARMv8-ARMv82011年11月,ARM公司发布了新一代处理器架构ARM V8,ARM的首个64位架构。在继承了V7架构的基础上,可以选择64或32执行状态。64执行状态针对64位处理技术,引入了一个全新指令集A64,可以存取大虚拟地址空间;运用ARMv8指令集的产品:ARM 12年十月发布了Cortex-A53 and Cortex-A57 核心。13年苹果基于V8架构的Apple 7使用在了iPhone 5S上。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 14 ARM/ThumbARM/Thumb的命名规范(的命名规范(ClassicClassic命名)命名)由于ARM的每个版本都有一系列的可变版本,其命名规范(Classic命名)如下:以ARMv开头ARM指令集的版本号(15)可变功能标识(T表示支持Thumb指令,M-表示支持乘法指令,E 增强型DSP指令,J Java加速器Jazelle,SIMD ARM媒体功能扩展),但是ARMv4和其上的版本缺省都支持M功能,因此ARMv4和其上的版本的标识中可以不用标识M.1.如果3中描述的功能不存在,则在该功能标识符前加x 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 15 ARMARM处理器命名(处理器命名(ClassicClassic命名)命名)采用上述的架构,形成一系列的处理器。有时候还要区分处理器核和处理器系列。不过,在这里其实不用区分太细,毕竟这是功能的小部分的变化,核心是相同的。规则:ARMxyzTDMIEJF-S x-处理器系列 y-存储管理/保护单元 z-cache T-支持Thumb指令集 D-支持片上调试 M-支持快速乘法器 I-支持Embedded ICE,支持嵌入式跟踪调试 E-支持增强型DSP指令 J-支持Jazelle F-具备向量浮点单元VFP-S-可综合版本 如ARM7TDMI第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 16 ARMARM处理器的分类(现在常用命名)处理器的分类(现在常用命名)结构体系版本(Architecture)ARM v4TARM v5TE ARM v6ARM Cortex(v7)Processor FamilyProcessor Family ARM7 ARM9 ARM10 ARM11 ARM Cortex 按应用特征分类按应用特征分类(定义定义3 3种不同的处理器配置种不同的处理器配置)应用处理器应用处理器 Application Processor 实时控制处理器实时控制处理器 Real-time Controller 微控制器微控制器 Micro-controller特征:特征:MMU,Cache 最快频率、最高性能、合理功耗最快频率、最高性能、合理功耗 特征:特征:MPU,Cache 实时响应、合理性能、较低功耗实时响应、合理性能、较低功耗 特征:特征:no sub-memory system 一般性能、最低成本、极低功耗一般性能、最低成本、极低功耗 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 17 Embedded ProcessorsEmbedded Processors第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 18 Embedded ProcessorsEmbedded Processors第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 19 Which architecture is your processor?Which architecture is your processor?第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 20 作业二作业二1、查找资料确定自己的手机的CPU型号,是哪个厂家生产的,CPU是ARM的哪种体系结构版本?CPU有何特别的技术,简要介绍各种技术。以及此CPU其它性能指标。10月28号晚20点之前交给学习委员,学习委员统一打包发给我。超过截止时间则没有本次作业成绩。作业文件命名规则:学号-姓名-作业X作业评分标准大概是从格式排版,到内容完整度、深度等方面考核,还有要看是否是经过多个资料整理分析的,还是直接复制一段网上文字的,根据这些评分。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 21 作业二作业二作业二评分标准:1、型号、厂家、体系结构版本各10分,共30分2、特别的技术 30分3、性能指标 25分4、格式及排版 10分5、作业命名规范 5分其中2点,你的CPU中包含的特别的技术要有对应的解释,如Thumb、NEON、Jazelle、ARM TrustZone等。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 22 -ARM Family-ARM FamilyARM7 FamilyARM9 FamilyARM10 FamilyARM11 Family150DMIPS300 DMIPS500 DMIPS1000 DMIPSARM Cortex FamilyARM720TARM1136J ARM1176JZARM1026EARM920T/ARM922T ARM926EJCortex AApplication ProcessorARM7TDMIARM1156T2ARM1026EARM946ECortex REmbedded RT ControllerARM7TDMIARM966E ARM968ECortex MMicro-controllerARM Architecture第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 23 已广泛应用的已广泛应用的ARMARM处理器处理器ARM7 世界上最为广泛使用的世界上最为广泛使用的 CPU 之一之一 100MHzARM9 100-300MHz第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 24 ARM11 ARM11 芯片芯片ARM11 300-700+MHz300-700+MHz SIMD SIMD 指令扩展支持更丰富的多媒体应用指令扩展支持更丰富的多媒体应用 4040多家授权芯片公司多家授权芯片公司FOMA N902iFirst ARM11 based phoneOMAP2420i.MX31/i.MX31L第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 25 高性能的高性能的ARMARM嵌入式处理器嵌入式处理器处理器提供超过2 DMIPS/MHZ 的性能运行于 1GHz 频率(90nm or 65nm 制造工艺)功耗小于 300mWARM Cortex A8 Application Processor第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 26 CortexCortex系列处理器(命名及)对比系列处理器(命名及)对比ARM Cortex A8 Application ProcessorARM Cortex A8 Application Processor第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 27 Cortex-M3 Cortex-M3 实现实现$1$1 ARMARM芯片芯片ARM Cortex ArchitectureThumb-2 ISA3 Stage Pipeline1.22 DMIPS/MHz 30%over ARM7TDMI33K gates 30%smaller than ARM7TDMI Luminary MicroLuminary Micro的的StellarisStellaris系列系列MCUMCU产品售价仅产品售价仅1 1美元美元ARM Cortex-M3 微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 28 生产生产ARMARM处理器的主要厂家处理器的主要厂家TI TI(德州仪器)(德州仪器)Omap3430 Cortex-A8核600MHz(诺基亚N96)Omap3530 Cortex-A8核600MHz ARM+DSP双核SamsungSamsung(三星)(三星)S5PC100 Cortex-A8核 600MHz (iPhone 3GS和M9都应用此芯片)S5PC110/S5PV210 Cortex-A8核 1GHZ FreescaleFreescale(飞思卡尔)(飞思卡尔)i.MX512/i.MX513/i.MX515 Cortex-A8核600MHz1GHz(在多款上网本中得到应用)第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 29 生产生产ARMARM处理器的主要厂家处理器的主要厂家MarvellMarvell(马维尔)(马维尔)PXA930 800MHz Cortex-A8核 ARMADA 500/600/1000系列 Sheeva PJ4核心 1GHz1.2GHz(支持ARMv7指令集,架构异同)QualcommQualcomm(高通)(高通)QSD8650A/QSD8672(Snapdragon系列)1.3G1.5G scorpion核心(支持ARMv7指令,架构异同)骁龙400系列(Cortex-A7)MSM8928-红米NOTE 4GNvidiaNvidia(英伟达)(英伟达)Tegra ARM11核 700MHz Tegra2(下一代产品)Cortex A8(或A9)核 MTK MTK(联发科联发科MediaTek)MediaTek)MTK MT6592八核,Cortex-A7 1.4-2GHZ 红米NOTE第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 30 主要内容主要内容1 ARM CPU ISA的发展历史 2 典型ARM CPU Core体系结构 3 ARM编程模型 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 31 2.2 2.2 典型典型ARM CPUARM CPU体系结构体系结构结构特征结构特征ARM内核采用RISC体系结构。ARM体系结构的主要特征如下:(1)大量的寄存器,并可以用于多种用途。(2)采用Load/Store体系结构。(3)每条指令都条件执行。(4)采用多寄存器的Load/Store指令。(5)单周期指令内同时完成移位操作和ALU。(6)通过协处理器指令集来扩展ARM指令集。(7)体系支持Thumb指令集第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 32 2.22.2典型的典型的ARM CPU CoreARM7TDMIARM CPU CoreARM7TDMI结构结构 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 33 ARM7TDMIThumb Thumb 架构扩展架构扩展,提供两个独立的指令集:提供两个独立的指令集:ARM ARM 指令,均为指令,均为 3232位位ThumbThumb指令,均为指令,均为 1616位位两种运行状态,用来选择哪个指令集被执行两种运行状态,用来选择哪个指令集被执行内核具有内核具有DebugDebug扩展结构扩展结构增强乘法器增强乘法器 (32x8)(32x8)支持支持6464位结果位结果EmbeddedICE EmbeddedICE 逻辑逻辑 3 3 级流水线级流水线 冯冯诺依曼架诺依曼架构构 CPI(Cycle Per CPI(Cycle Per Instruction)Instruction)约约为为1.91.9第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 34 乘法器乘法器指令指令解码解码地址地址自增器自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS1:0LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM4:0D31:0桶桶移位器移位器32 位位 ALUDBE写数据写数据 寄存器寄存器读数据读数据 寄存器寄存器地址寄存器地址寄存器寄存器寄存器 BankA31:0ABE及及控制控制 逻辑逻辑PC Update解码站解码站指令指令 解压缩解压缩IncrementerPCABusBBusALUBusARM7TDMI CoreARM7TDMI Core的结构的结构第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 35 ARM7TDMIARM7TDMI引脚逻辑图引脚逻辑图第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 36 ARM7TDMIARM7TDMI指令流水线指令流水线为增加处理器指令流的速度,ARM7 系列使用3级流水线。允许多个操作同时处理,而非顺序执行。PC指向正被取指的指令,而非正在执行的指令。FetchDecodeExecute从存储器中读取指令从存储器中读取指令解码指令中用到的寄存器解码指令中用到的寄存器寄存器读(从寄存器寄存器读(从寄存器Bank)移位及移位及ALU操作操作寄存器写(到寄存器寄存器写(到寄存器Bank)PCPCPC-4PC-2PC-8PC-4ARMThumb第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 37 ARM9TDMIARM9TDMI指令流水线指令流水线InstructionFetch Shift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 38 理想的理想的3 3级流水线(级流水线(ARM7TDMI:ARM7TDMI:无访存操作)无访存操作)第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 39 ARMARM的参有的参有LDRLDR指令流水线指令流水线 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 40 Cortex-A8Cortex-A8的指令流水线(的指令流水线(1313级)级)第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 41 本节重点本节重点1、ARM架构发展史 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 42 本节重点本节重点2、ARM典型CPU 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 43 主要内容主要内容1 ARM CPU ISA的发展历史 2 典型ARM CPU Core体系结构 3 ARM编程模型 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 44 2.3.12.3.1数据宽度(类型)数据宽度(类型)数据类型 字节型数据(字节型数据(ByteByte):):数据宽度为8bits 半字数据类型(半字数据类型(HalfWordHalfWord):):数据宽度为16bits,存取式必须以2字节对齐的方式 字数据类型(字数据类型(WordWord):):数据宽度为32bits,存取式必须以4字节对齐的方式 字节字节半字半字字字第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 45 2.3.22.3.2工作状态和工作模式工作状态和工作模式工作状态工作状态 处理器有两种工作状态:ARM:32位,执行字对准的ARM指令Thumb:16位,执行半字对准的Thumb指令ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 46 2.3.22.3.2工作状态和工作模式工作状态和工作模式工作状态工作状态 进入Thumb状态:执行BX指令,并设置操作数寄存器的状态(位0)为1。在Thumb状态进入异常(IRQ,FIQ,UNDEF,ABORT,SWI etc.),当异常处理返回时自动转换到Thumb状态进入ARM状态:执行BX指令,并设置操作数寄存器的状态(位0)为0。进入异常时,将PC放入异常模式链接寄存器中,从异常向量地址开始执行也可进入ARM状态;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 47 作业三作业三查找资料,撰写分析说明,回答以下问题:ARM跳转指令有几种?分析为什么由跳转到Thumb状态要用BX指令?为什么地址最后要“+1”?ARM指令是不是对齐的?是什么对齐的?指令为什么需要对齐?有什么好处?说明:可以参考资料,但不能全部直接复制粘贴,问题回答缺一个扣一个的分,回答不准确的也扣分。格式乱七八糟的也会扣分。作业文件命名规则:学号-姓名-作业三第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 48 2.3.22.3.2工作状态和工作模式工作状态和工作模式 工作模式工作模式 处理器模式处理器模式说明说明用户模式(User)正常程序执行模式,用于应用程序异常模式(FIQ)快速中断处理,用于支持高速数据传送或通道处理异常模式(IRQ)用于一般中断处理异常模式(Supervisor)用于系统初始化或操作系统功能异常模式(Abort)存储器保护异常处理异常模式(Undefined)未定义指令异常处理系统模式(System)运行特权操作系统任务(ARM V4以上版本)监控模式(Monitor)可以在安全模式与非安全模式之间进行转换Cortex-A8内核的处理器模式第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 49 2.3.22.3.2工作状态和工作模式工作状态和工作模式工作模式工作模式 User模式模式程序不能访问有些受保护的资源程序不能访问有些受保护的资源只能通过异常的形式来改变只能通过异常的形式来改变CPU的当前运行模式的当前运行模式特权模式特权模式可以存取可以存取系统中的系统中的任何资源任何资源System模式模式与与User模式的运行环境一样模式的运行环境一样但是它可以不受任何限制的访问任何资源但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些该模式主要用于运行系统中的一些特权任务特权任务FIQ模式模式IRQ模式模式Supervisor模式模式Abort模式模式Undefined模式模式异常模式异常模式:主要是在:主要是在外部中外部中断断或者程序执行或者程序执行非法操作非法操作时时会触发会触发Monitor模式模式第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 50 2.3.32.3.3寄存器寄存器 ARMARM寄存器概述寄存器概述ARM Cortex-A8处理器有40个32位寄存器寄存器 3232个通用寄存器个通用寄存器 1 1个程序计数器个程序计数器 7 7个状态寄存器个状态寄存器这些寄存器不能同时看到不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 51 ARMARM微处理器:微处理器:ARM Cortex-AARM Cortex-A寄存器寄存器第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 52 ARM 有40个32-Bits长的寄存器:32个通用寄存器(完全通用,用于存放数据或地址)1个PC(program counter)1个CPSR(current program status register)6个SPSR(saved program status registers)当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取:相应的r0-r12(除FIQ模式外共用-FIQ只共用r0-r7)相应的 r13(the stack pointer,sp)和 r14(the link register,lr)r15(the program counter,pc),所有模式共用。CPSR(current program status register,cpsr),所有模式共用 特权模式(除system模式)还可以存取:相应的 spsr(saved program status register)第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 53 ARMARM微处理器微处理器:Thumb State:Thumb State寄存器寄存器 Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为:8个通用寄存器R0R7;程序计数器(PC);堆栈指针(SP);链接寄存器(LR);有条件访问程序状态寄存器(CPSR)。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 54 ARMARM微处理器微处理器:Thumb State:Thumb State寄存器寄存器第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 55 ARM State ARM State 与与Thumb StateThumb State寄存器关系寄存器关系 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)当前程序状态寄存器 被保存程序状态寄存器 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R0 堆栈指针(R13)连接寄存器(R14)程序计数器(R15)低寄存器高寄存器注意:在发生异常时,处理器自动进入ARM状态。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 56 处理器模式与寄存器的关系处理器模式与寄存器的关系异常发生时伴随的模式切换意味着,被调用的异常处理程序会访问:它自己的堆栈指针(SP_)它自己的链接寄存器(LR_)它自己的备份程序状态寄存器(SPSR_)如果是FIQ异常处理,5个其它的通用状态寄存器(r8_FIQ to r12_FIQ)其它寄存器和原来模式下的寄存器是相同的第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 57 2.3.32.3.3寄存器寄存器 通用寄存器通用寄存器通用寄存器是R0-R15的寄存器,分为三类 没有对应影子寄存器的寄存器没有对应影子寄存器的寄存器R0-R7 R0-R7 有对应影子寄存器的寄存器有对应影子寄存器的寄存器R8-R14R8-R14 程序计数器程序计数器R15(R15(或者或者PC)PC)影子寄存器是指该寄存器在不同的模式下对应的物理寄存器第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 58 2.3.32.3.3寄存器寄存器 通用寄存器通用寄存器R0-R7所有模式下,所有模式下,R0-R7R0-R7所对应的所对应的物理寄存器物理寄存器都是都是相同的相同的 这八个寄存器是真正意义上的通用寄存器,这八个寄存器是真正意义上的通用寄存器,ARMARM体系结构中对它们没有作任何特殊的假设,体系结构中对它们没有作任何特殊的假设,它们的功能都是等同的。它们的功能都是等同的。在中断或者异常处理程序中一般都需要对这几在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。个寄存器进行保存。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 59 2.3.32.3.3寄存器寄存器 通用寄存器通用寄存器R8-R14访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。R8-R12各有两组物理寄存器:一组为FIQ模式,另一组是除FIQ以外的其他模式。R13-R14各有6个分组的物理寄存器,一个用于用户模式和系统模式,其他5个分别用于5种异常模式。R13(也被称为SP指针)被用作栈指针栈指针,通常在系统初始化时需要对所有模式下的SP指针赋值,当CPU在不同的模式时栈指针会被自动切换成相应模式下的值。R14有两个用途,一是在调用子程序时用于保存调用返调用子程序时用于保存调用返回地址回地址,二是在发生异常时用于保存异常返回地址发生异常时用于保存异常返回地址。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 60 不同模式下堆栈指针的初始化不同模式下堆栈指针的初始化在系统初始化(即系统复位)时需要初始化各模式分组的堆栈指针寄存器R13(R13_svc、R13_irq、R13_fiq、R13_abt和R13_und),这样才能在进入不同的模式时自动切换使用不同的堆栈空间。初始化时需注意堆栈指针必须保持8字节对齐。;中断模式堆栈的设置(涉及到CPSR格式和MSR指令)MSR CPSR_c,#0 x000000D2 ;切换到中断模式LDR R1,=IrqStackMOV SP,R1 ;设置中断模式堆栈指针;快速中断模式堆栈的设置MSR CPSR_c,#0 x000000D1 ;切换到快速中断模式LDR R1,=FiqStackMOV SP,R1 ;设置快速中断模式堆栈指针;中止模式堆栈的设置.第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 61 链接寄存器R14(LR)-1 R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 62 链接寄存器链接寄存器R14-2R14-2Lable程序A程序BR14R14寄存器与子程序调用BL Lable地址A?MOV PC,LRR14(地址A)Lable?1.程序A执行过程中调用程序B;操作流程2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14;3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 63 链接寄存器链接寄存器R14-3R14-3R14寄存器与异常发生 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。R14寄存器注意要点 当发生异常嵌套时,这些异常之间可能会发生冲突。例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 64 链接寄存器链接寄存器R14-4R14-4R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AareturnB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 65 链接寄存器链接寄存器R14-4R14-4R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AaB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏IRQ模式下的程序BareturnB.XA地址B地址B4.如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断,或者调用子程序;5.硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;被破坏6.在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;returnreturn 解决办法是确保R14的对应版本在发生中断嵌套时不再保存任何有意义的值(将R14入栈),或者切换到其它处理器模式下。第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 66 2.3.32.3.3寄存器寄存器 通用寄存器通用寄存器R15用作程序计数器用作程序计数器(PC)(PC),可以被读写,可以被读写 读到的读到的PCPC的值是的值是PCPC当前值加当前值加8 8(2 2个指令的长度,个指令的长度,三级流水线情况下),写三级流水线情况下),写PCPC则转移到写入地址则转移到写入地址执行程序。执行程序。ARM state:4ARM state:4字节对齐,最低两位字节对齐,最低两位 bits 1:0 bits 1:0永远为永远为0 0(V4V4以上版本,以上版本,V3V3以下是把写入值与以下是把写入值与0XFFFFFFFC0XFFFFFFFC与操作)与操作)THUMB stateTHUMB state:2 2字节对齐,最低位字节对齐,最低位bit 0bit 0为为0 0注:ARM存储器按字节组织第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 67 2.3.32.3.3寄存器寄存器 程序状态寄存器程序状态寄存器 ARM7TDMI内核包含1个CPSR(当前程序状态寄存器)和5个供异常处理程序使用的SPSR。CPSR在所有的模式下都是可以读写的,反映了当前处理器的状态,其包含::4 4个条件标志个条件标志(负(N)、零(Z)、进位(C)和溢出(V))2 2个中断使能标志个中断使能标志5 5个当前处理器的模式编码位个当前处理器的模式编码位其它的一些状态和控制标志(其它的一些状态和控制标志(ARM/ThumbARM/Thumb)第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 68 条件位:N=Negative result from ALU Z=Zero result from ALUC=ALU operation Carried out or borrowV=ALU operation oVerflowedQ 位:仅ARM v5TE-J架构支持指示饱和状态J 位仅ARM v5TE-J架构支持T=0;J=1 处理器处于Jazelle状态也可以和其他位组合DNM位:Do Not ModifyGE3:0 大于或等于(当执行SIMD指令时有效)IT7:2 Thumb2指令的条件执行 IF.THEN.指令执行状态位E位:大小端控制位,E=0 little endianA位:A=1 禁止不精确的数据异常中断禁止位:I =1:禁止 IRQ.F=1:禁止 FIQT BitT=0;J=0;处理器处于 ARM 状态T=1;J=0 处理器处于 Thumb 状态T=1;J=1 处理器处于 ThumbEE 状态Mode位:处理器模式位10000 User mode;10001 FIQ mode;10011 SVC mode;10111 Abort mode;11011 Undfined mode;11111 System mode;10110 Monitor mode;10010 IRQ2.3.32.3.3寄存器寄存器 程序状态寄存器程序状态寄存器第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 69 本节重点本节重点1、ARM编程模型 第2章 ARM体系结构成于大气 信达天下Copyright2015lshChengdu University of Information Technology 70 处理器模式处理器模式说明说明用户模式(User)正常程序执行模式,用于应用程序异常模式(FIQ)快速中断处理,用于支持高速数据传送或通道处理异常模式(I
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!