2011年上海高考数学答案(文科).ppt

上传人:本田雅阁 文档编号:2031306 上传时间:2019-02-07 格式:PPT 页数:50 大小:1.10MB
返回 下载 相关 举报
2011年上海高考数学答案(文科).ppt_第1页
第1页 / 共50页
2011年上海高考数学答案(文科).ppt_第2页
第2页 / 共50页
2011年上海高考数学答案(文科).ppt_第3页
第3页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2011年上海高考数学答案(文科).ppt》由会员分享,可在线阅读,更多相关《2011年上海高考数学答案(文科).ppt(50页珍藏版)》请在三一文库上搜索。

1、第2章 ARM体系结构,目 录,2.1 ARM体系结构 2.2 ARM工作状态和工作模式 2.3 ARM状态下寄存器组织 2.4 Tumb状态下寄存器组织 2.5 ARM存储器组织 2.6 异常,2,2.1 ARM体系结构,ARM内核以其高性能、低功耗等特点,被公认为业界领先的32位嵌入式RISC微处理器核,得到了越来越多半导体生产厂商的青睐。以ARM核为嵌入式微处理器的核心,配以各厂家根据自己处理器的应用领域定位不同而设计的独有的片内I/O,形成了各种各样可供不同应用领域选择使用的微处理器芯片,因此,了解ARM内核是进行嵌入式微处理器芯片选择、操作系统移植、应用软件开发以及硬件系统设计与调试

2、等工作的基础。本章围绕ARM7TDMI核,从应用系统开发人员的角度,对ARM的内核结构、工作状态、工作模式以及应用程序可访问的寄存器结构、存储器组织等进行详细介绍,为后续各章节的学习打下坚实的基础。,3,2.1 ARM体系结构,2.1 ARM核及基于ARM核的芯片结构 目前流行的ARM处理器IP核有十多个,获得ARM公司授权的半导体制造厂商多大70多家,不可能也没有必要对每个IP核、每种ARM芯片进行一一介绍。考虑到ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器IP核,且其指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,本书将重点介绍ARM7TMDI内核结构(本章介

3、绍)以及飞利浦半导体公司(NXP恩智浦半导体)使用该IP核设计生产的LPC2200系列ARM芯片(第5章和第6章)。读者在实际工作中涉及到其它ARM微处理器IP核及芯片时,可参阅相关书籍或技术手册。 ARM7TDMI是ARM公司最早为业界普遍认可且得到了广泛应用的核,特别是在手机和PDA应用中。随着ARM技术的发展,它已是目前最低端的ARM核。,4,2.1 ARM体系结构,2.1.1 ARM内核 不同版本的ARM核其内部结构是有所区别的,但是其数据流模型基本上是一致的。从应用系统开发者的角度来看,可以抛开处理器内部具体硬件结构的细节,而把ARM内核看作是由总线连接的各个功能单元组成的集合,AR

4、M内核功能的实现最终体现为各种数据在不同部件之间的流动。图2.1为ARM7TDMI内核的内部结构框图。,5,2.1 ARM体系结构,6,2.1 ARM体系结构,可以看出,ARM7TDMI核内部各组成部件之间通过5条相互独立的片内总线连接起来,这5条总线分别是PC总线,地址自增总线,ALU总线,A总线和B总线。ARM7TDMI有37个32位寄存器,有6个状态寄存器。,7,2.1 ARM体系结构,2.1.2 基于ARM核的芯片结构 半导体厂商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路(片内I/O),从而形成自己的ARM微处理器芯片。图2.2为一个典型的使用

5、ARM核的微处理器芯片内部结构图。可以看出,ARM芯片的核心为ARM处理器核,通过片内总线将ARM微处理器、控制器(DMA控制器、总线仲裁控制器等)和各种片内I/O(存储器、键盘、URAT等)连接到一起。 ARM芯片内部广泛采用AMBA(Advanced Microprocessor Bus Architecture)总线结构。最初的AMBA总线包含ARM系统总线ASB(Advanced System Bus) 和ARM外设总线APB(Advanced Peripheral Bus),之后又提出一种称为ARM高性能总线AHB(Advanced High-performance Bus)。AHB

