ARM体系结构.

ARM体系结构.
ARM体系结构.

ARM是Advanced RISC Machines ( 高级精简指令系统处理器) 的缩写,是ARM公司提供的一种微处理器知识产权( IP) 核

ARM既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字

ARM微处理器的特点

1、体积小、低功耗、低成本、高性能

2、支持Thumb (16位) / ARM (32位) 双指令集,能很好的兼容8位/16位器件

3、大量使用寄存器,指令执行速度更快

4、大多数数据操作都在寄存器中完成

5、寻址方式灵活简单、执行效率高

6、指令长度固定

ARM7系列:

属低端ARM处理器核,最适合用于对价位和功能消耗要求较高的消费类应用

主要应用领域为:工业控制、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用

DSP: Digital Signal Processor

命名解释:

ARM7DMI:T表示支持16位压缩指令集(Thumb),D表示支持片上调试(Debug),M表示内嵌硬件乘法器(Multiplier),I 表示嵌入式ICE(仿真器),支持片上断点和调试点( in - circuit emulater )

ARM7系列处理器特点:

1、具有嵌入式ICE逻辑,调试开发方便

2、功耗极低,适合便携式产品开发

3、3级流水线结构

4、支持Thumb

5、支持多种操作系统

6、指令与ARM9、ARM10系列兼容,便于升级

3级流水线(Pipeline) 的执行过程

取指:从存储器装载指令

译码:对刚装载的指令进行识别

执行:处理指令并把结果写回相应的寄存器

ARM9系列处理器特点:

在高性能和低功耗特性方面提供最佳的性能

主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码相机和数字摄像机

ARM9有5级流水线:FETCH、DECODE、EXECUTE、MEMORY、WRITE

ARM 与THUMB

1、THUMB指令是ARM指令的自给

2、可以相互调用,只要遵循一定的调用规则

3、THUMB指令与ARM指令时间效率和空间效率关系:存储空间是ARM代码的60% ~ 70%,指令数比ARM代码多约30% ~ 40%,存储器为32位时ARM代码比THUMB代码

快约40%,存储器为16位时THUMB比ARM代码快约40 ~ 50%,使用THUMB代码,存储器的功耗会降低约30%

状态切换:

ARM 与THUMB之间的状态的切换不影响处理器模式或寄存器的内容

ARM指令集和THUMB都有相应的切换命令

切换方法:

进入THUMB状态:操作数寄存器Rm的状态位bit [0] 为1,执行BX Rm

进入ARM状态:操作数寄存器Rm的状态位bit [0] 为0,执行BX Rm

在开始执行开骂时,应该处于ARM状态

ARM微处理器的存储器格式:

1、支持最大寻址空间为4GB

2、ARM体系结构将存储器看作是从零地址开始的字节的线性组合

3、ARM体系结构可以用两种方法存储字数据:大端和小端格式

大端(Big-Endian): 低字节存放在高地址中

小端(Little-Endian): 高字节存放在高地址中

ARM处理器工作模式

1、USR模式:正常用户模式、程序正常执行模式

2、FIQ模式(Fast Interrupt Request ):处理快速中断,支持高速数据传送或通道处理

3、IRU模式:处理普通中断

4、SVC模式:( Supervisor) :操作系统保护模式,处理软件中断

5、ABT 中止:(Abort mode) :处理存储器故障,实现虚拟存储器和存储器保护

6、UND未定义:(Undefined):处理未定义的指令陷阱,支持硬件协处理器的软件仿真

7、SYS系统模式(基本上=USR)

ARM寄存器组成:

31个通用寄存器:R0 ~ R15 (PC)、R13_svc,R14_svc,R13_abt,R14_abt,R13_und,R14_und,R13_irq,R14_irq,R8_frq ~ R14_frq,

6个状态寄存器:CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_frq ARM状态下的寄存器组织

R0 ~ R7 是普通工作寄存器

R8 ~ R12用于对场景信息的保留R13常用作堆栈指针

R14作为子程序连接寄存器

R15是程序计数器

CPSR (当前程序状态寄存器) SPSR (备份的程序状态寄存器)

