ARM——体系架构

发布者:sheng44最新更新时间:2021-11-03 来源: eefocus关键字:ARM  体系架构  微处理器 手机看文章 扫描二维码
随时随地手机看文章

1.ARM简介     

ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。


1.1 ARM(Advanced RISC Machines)的几种含义:

1、ARM是一种RISC MPU/MCU的体系结构,如同x86架构是一种CISC体系结构一样。另外,还有MIPS架构、PowerPC架构等等。


2、ARM是Advanced RISC Machine Limited公司的简称。


3、ARM是Advanced RISC Machine Limited公司的产品,该产品以IP Core(Intellectual Property Core,知识产权核)的形式提供的。


4、ARM还用以泛指许多半导体厂商买了这种设计后生产出来的“ARM处理器”系列的芯片及其衍生产品。


半导体厂商固然可以光购买ARM公司的设计而直接生产ARM处理器芯片,但是更好的方法是以ARM处理器为核心,在同一块芯片上配上自己开发的外围模块,形成面向特定应用和市场的专用芯片,甚至“片上系统(System on a Chip,SoC)”。这样,作为专用处理器/控制器芯片的生产商既可以减少开发中的风险,又可以大大缩短开发周期,降低成本。所以,“ARM处理器”一般是作为“内核”存在于一些专用处理器/控制器的内部,因而又常常叫做“ARM核”。特别地,如果一个处理器核不带浮点运算功能,有时候就对此特别加以强调,称之为“整形核”。


1..2  ARM微处理器的特点

(1)ARM指令都是32位定长的


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


(3)普通的Load/Store指令


(4)多寄存器的Load/Store指令


(5)指令的条件执行


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


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


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


ARM作为RISC微处理器与CISC微处理器技术对比如下:

1.3 ARM微处理器系列

1.3.1 Classic ARM Processors (经典 ARM 处理器)

     • ARM11™ 系列 - 基于 ARMv6 架构的高性能处理器

     • ARM9™ 系列 - 基于 ARMv5 架构的常用处理器

     • ARM7™ 系列- 面向通用应用的经典处理器 

       ARM 经典处理器适用于那些希望在新应用中使用经过市场验证的技术的组织。这些处理器提供了许多的功能、卓越的能效和范围广泛的操作性能,适用于成本敏感型解决方案。这些处理器每年都有数十亿的发货量,因此可确保设计者获得最广泛的生态系统和资源,从而最大限度地减少集成过程中出现的问题并缩短上市时间。


1.3.2  Embedded Cortex Processors (ARM Cortex 嵌入式处理器)

    • Cortex-R 系列 - 面向实时应用的卓越性能

    • Cortex-M 系列 - 面向具有确定性的微控制器应用的成本敏感型解决方案

    Cortex 嵌入式处理器旨在为各种不同的市场提供服务。


    Cortex-M 系列处理器主要是针对微控制器领域开发的,在该领域中,既需进行快速且具有高确定性的中断管理,又需将门数和可能功耗控制在最低。


    而 Cortex-R 系列处理器的开发则面向深层嵌入式实时应用,对低功耗、良好的中断行为、卓越性能以及与现有平台的高兼容性这些需求进行了平衡考虑。


 • Cortex-A 系列

ARM编程模型

1. ARM数据类型

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


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


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


2. ARM处理器存储格式

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


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


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


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


3. ARM处理器工作状态

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


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


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


4. 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会对地址空间进行划分,只有特权模式才能访问所有的地址空间。而用户模式如果需要访问硬件,必须切换到特权模式下,才允许访问硬件。


5. 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个字节。


6. 程序状态寄存器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:表示当前处理器的工作模式,如图:


7. 工作模式的切换

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


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


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


