嵌入式系统第2课ARM体系结构课前导入嵌入式系统组成原理嵌入式最小系统嵌入式系统扩展1.嵌入式系统和一般的计算机系统在硬件组成结构上有哪些异同之处?2.什么是嵌入式最小系统?一般常见的最小系统由哪些部分组成?3.嵌入式系统常见的扩展部件有哪些?嵌入式系统和一般的计算机系统类似,也是由CPU、内存、IO端口、总线等几个部分组成。嵌入式系统硬件的特点主要是集成度高,非标准化,接口非常复杂。课前导入1.嵌入式系统和一般的计算机系统在硬件组成结构上有哪些异同之处?2.什么是嵌入式最小系统?一般常见的最小系统由哪些部分组成?3.嵌入式系统常见的扩展部件有哪些?嵌入式系统的最小系统指基于某处理器为核心,可以运转起来的最简单的硬件设计(即处理器能够运行的最基本系统)。嵌入式最小系统的组成,包括处理器、内存、时钟、电源和复位。为了能够支持程序的下载和调试,一般还需要在最小系统中添加对JTAG接口的支持。课前导入1.嵌入式系统和一般的计算机系统在硬件组成结构上有哪些异同之处?2.什么是嵌入式最小系统?一般常见的最小系统由哪些部分组成?3.嵌入式系统常见的扩展部件有哪些?嵌入式的处理器一般集成了很多的外围器件,但也不可能把所有的功能都集成到芯片内部,因此实际的嵌入式系统需要在最小系统的基础上进行系统扩展。常用的扩展芯片有以下几类:存储类芯片、通信类芯片以及其他功能芯片。课前导入课程重点1.可编程器件的特点2.计算机的体系结构(冯诺依曼与哈佛)3.ARM处理器的流水线概念及运行原理4.ARM各模式及可访问的寄存器5.ARM体系的异常6.ARM体系的存储系统7.ARM的寻址方式1.可编程器件的特点•模拟器件-数字器件•ASIC-可编程器件1.可编程器件的特点•CPU在固定频率的时钟控制下节奏运行。•CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行。•这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM公司)定义的,本质上是一串由1和0组成的数字。这就是CPU的汇编指令集。整个编程及运行过程•程序员用汇编指令编程--经汇编器汇编成二进制可执行程序文件--二进制文件被CPU读取进去--CPU内部电路对二进制文件解码--解码通过则CPU执行指令、完成指令动作。•如果程序员用C语言等高级语言编程,则编译器先将C语言程序编译为汇编程序,再进行上面的后续部分。从源代码到CPU执行过程1.可编程器件的特点.c等高级语言源代码.S汇编源代码Elf格式二进制可执行程序Bin格式烧录文件CPU读入后先解码CPU执行指令编译器汇编器Objcopy工具总线CPU内部指令流水线2.计算机的体系结构(冯诺依曼与哈佛结构)2冯诺依曼体系结构1.计算机组成是人眼可见的,而计算机体系结构是人眼看不见的东西,它是一个复杂的系统,在它内部存在多级的层次结构。2.计算机组成是计算机的外部,是使用人员所关心的系统硬件指标参数;而计算机实现是计算机的内部,是制造人员关心的内容凭您直观的感觉,计算机由哪几部分组成?计算机的实现半导体技术制造技术封装技术装配技术电源技术冷却技术……152计算机运行的两部分2冯诺依曼体系结构几个基本概念间的关系体系结构、计算机组成、计算机实现计算机体系结构计算机组成操作系统指令系统应用程序计算机实现由图示可见,体系结构在整个计算机系统中占据核心地位2冯诺依曼体系结构—冯∙诺依曼理论的要点:1)存储程序2)顺序执行3)采用二进制十进制→计算机指令冯∙诺依曼提出二进制机器码表示计算机指令格式?2冯诺依曼体系结构运算器(ALU,ArithmeticLogicUnit)—冯∙诺依曼计算机组成(五大部分):控制器(Controler)存储器(Memory)输入设备(InputUnit)输出设备(OutputUnit)2冯诺依曼体系工作原理开始取指令指令译码执行指令冯诺依曼体系工作原理(CPU工作原理):程序的执行过程实际上是不断地取出指令、分析指令、执行指令的过程。冯·诺依曼型计算机从本质上讲是采取串行顺序处理的工作机制,即使有关数据巳经准备好,也必须逐条执行指令序列。数据流指令流控制流CPU2冯诺依曼体系工作原理冯诺依曼体系结构计算机功能图2冯∙诺依曼结构思想冯∙诺依曼理论的思想是:应该把程序和数据一起存储在存储器里,让计算机自己负责从存储器里提取指令,执行指令,循环式地执行这两个动作。这样,计算机在执行程序的过程中,就可以完全摆脱外界的影响,以自己可能的速度自动地运行。按照这种原理构造出来的计算机就是“存储程序控制计算机”,也被称做“冯∙诺依曼计算机”—冯∙诺依曼理论的要点:指令像数据那样存放在存储器中,并可以像数据那样进行处理;指令格式使用二进制机器码表示;使用程序存储控制方式工作。冯∙诺依曼结构十进制→计算机指令?冯∙诺依曼提出二进制机器码表示计算机指令格式冯·诺依曼体系结构指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2结构特点:1、指令和数据存储在相同的内存空间,但存储地址不同。2、处理器利用相同的总线处理内存中的指令和数据,指令和数据具有相同的数据宽度,指令与数据无法同时存取。ARM7嵌入式微处理器采用此结构哈佛体系结构指令寄存器控制器数据通道输入输出CPU程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据结构特点:1、指令存储和数据存储分开,指令和数据分别位于不同的存储空间。2、指令与数据的存取采用不同总线,取指令和存取数据可同时进行,微处理器具有较高的执行效率。数字信号处理器DSP通常采用哈佛结构;自ARM9开始,ARM嵌入式微处理器亦采用此结构。冯诺依曼结构与哈佛结构程序和数据都放在内存中,且不彼此分离的结构称为冯诺依曼结构。譬如Intel的CPU均采用冯诺依曼结构。程序和数据分开独立放在不同的内存块中,彼此完全分离的结构称为哈佛结构。譬如大部分的单片机(MCS51、ARM9等)均采用哈佛结构。优劣对比冯诺依曼结构中程序和数据不区分的放在一起,因此安全和稳定性是个问题,好处是处理起来简单。哈佛结构中程序(一般放在ROM、flash中)和数据(一般放在RAM中)独立分开存放,因此好处是安全和稳定性高,缺点是软件处理复杂一些(需要统一规划链接地址等)3.ARM处理器的流水线概念及运行原理三级流水线ARM处理器使用流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指译码执行取指译码执行处理指令并将结果写回寄存器识别将要被执行的指令从寄存器装载一条指令三级流水线取指译码执行取指译码执行处理指令并将结果写回寄存器识别将要被执行的指令从寄存器装载一条指令正常操作过程中,在执行一条指令的同时对下一条(第二条)指令进行译码,并将第三条指令从存储器中取出。在ARM状态下,流水线上各指令的地址为:在Thumb状态下,流水线上各指令的地址为:PCPC-4PC-8PCPC-2PC-4三级流水线结构的指令执行顺序PC指令1指令2指令3指令4…………程序存储器PC-4PC-8PC+4周期1周期2周期3周期4周期5周期6取指译码执行取指译码执行取指译码执行取指译码执行周期2周期1周期3周期4在第1个周期,PC指向指令1,此时指令1进入三级流水线的取指阶段。1在第2个周期,PC指向指令2,此时指令1进入三级流水线的译码阶段,同时取出指令2。2在第3个周期,PC指向指令3,此时指令1进入三级流水线的执行阶段,指令2进入译码阶段,取出指令3。3在第4个周期,指令1执行完成,指令2和指令3流水线推进一级,同时开始指令4的取指处理。4处理器执行一条指令的三个阶段执行ADDPC,PC,#4指令后,PC的值为多少?思考题ADDPC,PC,#4………………0x40000x40040x40080x400C地址指令PC取指译码执行PCPC-4PC-8ARM7的3级流水线ADD程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或“正在译码”的指令。一般来说,人们习惯性约定将“正在执行”的指令作为参考点,则:PC值=当前程序执行位置+8注:ARM状态时,每条指令为4字节长。PC指向0x4000地址,取指ADD指令。PC指向0x4004地址,译码ADD指令。PC指向0x4008地址,执行ADD指令,所以指令执行的结果为:PC=PC+4=0x4008+4=0x400C。…………注意:只有流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行。如果程序发生跳转,流水线将被清空,这将需要几个时钟才能使流水线再次填满。因此,为提高程序执行效率,应尽可能少用跳转指令,解决的方案是尽量使用指令的“条件执行”功能。简介ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。所处的模式由当前程序状态寄存器CPSR中的控制位M[4:0]反映。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。4.ARM各模式及可访问的寄存器除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。处理器模式说明备注用户(usr)正常程序运行的工作模式不能直接从用户模式切换到其它模式特权模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权异常模式快中断(fiq)快速中断请求处理只有在FIQ异常响应时,才进入此模式中断(irq)中断请求处理只有在IRQ异常响应时,才进入此模式管理(svc)供操作系统使用的一种保护模式只有在系统复位和软件中断响应时,才进入此模式中止(abt)用于虚拟内存和/或存储器保护在ARM7内核中没有多大用处未定义(und)支持软件仿真的硬件协处理器只有在未定义指令异常响应时,才进入此模式这两种模式都不能由异常进入,想要进入必须修改CPSR,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。何时进入异常模式,具体规定如下:•处理器复位之后进入管理模式,操作系统内核通常处于管理模式;•当处理器访问存储器失败时,进入数据访问中止模式;•当处理器遇到没有定义或不支持的指令时,进入未定义模式;•中断模式与快速中断模式分别对ARM处理器2种不同级别的中断作出响应。4.ARM各模式及可访问的寄存器4.ARM各模式及可访问的寄存器4.ARM各模式及可访问的寄存器简介在ARM处理器内部共有37个用户可访问的寄存器,分别为31个通用32位寄存器和6个状态寄存器。ARM处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以18个活动的寄存器。4.ARM各模式及可访问的寄存器4.ARM各模式及可访问的寄存器程序状态寄存器的格式NZCV——IM0M1M2M3M4TF—...313029282726876543210条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状态位模式位NZCVIM0M1M2M3M4TF4.ARM各模式及可访问的寄存器4.ARM各模式及可访问的寄存器5.ARM体系的异常异常简介只要正常的程序流被暂时中止,处理器就进入异常模式。例如在用户模式下执行程序时,当外设向处理器内核发出中断请求导致内核从用户模式切换到异常中断模式。