ARM处理器简介及RISC特点

2020-09-02来源: elecfans关键字:ARM  处理器  RISC特点

第一ARM处理器简介及RISC特点

ARM处理器简介

ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。


RISC设计主要特点

1、指令集——RISC减少了指令集的种类,通常一个周期一条指令,采用固定长度的指令格式,编译器或程序员通过几条指令完成一个复杂的操作。而CISC指令集的指令长度通常不固定。

2、流水线——RISC采用单周期指令,且指令长度固定,便于流水线操作执行。

3、寄存器——RISC的处理器拥有更多的通用寄存器,寄存器操作较多。例如ARM处理器具有37个寄存器。

4、Load/Store结构——使用加载/存储指令批量从内存中读写数据,提高数据的传输效率。

5、寻址方式简化,指令长度固定,指令格式和寻址方式种类减少。


第二ARM指令集特点

ARM处理器是基于RISC的,但不是纯粹的RISC体系结构。为了使ARM处理器能够更好的满足嵌入式系统的需要,ARM指令集和单纯的RISC指令集有以下几点不同:

1、一些特定的指令周期数可变。例如多寄存器装载或存储的Load/Store指令执行周期就是不确定的,这个会根据相关的寄存器个数而定。如果是访问连续的内存地址,就可以改善性能,因为连续的内存访问比随机访问要快。根据这个特点,由于在函数的起始和结尾通常会有多个寄存器与内存进行数据交换的操作,因此相应操作的指令条数会减少,提高了代码的密度。

2、内嵌的桶形移位寄存器产生了更复杂的指令。桶形移位寄存器是一个硬件部件,在一个寄存器被一条指令使用之前,桶形移位寄存器可以处理这个寄存器中的数据。桶形移位寄存器扩展了许多指令的功能,以此改善内核的性能,提高代码密度。

3、Thumb16位指令集。ARM处理器有两种工作状态,一种是ARM状态,一种是Thumb状态。ARM状态下指令长度为32位,Thumb状态下指令长度为16位。这种特点使得ARM既能执行16位指令,又能执行32位指令,从而增强了ARM内核的功能。

4、条件执行。只有当某个特定条件满足时指令才会被执行。这个特性可以减少分支指令的数目,从而改善性能,提高代码密度。

5、增强指令。一些功能强大的数字信号处理器(DSP)指令被加入到标准的ARM指令中,以支持快速的16*16乘法操作及饱和运算。ARM的这些增强指令,使得ARM处理器不需要加上DSP即可实现。


第三ARM处理器特点

1、ARM指令都是32位定长的

2、寄存器数量丰富(37个寄存器)

3、普通的Load/Store指令

4、多寄存器的Load/Store指令

5、指令的条件执行

6、单时钟周期中的单条指令完成数据移位操作和ALU操作

7、通过变种和协处理器来扩展ARM处理器的功能

8、扩展了16位的Thumb指令来提高代码密度

第四ARM处理器命名规则 

ARM编程模型 

1、字(Word):在ARM体系结构中,字的长度为32位。

2、半字(Half-Word):在ARM体系结构中,半字的长度为16位。

3、字节(Byte):在ARM体系结构中,字节的长度为8位。


ARM处理器存储格式

ARM体系结构将存储器看作是从0地址开始的字节的线性组合。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB。

ARM体系结构可以用两种方法存储字数据,分别为大端模式和小端模式。

大端模式(高地高低):字的高字节存储在低地址字节单元中,字的低字节存储在高地址字节单元中。

小端模式(高高低低):字的高字节存储在高地址字节单元中,字的低字节存储在低地址字节单元中。


ARM处理器工作状态

从编程的角度来看,ARM微处理器的工作状态一般ARM和Thumb有两种,并可在两种状态之间切换。

1、ARM状态:此时处理器执行32位的字对齐ARM指令,绝大部分工作在此状态。

2、Thumb状态:此时处理器执行16位的半字对齐的Thumb指令。

ARM处理器工作模式

1、用户模式(usr,User Mode):ARM处理器正常的程序执行状态。

2、快速中断模式(fiq,Fast Interrupt Request Mode):用于高速数据传输或通道处理。当触发快速中断时进入此模式。

3、外部中断模式(irq,Interrupt Request Mode):用于通用的中断处理。当触发外部中断时进入此模式。

4、管理模式(svc,Supervisor Mode):操作系统使用的保护模式。在系统复位或执行软件中断指令SWI时进入。

5、数据访问中止模式(abt,Abort Mode):当数据或指令预取中止时进入该模式,可用于虚拟存储及存储保护。

6、系统模式(sys,System Mode):运行具有特权的操作系统任务。

7、未定义指令中止模式(und,Undefined Mode):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。


除了用户模式之外,其余六种模式都是特权模式。除了用户模式和系统模式之外,其余五种模式都是异常模式。