程序状态寄存器图如下:

N、Z、C、V为标志位

N标志位:当用两个补码表示的带符号数进行运算时,N=1代表运算的结果为负数,N=0表示的结果是正数或0

Z标志位:Z=1表示运算的结果为0,Z=0表示运算的结果为非0

V标志位:加/ 减法运算指令,V=1表示符号位的溢出,对于其它非加 / 减运算指令,V的值通常不变

C标志位:加法运算结果进位时,C=1,减法运算借位时,C=0,移位操作的非加/ 减法运算指令,C为移出的最后一位,其它的非加/ 减运算指令,C的值通常不变

I、F、T 和M [4:0] 称为控制位,发生异常时这些位可以被改变

中断禁止位I、F:I=1,禁止IRQ中断,F=1,禁止FIQ中断

T标志位反映处理器的运行状态,T=1,运行THUMB状态,T=0,运行ARM状态

ARM体系结构所支持的异常类型:

1、复位:复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行

2、未定义指令:遇到不能处理的指令,定义未定义指令异常

3、软件中断:执行SWI指令产生,用于用户模式下的程序调用特权操作指令(用户模式-> 特权模式)

4、指令预取中止:处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常

5、数据中止:处理器数据访问指令的地址不存在,或该地址不允许当前指令访问,产生数据中止异常

6、IRQ:外部中断请求有效,且CPSR中的I 位为0时,产生IRQ 异常

7、FIQ:快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常

ARM体系中的中断如下图:

0x00000014作为预留使用

异常执行的一段代码通常为

SUB LR,LR,#4 ; FIQ、IRQ的中断处理

STMFD SP!,{reglist,LR}

......

LDMFD SP!,{reglist,PC}^

对异常的相应:

1、将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行,若是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8),与异常的类型有关

2、将CPSR复制到相应的SPSR中

3、根据异常类型,强制设置CPSR的运行模式位

4、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处

还可以设置中断禁止位,以禁止中断发生,如果异常发生时,处理器处于THUMB状态,则从异常向量加载入PC时,处理器自动切换到ARM状态

异常处理完毕后,ARM微处理器会执行以下几步从异常返回:

1、将连接寄存器LR的值减去相应的偏移量后送到PC中

2、将SPSR复制回CPSR中

3、若在进入异常处理时设置了中断禁止位,要在此清除

可以认为应用程序总是从复位异常处理程序开始执行的,因为复位异常处理程序不需要返回

应用程序中的异常处理:

当系统运行时,异常可能随时发生,进行异常处理,采用的方式是异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序,当ARM处理器发生异常时,程序计数器PC会强制设置为对应的异常向量,从而跳转到处理程序,当异常处理完成后,返回到主程序继续执行

ARM体系结构与接口技术(一)

