嵌入式系统技术与设计 第2章ARM体系结构与指集.ppt





《嵌入式系统技术与设计 第2章ARM体系结构与指集.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统技术与设计 第2章ARM体系结构与指集.ppt(152页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统技术与设计第第2章章 ARM体系结构与指令集体系结构与指令集ARMARM体系结构的特点体系结构的特点2.1ARMARM处理器工作模式处理器工作模式2.2寄存器组织寄存器组织2.3流流 水水 线线2.4ARMARM存储系统存储系统2.5异异 常常2.6ARMARM处理器的寻址方式处理器的寻址方式2.7ARMARM处理器的指令集处理器的指令集2.8 本章将要介绍本章将要介绍ARMARM体系结构、体系结构、ARMARM处理器的处理器的工作模式及常用指令集等。通过本章的学习,工作模式及常用指令集等。通过本章的学习,希望读者能够了解希望读者能够了解ARMARM处理器内部的主要工作处理器内部的主
2、要工作单元、基本工作原理,掌握常用指令集,并为单元、基本工作原理,掌握常用指令集,并为以后的程序设计打下基础。以后的程序设计打下基础。本章主要内容:本章主要内容:ARMARM体系结构的特点体系结构的特点 ARMARM处理器的工作模式处理器的工作模式 寄存器组织寄存器组织 流水线流水线 ARMARM存储存储 异常异常 ARMARM处理器的寻址方式处理器的寻址方式 ARMARM处理器的指令集处理器的指令集2.1 ARM2.1 ARM体系结构的特点体系结构的特点 ARMARM内核采用内核采用RISCRISC体系结构。体系结构。RISCRISC技术的技术的主要特点参见主要特点参见1.31.3节。节。A
3、RMARM体系结构的主要特征如下(在本书的体系结构的主要特征如下(在本书的后续章节中将对这些特征做详细讲解):后续章节中将对这些特征做详细讲解):(1 1)大量的寄存器,它们都可以用于多)大量的寄存器,它们都可以用于多种用途;种用途;(2 2)Load/StoreLoad/Store体系结构;体系结构;(3 3)每条指令都条件执行;)每条指令都条件执行;(4 4)多寄存器的)多寄存器的Load/StoreLoad/Store指令;指令;(5 5)能够在单时钟周期执行的单条指令)能够在单时钟周期执行的单条指令内完成一项普通的移位操作和一项普通的内完成一项普通的移位操作和一项普通的ALUALU操作
4、;操作;(6 6)通过协处理器指令集来扩展)通过协处理器指令集来扩展ARMARM指令指令集,包括在编程模式中增加了新的寄存器和数集,包括在编程模式中增加了新的寄存器和数据类型。据类型。(7 7)如果把)如果把ThumbThumb指令集也当作指令集也当作ARMARM体系体系结构的一部分,那么还可以加上:在结构的一部分,那么还可以加上:在ThumbThumb体体系结构中以高密度系结构中以高密度1616位压缩形式表示指令集。位压缩形式表示指令集。2.2 ARM2.2 ARM处理器工作模式处理器工作模式表表表表2-1 2-1 ARMARM处处处处理器的工作模式理器的工作模式理器的工作模式理器的工作模式
5、处理器工作模式简 写描 述用户模式(User)usr正常程序执行模式,大部分任务执行在这种模式下快速中断模式(FIQ)fiq当一个高优先级(fast)中断产生时将会进入这种模式,一般用于高速数据传输和通道处理外部中断模式(IRQ)irq当一个低优先级(normal)中断产生时将会进入这种模式,一般用于通常的中断处理特权模式(Supervisor)svc当复位或软中断指令执行时进入这种模式,是一种供操作系统使用的保护模式数据访问中止模式(Abort)abt当存取异常时将会进入这种模式,用于虚拟存储或存储保护未定义指令中止模式(Undef)und当执行未定义指令时进入这种模式,有时用于通过软件仿真
6、协处理器硬件的工作方式系统模式(System)sys使用和User模式相同寄存器集的模式,用于运行特权级操作系统任务 除用户模式外的其他除用户模式外的其他6 6种处理器模式称为种处理器模式称为特权模式(特权模式(Privileged ModesPrivileged Modes)。在特权模式)。在特权模式下,程序可以访问所有的系统资源,也可以任下,程序可以访问所有的系统资源,也可以任意地进行处理器模式切换。其中以下意地进行处理器模式切换。其中以下5 5种又称种又称为异常模式:为异常模式:(1 1)快速中断模式()快速中断模式(FIQFIQ););(2 2)外部中断模式()外部中断模式(IRQIR
7、Q););(3 3)特权模式()特权模式(SuperviorSupervior););(4 4)数据访问中止模式()数据访问中止模式(AbortAbort););(5 5)未定义指令中止模式()未定义指令中止模式(UndefUndef)。)。2.3 2.3 寄存器组织寄存器组织 ARMARM处理器有如下处理器有如下3737个个3232位长的寄存器:位长的寄存器:(1 1)3030个通用寄存器;个通用寄存器;(2 2)6 6个状态寄存器:个状态寄存器:1 1个个CPSRCPSR(Current Current Program Status RegisterProgram Status Regis
8、ter,当前程序状态寄,当前程序状态寄存器),存器),5 5个个SPSRSPSR(Saved Program Status Saved Program Status RegisterRegister,备份程序状态寄存器);,备份程序状态寄存器);(3 3)1 1个个PCPC(Program CounterProgram Counter,程序计,程序计数器)。数器)。ARMARM处理器共有处理器共有7 7种不同的处理器模式,在种不同的处理器模式,在每一种处理器模式中有一组相应的寄存器组。每一种处理器模式中有一组相应的寄存器组。表表2-22-2列出了列出了ARMARM处理器的寄存器组织概要。处理器
9、的寄存器组织概要。表表表表2-2 2-2 ARMARM处处处处理器的寄存器理器的寄存器理器的寄存器理器的寄存器组织组织组织组织概要概要概要概要UserFIQIRQSVCUndefAbortR0User modeR0R7,R15和CPSRUser modeR0R12,R15和CPSRUser modeR0R12,R15和CPSRUser modeR0R12,R15和CPSRUser modeR0R12,R15和CPSRR1R2R3R4R5R6R7R8R8R9R9R10R10R11R11R12R12R13(SP)R13(SP)R13R13R13R13R14(LR)R14(LR)R14R14R14R
10、14R15(PC)CPSRSPSRSPSRSPSRSPSRSPSR2.3.1 通用寄存器通用寄存器 通用寄存器根据其分组与否可分为以下通用寄存器根据其分组与否可分为以下2 2类。类。(1 1)未分组寄存器()未分组寄存器(the Unbanked the Unbanked RegisterRegister),包括),包括R0R0R7R7。(2 2)分组寄存器()分组寄存器(the Banked the Banked RegisterRegister),包括),包括R8R8R14R14。未分组寄存器包括未分组寄存器包括R0R0R7R7。未分组寄存器没有被系统用于特殊的用途,未分组寄存器没有被系统
11、用于特殊的用途,任何可采用通用寄存器的应用场合都可以使用任何可采用通用寄存器的应用场合都可以使用未分组寄存器。未分组寄存器。1 1未分组寄存器未分组寄存器 对于分组寄存器对于分组寄存器R13R13和和R14R14来说,每个寄存来说,每个寄存器对应器对应6 6个不同的物理寄存器。其中的一个是个不同的物理寄存器。其中的一个是用户模式和系统模式公用的,而另外用户模式和系统模式公用的,而另外5 5个分别个分别用于用于5 5种异常模式。访问时需要指定它们的模种异常模式。访问时需要指定它们的模式。名字形式如下:式。名字形式如下:(1 1)R13_R13_ (2 2)R14_R14_ 其中,其中,可以是以下
12、几种模式之一:可以是以下几种模式之一:usrusr、svcsvc、abtabt、undund、irpirp及及fiqfiq。2 2分组寄存器分组寄存器 寄存器寄存器R14R14又被称为连接寄存器(又被称为连接寄存器(Link Link RegisterRegister,LRLR),在),在ARMARM体系结构中具有下面体系结构中具有下面两种特殊的作用。两种特殊的作用。(1 1)每一种处理器模式用自己的)每一种处理器模式用自己的R14R14存放存放当前子程序的返回地址。当前子程序的返回地址。(2 2)当异常中断发生时,该异常模式特)当异常中断发生时,该异常模式特定的物理寄存器定的物理寄存器R14
13、R14被设置成该异常模式的返被设置成该异常模式的返回地址,对于有些模式回地址,对于有些模式R14R14的值可能与返回地的值可能与返回地址有一个常数的偏移量(如数据异常使用址有一个常数的偏移量(如数据异常使用SUB SUB PCPC,LRLR,#8#8返回)。返回)。R14R14也可以被用做通用寄存器使用。也可以被用做通用寄存器使用。2.3.2 状态寄存器状态寄存器 当前程序状态寄存器(当前程序状态寄存器(Current Program Current Program Status RegisterStatus Register,CPSRCPSR)可以在任何处理器)可以在任何处理器模式下被访问,
14、它包含下列内容:模式下被访问,它包含下列内容:(1 1)ALUALU(Arithmetic Logic UnitArithmetic Logic Unit,算,算术逻辑单元)状态标志的备份;术逻辑单元)状态标志的备份;(2 2)当前的处理器模式;)当前的处理器模式;(3 3)中断使能标志;)中断使能标志;(4 4)设置处理器的状态(只在)设置处理器的状态(只在4T4T架构)。架构)。图图图图2-1 2-1 程序状程序状程序状程序状态态态态寄存器格式寄存器格式寄存器格式寄存器格式 N N(NegativeNegative)、)、Z Z(ZeroZero)、)、C C(CarryCarry)和和V
15、 V(oVerflowoVerflow)通称为条件标志位。)通称为条件标志位。(1 1)N N (2 2)Z Z (3 3)C C (4 4)V V1 1标志位标志位 在带在带DSPDSP指令扩展的指令扩展的ARM v5ARM v5及更高版本中,及更高版本中,bit27bit27被指定用于指示增强的被指定用于指示增强的DAPDAP指令是否发指令是否发生了溢出,因此也就被称为生了溢出,因此也就被称为Q Q标志位。同样,标志位。同样,在在SPSRSPSR中中bit27bit27也被称为也被称为Q Q标志位,用于在异标志位,用于在异常中断发生时保存和恢复常中断发生时保存和恢复CPSRCPSR中的中的
16、Q Q标志位。标志位。2 2Q Q标志位标志位 CPSRCPSR的低的低8 8位(位(I I、F F、T T及及M40M40)统称)统称为控制位。当异常发生时,这些位的值将发生为控制位。当异常发生时,这些位的值将发生相应的变化。另外,如果在特权模式下,也可相应的变化。另外,如果在特权模式下,也可以通过软件编程来修改这些位的值。以通过软件编程来修改这些位的值。(1 1)中断禁止位)中断禁止位 (2 2)状态控制位)状态控制位 (3 3)模式控制位)模式控制位3 3控制位控制位表表表表2-3 2-3 状状状状态态态态控制位控制位控制位控制位M4M4 00含含含含义义义义M40处理器模式可以访问的寄
17、存器0b10000UserPC,R14R0,CPSR0b10001FIQPC,R14_fiqR8_fiq,R7R0,CPSR,SPSR_fiq0b10010IRQPC,R14_irqR13_irq,R12R0,CPSR,SPSR_irq 0b10011SupervisorPC,R14_svcR13_svc,R12R0,CPSR,SPSR_svc0b10111AbortPC,R14_abtR13_abt,R12R0,CPSR,SPSR_abt0b11011UndefinedPC,R14_undR13_und,R12R0,CPSR,SPSR_und0b11111SystemPC,R14R0,CPS
18、R(ARM v4及更高版本)2.3.3 程序计数器程序计数器 程序计数器程序计数器R15R15又被记为又被记为PCPC。程序计数器在下面两种情况下用于特殊的程序计数器在下面两种情况下用于特殊的目的。目的。(1 1)读程序计数器。)读程序计数器。(2 2)写程序计数器。)写程序计数器。2.4 2.4 流流 水水 线线2.4.1 流水线的概念与原理流水线的概念与原理 处理器按照一系列步骤来执行每一条指令,处理器按照一系列步骤来执行每一条指令,典型的步骤如下:典型的步骤如下:(1 1)从存储器读取指令()从存储器读取指令(fetchfetch););(2 2)译码以鉴别它是属于哪一条指令)译码以鉴别
19、它是属于哪一条指令(decodedecode););(3 3)从指令中提取指令的操作数(这些)从指令中提取指令的操作数(这些操作数往往存在于寄存器中)(操作数往往存在于寄存器中)(regreg););(4 4)将操作数进行组合以得到结果或存)将操作数进行组合以得到结果或存储器地址(储器地址(ALUALU););(5 5)如果需要,则访问存储器以存储数)如果需要,则访问存储器以存储数据(据(memmem););(6 6)将结果写回到寄存器堆()将结果写回到寄存器堆(resres)。)。2.4.2 流水线的分类流水线的分类 到到ARM7ARM7为止的为止的ARMARM处理器使用简单的处理器使用简单
20、的3 3级级流水线,它包括下列流水线级。流水线,它包括下列流水线级。(1 1)取指令()取指令(fetchfetch):从寄存器装载):从寄存器装载一条指令。一条指令。(2 2)译码()译码(decodedecode):识别被执行的指):识别被执行的指令,并为下一个周期准备数据通路的控制信号。令,并为下一个周期准备数据通路的控制信号。在这一级,指令占有译码逻辑,不占用数据通在这一级,指令占有译码逻辑,不占用数据通路。路。(3 3)执行()执行(excuteexcute):处理指令并将结):处理指令并将结果写回寄存器。果写回寄存器。1 13 3级流水线级流水线ARMARM组织组织 在在ARM9T
21、DMIARM9TDMI中使用了典型的中使用了典型的5 5级流水线,级流水线,5 5级流水线包括下面的流水线级。级流水线包括下面的流水线级。(1 1)取指令()取指令(fetchfetch):从存储器中取出):从存储器中取出指令,并将其放入指令流水线。指令,并将其放入指令流水线。(2 2)译码()译码(decodedecode):指令被译码,从):指令被译码,从寄存器堆中读取寄存器操作数。在寄存器堆中寄存器堆中读取寄存器操作数。在寄存器堆中有有3 3个操作数读端口,因此,大多数个操作数读端口,因此,大多数ARMARM指令能指令能在在1 1个周期内读取其操作数。个周期内读取其操作数。2 25 5级
22、流水线级流水线ARMARM组织组织 (3 3)执行()执行(executeexecute):将其中):将其中1 1个操作个操作数移位,并在数移位,并在ALUALU中产生结果。如果指令是中产生结果。如果指令是LoadLoad或或StoreStore指令,则在指令,则在ALUALU中计算存储器的地中计算存储器的地址。址。(4 4)缓冲)缓冲/数据(数据(buffer/databuffer/data):如果):如果需要则访问数据存储器,否则需要则访问数据存储器,否则ALUALU只是简单地只是简单地缓冲缓冲1 1个时钟周期。个时钟周期。(5 5)回写()回写(write-backwrite-back)
23、:将指令的结果):将指令的结果回写到寄存器堆,包括任何从寄存器读出的数回写到寄存器堆,包括任何从寄存器读出的数据。据。在在ARM10ARM10中,将流水线的级数增加到中,将流水线的级数增加到6 6级,级,使系统的平均处理能力达到了使系统的平均处理能力达到了1.3DMIPS/MHz1.3DMIPS/MHz。3 36 6级流水线级流水线ARMARM组织组织图图图图2-4 62-4 6级级级级流水流水流水流水线线线线指令的指令的指令的指令的执执执执行行行行过过过过程程程程2.4.3 影响流水线性能的因素影响流水线性能的因素1 1互锁互锁2 2跳转指令跳转指令2.5 ARM2.5 ARM存储系统存储系
24、统 将某个分区或是设备挂载了以后才能使用,将某个分区或是设备挂载了以后才能使用,但是当计算机重新启动以后,又需要重新挂载,但是当计算机重新启动以后,又需要重新挂载,这个时候可以通过修改这个时候可以通过修改/etc/etc/fstabfstab文件实现开文件实现开机自动挂载文件系统。机自动挂载文件系统。ARMARM存储系统有非常灵活的体系结构,可存储系统有非常灵活的体系结构,可以适应不同的嵌入式应用系统的需要。以适应不同的嵌入式应用系统的需要。ARMARM存存储器系统可以使用简单的平板式地址映射机制储器系统可以使用简单的平板式地址映射机制(就像一些简单的单片机一样,地址空间的分(就像一些简单的单
25、片机一样,地址空间的分配方式是固定的,系统中各部分都使用物理地配方式是固定的,系统中各部分都使用物理地址),也可以使用其他技术提供功能更为强大址),也可以使用其他技术提供功能更为强大的存储系统。的存储系统。例如:例如:(1 1)系统可能提供多种类型的存储器件,)系统可能提供多种类型的存储器件,如如FlashFlash、ROMROM、SRAMSRAM等;等;(2 2)CacheCache技术;技术;(3 3)写缓存技术()写缓存技术(write bufferswrite buffers););(4 4)虚拟内存和)虚拟内存和I/OI/O地址映射技术。地址映射技术。大多数的系统通过下面的方法之一可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式系统技术与设计 第2章 ARM体系结构与指集 嵌入式 系统 技术 设计 ARM 体系结构

限制150内