第章ARMHUMB微处理器结构及指令系统_第1页
第章ARMHUMB微处理器结构及指令系统_第2页
第章ARMHUMB微处理器结构及指令系统_第3页
第章ARMHUMB微处理器结构及指令系统_第4页
第章ARMHUMB微处理器结构及指令系统_第5页
已阅读5页,还剩45页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章ARM/THUMB微处理器结构及指令系统

本章简要介绍了ARM/THUMB微处理器的一些基本概念、应用领域及特点,以引导读者进入ARM/THUMB的殿堂。本章主要内容有:◆ARM/THUMB及相关技术简介◆ARM/THUMB微处理器系列◆ARM/THUMB微处理器的结构◆ARM/THUMB指令系统2.1ARM微处理器概述 ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。 ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,它本身不直接从事芯片生产,靠转让设计许可,由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。 目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,从而使产品更容易进入市场被消费者所接受,更具有竞争力。2.1.1ARM处理器系列 下面所列的是ARM微处理器的几个系列,以及其他厂商基于ARM体系结构的处理器,这些处理器除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。 ◆ARM7系列 ◆ARM9系列 ◆ARM9E系列 ◆ARMl0E系列 ◆SecurCore系列 ◆Intel的Xscale ◆Intel的StrongARM1.ARM7微处理器系列ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点:具有嵌入式ICE(In-CircuitEmulator)—RT逻辑,调试开发方便。极低的功耗,适合对功耗要求较高的应用,如便携式产品。能够提供0.9MIPS/MHz的三级流水线结构。代码密度高并兼容16位的Thumb指令集。对操作系统的支持广泛,包括WindowsCE、Linux、PalmOS等。指令系统与ARM9系列、ARM9E系列和ARMl0E系列兼容,便于产品升级换代。主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。ARM的JTAG调试接口1。ARM的JTAG调试结构一个典型的ARM基于JTAG调试结构如图所示。Debug主控(Host)通常是运行有ARM公司或者第三方提供的调式软件的PC,通常用的调试软件有ARMDebugforWindow(ADW),Linux下的arm-elf-gdb等。通过这些调试软件,可以发送高级的ARM指令,比如:设置簖点,读写存储器,单步跟踪,全速运行等。协议转换器(Protrocolconverter)负责转换Debug主控端发出的高级ARM调式命令为底层的和ARM内核通信的JTAG命令。Debug主控端和协议转换器之间的介质可以有很多种,比如:以太网,USB,RS-232,并口等。主控端和协议转换器之间的通信协议最典型的就是ARM公司提供的Angle标准,也可以是第三方厂家自己定义的标准。关于Angle的协议,请参考ARMSDT和ADS,ajj公司的OpenICE32,EPI公司的Jeeni等。协议转换器(Protrocolconverter)负责转换Debug主控端发出的高级ARM调式命令为底层的和ARM内核通信的JTAG命令。Debug主控端和协议转换器之间的介质可以有很多种,比如:以太网,USB,RS-232,并口等。主控端和协议转换器之间的通信协议最典型的就是ARM公司提供的Angle标准,也可以是第三方厂家自己定义的标准。关于Angle的协议,请参考ARMSDT和ADS,ajj公司的OpenICE32,EPI公司的Jeeni等。Debug目标板就是指系统的调试对象.以一个典型的ARM7TDMI处理器内核为例,说明ARM7TDMI内核的JTAG调试结构.ARMJTAG的JTAG宏单元(Macricell)主要包括3条JTAG扫描链(ScanChain)和一个JTAG的控制TAP状态机。2.JTAG与AngelJTAG调试:协议转换器解释上位机传送来的命令,通过JTAG控制ARM执行。Angle调试:协议转换器可以直接做为目标板Firmware的一部分.直接执行从宿主机转送过来的调试指令;并回送相应数据。Angel可以节省专门的JTAG仿真器,但是,它需要软件,或者是嵌入式操作系统的支持,做不到完全的实时仿真。而JTAG仿真是通过硬件和控制ARM的EmbeddedICE实现的可以做到实时仿真。JTAG的基本知识1.什么是JTAGJTAG是JointTestActionGroup的缩写:是IEEE1149.1标准。2.使用JTAG的优点JTAG的建立使得集成电路固定在PCB上,只通过边扫描便可以通过测试。在ARM7TDMI处理器中,可以通过JTAG直接控制ARM的内部总线,I/O口等信息,从而达到调试的目的。3.JTAG的典型信号TMS:测试模式选择(TestModeSelect),通过TMS信号控制JTAG状态机的状态。TCK:JTAG的时钟信号。TDI:数据输入信号。TDO:数据输出信号。nTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell)。4.JTAG状态机5.JTAG链的组成ARM7TDMI内内核的JTAG扫描描链结构ARM7TDMI内内核的JTAG扫描描链结构.主要包括括3条扫描描链:Scanchain0,Scanchain1Scanchain2.ScanChain0:有113个扫描单单元,包括括ARM核核的所有I/O,地地址数据总总线和输入入输出控制制信号.这这条链上的的信号复杂杂,不易控控制,但是是,包含的的信息丰富富,可以通通过这条链链得到ARM7TDMI所有有的内核信信息。ScanChain1:有33个个扫描单元元,包括ARM核的的数据总线线和一个断断点控制信信号。这是是一条很有有用地链,,通过控制制这条链,,可以控制制ARM核核执行指定定的指令,,从而实现现对ARM的内部寄寄存器,协协处理器以以及外部存存储器的读读写操作。。ScanChain2:有38个个扫描单元元,通过控控制EmbeddedICE宏单元,,实现对ARM执行行指令的断断点,观察察点控制。。EmbeddedICE是是集成在ARM内核核的中的嵌嵌入式ICE防真器器。其结构构如图所示示。通过对对EmbeddedICE的的控制,对对EmbeddedICE中中寄存器的的读取,可可以获得ARM内核核的状态,,为程序设设置断点以以及读取Debug通信通道道。ARM7系系列微处理理器的主要要应用领域为:工业控制、、Internet设备、网网络和调制制解调器设设备、移动动电话等多多种多媒体体和嵌入式式应用。ARM7系系列微处理理器包括如如下几种类型的核:ARM7TDMI、、ARM7TDMI-S、ARM720T、ARM7EJ。其中中,ARM7TDMI是目前前使用最广广泛的32位嵌入式式RISC处理器,,属低端ARM处处理器核。。TDMI的基本含义义为:T:支持16位压缩缩指令集Thumb;D:支持片片上Debug;M:内嵌硬硬件乘法器器(Multiplier);I:嵌入式式ICE,,支持片上上断点和调调试点。本书所介绍绍的Samsung公司的S3C44b0X即即属于该系系列的处理理器。2.ARM9微处处理器系列列ARM9系系列微处理理器在高性性能和低功功耗特性方方面提供最最佳的性能能。具有以下特点:5级整数流流水线,指指令执行效效率更高。。提供1.1MIPS/MHz的哈佛结结构。支持32位位ARM指指令集和16位Thumb指指令集。支持32位位的高速AMBA总总线接口。。全性能的MMU,支支持WindowsCE、、Linux、PalmOS等等多种主主流嵌入式式操作系统统。MPU支持持实时操作作系统。支持数据Cache和指令Cache,具有更更高的指令令和数据处处理能力。。ARM9系系列微处理理器主要应用于无线设备备、仪器仪仪表、安全全系统、机机顶盒、高高端打印机机、数字照照相机和数数字摄像机机等。ARM9系系列微处理理器包含ARM920T、ARM922T和ARM940T三种种类型,以以适用于不不同的应用用场合。3.ARM9E微微处理器系系列ARM9E系列微处处理器为可可综合处理理器,使用用单一的处处理器内核核提供了微微控制器、、DSP、、Java应用系统统的解决方方案,极大大地减少了了芯片的面面积和系统统的复杂程程度。ARM9E系列微处处理器提供供了增强的的DSP处处理能力,,很适合于于那些需要要同时使用用DSP和和微控制器器的应用场场合。ARM9E系列微处处理器的主要特点如下:支持DSP指令集,适合于需需要高速数数字信号处处理的场合合。5级整数流流水线,指指令执行效效率更高.支持32位位ARM指指令集和16位Thumb指指令集.支持32位位的高速AMBA(先进的微控控制器总线线体系结构构)总线接口.支持VFP9浮点处处理协处理理器.全性能MMU,支持持WindowsCE、Linux、PalmOS等多种主主流嵌入式式操作系统统。MPU支持持实时操作作系统。支持数据Cache和指令Cache,具有更更高的指令令和数据处处理能力。。主频最高可可达300MIPS。ARM9系系列微处理理器主要应应用于下一一代无线设设备、数字字消费品、、成像设备备、工业控控制、存储储设备和网网络设备等等领域。ARM9E系列微处处理器包含含ARM926EJ-S、ARM946E-S和ARM966E-S3种类型,,以适用于于不同的应应用场合。4.ARMl0E微处理器器系列ARMl0E系列微微处理器具具有高性能能、低功耗耗的特点,,由于采用用了新的体体系结构,,与同等的的ARM9器件相比比较,在同同样的时钟钟频率下,,性能提高高了近50%,同时时,ARMl0E系系列微处理理器采用了了两种先进进的节能方方式,使其其功耗极低低。ARMl0E系列微微处理器的的主要特点如下:支持DSP指令集,,适合于需需要高速数数字信号处处理的场合合。6级整数流流水线,指指令执行效效率更高。。支持32位位ARM指指令集和16位Thumb指指令集。支持32位位的高速AMBA总总线接口。。支持VFPl0浮点点处理协处处理器。全性能MMU,支持持WindowsCE、Linux、PalmOS等多多种主流嵌嵌入式操作作系统。支持数据Cache和指令Cache,具有更更高的指令令和数据据处理能力力。主频最高可可达400MIPS。内嵌并行读读写操作部部件。ARMl0E系列微微处理器主要应用于下一代无无线设备、、数字消费费品、成像像设备、工工业控制、、通信和信信息系统等等领域。ARMl0E系列微微处理器包包含ARMl020E,ARMl022E和ARMl026EJ-S3种类型,,以适用于于不同的应应用场合。。5.SecurCore微微处理器系系列SecurCore系列微处处理器专为为安全需要要而设计,,提供了完完善的32位RISC技术的的安全解决决方案,因因此,SecurCore系系列微处理理器除了具具有ARM体系结构构的低功耗耗、高性能能的特点外外,还具有有独特的优优势,即提提供了对安安全解决方方案的支持持。SecurCore系列微处处理器除了了具有ARM体系结结构各种主主要特点外外,还在系系统安全方方面具有如如下的特点:带有灵活的的保护单元元,以确保保操作系统统和应用数数据的安全全。采用软内核核技术,防防止外部对对其进行扫扫描探测。。可集成用户户自己的安安全特性和和其他协处处理器。SecurCore系列微处处理器主要应用于一些对安安全性要求求较高的应应用产品及及应用系统统,如电子子商务、电电子政务、、电子银行行业务、网网络和认证证系统等领领域。SecurCore系列微处处理器包含含:SecurCoreSCl00、SecurCoreSCll0、SecurCoreSC200和SecurCoreSC2104种类型型,以适用用于不同的的应用场合合。6.StrongARM微微处理器系系列IntelStrongARMSA-1100处理理器是采用用ARM体体系结构高高度集成的的32位RISC微微处理器。。它融合了Intel公司的设设计和处理理技术,以以及ARM体系结构构的电源效效率,采用用在软件上上兼容ARMv4体体系结构、、同时采用用具有Intel技技术优点的的体系结构构。IntelStrongARM处理理器是便携携式通信产产品和消费费类电子产产品的理想想选择,已已成功应用用于多家公公司的掌上上电脑系列列产品。7.Xscale处理器Xscale处理器器是基于ARMv5TE体系系结构的解解决方案,,是一款性性能全、性性价比高、、功耗低的的处理器。。它支持16位的Thumb指指令和DSP指令集集,已使用用在数字移移动电话、、个人数字字助理和网网络产品等等场合。Xscale处理器器是Intel目前前主要推广广的一款ARM微处处理器2.1.2RISC体系结结构ARM处理理器实现加加载/存储储(load/store)体系结构构是典型的的RISC处理器。。只有加载载和存储指指令可以访访问存储器器。数据处处理指令只只对寄存器器的内容进进行操作。。精简指令集集计算机RISC(ReducedInstructionSetComputer)结构的的产生是相相对于传统统的复杂指指令集计算算机CISC(ComplexInstructionSetComputer)结构而言言的。尽管在1979年美美国加州大大学伯克利利分校的帕帕特逊等人人即提出了了这个名字字,但不同同的看法使使得目前尚尚未有对RISC的严格定定义。比较较普遍的认认为是,RISC应应该是一种种计算机设设计的基本本原则,它它的出现标标志着计算算机体系结结构发展上上的一个重重要里程碑碑。传统统的的CISC计计算算机机的的指指令令集集随随着着计计算算机机的的发发展展而而引引入入了了各各种种各各样样的的复复杂杂指指令令,使使得得指指令令集集和和为为此此要要实实现现这这些些指指令令的的计计算算机机体体系系结结构构越越来来越越复复杂杂,已已经经不不堪堪重重负负。。经过过大大量量的的研研究究和和分分析析,发发现现在在CISC的的指指令令集集中中,各各种种指指令令的的使使用用频频度度相相差差悬悬殊殊。。大概概有有20%的的指指令令被被反反复复使使用用,使使用用量量约约占占整整个个程程序序的的80%;而而有有80%左左右右的的指指令令则则很很少少使使用用,其其使使用用量量约约占占整整个个程程序序的的20%。。这这就就是是所所谓谓的的20%——80%定定律律。RISC特点点如下下::指令令规规整整、、对对称称、、简简单单。。指指令令小小于于100条条,,基基本本寻寻址址方方式式有有2~3种种。。单周周期期指指令令。。指令令字字长长度度一一致致,,单单拍拍完完成成,,便便于于流流水水操操作作;ARM7三三级级流流水水线线::取取指指、、译译码码、、执执行行;;ARM9五五级级流流水水线线;;ARMl0六六级级流流水水线线。。大量量的的寄寄存存器器。。寄寄存存器器不不少少于于32个个。。数数据据处处理理器器的的指指令令只只对对寄寄存存器器的的内内容容操操作作。。只只有有加加载载//存存储储指指令令可可以以访访问问存存储储器器。。ARM指令体体系结构使用用了加载/存存储体系结构构、固定长32位指令和和3地址指令令格式的RISC特性;;舍弃了寄存存器窗口、延延迟转移和所所有指令单周周期的RISC特性。2.1.3ARM和Thumb状状态ARM体系结结构v4T及及以上版本定定义了称为Thumb指指令集的16位指令集。Thumb指指令集的功能是32位ARM指令集的的功能子集。。Thumb在性能和代代码大小之间间提供了出色色的折中。正在执行Thumb指令令集的处理器器是工作在Thumb状状态下。正在执行ARM指令集的的处理器是工工作在ARM状态下。在ARM状态态下的处理器器不能执行Thumb指指令,在Thumb状态态下的处理器器也不能执行行ARM指令令。必须确保处理理器不接受对对当前状态来来说为错误指指令集的指令令。每个指令集都都包括切换处处理器状态的的指令。ARM处理器器总是在ARM状态下开开始执行代码码。ARM处理器器支持7种处处理器模式,,取决于体系系结构版本。。2.1.4.寄存器ARM处理器器有37个寄寄存器。寄存器被安排排成部分重叠叠的组(overlap--pingbank)。每种处理器模模式都有不同同的寄存器组组。分组的寄存器器在处理处理理器异常和特特权操作时可可得到快速的的上下文切换换。通常寄存器R13用做堆栈指针针。在用户模式下下,R14用做链接寄存存器(LR),在子程序序调用时用来来保存返回地地址。若返回回地址保存在在通信堆栈中中,则它也可可用做通用寄寄存器。在异常处理模模式下,R14用来保存异常常的返回地址址。程序计数器用用R15(或PC)访问。在ARM状态下每每条指令加1个字(4个个字节),或或在Thumb状态下每每条指令加2个字节。分分支指令把目目的地址加载载到程序计数数器中。也可可以使用数据据操作指令直直接加载程序序计数器。在执行时,R15不包含当前执执行指令的地地址。典型情情况下,当前前正在执行指指令的地址对对于ARM状状态是PC——8,或对于于Thumb状态是PC—4。2.1.5ARM指令令集概述所有ARM指指令是32位位长度。指令以字对准准保存,这样样ARM状态态指令地址的的最低2位总总是零。一些指令使用用最低有效位位判定代码是是转向Thumb代码还还是ARM代代码。具有字字节(8位)、半字(16位)、字字(32位)带符号或无无符号数传送送能力。2.1.6Thumb指令集概述述所有Thumb指令是16位长度,在存储器中中半字对准保保存。因此,指令的最低低有效位在Thumb状状态下总是为为零。对于所有Thumb数据据处理指令有有:操作寄存器中中全部为32位值;数据访问和取取指使用全32位地址。。条件分支指令令是依据CPSR中ALU的状态标标志有条件执执行的唯一的的Thumb指令。在Thumb状态下,大大多数指令只只能访问R0~R7。寄存器R8~R15是被限制访问问的寄存器。。在Thumb状态下它它们用高寄存存器表示。Thumb状状态只在分立立操作时使用用桶式移位,,具有LSI、LSR、、ASR或ROR指令。。Thumb体体系结构的扩扩充使得在8/16位系系统价格下可可得到32位位性能,即最小化系统存存储器大小和和价格下出色色的代码密度度;在低系统价格格的8或16位总线上由由16位存储储器得到32位性能。Thumb是是32位体系系结构的扩充充。Thumb指指令集是大多多数常用的32位ARM指令的子集集,压缩成16位宽操作作码。在执行时,16位指令透透明地实时解解压缩成全32位ARM指令且没有有性能损失。。设计者可以以使用16位位Thumb和32位ARM指令集集。在于程序级可可根据应用需需求,灵活地强调性性能或代码大大小。Thumb比比通常的8和和16位CISC/RISC控制器器有更好的代代码密度,是是传统32位位体系结构代代码大小的一一部分。这意意味着程序存存储器可以更更小,因而降降低了成本。。3AMBA总线先进的微控制制器总线体系系结构AMBA规范定义义了三种总线:AHB(AdvancedHigh-performanceBus):用用于连接高性性能系统模块块。它支持突突发数据传输输方式及单个个数据传输方方式,所有时时序参考同一一个时钟沿;;ASB(AdvancedSystemBus):用用于连接高性性能系统模块块,它支持突突发数据传输输模式;APB(AdvancePeripheralBus):是一个个简单接口支支持低性能的的外围接口。。一个典型的基基于AMBA的微控制器器同时集成AHB(或或ASB)和和APB接口口,如图所示。ASB总线是是旧版的系统统的总线,而而新版的AHB总线增强强了对性能、、综合及时序序验证的支持持。APB总线通通常用作的局局部的第二总总线,作为AHB或ASB上的单个个从属模块。。根据AMBA的规范,连连接AHB/ASB和APB的APB桥的唯一功能是提供更简单单的接口。任何由低性能能外围设备产产生的延迟会会由连接高性性能(AHB/ASP)总线的桥反映映出来。桥本身仿佛是是一个简单APB总线的的主设备,它它访问与之相相连的从设备备,并且通过过高性能总线线上控制信号号的子集控制制它们。下面给出AHB、ASB和APB的的主要特征.3.1AHBAHB是先进进的系统总线线。它主要的目的就是连接共性性能、高吞吐吐率的设备,,例如CPU、DMA和和DSP。它的主要特性:高性能新一代代总线;多控制器;分段传输;单周期总线控控制权移交;;没有三态实现现方式;32~128位总线宽;;包含一种访问问保护机制,,用来区别特特权访问和无无特权访问模模式,或指令令和数据提取取

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论