ARM体系结构

合集下载

第2章 ARM体系结构

第2章  ARM体系结构

• 控制位

程序状态寄存器PSR(Program Status Register)的最低8位I、F、T和 M[4:0]用作控制位。当异常出现时改变控制位。处理器在特权模式 下时也可由软件改变。
• 中断禁止位 I:置1,则禁止IRQ中断; F:置1,则禁止FIQ中断。 • T位 T=0 指示ARM执行; T=1 指示Thumb执行。 • 模式控制位 M4、M3、M2、Ml和M0(M[4:0])是模式位,决定处理器 的工作模式,如表2.3.1所列。
6 (最低)
6 5
数据中止
IRQ (外部中断请求) FIQ (快速中断请求)
中止(数据)
IRQ FIQ
中止模式
IRQ FIQ
0x0000,0010
0x0000,0018 0x0000,001C
2
4 3
2.4.2 异常类型的含义
(1)复位
• • 处理器的复位电平有效时,产生复位异常 当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常
2.4 ARM微处理器的异常处理
• 异常:在一个正常的程序流程执行过程中,由内 部或外部源产生的一个事件使正常的程序产生暂 时的停止,称之为异常。
2.4.1 ARM体系结构的异常类型
• ARM体系结构支持7种类型的异常
• 异常出现后,强制从异常类型对应的固定存储器地址开始 执行程序。这些固定的地址称为异常向量(Exception Vectors)。
M[4:0]模式控制位
M[4: 0] 10000 10001 10010 10011 10111
处理器工作 模式 用户模式 FIQ模式 IRQ模式 管理模式 中止模式
可访问的寄存器 PC,CPSR,R14~R0 PC,R7~R0,CPSR, SPSR_fiq,R14_fiq~ R8_fiq PC,R12~R0,CPSR, SPSR_irq,R14_irq, R13_irq PC,R12~R0, CPSR, SPSR_svc,R14_svc, R13_svc PC,R12~R0, CPSR, SPSR_abt,R14_abt, R13_abt

单片机课件第二章 ARM体系结构

单片机课件第二章 ARM体系结构

2.5
ARM微处理器指令系统
2.5.1 基本寻址方式
寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地 址的方式,ARM处理器有9 种基本寻址方式。
1.寄存器寻址
操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编 号,指令执行时直接取出寄存器值操作。
例如指令: MOV R1,R2 SUB R0,R1,R2
11111
系统模式
PC,R14~R0,CPSR(ARM v4及以上版本)
并非所有的模式位组合都能定义一种有效的处理器模式。其他组合的 结果不可预知。
2.2 ARM微处理器的寄存器结构
2.2.4 Thumb状态的寄存器集
2.2 ARM微处理器的寄存器结构
2.2.4 Thumb状态的寄存器集
Thumb 状态的寄存器在ARM 状态的寄存器上的映射


在Thumb状态下,程序计数器PC(Program Counter)使用位[1]选 择另一个半字。ARM处理器在两种工作状态之间可以切换。
Thumb状态:当操作数PSR控制位T为1时,执行BX指令进入Thumb 状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、 FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。(异 常都是在ARM 状态中执行) ARM状态:当操作数PSR控制位T为0时,执行BX指令进入ARM状态 ;处理器发生异常(IRQ、FIQ、Reset、Undef、Abort和SWI)。在 此情况下,把PC内容复制到异常模式的链接寄存器中,并且异常处 理将从异常向量地址开始。
sys(系统模式):运行具有特权的操作系统任务。

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

ARM体系架构解析ppt课件

ARM体系架构解析ppt课件
1)程序存储器与数据存储器分开.
2)提供了较大的存储器带宽,各自有自己的
总线。
3)适合于数字信号处理.
4)大多数DSP都是哈佛结构.
5)ARM9是哈佛结构
6)取指和取数在同一周期进行,提高速度,
改进哈佛体系结构分成三个存储区:程序、数据、
程序和数据共用。
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
6)将结果回写到寄存器组(res)
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
流水线技术

三级流水线技术
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
因此,把它称为流水线工作方式。
处理器按照一系列步骤来执行每一条指令。典
型的步骤为:
1)从存储器读取指令(fetch)
2)译码以鉴别它是哪一类指令(dec)
3)从寄存器组取得所需的操作数(reg)
4)将操作数进行组合以得到结果或存储器地址(exe)
5)如果需要,则访问存储器存取数据(mem)
冯·诺依曼体系的特点
1)数据与指令都存储在同一存储区中,取指
令与取数据利用同一数据总线。
❖ 2)被早期大多数计算机所采用
❖ 3)ARM7——冯诺依曼体系

