嵌入式系统讲义-第2章.ppt

上传人:牧羊曲112 文档编号:6415024 上传时间:2023-10-28 格式:PPT 页数:29 大小:674KB
返回 下载 相关 举报
嵌入式系统讲义-第2章.ppt_第1页
第1页 / 共29页
嵌入式系统讲义-第2章.ppt_第2页
第2页 / 共29页
嵌入式系统讲义-第2章.ppt_第3页
第3页 / 共29页
嵌入式系统讲义-第2章.ppt_第4页
第4页 / 共29页
嵌入式系统讲义-第2章.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《嵌入式系统讲义-第2章.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统讲义-第2章.ppt(29页珍藏版)》请在三一办公上搜索。

1、1,第2章 ARM体系结构,2,ARM:Advanced RISC Machine,1、CISC体系结构(Complex Instruction Set Computer复杂指令集计算机)传统计算机性能的提高体现在两个方面:提高集成度(增加芯片的晶体管数量);增加指令集的复杂程度。带来的问题:指令越来越多,越来越长,从1字节发展到近30字节。实现复杂指令占用了大量的芯片面积和容量。20%与80%的问题 20%的简单指令使用率占80%,而80%的复杂指令使用率只占20%复杂指令影响VLSI处理器的实现 指令长度不一致,复杂指令的存在使控制逻辑的设计实现不规整,执行速度无法提高,实现高性能VLSI

2、芯片很困难。软硬件设计的抵消问题 增加的指令降低软件复杂度,但使用复杂指令执行时间长,程序总体执行时间未必减少。,2.1 ARM体系结构简介,3,2、RISC体系结构(Reduced Instruction Set Computer精简指令集计算机)设计思想:精简指令集的复杂度,简化指令的硬件设计,硬件只执行很有限的最常用的指令,复杂的操作由简单指令合成。效果:RISC处理器比同等规模的CISC处理器快50%75%,更易设计实现,成本大幅度降低。RISC体系结构特点:指令格式和长度固定,容易设计实现;代码优化编译效率更高;指令单周期完成;便于流水线操作;芯片面积显著减小,易于集成更多功能。最成

3、功的代表:ARM系列处理器,4,3、ARM处理器系列,ARM处理器目前包括以下几个系列:ARM7系列ARM9系列ARM9E系列ARM10E系列ARM11系列(最近已推出)Intel的StrongARM和Xscale,5,(1)、ARM7TDMI系列介绍 TThumb16位压缩指令集 D支持片上Debug调试,使处理器能够响应调试请求 M增强型Multiplier,产生64位结果 IEmbeddedICE硬件,支持片上断点和观察点,特点:具有协处理器MMU接口8K的CacheJTAG接口三级流水线主频到100MHz性能超过486,6,(2)、ARM9TDMI系列介绍,特点:32K的Cache五级

4、流水线支持更高时钟速率,到400MHz其余与ARM7系列类似性能是ARM7系列的2倍,超过Pentium i586,7,(3)、ARM10TDMI系列介绍,特点:高端处理器64K的Cache六级流水线更高时钟速率,1GHz其余与ARM9系列类似性能是ARM9系列的2倍,8,ARM 三级流水线简介,ARM7使用3级流水线机制:取指:读取程序存储器中的指令,放入指令流水线中。译码:对指令进行译码,为下一周期准备数据路径需要的控制信号。此时指令占据译码逻辑而不占据数据路径。执行:指令占据数据路径,寄存器堆被读取,操作数被放到ALU中并进行运算,运算结果被放到目的寄存器中并改变程序状态寄存器的条件标志

5、。,9,10,2.2、典型ARM芯片与单片机的比较,三星公司ARM芯片与89C51指令效率比较,11,S3C2410与89C51功能资源比较,89C51主要资源:P0、P2复用地址数据口P1 可用作8位I/O口3个外部中断口1个UART口片内8K FLASH256bytes RAM,12,S3C2410X主要资源:,内核带有16K高速指令缓存和16K数据缓存 117个I/O 口,32位数据总线和32位地址总线分开 LCD控制器(最大支持256色STN,使用LCD专用DMA)3通道UART,速率可到115.2kbits/s,1通道红外接口IrDA 2通道的同步IO(SPI),速率达几十Mbits

6、;4通道DMA 支持多种类型的存储器(FLASH、DRAM、SDRAM、SRAM)4通道的PWM定时器和1通道内部定时器 具有看门狗定时器 1个实时时钟,具备日历功能 8通道10位ADC和触摸屏接口 1通道IIC总线接口 1通道IIS总线接口 24个外部中断源 内部有26个中断源,13,2.3 ARM处理器工作状态,ARM处理器核可工作于两种状态:ARM状态:32位指令长度THUMB状态:16位指令长度 代码存储时,按各自的指令长度存储;程序执行时,处理器可在两种状态之间转换,并且在THUMB状态下先将16位指令解压成32位指令再执行。因此THUMB状态不损失任何性能,但代码长度减少了很多。注

