02 ARM 处理器介绍_第1页
02 ARM 处理器介绍_第2页
02 ARM 处理器介绍_第3页
02 ARM 处理器介绍_第4页
02 ARM 处理器介绍_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

ARM处理器,(2010年09月09日新闻)ARM正式发布Cortex-A15处理器:主频2.5GHz、加速5倍,ARM今天正式宣布推出Cortex-A15MPCore处理器,相比当前的高级智能手机处理器,可在同等功耗水平上带来5倍的性能提升。Cortex-A15处理器基于ARMv7-ACortex微架构,单个处理器集群内拥有1-4个SMP处理核心,彼此通过AMBA4技术互联,支持一系列ISA,能够在不断下降的功耗、散热和成本预算基础上提供高度可扩展性解决方案,广泛适用于下一代智能手机、平板机、大屏幕移动计算设备、高端数字家庭娱乐终端、无线基站、企业基础架构产品等等。,新闻,(2010年09月09日新闻)ARM正式发布Cortex-A15处理器:主频2.5GHz、加速5倍,该处理器主频最高可达2.5GHz,并可根据不同应用领域灵活调整,比如智能手机和移动计算的1-1.5GHz单/双核心、数字家庭娱乐的1-2GHz双/四核心、家庭和Web2.0服务器的1.5-2.5GHz四/八核心乃至更大规模互联。作为Cortex-A系列家族的最新成员,Cortex-A15是一颗具备广泛软件与功能兼容性的处理器,为操作系统虚拟化、软错误纠正、更大内存寻址能力、系统一致性提供了高效的硬件支持,同时保留该系列低功耗设计优势,以及全面的应用兼容性,可立即投入现有开发者、软件生态系统,包括GoogleAndroid、AdobeFlashPlayer、JavaSE、JavaFX、Linux、WindowsEmbeddedCompact7、Symbian、Ubuntu,还有七百多家ARMConnectedCommunity社区成员提供应用软件、硬件、软件开发工具、中间件、SoC设计设备。,新闻,ARMCortex-A家族发展路线图,新闻,Cortex-A15核心架构图,新闻,1、冯诺依曼体系结构模型,2.1硬件基础,2、冯诺依曼体系的特点,1)数据与指令都存储在存储器中2)被大多数计算机所采用3)ARM7冯诺依曼体系,3、哈佛体系结构,4、哈佛体系结构的特点,1)程序存储器与数据存储器分开2)提供了较大的数存储器带宽3)适合于数字信号处理4)大多数DSP都是哈佛结构5)ARM9及后续处理器是哈佛结构,5、CISC:复杂指令集(ComplexInstructionSetComputer)具有大量的指令和寻址方式8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。6、RISC:精简指令集(ReducedInstructionSetComputer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单,7、流水线技术:,几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动,为增加处理器指令流的速度,ARM7系列使用3级流水线.允许多个操作同时处理,而非顺序执行。,PC指向正被取指的指令,而非正在执行的指令,7、流水线技术:,该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数(CPI)=1,ARM7流水线,ARM处理器内核流水线,2.2ARM微处理器系列,ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,SecurCore系列,Intel的Xscale,Cortex系列,ARM处理器架构进化史,ARM处理器核心技术演进路线,17,数据源:ARM,三星,DIGITIMES整理,2009/9,ARMv5指令集,ARM926EJ-S,ARM1026EJ-S,ARMv6指令集,ARM1136J(F)-S,ARM11MPCore(14核心),ARMv7-Cortex指令集,Cortex-A8,Cortex-A9MPCore(14核心),400MHz,600MHz,800MHz,200MHz,2005,2006,2007,2008,2009,130nm制程,90nm制程,65nm制程,45nm制程,1GHz,ARM处理器不同功能特性,ARM处理器不同功能特性,ARM7微处理器系列,ARM7系列是低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7系列有如下特点:,具有嵌入式ICERT逻辑,调试开发方便;,极低的功耗,适合对功耗要求较高的应用,如便携式产品;,能够提供0.9MIPS/MHz的三级流水线结构;,兼容16位的Thumb指令集,代码密度高;,对操作系统的支持广泛,如WindowsCE、Linux、PalmOS等;,指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代;,主频最高可达130M,高速的运算处理能力能胜任绝大多数的复杂应用。,ARM7微处理器系列,主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体等。,ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为:T:支持16位压缩指令集Thumb;D:支持片上Debug;M:内嵌硬件乘法器(Multiplier)I:嵌入式ICE,支持片上断点和调试点;,ARM9微处理器系列,ARM9系列微处理器在高性能和低功耗特性方面提供最佳的表现。具有以下特点:,5级流水线,指令执行效率更高。,提供1.1MIPS/MHz的哈佛结构。,支持32位ARM指令集和16位Thumb指令集。,支持32位的高速AMBA总线接口。,全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。,MPU支持实时操作系统。,支持数据Cache和指令Cache。,ARM9微处理器系列,ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。,ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。,ARM9E微处理器系列,ARM9E系列微处理器的主要特点如下:,支持DSP指令集,适合于需高速数字信号处理的场合。,5级流水线,指令执行效率更高。,支持32位ARM指令集和16位Thumb指令集。,支持32位的高速AMBA总线接口。,支持VFP9浮点处理协处理器。,全性能的MMU,支持众多主流嵌入式操作系统。,支持数据Cache和指令Cache,具有更高的处理能力。,ARM9E微处理器系列,ARM9E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。,ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。,ARM10E微处理器系列,ARM10E系列微处理器的主要特点如下:,支持DSP指令集,适合于需要高速数字信号处理的场合。,6级流水线,指令执行效率更高。,支持32位ARM指令集和16位Thumb指令集。,支持32位的高速AMBA总线接口。,支持VFP10浮点处理协处理器。,全性能的MMU,支持众多主流嵌入式操作系统。,支持数据Cache和指令Cache,具有更高的处理能力,主频最高可达400M。,内嵌并行读/写操作部件。,ARM10E微处理器系列,ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。,ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。,SecurCore微处理器系列,SecurCore系列微处理器除了具有ARM体系结构各种主要特点外,还在系统安全方面具有如下的特点:,带有灵活的保护单元,确保操作系统和应用数据的安全。,采用软内核技术,防止外部对其进行扫描探测。,可集成用户自己的安全特性和其他协处理器。,SecurCore微处理器系列,SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。,SecurCore系列微处理器SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC210四种类型。,StrongARM微处理器系列,IntelStrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。,IntelStrongARMSA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Intel公司的设计和处理技术以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。,Xscale处理器,Xscale处理器是基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持16位的Thumb指令和DSP指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。,Cortex微处理器系列,ARMCortex发布于2005年,为各种不同性能需求的应用提供了一整套完整的优化解决方案,该系列的技术划分完全针对不同的市场应用和性能需求。目前ARMCortex定义了三个系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器和低成本应用提供优化。,Cortex系列,Cortex-M系列:针对价格敏感应用领域的嵌入式处理器,只支持Thumb-2指令集,强调操作的确定性,以及性能、功耗和价格的平衡。是为对开发费用非常敏感同时对性能要求小断增加的嵌入式应用(如微控制器、汽车车身控制系统和各种大型家电)所设计的,主要面向单片机领域,可以说是51单品机的完美替代品。,Cortex系列,Cortex-R系列:针对实时系统的嵌入式处理器。支持ARM、Thumb和Thumb-2指令集,强调实时性,存储器管理只支持物理地址。主要面向实时控制领域,如汽车刹车控制等,这一领域要求处理器响应中断的实时性高,并且要尽可能的节约成本,Cortex系列,Cortex-A系列:针对复杂OS和应用程序(如多媒体)的应用处理器。支持ARM、Thumb和Thumb-2指令集,强调高性能与合理的功耗,存储器管理支持虚拟地址。面向尖端的基于虚拟内存的操作系统和用户应用,如多媒体,上网本等,采用/不采用整合式处理器的手机芯片业者与智能型手机,37,Nokia5800,HTCG1,MotorolaA3100,SonyEricssonX1,RIMBlackBerryStorm,iPhone3GS,PalmPre,SamsungOmniaHD,主攻独立应用处理器或基频芯片,单处理器的智能型手机,双处理器的智能型手机,Marvell、Broadcom、ST-Ericsson等,应用处理器:德仪、三星、Freescale等基频:英飞凌等,推出整合式处理器,手机芯片厂商,数据源:DIGITIMES,2009/9,Cortex处理器技术特点,ARMv7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术。Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销,同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。,2.3ARM存储方法,直接支持的数据类型,ARM处理器支持下列数据类型:字节8位半字16位(必须分配为占用两个字节)字32为(必须分配为占用4各字节),ARM920T微处理器的工作状态一般有两种:ARM状态:处理器执行32位的、字对齐的ARM指令;Thumb状态:处理器执行16位的、半字对齐的Thumb指令。,大端格式和小端格式:大端格式中字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如图2.2所示。,图2.2大端格式存储字数据,与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。如图2.3所示,图2.3小端格式存储字数据,2.4处理器模式,ARM体系结构支持7种处理器模式,分别为:用户模式快中断模式中断模式管理模式中止模式未定义模式系统模式,2.4处理器模式,处理器模式,2.4处理器模式,特权模式,除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。,2.4处理器模式,异常模式,这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。,2.4处理器模式,用户和系统模式,这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。,2.5内部寄存器,在ARM处理器内部有37个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。,ARM状态各模式下的寄存器,ARM状态各模式下的寄存器,所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。,ARM状态各模式下可以访问的寄存器,一般的通用寄存器,在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。,一般的通用寄存器,其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。,一般的通用寄存器,寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器,一般的通用寄存器,寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。,一般的通用寄存器,寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。,堆栈指针寄存器R13(SP),寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。,链接寄存器R14(LR),R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。,2.5内部寄存器,R14寄存器与子程序调用,MOVPC,LR,R14(地址A),1.程序A执行过程中调用程序B;,操作流程,2.程序跳转至标号Lable,执行程序B。同时硬件将“BLLable”指令的下一条指令所在地址存入R14;,3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;,2.5内部寄存器,R14寄存器与异常发生,异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。,2.5内部寄存器,R14寄存器注意要点,当发生异常嵌套时,这些异常之间可能会发生冲突。例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。(详细过程见下页的动画),2.5内部寄存器,R14寄存器注意要点,a,return,地址A,1.执行用户模式下的程序;,2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;,3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;,未被破坏,2.5内部寄存器,R14寄存器注意要点,a,地址A,1.执行用户模式下的程序;,2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;,3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;,未被破坏,a,return,地址B,4.如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断,或者调用子程序;,5.硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;,被破坏,6.在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;,return,return,解决办法是确保R14的对应版本在发生中断嵌套时不再保存任何有意义的值(将R14入栈),或者切换到其它处理器模式下。,程序计数器R15(PC),寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。,2.5内部寄存器,读R15的限制,正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。,2.5内部寄存器,读R15的限制,当使用STR或STM指令保存R15时,会有一个例外。这些指令可能将当前指令地址加8字节或加12字节保存(将来可能还有其它数字)。偏移量是8还是12取决于具体的ARM芯片,但是对于一个确定的芯片,这个值是一个常量。所以最好避免使用STR和STM指令来保存R15,如果很难做到,那么应当在程序中计算出该芯片的偏移量。,2.5内部寄存器,读R15的限制,计算偏移量程序代码:,SUBR1,PC,#4;R1=下面STR指令的地址STRPC,R0;保存STR指令地址+偏移量LDRR0,R0;然后重装SUBR0,R0,R1;计算偏移量,2.5内部寄存器,写R15的限制,正常操作时,写入R15的值被当作一个指令地址,程序从这个地址处继续执行(相当于执行一次无条件跳转)。,2.5内部寄存器,写R15的限制,由于ARM指令以字节为边界,因此写入R15的值最低两位通常为0b00。具体的规则取决于内核结构的版本:在ARM结构V3版及以下版本中,写入R15的值的最低两位被忽略,因此跳转地址由指令的实际目标地址(写入R15的值)和0 xFFFFFFFC相与得到;在ARM结构V4版及以上版本中,写入R15的值的最低两位为0,如果不是,结果将不可预测。,程序状态寄存器CPSR,寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在因为异常事件而进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。详细描述参看2.6小节。,2.5内部寄存器,Thumb状态寄存器,Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为:8个通用寄存器R0R7;程序计数器(PC);堆栈指针(SP);链接寄存器(LR);有条件访问程序状态寄存器(CPSR)。,Thumb状态各模式下的寄存器,注意:括号内为ATPCS中寄存器的命名,可以使用RN汇编伪指令将寄存器定义多个名字。其中ADS1.2的汇编程序直接支持这些名称,但注意a1a4,v1v4必须用小写。,Thumb状态下的通用寄存器,在汇编语言中寄存器R0R7为保存数据或地址值的通用寄存器。对于任何处理器模式,它们中的每一个都对应于相同的32为物理寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊的用途,并且可用于任何使用通用寄存器的指令。,Thumb状态下的堆栈指针寄存器(SP),堆栈指针SP对应ARM状态的寄存器R13。每个异常模式都有其自身的SP分组版本,SP通常指向各异常模式所专用的堆栈。注意:在发生异常时,处理器自动进入ARM状态。,Thumb状态下的链接寄存器R14(LR),链接寄存器LR对应ARM状态寄存器R14,在结构上有两个特殊功能,详见“ARM状态下的链接寄存器LR”。注意:在发生异常时,处理器自动进入ARM状态。,2.5内部寄存器,ARM状态和Thumb状态之间寄存器的关系,Thumb状态寄存器与ARM状态寄存器有如下的关系:Thumb状态R0R7与ARM状态R0R7相同;Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同;Thumb状态SP映射到ARM状态R13;Thumb状态LR映射到ARM状态R14;Thumb状态PC映射到ARM状态PC(R15)。,Thumb状态寄存器在Arm状态寄存器上的映射,低寄存器,高寄存器,2.5内部寄存器,在Thumb状态中访问高寄存器,在Thumb状态中,高寄存器(R8R15)不是标准寄存器集的一部分。汇编语言程序员对它们的访问受到限制,但可以将它们用于快速暂存。可以使用MOV、CMP和ADD指令对高寄存器操作,2.6程序状态寄存器,简介,ARM内核包含1个CPSR和5个供异常处理程序使用的SPSR。CPSR反映了当前处理器的状态,其包含:4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V));2个中断禁止位,分别控制一种类型的中断;5个对当前处理器模式进行编码的位;1个用于指示当前执行指令(ARM还是Thumb)的位。,2.6程序状态寄存器,简介,条件代码标志,保留,控制位,溢出标志,进位或借位扩展,零,负或小于,IRQ禁止,FIQ禁止,状态位,模式位,N,Z,C,V,I,T,F,CPSR寄存器的格式,2.6程序状态寄存器,简介,每个异常模式还带有一个程序状态保存寄存器(SPSR

温馨提示

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

评论

0/150

提交评论