在特权模式下程序可以访问所有的系统资源。非特权模式和特权模式之间的区别在于有些操作只能在特权模式下才被允许,例如直接改变模式和中断使能等。而且为了保证数据安全,一般MMU会对地址空间进行划分,只有特权模式才能访问所有的地址空间。而用户模式如果需要访问硬件,必须切换到特权模式下,才允许访问硬件。


ARM处理器寄存器组织

ARM共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器,包括R0-R15,R8_fiq-R14_fiq,R13_svc,R14_svc,R13_abt,R14_abt,R13_irq,R14_irq,R13_und,R14_und,CPSR,SPSR_fiq,SPSR_svc,SPSR_abt,SPSR_irq,SPSR_und。如图。

通用寄存器包括R0-R15,可以分为3类:

1。未分组寄存器R0-R7

在所有运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途。因此在中断或异常处理进行异常模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,所以可能造成寄存器中数据的破坏。


2.分组寄存器R8-R14

对于分组寄存器,他们每次所访问的物理寄存器都与当前的处理器运行模式相关。具体如上图。


R13常用作存放堆栈指针,用户也可以使用其他寄存器存放堆栈指针,但在Thumb指令集下,某些指令强制要求使用R13存放堆栈指针。


R14称为链接寄存器(LR,Link Register),当执行子程序时,R14可得到R15(PC)的备份,执行完子程序后,又将R14的值复制回PC,即使用R14保存返回地址。


3.程序计数器PC(R15)

寄存器R15用作程序计数器(PC),在ARM状态下,位[1:0]为0,位[31:2]用于保存PC;在Thumb状态下,位[0]为0,位[31:1]用于保存PC。


由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8个字节。


程序状态寄存器CPSR和SPSR

CPSR(Current Program Status Register,当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位以及其他一些相关的控制和状态位。


每一种运行模式下都有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register,备份的程序状态寄存器),当异常发生时,SPSR用于保存当前CPSR的值,从异常退出时则可由SPSR来恢复CPSR。


由于用户模式和系统模式不属于异常模式,这两种状态下没有SPSR,因此在这两种状态下访问SPSR,结果是未知的。


CPSR保存数据的结构:

1.N(Negative):当用两个补码表示的带符号数进行运算时,N=1表示结果为负,N=0表示结果为正数或零。

2.Z(Zero):Z=1表示运算结果为0,Z=0表示运算结果非零。

3.C(Carry):有4种方法可以设置C的值:

(1)加法指令(包括比较指令CMP)

(2)当运算产生进位时(无符号数溢出),C=1,否则C=0

(3)减法运算(包括比较指令CMP)

(4)当运算产生了借位(无符号数溢出),C=0,否则C=1

对于包含移位操作的非加/减运算指令,C为移出值的最后一位。对于其他的非加/减运算指令,C的值通常不变。

4. V(Overflow):有2种方法设置V的值:

(1)对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。

(2)对于其他的非加减法运算指令,V的值通常不变。

5. I(Interrupt Request):I=1表示禁止响应irq,I=0表示允许响应

6。 F(Fast Interrupt Request):F=1表示禁止响应fiq,F=0表示允许响应

7。 T(Thumb):T=0表示当前状态位ARM状态,T=1表示为Thumb状态

8。 M4-M0:表示当前处理器的工作模式,如图:

工作模式的切换

(1)执行软中断(SWI)或复位命令(Reset)指令。如果在用户模式下执行SWI指令,CPU就进入管理(Supervisor)模式。当然,在其他模式下执行SWI,也会进入该模式,不过一般操作系统不会这么做,因为除了用户模式属于非特权模式,其他模式都属于特权模式。执行SWI指令一般是为了访问系统资源,而在特权模式下可以访问所有的系统资源。SWI指令一般用来为操作系统提供API接口。

(2)有外部中断发生。如果发生了外部中断,CPU就会进入IRQ或FIQ模式。

(3)CPU执行过程中产生异常。最典型的异常是由于MMU保护所引起的内存访问异常,此时CPU会切换到Abort模式。如果是无效

[1] [2]
关键字:ARM  处理器  RISC特点 编辑:什么鱼 引用地址:http://news.2689mr.com/mcu/ic508630.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:深度了解ARM架构基础知识
下一篇:拒绝开发板, 用 SkyEye 就可以模拟 ARM Linux!

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

