KLx第3章 ARM的体系构_第1页
KLx第3章 ARM的体系构_第2页
KLx第3章 ARM的体系构_第3页
KLx第3章 ARM的体系构_第4页
KLx第3章 ARM的体系构_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 arm体系结构第3章 arm体系结构l3.1 arm微处理器基础l3.2 arm的内核系列、指令系统l3.3 arm实验箱介绍3.1 arm微处理器基础parm的运行模式parm的工作状态parm的寄存器组织parm的异常parm的存储器格式parm的特点和优势计算机系统的一般运行原理计算机系统的一般运行原理cpu一般包括控制器、运算器和寄存器。p控制器的功能是控制处理器,如取指令、译码、执行指令、读写内存等;p运算器主要是在处理器的内部完成运算(算术运算、位运算)操作,一般只和寄存器打交道;p寄存器为处理器提供内部的临时存储空间,它是处理器和内存的媒介。计算机系统的一般运行原理 cp

2、u对内存的对内存的两种基本操作:p取指令p读写内存 计算机系统的一般运行原理 程序计数器在系统复位后,指向的内容是内存的某一个点区域,处理器从该处的内存依次取出指令,然后译码、执行。处理器在执行完一条指令之后,将自动将程序计数器寄存器的内容增加一个单位,然后根据其地址自动执行下一条指令。嵌入式系统与通用计算机硬件组成的异同 嵌入式系统本质上是计算机系统,但是具有以下的特点:p 集成度高p 非标准化p 接口非常复杂arm体系结构总体思想l总体思想:在不牺牲性能的同时,尽量简化处理器。同时从体系结构的层面上灵活支持处理器扩展。这种简化和开放的思路使得arm处理器采用了很简单的结构来实现。l目前,a

3、rm32位体系结构被公认为业界领先的32位嵌入式risc微处理器核,所有arm处理器都共享这一体系结构。risc结构arm采用risc结构,在简化处理器结构,减少复杂功能指令的同时,提高了处理器的速度。考虑到处理器与存储器打交道的指令执行时间远远大于在寄存器内操作的指令执行时间,risc型处理器采用了load/store(加载/存储)结构,即只有load/store指令可与存储器打交道,其余指令都不允许进行存储器操作。同时,为了进一步提高指令和数据的存取速度,risc型处理器增加了指令高速缓冲i-cache和数据高速缓冲d-cache及多处理器结构,使指令的操作尽可能在寄存器之间进行。cisc

4、与risc的比较arm的运行模式arm微处理器支持7种运行模式,分别为:p用户模式(usr): arm处理器正常的程序执行状态p快速中断模式(fiq): 用于高速数据传输或通道处理p中断模式(irq): 用于通用的中断处理p管理模式(svc): 操作系统使用的保护模式p终止模式(abt) : 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。p系统模式(sys): 运行具有特权的操作系统任务。p未定义模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。arm的工作状态 arm微处理器的工作状态一般有两种,并可在两种状态之间切换:parm状态,此时处理器执

5、行32位的字对齐的arm指令pthumb状态,此时处理器执行16位的、半字对齐的thumb指令arm的寄存器组织 arm微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问。 在某种时刻,通用寄存器r14r0、程序计数器pc、一个或两个状态寄存器都是可访问的。arm的寄存器组织arm的寄存器组织arm的寄存器组织arm的寄存器组织psr寄存器的各个位:p 中断禁止位i、fp thumb标志位p 运行模式位m4:0arm的寄存器组织m4m4:00处理器模式处理器模式0b10000用户模式0b10001fiq0b10010irq0b10011管理模

6、式0b10111终止模式0b11011未定义模式0b11111系统模式状态寄存器模式位的含义arm的异常异常类型异常类型具体含义具体含义复位(reset)当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。未定义指令(undefined)当arm 处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。软件中断(swi)该异常由执行swi 指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用。指令预取终止(prefetch abort)若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发

7、出终止信号,但当预取的指令被执行时,才会产生指令预取终止异常。数据终止(data abort)若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据终止异常。外部中断请求(irq)当处理器的外部中断请求引脚有效,且cpsr 中的i 位为0 时,产生irq 异常。系统的外设可通过该异常请求中断服务。快速中断请求(fiq)当处理器的快速中断请求引脚有效,且cpsr 中的f 位为0 时,产生fiq 异常。arm的异常返回指令 以前的状态armthumbblmov pc,r14pc4pc2swimovs pc,r14_svcpc4pc2udefmovs pc,r14_undpc4pc

