欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    ARM9体系结构.ppt

    • 资源ID:2674266       资源大小:1.61MB        全文页数:111页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ARM9体系结构.ppt

    嵌入式系统讲义第2章 ARM9体系结构,周国运2007.3,第2章 ARM9体系结构,主要内容2.1 ARM处理器简介2.2 ARM9结构2.3 ARM数据类型和存储格式2.4 处理器状态和工作模式2.5 ARM寄存器2.6 ARM异常2.7 ARM调试接口,2.1 ARM处理器简介,2.1.1 ARM公司简介ARM是Advance RISC Machine 的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM公司于1990年11月在英国剑桥成立,前身为Acorn计算机公司。ARM公司是全球领先的16/32位嵌入式RISC微处理器解决方案供应商。ARM公司是知识产权(IP)公司,本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。目前,全世界有几十家著名的半导体公司都使用ARM公司的授权,其中包括MOTOROLA、IBM、Intel、LG、SONY、NEC、ATMEL等,从而保证了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM处理器核的设计可以很快投入市场。ARM公司已成为移动通信、手持设备、多媒体数字消费嵌入式解决方案的RISC标准。,2.1.2 ARM体系结构的特点,总体思想:在不牺牲性能的同时,尽量简化处理器。同时从体系结构的层面上灵活支持处理器扩展。这种简化和开放的思路使得ARM处理器采用了很简单的结构来实现。ARM处理器是最先进的:目前,ARM32位体系结构被公认为业界领先的32位嵌入式RISC微处理器核,所有ARM处理器都共享这一体系结构。,2.1.2 ARM体系结构的特点(2),一、RISC型处理器结构ARM采用RISC结构,在简化处理器结构,减少复杂功能指令的同时,提高了处理器的速度。考虑到处理器与存储器打交道的指令执行时间远远大于在寄存器内操作的指令执行时间,RISC型处理器采用了Load/Store(加载/存储)结构,即只有Load/Store指令可与存储器打交道,其余指令都不允许进行存储器操作。同时,为了进一步提高指令和数据的存取速度,RISC型处理器增加了指令高速缓冲I-Cache和数据高速缓冲D-Cache及多处理器结构,使指令的操作尽可能在寄存器之间进行。,2.1.2 ARM体系结构的特点(3),只能对寄存器执行算术和逻辑操作,Load/Store体系结构,2.1.2 ARM体系结构的特点(4),二、Thumb指令集虽然ARM处理器本身是32位设计,但考虑到RISC型处理器的指令功能相对较弱,新型的ARM体系结构中定义了16位的Thumb指令集。Thumb指令集比通常的8/16位CISC/RISC处理器有更好的代码密度,而芯片面积只增加6%,却可以使程序存储器更小。三、多处理器状态模式ARM体系结构定义了7种处理器模式:用户、快中断、中断、管理、终止、未定义和系统模式,大大提高了ARM处理器的效率。四、两种处理器工作状态(执行32位ARM指令)ARM状态和Thumb状态。(执行16位Thumb指令),2.1.2 ARM体系结构的特点(5),五、嵌入式在线仿真调试ARM体系结构的处理器芯片都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试芯片,省去了价格昂贵的在线仿真器。六、灵活方便的接口ARM体系结构具有协处理器接口,允许接16个协处理器。既可以使基本的ARM处理器内核尽可能小,方便地扩充ARM指令集,也可以通过未定义指令来支持协处理器的软件仿真。七、低电压功耗的设计考虑到ARM处理器主要用于手持式嵌入式系统中,在设计中就十分注意功耗的设计。,2.1.3 ARM指令系统版本,ARM公司从最初的开发到现在,ARM指令集结构有了巨大的改进,并在不断完善和发展。为了清楚地表达每个ARM内核所使用的指令集,ARM公司定义了一系列的指令集体系结构版本,以vx表示某种版本。下面对版本v1v5做一介绍。一、版本1(v1)v1在ARM1中使用,但从未商业化。26位寻址空间,其指令主要有:基本的数据处理指令(无乘法指令)字、字节和半字存储器访问指令分支指令(包括带链接的分支指令)软件中断指令,2.1.3 ARM指令系统版本(2),二、版本2(v2)仍是26位寻址空间,在v1的基础上增加的内容有:乘法和乘法加指令支持协处理器快速中断模式中的分组寄存器交换式加载/存储指令。三、版本3(v3)将寻址范围扩展到32位,但兼容26位寻址。在v2的基础上增加的内容有:设置了专用的当前程序状态寄存器CPSR、增加了程序状态保存寄存器增加了中止异常和未定义指令异常两种处理器模式增加了访问CPSR、SPSR的指令MRS和MSR修改了异常返回指令的功能,2.1.3 ARM指令系统版本(3),四、版本4(v4)32位寻址方式,但不再兼容26位寻址,在v3的基础上增加的内容有:半字加载/存储指令在T变量中转换到Thumb状态的指令增加了在使用用户模式寄存器的特权处理器模式五、版本5(v5)对v4指令做了必要的修改和扩展,并且增加了指令,具体变化为:改进在T变量中ARM/Thumb状态之间的切换效率对于T和非T变量使用相同的代码生成技术增加了计数前导零指令增加了软件断点指令对乘法指令设置标志做了严格定义。将流水线的级数从3级(如ARM7TDMI使用的)增加到5级;并改变存储器接口来使用分开的指令与数据存储器。,2.1.3 ARM指令系统版本(4),六、版本6(v6)对v5指令做了必要的修改和扩展,并且增加了指令,2001年发布,首先在ARM11处理器中使用(2002年春季发布),具体变化为:ARM体系版本6的新架构在降低耗电量的同时,还强化了图形处理性能。增加了多媒体处理功能:通过追加有效进行多媒体处理的SIMD功能,将语音及图像的处理功能提高到了原机型的4倍。V6版本还支持多微处理器内核。,2.1.3 ARM指令系统版本(5),2.1.4 ARM 体系结构的演变,一、Thumb指令集(T变种)支持Thumb指令的ARM体系版本,一般加字符T来表示(如V4T)。目前Thumb指令集有以下两个版本:Thumb 指令集版本1,此版本作为ARM体系版本4的T变种;Thumb指令集版本2,此版本作为ARM体系版本5的T变种。与版本1相比,Thumb指令集的版本2具有以下特点:通过增加新的指令和对已有指令的修改,来提高ARM指令和Thumb指令混合使用时的效率。增加了软件断点(BKPT)指令和更严格地定义了Thumb乘法指令对条件码标志位的影响。,2.1.4 ARM 体系结构的演变(2),二、长乘指令(M变种)M变种增加了两条这样的长乘指令:其中一条指令完成32位整数乘以32位整数,生成64位整数的长乘操作;另一条指令完成32位整数乘以32位整数,然后在加上一个32位整数,生成64位整数的长乘加操作。这种长乘的应用场合M变种很适合。,2.1.4 ARM 体系结构的演变(3),三、增强型DSP指令(E变种)E变种的ARM体系增加了一些增强处理器对典型DSP算法处理能力的附加指令:几条新的完成16位数据乘法和乘加操作的指令;实现饱和的带符号数的加减法操作的指令。Cache预取指令PLD;E变种首先在ARM体系版本5T中使用,用字符E表示。在早期的一些E变种中,未包含双字读取指令LDRD,双字写入指令STRD,协处理器的寄存器传输指令MCRR/MRRC以及Cache预取指令PLD。这种E变种记作ExP,其中x表示缺少,P代表上述的几种指令,2.1.4 ARM 体系结构的演变(4),四、Java加速器Jazelle(J变种)ARM的Jazelle技术是Java语言和先进的32位RISC芯片完美结合的产物。Jazelle技术使得Java代码的运行速度比普通的Java虚拟机提高了8倍,这是因为Jazelle技术提供了Java加速功能,大幅的提高了机器的运行性能,而功耗反而降低了80%。Jazelle技术使得在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统和中间件以及其他的应用程序成为可能。Jazelle技术的诞生使得一些必须用到协处理器和双处理器的场合可以用单处理器代替,这样,既保证了机器的性能,又降低了功耗和成本。ARM体系版本4TEJ是最早包含了J变种。用字符J表示J变种,2.1.4 ARM 体系结构的演变(5),五、ARM媒体功能扩展(SIMD变种)ARM的SIMD媒体功能扩展为这些应用系统提供了解决方案。它为包括音频视频处理在内的应用系统提供了优化功能。其主要特点如下:使处理器的音频视频处理的性能提高了24倍。可同时进行两个16位操作数或者4个8位操作数的运算。用户可以自定义饱和运算的模式。可进行两个16位操作数的乘加乘减运算及32位乘以32位的小数乘加运算。同时8位/16位选择操作。,2.1.4 ARM 体系结构的演变(6),2.1.4 ARM 体系结构的演变(7),2.1.4 ARM系列处理器简介,ARM有以下系列处理器:ARM7系列ARM9系列ARM9E系列 ARM10系列ARM11系列SecurCore系列Inter的StrongARM和Xscale系列 其中,ARM7、ARM9、ARM9E、ARM10和ARM11为5个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。,2.1.4 ARM系列处理器简介(2),一、ARM7系列ARM7采用冯诺依曼(Von-Neumann)结构,数据存储器和程序存储器使用同一存储空间,用相同的指令访问。此结构也被大多数计算机所采用。ARM7为三级流水线结构(取指,译码,执行),平均功耗为0.6mW/MHz,时钟速度为66MHz,每条指令平均执行1.9个时钟周期。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为(对其它系列也适用):T:支持16为压缩指令集Thumb,称为T变种D:支持片上Debug,称为D变种M:内嵌硬件乘法器 Multiplier,称为M变种I:嵌入式ICE,支持片上断点和调试,称为I变种,2.1.4 ARM系列处理器简介(3),表2-1 ARM7系列产品,2.1.4 ARM系列处理器简介(4),二、ARM9系列ARM7采用的Neumann结构,取指令和取操作数都是通过一条总线分时进行,这样,在高速运算时,不但不能同时取指令和取操作数,而且还会造成传输通道上的瓶颈现象。ARM9采用哈佛(Harvard)结构,程序存储器与数据存储器分开,提供了较大的存储器带宽。同时,大多数DSP都采用此结构。ARM9为五级流水(取指,译码,执行,缓冲/数据,回写),平均功耗为0.7mW/MHz。时钟速度为120MHz-200MHz,每条指令平均执行1.5个时钟周期。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,主要应用在手持产品、视频电话、PDA、数字消费产品、机顶盒、家用网关等方面。,2.1.4 ARM系列处理器简介(5),表2-2 ARM9系列产品,2.1.4 ARM系列处理器简介(6),三、ARM9E系列ARM9E系列微处理器包括如下4种类型的核:ARM926EJ-S、ARM946E-S和ARM966E-S,见表2-3。ARM9E系列是一种包含有微控制器、DSP、Java功能的综合处理器,强化了数字信号处理能力,适用于需要DSP和微控制器结合使用的情况,并且把Thumb技术和DSP都扩展到了ARM指令中,并且具有EmbededICE-RT逻辑,更好地适应了实时系统开发的需要。同时ARM9E使用了Jazelle增强技术,该技术支持一种新的Java操作状态,在硬件中执行Java字节码。,2.1.4 ARM系列处理器简介(7),表2-3 ARM9E系列产品,2.1.4 ARM系列处理器简介(8),四、ARM10系列 ARM10系列微处理器包括:ARM1020E和ARM1022E等型号,见表2-4。ARM10系列采用了新的体系结构,其核心为使用了向量浮点单元,有强大的浮点运算能力,并且增加了Cache容量和总线宽度,并且具有低功耗的特点。ARM10系列微处理器主要应用于下一代无线设备、视频消费品等。,表2-4 ARM10系列产品,2.1.4 ARM系列处理器简介(9),五、ARMStrong/Xscale系列 StrongARM是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Intrl公司的设计技术,以及ARM体系结构的电源效率,其体系结构在软件上兼容ARMv4,同时又具有Intel技术优点。StrongARM是Intrl公司为手持消费类电子和移动计算与通信设备生产的嵌入式处理器。采用StrongARM架构的处理器有:SA-1、SA-110、SA-1100、SA1110和IXP1200。Xscale是基于ARMv5体系结构的解决方案,是一款性能全、性价比高、功耗低的处理器,支持16位的Thumb和DSP指令集,主要应用于数字移动电话、个人数字助理和网络产品等。Xscale架构的处理器有:PXA250、PXA255和PXA270等。,2.1.4 ARM系列处理器简介(10),六、ARM微处理器应用1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。ADSL(非对称数字用户线路)4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。,ARM系列产品命名规则,2.2 ARM9体系结构,2.2.1ARM9体系结构框图对于ARM9系列,其基本内核是ARM9TDMI,下页图给出了ARM9TDMI结构框图。主要有7部分构成。比较最常用的是ARM920T内核,后页图给出了ARM920T结构框图。ARM920T结构主要部分有:ARM9TDMI内核CPU、MMU、Cache、协处理器接口、运行跟踪信息接口(ETM)、JTAG调试接口、总线接口等7部分构成。,一、ARM9TDMI体系结构框图,二、ARM920T体系结构框图,二、ARM920T体系结构框图,ARM9TDMI核性能,0.25微米的ARM9TDMI核在执行32位ARM代码时的特性综述于下表3。核的版图示于下页图。,2.2.2 ARM流水线结构,一、流水线技术概述 流水线方式:是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程同时进行。由于这种工作方式与工厂中的生产流水线十分相似,因此,把它称为流水线工作方式。处理器按照一系列步骤来执行每一条指令。典型的步骤为:1)从存储器读取指令(fetch)2)译码以鉴别它是哪一类指令(dec)3)从寄存器组取得所需的操作数(reg)4)将操作数进行组合以得到结果或存储器地址(exe)5)如果需要,则访问存储器存取数据(mem)6)将结果回写到寄存器组(res),二、ARM7的三级流水线1取指:从程序存储器中取指令,放入指令流水线。(占用存储器访问操作)2译码:指令译码。(占用译码逻辑)3执行:执行指令/读写REG。(占用ALU及数据路径),2.2.2 ARM流水线结构(2),下图为3个单周期指令在流水线上的情况。一条指令有3个时钟周期的执行时间,但吞吐量是每个周期1条指令。,t,123,PC值如何计算?,PC 指向处于读取级的指令地址,而不是处于执行级的指令地址PC=当前执行指令地址+8,ARM单周期指令的3级流水线操作,2.2.2 ARM流水线结构(3),优秀的流水线结构,Operation,Cycle,1 2 3 45 6,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Decode,Execute,Fetch,Decode,Fetch,Fetch,本例中 6 个时钟周期内一共完成了?条指令全部对寄存器进行操作(单周期执行)指令周期数(CPI)=1,2.2.2 ARM流水线结构(4),多周期指令的3级流水线操作,1 2 3 4 5 6 7 8,1 ADD,2 STB,3 ADD,4 ADD,5 ADD,指令流水线出现了中断,2.2.2 ARM流水线结构(5),T4周期:指令2地址计算产生下一周期数据路 径需要的控制信号。指令3译码产生下一周期数据路径需要 的控制信号。二者都产生下一周期数据路径控制信号,数据路径控制冲突,因此断流。T5周期:指令2 STB访问数据存储器 指令5取指访问程序存储器 二者都访问存储器,造成访问存储器冲突,在此断流。指令3译码 指令4的译码则不得不推迟一个周期。,2.2.2 ARM流水线结构(6),三、ARM9TDMI的五级流水线,ARM7TDMI与ARM9TDMI流水线比较,2.2.2 ARM流水线结构(7),四、ARM7和ARM9流水线比较 5级流水线的ARM9内核是哈佛架构,拥有独立的指令和数据总线;指令和数据的读取可以在同一周期进行;3级流水的ARM7内核是指令和数据总线复用的冯.诺依曼架构,指令和数据的读取不能在同一周期进行;5级流水线设计把寄存器读取、逻辑运算、结果回写分散在不同的流水当中,每一级流水的操作简洁,提升了处理器的主频。,2.2.2 ARM流水线结构(8),2.2.2 ARM流水线结构(9),随着流水线深度(级数)的增加,每一段的工作量被削减了,这使得处理器可以工作在更高的频率,同时改进了处理器的性能;负面作用是增加了系统的延时,即内核在执行一条指令前,需要更多的周期来填充流水线;流水线级数的增加也意味着在某些段之间会产生数据相关。,2.2.2 ARM流水线结构(10),ARM处理器性能比较,2.2.3 ARM总线结构,ARM微控制器使用的是AMBA总线体系结构AMBA(Advanced Microcontroller Bus Architecture)是ARM公司公布的总线标准,先进的AMBA规范定义了三种总线:AHB总线(Advanced High-performance Bus):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序 参考同一个时钟沿。ASB总线(Advanced System Bus):用于连接高性能系统模块,它支持突发数据传输模式。APB总线(Advance Peripheral Bus):是一个简单接口支持低性能的外围接口。,本节主要内容1、数据类型2、存储器组织3、存储器层次,2.3 ARM存储结构,2.3.1 ARM存储数据类型ARM处理器支持以下6种数据类型:8位有符号和无符号字节(Byte)。16位有符号和无符号半字(Halfword)它们必须以两字节的边界对齐(半字对齐)。32位有符号和无符号字(word)它们必须以4字节的边界对齐(字对齐)。字对齐:字单元地址的低两位 A1A0=0b00。即地址末位为0 x0,0 x4,0 x8,0 xc。半字对齐:半字单元地址的最低位 A0=0b0(地址末位为0 x0,0 x2,0 x4,0 x6,0 x8,0 xa,0 xc,0 xe)。,2.3 ARM存储结构,对于指令,ARM指令系统分为32位ARM指令集和16位的Thumb指令集,在存储时分别以32位和16位的两种不同长度存储。对于数据,ARM支持对32位字数据,16位半字数据,8位字节数据操作。因此数据存储器可以存储32位,16位,8位三种不同长度数据。在ARM内部,所有操作都面向32位的操作数,只有数据传送指令支持较短的字节和半字的数据类型。当从存储器读入一个字节或半字时,根据其数据类型将其扩展到32位。,2.3 ARM存储结构(2),2.3.2 ARM存储器组织 ARM存储器以8位为一个单元存储数据(一个字节),每个存储单元分配一个存储地址。ARM将存储器看作是从零地址开始的字节的线性组合。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(232字节)。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。32位的字数据要使用4个地址单元,16位半数据要使用2个地址单元。这样,就存在一个所存储的字或半字数据的排列顺序问题。ARM体系结构可以用两种方法存储字数据,称为大端格式和小端格式。,2.3 ARM存储结构(3),2.3 ARM存储结构(4),大端格式(big-endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。小端格式(low-endian):与大端存储格式相反。低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。缺省设置为小端格式。,2.3.3 ARM存储器层次 微处理器希望存储器容量大、速度快。但容量大者速度慢;速度快者容量小。解决方法是构建一个由多级存储器组成的复合存储器系统。两级存储器方案一般包括:一个容量小但速度快的从存储器一个容量大但速度慢的主存储器宏观上看这个存储器系统像一个即大又快的存储器。这个容量小但速度快的元件是Cache,它自动地保存处理器经常用到的指令和数据的拷贝。,2.3 ARM存储结构(5),多级存储器系统,寄存器组 访问时间约为几个ns。片上RAM 与片外RAM比速度快、功耗小、容量小。读写时间约为几个ns。片上Cache 832KB,访问时间约为十几个ns。主存储器 一般为几兆字节1GB 的动态存 储器,访问时间约 50ns。,2.3 ARM存储结构(6),CPU,寄存器组,片上RAM,片上Cache,主存储器,硬盘,2.4 ARM处理器的工作状态和模式,为了能够体现ARM的特点和性能,ARM处理器有两种工作状态和7种工作模式。2.4.1 ARM处理器的工作状态 有两种工作状态:ARM状态:处理器执行32位的字对齐的ARM指令;Thumb状态:处理器执行16位的半字对齐的Thumb指令。两种状态可以切换。程序执行过程中,通过执行带状态切换的分支指令BX,随时在两种工作状态之间进行切换。并且,处理器工作状态的转变,并不影响处理器的工作模式和相应寄存器中的内容。,2.4 ARM处理器的工作状态和模式(2),从ARM状态切换到Thumb状态有两种情况ARM处理器自动切换到Thumb状态。(1)执行BX指令,当操作数寄存器的位0为1时,则微处理器从ARM状态切换到Thumb状态。此为主动切换。(2)当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef等),处理完异常后,在异常处理返回时,自动切换到Thumb状态。此为自动切换。从Thumb状态切换到ARM状态有两种情况ARM处理器自动切换到Thumb状态。(1)执行BX指令,当操作数寄存器的位0为0时,则微处理器从Thumb状态切换到ARM状态。(2)当处理器在Thumb状态时发生异常(如IRQ、FIQ、Undef等),则处理器从Thumb状态自动切换到ARM状态进行异常处理,2.4 ARM处理器的工作状态和模式(3),例3.1 状态切换程序;从ARM状态切换到Thumb状态LDRR0,=Lable+1BXR0;从Thumb状态切换到ARM状态LDRR0,=LableBXR0注意:ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。ARM处理器在开始执行代码时,只能处于ARM状态。,2.4.2 ARM处理器的工作模式,一、ARM9的7种工作模式 1、用户模式(usr):非特权模式,大部分任务执行在这种模式。正常程序执行的模式2、快速中断模式(fiq):当一个高优先级(fast)中断产生时将会进入这种模式。高速数据传输或通道处理3、外部中断模式(irq):当一个低优先级(normal)中断产生时将会进入这种模式。通常的中断处理4、管理模式(svc):当复位或软中断指令执行时将会进入这种模式。供操作系统使用的一种保护模式,2.4.2 ARM处理器的工作模式(2),5、中止模式(abt):当存取异常时将会进入这种模式虚拟存储及存储保护6、未定义模式(und):当执行未定义指令时会进入这种模式软件仿真硬件协处理器7、系统模式(sys):供需要访问系统资源的操作系统任务使用特权级的操作系统任务,2.4.2 ARM处理器的工作模式(2),二、模式分类及特点 七种模式可以划分成四类 1、用户模式特点:应用程序不能够访问受操作系统保护的系统资源。应用程序不能进行处理器模式的切换。2、系统模式特点:不属于异常模式,不是通过异常进入的。系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行模式的切换。它主要供操作系统使用。3、特权模式及其特点:特权模式:除用户模式之外的工作模式又称为特权模式特点:应用程序可以访问所有的系统资源可以任意地进行处理器模式的切换,2.4.2 ARM处理器的工作模式(3),4、异常模式及其特点:异常模式:除用户模式、系统模式之外的五种模式称为异常模式。特点:以各自的中断或异常方式进入,并且处理各自的中断或异常。对管理模式(svc)进入方式和处理内容有:系统上电复位后进入管理模式,运行系统初始化程序,如中断允许/禁止,主时钟设置,SDRAM配置,各个功能模块初始化等。当执行软件中断指令SWI时,进入管理模式。,2.4.2 ARM处理器的工作模式(4),处理器模式的切换方式:软件控制进行切换。通过外部中断和异常进行切换处理器启动时的模式转换图,管理模式(Supervisor),多种特权模式变化,用户程序的运行模式,复位后的缺省模式,主要完成各模式的堆栈设置,注意不要进入用户模式,一般为用户模式User,2.5 ARM9寄存器,本节主要内容1、ARM寄存器概述2、ARM通用寄存器3、ARM状态寄存器,2.5 ARM9寄存器,2.5.1、ARM寄存器概述ARM处理器v4及以上版本有37个32位的寄存器 其中31个为通用寄存器;6个为状态寄存器。31个通用寄存器R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq 6 个状态寄存器CPSRSPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq,2.5 ARM9寄存器(2),每一类处理器模式都有一组相应的寄存器组;在任意的处理器模式下,可见的寄存器包括15个通用寄存器(R0R14)、1个或2个状态寄存器和程序寄存器。带灰色底纹的单元格表示,用户模式或系统模式使用的一般寄存器,已被异常模式特定的另一寄存器所替代。,2.5 ARM9寄存器(3),2.5 ARM寄存器(4),2.5.2 ARM的通用寄存器 通用寄存器包括R0R15,可以分为三类:未分组寄存器R0R7 分组寄存器R8R14 程序计数器PC(R15)一、未分组寄存器R0R7在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途,是真正的通用寄存器。因此,在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏,这一点在进行程序设计时应引起注意。,2.5 ARM寄存器(5),二、分组的寄存器R8R14 对于R8R12,每一次所访问的物理寄存器,与处理器当前的工作模式有关。1、R8R12当处理器工作于fiq模式时,访问的寄存器为R8_fiqR12_fiq;除fiq模式以外的其他模式,访问的寄存器为R8_usrR12_usr。2、R13和R14:每个寄存器对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器,对应于其他5种不同的异常模式。采用以下的记号来区分不同的物理寄存器:R13_ R14_ 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。,2.5 ARM寄存器(6),R13:寄存器R13在ARM指令中常用作堆栈指针SP。但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。R14:寄存器R14也称作子程序链接寄存器(Subroutine Link Register)或链接寄存器LR。当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。,2.5 ARM寄存器(7),三、程序计数器PC(R15)寄存器R15用作程序计数器(PC)。在ARM状态下,位1:0为0,位31:2用于保存PC;在Thumb状态下,位0为0,位31:1用于保存PC;使用R15时注意:虽然R15可以用作通用寄存器,但是有一些指令在使用R15时有一些特殊限制,若不注意,执行的结果将是不可预料的。所以,一般不这么使用。关于PC的值:由于ARM采用多级流水线技术,所以PC总是指向正在取指的指令,而不是正在执行的指令。也即PC总是指向当前指令的下两条指令的地址。因此,对于ARM指令集而言,PC的值为当前指令的地址值加8个字节。,2.5 ARM寄存器(8),2.5.3 ARM的状态寄存器一、两种程序状态寄存器在ARM微处理器中,有CPSR和SPSR两种程序状态寄存器。1、当前程序状态寄存器 CPSR(Current Program Status Register)用来保存当前程序状态的寄存器。所有处理器模式下都可以访问当前程序状态寄存器CPSR。仅一个CPSR。2、保存程序状态寄存器SPSR_mode(Saved Program Status Register)SPSR_mode用来进行异常处理,其功能包括:保存ALU中的当前操作信息当异常发生时,用来保存CPSR的值,从异常返回时,将 SPSR_mode复制到CPSR中,恢复CPSR的值。控制允许和禁止中断修改SPSR的值 设置处理器的运行模式修改SPSR的值问题:一共有多少个SPSR?为什么?,2.5.3 ARM的状态寄存器(2),二、ARM状态寄存器的格式1、条件码标志位(保存ALU中的当前操作信息)N:正负号/大小 标志位0表示:正数/大于;1表示:负数/小于Z:零标志位0表示:结果不为零;1表示:结果为零C:进位/借位/移出位0表示:未进位/借位/移出0;1表示:进位/未借位/移出1V:溢出标志位0表示:结果未溢出;1表示:结果溢出,2.5.3 ARM9的状态寄存器(3),2、控制位I、F中断控制位控制允许和禁止中断I1 禁止IRQ中断I0 允许IRQ中断F1 禁止FIQ中断F0 允许FIQ中断T控制(标志)位反映处理器的运行状态T=1时,程序运行于Thumb状态T=0时,程序运行于ARM状态M控制位决定了处理器的运行模式当发生异常时这些位被改变。如果处理器运行在特权模式,这些位也可以由程序修改。,2.5.3 ARM9的状态寄存器(4),3、保留位 CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者控制位时,保留位不要改变,在程序中也不要使用保留位来存储数据。保留位将用于ARM版本的扩展。2.5.4 Thumb状态下的寄存器组织Thumb状态下的寄存器集是ARM状态下寄存器集的子集。程序员可以直接访问8个通用的寄存器(R0R7),程序计数器PC、堆栈指针SP、链接寄存器LR和当前状态寄存器CPSP。,本节主要内容1、中断和异常的概念2、ARM的异常中断介绍3、ARM的异常中断响应过程 4、中断向量和中断优先级,2.6 ARM异常,2.6 ARM异常,2.6.1 中断和异常的概念 1、中断 当CPU正在执行程序时,系统发生了一件急需处理的事件,CPU暂时停下正在执行的程序,转去处理相应的事件,事件处理完后,CPU再返回执行原来的程序,这种情况称为中断。这是中断的本来意义。中断事件:引起CPU产生中断、并且与CPU当前所执行的程序无关的、由外部硬件产生的事件,也叫中断源。中断事件也常称为外中断。常说的中断:有时指的是中断的本意,有时指的是外部中断事件,即外中断。中断是计算机系统基本的功能 利用中断,外设可以与CPU并行工作,当外设需要传输数据或控制时,向CPU发出中断请求信号。CPU响应其请求进行处理。因此,使用中断既可以实现CPU与外设并行工作,又可以实时处理各种紧急事件。,2.6 ARM异常,2、异常 是指CPU在执行指令时出现的错误,即不正常的情况。异常是与当前所执行的程序有关的。如存取数据或指令错误、计算结果溢出等。异常的处理:也用中断的方式进行处理。计算机通常是用中断来处理外中断和异常,因此下面将二者均称为异常。3、ARM程序的三种执行流程 顺序流程:每执行一条ARM指令,程序计数器(PC)的值加4;每执行一条Thumb指令,程序计数器寄存器(PC)的值加2,整个过程是按顺序执行。,对异常的说明当系统运行时,异常可能会随时发生,为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理,采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序,当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序,当异常处理完成以后,返回到主程序继续执行。我们需要处理所有的异常,尽管我们可以简单的在某些异常处理程序处放置死循环。,2.6 ARM异常,2.6 ARM异常,跳转流程:程序执行了跳转指令,则要跳转到特定的地址标号处执行,包括跳转到子程序。例如,跳转指令,B、BL、BLX和BX。中断流程:当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。在当异常中断处理程序执行完成后,程序返回到发生中断的指令的下条指令处执行。在进行异常中断处理程序时,要保存被中断的程序的执行现场,在从异常中断处理程序退出时,要恢复被中断的程序的执行现场。中断处理与子程序调用的区别:中断是随机的,并且与正在执行的程序无关;子程序调用是程序的主动行为,并且与正在执行的程序密切相关。,2.6.2 ARM的异常 ARM有7种异常1、复位 处理器上一旦有复位输入,ARM处理器立刻停止执行当前指令。复位后,ARM处理器在禁止中断的管理模式下,从地址0 x00000000或0 xFFFF0000开始执行指令。2、未定义指令异常 当ARM处理器执行协处理器指令时,它必须等待任一外部协处理器应答后,才能真正执行这条指令。若协处理器没有响应,就会出现未定义指令异常。未定义指令异常可用于在没有物理协处理器(硬件)的系统上,对协处理器进行软件仿真,或在软件仿真时进行指令扩展。,2.6 ARM异常,3、软件中断异常 该异常由执行SWI指令产生,可使用此机制进行软件仿真。4、预取中止(取指令存储器中止)若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。5、数据中止(访问数据存储器中止)若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。,2.6 ARM异常,6、IRQ异常 当处理器的外部中断请求引脚有效,且CPSR中的I=0,产生IRQ异常。系统的外设可通过该异常请求中断服务。7、FIQ异常

    注意事项

    本文(ARM9体系结构.ppt)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开