7、意:ARM状态和THUMB状态之间的切换不影响处理器的模式或寄存器的内容ARM处理器在开始执行代码时只能处于ARM状态,14,2.4 ARM处理器工作模式,ARM处理器核使用CPSR(当前程序状态寄存器)的低5位定义当前工作模式:,15,ARM处理器支持7种工作模式,每种工作模式可访问的寄存器不同:,16,ARM处理器工作模式说明用户模式:用户程序运行时所在的模式。在此模式下应用程序不能访问受操作系统保护的系统资源,也不能改变ARM核的模式,即不能进行模式切换,除非异常(包括中断)发生时自动切换到其它模式。特权模式:除用户模式外的其他六种模式称为特权模式。这些模式主要处理程序异常和软件中断。在

8、这些模式下软件可以自由切换工作模式。异常模式:特权模式中除系统模式外的其他5种模式。即FIQ、IRQ、SVC、Abort、Undefine模式。特权模式由异常模式和系统模式组成异常模式处理中断和异常的发生。异常(ARM处理器将中断也视为一种异常情况)发生时,处理器自动进入相应模式,每种异常模式都有一些不同的寄存器,称为影子寄存器。供相应的异常处理程序使用。这样保证进入异常模式时使用的寄存器与正常的用户模式不同,不会改变正常情况下的用户寄存器,即不破坏正常程序的运行。系统模式与用户模式使用同样的寄存器,但与异常模式使用的寄存器不同。系统模式供操作系统使用,操作系统可以在其他任意模式间切换,使用系

9、统的所有资源,因为操作系统应该有最高的特权。,17,2.5 ARM寄存器组成,2.5.1 概述,ARM处理器共有37个寄存器,分为两类:通用寄存器和状态寄存器,31个通用寄存器程序计数器(PC)、R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R13_fiq、R14_fiq;6个状态寄存器CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq、,不同模式下可以访问的寄存器不同。处理器在每一时刻只能处于一种工作模式,编程时也只能使用相应的寄存器。,18,2.5.

10、2 ARM状态下的寄存器组织,1.简介,19,2.ARM状态的通用寄存器,通用寄存器指R0R15,分为3类:不分组寄存器(Unbanked Registers)R0R7 分组寄存器(Banked Registers)R8R14 程序计数器R15(PC),1)不分组寄存器(Unbanked Registers)R0R7 在所有的模式下共用,每种模式下访问的都是同一组物理寄存器。但需要注意当程序从正常状态下进入异常模式或在不同模式间切换时,如果使用该组寄存器,首先要对寄存器的值做保护,以免破坏先前模式下的数据。保护的常用方法是使用堆栈。2)分组寄存器(Banked Registers)R8R14(

11、1)R8R12寄存器:FIQ模式和FIQ模式以外的其他模式不同。实际上是两组不同的物理寄存器。这样做目的是在FIQ模式时加快快速中断处理的速度,不需要执行寄存器保护工作。(2)R13(Stack Pointer)和R14(Link Register)寄存器:共有6组不同的物理寄存器。系统模式和用户模式使用同一组物理寄存器,其他模式各有自己的一组物理寄存器。这种设计的目的是为了堆栈操作方便。,20,1)程序计数器R15(PC)R15专用于程序指令计数,指示即将执行的代码位置。因此该计数器不能随意更改。由于ARM的指令长度都是32位(4字节),而程序计数器的计数值以字节为单位,所以PC每次变化4字

12、节才能取得一个完整有效的指令,PC的最低2位始终都是0才满足这一条件。注意:ARM体系采用多级流水线技术,所以PC指向的指令地址并不是当前正在执行 的指令,而是准备取得的指令。对于3级流水线的ARM核,PC指向的是比当前指令高两条的指令位置,即地址高8个字节;对于5级流水线的ARM核,PC指向的是比当前指令高三条的指令位置,即地址高12个字节。,21,2.ARM程序状态寄存器,有两种程序状态寄存器:CPSR、SPSR CPSR是所有模式都共用的;每种异常模式又都有一个对应的SPSR,当异常发生时用来保存CPSR的状态,当异常处理结束返回正常工作状态时恢复CPSR。ARM的数据指令在执行时可以影

13、响CPSR的条件码,根据条件码的变化决定指令的流向,也可以通过比较指令和测试指令直接设置CPSR的条件码。,22,1)条件码说明:N负数标志;如果数据指令运行结果为负,则N=1;如果非负则N=0Z零标志;如果结果为0,则Z=1;如果非0,则Z=0C进位/借位标志;对于加减法运算,结果有进位或借位时C=1,否则C=0;对于移位指令,C为移位操作中最后移出的位的值。V溢出指令;运算结果有溢出时V=1,否则V=02)控制位说明:CPSR的最低8位是控制位。异常发生时将改变控制位的值。在特权模式下程序员也可以通过软件来改变控制位。(1)中断禁止位I:I=1,禁止IRQ中断;F=1,禁止FIQ中断(2)

