Download presentation
Presentation is loading. Please wait.
1
第3章 基于ARM的处理器体系结构1 主讲 丁男
2
章节介绍 3.1 基于ARM架构的嵌入式微处理器 3.2 ARM微处理器的指令系统 3.3 通用的ARM微处理器介绍
3
3.1 基于ARM架构的嵌入式微处理器 在多媒体技术、网络互连和开放操作系统等方面的应用,是8位机体系结构所难以逾越的障碍,也就正好成为选择32位嵌入式系统的主要理由。 所有的ARM芯片在内核上保持高度的兼容性,这样在学习和开发嵌入式系统中就可以使用通用的开发、调试工具。
4
32位体系结构的性能优势 (1)寻址空间大 (2)运算和数据处理强 (3)操作系统的支持
5
基于指令集体系结构的分类版本 1 V1架构 在低功耗的同时还强化了图形处理性能,追加有效进行多媒体处理的SIMD功能。ARM11采用该架构,增加了以下功能:THUMB-35%代码压缩;DSP扩充-高性能定点DSP功能;Jazelle-Jova性能优化;支持多微处理器内核。 2 V2架构 基本的数据处理指令;字节、半字和字的Load/Store指令;转移指令,包括子程序调用及链接指令;软件中断指令;寻址空间64MB。 ARM10和XScale都采用该版本架构。新增指令有:带有连接和交换的转移BLX指令;计数前导零CLZ指令;BBK中断指令;增建了数字信号处理指令。 在V3版架构上做了进一步扩充,使ARM使用更灵活。ARM7、ARM8、ARM9都采用该版本结构。增加功能有符号化和半符号化半字及符号化字节的存取指令;16位的Thumb指令集;完善软件中断SWI指令的功能等。 V3架构对ARM体系结构做了较大的改动,把寻址空间增至32位,增加了当前程序状态寄存器CPSR和存储程序状态寄存器SPSR。增加了终止好未定义两种处理器。 在V1版上进行了扩充,并增加了以下功能:乘法好乘加指令;支持协处理器操作指令;快速中断模式;SWP/SWPB的基本存储器与寄存器交换指令;寻址空间64MB。 3 V3架构 ARM 架 构 处 理 器 6 种 版 本 4 V4架构 5 V5架构 6 V6架构
6
3.1.2 ARM微处理器系列产品及性能简介 1 )系列产品分类
ARM处理器当前有5个产品系列:ARM7、ARM9、ARM9E、ARM10和ARM11。进一步的产品来自于合作伙伴,例如Intel Xscale微体系结构和产品。 ARM7、ARM9、ARM9E和ARM10是4个通用处理器系列。每个系列提供一套特定的性能来满足设计者对功耗、性能、和体积的需求。 ARM11是第5个产品系列,是专门为安全设备而设计。
7
2)ARM嵌入式微处理器性能简介 ARM公司是嵌入式RISC处理器的知识产权IP供应商,它为ARM架构处理器提供了ARM处理器内核和ARM处理器核。 处理器内核只保持了最基本的组织架构。 处理器核是在最基本的处理器内核基础上增加了Cache、存储器管理单元MMU、协处理器C15、先进微控制器总线架构AMBA接口以及EMT宏单元等部件,这样就构成了ARM处理器核。
8
基于ARM的MPU生产厂家简介 由集成电路厂商在处理器内核和处理器核基础上设计,嵌入各种外围和处理部件,形成各种嵌入式微处理器MPU。
PXA25X、27X系列微处理器(采用XScale 核) Intel公司 AT91系列MPU(采用ARM7TDMI内核、ARM920T核) ATMEL公司 IPC2XXX系列(ARM7TDMI内核)等等 Philips公司 OMAP59XX微处理器,(采用ARM+DSP双核) TI公司 MX1微处理器MPU(ARM922T核) Motorola公司
9
3)ARM处理器内核/处理器核的分类1 (1) ARM7T和ARM7E Family Unified Cache 内存管理 流水线级别
Thumb DSP Jazelle ARM7TDMI 无 3 有 ARM7TDMI-S ARM710T/720T 8k MMU ARM740T 8k或4k MPU ARM7EJ-S 无 3 有
10
ARM7TDMI内核 内核 及 控制 逻辑 指令 解码 地址 自增器 地址寄存器 寄存器 Bank 解码站 乘法器 读数据 寄存器 桶
ABE A[31:0] 地址 自增器 Incrementer PC Update A L U B u s 地址寄存器 P C SEQ ABORT nFIQ MAS[1:0] LOCK CPA CPB nWAIT nOPC BIGEND ISYNC nTRANS nM[4:0] nRW MCLK nMREQ nIRQ nCPI nRESET 指令 解码 及 控制 逻辑 寄存器 Bank A B u s B u s 解码站 指令 解压缩 乘法器 D[31:0] 读数据 寄存器 桶 移位器 写数据 寄存器 32 位 ALU DBE 内核
11
ARM7微处理器系列主要特点 ARM7微处理器系列为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。其具有如下特点: 具有嵌入式ICE-RT逻辑,调试方便。 极低的功耗(100mW左右),适合对功耗要求较高的应用,如便携式产品。 采用三级流水线。采用ARM V4指令集.能够提供0.9MIPS/MHZ的三级流水线结构。
12
ARM7TDMI 带Cache的ARM7TDMI ARM720T ARM710T 同ARM710T,但支持 WinCE
JTAG 和非 AMBA 信号 ARM7xxT ARM7TDMI 内核 CP15 控制 逻辑 地址 地址 MMU 写 缓冲 数据 AMBA 接口 AMBA 总线 接口 数据写 Cache 数据读 带Cache的ARM7TDMI ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲 ARM710T 8K 统一的 cache 完整的内存管理单元(MMU),支持虚拟地址和存储器保护 写缓冲
13
3)ARM处理器内核/处理器核的分类2 (2) ARM9 Family Cache 内存管理 流水线级别 Thumb DSP Jazelle
ARM9TDMI 无 5 有 ARM920T 16K/16k MMU ARM922T 8k/8k ARM940T 4k/4k MPU
14
ARM9TDMI 带Cache的ARM9TDMI ARM920T 2x 16K caches MMU 支持虚拟地址和内存保护 写缓冲
ARM9xxT D Cache ARM9TDMI GLUE 外部 存储器 MMU ARM940T 2x 4K caches MPU 写缓冲 I Cache 带Cache的ARM9TDMI
15
ARM920T体系结构框图
16
3)ARM处理器内核/处理器核的分类 ARM9E Family Cache 内存管理 流水线级别 Thumb DSP Jazelle
ARM9E-S 无 5 有 ARM946E-S 4k-1M/4k-1M MPU ARM966E-S ARM968E-S ARM9EJ-S 无 5/6 有 ARM926EJ-S 14k-128k/4k-128k MMU
17
3)ARM处理器内核/处理器核的分类3 (3) ARM10E和ARM10T Family Cache 内存管理 流水线 级别 Thumb
DSP Jazelle ARM10E 无 6 有 ARM1020E 32k/32k MMU ARM1022E 16k/16k ARM10EJ-S 无 6 有 ARM1026EJ-S 0,4-128k/0, 4-128k MMU ARM10TDMI 无 6 有 ARM1020T 32k/32k MMU
18
ARM10E 系列概述 ARM1020E ARM1022E v5TE架构 CPI 1.3 6 级流水线 静态分支预测
支持新的 VFPv1 结构 ARM1020E 每周期64 位的 LDM / STM操作 EmbeddedICE逻辑 - RT-II 32kB 指令cache和32kB数据cache 支持“Hit under miss” 非阻塞的执行单元 同ARM1020E,除了cache大小为16kB ARM1022E 对SUDL(single user design license )有效
19
3)ARM处理器内核/处理器核的分类4 (4) ARM11 Family Cache 内存管理 流水线级别 Thumb DSP
Jazelle 浮点运算 ARM1136J-S 4-64k MMU 8 有 无 ARM1136JF-S ARM1156T2-S 可配置 9 Thumb-2 ARM1156T2F-S
20
3)ARM处理器内核/处理器核的分类5 (5)XScale结构 Intel公司发展了新一代代微处理器体系结构就是XScale处理器。
XScale处理器是基于ARM v5TE体系结构所设计的,具有协处理器接口,可以直接扩展DSP处理器。 目前已使用在数字移动电话、个人数字助理和网络产品等场合。 XScale处理器是目前主要推广的一款ARM处理器。
21
3)ARM处理器内核/处理器核的分类6 (6)ARM和DSP双核微处理器
TI公司的OMAP5910处理器是一款具有DSP+RISC的双核定点数字信号运算的微处理器。 其具有高速度、低功耗,并提高了编程的灵活性,有利于对产品的软硬件升级,用于实现就有特殊功能的产品。 21
22
3)ARM处理器内核/处理器核的分类7 (7)Power PC架构微处理器简介 Power PC架构的特点是可伸缩性好,方便灵活。
23
3)ARM处理器内核/处理器核的分类8 (8)MIPS:简介 MIPS是世界上很流行的一种RISC处理器。
MIPS的意思是“无互锁流水级的微处理器” (Microprocessor without interlocked piped stages)。 其机制尽量利用软件办法避免流水线中的数据相关问题。 MIPS处理器是由斯坦福(Stanford)大学John Hennery教授领导的研究小组研制出来的。 President of Stanford University, USA Computer architecture book use MIPS as foundation
24
3)ARM处理器内核/处理器核的分类9 (9)典型的嵌入式处理器(中国)
龙芯系列是神州龙芯公司推出的兼顾通用和嵌入式微处理器特点的新一代32微处理器。采用0.18微米CMOS工艺制造,平均功耗0.4W。
25
3.1.3 ARM微处理器体系结构 1)ARM微处理器结构特征 (1)ARM微处理器的工作状态
在两种状态之间切换: 第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令; 第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
26
处理器工作状态
27
(2)ARM体系结构的存储器格式
28
(3)处理器运行模式
29
ARM微处理器:CPU模式 User模式 System模式 特权模式可以存取系统中的任何资源 FIQ模式 IRQ模式
可以不受任何限制的访问任何资源 该模式主要用于运行系统中的一些特权任务 特权模式可以存取系统中的任何资源 FIQ模式 IRQ模式 异常模式:主要是在外部中断或者程序执行非法操作时会触发 Supervisor模式 Abort模式 Undefined模式
30
2) ARM处理器的寄存器 如ARM处理器共有37个寄存器被分为若干个组:30个通用寄存器;6个状态寄存器;1个程序计数器PC。
即在每一种处理器模式下,可访问的寄存器包括15个通用寄存器、1至2个状态寄存器和程序计数器。在使用的寄存器中,有些是公用的、有些是独立使用的。
31
ARM微处理器:程序状态寄存器 条件标志 中断标志 模式控制位 ARM/Thumb控制标志 Overflow IRQ中断的响应:
置1:禁止响应 置0:允许响应 Carry Zero FIQ中断的响应: 置1:禁止响应 置0:允许响应 Negative 置0表示执行32bit的ARM指令 置1表示执行16bit的Thumb指令
32
3) ARM处理器对异常的响应 (1)将下一条指令的地址存入相应连接寄存器LR(R14),以便程序在处理异常返回时能从正确的位置重新开始执行。 (2)将CPSR复制到相应的SPSR中,工作模式不同使用的SPSR也不同。 (3)根据异常类型,强制设置CPSR的运行模式位。 (4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
33
4)异常返回后的处理操作
34
3.2 ARM微处理器的指令系统 名词解释:�
35
1) ARM指令系统概述 (1)指令系统概念 (2)ARM指令的特点 指令:是规定计算机进行某种操作的命令。
指令系统:计算机能够执行的各种指令的集合。 (2)ARM指令的特点 所有指令都是32位的。 大多数指令都在单周期内完成。 所有指令都可以条件执行。 ARM指令为load/store类型。 基本指令仅36条,分成五类。 有7种寻址方式。 指令集可以通过协处理器扩展。 35
36
1) ARM指令系统概述 (3)ARM指令的格式 ARM指令基本的语法格式为:
<Opcode> {<cond>}{s} <Rd>, <Rn> {, <Operand2>} ARM指令典型的编码格式为:(数据处理指令类) Cond Opcode S Rn Rd Operand2 11 12 15 16 19 20 21 24 25 27 28 31 7 8 36
37
1) ARM指令系统概述 (4)指令的条件码 条件码的位数和位置:每条ARM指令包含4位条件码域<cond>,它占用指令编码的最高四位[31:28]。 条件码的表示:条件编码共 24 =16 种,其中,15种用于指令的条件码。每种条件码用2个英文缩写字符表示。(见P47 表2-6) 带条件指令的执行:ARM处理器根据指令的执行条件是否满足,决定当前指令是否执行。 条件码的书写方法:条件码的位置在指令助记符的后面。 37
38
2)ARM 指令总体介绍 ARM体系结构支持ARM的汇编语言与C与C++的混合编程。一般的在一个完整的程序设计的中,除了初始化部分用汇编语言完成外,其大部分的编程任务一般都用C或C++完成。 寻址方式:立即数寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、块拷贝寻址、堆栈寻址。
39
3)ARM指令集 数据处理指令 跳转指令 Load/Store指令 程序状态寄存器指令 协处理器指令 软件中断指令
40
3.2.1 ARM 指令的寻址方式 目前ARM指令集支持如下几种常见的寻址方式。 1、立即寻址(立即数寻址)
例如ADD R0,R0,#1 ;R0←R0+1 2、寄存器寻址 例如ADD R0,R1,R2 ;R0←R1+R2 3、寄存器间接寻址 例如ADD R0,R1,[R2] ;R0←R1+[R2] 4、基址变址寻址 例如LDR R0,[R1,#4] ;R0←[R1+4] 5、多寄存器寻址 一次可以传送几个寄存器的值。允许一条指令传送16 个寄存器的任何子集。
41
3.2.1 ARM 指令的寻址方式 6、堆栈寻址 ARM 微处理器支持4种类型的堆栈工作方式,即
满递增堆栈:堆栈指针指向最后压入的数据,由低地址向高地址生成。 满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。 空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。 空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。 7、相对寻址 以程序计数器PC的当前值为基地址,指令种地地址标号作为偏移量,将两者相加之后得到操作数的有效地址。
42
3.2.2 ARM微处理器的指令集概述 大量的寄存器,都可用于多种用途;
Load-Store体系结构即加载/存储型,指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,对系统存储器的访问则需要通过专门的加载/存储指令来完成。
43
1)ARM体系结构的主要特征
44
2)ARM指令集的分类 (1)数据处理指令:完成寄存器的数据的算术和逻辑操作,在执行中需要两个操作数,产生单个结果。
这类指令只能使用和改变寄存器中的值,每一个操作数寄存器和结果寄存器都在指令中独立的指定,即使用3地址模式。 例:ADD R0,R1,R2 ; R0=R1+R2 44
45
(1)数据处理指令: 数据处理指令简介: 算术操作:ADD、ADC、SUB、SBC、RSB、RSC、MUL、MAL(32位乘加)、SMULL、SMLAL、UMULL、UMLAL。 按位逻辑操作:AND、ORR、EOR、BIC(清除位操作) 比较操作:CMP、CMN、TST、TEQ(按位异或) 寄存器移位操作:LSL、LSR、ASL(算术左移)、ASR、ROR(循环右移)、RRX(带扩展循环右移)。
46
(2)数据传送指令: 这类指令把存储器中的值拷贝到寄存器中(Load)或把寄存器的值拷贝到存储器中(Store)
加载/存储指令:用于在寄存器和存储器之间传送数据,加载指令用于将存储器中的数据传送到寄存器,存储指令则完成相反的操作。 常用的指令如下:LDR、LDRB、LDRH、STR、STRH。 批量数据加载/存储指令:批量加载可以一次在一片连续的存储器中的数据传送到多个存储器,批量存储则完成相反的操作。 常用的加载/存储指令如下: LDM、STM。
47
(3)数据交换指令 数据交换指令:在存储器和寄存器之间交换数据。 SWP(字数据交换)和SWPB(字节数据交换) 程序状态寄存器访问指令;
MRS 程序状态寄存器到通用寄存器的数据传送; MSR 通用寄存器到程序状态寄存器的数据传送。
48
(4)移位指令 ARM微处理器内嵌的桶型移位寄存器,支持数据的各种移位操作,一位操作在ARM指令集中部作为单独的指令使用,它只能作为指令格式中的一个字段,在汇编语言中表示为指令的选项。 具体为6种类型。 LSL(逻辑左移)、ASL(算术左移)、LSR(逻辑右移)、ASR(算术右移)、ROR(循环右移)、RRX(带扩展的循环右移)。
49
(5)控制流指令 在执行时使用存储于连续的存储器地址中的指令。控制流指令使执行切换到不同的地址。切换是永久的或保存返回地址以恢复原来的执行顺序,或者陷入系统代码。 如跳转指令 在ARM程序中有两种方法可以实现程序流程的跳转。使用专门的跳转指令和直接向程序计数器PC写入跳转地址。 如 B Lable ;无条件转移到标号地址。
50
(5)控制流指令 协处理器指令 ARM微处理器可支持多个协处理器。
主要用于ARM处理器初始化ARM协处理器的数据处理操作,以及在ARM处理器的寄存器和协处理器的寄存器之间传送数据,和在ARM协处理器的寄存器和寄存器之间传送数据。 具体包括5种指令: CDP(操作)、LDC(数据加载)、STC、MCR、MRC。 异常产生指令 ,BKPT(断点中断)。
51
3)Thumb指令及应用 Thumb是ARM体系结构的扩展。从标准32位ARM指令集抽出来的36条指令格式,重新编成16位的操作码。在运行时16位的Thumb指令又由处理器解压成32位的ARM指令。 ARM体系结构支持16位的Thumb指令集。所有的Thumb指令都有对应的ARM指令,而且Thumb指令的编码模型也对应于ARM的编码模型,在应用程序的编写过程中,只要遵循一定调用的规则,Thumb子程序就可以相互调用。
52
Thumb指令集由四大类构成:
53
4)汇编语言上机过程 用ARM汇编语言编写的源程序,要使之运行必须经过以下几个步骤:
54
THE END !
Similar presentations