6、直接连接到微处理器核,它是为高速传输而优化设计的,支持流水线技术、突发传输、多总线控制器等高性能总线特性,用于连接性能高速的片内I/O。APB假设外设工作在主从方式,且不支持流水线操作,以简化外设和总线控制器中所需的逻辑,APB用于连接低速片内I/O。,8,2.1 ARM体系结构,9,2.2 ARM工作状态和工作模式,2.2 ARM工作状态和工作模式 2.2.1 ARM处理器工作状态 从编程的角度看,ARM处理器有两种工作状态:32位的ARM状态和16位的Thumb状态。并且ARM可以在两种状态之间进行几乎零开销的切换。处理器工作状态的转变不影响处理器的工作模式(ARM处理器有7中工作模式,详

7、见下节)和相应寄存器中的内容。,10,2.2 ARM工作状态和工作模式,ARM状态:处理器执行32位的字对齐的ARM指令。ARM处理器在最开始执行代码时处于ARM状态;当操作数寄存器的状态位(位0)为1时,执行BX指令可使微处理器从ARM状态切换到Thumb状态;当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到ARM状态。 Thumb状态:处理器执行16位的半字对齐的Thumb指令。当操作数寄存器的状态位(位0)为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态;在处理器进行异常处理时,把PC指针放入异常

8、模式连接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。,11,2.2 ARM工作状态和工作模式,使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换(详见第3章),程序如下所示: ;从Arm状态切换到Thumb状态 LDR R0, =Lable+1 ; Lable为跳转的目标地址,其最低两位为00 BX R0 ;地址(Lable+1)最低位为1,表示切换到Thumb状态 ;从Thumb状态切换到ARM状态 LDR R0, =Lable ;地址(Lable)最低位为0,表示切换到ARM状态 BX R0,12,2.2 ARM工作状态和工作模

9、式,2.2.2 ARM处理器工作模式 ARM处理器有7种基本工作模式。除用户模式以外,其余的6种模式称为非用户模式或特权模式。除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。,13,2.2 ARM工作状态和工作模式,1用户模式(User):非特权模式,正常程序执行的模式,大部分任务执行在这种模式下。 2系统模式(System):使用和User模式相同寄存器集的特权模式,但是运行的是特权级的操作系统任务。 3快速中断模式(FIQ):当一个高优先级中断产生时将会进入这种模式,用于高速数据传输和通道处理。 4普通中断模式(IRQ):当一个低优

10、先级中断产生时将会进入这种模式,用于通常的中断处理。 5管理模式(Supervisor):当复位或软中断指令执行时将会进入这种模式,是一种可以供操作系统使用的保护模式。 6中止模式(Abort):当数据或指令存取异常时将会进入这种模式,用于虚拟存储及存储保护。 7未定义模式(Undefined):当执行未定义指令时会进入这种模式,可用于支持硬件协处理器的软件仿真。,14,2.2 ARM工作状态和工作模式,15,绝大多数应用程序都在用户模式下运行,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的,除了产生异常实现模式切换外,不能随意进行模式切换,这将有效的保护系统资源。 除用户模式

11、外,其他模式均为私有模式,这些模式对系统有完全的访问控制权,另外,这6中模式既可以通过软件改变,也可以通过外部中断和异常处理来实现模式的改变。,2.3 ARM状态下寄存器组织,ARM处理器在ARM状态下共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。如图2.3所示,处理器在某种模式时有其对应的一组寄存器,其中用户模式和系统模式使用的是完全相同的一组寄存器,对于其他5种异常模式,为了使进入异常模式后不会影响系统的正常工作或为了提高响应速度,专门设计了对应模式独用的一些寄存器(图中以三角形标出,称其为分组寄存器)。,16,2.3 ARM状态下寄存器组织,17,2.3 ARM状态下

12、寄存器组织,2.3.1 通用寄存器 通用寄存器R0R15通常用来存放数据,但有些寄存器(如R13,R14,R15)也被赋予其他特殊用途:R13常被用作堆栈指针寄存器SP,R14被用作子程序连接寄存器LR,R15用作程序计数器PC。详见下述。 1 共用寄存器(R0R7) 共用寄存器R0R7是被所有运行模式共用的,指向的是同一个物理寄存器,它们用来存放数据,未被系统用做特殊的用途。因此,在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏,这一点在进行程序设计时要引起注意。,18,2.3 ARM状态下寄存器组织,2 分组寄存器(R8R14

13、) 与共用寄存器不同,分组寄存器R8R14在不同的模式下可能访问的是不同的物理寄存器,分一下三种情况讨论。 R8R12:快速中断模式(FIQ)有对应的专门寄存器(R8_fiqR12_fiq),以减少中断保护所需要的时间开销,实现中断的快速响应。其他6中模式使用相同的物理寄存器R8R12。 R13:在ARM指令中常用作堆栈指针SP。但这只是一种习惯用法,用户也可以使用其它寄存器作为堆栈指针。而在Thumb指令中,某些指令强制性地要求使用R13作为堆栈指针。由于每种运行模式都有各自独立的物理寄存器R13,所以在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间。

