学习掌握ARM体系结构与编程模型

不同型号的单片机有不同的玩法,而其中ARM处理器的学习尤为重要,想要学习ARM就必须要了解ARM体系结构与编程模型。ARM处理器是一种低功耗、高性能的32位RISC处理器。下面我们来介绍一下ARM体系结构与编程模型

 

第一: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。

 

以上就是ARM体系结构与编程模型,对于新手来说可能有点难度,如果想要观看免费入门学习视频来创客学院,免费高清大屏视频,针对任何阶段的成员学习。

猜你喜欢

转载自www.cnblogs.com/wkmaaa/p/9143500.html