资源预览内容
第1页 / 共66页
第2页 / 共66页
第3页 / 共66页
第4页 / 共66页
第5页 / 共66页
第6页 / 共66页
第7页 / 共66页
第8页 / 共66页
第9页 / 共66页
第10页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ARM公司英文全称是Advanced RISC Machines,它是业界领先的知识产权供应商,它和一般的公司不同,ARM公司只提供内核方案和技术授权,不提供具体的芯片。 在高性能的32位嵌入式SoC设计中,几乎都是用ARM作为处理器核。ARM核已是现在嵌入式SoC系统芯片的核心,也是现代嵌入式系统发展的方向。 ARM是精简指令集计算机(RISC),其设计实现了外形非常小但是性能高的结构。ARM处理器结构的简单使ARM的内核非常小,这样使器件的功耗也非常低。它集成了非常典型的RISC结构特性,第七章 ARM嵌入式处理器,7.1 ARM处理器,ARM发展 第一片ARM处理器是1983年10月到1985年4月间在位于英国剑桥的Acorn Computer公司开发 1990年,为广泛推广ARM技术而成立了独立的公司 20世纪90年代, ARM快速进入世界市场 在ARM的发展历程中,从ARM7开始,ARM核被普遍认可和广泛使用,ARM发展,ARM技术还将不断发展。在嵌入式领域,ARM已取得了极大的成功,造就了IP核商业化、市场化的神话,迄今为止,还没有任何商业化的IP核交易和使用达到ARM的规模。据最新统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户,包括德州仪器,意法半导体,Philips,Intel等。ARM系列芯片已经被广泛的应用于移动电话、手持式计算机以及各种各样的嵌入式应用领域,成为世界上销量最大的32位微处理器。,ARM体系结构的基本版本,ARM体系结构总结,ARM处理器系列,ARM处理器核当前有6 个系列产品: ARM7 ARM9 ARM9E ARM10E, SecurCore ARM11 Intel公司推出的: StrongARM XScale Cortex系列 Cortex-M;Cortex-R; Cortex-A,ARM* 32位ARM体系结构4T版本,T Thumb 16位压缩指令集; D 支持片上Debug(调试),使处理器能够停止,以响应调试请求; M 增强型Multiplier,与前代相比,具有较强的性能且能产生64位的结果; I 带EmbeddedICE硬件仿真功能模块,以支持片上断点和观察点。,ARM7系列核,ARM7TDMI是ARM公司最早为业界普遍认可且得到了广泛应用的处理器核。ARM7TDMI是从最早实现了32位地址空间编程模式的ARM6核发展而来的。 ARM7TDMI的主要特性有: 实现ARM体系结构版本4T,支持64位结果的乘法,半字、有符号字节存取; 支持Thumb指令集,可降低系统开销; 32X8 DSP乘法器; 32位寻找空间-4GB线性地址空间; 包含了EmbeddedICE模块,以支持嵌入式系统调试; 调试硬件由JTAG测试访问断口访问,因此JTAG控制逻辑被认为是处理器核的一部分; 广泛的ARM和第三方支持,与ARM9 Thumb系统、ARM10 Thumb系列和StrongARM处理器相兼容。 飞利浦公司的LPC2114/2124/2210/2212/2214、三星公司的S3C44B0X等芯片采用的即是ARM7微处理器核。,ARM9系列核,ARM9TDMI在拥有ARM7TDMI技术特点的同时,还将流水线的级数从ARM7TDMI 3级增加5级,用来增加最高时钟频率,并使用分开的指令与数据存储器的Harvard体系结构,以改善CPI,增强处理器性能。在相同的工艺条件下,ARM9TDMI的性能近似为ARM7TDMI的2倍。在ARM9TDMI基础上开发了ARM9E、ARM920T和ARM940T的CPU核。ARM920T和ARM940T在ARM9TDMI基础上增加了指令和数据Cache。 三星公司的S3C2410等芯片即采用了ARM9微处理器。,7.2 ARM体系结构,RISC是指精减指令系统计算机(Reduced Instruction Set Computer)。这里的计算机指令系统指的是计算机的最低层的机器指令,也就是CPU能够直接识别的指令。 特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。,RISC体系结构应具有如下特点:,采用固定长度的指令格式,指令归整、简单、基本寻址方式少。 使用单周期指令,便于流水线操作执行。 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。 可用加载/存储指令批量传输数据,以提高数据的传输效率。 可在一条数据处理指令中同时完成逻辑处理和移位处理。 在循环处理中使用地址的自动增减来提高运行效率。,哈弗结构,哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。使用哈佛结构的处理器有:AVR、ARM9、ARM10、ARM11等。,Cycle,Operation,ADD,SUB,ORR,AND,EOR,ORR,1,2,3,4,5,6,7,8,9,F,D,E,F,D,E,F,E,F,D,E,F,D,E,F,D,E,W,M,F 取指 D 解码 E 执行,该例中用6个时钟周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1,F,F,F,F,F,F,F,F,D,D,D,D,D,E,E,E,E,E,流水线技术,ARM7的3级流水线 : 取指级-译码级 -执行级,LDR 流水线举例,该例中,用6周期执行了4条指令 指令周期数 (CPI) = 1.5,分支流水线举例,流水线被阻断 注意:内核运行在ARM状态,中断流水线举例,IRQ 中断的反应时间最小=7周期,2)五级流水线ARM的组织,使用5级流水线的ARM处理器包含下面5个流水线级 取指 译码 执行 缓冲数据 回写,ARM9TDMI流水线的变化,本例中,用了6个时钟周期执行6条指令, CPI = 1。 LDR指令没有引起流水线互锁,7.2.2 ARM处理器工作状态及模式,ARM处理器核可以工作在以下2种状态 ARM状态 32位,ARM状态下执行字对准的32位ARM指令; Thumb状态 16位,Thumb状态下执行半字对准的16位Thumb指令。在Thumb状态下,程序计数器PC使用位1选择另一个半字。,ARM处理器工作状态,在程序执行的过程中,处理器可以在两种状态下切换 ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。 ARM指令集和Thumb指令集都有相应的状态切换命令。 ARM处理器在开始执行代码时,只能处于ARM状态。,ARM 有7个基本工作模式: User : 非特权模式,大部分任务执行在这种模式 FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式 IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式 Supervisor :当复位或软中断指令执行时将会进入这种模式 Abort : 当存取异常时将会进入这种模式 Undef : 当执行未定义指令时会进入这种模式 System : 使用和User模式相同寄存器集的特权模式,ARM处理器工作模式,除用户模式外的其他6种模式称为特权模式 特权模式中除系统模式以外的5种模式又称为 异常模式,即 FIQ(Fast Interrupt Request) IRQ(Interrupt ReQuest) SVC(Supervisor) 中止(Abort) 未定义(Undefined),ARM处理器工作模式,CPSR(当前程序状态寄存器)的低5位用于定义当前操作模式 , 如图示,7.2.3 ARM状态下的寄存器组织,ARM状态下的寄存器组织,ARM 有37个32-Bits长的寄存器. 1 个用作PC( program counter) 1个用作CPSR(current program status register) 5个用作SPSR(saved program status registers) 30 个通用寄存器 当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取: 相应的r0-r12子集 相应的 r13 (the stack pointer, sp) and r14 (the link register, lr) 相应的 r15 ( the program counter, pc) 相应的CPSR(current program status register, cpsr) 特权模式 (除system模式) 还可以存取; 相应的 spsr (saved program status register),ARM状态下的寄存器组织,CPSR和SPSR的格式,2.6.3Thumb状态下的寄存器组织,Thumb状态下的寄存器集是ARM状态下寄存器集的子集。程序员可以直接访问8个通用的寄存器(R0R7),程序计数器PC、堆栈指针SP、连接寄存器LR和当前状态寄存器CPSP。每一种特权模式都各有一组SP,LR和SPSR。,当处理器执行在ARM状态: 所有指令 32 bits 宽 所有指令必须 word 对齐 所以 pc值由bits 31:2决定, bits 1:0 未定义 (所以指令不能halfword / byte对齐). 当处理器执行在Thumb状态: 所有指令 16 bits 宽 所有指令必须 halfword 对齐 所以 pc值由bits 31:1决定, bits 0 未定义 (所以指令不能 byte对齐). 当处理器执行在Jazelle状态: 所有指令 8 bits 宽 处理器执行 word 存取一次取4条指令,7.2.4 ARM的异常中断,在ARM体系结构中,异常中断用来处理软件中断、未定义指令陷阱(它不是真正的“意外”事件)及系统复位功能(它在逻辑上发生在程序执行前而不是在程序执行中,尽管处理器在运行中可能再次复位)和外部事件,这些“不正常”事件都被划归“异常”,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。,异常中断向量表,中断向量表中指定了各异常中断与其处理程序的对应关系 每个异常中断对应的中断向量表的4个字节的空间中存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令 存储器的前8个字中除了地址0x00000014之外,全部被用作异常矢量地址,管理模式,管理模式,异常中断的优先级,当几个异常中断同时发生时,在ARM中通 过给各异常中断赋予一定的优先级来实现处理 次序 复位(最高优先级); 数据异常中止; FIQ; IRQ; 预取指异常中止; SWI、,未定义指令(包括缺协处理器)。,ARM的异常中断响应过程,ARM处理器对异常中断的响应过程如下 将CPSR的内容保存到将要执行的异常中断对应的SPSR中 设置当前状态寄存器CPSR中的相应位 将引起异常指令的下一条指令的地址保存到新的异常工作模式的LR_ (R14) 给程序计数器(PC)强制赋值(异常向量),ARM的异常中断响应过程,每个异常模式对应有两个寄存器R13_、R14_分别保存相应模式下的堆栈指针、返回地址;堆栈指针可用来定义一个存储区域保存其它用户寄存器,这样异常处理程序就可以使用这些寄存器。 FIQ模式还有额外的专用寄存器R8_fiqR12_fiq,使用这些寄存器可以加快快速中断的处理速度。,从异常中断处理程序中返回,从异常中断处理程序中返回时,需要执行 以下四个基本操作 所有修改过的用户寄存器必须从处理程序的保护堆栈中恢复(即出栈)。 将SPSR_mode寄存器内容复制到CPSR中,使得CPSR从相应的SPSR中恢复,即恢复被中断的程序工作状态; 根据异常类型将PC变回到用户指令流中相应指令处 最后清除CPSR中的中断禁止标志位I/F。,7.2.5 ARM存储数据类型和存储格式,ARM处理器支持以下6种数据类
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号