1第二章ARM体系结构及编程模型2019/8/1主讲张道德2提纲13245ARM技术的应用领域及特点ARM处理器的寄存器组织ARM处理器的工作模式ARM微处理器系列67第二章ARM体系结构及编程模型ARM异常处理ARM处理器的工作状态ARM处理器的存储器格式3ARM-AdvancedRISCMachinesARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM技术的应用领域及特点1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。4ARM公司的Chipless模式世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。ARM技术的应用领域及特点基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。我国的中兴集成电路、大唐电讯、中芯国际和上海华虹,以及国外的一些公司如德州仪器、意法半导体、Philips、Intel、Samsung等都推出了自己设计的基于ARM核的处理器。5ARM微处理器的应用领域工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。ARM技术的应用领域及特点到目前为止,ARM微处理器及技术的应用已经广泛深入到国民经济的各个领域6ARM微处理器的应用领域ARM技术的应用领域及特点网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。……7ARM微处理器的特点—低功耗、低成本、高性能采用RISC指令集ARM技术的应用领域及特点低功耗、低成本、高性能使用大量的寄存器ARM/THUMB指令支持三/五级流水线8ARM微处理器的特点—采用RISC体系结构ARM技术的应用领域及特点采用RISC架构的ARM处理器一般具有如下特点:固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种;使用单周期指令,便于流水线操作执行;大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。9ARM微处理器的特点—大量使用寄存器ARM技术的应用领域及特点ARM处理器共有37个寄存器,被分为若干个组,这些寄存器包括:31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器;6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位。10ARM微处理器的特点—高效的指令系统ARM技术的应用领域及特点ARM微处理器支持两种指令集:ARM指令集和Thumb指令集。ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。11ARM微处理器的特点—其他技术ARM技术的应用领域及特点除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:所有的ARM指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。可用加载/存储指令批量传输数据,以提高数据的传输效率。可在一条数据处理指令中同时完成逻辑处理和移位处理。在循环处理中使用地址的自动增减来提高运行效率。12ARM微处理器系列ARM微处理器系列ARM7系列ARM9系列ARM9E系列ARM10E系列SecurCore系列Intel的Xscale其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。13ARM7微处理器系列ARM7系列是低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7系列有如下特点:具有嵌入式ICE-RT逻辑,调试开发方便;极低的功耗,适合对功耗要求较高的应用,如便携式产品;能够提供0.9MIPS/MHz的三级流水线结构;兼容16位的Thumb指令集,代码密度高;对操作系统的支持广泛,如WindowsCE、Linux、PalmOS等;指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代;主频最高可达130M,高速的运算处理能力能胜任绝大多数的复杂应用。ARM微处理器系列14ARM7微处理器系列ARM微处理器系列主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为:T:支持16位压缩指令集Thumb;D:支持片上Debug;M:内嵌硬件乘法器(Multiplier)I:嵌入式ICE,支持片上断点和调试点;15ARM9微处理器系列ARM微处理器系列ARM9系列微处理器在高性能和低功耗特性方面提供最佳的表现。具有以下特点:5级流水线,指令执行效率更高。提供1.1MIPS/MHz的哈佛结构。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。MPU支持实时操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。16ARM9微处理器系列ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。ARM微处理器系列ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。17ARM9E微处理器系列ARM微处理器系列ARM9E系列微处理器的主要特点如下:支持DSP指令集,适合于需要高速数字信号处理的场合。5级流水线,指令执行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。支持VFP9浮点处理协处理器。全性能的MMU,支持众多主流嵌入式操作系统。支持数据Cache和指令Cache,具有更高的处理能力。主频最高可达300M。18ARM9E微处理器系列ARM9E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。ARM微处理器系列ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。19ARM10E微处理器系列ARM微处理器系列ARM10E系列微处理器的主要特点如下:支持DSP指令集,适合于需要高速数字信号处理的场合。6级流水线,指令执行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。支持VFP10浮点处理协处理器。全性能的MMU,支持众多主流嵌入式操作系统。支持数据Cache和指令Cache,具有更高的处理能力主频最高可达400M。内嵌并行读/写操作部件。20ARM10E微处理器系列ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。ARM微处理器系列ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。21SecurCore微处理器系列ARM微处理器系列SecurCore系列微处理器除了具有ARM体系结构各种主要特点外,还在系统安全方面具有如下的特点:带有灵活的保护单元,确保操作系统和应用数据的安全。采用软内核技术,防止外部对其进行扫描探测。可集成用户自己的安全特性和其他协处理器。22SecurCore微处理器系列SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。ARM微处理器系列SecurCore系列微处理器包含SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC210四种类型,以适用于不同的应用场合。23StrongARM微处理器系列ARM微处理器系列IntelStrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。IntelStrongARMSA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Intel公司的设计和处理技术以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。24Xscale处理器ARM微处理器系列Xscale处理器是基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持16位的Thumb指令和DSP指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。Xscale处理器是Intel目前主要推广的一款ARM微处理器。25ARM微处理器的工作状态ARM微处理器的工作状态从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:ARM状态,此时处理器执行32位的字对齐的ARM指令;Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。26ARM与THUMBTHUMB指令是ARM指令的子集ARM微处理器的工作状态可以相互调用,只要遵循一定的调用规则Thumb指令与ARM指令的时间效率和空间效率关系为:存储空间约为ARM代码的60%~70%指令数比ARM代码多约30%~40%存储器为32位时ARM代码比Thumb代码快约40%存储器为16位时Thumb比ARM代码快约40~50%使用Thumb代码,存储器的功耗会降低约30%27状态切换方法ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,ARM微处理器的工作状态在开始执行代码时,处于ARM状态。28进入Thumb状态当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。ARM微处理器的工作状态29切换到ARM状态当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。ARM微处理器的工作状态在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。30处理器模式ARM微处理器的工作模式usr:ARM处理器正常的程序执行状态fiq:用于高速数据传输或通道处理irq:用于通用的中断处理svc:操作系统使用的保护模式abt:用于虚拟存储及存储保护sys:运行具有特权的操作系统任务und:当出现未定义指令终止时进入该模式31用户模式和特权模式ARM微处理器的工作模式