ARM体系结构与指令系统.ppt
《ARM体系结构与指令系统.ppt》由会员分享,可在线阅读,更多相关《ARM体系结构与指令系统.ppt(135页珍藏版)》请在三一办公上搜索。
1、第二章 ARM体系结构与指令系统,合肥学院 电子信息与电气工程系 干开峰,目 录,2.1 ARM体系结构 2.2 ARM指令系统,2.1 ARM体系结构,2.1.1 ARM体系结构概述2.1.2 ARM存储结构2.1.3 ARM处理器模式2.1.4 ARM寄存器2.1.5 ARM异常中断,2.1.1 ARM体系结构概述,一、ARM体系结构特点1、总体思想:在不牺牲性能的同时,尽量简化处理器。同时从体系结构的层面上灵活支持处理器扩展。这种简化和开放的思路使得ARM处理器采用了很简单的结构来实现。,2.1.1 ARM体系结构特点,2、RISC型处理器结构ARM采用RISC结构,在简化处理器结构,减
2、少复杂功能指令的同时,提高了处理器的速度。RISC型处理器采用了Load/Store(加载/存储)结构,即只有Load/Store指令可与存储器打交道,其余指令都不允许进行存储器操作。RISC型处理器增加了指令高速缓冲I-Cache和数据高速缓冲D-Cache及多处理器结构,使指令的操作尽可能在寄存器之间进行。,CISC与RISC的比较,2.1.1 ARM体系结构特点,3、Thumb指令集新型的ARM体系结构中定义了16位的Thumb指令集。Thumb指令集比通常的8/16位CISC/RISC处理器有更好的代码密度,而芯片面积只增加6%,却可以使程序存储器更小。,2.1.1 ARM体系结构特点
3、,4、多处理器状态模式ARM体系结构定义了7种处理器模式:用户(usr)、快中断(fiq)、中断(irq)、管理(svc)、终止(abt)、未定义(und)和系统(sys),大大提高了ARM处理器的效率。5、两种处理器工作状态ARM状态(执行32位ARM指令)和Thumb状态(执行16位Thumb指令)。,2.1.1 ARM体系结构特点,6、嵌入式在线仿真调试ARM体系结构的处理器芯片都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试芯片,省去了价格昂贵的在线仿真器。7、灵活方便的接口ARM体系结构具有协处理器接口,允许接16个协处理器。既可以使基本的ARM处理器内核尽可能小,方便地
4、扩充ARM指令集,也可以通过未定义指令来支持协处理器的软件仿真。,2.1.1 ARM体系结构特点,8、低电压功耗的设计考虑到ARM体系结构的处理器主要用于手持式嵌入式系统中,ARM体系结构在设计中就十分注意功耗的设计。,2.1.1 ARM体系结构特点,二、ARM流水线结构1、流水线方式:是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程同时进行。处理器按照一系列步骤来执行每一条指令。,2.1.1 ARM体系结构特点,典型的步骤为:1)从存储器读取指令(fetch)2)译码以鉴别它是哪一类指令(dec)3)从寄存器组取得所需的操作数(reg)4)将操作数进行组合以得到结果或存储器地
5、址(exe)5)如果需要,则访问存储器存取数据(mem)6)将结果回写到寄存器组(res),2.1.1 ARM体系结构特点,2、ARM7的三级流水线取指:从程序存储器中取指令,放入指令流水线。(占用存储器访问操作)译码:指令译码。(占用译码逻辑)执行:执行指令/读写REG。(占用ALU及数据路径),2.1.1 ARM体系结构特点,3、ARM9TDMI的五级流水线,2.1.1 ARM体系结构特点,4、ARM7和ARM9流水线比较5级流水线的ARM9内核是哈佛架构,拥有独立的指令和数据总线;指令和数据的读取可以在同一周期进行;3级流水的ARM7内核是指令和数据总线复用的冯.诺依曼架构,指令和数据的
6、读取不能在同一周期进行;5级流水线设计把寄存器读取、逻辑运算、结果回写分散在不同的流水当中,每一级流水的操作简洁,提升了处理器的主频。,2.1.1 ARM体系结构特点,随着流水线深度(级数)的增加,每一段的工作量被削减了,这使得处理器可以工作在更高的频率,同时改进了处理器的性能;负面作用是增加了系统的延时,即内核在执行一条指令前,需要更多的周期来填充流水线;流水线级数的增加也意味着在某些段之间会产生数据相关。,ARM处理器性能比较,2.1.1 ARM体系结构特点,三、ARM总线结构 ARM微控制器使用的是AMBA总线体系结构1、AHB总线(Advanced High-performance B
7、us):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序 参考同一个时钟沿。,2.1.1 ARM体系结构特点,2、ASB总线(Advanced System Bus):用于连接高性能系统模块,它支持突发数据传输模式。3、APB总线(Advance Peripheral Bus):是一个简单接口支持低性能的外围接口。,2.1.2 ARM存储结构,一、ARM存储数据类型 1、ARM处理器支持以下6种数据类型:8位有符号和无符号字节(Byte)。16位有符号和无符号半字(Halfword)它们必须以两字节的边界对齐(半字对齐)。半字对齐:半字单元地址的最低位 A0=0b0(
8、地址末位为0 x0,0 x2,0 x4,0 x6,0 x8,0 xa,0 xc,0 xe)。32位有符号和无符号字(word)它们必须以4字节的边界对齐(字对齐)。单元地址的低两位 A1A0=0b00。即地址末位为0 x0,0 x4,0 x8,0 xc。,2、对于指令,ARM指令系统分为32位ARM指令集和16位的Thumb指令集,在存储时分别以32位和16位的两种不同长度存储。3、对于数据,ARM支持对32位字数据,16位半字数据,8位字节数据操作。因此数据存储器可以存储32位,16位,8位三种不同长度数据。4、在ARM内部,所有操作都面向32位的操作数,只有数据传送指令支持较短的字节和半字
9、的数据类型。当从存储器读入一个字节或半字时,根据其数据类型将其扩展到32位。,2.1.2 ARM存储结构,二、ARM存储器组织 1、ARM存储器以8位为一个单元存储数据(一个字节),每个存储单元分配一个存储地址。ARM将存储器看作是从零地址开始的字节的线性组合。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(232字节)。2、ARM体系结构可以用两种方法存储字数据,称为大端格式和小端格式。,2.1.2 ARM存储结构,2.1.2 ARM存储结构,大端格式(big-endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。小端格式(low-endian):
10、与大端存储格式相反。低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。缺省设置为小端格式。,三、ARM存储器层次 微处理器希望存储器容量大、速度快。但容量大者速度慢;速度快者容量小。解决方法是构建一个由多级存储器组成的复合存储器系统。,2.1.2 ARM存储结构,多级存储器系统,寄存器组 访问时间约为几个ns。片上RAM 与片外RAM比速度快、功耗小、容量小。读写时间约为几个ns。片上Cache 832KB,访问时间约为十几个ns。主存储器 一般为几兆字节1GB 的动态存 储器,访问时间约 50ns。,2.1.2 ARM存储结构,CPU,寄存器组,片上RAM,片上Cache,主存储
11、器,硬盘,寄存器组,片上RAM,片上Cache,主存储器,硬盘,寄存器组,片上RAM,片上Cache,主存储器,2.1.3 ARM处理器模式,一、ARM处理器工作状态1、有两种工作状态:ARM状态:处理器执行32位的字对齐的ARM指令;Thumb状态:处理器执行16位的半字对齐的Thumb指令。2、两种状态可以切换:程序执行过程中,通过执行带状态切换的分支指令BX,随时在两种工作状态之间进行切换。并且,处理器工作状态的转变,并不影响处理器的工作模式和相应寄存器中的内容。,2.1.3 ARM处理器模式,二、ARM处理器工作模式1、ARM9的7种工作模式(1)用户模式(usr):非特权模式,大部分
12、任务执行在这种模式。正常程序执行的模式(2)快速中断模式(fiq):当一个高优先级(fast)中断产生时将会进入这种模式。高速数据传输或通道处理(3)外部中断模式(irq):当一个低优先级(normal)中断产生时将会进入这种模式。通常的中断处理(4)管理模式(svc):当复位或软中断指令执行时将会进入这种模式。供操作系统使用的一种保护模式,2.1.3 ARM处理器模式,(5)中止模式(abt):当存取异常时将会进入这种模式虚拟存储及存储保护(6)未定义模式(und):当执行未定义指令时会进入这种模式软件仿真硬件协处理器(7)系统模式(sys):供需要访问系统资源的操作系统任务使用特权级的操作
13、系统任务,2.1.3 ARM处理器模式,2、模式分类及特点(1)用户模式特点:应用程序不能够访问受操作系统保护的系统资源。应用程序不能进行处理器模式的切换。(2)系统模式特点:不属于异常模式,不是通过异常进入的。系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行模式的切换。它主要供操作系统使用。(3)特权模式及其特点:特权模式:除用户模式之外的工作模式又称为特权模式特点:应用程序可以访问所有的系统资源可以任意地进行处理器模式的切换,2.1.3 ARM处理器模式,(4)异常模式及其特点:异常模式:除用户模式、系统模式之外的五种模式称为异常模式。特点:以各自的中断或异常方式进入,并且处理
14、各自的中断或异常。对管理模式(svc)进入方式和处理内容有:系统上电复位后进入管理模式,运行系统初始化程序,如中断允许/禁止,主时钟设置,SDRAM配置,各个功能模块初始化等。当执行软件中断指令SWI时,进入管理模式。,2.1.3 ARM处理器模式,3、处理器模式的切换方式:软件控制进行切换。通过外部中断和异常进行切换处理器启动时的模式转换图,管理模式(Supervisor),多种特权模式变化,用户程序的运行模式,复位后的缺省模式,主要完成各模式的堆栈设置,注意不要进入用户模式,一般为用户模式User,2.1.4 ARM寄存器,一、ARM寄存器概述 ARM处理器v4及以上版本有37个32位的寄
15、存器 其中31个为通用寄存器;6个为状态寄存器。31个通用寄存器R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq 6 个状态寄存器CPSRSPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq,2.1.4 ARM寄存器,每一类处理器模式都有一组相应的寄存器组;在任意的处理器模式下,可见的寄存器包括15个通用寄存器(R0R14)、1个或2个状态寄存器和程序寄存器。带灰色底纹的单元格表示,用户模式或系统模式使用的一般寄存器,已被异常模式特定的另一
16、寄存器所替代。,2.1.4 ARM寄存器,二、ARM通用寄存器通用寄存器包括R0R15,可以分为三类:1、未分组寄存器R0R7在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途,是真正的通用寄存器。,2.1.4 ARM寄存器,2、分组的寄存器R8R14(1)R8R12 对于R8R12,每一次所访问的物理寄存器,与处理器当前的工作模式有关。当处理器工作于fiq模式时,访问的寄存器为R8_fiqR12_fiq;除fiq模式以外的其他模式,访问的寄存器为R8_usrR12_usr。(2)R13和R14:每个寄存器对应6个不同的物理寄存器,其中的一个是用户模式与系统模式
17、共用,另外5个物理寄存器,对应于其他5种不同的异常模式。采用以下的记号来区分不同的物理寄存器:R13_ R14_ 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。,2.1.4 ARM寄存器,R13:寄存器R13在ARM指令中常用作堆栈指针SP。但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。R14:寄存器R14也称作子程序链接寄存器(Subroutine Link Register)或链接寄存器LR。当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下
18、,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。,2.1.4 ARM寄存器,3、程序计数器PC(R15)(1)寄存器R15用作程序计数器(PC)。在ARM状态下,位1:0为0,位31:2用于保存PC;在Thumb状态下,位0为0,位31:1用于保存PC;(2)使用R15时注意:虽然R15可以用作通用寄存器,但是有一些指令在使用R15时有一些特殊限制,若不注意,执行的结果将是不可预料的。所以,一般不这么使用。(3)关于PC的值:由于ARM采用多级流水线技术,所以PC总是指向
19、正在取指的指令,而不是正在执行的指令。也即PC总是指向当前指令的下两条指令的地址。因此,对于ARM指令集而言,PC的值为当前指令的地址值加8个字节。,2.1.4 ARM寄存器,三、ARM状态寄存器1、两种程序状态寄存器在ARM微处理器中,有CPSR和SPSR两种程序状态寄存器。(1)当前程序状态寄存器 CPSR(Current Program Status Register)用来保存当前程序状态的寄存器。所有处理器模式下都可以访问当前程序状态寄存器CPSR。仅一个CPSR。(2)保存程序状态寄存器SPSR_mode(Saved Program Status Register)SPSR_mode
20、用来进行异常处理,其功能包括:保存ALU中的当前操作信息当异常发生时,用来保存CPSR的值,从异常返回时,将 SPSR_mode复制到CPSR中,恢复CPSR的值。控制允许和禁止中断修改SPSR的值 设置处理器的运行模式修改SPSR的值,2.1.4 ARM寄存器,2、ARM状态寄存器的格式(1)条件码标志位(保存ALU中的当前操作信息)N:正负号/大小 标志位0表示:正数/大于;1表示:负数/小于Z:零标志位0表示:结果不为零;1表示:结果为零C:进位/借位/移出位0表示:未进位/借位/移出0;1表示:进位/未借位/移出1V:溢出标志位0表示:结果未溢出;1表示:结果溢出,2.1.4 ARM寄
21、存器,(2)控制位I、F中断控制位控制允许和禁止中断I1 禁止IRQ中断I0 允许IRQ中断F1 禁止FIQ中断F0 允许FIQ中断T控制(标志)位反映处理器的运行状态T=1时,程序运行于Thumb状态T=0时,程序运行于ARM状态M控制位决定了处理器的运行模式当发生异常时这些位被改变。如果处理器运行在特权模式,这些位也可以由程序修改。,2.1.4 ARM寄存器,(3)保留位 CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者控制位时,保留位不要改变,在程序中也不要使用保留位来存储数据。保留位将用于ARM版本的扩展。,2.1.4 ARM寄存器,四、Thumb状态寄存器组织 Thum
22、b状态下的寄存器集是ARM状态下寄存器集的子集。程序员可以直接访问8个通用的寄存器(R0R7),程序计数器PC、堆栈指针SP、链接寄存器LR和当前状态寄存器CPSP。,2.1.5 ARM异常中断,一、异常和中断概念 1、中断 当CPU正在执行程序时,系统发生了一件急需处理的事件,CPU暂时停下正在执行的程序,转去处理相应的事件,事件处理完后,CPU再返回执行原来的程序,这种情况称为中断。中断事件:引起CPU产生中断、并且与CPU当前所执行的程序无关的、由外部硬件产生的事件,也叫中断源。中断事件也常称为外中断。,2.1.5 ARM异常中断,2、异常 是指CPU在执行指令时出现的错误,即不正常的情
23、况。异常是与当前所执行的程序有关的。如存取数据或指令错误、计算结果溢出等。异常的处理:也用中断的方式进行处理。,二、ARM有7种异常1、复位 处理器上一旦有复位输入,ARM处理器立刻停止执行当前指令。复位后,ARM处理器在禁止中断的管理模式下,从地址0 x00000000或0 xFFFF0000开始执行指令。2、未定义指令异常 当ARM处理器执行协处理器指令时,它必须等待任一外部协处理器应答后,才能真正执行这条指令。若协处理器没有响应,就会出现未定义指令异常。未定义指令异常可用于在没有物理协处理器(硬件)的系统上,对协处理器进行软件仿真,或在软件仿真时进行指令扩展。,2.1.5 ARM异常中断
24、,3、软件中断异常 该异常由执行SWI指令产生,可使用此机制进行软件仿真。4、预取中止(取指令存储器中止)若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。5、数据中止(访问数据存储器中止)若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。,2.1.5 ARM异常中断,6、IRQ异常当处理器的外部中断请求引脚有效,且CPSR中的I=0,产生IRQ异常。系统的外设可通过该异常请求中断服务。7、FIQ异常当处理器的外部中断请求引脚有效,且CPSR中的F=0,产生FIQ异常。FIQ
25、支持数据传送和通道处理,并有足够的私有寄存器,从而在应用中可避免对寄存器保存的需求,减少了开销。,2.1.5 ARM异常中断,三、ARM的异常中断响应过程 1、进入异常 当发生异常时,除了复位异常立即中止当前指令外,处理器尽量完成当前指令,然后脱离当前的程序去处理异常。ARM处理器对异常中断的响应过程如下:(1)保存返回地址 将引起异常指令的下一条指令的地址保存到新的异常模式x下的R14,即R14-中,使异常处理程序执行完后能正确返回原程序。(2)保存当前状态寄存器CPSR的内容 将CPSR的内容保存到将要执行的异常中断对应的SPSR中,便于中断返回时恢复处理器当前的状态位、中断屏蔽位以及各条
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 体系结构 指令系统

链接地址:https://www.31ppt.com/p-5415649.html