结构简单,但速度较慢。取指不能同时取数据
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用

ARM体系结构详解精

ARM体系结构详解精

ARM嵌入式系统第2章ARM体系结构ARM微处理器的编程模型♦ARM徴处理器的工作状态♦ARM体系结构的存储器格式♦ARM体系结构的指令长度及数据宽度♦ARM微处理器的处理器模式♦ARM体系结构的寄存器组织♦ARM微处理器的异常状态字、半字、字节字(Word)在ARM体系结构中,字的长度为32位半字(Half-Word)在ARM体系结构中,半字的长度为16位字节(Byg)在ARM体系结构中,字节的长度为8位。

ARM微处理器的工作状态(1)字对齐:四字节对齐半字对齐:两字节对齐两种状态:♦ARM状态:处理器执行32位的字对齐的令♦Thumb状态:处理器执行16位的、半字对齐的Thumb指令处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。

I ARM微处理器的工作状态(2 )状态切换:BX {<cond>} <Rm><cond>指令的条件码。

忽略时无条件执行。

<Rm>子存器中为跳转的目标地址,当<Rm><存器的bit[O]为0时, 目标地址处的指令为ARM指令;当<Rm>^存器的bit[O]为1时,目标地址处的指令为Thumb 指令。

伪代码:if ConditionPassed(cond) thenT Flag=Rm[O]PC=Rm AND OxFFFFFFFEARM微处理器在复位或上电时处于ARM状态,发生异常时处于ARM状态。

右ARM体系结构的存储器格式(1)ARM体系结构所支持的最大寻址空间为4GB (2^字节)♦大端格式(Big Endian)字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。

♦小端格式(Little Endian)低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。

字地址字地址右ARM 体系结构的存储器格式(2)(0H)=0123H (4H)=4567H (8H)=89ABHBig Endian(0H)=3210H (4H)=7654H (8H)=BA98HLittle Endian右ARM 体系结构的存储器格式(3)8 9 AB4 5 6 7 0123一 “A ・■ • rO= 0x11223344 I 11 I 22 33 : 44 ILittle endian Big endianR2 =异FI*右 ARM 体系结构的指令长度及数据宽度♦指令长度:32位(在ARM 状态下) 16位(在Thumb 状态下)♦数据宽度: 字节(8位) 半字(16位) 字(32位)三种数据宽度对存储器及外部设备的访问。

arm体系结构的特点

arm体系结构的特点

arm体系结构的特点ARM体系结构是一种基于RISC(精简指令集电脑)的微型计算机体系结构,它以其高效性和低功耗的特点,成为现代移动设备、智能家居、嵌入式系统等领域的首选芯片。

ARM体系结构的特点如下:1. RISC(精简指令集电脑)体系结构:ARM体系结构以RISC体系结构为基础,相对于CISC(复杂指令集电脑)体系结构而言,指令集更加精简,每个指令执行时间更短。

这种短指令集的优点是更易于实现,并且需要更少的晶体管,从而降低了芯片成本和能源消耗。

2.可扩展型:ARM芯片的内存和外设都可以进行扩展,这使得ARM芯片非常灵活。

用户可以根据实际需求自由添加外围设备和扩展内存,以满足具体的应用要求。

3.处理速度快:ARM芯片通常是多核心的,每个核心都可以执行多个指令,具有各自的缓存,这使得ARM芯片的速度非常快。

在一些高效的应用场合,ARM芯片的速度甚至可以与桌面计算机的处理器相媲美。

4.低功耗:ARM体系结构的低功耗性质也是其的一大特点。

ARM芯片处理器消耗的能量非常少,由于嵌入式系统、移动设备等对能源的限制,ARM低功率处理器在这些设备中应用广泛。

5.易于编程:ARM处理器可以执行任何基本的计算机操作,比如移位、逻辑操作等,这使得编写程序变得简单易行。

在一些专门为ARM芯片设计的编程平台上,开发者很容易编写出高效率的代码。

6.架构标准一致:ARM芯片的设计标准化非常高,这使得基于ARM芯片设计的设备之间的兼容性极高。

