ARM体系结构与指令集培训课件1.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《ARM体系结构与指令集培训课件1.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 体系结构 指令 培训 课件
- 资源描述:
-
1、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处理器的指令集处理器的指令集 ARM ARM内核采用内核采用RISCRISC体系结构。体系结构。RISCRISC技术的技术的主要特点参见主要特点参见1.31.3节。节。ARMARM体系结构的主要特征如下(在本书的体系结构的主要特征如下(在本书的后续章节中将对这些特征做详细讲解):后续章节中将对
3、这些特征做详细讲解):(1 1)大量的寄存器,它们都可以用于多)大量的寄存器,它们都可以用于多种用途;种用途;(2 2)Load/StoreLoad/Store体系结构;体系结构;(3 3)每条指令都条件执行;)每条指令都条件执行;(4 4)多寄存器的)多寄存器的Load/StoreLoad/Store指令;指令;(5 5)能够在单时钟周期执行的单条指令)能够在单时钟周期执行的单条指令内完成一项普通的移位操作和一项普通的内完成一项普通的移位操作和一项普通的ALUALU操作;操作;(6 6)通过协处理器指令集来扩展)通过协处理器指令集来扩展ARMARM指指令集,包括在编程模式中增加了新的寄存器和
4、令集,包括在编程模式中增加了新的寄存器和数据类型。数据类型。(7 7)如果把)如果把ThumbThumb指令集也当作指令集也当作ARMARM体系体系结构的一部分,那么还可以加上:在结构的一部分,那么还可以加上:在ThumbThumb体体系结构中以高密度系结构中以高密度1616位压缩形式表示指令集。位压缩形式表示指令集。除用户模式外的其他除用户模式外的其他6 6种处理器模式称为种处理器模式称为特权模式(特权模式(Privileged ModesPrivileged Modes)。在特权模)。在特权模式下,程序可以访问所有的系统资源,也可以式下,程序可以访问所有的系统资源,也可以任意地进行处理器模
5、式切换。其中以下任意地进行处理器模式切换。其中以下5 5种又种又称为异常模式:称为异常模式:(1 1)快速中断模式()快速中断模式(FIQFIQ););(2 2)外部中断模式()外部中断模式(IRQIRQ););(3 3)特权模式()特权模式(SuperviorSupervior););(4 4)数据访问中止模式()数据访问中止模式(AbortAbort););(5 5)未定义指令中止模式()未定义指令中止模式(UndefUndef)。)。ARM ARM处理器有如下处理器有如下3737个个3232位长的寄存器:位长的寄存器:(1 1)3030个通用寄存器;个通用寄存器;(2 2)6 6个状态寄
6、存器:个状态寄存器:1 1个个CPSRCPSR(Current Program Status RegisterCurrent Program Status Register,当前,当前程序状态寄存器),程序状态寄存器),5 5个个SPSRSPSR(Saved Saved Program Status RegisterProgram Status Register,备份程序状态寄,备份程序状态寄存器);存器);(3 3)1 1个个PCPC(Program CounterProgram Counter,程序计,程序计数器)。数器)。ARM ARM处理器共有处理器共有7 7种不同的处理器模式,种不同
7、的处理器模式,在每一种处理器模式中有一组相应的寄存器组。在每一种处理器模式中有一组相应的寄存器组。表表2-22-2列出了列出了ARMARM处理器的寄存器组织概要。处理器的寄存器组织概要。2.3.1 通用寄存器通用寄存器 通用寄存器根据其分组与否可分为以下通用寄存器根据其分组与否可分为以下2 2类。类。(1 1)未分组寄存器()未分组寄存器(the Unbanked the Unbanked RegisterRegister),包括),包括R0R0R7R7。(2 2)分组寄存器()分组寄存器(the Banked the Banked RegisterRegister),包括),包括R8R8R1
8、4R14。未分组寄存器包括未分组寄存器包括R0R0R7R7。未分组寄存器没有被系统用于特殊的用途,未分组寄存器没有被系统用于特殊的用途,任何可采用通用寄存器的应用场合都可以使用任何可采用通用寄存器的应用场合都可以使用未分组寄存器。未分组寄存器。1 1未分组寄存器未分组寄存器 对于分组寄存器对于分组寄存器R13R13和和R14R14来说,每个寄来说,每个寄存器对应存器对应6 6个不同的物理寄存器。其中的一个个不同的物理寄存器。其中的一个是用户模式和系统模式公用的,而另外是用户模式和系统模式公用的,而另外5 5个分个分别用于别用于5 5种异常模式。访问时需要指定它们的种异常模式。访问时需要指定它们
9、的模式。名字形式如下:模式。名字形式如下:(1 1)R13_R13_ (2 2)R14_R14_ 其中,其中,可以是以下几种模式之一:可以是以下几种模式之一:usrusr、svcsvc、abtabt、undund、irpirp及及fiqfiq。2 2分组寄存器分组寄存器 寄存器寄存器R14R14又被称为连接寄存器(又被称为连接寄存器(Link Link RegisterRegister,LRLR),在),在ARMARM体系结构中具有下面体系结构中具有下面两种特殊的作用。两种特殊的作用。(1 1)每一种处理器模式用自己的)每一种处理器模式用自己的R14R14存存放当前子程序的返回地址。放当前子程
10、序的返回地址。(2 2)当异常中断发生时,该异常模式特)当异常中断发生时,该异常模式特定的物理寄存器定的物理寄存器R14R14被设置成该异常模式的返被设置成该异常模式的返回地址,对于有些模式回地址,对于有些模式R14R14的值可能与返回地的值可能与返回地址有一个常数的偏移量(如数据异常使用址有一个常数的偏移量(如数据异常使用SUB SUB PCPC,LRLR,#8#8返回)。返回)。R14R14也可以被用做通用寄存器使用。也可以被用做通用寄存器使用。2.3.2 状态寄存器状态寄存器 当前程序状态寄存器(当前程序状态寄存器(Current Program Current Program Stat
11、us RegisterStatus Register,CPSRCPSR)可以在任何处理器)可以在任何处理器模式下被访问,它包含下列内容:模式下被访问,它包含下列内容:(1 1)ALUALU(Arithmetic Logic UnitArithmetic Logic Unit,算,算术逻辑单元)状态标志的备份;术逻辑单元)状态标志的备份;(2 2)当前的处理器模式;)当前的处理器模式;(3 3)中断使能标志;)中断使能标志;(4 4)设置处理器的状态(只在)设置处理器的状态(只在4T4T架构)。架构)。N N(NegativeNegative)、)、Z Z(ZeroZero)、)、C C(Car
12、ryCarry)和和V 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标志位,用于在标志位,用于在异常中断发生时保存和恢复异常中断发生时保存和恢复C
13、PSRCPSR中的中的Q Q标志位。标志位。2 2Q Q标志位标志位 CPSR CPSR的低的低8 8位(位(I I、F F、T T及及M40M40)统称)统称为控制位。当异常发生时,这些位的值将发生为控制位。当异常发生时,这些位的值将发生相应的变化。另外,如果在特权模式下,也可相应的变化。另外,如果在特权模式下,也可以通过软件编程来修改这些位的值。以通过软件编程来修改这些位的值。(1 1)中断禁止位)中断禁止位 (2 2)状态控制位)状态控制位 (3 3)模式控制位)模式控制位3 3控制位控制位2.3.3 程序计数器程序计数器 程序计数器程序计数器R15R15又被记为又被记为PCPC。程序计
14、数器在下面两种情况下用于特殊的程序计数器在下面两种情况下用于特殊的目的。目的。(1 1)读程序计数器。)读程序计数器。(2 2)写程序计数器。)写程序计数器。2.4.1 流水线的概念与原理流水线的概念与原理 处理器按照一系列步骤来执行每一条指令,处理器按照一系列步骤来执行每一条指令,典型的步骤如下:典型的步骤如下:(1 1)从存储器读取指令()从存储器读取指令(fetchfetch););(2 2)译码以鉴别它是属于哪一条指令)译码以鉴别它是属于哪一条指令(decodedecode););(3 3)从指令中提取指令的操作数(这)从指令中提取指令的操作数(这些操作数往往存在于寄存器中)(些操作数
15、往往存在于寄存器中)(regreg););(4 4)将操作数进行组合以得到结果或存)将操作数进行组合以得到结果或存储器地址(储器地址(ALUALU););(5 5)如果需要,则访问存储器以存储数)如果需要,则访问存储器以存储数据(据(memmem););(6 6)将结果写回到寄存器堆()将结果写回到寄存器堆(resres)。)。2.4.2 流水线的分类流水线的分类 到到ARM7ARM7为止的为止的ARMARM处理器使用简单的处理器使用简单的3 3级级流水线,它包括下列流水线级。流水线,它包括下列流水线级。(1 1)取指令()取指令(fetchfetch):从寄存器装载):从寄存器装载一条指令。
16、一条指令。(2 2)译码()译码(decodedecode):识别被执行的指):识别被执行的指令,并为下一个周期准备数据通路的控制信号。令,并为下一个周期准备数据通路的控制信号。在这一级,指令占有译码逻辑,不占用数据通在这一级,指令占有译码逻辑,不占用数据通路。路。(3 3)执行()执行(excuteexcute):处理指令并将结):处理指令并将结果写回寄存器。果写回寄存器。1 13 3级流水线级流水线ARMARM组织组织 在在ARM9TDMIARM9TDMI中使用了典型的中使用了典型的5 5级流水线,级流水线,5 5级流水线包括下面的流水线级。级流水线包括下面的流水线级。(1 1)取指令()
17、取指令(fetchfetch):从存储器中取):从存储器中取出指令,并将其放入指令流水线。出指令,并将其放入指令流水线。(2 2)译码()译码(decodedecode):指令被译码,从):指令被译码,从寄存器堆中读取寄存器操作数。在寄存器堆中寄存器堆中读取寄存器操作数。在寄存器堆中有有3 3个操作数读端口,因此,大多数个操作数读端口,因此,大多数ARMARM指令能指令能在在1 1个周期内读取其操作数。个周期内读取其操作数。2 25 5级流水线级流水线ARMARM组织组织 (3 3)执行()执行(executeexecute):将其中):将其中1 1个操作个操作数移位,并在数移位,并在ALUA
18、LU中产生结果。如果指令是中产生结果。如果指令是LoadLoad或或StoreStore指令,则在指令,则在ALUALU中计算存储器的中计算存储器的地址。地址。(4 4)缓冲)缓冲/数据(数据(buffer/databuffer/data):如果):如果需要则访问数据存储器,否则需要则访问数据存储器,否则ALUALU只是简单地只是简单地缓冲缓冲1 1个时钟周期。个时钟周期。(5 5)回写()回写(write-backwrite-back):将指令的结):将指令的结果回写到寄存器堆,包括任何从寄存器读出的果回写到寄存器堆,包括任何从寄存器读出的数据。数据。在在ARM10ARM10中,将流水线的级
19、数增加到中,将流水线的级数增加到6 6级,级,使系统的平均处理能力达到了使系统的平均处理能力达到了1.3DMIPS/MHz1.3DMIPS/MHz。3 36 6级流水线级流水线ARMARM组织组织2.4.3 影响流水线性能的因素影响流水线性能的因素1 1互锁互锁2 2跳转指令跳转指令 将某个分区或是设备挂载了以后才能使用,将某个分区或是设备挂载了以后才能使用,但是当计算机重新启动以后,又需要重新挂载,但是当计算机重新启动以后,又需要重新挂载,这个时候可以通过修改这个时候可以通过修改/etc/fstab/etc/fstab文件实现文件实现开机自动挂载文件系统。开机自动挂载文件系统。ARM ARM
20、存储系统有非常灵活的体系结构,可存储系统有非常灵活的体系结构,可以适应不同的嵌入式应用系统的需要。以适应不同的嵌入式应用系统的需要。ARMARM存存储器系统可以使用简单的平板式地址映射机制储器系统可以使用简单的平板式地址映射机制(就像一些简单的单片机一样,地址空间的分(就像一些简单的单片机一样,地址空间的分配方式是固定的,系统中各部分都使用物理地配方式是固定的,系统中各部分都使用物理地址),也可以使用其他技术提供功能更为强大址),也可以使用其他技术提供功能更为强大的存储系统。的存储系统。例如:例如:(1 1)系统可能提供多种类型的存储器件,)系统可能提供多种类型的存储器件,如如FlashFla
21、sh、ROMROM、SRAMSRAM等;等;(2 2)CacheCache技术;技术;(3 3)写缓存技术()写缓存技术(write bufferswrite buffers););(4 4)虚拟内存和)虚拟内存和I/OI/O地址映射技术。地址映射技术。大多数的系统通过下面的方法之一可实大多数的系统通过下面的方法之一可实现对复杂存储系统的管理。现对复杂存储系统的管理。(1 1)使用)使用CacheCache,缩小处理器和存储系,缩小处理器和存储系统速度差别,从而提高系统的整体性能。统速度差别,从而提高系统的整体性能。(2 2)使用内存映射技术实现虚拟空间)使用内存映射技术实现虚拟空间到物理空间
22、的映射。到物理空间的映射。(3 3)引入存储保护机制,增强系统的)引入存储保护机制,增强系统的安全性。安全性。(4 4)引入一些机制保证将)引入一些机制保证将I/OI/O操作映射操作映射成内存操作后,各种成内存操作后,各种I/OI/O操作能够得到正确的操作能够得到正确的结果。结果。(1 1)内核级的寄存器。)内核级的寄存器。(2 2)芯片级的紧耦合存储器)芯片级的紧耦合存储器TCMTCM。(3 3)芯片级的片上)芯片级的片上CacheCache存储器的容量存储器的容量在在8 832KB32KB之间,访问时间大约为之间,访问时间大约为10ns10ns。(4 4)板卡级的)板卡级的DRAMDRAM
23、。(5 5)外设级的后援存储器,通常是硬盘,)外设级的后援存储器,通常是硬盘,可能从几百可能从几百MBMB到几个到几个GBGB,访问时间为几十,访问时间为几十msms。2.5.1 协处理器(协处理器(CP15)ARM ARM处理器支持处理器支持1616个协处理器。个协处理器。CP15CP15,即通常所说的系统控制协处理器,即通常所说的系统控制协处理器(System Control CoprocesssorSystem Control Coprocesssor),它负责),它负责完成大部分的存储系统管理。完成大部分的存储系统管理。CP15CP15包含包含1616个个3232位寄存器,其编号为位寄
24、存器,其编号为0 01515。CP15CP15中的寄存器可能是只读的,也可能中的寄存器可能是只读的,也可能是只写的,还有一些是可读可写的。是只写的,还有一些是可读可写的。2.5.2 存储管理单元(存储管理单元(MMU)在创建多任务嵌入式系统时,最好有一个在创建多任务嵌入式系统时,最好有一个简单的方式来编写、装载及运行各自独立的任简单的方式来编写、装载及运行各自独立的任务。目前大多数的嵌入式系统不再使用自己定务。目前大多数的嵌入式系统不再使用自己定制的控制系统,而使用操作系统来简化这个过制的控制系统,而使用操作系统来简化这个过程。较高级的操作系统采用基于硬件的存储管程。较高级的操作系统采用基于硬
25、件的存储管理单元(理单元(MMUMMU)来实现上述操作。)来实现上述操作。MMU MMU提供的一个关键服务是使各个任务作提供的一个关键服务是使各个任务作为各自独立的程序在其自己的私有存储空间中为各自独立的程序在其自己的私有存储空间中运行。在带运行。在带MMUMMU的操作系统控制下,运行的任的操作系统控制下,运行的任务无须知道其他与之无关的任务的存储需求情务无须知道其他与之无关的任务的存储需求情况,这就简化了各个任务的设计。况,这就简化了各个任务的设计。MMU MMU提供了一些资源以允许使用虚拟存提供了一些资源以允许使用虚拟存储器(将系统物理存储器重新编址,可将其看储器(将系统物理存储器重新编址
展开阅读全文