8、2fiqsubs pc,r14_fiq,4pc4pc4irqsubs pc,r14_irq,4pc4pc4pabtsubs pc,r14_abt,4pc4pc4dabtsubs pc,r14_abt,8pc8pc8arm的异常1(最高) 复位2 数据终止3 fiq4 irq5 预取指令终止6(最低) 未定义指令、swiarm异常的优先级arm的存储器格式 arm体系结构将存储器看作是从零地址开始的字节的线性组合。从第0字节到第3字节放置第一个存储的字数据,从第4个字节到第7个字节放置第二个存储的字数据,依次排列。 作为32位的微处理器,arm体系结构所支持的最大寻址空间为4gb(32位)。 a

9、rm体系结构可以用两种方法存储字数据,称之为大端格式大端格式和小端格式小端格式。arm的存储器格式 大端格式大端格式arm的存储器格式 小端格式小端格式。arm的特点和优势1内核编程体系内核编程体系l 多种模式的切换l 众多的通用寄存器l 32位地址/数据操作l 指令集中的特殊功能l 高效的c和c+编译器l 硬件乘法器l thumb指令集l e增强dsp指令l jazzle技术2协处理器协处理器l mmul mpul vfp3amba(先进控制器总线体系先进控制器总线体系)4. 嵌入式嵌入式ice、低功耗、小体积、低功耗、小体积3.2 arm的内核系列parm内核分类与系列parm体系结构版本

10、arm内核分类与系列arm内核系列parm7 系列parm9 系列parm9e 系列parm10e 系列psecurcore 系列pstrongarm/xscaleparm11系列pcortexarm内核分类与系列1994-2004年发布的arm内核arm内核分类与系列处理器内核 内核分类arm7 arm7dmi(-s) arm720t arm7ej-sarm9 arm920t arm922tarm9e arm926ej-s arm946e-s arm966e-s arm968e-sarm10e arm1020e arm1022e arm1026ej-s处理器内核内核分类arm11 arm11

11、36j(f)-s arm1156t2(f)-s arm1176jz(f)-ssecurcore sc100 sc110 sc200 sc210strong armxscalearm7内核arm7tdmiarm7tdmi-sarm720tarm7ej-sarm9内核arm920tarm922tarm9e内核 arm926ej-sarm946e-sarm966e-sarm968e-sarm10e内核 arm1020earm1026ej-sarm11内核 arm1136j(f)-sarm1156t2(f)-sarm1176jz(f)-ssecurcore内核 sc100/sc110sc200/sc2

12、10其他arm内核 n strongarmn intel xscalen cortex arm cortex a (应用内核) arm cortex r (实时内核) arm cortex m (微控制器) arm体系结构版本 arm v1体系是最初的版本,只有26位的寻址空间,没有乘法指令,最终也没有商业化。arm v2体系与v1体系同为26位寻址空间具有乘法和乘加指令,支持协处理器。arm v3体系的寻址范围扩展到32位,具有乘法和乘加指令,支持协处理器。arm v3体系增加了半字存储操作,对调试的支持以及支持嵌入的ice。arm v3体系增加了 dsp指令支持和对 java指令的支持。a

13、rm v6体系增加了媒体指令,armv6指令集合中加入了超过60条simd单指令多数据指令。arm v7体系定义了三种独立的内核型 a(应用领域),r(实时领域),m(控制领域)。3.2 arm微处理器的指令系统parm指令系统的概述 parm的寻址模式 parm的指令集 pthumb的指令集 arm指令系统的概述助记符助记符指令功能描述指令功能描述adc带进位加法指令add加法指令and逻辑与指令b跳转指令bic位清零指令bl带返回的跳转指令blx带返回和状态切换的跳转指令bx带状态切换的跳转指令cdp协处理器数据操作指令cmn比较反值指令cmp比较指令eor异或指令ldc存储器到协处理器的

14、数据传输指令ldm加载多个寄存器指令ldr存储器到寄存器的数据传输指令mcr从armmla乘加运算指令mov数据传送指令 助记符助记符指令功能描述指令功能描述mrc从协处理器寄存器到armmrs传送cpsrmsr传送通用寄存器到cpsrmul32mla32mvn数据取反传送指令orr逻辑或指令rsb逆向减法指令rsc带借位的逆向减法指令sbc带借位减法指令stc协处理器寄存器写入存储器指令stm批量内存字写入指令str寄存器到存储器的数据传输指令sub减法指令swi软件中断指令swp交换指令teq相等测试指令tst位测试指令arm指令系统的概述 条件码条件码助记符后缀助记符后缀标志标志含义含义