如果您在设计设备时使用ARM芯片,您可以放心,您的设备可以与大多数其他ARM芯片的设备以及开发板互通。

7.多种寄存器存储器模式:不同于其他流行的体系结构,ARM体系结构支持多种寄存器存储器模式,从而可以有效地存储更多数据。

这是ARM芯片与其他芯片最显著的不同之处之一。

总之,ARM体系结构作为一种低功耗、高效、易于编程的微型计算机体系结构,成为多种领域的首选芯片。

随着技术的不断发展,ARM芯片的性能和价格都在不断提升,这将进一步拓展ARM芯片的应用范围。

ARM体系结构与编程

ARM体系结构与编程

ARM体系结构与编程
一、ARM体系结构
ARM(Advanced RISC Machine)是由英国ARM公司开发的一种低功耗、超低成本的处理器架构,是移动设备的首选处理器。

ARM架构的处理器有ARM7、ARM9、ARM11、 Cortex-A8 、Cortex-A15等,它们核心架构特点为以下几点:
1.保护模式。

ARM架构的处理器能够在用户模式和两个高级的保护模式之间来回切换。

2.对齐式存储。

ARM架构的处理器采用对齐方式,其二进制指令必须按照固定的位置排列,以便提高存储空间的利用率。

3.浮点处理单元。

ARM架构的处理器具有浮点数处理功能,使数值运算能够高效率地完成。

4.多级缓存。

ARM架构的处理器将原始数据复制到不同级别的快速缓存中,以便快速访问。

二、ARM程序的编程
1、ARM程序的编写
ARM程序的编写可以使用C语言编写,程序开发者需要掌握ARM架构各种中央处理器扩展指令集的使用方法,以便获得更好的效率。

2、编译ARM程序
ARM程序的编译是使用GNU的gcc编译器进行的,它可以将C语言编写的程序编译成ARM架构的机器码,并可以在ARM架构的处理器上运行。

3、调试ARM程序
ARM程序的调试使用GDB程序调试,它可以提供丰富的调试工具,可以跟踪程序执行的步骤,提供全面的程序反馈信息,可以帮助开发者快速定位程序运行出错的地方。

三、总结。

ARM体系架构

ARM体系架构
Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Fetch
该例中用6个时钟周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1
高速缓存(CACHE)
1、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提 高内存的平均性能。
2、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内容的
拷贝。
高 数据

CACHE
CPU
缓 存
主存


地址

数据
总线和总线桥
CPU
高速总线
低速设备
低速总线
软硬功能分配 复杂指令增加硬件的复杂度,使指令执行周期大大加长 ,直接访存次数增多,数据重复利用率低。
不利于先进指令级并行技术的采用 流水线技术
RISC基本设计思想
精简指令集:保留最基本的,去掉复杂、使用频度不高的指令 (选取运算指令、加载、存储指令和转移指令作主指令集) ,以减小CPI: CPUtime=Instr_Count * CPI * Clock_cycle
CISC的主要缺点
指令使用频度不均衡。 高频度使用的指令占据了绝大部分的执行时间,扩充的 复杂指令往往是低频度指令。
大量复杂指令的控制逻辑不规整,不适于VLSI工艺 VLSI的出现,使单芯片处理机希望采用规整的硬联逻辑 实现,而不希望用微程序,因为微程序的使用反而制约 了速度提高。(微码的存控速度比CPU慢5-10倍)。
IC—程序中指令数,CPI—每条指令执行所有周期数

1、ARM体系结构

1、ARM体系结构

