《嵌入式系统及其应用ARM简介与ARM体系结构.pptx》由会员分享,可在线阅读,更多相关《嵌入式系统及其应用ARM简介与ARM体系结构.pptx(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1嵌入式系统及其应用嵌入式系统及其应用ARM简介与简介与ARM体体系结构系结构2OUTLINE3.1 ARM简介简介3.2 RISC体系结构体系结构3.3 ARM编程模型编程模型3.4 ARM开发工具基础开发工具基础3.5 本章小结本章小结 习题习题第1页/共54页33.1 ARM简介简介n nARM公司简介将技术授权给其它芯片厂商形成各具特色的ARM芯片.第2页/共54页4第3页/共54页5第4页/共54页6n nARM处理器的应用n n 当前主要应用于消费类电子领域当前主要应用于消费类电子领域当前主要应用于消费类电子领域当前主要应用于消费类电子领域n n 约占约占约占约占3232位嵌
2、入式微处理器位嵌入式微处理器位嵌入式微处理器位嵌入式微处理器7575以上以上以上以上的市场份额的市场份额的市场份额的市场份额n n 全球全球全球全球80%80%的的的的GSM/3GGSM/3G手机、手机、手机、手机、99%99%的的的的CDMACDMA手机以及绝大多数手机以及绝大多数手机以及绝大多数手机以及绝大多数PDAPDA产品产品产品产品均采用均采用均采用均采用ARMARM体系的处理器体系的处理器体系的处理器体系的处理器n n“掌上计算掌上计算掌上计算掌上计算”相关的所有领域皆为相关的所有领域皆为相关的所有领域皆为相关的所有领域皆为其所主宰其所主宰其所主宰其所主宰n nARMARM技术正在
3、逐步渗入到我们生活技术正在逐步渗入到我们生活技术正在逐步渗入到我们生活技术正在逐步渗入到我们生活的各个方面的各个方面的各个方面的各个方面第5页/共54页7n nARM体系结构体系结构uARMARM处理器为处理器为RISCRISC芯片,简单的结构使得:芯片,简单的结构使得:ARMARM内核非常小内核非常小 器件的功耗非常低器件的功耗非常低具有经典具有经典RISCRISC的特点的特点u 为了清楚的表达每个为了清楚的表达每个ARMARM应用实例所使用的指应用实例所使用的指令集,令集,ARMARM公司定义了公司定义了7 7种主要的种主要的ARMARM指令集体指令集体系结构版本,以版本号系结构版本,以版
4、本号v1v1v7v7表示表示u v1v1v3v3目前已废弃目前已废弃第6页/共54页8第7页/共54页9n nARM处理器处理器核核简介简介p ARM ARM公司开发了很多系列的公司开发了很多系列的ARMARM处理器核处理器核如:如:ARM7ARM7、ARM9ARM9、ARM10ARM10、ARM11ARM11等等系列系列 ARM6ARM6核以及更早的系列已很少见核以及更早的系列已很少见 目前应用比较广泛的系列是:目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscaleARM11Cortex第8页/共54页10ARM7系列类型:系列类型:u ARM7TDMI
5、u ARM7TDMI-Su ARM720Tu ARM7EJARM9系列类型:系列类型:u ARM920Tu ARM922Tu ARM940T例如:例如:ARM7、ARM9系列微处理器系列微处理器第9页/共54页11ARMARM系列后缀的含义系列后缀的含义系列后缀的含义系列后缀的含义ARM7 ARM7 T D M IT D M I支持高密度支持高密度16位的位的Thumb指令集指令集Embeded-ICE,支持片上断点和调试点支持片上断点和调试点内嵌硬件乘法器内嵌硬件乘法器(Multiplier)支持片上调试支持片上调试ARM7 ARM7 E JE J支持支持新的新的JAVAJAVA支持支持增强
6、型增强型DSPDSP指令集指令集第10页/共54页12注意注意:“ARMARM核核”并不是芯片并不是芯片 ARMARM核核RAMRAM、ROMROM、片内外设、片内外设等组合在一起才能构成现实的芯片等组合在一起才能构成现实的芯片第11页/共54页13ARM系列微处理器核特点ARM7ARM7TDMI:整数处理核ARM7TDMI处理器的可综合版本;ARM720T:带MMU的处理器核心,支持操作系统;ARM7EJ-S:带有DSP和JazelleTM技术,能够实现Java加速功能冯诺伊曼体系结构;ARMTDMI是目前应用最广的微处理器核ARM720T带有MMU和8KB的指令数据混合cache;ARM7
7、EJ-执行ARMv5TEJ指令,5级流水线,提供Java加速指令,没有存储器保护。ARM9ARM920T:带有独立的16KB数据和指令Cache;ARM922T:带有独立的8位KB数据和指令Cache;ARM940T包括更小数据和指令Cache和一个MPU基于ARM9TDMI,带16位的Thumb指令集,增强代码密度最多到35%;在0.13m工艺下最高性能可达到300MIPS(Dhrystone2.1测试标准);集成了数据和指令Chche;32位AMBA总线接口的MMU支持;可在0.18m、0.15m和0.13m工艺的硅芯片上实现。ARMARM系列简介系列简介第12页/共54页14ARM9EA
8、RM926EJ-S:Jazelle技术,有MMU,可配置的数据和指令Cache,TCM接口;ARM946E-S:可配置的数据和指令Cache及TCM;ARM966E-S:针对要求高性能和低功耗的可预测的指令执行时间的硬实时应用设计ARM968E-S:最小、功耗最小的ARM9E系列处理器,针对嵌入式实时应用设计;ARM9E是针对微控制器、DSP和Java的单处理器解决方案;ARMJazelle技术提供8倍的Java加速性能(ARM926EJ-S);5-级整数流水线;在0.13m工艺下最高性能可达到300MIPS(Dhrystone2.1测试标准);可选择的向量浮点单元VFP9协处理器指令优秀海浮
9、点性能,对于3D图形加速和实时控制可达到215MFLOPS。高性能的AHB总线,带MMU可在0.18m,0.15m,0.13m工艺的硅芯片上实现。ARM10EARM1020E:带DSP指令集,在片调试功能,独立的32KB数据和指令Cache,MMU支持;ARM1022E:与ARM1020E相同,只是独立的数据和指令Cache变为16KB;ARM1026EJ-S:同时具有MPU和MMU,可综合版本;带分支预测的6级整数流水线;在0.13m工艺下最高性能可达到430MIPS(Dhrystone2.1测试标准);对于3D图形运算和实时控制采用VFP协处理器,浮点运算性能最高可达650MFLOPS;双
10、64位AMBA总线接口和64位内部总路线接口;优化的缓存结构提高了处理器访问低速存储器的性能;可在0.18m,0.15m,0.13m工艺的硅芯片上实现第13页/共54页15ARM11ARM11MPCore:可综合的多处理器核,1至4个处理器可配置;ARM1136J(F)-S:可配置的数据和指令Cache,可提供1.9位的MPEG4编码加速功能;ARM1156T2(F)-S:带集成浮点协处理器,带内存保护单元MPU;ARM1176JZ(F)-S:带针对CPU和系统安全架构扩展的TrustZone技术。增强的Thumb、Jazelle、DSP扩展支持;带片上和系统安全TrustZone技术支持;在
11、0.13m工艺下最高可达到550MHz;MPCore在0.13m工艺下最高性能可达到740MIPS(Dhrystone2.1测试标准);支持多媒体指令SIMD;采用三种电源模式:全速/待命/休眠集成DMA的TCM低功耗、高性能。SecurCoreSC100:第一个32位安全处理器;、SC110:在SC100上增加密钥协处理器;SC200:带Jazelle技术的高级安全处理器;SC210:在SC200上增加密钥协处理器SecurCore是专门为智能卡、安全IC提供的32位安全处理器,为电子商务、银行、网络、移动多媒体、公共交通提供安全解决方案;体积小、功耗低,代码压缩密度高;为快速增长的Java
12、卡平台提供Java加速功能;第14页/共54页16CortexCortex-A:面向应用的微处理器,针对复杂操作系统和应用程序设计;Cortex-R:针对实时系统的嵌入式处理器;Cortex-M:针对成本敏感应用优化的深度嵌入式处理器;2004年发布,提供增强的媒体和数字处理能力,增加了系统性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高的代码存储密度,进一步降低成本;Intel系列StrongARM:ARMv4体系XScale:ARMv5TE体系,增加MMX指令StrongARM主要应用于手持设备和PDA,5级流水线,具有独立的数据和指令Cache,不支持T
13、humb指令集,目前已停产;XScale是目前Intel公司主推的高性能嵌入式处理器,分通用处理器、网络处理器和I/O处理器三类。其中通用处理器有PXA25x、PXA26x、PXA27x三个系列,被广泛应用于智能手机、PDA领域。第15页/共54页17一、一、RISC 的产生和发展的产生和发展 80 20 规律规律 80%的语句仅用处理机中的语句仅用处理机中 20%的指令的指令 执行频度高的简单指令,因复杂指令执行频度高的简单指令,因复杂指令 的存在,执行速度无法提高的存在,执行速度无法提高RISC(Reduced Instruction Set Computer)CISC(Complex I
14、nstruction Set Computer)RISC技术技术 能否用能否用 20%的简单指令组合不常用的的简单指令组合不常用的 80%的指令功能的指令功能?3.2 RISC体系结构的继承体系结构的继承第16页/共54页18二、二、RISC 的主要特征的主要特征 选用使用频率较高的一些选用使用频率较高的一些 简单指令简单指令 复杂指令的功能由简单指令来组合复杂指令的功能由简单指令来组合 指令指令 长度固定长度固定 只有只有 LOAD/STORE 指令指令访存访存 流水技术流水技术 一个时钟周期一个时钟周期 内完成一条指令内完成一条指令 组合逻辑组合逻辑 实现控制器实现控制器 多个多个 通用通
15、用 寄存器寄存器 采用采用 优化优化 的的 编译编译 程序程序 第17页/共54页19CISCCISCCISCCISC与与与与RISCRISCRISCRISC的数据通道的数据通道的数据通道的数据通道IFIDREGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道RISC:Load/Store结构CISC:寻址方式复杂第18页/共54页20类别类别CISCCISCRISCRISC指令系统指令系统指令数量很多指令数量很多较少,通常少于较少,通常少于100100执行时间执行时间有些指令执行时间很长,如整有些指令执行时间很长,如整块的存储器内容拷贝;或将多块的存储器内容拷贝;
16、或将多个寄存器的内容拷贝到存贮器个寄存器的内容拷贝到存贮器没有较长执行时间的指没有较长执行时间的指令令编码长度编码长度编码长度可变,编码长度可变,1-151-15字节字节编码长度固定,通常为编码长度固定,通常为4 4个字节个字节寻址方式寻址方式寻址方式多样寻址方式多样简单寻址简单寻址操作操作可以对存储器和寄存器进行算可以对存储器和寄存器进行算术和逻辑操作术和逻辑操作只能对寄存器只能对寄存器对行算术对行算术和逻辑操作,和逻辑操作,Load/StoreLoad/Store体系结构体系结构编译编译难以用优化编译器生成高效的难以用优化编译器生成高效的目标代码程序目标代码程序 采用优化编译技术,生采用优
17、化编译技术,生成高效的目标代码程序成高效的目标代码程序 CISCCISC与与RISCRISC的对比的对比第19页/共54页21三、三、ARM内核内核RISC架构的特别技术架构的特别技术 所有的指令可所有的指令可根据前面的执行结果根据前面的执行结果决定是否决定是否 被执行被执行 可用加载可用加载/存储指令存储指令批量传输批量传输数据数据 可在一条数据处理指令中同时完成可在一条数据处理指令中同时完成逻辑处理逻辑处理 和和移位处理移位处理 在循环处理中使用在循环处理中使用地址的自动增减地址的自动增减来提高运来提高运 行效率行效率第20页/共54页22四、四、ARM的流水线技术的流水线技术取指令取指令
18、 3执行指令执行指令 31.指令的串行执行指令的串行执行取指令取指令 取指令部件取指令部件 完成完成总有一个部件总有一个部件 空闲空闲执行指令执行指令 执行指令部件执行指令部件 完成完成取指令取指令 2执行指令执行指令 2取指令取指令 1执行指令执行指令 1第21页/共54页23四、四、ARM的流水线技术的流水线技术2.指令的二级流水指令的二级流水指令预取指令预取若若 取指取指 和和 执行执行 阶段时间上阶段时间上 完全重叠完全重叠指令周期指令周期 减半减半 速度提高速度提高 1 倍倍取指令取指令1执行执行指令指令1取取指令指令2执行执行指令指令2取取指令指令3执行指令执行指令3第22页/共5
19、4页24六级流水六级流水14 个时间单位个时间单位串行执行串行执行6 9=54 时间单位时间单位完成完成 一条指令一条指令6 个时间单位个时间单位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令指令 1指令指令 2指令指令 3指令指令 4指令指令 5指令指令 6指令指令 7指令指令 8指令指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14t3.指令的六级流水指令的六级流水第23页/共54页25预取预取
20、 译码译码 执行执行预取预取 译码译码 执行执行 访存访存 写入写入预取预取译码译码发送发送执行执行 访存访存 写入写入 ARM7 ARM7:三级三级流水流水 ARM9 ARM9:五级五级流水流水 ARM10 ARM10:六级六级流水流水第24页/共54页26一、存储数据类型、存储格式一、存储数据类型、存储格式ARMARM处理器支持下列数据类型:处理器支持下列数据类型:字节字节 8 8位位半字半字 1616位位(必须分配为占用两个字节必须分配为占用两个字节)字字 3232位位(必须分配为占用必须分配为占用4 4个字节个字节)1112342字对齐字对齐、半字对齐半字对齐3.3 ARM编程模型编程
21、模型第25页/共54页27存储格式存储格式 大端格式大端格式 字数据的高字节存储在低地址中字数据的高字节存储在低地址中第26页/共54页28 小端格式小端格式 字数据的高字节存储在高地址中字数据的高字节存储在高地址中存储格式存储格式第27页/共54页29冯冯诺依曼体系结构(诺依曼体系结构(ARM7ARM7)指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2第28页/共54页30哈佛体系结构(哈佛体系结构(ARM9ARM9以后)以后)指令寄存器控制器数据通道输入输出CPU程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据
22、第29页/共54页31ARM体系结构支持下表所列的体系结构支持下表所列的7种处理器模式种处理器模式二、二、处理器模式处理器模式第30页/共54页32处理器模式处理器模式说明说明 用户用户 (usr)(usr)系统系统 (sys)(sys)特权模式特权模式 快中断快中断 (fiq)(fiq)中断中断 (irq)(irq)管理管理 (svc)(svc)中止中止 (abt)(abt)未定义未定义 (und)(und)第31页/共54页33处理器模式处理器模式说明说明 用户用户 (usr)(usr)正常程序执行模式正常程序执行模式 系统系统 (sys)(sys)运行操作系统的特权任务运行操作系统的特权
23、任务 快中断快中断 (fiq)(fiq)异常模式异常模式 中断中断 (irq)(irq)管理管理 (svc)(svc)中止中止 (abt)(abt)未定义未定义 (und)(und)第32页/共54页34三、双指令集与处理器工作状态三、双指令集与处理器工作状态 双指令集双指令集16位位Thumb指令集指令集:密度高,所占存储空间较:密度高,所占存储空间较小小32位的位的ARM指令集指令集:处理:处理32位数据时性能较高位数据时性能较高 处理器工作状态处理器工作状态Thumb状态状态:执行:执行半字对准半字对准的的Thumb指令指令ARM状态状态 :执行:执行字对准字对准的的ARM指令指令 可以
24、切换,不影响运行模式和寄存器的内可以切换,不影响运行模式和寄存器的内容容第33页/共54页35n n处理器状态切换处理器状态切换 使用使用BXBX指令可以将指令可以将ARMARM内核的操作状态在内核的操作状态在ARMARM状态和状态和ThumbThumb状态之间进行切换,如下:状态之间进行切换,如下:;从从Arm状态切换到状态切换到Thumb状态状态 LDR R0,=Lable+1 BX R0;从从Thumb状态切换到状态切换到ARM状态状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号第34页/共54页36四、
25、寄存器组四、寄存器组 31个通用寄存器个通用寄存器 6个状态寄存器个状态寄存器第35页/共54页37 通用寄存器通用寄存器 未分组寄存器未分组寄存器R0R7 所有运行模式下,都指向同一个物理寄存器所有运行模式下,都指向同一个物理寄存器 分组寄存器分组寄存器R8R14每一次访问的物理寄存器与处理器当前的运行模式有关每一次访问的物理寄存器与处理器当前的运行模式有关 程序计数器程序计数器R15 ARM状态状态 :位:位1:0为为0,位,位31:2用于保存用于保存PC;Thumb状态:位状态:位0为为0,位,位31:1用于保存用于保存PC;寄存器寄存器R16 当前程序状态寄存器当前程序状态寄存器1 1
26、、ARMARM状态下的寄存器组状态下的寄存器组第36页/共54页38第37页/共54页392 2、ThumbThumb状态下的寄存器组状态下的寄存器组第38页/共54页40两种状态下的寄存器组对应关系两种状态下的寄存器组对应关系第39页/共54页41 1个当前程序状态寄存器个当前程序状态寄存器(CPSR)5个备份的程序状态寄存器个备份的程序状态寄存器(SPSR,供异常处理使用供异常处理使用)备份的状态程序寄存器功能:备份的状态程序寄存器功能:保存保存ALU中的当前操作信息中的当前操作信息 控制允许和禁止中断控制允许和禁止中断 设置处理器的运行模式设置处理器的运行模式 3 3、程序状态寄存器、程
27、序状态寄存器第40页/共54页42NNZ ZC CV VI IM0M0M1M1M2M2M3M3M4M4T TF F.31 30 29 28 27 26 8 7 6 5 4 3 2 1 031 30 29 28 27 26 8 7 6 5 4 3 2 1 0条件代码标志条件代码标志保留保留控制位控制位溢出标志溢出标志 Overflow进位或借位扩展进位或借位扩展 Carry零零 Zero负或小于负或小于 NegativeI IRQ禁止禁止 InterruptFIQ禁止禁止 Fast状态位状态位 Thumb模式位模式位 ModeNZCVIM0M1M2M3M4TFCPSRCPSR寄存器的格式寄存器的
28、格式第41页/共54页43五、异常与中断处理五、异常与中断处理1、ARM支持的异常类型支持的异常类型 复位复位 未定义指令未定义指令 软件中断软件中断 中止中止 指令预取中止指令预取中止 及及 数据中止数据中止 IRQ FIQ第42页/共54页44ARMARM体系结构所支持的异常体系结构所支持的异常体系结构所支持的异常体系结构所支持的异常异常类型具体含义复位(RESET)当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。未定义指令(UDEF)当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。软件中断(SWI)该异常由执行SW
29、I指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用。指令预取中止(PABT)若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。数据中止(DABT)若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。外部中断请求(IRQ)当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务。快速中断请求(FIQ)当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。第43页/共54页45
30、异常向量(异常向量(异常向量(异常向量(Exception VectorsException Vectors)地地 址址异异 常常进入模式进入模式0 x0000,0000复位复位管理模式管理模式0 x0000,0004未定义指令未定义指令未定义模式未定义模式0 x0000,0008软件中断软件中断管理模式管理模式0 x0000,000C中止(预取指令)中止(预取指令)中止模式中止模式0 x0000,0010中止(数据)中止(数据)中止模式中止模式0 x0000,0014保留保留保留保留0 x0000,0018IRQIRQ0 x0000,001CFIQFIQ第44页/共54页46 复位复位 高高
31、 数据中止数据中止 FIQ IRQ 预取指令中止预取指令中止未定义指令,未定义指令,SWI 低低2 2、异常的优先级、异常的优先级第45页/共54页473、应用程序中的异常处理、应用程序中的异常处理 在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。4、异常的响应过程、异常的响应过程 将下一条指令的地址存入相应连接寄存器将下一条指令的地址存入相应连接寄存器LR 将将CPSR复制到相应的复制到相应的SPSR中中 根据异常类型,强制设置根据异常类型,强制设置CPSR的运行模式的运行模式 强制强制PC从相关的异常向量地址取下一
32、条指令执行从相关的异常向量地址取下一条指令执行第46页/共54页485、异常的返回过程、异常的返回过程 将连接寄存器将连接寄存器LR的值减去相应的偏移量送到的值减去相应的偏移量送到PC中中 将将SPSR复制到相应的复制到相应的CPSR中中 若设置了中断禁止位,则清除若设置了中断禁止位,则清除复位复位异常处理程序不需要返回异常处理程序不需要返回第47页/共54页49ADT 嵌入式开发环境ARM Development Tools 武汉创维特开发ADT Emulator for ARMADT IDE for ARM3.4 ARM开发工具基础开发工具基础第48页/共54页50ARM ADS ARM
33、ADS 集成开发环境集成开发环境n nARM ADS:ARM Developer SuiteARM公司推出n n最新版本为ADS 1.2。n n支持所有ARM系列处理器n n包括:代码生成工具代码生成工具 集成开发环境集成开发环境调试器调试器 指令集模拟器指令集模拟器ARM ARM 开发包开发包 ARMARM应用库应用库第49页/共54页51ARMARM应用系统开发工具应用系统开发工具In Circuit Emulator第50页/共54页52第51页/共54页53JTAG调试调试接口接口 边界扫描技术边界扫描技术 通过边界扫描寄存器单元,实现对芯片通过边界扫描寄存器单元,实现对芯片输入输出信号的观察和控制输入输出信号的观察和控制 边界扫描寄存器对芯片是透明的,正常边界扫描寄存器对芯片是透明的,正常的运行不会受到任何影响的运行不会受到任何影响 不占用不占用ARMARM芯片上的任何硬件资源芯片上的任何硬件资源 比较方便和容易发现程序中存在的问题比较方便和容易发现程序中存在的问题第52页/共54页ENDEND第53页/共54页