版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章基于ARM架构的嵌入式微处理器1
1
3.1概述
3.2嵌入式微处理器的组成
3.3常用的三种ARM微处理器介绍23.1基于ARM架构的嵌入式微处理器概述在多媒体技术、网络互连和开放操作系统等方面的应用,是8位机体系结构所难以逾越的障碍,也就正好成为选择32位嵌入式系统的主要理由。所有的ARM芯片在内核上保持高度的兼容性,这样在学习和开发嵌入式系统中就可以使用通用的开发、调试工具。目前ARMCPU内核里面都有一个EmbeddedICE逻辑模块,用于采集CPU总线信号,而对EmbeddedICE以及CPU执行单元的通信是通过扫描线来进行的,所有的扫描线都受到测试访问控制端口(TAP)控制,并通过芯片与JTAG接口连接,故可保持不同CPU之间的接口控制的兼容性。调试工具只要支持TAP端口访问,就能进行ARM的系统调试。332位体系结构的性能优势(1)寻址空间大在ARM的体系结构里,所有的资源,比如存储器、控制寄存器、I/O端口等都是在有效地址空间内采用统一编址的,方便了程序在不同芯片间的移植。(2)运算和数据处理强
ARM采用了先进的CPU设计理念、多总线接口(哈佛结构)、多级流水线、高速缓存、数据处理增强等技术,这样几乎所有的通信协议栈都能在32位CPU中轻松实现。使得C、C++、Java等高级语言得到了广泛的应用空间。另外多数的ARM芯片都包含有DMA控制器,这样就进一步提高了整个芯片的数据能力。432位体系结构的性能优势(3)操作系统的支持
如果某个系统需要有多任务的调度、图形化的人机界面、文件管理系统、网络协议等需求,那么就必须使用嵌入式操作系统。一般复杂的操作系统在多进程管理中还需要有硬件存储器保护单元(MPU)或管理单元(MMU)的支持。目前ARM9以上的微处理器均有这些支持,可运行Linux、WinCE和VxWorks等众多操作系统。5
ARM体系结构版本和特种功能介绍
ARM架构处理器定义了6种不同的版本:V1版架构:基本的数据处理指令(无乘法);字节、半字和字的Load/Store指令;转移指令,包括子程序调用及链接指令;软件中断指令;寻址空间64MB(226)。V2版架构:在V1版上进行了扩充,例如ARM2和ARM3架构,并增加了以下功能:乘法和乘加指令;支持协处理器操作指令;快速中断模式;SWP/SWPB的基本存储器与寄存器交换指令;寻址空间64MB。6
基于指令集体系结构的分类版本V3版架构:V3架构对ARM体系结构作了较大的改动,把寻址空间增至32位,增加了当前程序状态寄存器CPSR和存储程序状态寄存器SPSR,以便增强对异常情况的处理。增加了中止和未定义二种处理模式。ARM6就是采用该版架构。V4版架构:它在V3版架构上作了进一步扩充,使ARM使用更加灵活。ARM7、ARM8、ARM9都采用该版结构。增加功能有符号化和半符号化半字及符号化字节的存取指令;增加了16位的Thumb指令集;完善了软件中断SWI指令的功能;处理器系统模式引进特权方式时使用用户寄存器操作;把一些未使用的指令空间扑获为未定义指令。7
基于指令集体系结构的分类版本V5版架构:ARM10和XScale都采用该版架构。新增指令有:带有连接和交换的转移BLX指令;计数前导零CLZ指令;BBK中断指令;增建了数字信号处理指令;为协处理器增加了更多可选择的指令。V6版新架构是在低功耗的同时,还强化了图形处理性能,追加有效进行多媒体处理的SIMD功能。于2002年推出,ARM11采用该架构,具体新增加了以下功能:THUMBTM-35%代码压缩;DSP扩充-高性能定点DSP功能;JazelleTM-Jova性能优化,可提高8倍;Media扩充-音/视频性能优化,可提高4倍。另外还支持多微处理器内核。83.1.2ARM微处理器系列产品及性能简介
1)系列产品分类
ARM处理器当前有5个产品系列:ARM7、ARM9、ARM9E、ARM10和ARM11。进一步的产品来自于合作伙伴,例如IntelXscale微体系结构和产品。
ARM7、ARM9、ARM9E和ARM10是4个通用处理器系列。每个系列提供一套特定的性能来满足设计者对功耗、性能、和体积的需求。
ARM11是第5个产品系列,是专门为安全设备而设计的。性能高达1.2MIPS(Xscale微体系结构),功耗测量为μW/MHz,并且所有体系结构兼容。92)ARM嵌入式微处理器性能简介
ARM公司是嵌入式RISC处理器的知识产权IP供应商,它为ARM架构处理器提供了ARM处理器内核和ARM处理器核。
处理器内核只保持了最基本的组织架构。
处理器核是在最基本的处理器内核基础上增加了Cache、存储器管理单元MMU、协处理器C15、先进微控制器总线架构AMBA接口以及EMT宏单元等部件,这样就构成了ARM处理器核。10MPU的生产厂家简介由集成电路厂商在处理器内核和处理器核基础上设计,嵌入各种外围和处理部件,形成各种嵌入式微处理器MPU。例如:Intel公司:PXA25X、27X系列微处理器(采用XScale
核);TI公司:OMAP59XX微处理器,(采用ARM+DSP双核);Motorola公司:MX1微处理器MPU(ARM922T核);ATMEL公司:AT91系列MPU(采用ARM7TDMI内核、ARM920T核);Philips公司:IPC2XXX系列(ARM7TDMI内核)等等。11ARM微处理器后缀命名的含义标志含义说明T支持Thumb指令集Thumb指令集版本1:ARMv4TThumb指令集版本2:ARMv5TThumb-2:ARMv6TD片上调试DebugM支持长乘法32位乘32位得到64位,32位的乘加得到64位IEmbeddedICE在线仿真EDSP指令增加了DSP算法处理器指令:16位乘加指令,带符号数的加减法,双字数据操作,cache预取指令JJava加速器Jazelle提高java代码的运行速度S可综合提供VHDL或Verilog语言设计文件12
说明1:Thumb指令集(T变种)
支持Thumb指令的ARM体系版本,一般加字符T来表示(如V4T)。目前Thumb指令集有以下两个版本:Thumb指令集版本1,此版本作为ARM体系版本4的T变种;Thumb指令集版本2,此版本作为ARM体系版本5的T变种。
与版本1相比,Thumb指令集的版本2具有以下特点:
通过增加新的指令和对已有指令的修改,来提高ARM指令和Thumb指令混合使用时的效率。增加了软件断点(BKPT)指令和更严格地定义了Thumb乘法指令对条件码标志位的影响。13
说明2、长乘指令(M变种)
M变种增加了两条这样的长乘指令:其中一条指令完成32位整数乘以32位整数,生成64位整数的长乘操作;另一条指令完成32位整数乘以32位整数,然后在加上一个32位整数,生成64位整数的长乘加操作。这种长乘的应用场合M变种很适合。14
说明3、增强型DSP指令(E变种)E变种的ARM体系增加了一些增强处理器对典型DSP算法处理能力的附加指令:几条新的完成16位数据乘法和乘加操作的指令;实现饱和的带符号数的加减法操作的指令。Cache预取指令PLD;E变种首先在ARM体系版本5T中使用,用字符E表示。在早期的一些E变种中,未包含双字读取指令LDRD,双字写入指令STRD,协处理器的寄存器传输指令MCRR/MRRC以及Cache预取指令PLD。这种E变种记作ExP,其中x表示缺少,P代表上述的几种指令。15
说明4、Java加速器Jazelle(J变种)ARM的Jazelle技术是Java语言和先进的32位RISC芯片完美结合的产物。Jazelle技术使得Java代码的运行速度比普通的Java虚拟机提高了8倍,这是因为Jazelle技术提供了Java加速功能,大幅的提高了机器的运行性能,而功耗反而降低了80%。Jazelle技术使得在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统和中间件以及其他的应用程序成为可能。Jazelle技术的诞生使得一些必须用到协处理器和双处理器的场合可以用单处理器代替,这样,既保证了机器的性能,又降低了功耗和成本。ARM体系版本4TEJ是最早包含了J变种。用字符J表示J变种。16
说明5、ARM媒体功能扩展(SIMD变种)ARM的SIMD媒体功能扩展为这些应用系统提供了解决方案。它为包括音频/视频处理在内的应用系统提供了优化功能。其主要特点如下:使处理器的音频/视频处理的性能提高了2~4倍。可同时进行两个16位操作数或4个8位操作数的运算。用户可以自定义饱和运算的模式。可进行两个16位操作数的乘加/乘减运算及32位乘以32位的小数乘加运算。同时8位/16位选择操作。173)ARM处理器内核/处理器核的分类
(1)ARM7T和ARM7EFamilyUnifiedCache内存管理流水线级别ThumbDSPJazelleARM7TDMI无无3有无无ARM7TDMI-S无无3有无无ARM710T/720T8kMMU3有无无ARM740T8k或4kMPU3有无无ARM7EJ-S无无3有有有18乘法器指令解码地址自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS[1:0]LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM[4:0]D[31:0]桶移位器32位ALUDBE写数据寄存器读数据寄存器地址寄存器寄存器BankA[31:0]ABE及控制逻辑PCUpdate解码站指令解压缩IncrementerPCABusBBusALUBusARM7TDMI内核内核19ARM7微处理器系列主要特点
ARM7微处理器系列为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。其具有如下特点:具有嵌入式ICE-RT逻辑,调试方便。极低的功耗(100mW左右),适合对功耗要求较高的应用,如便携式产品。采用三级流水线。采用ARMV4指令集。20ARM7微处理器系列主要特点能够提供0.9MIPS/MHZ的三级流水线结构。兼容16位Thumb指令集;对操作系统的支持广泛,包括WinCE、Linux等;指令系统与ARM9、ARM10E系列兼容,便于用户的产品升级换代;主频通常为20-100MHZ。速度为0.9MIPS/MHz。
ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器内核。主要性能:工艺0.35um(新近0.25um)、电压3.3V(新近1.2v)、时钟20-133MHZ、功耗87mW。注:MPU只支持实时操作系统。21ARM7TDMIARM7TDMI内核地址地址数据读AMBA
接口写缓冲MMU数据写数据ARM7xxT控制逻辑CacheAMBA总线接口JTAG和非
AMBA信号CP15带Cache的ARM7TDMI
ARM710T8K统一的cache完整的内存管理单元(MMU),支持虚拟地址和存储器保护写缓冲ARM720T同ARM710T,但支持WinCEARM740T8K统一的cache内存管理单元写缓冲22(2)ARM9FamilyCache内存管理流水线级别ThumbDSPJazelleARM9TDMI无无5有无无ARM920T16K/16kMMU5有无无ARM922T8k/8kMMU5有无无ARM940T4k/4kMPU5有无无23ARM9TDMIInstructionFetchShift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARMorThumb
InstDecodeRegSelectRegReadShiftALURegWriteThumb®ARM
decompressARMdecodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI流水线24ARM9TDMIARM9TDMIDCacheICacheMMUGLUE外部存储器ARM940T2x4KcachesMPU写缓冲ARM9xxTARM920T2x16KcachesMMU支持虚拟地址和内存保护写缓冲带Cache的ARM9TDMI
25ARM9TDMI体系结构框图ARM9TDMICPU指令接口数据地址接口跟踪接口数据接口JTAG接口指令地址接口ARM9TDMI结构框图26
ARM920T体系结构框图27ARM920T体系结构框图28ARM9微处理器系列主要特点
ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能,在相同的工艺下其性能是ARM7的2倍,具有以下特点:5级整数流水线,工作频率一般为200MHz左右,提供1.1MIPS/MHZ的哈佛结构。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。采用哈佛体系结构。29ARM9微处理器系列主要特点全性能的MMU,支持包括WinCE、Linux等操作系统,MPU支持实时操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。ARM9是低价、低功耗、高性能系统处理器。典型产品ARM9TDMI主要性能:工艺0.25um(新近0.18um)、电压2.5V(新近1.2v)、时钟0-200MHZ、功耗150mW。
ARM9系列主要用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。30
ARM9EFamilyCache内存管理流水线级别ThumbDSPJazelleARM9E-S无无5有有无ARM946E-S4k-1M/4k-1MMPU5有有无ARM966E-S无无5有有无ARM968E-S无无5有有无ARM9EJ-S无无5/6有有有ARM926EJ-S14k-128k/4k-128kMMU5/6有有有31ARM9E微处理器系列主要特点
ARM9E系列微处理器为综合型处理器,使用单一的处理器内核提供了微处理器、DSP、Java应用系统的解决方案,极大地减少了芯片的面积和系统的复杂程度。具有以下特点:32ARM9E微处理器系列主要特点支持DSP指令集,应用高速数字信号处理的场合;5级整数流水线;最高主频可达300MHZ;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA总线接口;支持VFP9浮点处理协处理器;全性能的MMU,支持包括WinCE、Linux等操作系统,MPU支持实时操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。
ARM9E系列主要用于下一代无线设备、成像设备、工业控制、存储设备、数字消费品和网用场合。33(3)ARM10E和ARM10TFamilyARM10EJ-S无无6有有有ARM1026EJ-S0,4-128k/0,4-128kMMU6有有有Cache内存管理流水线级别ThumbDSPJazelleARM10E无无6有有无ARM1020E32k/32kMMU6有有无ARM1022E16k/16kMMU6有有无ARM10TDMI无无6有无无ARM1020T32k/32kMMU6有无无34ARM10E系列概述v5TE架构CPI1.36级流水线静态分支预测32kB指令cache和32kB数据cache支持“Hitundermiss”非阻塞的执行单元每周期64位的LDM/STM操作EmbeddedICE逻辑-RT-II支持新的VFPv1结构同ARM1020E,除了cache大小为16kB对SUDL(singleuserdesignlicense)有效ARM1020EARM1022E35ARM10E微处理器系列主要特点
ARM10E系列微处理器由于采用了新的体系结构,与同等的ARM9处理器相比较,在同样的时钟频率下,性能提高了近50%,同时又大大减少了芯片的功耗,在相同的工艺下其性能是ARM9的2倍。具有以下特点:36ARM10E微处理器系列主要特点支持DSP指令集,适合高速数字信号处理的场合;6级整数流水线;工作频率一般为400/600MHz左右;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA总线接口;支持VFP10浮点处理协处理器;内嵌并行读/写操作部件;全性能的MMU,支持包括WinCE、Linux等操作系统,MPU支持实时操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。ARM10E系列主要用于下一代无线设备、成像设备、工业控制、存储设备、数字消费品和网用场合。37ARM9vsARM10流水线的对比
38(4)ARM11FamilyCache内存管理流水线级别ThumbDSPJazelle浮点运算ARM1136J-S4-64kMMU8有有有无ARM1136JF-S4-64kMMU8有有有有ARM1156T2-S可配置9Thumb-2有无无ARM1156T2F-S可配置9Thumb-2有无有39ARM11微处理器系列主要特点
ARM11是采用ARMV6结构,内部具有8级流水线处理、动态分支预测与返回堆栈。在0.13um工艺下,ARM11TM的运行频率高达500-1000Mhz。在1.2V电压的条件下其功耗可以低至0.4mW/Mz。
ARM11中另一个重要的结构改进,是静、动组合的跳转予判。动态预测和静态预测的组合使ARM11处理器能达到85%的预测正确性。
ARM11包含一个64位端口、4种状态的跳转目标地址缓存。新的ARM11支持SIMD指令,可使某些算法的运算的速度提高2-3倍。40ARM11微处理器系列主要特点
ARMV6保持了100%的二进制向下兼容,使用户过去开发的程序可以进一步继承下去。增加了多媒体处理指令单元扩展,单指令流多数据流(SIMD)。增加了快速浮点运算和向量浮点运算。
目前ARM公布了三个新的ARM11系列微处理器内核系列,分别是ARM1136J内核、ARM1156T2内核、ARM1176JZ内核。41(5)XScale结构
Intel公司发展了新一代代微处理器体系结构就是XScale处理器。XScale处理器是基于ARMv5TE(第5版)体系结构所设计的,具有协处理器接口,可以直接扩展DSP处理器。目前已使用在数字移动电话、个人数字助理和网络产品等场合。XScale处理器是目前主要推广的一款ARM处理器。42(5)XScale结构
基于XScalePXA250微处理器性能如下:内核工作频率:100-400MHZ;I-Cache32KB和D-Cache32KB;I-MMU+D-MMU(各32路变换后备缓冲器TLB快表);7/8级流水线系统存储器接口:100MHZSDRAM;4-256MBSDRAM;支持16-256MBDRAM;4个SDRAM区,每个区支持64MB存储器;支持2个PCMCIA/CF卡插槽。外围接口:具有16个通道的DMA控制器;LCD控制器(支持被动DSTN和主动TFT显示,最大分辨率800*600*16;系统集成模块(GPIO、中断控制器、PWM);USB,3个UART,红外(FIR)、I2C总线接口、多媒体通信口、动态电源管理技术。43(6)ARM和DSP双核微处理器简介
TI公司的OMAP5910处理器是一款具有DSP(TMS320C55X,175MHZ)+RISC(ARM925核,175MHZ)的双核定点数字信号运算的微处理器。其具有高速度、低功耗,并提高了编程的灵活性,有利于对产品的软硬件升级,用于实现就有特殊功能的产品。主要特性如下:
ARM925核是ARM
RISC体系结构的先进代表,工作主频为175MHz。它包括存储器管理单元、16k字节的高速指令缓冲存储器、8k字节的数据高速缓冲存储器和17个字的写缓冲器。片内有192k字节的内部SRAM,可为液晶显示器等应用提供大量的数据和代码存储空间。ARM925核共有13个内部中断和19个外部中断,采用两级中断管理。此外,核内还有ARM
CP15协处理器和保护模块。
44(6)ARM和DSP双核微处理器简介
DSP子系统中的C55x
DSP核具有极佳的功耗性能比,工作主频为150/175MHz。支持无线网络传输与语音数据处理等工作,能提供高效谐振数据处理能力。
C55x
DSP核采用了增大的空闲省电区域、变长指令、扩大的并行机制。其结构针对多媒体应用做了高度优化,适合低功耗的实时语音图像处理。
还新增了图像位移预测、离散余弦变换/反变换和1/2像素插值的视频硬件加速器,提高数据处理速度,降低视频处理功耗。核内还包括32k字的双存取SRAM、48k字的单存以SRAM、16k字的片内ROM和12k字的高速指令缓存。
45(7)PowerPC架构微处理器简介
PowerPC架构的特点是可伸缩性好,方便灵活。PowerPC处理器品种很多,既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备等各个方面。目前PowerPC独立微处理器与嵌入式微处理器的主频从25MHz-700MHz不等,它们的能量消耗、大小、整合程度、价格差异悬殊,主要产品模块有主频350MHz-700MHzPowerPC750CX和750CXe以及主频400MHz的PowerPC440GP等。46PowerPC系列-MPC555特点:
带有浮点单元的PowerPC内核。26K字节的快速RAM和6K字节的TPU微码RAM。5V编程电压的448K字节的flashEEPROM。5V的I/O系统。串行系统:基于队列的串行多通道模块,两个CAN2.0B控制器模块。双定时处理单元(TPU3),模块化I/O系统。32个模拟量输入:两个基于队列的A/D转换器(QADC64)。272引脚的PBGA封装。工作频率40MHz,-40℃~+125℃,双电源供电。47(8)MIPS:简介MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无互锁流水级的微处理器”(Microprocessorwithoutinterlockedpipedstages)。其机制是尽量利用软件办法避免流水线中的数据相关问题。MIPS处理器是由斯坦福(Stanford)大学JohnHennery教授领导的研究小组研制出来的。PresidentofStanfordUniversity,USAComputerarchitecturebookuseMIPSasfoundation48MIPS:发展历程1984年MIPS计算机公司成立。1986年推出R2000处理器。1988年推出R3000处理器。1989年IPOasMIPSComputerSystems,专注于workstations1991年推出第一款64位商用微处理器R4000。1992年,SGI收购了MIPS计算机公司之后,该公司又陆续推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型号的处理器。1998年,MIPS脱离SGI成为MIPSTechnologies之后IPO,其战略发生变化,把重点放在了嵌入式系统上。49(9)典型的嵌入式处理器(中国)
ARM已经与中兴、华为、东南大学、上海集成电路设计中心、中芯国际和大唐电信签订了技术授权协议。国内的微处理器系列有方舟系列:
方舟1号性能166MHz,功耗1.2瓦@166MHz,0.25微米CMOS,1层多晶硅,5层金属,封装HS-BGA,272个管脚,27mm*27mm。方舟2号:性能400MHz,功耗360mW@400MHz,0.18微米CMOS,1层多晶硅,6层金属封装PBGA,304个管脚,23mm*23mm。
龙芯系列是神州龙芯公司推出的兼顾通用和嵌入式微处理器特点的新一代32微处理器。采用0.18微米CMOS工艺制造,平均功耗0.4W。503.2嵌入式微处理器的组成3.2.1嵌入式微处理器内部结构算术逻辑单元ALU桶形移位寄存器高速乘法器协处理器控制器寄存器组513.2.2ARM微处理器结构特征
1)ARM微处理器的工作状态和工作模式从编程的角度看,ARM微处理器的工作状态有两种,可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
52处理器工作状态进入Thumb状态:执行BX指令,并设置操作数寄存器的状态(位[0])为1。在Thumb状态进入异常(IRQ,FIQ,UNDEF,ABORT,SWIetc.),当异常处理返回时自动转换到Thumb状态进入ARM状态:执行BX指令,并设置操作数寄存器的状态(位[0])为0。进入异常时,将PC放入异常模式链接寄存器中,从异常向量地址开始执行也可进入ARM状态53处理器运行模式
ARM微处理器支持7种运行模式,分别为:用户模式(USR):ARM处理器正常程序执行的模式。快速中断模式(
FIQ):用于高速数据传输或通道处理用于快速中断服务程序。当处理器的快速中断请求引脚有效,且CPSR(6位)中F位为0时(开中断),会产生FIQ异常。外部中断模式(IRQ):用于通用的中断处理,当处理器的外部中断请求引脚有效,且CPSR(7位)中I位为0时(开中断),会产生IRQ异常。系统的外设可通过该异常请求中断服务。特权模式或管理员模式(SVE):操作系统使用的保护模式。当执行软件中断SWI指令和复位指令时,就进入管理模式,在对操作系统运行时工作在该模式下。54处理器运行模式数据访问中止模式(ABT):用于虚拟存储器和存储保护,当存储器数据访问无效时就进入该模式。若处理器数据访问指令的地址不存在或该地址不允许当前指令访问时,也产生数据中止异常。未定义指令中止模式(UND):用于支持硬件协处理器的软件仿真。当ARM处理器或协处理器遇到不能处理的指令时,就要产生未定义指令异常。用户可使用该异常机制进行软件仿真,即用软件来模拟硬件功能,比如浮点运算。系统模式(SYS):运行具有特权的操作系统任务。与用户模式共用使用寄存器组,但是其使用权限要比在用户模式下高。55处理器运行模式
除用户模式之外的其他6种处理器模式称为特权模式。在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。其中,除系统模式外,其他5种特权模式又称异常模式。处理器模式可以通过软件进行切换,也可以通过外部中断或者异常处理过程进行切换。大多数用户工作在用户模式下。这时,应用程序不能够访问一些受操作系统保护的系统资源。应用程序也不能直接进行处理器模式的切换。56处理器运行模式当必须要进行处理器模式切换时,应用程序可以产生异常中断,在异常中断过程中进行模式切换。这种体系结构可以使操作系统控制整个系统的资源。系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所以的系统资源,也可以直接进行处理器模式切换。它主要供操作系统任务使用。57ARM微处理器:CPU模式User模式程序不能访问有些受保护的资源只能通过异常的形式来改变CPU的当前运行模式特权模式可以存取系统中的任何资源System模式与User模式的运行环境一样但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务FIQ模式IRQ模式Supervisor模式Abort模式Undefined模式异常模式:主要是在外部中断或者程序执行非法操作时会触发582)ARM处理器的寄存器
如ARM处理器共有37个寄存器被分为若干个组(BANK):30个通用寄存器;6个状态寄存器(1个专用于记录当前状态,5个备用于记录状态切换前的状态);1个程序计数器PC。
ARM处理器有7种不同的处理器模式,在每一种模式下都有一组相应的寄存器与之对应。即在每一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0-R14)、1至2个状态寄存器和程序计数器。在使用的寄存器中,有些是公用的、有些是独立使用的。59ARM的寄存器组织ⅠCPSRSPSR-SVCCPSRSPSR-abtCPSRSPSR-undCPSRSPSR-irqCPSRSPSR-fiq60ARM的寄存器组织Ⅱ(1)通用寄存器:包括R0~R15,以及程序计数器PC。当C和汇编互相调用时,R0-R3用来传递函数参数,可记为a0-a3。通用寄存器可以分为下面3类:①无备份寄存器R0~R7,也称为不分组寄存器;即在所有处理器模式下,它们都是同一个物理寄存器,可被同样的访问,没有体系结构所隐含的特殊用途。但正因为如此,在工作在不同处理器模式下,容易造成寄存器中的数据被破坏。61ARM的寄存器组织Ⅱ②备份寄存器R8~R14也被称为分组寄存器;意味着对它们的访问与当前处理器的模式有关。例如:R8~R12有两组物理寄存器。一组属于快速模式(R8_fiq~R12_fiq),另一组属于其它模式(R8_usr-R12_usr)。在这两种情况下使用的是不同的物理寄存器。对于备份寄存器R13和R14,有6组不同的物理寄存器。其中只在用户模式和系统模式共用一组,在其他模式下都是专用的。另外5种对应其他5种处理器模式。采用下标—<mode>来区分各个物理寄存器。62ARM的寄存器组织Ⅱ寄存器R13通常作为堆栈指针(SP),每一种模式都拥有自己物理的R13。应用程序应当初始化该R13,使其指向该模式专用的栈地址,这样就使处理程序不会破坏被其中断的程序现场。
寄存器R14又被常称为程序连接寄存器(LR)。每种处理器模式自有的物理R14中,存放当前子程序的返回地址。在子程序中,把R14的值复制到程序计数器PC(R15)中时,子程序即返回。当然,R14也可作为通用寄存器使用。63ARM的寄存器组织Ⅱ③寄存器R15,又称为程序计数器PC。它虽然可以作为一般的通用寄存器使用,但是有一些指令在使用R15时有一些特殊限制。如违反了,该指令执行的结果将不可预料。64(2)状态寄存器:当前程序状态寄存器CPSR,可以在任何工作模式下被访问;备份程序状态寄存器SPSR,只有在异常模式下,才能被访问。M[4:0]10000100011001010011101111101111111模式用户快中断中断管理中止未定义系统65条件标志位标志位含
义N当两个补码表示的带符号数运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零;ZZ=1表示运算的结果为零;Z=0表示运算的结果不为零;C有3种情况会改变C的值:加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数上溢出),C=1,否则C=0。减法运算(包括比较指令CMP):当运算时产生了借位(无符号数下溢出),C=0,否则C=1。对于包含移位操作的非加/减运算指令,C为移出值的最后一位。V对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。Q在ARMv5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。66控制位标志位含义II=1,表示禁止IRQ中断;否则,表示允许IRQ中断FF=1,表示禁止FIQ中断;否则,表示允许FIQ中断T对于ARMv4以上版本的T系列处理器,T=0,表示执行ARM指令,否则,表示执行Thumb指令;对于ARMv5以上版本的非T系列处理器,T=0,表示指令ARM指令,否则,表示强制下一条执行的指令产生未定义指令中断。M[4:0]M[4:0]处理器工作模式可访问的寄存器10000用户模式PC,R0~R14,CPSR10001快速中断模式PC,R0~R7,R8_fiq~R14_fiq,CPSR,SPSR_fiq10010外部中断模式PC,R0~R12,R13_irq~R14_irq,CPSR,SPSR_irq10011管理模式PC,R0~R12,R13_svc~R14_svc,CPSR,SPSR_svc10111中止模式PC,R0~R12,R13_abt~R14_abt,CPSR,SPSR_abt11011未定义指令模式PC,R0~R12,R13_und~R14_und,CPSR,SPSR_und11111系统模式PC,R0~R14,CPSR67ARM微处理器:程序状态寄存器CPSR(当前程序状态寄存器)在所有的模式下都是可以读写的,它主要包含:条件标志中断使能标志当前处理器的模式其它的一些状态和控制标志68ARM微处理器:程序状态寄存器置0表示执行32bit的ARM指令置1表示执行16bit的Thumb指令NegativeZeroCarryOverflowIRQ中断的响应:置1:禁止响应置0:允许响应FIQ中断的响应:置1:禁止响应置0:允许响应条件标志模式控制位ARM/Thumb控制标志中断标志693)ARM微处理器:异常ARMCPU将引起异常的类型分为7种异常类型模式低向量地址高向量地址复位管理0x000000000xFFFF0000未定义指令未定义0x000000040xFFFF0004软件中断(SWI)管理0x000000080xFFFF0008预取中止(取指令存储器中止)中止0x0000000C0xFFFF000C数据中止(访问数据存储器中止)中止0x000000100xFFFF0010IRQ(中断)IRQ0x000000180xFFFF0018FIQ(快速中断)FIQ0x0000001C0xFFFF001C703)ARM处理器对异常的响应(1)将下一条指令的地址存入相应连接寄存器LR(R14),以便程序在处理异常返回时能从正确的位置重新开始执行。(2)将CPSR复制到相应的SPSR中,工作模式不同使用的SPSR也不同。(3)根据异常类型,强制设置CPSR的运行模式位。(4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。71
异常返回后的处理操作(1)将连接寄存器LR(R14)的值送到PC中。
MOVPC,LR或者BXLR(2)将SPSR复制回CPSR中。72
异常向量(ExceptionVectors)
异常类型异常向量地址处理器模式优先级复位
0x0000,0000:管理1(最高)未定义指令0x0000,0004:未定义6软件中断0x0000,0008:管理6预取中止0x0000,000C:中止
5数据中止
0x0000,0010:中止2保留0x0000,0014:IRQ0x0000,0018:中断IRQ4FIQ0x0000,001C:中断FIQ3
当异常出现,使用R14和SPSR用于保存当前断点和状态,以便在异常处理完成后,原来的程序能够重新执行。734)存储器系统组织(1)ARM体系结构的存储器格式存储器格式是指字、半字、字节在存储器中存放的格式,也反映了它们之间的关系。具体包括有:74(1)ARM微处理器存储格式ARM的寻址空间是线性的地址空间,为232=4GBytes0to3存储第一个word,bytes4to7存储第二个wordARM支持大端(Big-endian)和小端(Little-endian)的内存数据方式,可以通过硬件的方式设置(没有提供软件的方式)端模式75(1)ARM体系结构的存储器格式大端格式:被存放字数据的高字节存储在存储系统的低地址中,而被存放的字数据的低字节则存放在存储系统的高地址中。小端格式:与大端存储格式相反,在小端存储格式中,存储系统的低地址中存放的是被放字数据中的低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。76大端格式(big-endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端格式(low-endian):与大端存储格式相反。低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。缺省设置为小端格式。77举例:大端的数据存放格式低地址高地址地址A地址A+1地址A+2地址A+3最高有效字节的地址就是该word的地址最高有效字节位于最低地址worda=0xf6
73
4b
cdf6734bcd78举例:小端的数据格式
低地址高地址地址A地址A+1地址A+2地址A+3最低有效字节的地址就是该word的地址最低有效字节位于最低地址worda=0xf6
73
4b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭装修家具选择方案
- 心理健康危机干预方案
- 高层建筑防火涂料专项施工方案
- 基层医疗“微宣讲”健康知识普及方案
- 教师读书分享会方案
- 绿色建筑设计方案
- 建筑垃圾处理法律法规遵循方案
- 燃气企业财务风险管理问题探析
- 普通话书写规范培训方案
- 幼教机构安全教育培训制度
- 住建系统消防安全专项整治工作方案
- 外贸报关用发票、装箱单、合同、报关单模板
- 液压技术与气动技术课程设计
- 部编版小学语文四年级上册习作七《写信》PPT教学讲座课件
- EN10130-2006冷成形用低碳钢冷轧钢板和钢带交货技术条件
- 山东省产前筛查与诊断管理办法实施细则
- 机械基础轴上零件轴向固定公开课课件
- 管线工程测量施工方案(雨污分流管网工程)
- 上海链家房地产经纪公司人员激励机制存在的问题与对策分析
- 医院基本建设存在的问题及对策
- 农机修理工培训大纲
评论
0/150
提交评论