ARM全球合作伙伴(合作模型)
ARM产品应用领域
Samsung ML5100A Diamond Multimedia Rio 600 JVC "Pixstar" GC-X1 Alba Bush Internet TV
3Com 10/100 PCI NIC
Nintendo Gameboy Advance Lexmark Z52 Color Jetprinter HP Jornado 820
5TE
XScale ARM1020E
6
Thumb-2 SIMD Instructions Multi-processing
7
CoreSight
Improved ARM/Thumb ARM9E-S Interworking ARM966E-S CLZ Saturated arithmetic DSP multiplyaccumulate instructions Extensions: Jazelle (5TEJ)
• •
该例中,用6周期执行了4条指令 指令周期数 (CPI) = 1.5
分支流水线举例
Cycle 1 2 L 3 4 5 6 7 8 9
Address
0x8000 0x8004 0x8008 0x8FEC 0x8FF0 0x8FF4
Operation
BL 0x8FEC SUB ORR AND ORR EOR
Iomega HipZip
Sony MZ-R90 MiniDisc
Ericsson R38Share
Nokia Mediamaster
Psion Revo Plus
ARM体系结构的发展
4T
Halfword and signed halfword / byte support System mode Thumb instruction set ARM7TDMI ARM720T ARM9TDMI ARM940T ARM920T
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPSR(Current Program Status Register)
CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处 理器模式标志位,以及其他一些相关的控制和状态位。 备份的程序状态寄存器SPSR(Saved Program Status Register) , 当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来 恢复CPSR。 用户模式和系统模式不属于异常模式,他们没有SPSR,当在这两种模式下访 问SPSR,结果是未知的。
ARM体系结构的存储器格式(1)
ARM体系结构所支持的最大寻址空间为4GB(232字节)

大端格式(Big Endian) 字数据的高字节存储在低地址中,而字数据的低字节则存 放在高地址中。 小端格式(Little Endian) 低地址中存放的是字数据的低字节,高地址存放的是字数 据的高字节。


特 权 异 模 常 式 模 式

7种处理器模式: 用户模式(usr): 用户应用程序 系统模式(sys): 特权模式 快速中断模式(fiq):用于快速数据传输 中断模式(irq): 通用的中断处理 管理模式(svc): 操作系统使用的保护模式 终止模式(abt): 数据访问中止或指令预取中止 未定义指令模式(und):未定义的指令执行时
Example: User to FIQ mode
Registers in use
Registers in use
User Mode
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 (sp) r14 (lr) r8_fiq r9_fiq r10_fiq r11_fiq r12_fiq r13_fiq r14_fiq
V
Q
ARM状态下的寄存器组织(13)

控制位 CPSR的低8位(包括I、F、T和M[4:0])称为控制 位,当发生异常时这些位可以被改变。如果处理器 处于特权模式,这些位也可以由程序修改。 中断禁止位I、F: I=1 禁止IRQ中断 F=1 禁止FIQ中断 T标志位: T=1 Thumb状态 T=0 ARM状态
Example: Call Subroutine
Registers in use
User Mode
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 (sp) r14 (lr)
r15 (pc)
cpsr
Return address calculated and stored in LR
ARM状态下的寄存器组织(6)

寄存器R14 子程序连接寄存器(Subroutine Link Register)或 链接寄存器LR。 子程序调用: 当执行BL(BLX)子程序调用指令时,R14中得到R15(程 序计数器PC)的备份。 中断或异常: 对应的分组寄存器R14_svc、R14_irq、R14_fiq、 R14_abt和R14_und用来保存R15的返回值。
ARM体系结构的存储器格式(2)
(0H)=0123H (4H)=4567H (8H)=89ABH
字地址 高 8 4 低 0 8 4 0 9 5 1 A 6 2 B 7 3
Big Endian
(0H)=3210H (4H)=7654H (8H)=BA98H
字地址 高
8
4 低 0
8
9
A
B
4
0
5
1
6
2
7
ARM状态下的寄存器组织(14)
M[4:0]运行模式位:这些位决定了处理器的运行模式。
M[4:0]
0b10000 0b10001
处理器模式
用户模式 FIQ模式 PC,CPSR,R0-R14
可访问的寄存器
PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7~R0
ARM 嵌入式系统 第2章 ARM体系结构
ARM微处理器的编程模型

ARM微处理器的工作状态 ARM体系结构的存储器格式 ARM体系结构的指令长度及数据宽度 ARM微处理器的处理器模式 ARM体系结构的寄存器组织 ARM微处理器的异常状态
字、半字、字节
字(Word) 在ARM体系结构中,字的长度为32位 半字(Half-Word) 在ARM体系结构中,半字的长度为16位 字节(Byte) 在ARM体系结构中,字节的长度为8位。 字对齐:四字节对齐 半字对齐:两字节对齐
11 22 33 44
Memory
11 22 33 44
LDRB r2, [r1]
31 24 23 16 15 8 7 0 31 24 23 16 15 8 7 0
R2 = 0x44 00 00 00 44
00 00 00 11 R2 = 0x11
Little endian
Big endian
ARM体系结构的指令长度及数据宽度