14、这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复相关寄存器的值,采用这种方式可以保证异常发生后程序的正常执行。 R14:R14也被称为子程序连接寄存器(Subroutine Link Register)或连接寄存器LR。当用BL或BLX指令调用子程序时,系统自动将PC(R15)的当前值复制给R14,执行完子程序后,为了返回到调用处,在子程序的最后安排一条指令,将保存在R14中的断点地址送回给PC(R15),这样程序就可以从子程序返回到调用处。在其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组

15、寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15(PC)的值。,19,2.3 ARM状态下寄存器组织,3 程序计数器(R15) 寄存器R15用作程序计数器(PC),用来存放下一条要读取指令的地址。在ARM状态下,位1:0为0,位31:2用于保存PC;在Thumb状态下,位0为0,位31:1用于保存PC。 R15虽然也可用做通用数据寄存器,但一般不这样使用,因为对R15的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的。 由于ARM体系结构采用了多级流水线技术,所以对于ARM7TDMI而言,由于有取指、译码和执行三级流水结构,同时

16、进行执行、译码和取指三个操作,因此,一下条要读取指令所在存储单元的地址为当前正在执行指令所在单元的地址加8。,20,2.3 ARM状态下寄存器组织,注:因为ARM状态处理器执行的是32位字对齐的ARM指令,一条指令需要4个字节对齐存放,因此指令地址的低两位为00;Thumb状态处理器执行的是16位半字对齐的Thumb指令,需要个字节对齐存放,地址的最低位为0。,21,2.3 ARM状态下寄存器组织,2.3.2 程序状态寄存器 ARM有两类程序状态寄存器:当前程序状态寄存器CPSR(Current Program Status Register)和程序状态保存寄存器SPSR(Saved Prog

17、ram Status Register)。如图2.3所示,CPSR是ARM的7种工作模式共用的一个物理寄存器,可以被任何一种工作模式访问,用来存放或设置相关的状态标志和控制标志,CPSR各位的功能见图2.4。,22,2.3 ARM状态下寄存器组织,23,2.3 ARM状态下寄存器组织,如图2.3所示,ARM的5种异常模式各自都有一个程序状态保存寄存器SPSR。当异常发生时,每种异常模式专用的SPSR用于保存CPSR的当前值,从而在异常返回时恢复CPSR原有的状态。用户模式和系统模式不属于异常模式,所以不需要SPSR来保存CPSR。 如图2.4所示,程序状态寄存器是一个32位寄存器,其中0-7位

18、控制位,8-27位保留未用,28-31位为状态标志位。,24,2.3 ARM状态下寄存器组织,1状态标志位 N、Z、C、V是四个状态标志位。CPSR各状态位的置位或清零操作,通常是处理器根据当前执行运算指令的结果,由硬件电路自动完成的。在应用程序设计中常常需要根据状态位的情况实现程序的各种判断和处理。各标志位的含义见表2.1。,25,2.3 ARM状态下寄存器组织,在ARM处理器体系机构中,所有的ARM指令都可以条件执行,Thumb指令集中的B分支指令也可以条件执行。这些状态标志位的各种组合构成了指令执行的条件,也就是说,指令条件执行的依据就是这些状态标志位,因此,有些资料中把这几个标志位也称

19、为条件码。指令的条件执行是指当指令满足了指令约定的执行条件时,这条指令才被执行,否则,这条指令仅仅是空流过处理器,不做任何操作。如指令“ADDNE R0, R0, R1”就是一条条件执行指令,其条件为“NE”(Not Equal),也就是上一条指令执行后CPSR中标志位Z被设置为0(两操作数不相等)时条件成立,执行R0+R1并将结果送R0。否则,不执行相加操作。,26,2.3 ARM状态下寄存器组织,2控制位 CPSR的低8位(包括I、F、T和M4:0)称为控制位,当发生异常时这些位可以被改变。如果处理器运行在特权模式,这些位也可以由程序修改。 (1) 中断禁止位I和F 中断禁止位包括I和F,

20、用来禁止或允许IRQ和FIQ两类中断,当I=1时,表示禁止IRQ中断,I=0时表示允许IRQ中断;当F1时,表示禁止FIQ中断,F0时,表示允许FIQ中断。,27,2.3 ARM状态下寄存器组织,(2) 工作状态标志位T T标志位用来标识/设置处理器的工作状态。对于ARM体系结构v4及以上的版本的T系列处理器,当该位为1时,程序运行于Thumb状态;当该位为0时,表示运行于ARM状态。ARM指令集和Thumb指令集均有切换处理器状态的指令,这些指令通过修改T位的值来实现在两种工作状态之间切换。 (3) 工作模式控制位 工作模式控制位(M4:0)用来标识或设置处理器的工作模式,M4,M3,M2,