Arm CEO:英伟达的收购不会改变Arm对中国市场的投入
英伟达正式宣布将以400亿美元的价格从软银手中收购Arm。  根据协议,英伟达将向软银公司支付价值215亿美元的英伟达股票,以及120亿美元现金,其中包括签约时即刻支付的20亿美元。 对于此次收购,英伟达CEO黄仁勋表示,收购Arm是一生仅有的机会,会花很多精力和时间,但有信心回应监管挑战。 Arm CEO 西蒙·赛格斯则表示,英伟达的收购不会改变Arm对中国市场的投入,中国合资公司对Arm很重要。 据悉,此项交易尚须获得中国、美国、欧盟和英国的批准,预计监管审批可能需要长达18个月的时间。 另外,西蒙·赛格斯早前曾表示,我们大部分产品不受美国的出口管制约束,这不
发表于 2020-09-15
<font color='red'>Arm</font> CEO:英伟达的收购不会改变<font color='red'>Arm</font>对中国市场的投入
基于ARM处理器实现GPS数据信号的接收与解码详细解析
2005(简称VS2005),编程语言为C++。VS2005是Windows操作系统下的一套完整的开发工具,用于生成ASP Web应用程序、XML Web services、桌面应用程序和移动应用程序。通过使用这些工具和.NETFramework精简版(.NET Framework的子集),可以在个人数字助理(PDA)、移动电话和其他资源受约束的设备中,创建、生成、调试和部署在.NET Framework精简版上运行的应用程序。1.2 硬件平台1.2.1 嵌入式开发板由于设定移动设备使用的运行环境为WINCE 5.0,过程中需要处理大量的数据,所以对开发板要求较高。目前WinCE 5.0支持的处理器主要有ARM、 X86
发表于 2020-09-15
基于<font color='red'>ARM</font>处理器实现GPS数据信号的接收与解码详细解析
ARM紧致内存TCM的解释
的数据类型,以及中断堆栈等重要数据结构。  ARM的ram包括静态ram,动态ram, TCM---紧耦合内存(TCM: TIghtly Coup ledMemories)。  TCM是一个固定大小的RAM,紧密地耦合至处理器内核,提供与cache相当的性能,相比于cache的优点是,程序代码可以精确地控制什么函数或代码放在哪儿(RAM里)。当然TCM永远不会被踢出主存储器,因此,他会有一个被用户预设的性能,而不是象cache那样是统计特性的性能提高。  紧致内存介绍  紧致内存是指片上快速存储区,与片上缓存具有同等的性能,但因为程序可完全控制紧致内存,因而比统计复用的缓存有更好的可预测性。这是ARM5TE引入的特性,目的
发表于 2020-09-15
ARM处理器中的寄存器基本知识详解
ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括:● 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。● 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。ARM微处理器支持7种运行模式,分别为:● usr(用户模式):ARM处理器正常程序执行模式。● fiq(快速中断模式):用于高速数据传输或通道处理● irq(外部中断模式):用于通用的中断处理● svc(管理模式):操作系统使用的保护模式● abt (数据访问终止模式): 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。● sys(系统模式): 运行具有特权的操作系统任务
发表于 2020-09-15
<font color='red'>ARM</font>处理器中的寄存器基本知识详解
详解bootloader的执行流程与ARM Linux启动过程分析
ARM Linux启动过程分析是本文要介绍的内容,嵌入式 Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。本文以S3C2410 ARM处理器为例,详细分析了系统上电后 bootloader的执行流程及 ARM Linux的启动过程。1、引 言Linux 最初是由瑞典赫尔辛基大学的学生 Linus Torvalds在1991 年开发出来的,之后在 GNU的支持下,Linux 获得了巨大的发展。虽然 Linux 在桌面 PC 机上的普及程度远不及微软的 Windows 操作系统,但它的发展速度之快、用户数量的日益增多,也是微软所不能轻视的。而近些年来
发表于 2020-09-15
详解bootloader的执行流程与<font color='red'>ARM</font> Linux启动过程分析
基于ARM单片机的高精度电子秤设计与实现
1、系统框图简介当秤盘上放入被秤物体后,电阻应变片受重力的影响产生形变,电阻值发生变化。应变片搭建的桥式电路会输出微弱的电压信号,微弱电压信号由HX711内部集成放大器放大后经过内部ADC进行采样转换后送到到MCU,接收到的数据信息经过线性拟合处理后送到LCD液晶显示。系统能完成称重、设置单价计算金额及金额累加、去皮及去皮范围限制等基本功能,还能实现时间、温度、报警、二维码支付等扩展功能。系统总体框图如图1所示。图1:系统总体框图2、理论分析与计算2.1、电桥驱动电路分析图2:差动全桥测量电路如图2所示当被测负载作用在弹性臂梁上使其发生弹性形变;通过粘性物质使粘贴在感压装置上的电阻应变片发生形变,从而转化成应变片的阻值大小变化;差动
发表于 2020-09-15
基于<font color='red'>ARM</font>单片机的高精度电子秤设计与实现
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 2689mr.com, Inc. All rights reserved
彩票大赢家 时时彩开群软件 ag送彩金 彩票大赢家 首存送彩金最多的网站 送彩金彩票网 博彩送彩金18元 澳门真人网上娱乐送彩金 赛车网站首存送彩金 充值送彩金活动