ARM状态下的寄存器组织(2)
异常模式
未分组 寄存器
分组寄 存器 程序计数器 PC
System
特权模式
ARM状态下的寄存器组织(3)

未分组寄存器(Unbanked Register)R0~R7 同一个寄存器名,在ARM微处理器内部只有一个独立的物 理寄存器与之对应。 在所有的运行模式下,未分组寄存器都指向同一个物理寄 存器,他们未被系统用作特殊的用途。 在中断或异常处理进行运行模式转换时,由于不同的处理 器运行模式均使用相同的物理寄存器,可能会造成寄存器 中数据的破坏,这一点在进行程序设计时应引起注意。
ARM状态下的寄存器组织(4)

分组寄存器(Banked Register)R8~R14 同一个寄存器名,在ARM微处理器内部存在多个独立的物理寄存器 对于分组寄存器,他们每一次所访问的物理寄存器与处理器当前的运 行模式有关。
R8~R12:对应两个不同的物理寄存器 fiq模式: R8_fiq~R12_fiq 非fiq模式: R8_usr~R12_usr R13、R14:对应6个不同的物理寄存器 用户模式与系统模式共用一个 另外5个物理寄存器对应于其他5种不同的运行模式
ARM状态下的寄存器组织(8)
取指 译码 执行 从存储器取指 令译码 从寄存器组中读寄存器,移位和ALU 操作,将寄存器写回到寄存器组 指令流水线功能段划分 指令 1 2 取指 译码 取指 执行 译码 取指 执行 译码 执行 t
3
ARM单周期指令3级流水线操作
ARM状态下的寄存器组织(9)

当前程序状态寄存器 CPSR
特权模式可以自由地访问系统资源和改变模式。
ARM体系结构的寄存器组织(1)
37个32位的寄存器:

31个通用寄存器 未分组寄存器(Unbanked Register):R0~R7 分组寄存器(Banked Register):R8~R14 程序计数器R15(PC指针)

6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,目前 只使用了其中的一部分 在每一种处理器模式下均有一组相应的寄存器与之对应。在所有的 寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而 有些寄存器则是在不同的处理器模式下有不同的物理寄存器

指令长度: 32位(在ARM状态下) 16位(在Thumb状态下) 数据宽度: 字节(8位) 半字(16位) 字(32位) 三种数据宽度对存储器及外部设备的访问。 其中,字数据需要按4字节对齐(地址的低两位为0)、半 字数据需要按2字节对齐(地址的最低位为0)。

ARM微处理器的处理器模式(1)
管理模式(svc)是系统复位后的默认模式 特权模式(Privileged Modes) 异常模式(Exception Modes)
ARM微处理器的处理器模式(2)
ARM微处理器的运行模式可以通过软件改变(特权模式), 也可以通过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在用 户模式下时,某些被保护的系统资源是不能被访问的。也 不能改变模式。除非异常发生。
FIQ Mode
r0 r1 r2 r3 r4 r5 r6
EXCEPTION
r8 r9 r10 r11 r12 r13 (sp) r14 (lr)
r7 r8_fiq r9_fiq r10_fiq r11_fiq r12_fiq r13_fiq r14_fiq
r15 (pc)
cpsr
r15 (pc)
Return address calculated from User mode PC value and stored in FIQ mode LR
spsr_fiq
cpsr spsr_fiq
User mode CPSR copied to FIQ mode SPSR
ARM状态下的寄存器组织(7)

寄存器R15
程序计数器PC。
寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位 [31:2]用于保存PC;在Thumb状态下,位[0]为0,位[31:1]用于保 存PC。 由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,PC总 是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值 加8个字节。
Rn_<mode> mode:usr、fiq、irq、svc、abt、und
ARM状态下的寄存器组织(5)

寄存器R13 寄存器R13在ARM指令中常用作堆栈指针。 在用户应用程序的初始化部分,一般都要初始化每种模式 下的R13 (R13_svc、R13_irq、R13_fiq、R13_abt 和R13_und ),使其指向该运行模式的栈空间。 当程序的运行进入异常模式时,可以将需要保护的寄存器 放入R13所指向的堆栈,而当程序从异常模式返回时,则 从对应的堆栈中恢复,采用这种方式可以保证异常发生后 程序的正常执行。
相关文档
最新文档