21、M1,M0不同组合来实现处理器工作模式的设置,见表2.2所示。可以看出,CPSR中用5位来设置处理器的工作模式,理论上可设置的工作模式有(25)32种,但ARM的实际工作模式只有7种,因此,有部分编码组合是无效的,使用这些无效组合的编码会导致处理器进入一个不可恢复的状态。,28,2.3 ARM状态下寄存器组织,29,2.3 ARM状态下寄存器组织,30,3保留位 CPSR中的位8到位27为保留位,保留位将用于ARM版本的扩展。CPSR和SPSR可通过专门指令进行访问,这些指令将在第3章介绍。,2.4 Thumb状态下寄存器组织,Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集。如图2

22、.5所示,Thumb状态共有27个32位寄存器,其中21个为通用寄存器,6个为状态寄存器。图2.6给出Thumb状态下的寄存器组织与ARM状态下的寄存器组织的关系。,31,2.4 Thumb状态下寄存器组织,32,2.4 Thumb状态下寄存器组织,33,2.4 Thumb状态下寄存器组织,34,Thumb状态下的寄存器组织与ARM状态寄存器组织有如下的关系: Thumb状态R0R7与ARM状态R0R7相同; Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同; Thumb状态SP映射到ARM状态R13; Thumb状态LR映射到ARM状态R14; Thumb状态PC映射到AR

23、M状态PC(R15)。 以上对应关系如图2.6所示。,2.5 ARM存储器组织,2.5.1 编址方式与寻址空间 在计算机系统中主要有两类资源需要编址访问:存储单元和I/O端口。这两类资源在计算机系统中有两种编址方式: 1统一编址方式:存储单元和I/O端口统一编址在同一个地址空间。该方式的特点是:将同一地址空间分别分配给存储器单元和I/O端口,可用访问存储单元的指令访问I/O端口,无专用的I/O访问指令。,35,2.5 ARM存储器组织,2独立编址方式:存储单元和I/O端口分别编址在两个地址空间,即存储器地址空间和I/O地址空间。该方式的特点是:按资源分类的地址空间清晰,使用不同的指令访问存储单

24、元和I/O端口,即有专用的I/O访问指令,芯片上有专用于I/O访问的引脚。 ARM处理器有32条地址线,使用统一编址方式,将存储器、I/O端口等组织在一个线性递增的字节地址空间中,ARM处理器寻址的地址空间为0x000000000xFFFF FFFF,共4GB。ARM处理器支持字节(8bit)、半字(16bit)和字(32bit)数据访问。在进行半字和字数据访问时,要求数据是半字/字对齐存储。 ARM处理器支持232个字节(4GB)地址空间,这些地址空间也可以组织成231个半字地址空间或230个字地址空间。,36,2.5 ARM存储器组织,2.5.2 数据类型 ARM处理器的指令长度可以是32

25、位(在ARM状态下),也可以是16位(在Thumb状态下)。对操作数的数据类型而言,ARM处理器支持字节(8位)、半字(16位)和字(32位)3种数据类型,其中,字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为0)。 地址空间的规则: 位于地址A的字包含的字节位于地址A,A+1,A+2和A+3; 位于地址A的半字包含的字节位于地址A和A+1; 位于地址A+2的半字包含的字节位于地址A+2和A+3; 位于地址A的字包含的半字位于地址A和A+2;,37,2.5 ARM存储器组织,2.5.3 存储格式 ARM体系结构可以使用两种方法来存储字数据,称为大端格式和小端格式。 小端

26、格式 在小端格式中,高位数字存放在高地址字节中。因此存储器系统字节0连接到数据线70(低位对齐)。 大端格式 在大端格式中,高位数字存放在低地址字节中。因此存储器系统字节0连接到数据线3124(高位对齐) 。 32位字数据0x12345678分别以小端模式和大端模式存储时的具体情况如图2.7所示。,38,2.5 ARM存储器组织,39,2.5 ARM存储器组织,40,如果数据都是按字存放、按字读取的,则用户不必关心存储器格式是大端模式还是小端模式,处理器会按照一致的格式来访问存储器。只有在使用字节数据组装字数据(或字数据拆成字节数据)时,才需要关心存储器的大小端模式,来保证数据的正确性。ARM