14、工作状态位T:T=0表示运行于ARM状态;T=1表示运行于Thumb状态(3)模式位M4:0:表示处理器工作于7中模式中的哪一种3)其他位:目前未用,23,2.6 ARM的异常中断,ARM系统中使用异常来处理程序执行时的意外事件,包括中断、存储器故障、未定义指令、复位等。所有的异常事件都按中断的处理机制来解决。异常中断发生时,程序执行完当前的指令后将跳转到异常中断处理程序中运行,运行完成后将返回正常的程序继续执行原理的程序。进入异常中断处理程序时,要保存被中断了的程序的执行现场(主要是相关的寄存器),在从异常中断处理程序返回时要恢复被中断的程序的执行现场。每种异常中断都具有各自的备份寄存器组。

15、ARM的异常分3类:(1)指令执行引起的直接异常软件中断、未定义指令和预取指中止引起该种异常(2)指令执行引起的间接异常数据中止引起该异常(3)外部产生的与指令流无关的异常复位、IRQ和FIQ引起该异常,24,25,2.6.1 ARM的异常中断响应过程复位异常将立即终止正在执行的指令,其他的异常中断将在完成当前指令后转到异常处理程序进行处理。ARM处理器对异常中断的响应过程如下:(1)将CPSR的内容保存到即将进入模式的SPSR中,实现对处理器当前状态、中断屏蔽位和各条件标志位的保存。(2)设置CPSR的相应位。设置模式控制位M4:0,使处理器进入相应的工作模式。设置中断标志位I=1,禁止IR

16、Q中断 当进入Reset或FIQ模式时,设置中断标志位F=1,禁止FIQ中断(3)将刚执行完的正常程序指令对应的下一条指令保存到新异常模式的R14(LR)中,以备异常执行完成后正确返回到正常程序的指令地址。(4)给程序计数器(PC)强制赋值,使程序跳转到相应模式的矢量地址处开始执行程序。该矢量地址处存放一条指向相应中断处理程序的转移指令,从而可使程序跳转到相应的中断程序处执行异常中断处理。以上过程由硬件自动完成,不需要程序员用软件编程实现。每种异常模式都有两个寄存器R13_和R14_,分别保存相应模式下的堆栈指针和返回地址。堆栈指针可以用来定义一个存储区域保存其他用户寄存器,如R0R7,保存完

17、后在新模式下就可以任意使用这些寄存器了。这个过程需要程序员用软件编程来完成。,26,2.6.2 ARM的异常中断返回过程复位异常处理由硬件自动完成,之后将从头开始程序的执行,没有返回过程;其他的异常中断在完成异常处理程序后将返回被中断了的正常程序处继续执行,要求异常处理程序能精确地恢复异常发生时的用户状态。从异常中断处理程序中返回时需要执行以下4个基本操作:(1)所有修改过的用户寄存器必须从处理程序的保护堆栈中恢复(出栈)。(2)将SPSR_寄存器内容复制到CPSR中,使得CPSR从相应的SPSR中恢复,这样就恢复了被中断的程序状态。(3)将R14(LR)中的值复制到PC中,使程序从被中断了的

18、正常程序处开始执行。(4)最后清除CPSR中的中断禁止标志位I 和/或 F。以上过程需要程序员用软件编程来完成。,2.6.3 异常中断向量表 该表中的地址位于程序存储器的最前端,每种模式对应一个地址,每个地址的长度是32位。在发生异常时,处理器将相应的地址值自动赋给PC,完成第一次跳转,这是一种硬件机制;在每个相应的地址中保存着一条跳转指令,指向异常处理程序的起始位置,这个跳转指令和异常处理程序由程序员编程来完成,由软件实现。中断向量表中地址0 x00000014不用。,27,2.6.4 异常中断的优先级 当几个异常中断同时发生时,必须按照一定的顺序来处理这些异常中断。在ARM中通过给异常中断

19、赋予一定的优先级来实现这种处理顺序。优先级顺序如下:复位(最高优先级);数据异常中止;FIQ;IRQ;预取指异常中止;SWI、未定义指令;如果几个异常同时发生,将首先执行高优先级的异常中断,其他的异常将挂起,执行完高优先级的异常后再执行次高优先级的异常;如果一个低优先级的异常首先发生并开始执行(但未完成),此时一个高优先级的异常也发生了,此时高优先级的异常将打断低优先级的异常程序转而去执行高优先级的异常程序,完成之后再去执行未完成的低优先级异常程序;反过来,高优先级的异常首先发生并开始执行,此时低优先级的异常将不能打断高优先级异常的执行,只有等到高优先级异常完成之后才能开始低优先级异常的执行。这种功能也是一种硬件机制。,28,2.7 ARM 存储数据类型及格式简介,1.ARM支持的数据类型8位有符号和无符号字节16位有符号和无符号半字,以2字节为边界对齐32位有符号和无符号字,以4字节为边界对齐,2.存储器组织,小端格式,29,大端格式,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号