15、0000eqz置位相等0001nez清零不相等0010csc置位无符号数大于或等于0011ccc清零无符号数小于0100min置位负数0101pln清零正数或零0110vsv置位溢出0111vcv清零未溢出1000hic置位无符号数大于1001lsc清零无符号数小于或等于1010gen等于v带符号数大于或等于1011ltn不等于v带符号数小于1100gtz清零且(n等于v)带符号数大于1101lez 置位或(n 不等于v)带符号数小于或等于1110al忽略无条件执行arm的寻址模式1.立即寻址立即寻址 立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取

16、到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如以下指令: add r0,r0,1 ;r0r01 add r0,r0,0 x3f ;r0r00 x3f 在以上两条指令中,第二个源操作数即为立即数,要求以“”为前缀,对于以十六进制表示的立即数,还要求在“”后加上“0 x”或“&”。 arm的寻址模式2 寄存器寻址寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。以下指令: add r0,r1,r2 ;r0r1r2 该指令的执行效果是将寄存器r1和r2的内容相加,其结果存放在寄存器r

17、0中。arm的寻址模式3. 寄存器间接寻址寄存器间接寻址寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。例如以下指令:ldr r0,r1 ;r0r1str r0,r1 ;r1r0第一条指令将以r1 的值为地址的存储器中的数据传送到r0 中。第二条指令将r0 的值传送到以r1 的值为地址的存储器中。arm的寻址模式4 基址变址寻址基址变址寻址基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。采用变址寻址方式的指令常见有以下几种形式,如下所示:ldr r

18、0,r1,4 ;r0r14ldr r0,r1,4! ;r0r14、r1r14ldr r0,r1 ,4 ;r0r1、r1r14ldr r0,r1,r2 ;r0r1r2在第一条指令中,将寄存器r1 的内容加上4 形成操作数的有效地址,从而取得操作数存入寄存器r0 中。在第二条指令中,将寄存器r1 的内容加上4 形成操作数的有效地址,从而取得操作数存入寄存器r0 中,然后,r1 的内容自增4 个字节。arm的寻址模式6.多寄存器寻址多寄存器寻址采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16 个通用寄存器的值。以下指令:ldmia r0,r1,r2