27、指令集不包含任何大小端存储器格式相关的指令。一个支持大小端存储器模式的ARM芯片,通常由硬件配置(芯片引脚的高低电平)来选择对存储器系统访问用的是大端模式还是小端模式。飞利浦LPC2000系列ARM固定为小端模式。,2.6 异常,2.6 异常 2.6.1 ARM异常类型 在ARM系统中,异常是一些事件,这些事件能导致正常运行的程序被暂时停止,而进入到该事件对应的处理器异常模式并对该事件进行处理,这个过程叫做异常响应。ARM体系结构支持复位、未定义指令、SWI(软中断)、预取指终止、预取数终止、IRQ以及FIQ等7种异常,具体含义见表2.3。,41,2.6 异常,42,2.6 异常,2.6.2

28、ARM异常的处理 1 异常向量表 ARM处理器硬件约定,在处理器寻址空间0x0000 0000开始安排了一个称为异常向量表的特殊存储空间,如表2.4所示。当ARM处理器硬件约定的异常发生时,处理器按照异常的种类自动转移到表2.4所列特定单元取指执行。例如,发生复位异常时,处理器自动转移到0x0000 0000单元取指执行;当发生FIQ异常时,处理器自动转移到0x0000 001C地址单元取指执行。 异常处理通常是一段程序,所以在异常向量表的各字单元中存放一条32位的跳转指令,实现到各异常处理代码的转移。,43,2.6 异常,44,2.6 异常,2 异常响应 当异常发生时,ARM硬件自动完成图2

29、.8所示的一系列操作。图中SPSR_x、LR_x是指处理器模式x下的SPSR和LR寄存器。首先,ARM硬件自动将当前程序状态寄存器CPSR和PC的内容拷贝到异常发生后所进入的处理器模式对应的SPSR_x寄存器和LR_x寄存器;之后根据异常类型改写CPSR中的控制位,以便设置IRQ和FIQ的中断允许状态和处理器工作模式;最后根据不同的异常重置PC,以便使处理器转到异常向量表对应的字单元执行对应的跳转程序,转去执行相应的异常处理程序。表2.5“异常响应”一列给出各种异常发生时硬件进行的响应操作。,45,2.6 异常,46,2.6 异常,3 异常返回 当异常处理程序结束时,异常处理程序返回发生异常所

30、中断程序的断点处继续执行。在异常处理程序的最后,把进入异常前有硬件压入到该异常模式的程序状态寄存器的值送给CPSR,把压入该模式R14(LR)的值经过适当修正后送给PC。为什么要对LR中的值修正后才能送给PC呢?这是由于ARM流水线的存在,在进入异常处理时被保存到LR中的值未必就是程序返回地址。各种异常模式返回地址见表2.5。,47,2.6 异常,2.6.3 ARM异常的优先级 异常优先级包含两种的情况:第一种情况是多个异常同时发生时处理器如何响应;第二种情况是处理器正在处理异常过程中又有新的异常发生时处理器如何响应。在ARM异常响应机制中,处理器硬件仅解决了当多个异常同时发生时处理器如何响应

31、的问题,系统约定总是优先级高的异常优先获得响应,在ARM体系结构中,硬件约定了各个异常的优先级顺序,详见表2.6。异常嵌套及嵌套方案则由软件完成。从表2.6可以看出:复位异常优先级最高,任何时候复位异常总是首先获得响应;软中断指令和未定义指令总是互斥的,因此使用同一个优先级,且它们的优先级最低;IRQ和FIQ两种异常可以通过讲CPSR中的I、F位置1来禁止其发生。,48,2.6 异常,49,2.6 异常,50,习题 1、ARM7处理器是几级流水线?在ARM7处理器中,“PC指向的是下一条要执行的指令”,这句话对吗?为什么? 2、ARM处理器的工作状态分为哪两种?在CPSR中如何设置处理器的工作

32、状态? 3、ARM处理器有哪些工作模式?不同工作模式下CPSR寄存器的模式位M4:0如何设置? 4、试说明ARM处理器在ARM状态下寄存器结构,并分别说明R13、R14、R15寄存器的作用。 5、试简述程序计数器PC,连接寄存器LR的作用。 6、如何禁止IRQ和FIQ中断? 7、什么是ARM处理器的异常?ARM处理器中有哪几种异常?简述异常与中断的关系。 8、请描述一下ARM处理器产生异常的条件分别是什么?各种异常会使处理器进入哪种模式?进入异常时处理器有何操作?各种异常的返回指令时什么? 9、什么是大端存储模式和小端存储模式?画出0x87654321分别以小端模式和大端模式存储在0x00006000单元中的存储格式。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1