(4)有一种模式是CPU无法自动进入的,这种模式就是System模式,要进入System模式必须由程序员编写指令来实现。要进入System模式只需改变CPSR的模式位为System模式对应的模式位即可。进入System模式一般是为了利用System模式和用户模式下的寄存器相同的特点,因此一般情况下,操作系统在通过SWI进入Supervisor模式后,做一些操作后,就进入System模式。


(5)在任何特权模式下,都可以通过修改CPSR的MODE域来进入其他模式。不过需要注意的是由于修改的CPSR是该模式下的影子CPSR,即SPSR,因此并不是实际的CPSR,所以一般的做法是修改影子CPSR,然后执行一个MOVS指令来恢复执行某个断点并切换到新模式。

关键字:ARM  体系架构  微处理器 引用地址:ARM——体系架构

上一篇:嵌入式linux面试题解析(一)——ARM部分一
下一篇:ARM内核架构(二)——ARM处理器7种工作模式

推荐阅读最新更新时间:2024-11-09 10:35

ARM的37个寄存器和异常处理机制详解
1.ARM的37个寄存器 ARM的37个寄存器中,30个寄存器是“通用”,1个固定用作PC(程序控制寄存器),一个固定用作CPSR(程序状态寄存器),5个固定用作5种异常模式下的SPSR(程序状态保存寄存器),特别注意user模式和sys模式共用寄存器集。上面的37个寄存器不是同时可见的,只有在特定模式下才能访问某些寄存器。例如sp和lr寄存器各有6个,但是只有在相应模式下才能访问相应的寄存器,在user模式下访问的是user的sp和lr,FIQ模式下访问的是FIQ的sp和lr,这叫做影子寄存器。模式切换时寄存器会自动切换,其中用r13作sp,用r14作lr并不是一定的,用其他的寄存器作sp和lr也是可以的,只是大家约定俗成的
[单片机]
<font color='red'>ARM</font>的37个寄存器和异常处理机制详解
ARM开发常用的22个概念
1.ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中断控制器; SPI:全双工串行接口; CAN:控制器局域网,一种串行通讯协议; PWM:脉宽调制器; ETM:嵌入式跟踪宏; CPSR:当前程序状态寄存器; SPSR:程序保护状态寄存器; 2.MAM 使用注意事项: 答:当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM,然后将新值写入 MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。 对于低于 20MHz
[单片机]
采用C8051F410为微处理器实现光纤通信传输组件的设计
光纤通信在现代通信领域的地位日趋重要,因其具有带宽大、信噪比低、抗干扰的特点在工程建设中应用广泛。某新品研制中需要一款能够同时传输多路模拟电压信号、脉冲控制信号及故障指示信号的传输组件,若采用传统的电缆传输方式将不可避免地存在体积大、重量沉及传输性能受外界电磁辐射干扰大的问题。基于以上情况,文中采用以光纤通信的方式设计了一款实用的传输组件,满足新品设计要求。 1 整体架构 光纤传输组件是指以光纤作为传输信道的功能器件,通常包括发射端、接收端、光纤跳线3部分。主要原理即是在采集端实现电光转换,在接收端实现光电转换,通过光纤实现两端通信的连接。由于其特殊的传输材质和模式,使得光纤传输组件可满足在某些特殊工作环境下的要求。组件主要由
[单片机]
采用C8051F410为<font color='red'>微处理器</font>实现光纤通信传输组件的设计
基于LPC2210嵌入式微处理器实现智能安防系统的设计
1 引言 随着社会经济的发展和人民生活水平的不断提高.同时引发入室抢劫、盗窃等暴力事件频频发生.不法分子的作案手段也是越来越向高科技化、高智能化发展。同时,智能家居内部的安防系统通常价格不低.因此必须有一种价格适中且工作稳定的智能安防系统来最大限度的减小损失。本文主要针对前述现象设计基于ARM技术的智能安防系统,该系统主要采用ARM系列芯片中的LPC2210嵌入式微处理器.选用可同时处理多任务的ucos-Ⅱ操作系统。 2 系统的总体设计方案 系统的总体设计体系图如图1所示.本系统主要由物业管理中心机、公用电话网、以太网、RS485网、室内嵌入式安防控制器、报警检测和可视对讲设备组成。其中485网构成室内网络,以太网和公用电话网
[单片机]
基于LPC2210嵌入式<font color='red'>微处理器</font>实现智能安防系统的设计
新思科技与Arm持续深化合作,加速先进节点定制芯片设计
全球领先的新思科技IP解决方案和AI驱动型EDA全面解决方案与“Arm全面设计”相结合,大幅加速复杂SoC设计的上市时间 摘要: 新思科技加入“Arm全面设计”(Arm Total Design)生态系统并提供IP和芯片设计服务,通过Synopsys.ai全栈式AI驱动型EDA全面解决方案和硬件辅助验证产品组合降低定制SoC的进入门槛并缩短上市时间。 基于全球IP使用协议,新思科技将为Arm提供用于流片前互操作性测试和性能分析的IP组合,搭载对接所有Arm处理器和子系统的片上演示系统,从而降低设计风险。 Arm支持中心提供用于高性能Arm内核的新思科技Fusion 快速入门设计实现套件,助力低至2纳米的芯片设计实
[半导体设计/制造]
新唐科技推出高泛用性Arm Cortex-M4 M433微控制器系列
强化MCU多元应用产品布局,持续深入细分市场,覆盖入门到高性能应用开发 新竹,台湾,2024年3月20日 - 随着工业5.0、人工智能和物联网应用的不断扩展,市场对多样化MCU产品的需求日益增加。新唐科技致力于强化MCU多元应用战略布局,在各类垂直领域中进行了规格的优化。从入门级到高性能产品,我们的产品线均有广泛的覆盖,并持续深入细分市场,为客户提供更多可持续发展的产品组合。最新推出的高泛用性Arm® Cortex®-M4 M433 CAN/USB FS微控制器系列,特别针对工业控制、BMS、MiniLED 控制等领域进行了规格优化。这款产品系列是一款全方位适用于多场景应用的产品,为实现创新提供了充足的空间,同时凸显了新唐科技
[单片机]
Microchip推出基于Arm®的新型PIC®单片机系列产品
Microchip推出基于Arm®的新型PIC®单片机系列产品,以更简便方式添加Bluetooth®低功耗连接功能 PIC32CX-BZ2单片机系列内置蓝牙低功耗(BLE)和其他无线功能,提供出色的模拟性能和全面的设计支持 无线连接已成为许多产品的必备功能,但往往会增加系统设计的成本和复杂性,因为它通常必须作为更大应用的附加功能。Microchip Technology Inc.(美国微芯科技公司)今日推出首款基于Arm Cortex®-M4F的PIC单片机(MCU)系列产品,以解决这一无线连接设计挑战。新系列产品将蓝牙低功耗功能直接集成为系统的最基本组件之一,并得到业界最全面的开发生态系统的支持。 Microc
[单片机]
Microchip推出基于<font color='red'>Arm</font>®的新型PIC®单片机系列产品
ARM Linux S3C2440 之中断分析
硬件篇: S3C2440 是arm920T架构,先温习一下s3c2440中的中断控制器原理和相关硬件构架。 中断控制器(InterruptControler): S3c2440A的中断控制器有60个中断源,如DMA中断,UART中断,IIC中断等,60个中断源在寄存器中用相应的位来表示。当有多个中断要求到来时,经过仲裁过程后,中断控制器向CPU请求FIQ或者IRQ中断。仲裁过程根据硬件中的优先级模块来决定,其结果最后写进中断未决(intterrupt pending)寄存器中,通过中断未决寄存器的值可以清楚哪个中断发生了。 S3c2440中断控制器流程图: 挂起 中断模式(InterruptMode): ARM920T(CPU)
[单片机]
<font color='red'>ARM</font> Linux S3C2440 之中断分析
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved