ARM体系结构与编程:第2章 ARM体系结构_第1页
ARM体系结构与编程:第2章 ARM体系结构_第2页
ARM体系结构与编程:第2章 ARM体系结构_第3页
ARM体系结构与编程:第2章 ARM体系结构_第4页
ARM体系结构与编程:第2章 ARM体系结构_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 ARM 体系结构目标学员:嵌入式初级开发者课程时长:1学时,45分钟ARM 体系结构本章目录1324ARM体系结构的特点 ARM流水线 ARM存储器 I/O管理 5ARM开发调试方法 课程目标掌握RISC指令集的特点及其RISC指令与CISC指令的区别掌握基于RISC的ARM体系结构的主要特征;掌握ARM流水线的概念与原理;理解3级流水线的硬件主要组成部分;掌握3级流水线和5级流水线指令执行过程了解影响流水线性能的因素;理解ARM在线仿真调试主要的几种方法;重点难点 RISC和CISC之间主要的区别 ARM体系结构的主要特征 3级和5级流水线原理 3级流水线的硬件主要组成部分3级和5级

2、流水线指令执行过程JTAG仿真调试和ULINK在线仿真调试课程目录1324ARM体系结构的特点 ARM流水线 ARM存储器 I/O管理 5ARM开发调试方法 ARM体系结构的特点 ARM内核采用精简指令集结构(RISC,reduced Instruction Set Computer)体系结构。 Load/Store体系结构 Load/Store体系结构也称为寄存器/寄存器体系结构或者RR 系统结构。在这类机器中,操作数和运算结果不是通过主存储 器直接取回而是借用大量标量和矢量寄存器来取回的。RISC的设计思想的体现: 固定长度指令 固定长度指令使得机器译码变得比较容易。 RISC设计思想的体

3、现硬联控制 RISC机以硬联控制指令为特点,而CISC的微代码指令则相反。与用CISC(常常是可变长度的)指令集来使处理器的语义效率最大相反,简单指令往往容易被机器翻译。 寄存器 RICS处理器拥有更多的通用寄存器,每个寄存器都可存放数据或地址。寄存器可为所有的数据操作提供快速的局部存储访问 。流水线 指令处理过程被拆分为几个更小的、能够被流水线并行执行的单元,在理想情况下,流水线每周期前进一步,可获得更高的吞吐率。 RISC和CISC之间主要的区别指标RISCCISC指令集一个周期执行一条指令,通过简单指令的组合实现复杂操作;指令长度固定指令长度不固定,执行需要多个周期流水线流水线每周期前进

4、一步指令的执行需要调用微代码的一个微程序寄存器更多通用寄存器用于特定目的的专用寄存器Load/Store结构独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输处理器能够直接处理存储器中的数据CISC和RISC的区别CISC:复杂指令集(Complex Instruction Set Computer)具有大量的指令和寻址方式8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。RISC:精简指令集(Reduced Instruction Set Computer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单

5、 本环节主要学习RISC及CISC指令集概念及其特点,分析了RISC和CISC指令集之间的主要区别,分析了ARM体系结构的主要特征。 课程目录1324ARM体系结构的特点 ARM流水线 ARM存储器 I/O管理 5ARM开发调试方法 ARM流水线的概念与原理流水线(Pipeline)技术: 有一个明显的方法可以改善硬件资源的使用率和处理器的吞吐量,这就是当前一条指令结束之前就开始执行下一条指令。流水线是RISC处理器执行指令时采用的机制。使用流水线,可在取下一条指令的同时译码和执行其他指令,从而加快执行的速度。可以把流水线看作是汽车生产线,每个阶段只完成专门的处理器任务。ARM对流水线的构想:

6、 处理器可以这样来组织:当一条指令刚刚执行完步骤1并转向步骤2时,下一条指令就开始执行步骤1。从原理上说,这样的流水线应该比没有重叠的指令执行快6倍,但由于硬件结构本身的一些限制,实际情况会比理想状态差一些。从1995年以来,ARM公司推出了几个新的ARM核。它们采用5级流水线和哈佛架构,获得了显著的高性能。例如,ARM9增加了存储器访问段和回写段。到ARM公司在19901995年期间开发的ARM6和ARM7,ARM整数处理器核的组织结构变化很小,这些处理器都是采用3集流水线, 流水线的分类 ARM10更是把流水线增加到6级。ARM10的平均处理能力达到1.3 Dhrystone MISP/M

7、Hz,与ARM7相比,指令吞吐量提供了大约34。3级流水线ARM组织 指令在流水线上的执行过程 ARM 3级流水线级取指(fetch)从寄存器装载一条指令:译码(decode)识别被执行的指令,并为下一个周期准备数据通路的控制信号。在这一级,指令占有译码逻辑,不占用数据通路;执行(excute)处理指令并将结果写回寄存器。3级流水线指令执行过程:指令流水线以ARM为例FetchDecodeExecute从存储器中读取指令解码指令寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank )PCPCPC - 4PC-2PC - 8PC - 4ARMThumb为增加处理器指令流的速度,

8、ARM7 系列使用3级流水线.允许多个操作同时处理,比逐条指令执行要快。PC指向正被取指的指令,而非正在执行的指令 最佳流水线该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数 (CPI) = 1 操作周期 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch指令序列为:ADD r1 r2

9、SUB r3 r2MOV r1 r3 STR 流水线举例该例中,用6周期执行了4条指令指令周期数 (CPI) = 1.5 周期 操作123456 ADD SUB STR MOV AND ORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetch分支流水线举例流水线被阻断注意:内核运行在ARM状态周期 1 2 3 4 5 0 x8000 BL 0 x8004 X0 x8008 XX0 x8FEC ADD0 x8FF0 SUB0 x8FF4 MOV地

10、址 操作FetchDecodeExecuteFetchDecodeExecuteFetchDecodeFetchFetchDecodeExecuteLinkretAdjustFetchDecodeFetch流水线下程序计数器PC的使用情况 指令序列为:0 x8000 LDR pc,pc,00 x8004 NOP0 x8008 DCD jumpAdress当指令LDR处于执行阶段时,pcaddress8 即,0 x8008。提高流水线性能的方案 指定ARM7为止,在ARM核中使用的3级流水线的性价比是很高的。但是,为了得到更高的性能,需要重新考虑处理器的组织结构 提高流水线性能的方案:第一,可以

11、提高时钟频率。时钟频率的提供,必然引起指令执行周期的缩短,所以要求简化流水线每一级的逻辑,因而流水线的级数就有增加。第二,减少每条指令的平均指令周期数CPI。这就要求重新考虑3级流水线ARM中多于1个流水线周期的实现方法,以便使其占有较少的周期;或者减少因指令相关造成的流水线停顿,也可以将两者结合起来。方案结果 较高性能的ARM核使用了5级流水线,而且具有分开的指令和数据存储器。把指令的执行分割为5部分而不是3部分,这就在每个时钟周期内必须完成的工作量,进而可以使用更高的时钟频率,分开的指令和数据存储器使核的CPI明显减少。 典型的5级流水线 5级流水线级取指(fetch)从存储器中取出指令,

12、并将其放入指令流水线;译码(decode)指令被译码,从寄存器堆中读取寄存器操作数。在寄存器堆中有3个操作数读端口;执行(execute)将其中一个操作数移位,并在ALU中产生结果。如果指令是Load或Store指令,则在ALU中计算存储器的地址;缓冲/数据(buffer/data):如果需要则访问数据存储器;否则ALU只是简单的缓冲一个时钟周期;回写(write-back):将指令的结果回写到寄存器堆,包括任何从寄存器读出的数据。影响流水线性能的因素 互锁: 在典型的程序处理过程中,经常会遇到这样的情形,即一条指令的结果被用做下一条指令的操作数。LDR r0,r0,#0ADD r0,r0,r

13、1在5级流水线上产生互锁跳转指令 : 跳转指令也会破坏流水线的行为,因为后续指令的取指步骤受到跳转目标计算的影响,因而必须推迟。 本环节主要学习ARM为了提高性能采用了流水线机制,着重介绍了3级流水线的硬件主要组成部分:处理器状态的寄存器堆、桶形移位寄存器、ALU 地址寄存器、数据输出寄存器、指令译码器和相关的控制逻辑。然后分别讲述了3级和5级流水线的执行过程及其影响流水线性能的因素。 课程目录1324ARM体系结构的特点 ARM流水线 ARM存储器 I/O管理 5ARM开发调试方法 ARM存储器 在ARM体系结构中可使用的存储管理策略包括:多类型的存储单元(可以使用SDRAM、FLASH等)

14、;Caches;写缓存;虚拟内存地址。实现对存储系统管理的几种方法:使能Cache,加快存储器的访问速度;启动虚拟地址到物理地址的映射;使用“域管理”策略,对存储单元的访问进行保护;对I/O映射地址空间的访问加以限制。课程目录1324ARM体系结构的特点 ARM流水线 ARM存储器 I/O管理 5ARM开发调试方法 I/O管理 外围设备(如串行线控制器)中包含一些寄存器。在存储器映射系统中,这些寄存器就像特定地址的存储器一样。(在其他的系统组织中,I/O功能可能与存储器件有不同的寻址空间) 存储器映射I/O : ARM系统完成I/O功能的标准方法是使用存储器映射I/O。这种方法使用特定的存储器

15、地址。当从这些地址加载或向这些地址存储时,它们提供I/O功能 课程目录1324ARM体系结构的特点 ARM流水线 ARM存储器 I/O管理 5ARM开发调试方法 ARM开发调试方法 用户选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发成本。因此一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库的集成开发环境(IDE)一般来说是必不可少的,如ARM公司的RealView开发环境。至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。指令集模拟器大多数调试工具都提供Simulator功能目前常见的调试方法有以下几种:

16、指令集模拟器 部分集成开发环境提供了指令集模拟器,可方便用户在PC机上完成一部分简单的调试工作,但是由于指令集模拟器与真实的硬件环境相差很大 优点:简单方便,不需要目标板,成本低缺点:功能非常有限,无法实时调试驻留监控软件 驻留监控软件(Resident Monitors)是一段运行在目标板上的程 序,集成开发环境中的调试软件通过以太网口、并行端口、串行 端口等通讯端口与驻留监控软件进行交互。优点:纯软件,价格较低,简单,软件调试能力较强缺点:需要事先烧制Monitor(往往需多次试验才能成功)且目标板工作正常,功能有限,特别是硬件调试能力较差。PCTargetMonitor串口驻留监控软件

17、JTAG仿真调试JTAG仿真调试 JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进 行调试的设备。JTAG仿真器比较便宜,连接比较方便,通过现有的 JTAG边界扫描口与 ARM CPU 核通信。TargetPC接口BDM/JTAG Debugger基于ULINK在线仿真器源程序编译器目标文件链接器可重定位程序定位器可执行文件基于ULINK在线仿真器 在线仿真器使用仿真头完全取代目标板上的CPU,可以完全仿真ARM芯片的行为,提供更加深入的调试功能。 本书将基于这种调试方式,利用ULINK2和MDK俩大法宝和读者一起深入学习ARM单片机。本章小节 本章主要介绍了RISC指令集的特征,RISC与CISC

温馨提示

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

评论

0/150

提交评论