19、,r3,r4 ;r1r0;r2r04;r3r08;r4r012该指令的后缀ia 表示在每次执行完加载/存储操作后,r0 按字长度增加,因此,指令可将连续存储单元的值传送到r1r4。arm的寻址模式7.堆栈寻址堆栈寻址堆栈是一种数据结构,按先进后出(first in last out,filo)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(full stack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(empty stack)。同时,根据堆栈的生成方式,又可以分为递增堆栈(ascending

20、 stack)和递减堆栈(decendingstack),当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址生成时,称为递减堆栈。arm指令集arm指令集:跳转指令 arm 指令集中的跳转指令可以完成从当前指令向前或向后的32mb 的地址空间的跳转,包括以下4 条指令:u b 跳转指令u bl 带返回的跳转指令u blx 带返回和状态切换的跳转指令u bx 带状态切换的跳转指令 arm指令集:数据处理指令 传送指令:传送指令:umov 数据传送指令umvn 数据取反传送指令比较指令:比较指令:ucmp 比较指令ucmn 反值比较指令utst 位测试指令uteq 相等测试指令算术

21、指令:算术指令:uadd 加法指令uadc 带进位加法指令usub 减法指令usbc 带借位减法指令ursb 逆向减法指令ursc 带借位的逆向减法指令uand 逻辑与指令uorr 逻辑或指令ueor 逻辑异或指令ubic 位清除指令arm指令集:乘法指令 乘法指令与乘加指令:umul 32 位乘法指令umla 32 位乘加指令usmull 64 位有符号数乘法指令usmlal 64 位有符号数乘加指令uumull 64 位无符号数乘法指令uumlal 64 位无符号数乘加指令arm指令集:加载/存储指令 单寄存器加载存储指令:uldr 字数据加载指令uldrb 字节数据加载指令uldrh 半

22、字数据加载指令ustr 字数据存储指令ustrb 字节数据存储指令ustrh 半字数据存储指令uldrsb有符号的字节加载uldrsh有符号的半字加载多寄存器加载存储指令:uldm 多字节加载指令ustm 多字节存储指令lia :每次传送后地址+4lib :每次传送前地址+4lda :每次传送后地址-4ldb :每次传送前地址-4lfd :满递减堆栈led :空递减堆栈lfa :满递增堆栈lea :空递增堆栈arm指令集:程序状态寄存器指令 arm 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条:umrs 程序状态寄存器到通

23、用寄存器的数据传送指令umsr 通用寄存器到程序状态寄存器的数据传送指令arm指令集:协处理器指令 arm 的协处理器指令主要用于arm 处理器初始化arm 协处理器的数据处理操作,以及在arm 处理器的寄存器和协处理器的寄存器之间传送数据,和在arm 协处理器的寄存器和存储器之间传送数据。arm 协处理器指令包括以下5 条:ucdp 协处理器数操作指令uldc 协处理器数据加载指令ustc 协处理器数据存储指令umcr arm 处理器寄存器到协处理器寄存器的数据传送指令umrc 协处理器寄存器到arm 处理器寄存器的数据传送指令thumb指令集为兼容数据总线宽度为16 位的应用系统,arm

24、体系结构除了支持执行效率很高的32 位arm指令集以外,同时支持16 位的thumb 指令集。thumb 指令集是arm 指令集的一个子集,允许指令编码为16 位的长度。与等价的32 位代码相比较,thumb 指令集在保留32 代码优势的同时,大大的节省了系统的存储空间。所有的thumb 指令都有对应的arm 指令,而且thumb 的编程模型也对应于arm 的编程模型,pthumb 代码所需的存储空间约为arm 代码的6070pthumb 代码使用的指令数比arm 代码多约3040p若使用32 位的存储器,arm 代码比thumb 代码快约40p若使用16 位的存储器,thumb 代码比arm

25、 代码快约4050p与arm 代码相比较,使用thumb 代码,存储器的功耗会降低约30thumb指令集1、分支指令、分支指令l程序相对转移,特别是条件转移与arm代码下的转移相比,在范围上受更多的限制,转向子程序是无条件的转移。2、数据处理指令、数据处理指令l数据处理指令是对通用寄存器进行操作。在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第三个寄存器中。l数据处理操作比arm状态的更少。l访问寄存器r8-r15外,收到一定的限制。l除mov和add指令访问器r8-r15外,其他数据处理指令总是更新cpsr中的alu状态标志。l访问寄存器r8-r15的thumb数据处理指令不

26、能更新cpsr中的alu状态标志。thumb指令集3、单寄存器加载和存储指令、单寄存器加载和存储指令l 在thumb状态下,单寄存器加载和存储指令只能访问寄存器r0-r7。4、多寄存器加载和存储指令、多寄存器加载和存储指令lldm和stm指令可以将任何范围为r0-r7的寄存器子集加载或存储。lpush和pop指令使用堆栈指令r13作为基址实现满递减堆栈。除r0-r7外,push指令还可以存储连接寄存器r14,并且pop指令可以加载程序指令pc。lthumb指令集没有协处理器指令、信号量指令及访问cpsr或spsr的指令,没有乘加指令及64位乘法指令等,且第二操作的数收到限制;l3.3 arm实

27、验箱介绍gx-arm92410实验教学系统实验教学系统图片图片gx-arm92410实验教学系统实验教学系统结构框图结构框图gx-arm92410实验教学系统实验教学系统电路框图电路框图 教学实验系统组成教学实验系统组成1lcpu s3c2410x:16-/32-bit risc 微处理器,通过200p sodimm插槽和主板相联既可以采用s3c2410x的核心板,也可采用s3c2440(400mhz)核心板lboot rom:支持三种启动方式 lsst 2m-byte lintel strataflash 16m-byte(可选) lsamsung nand flash 64m-byte/1

28、28m-byte (直接smart media card 启动) lsdram:64m-byte (32m-byte2) ltft/stn 液晶和触摸屏接口 :sharp 3.5真彩tft液晶屏 l3个通道的异步串口,其中一个可以切换为红外(irda)接口 l两个通道的usb接口,其中一个可以切换为host或device设备教学实验系统组成教学实验系统组成2lsd卡主机(mmc)接口 lsmc卡(smart media card)接口 ljtag 接口(multi-ice兼容) l实时时钟(rtc)单元 liic总线接口(板载iic接口的eeprom 24c16 和iic接口的数码管驱动zlg7290) ladc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论