ARM920TDMA处理器是哈佛结构,包括取指、译码、执行、存储、写入的五级流水线。包括cp14和cp15两个协处理器。16k数据缓存和16k指令缓存。虚拟地址64路相关缓存。每线8字。 ARM的基本数据类型: ARM采用的是32位架构,基本上数据类型有以下三种: Byte :字节,8位 Halfword:半字,16bit(半字必须与2字节边界对齐 Word:字,32bit(必须与4字节边界对齐 所有的数据类型指令的操作数都是字类型。 ARM指令编译后是4字节(与字边界对齐,Thumb指令编译后是2字节(与半字对齐 存储器大/小端 Arm支持大端模式和小端模式。在大端模式下,一个字的高地址放的是数据的地位,在小端模式下,数据的低地址放的是数据的低位。 ARM920T,有7中工作模式: 用户模式(User,正常程序执行模式。 快速中断模式(FIQ,当一个高优先级中断产生时将会进入该模式,一般用于高速数据传输和通道处理。 外部中断模式(IRQ,当一个低优先级中断产生时将会进入该模式,一般用于通常的中断处理

特权模式(Supervise,当复位或软中断指令执行时进入该模式,是一种供操作系统使用的保护模式。 数据访问中止模式(abort,当存取异常时将会进入该模式,用于虚拟存储或存储保护未定义指令中止模式(undef,当执行未定义指令时进入该模式,有时用于通过软件仿真协处理器硬件的工作方式 系统模式(system使用和user模式相同的寄存器集模式,用于运行特权级操作系统任务 除了用户模式,其他六中均为特权模式。在特权模式下,程序可以访问所有的系统资源,也可以任意的进行处理器模式切换。 流水线的概念与原理 处理器按照一系列的步骤来执行每一条指令,典型的步骤如下: 1、从存储器读取指令(fetch 2、译码以鉴别它是属于哪一条指令(decode 3、从指令中提取指令的操作数(这些操作数往往存在于寄存器中(reg 4、将操作数进行组合以得到结果或存储器地址(ALU 5、如果需要,则访问存储器以存储数据(mem 6、将结果写回到寄存器堆(res 流水线的分类: 1、3级流水线ARM组织 取指令—>译码—>执行

ARM体系结构版本

ARM体系结构的版本 前面一段时间我搞过一次《MCU编译与运行》的专题,详细介绍从代码编译到代码运行以及中断机制的流程,这里想在编译部分补充一些知识点。 对于嵌入式开发人员,搭建开发环境是比较困难的一步,市面上针对ARM开发的IDE 非常多,有的编译器诸如ADS或者MDK等老编译器并不支持ARM11或者Contex系列的内核,RVDS号称支持所有ARM,但RVDS4.0仅仅支持RealViewICE,这个调试器将近2万元,个人一般无力购买,因此推荐ARM爱好者使用RVDS2.2,虽然界面和ADS一样粗糙,对Win7的支持也不好,但支持JLink等常用编译器。 之所以有的编译器不支持ARM11是因为此编译器内置的指令集达不到ARM11所需指令集的版本。ARM7与ARM9的指令集相同,是V4版本,因此编译好的ARM7代码是可以在ARM9上运行的(注意,此处仅仅说的是ARM7和ARM9内核的指令集通用,也即代码可以执行,不是指任何代码都可有效运行,毕竟不同芯片中的片内外设以及外设有所不同),ARM11使用V6版本指令集,但ARM指令集向下兼容,因此一般代码也是可以执行,但V6中增加的指令就没法执行了,会出现指令错误异常,程序会死机。下面就来看一下ARM指令集版本的升迁:ARM指令集体系结构,从最初开发至今已有了重大改进,而且将会不断完善和发展。为了精确表达每个ARM实现中所使用的指令集,到目前ARM体系结构共定义了6个版本,以版本号v1~v6表示,各版本特点如下。 1. 版本1(v1) 该版本包括: 1.基本数据处理指令(不包括乘法) 2.字节、字以及半字加载/存储指令 3.分支(branch)指令,包括用于子程序调用的分支与链接(branch-and-link) 指令 4.软件中断指令,用于进行操作系统调用 5.26位地址总线 2. 版本2(v2) 与版本1相比,版本2增加了下列指令: 1.乘法和乘加指令(multiply & multiply-accumulate) 2.支持协处理器 3.原子性(atomic)加载/存储指令SWP和SWPB(稍后的版本称v2a) 4.FIQ中的两个以上的分组寄存器。 3. 版本3(v3) 版本3较以前的版本发生了大的变化,具体改进如下: 1.推出32位寻址能力。 2.分开的CPSR(current program status register,当前程序状态寄存器)和SPSR (saved program status register,备份的程序状态寄存器),当异常发生时,SPSR 用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR 3.增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令 预取中止异常和未定义指令异常 4.增加了MRS指令和MSR指令,用于完成对CPSR和SPSR寄存器的读/写; 修改了原来的从异常中返回的指令 4. 版本4(v4) 版本4在版本3的基础上增加了如下内容:

《ARM体系结构》期末考试试卷含答案

东华理工大学长江学院2011—2012 学年第2学期补考试卷B 课程:嵌入式微处理器体系结构与编程考试形式:闭卷 年级及专业:计算机科学与技术10304101-3班 1.系统调用 2.哈弗结构 3.MMU 4.FIQ 5.SPSR 二、单项选择题(20×2分=40分) 1.ARM系统复位后,第一条执行的指令在( ). A 00000000H B 00000004H C 00000008H D 由编程者确定2.针对没有MMU的ARM芯片,其操作系统可以使用( ). A Windows CE ,Linux B VxWork C uClinux, Uc/OS-II D 以上都可以 3.ATPCS定义了寄存器组中的( )作为参数传递和结果返回寄存器。 A R0,R1,R2,R3 B R4,R5,R6,R7 C R8,R9,R10,R11 D A B C 都可以 4.用汇编指令对R15赋值,可以实现()。 A 程序的跳转 B 实现B指令功能 C 子程序的返回 D A B C都可以 5.ARM汇编语言中,一常量8_5642也代表()。 A 整数5642 B 整数5642H C 整数Ox5642 D 整数2978 6.要使CPU能够正常工作,下列哪个条件不是处理器必须满足的。() (A) 处理器的编译器能够产生可重入代码(B)在程序中可以找开或者关闭中断 (C) 处理器支持中断,并且能产生定时中断(D)有大量的存储空间 7.下面哪种操作系统最方便移植到嵌入式设备中。() (A) DOS (B)unix (C) Windows xp (D)linux 8.下列描述不属于RISC计算机的特点的是()。 A.流水线每周期前进一步。B.更多通用寄存器。 C.指令长度不固定,执行需要多个周期。 D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。 9.存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存 储,则2000H存储单元的内容为()。 A、0x21 B、0x68 C、0x65 D、0x02 10.IRQ中断的入口地址是()。FIQ的入口地址为0x0000001C A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014 11. Make预置了一些内部宏,其中$@表示:() A.没有扩展名的当前目标文件 B.当前目标文件 C.当前目标文件最近更新的文件名 D.当前目标文件最近更新的文件名 12.ARM处理器的工作模式有()种。 A. 5 B.6 C. 7 D.8 13.下列CPSR寄存器标志位的作用说法错误的是()。 A. N:负数 B. Z: 零 C. C: 进位 D. V: 借位

华清ARM体系结构试题

嵌入式ARM体系结构试题(时间:60 分钟) 一、单项选择题(每题 2 分,共40 分) 1. 在三级存储结构中,CPU不能直接访问的存储器是(C) A. 高速缓存(cache) B. 主存(内存) C. 辅助存储器(硬盘) 2. 在三级流水线机制下,一条指令的执行的顺序是(A) A. 取指- 译码- 执行 B. 取指- 执行- 译码 C. 取指- 译码- 回写 3.ARM指令集中每条指令都是(C)位宽度 A.8 B.16 C.32 D.64 4.ARM指令在存储器中存储时必须是(C)字节对齐 A.1 B.2 C.4 D.32 5.ARM处理器复位后,处理器处于(B)模式 https://www.360docs.net/doc/b817531038.html,er B.SVC C.System D.IRQ 6.ATPCS协议中规定,栈使用(D)栈 A. 空增 B. 空减 C. 满增 D. 满减 7. 假如想对r4-r7 寄存器进行压栈处理,下列指令正确的是(D) A.stm sp,{r4-r7} B.stmfa r11,{r4-r7} C.stmfd sp,{r4-r7} D.stmfd sp!,{r4-r7} 8.CPSR寄存器中,控制ARM处理器处于ARM状态还是THUMB状态的是(C)位 A.I B.F C.T D.Z 9. 当处理器在执行ARM指令集时,处理器每执行完一条指令后PC的值自增(C) A.1 B.2 C.4 D.32 10.ARM处理器属于(A)处理器 A. 精简指令集 B. 复杂指令集 11. 小端对其是指多字节的数据在存储器中存储时是(A) A. 低地址存储低有效位 B. 低地址存储高有效位 12. 在8 中模式中哪种模式属于非特权模式(A) https://www.360docs.net/doc/b817531038.html,er B.SVC C.IRQ D.System 13. 在IRQ模式下,当前程序的运行状态是由哪个寄存器来决定(B) A.IRQ 模式下的SPSR B.CPSR C.FIQ 模式下的SPSR

ARM处理器结构

ARM处理器结构 体系结构 1 CISC(Complex Instruction Set Computer,复杂指令集计算机) 在CISC指令集的各种指令中,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%。 2 RISC(Reduced Instruction Set Computer,精简指令集计算机) RISC结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻地方式种类减少;以控制逻辑为主,不用或少用微码控制等RISC体系结构应具有如下特点: 1 采用固定长度的指令格式,指令归整、简单、基本寻址方式有2,3种。 2 使用单周期指令,便于流水线操作执行。 3 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。 除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗: 4 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。 5 可用加载/存储指令批量传输数据,以提高数据的传输效率。 6 可在一条数据处理指令中同时完成逻辑处理和移位处理。 7 在循环处理中使用地址的自动增减来提高运行效率。 寄存器结构 ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括: 1 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。

2 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。 指令结构 ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM 指令集的功能子集,但与等价的 ARM代码相比较,可节省30%,40%以上的存储空间,同时具备32位代码的所有优点。 x86是cisc构架, arm是risc构架用途一个是pc,一个是电子产品 X86架构方案与ARM架构方案区别,山水网讯MID方案 X86架构:通俗的将就是能够装Windows 2000、XP\Tablet \windows 7 操作系统的方案架构(CPU) 目前全球仅有3家公司有实力做出这样的架构,他们分别是:Intel 中国台湾威盛(VIA) 和AMD 而目前在低功耗领域AMD甚少介入,也就是在X86架构平板电脑市场仅仅是In X86架构:通俗的将就是能够装Windows 2000、XP\Tablet \windows 7 操作系统的方案架构(CPU) 目前全球仅有3家公司有实力做出这样的架构,他们分别是:Intel 中国台湾威盛(VIA) 和AMD 而目前在低功耗领域AMD甚少介入,也就是在X86架构平板电脑市场仅仅是Intel和威盛的角逐 而X86架构体系分高性能和低功耗版本,山水网讯科技主要研发基于X86架构低功耗系统的方案及产品:MID、UMPC、NetBook 低功耗X86架构体系优点:

ARM体系结构.

ARM是Advanced RISC Machines ( 高级精简指令系统处理器) 的缩写,是ARM公司提供的一种微处理器知识产权( IP) 核 ARM既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字 ARM微处理器的特点 1、体积小、低功耗、低成本、高性能 2、支持Thumb (16位) / ARM (32位) 双指令集,能很好的兼容8位/16位器件 3、大量使用寄存器,指令执行速度更快 4、大多数数据操作都在寄存器中完成 5、寻址方式灵活简单、执行效率高 6、指令长度固定 ARM7系列: 属低端ARM处理器核,最适合用于对价位和功能消耗要求较高的消费类应用 主要应用领域为:工业控制、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用 DSP: Digital Signal Processor 命名解释: ARM7DMI:T表示支持16位压缩指令集(Thumb),D表示支持片上调试(Debug),M表示内嵌硬件乘法器(Multiplier),I 表示嵌入式ICE(仿真器),支持片上断点和调试点( in - circuit emulater ) ARM7系列处理器特点: 1、具有嵌入式ICE逻辑,调试开发方便 2、功耗极低,适合便携式产品开发

3、3级流水线结构 4、支持Thumb 5、支持多种操作系统 6、指令与ARM9、ARM10系列兼容,便于升级 3级流水线(Pipeline) 的执行过程 取指:从存储器装载指令 译码:对刚装载的指令进行识别 执行:处理指令并把结果写回相应的寄存器 ARM9系列处理器特点: 在高性能和低功耗特性方面提供最佳的性能 主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码相机和数字摄像机 ARM9有5级流水线:FETCH、DECODE、EXECUTE、MEMORY、WRITE ARM 与THUMB 1、THUMB指令是ARM指令的自给 2、可以相互调用,只要遵循一定的调用规则 3、THUMB指令与ARM指令时间效率和空间效率关系:存储空间是ARM代码的60% ~ 70%,指令数比ARM代码多约30% ~ 40%,存储器为32位时ARM代码比THUMB代码

相关主题
相关文档
最新文档