第 3 章 体系结构与指令系统

93
南南南南南南南南 南南南 西 3 3 南南南南南南南南 体统 南南南南南南南南 体统 本本本本 本本本本 ARM ARM 本本本本本本本本 本本本本本本本本 本本 ,, 本本本本本本本本 本本本本本本本本 本本 ,, 本本 本本 ARM ARM 本本本本本本本本本本本本 本本 本本本本本本本本本本本本 本本 ARM ARM 本本本本 体、 本本本本 体、 本本本本 本本本 本本本本本本本本 本本 、、; 本本本本 本本本 本本本本本本本本 本本 、、; ARM ARM 本本本本本本本本本本本本本本本本本本

Upload: erno

Post on 20-Jan-2016

115 views

Category:

Documents


0 download

DESCRIPTION

第 3 章 体系结构与指令系统. 本章将对 ARM 技术进行全面论述,通过本章的学习,使大家对 ARM 技术有个全面的了解和掌握。了解 ARM 体系结构、编程模式、异常、片上总线等内容;掌握 ARM 指令集及其寻址模式。. 本章的主要内容为:. 3.1 ARM 体系结构的发展历史和技术特征. 3.2 ARM 体系结构不同版本的发展概述. 3.3 Thumb 技术介绍. 3.4 ARM 处理器工作状态. 3.5 ARM 处理器工作模式. 3.6 ARM 寄存器组成. 3.7 ARM 异常中断. 本章的主要内容为:. 3.8 ARM 组织结构简介. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

第第 33 章 章 体系结构与指令系统体系结构与指令系统

本章将对本章将对 ARMARM 技术进行全面论述,通技术进行全面论述,通过本章的学习,使大家对过本章的学习,使大家对 ARMARM 技术有个全技术有个全面的了解和掌握。了解面的了解和掌握。了解 ARMARM 体系结构、编体系结构、编程模式、异常、片上总线等内容;掌握程模式、异常、片上总线等内容;掌握ARMARM 指令集及其寻址模式。指令集及其寻址模式。

Page 2: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

本章的主要内容为:本章的主要内容为: 3.1 ARM 体系结构的发展历史和技术特征

3.3 Thumb 技术介绍3.2 ARM 体系结构不同版本的发展概述

3.4 ARM 处理器工作状态3.5 ARM 处理器工作模式3.6 ARM 寄存器组成3.7 ARM 异常中断

Page 3: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

本章的主要内容为:本章的主要内容为: 3.8 ARM 组织结构简介3.9 ARM 存储器接口及存储器层次3.10 ARM 协处理器3.11 ARM 片上总线 AMBA

3.12 ARM 核综述3.13 ARM 指令集与寻址模式

3.14 Xscale pxa270

Page 4: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.1 ARM2.1 ARM 体系结构的发展历史和技术特体系结构的发展历史和技术特征征

2.1.1 ARM2.1.1 ARM 发展的历程发展的历程2.1.2 ARM2.1.2 ARM 体系结构的技术特征体系结构的技术特征

Page 5: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.1.1 ARM2.1.1 ARM 发展的历程发展的历程最近 10 多年来 ARM 技术的突出成果表现在:使用“ Thumb” 的新型压缩指令格式,使得应用系

统开发可降低系统成本和功耗;ARM9 、 ARM10 、 Strong-ARM 和 ARM11 等系

列处理器的开发,显著地提高了 ARM 的性能,使得ARM 技术在面向高端数字音、视频处理等多媒体产品的应用中更加广泛;

更好的软件开发和调试环境,加快用户产品开发;更为广泛的产业联盟使得基于 ARM 的嵌入式应用

领域更加广阔;嵌入在复杂 SoC 中、基于 ARM 核的调试系统代表

着当今片上调试技术的前沿。

Page 6: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 发展的历程发展的历程

第一片第一片 ARMARM 处理器是处理器是 19831983 年年 1010 月到月到 19198585 年年 44 月间在位于英国剑桥的月间在位于英国剑桥的 Acorn Acorn ComputerComputer 公司开发 。公司开发 。

19901990 年,为广泛推广年,为广泛推广 ARMARM 技术而成立了技术而成立了独立的公司 。独立的公司 。

2020 世纪世纪 9090 年代, 年代, ARMARM 快速进入世界市快速进入世界市场 。场 。

Page 7: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 发展的历程发展的历程在在 ARMARM 的发展历程中,从的发展历程中,从 ARM7ARM7 开开

始,始, ARMARM 核被普遍认可和广泛使用 。核被普遍认可和广泛使用 。19951995 年 年 StrongARM StrongARM 问世 。问世 。XScaleXScale 是下一代是下一代 StrongARMStrongARM 芯片的发展芯片的发展

基础 。基础 。ARM10TDMIARM10TDMI是是 ARMARM 处理器核中的高端处理器核中的高端

产品 。产品 。ARM11ARM11是是 ARMARM 家族中性能最强的一个家族中性能最强的一个

系列 。系列 。

Page 8: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 发展的历程发展的历程ARM 技术还将不断发展。在嵌入式领

域, ARM 已取得了极大的成功,造就了 IP 核商业化、市场化的神话,迄今为止,还没有任何商业化的 IP 核交易和使用达到 ARM 的规模。据最新统计,全球有 103 家巨型 IT 公司在采用 ARM 技术, 20 家最大的半导体厂商中有 19 家是 ARM 的用户,包括德州仪器,意法半导体, Philips, Intel 等。 ARM系列芯片已经被广泛的应用于移动电话、手持式计算机以及各种各样的嵌入式应用领域,成为世界上销量最大的 32 位微处理器。

Page 9: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.2 2.2 ARMARM 体系结构的技术特征体系结构的技术特征ARMARM 的体系结构采用了若干的体系结构采用了若干 Berkeley RISCBerkeley RISC处理器设计中的特征处理器设计中的特征 Load/storeLoad/store 体系结构体系结构固定的固定的 3232 位指令位指令33 地址指令格式地址指令格式 也放弃了其它若干也放弃了其它若干 Berkeley RISCBerkeley RISC 特征特征所有的指令单周期执行 所有的指令单周期执行

Page 10: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.2 ARM2.2 ARM 体系结构不同版本的发展概述体系结构不同版本的发展概述2.2.1 ARM2.2.1 ARM 体系结构的基本版本体系结构的基本版本2.2.2 ARM2.2.2 ARM 体系结构的演变体系结构的演变2.2.3 ARM2.2.3 ARM 体系结构的命名规则体系结构的命名规则

Page 11: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.2.1 2.2.1 ARMARM 体系结构的基本版本体系结构的基本版本版本 1 ,本版本包括下列指令: 乘法指令之外的基本数据处理指令;基于字节,字和多字的存储器访问操作指

令( Load/Store);子程序调用指令 BL 在内的跳转指令;完成系统调用的软件中断指令 SWI。

Page 12: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 体系结构的基本版本体系结构的基本版本版本 2 ,与版本 1 相比版本 2 ( 2a )

增加了下列指令:乘和乘加指令;支持协处理器的指令;对于 FIQ 模式,提供了额外的影子寄存

器;SWP 指令。

Page 13: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 体系结构的基本版本体系结构的基本版本版本 3 较以前的版本发生了大的变化地址空间扩展到了 32 位,但除了版本 3G 外的其他版本

是向前兼容的,也支持 26 位的地址空间;分开的当前程序状态寄存器 CPSR ( Current Program

Status Register )和备份的程序状态寄存器 SPSR ( Saved Program Status Register), SPSR 用于在程序异常中断时保存被中断的程序状态;

增加了两种异常模式,使操作系统代码可以方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常;

增 加 了 MRS 指 令 和 MSR 指 令 用 于 完 成 对 CPSR 和SPSR 寄存器的读写。修改了原来的从异常中返回的指令。

Page 14: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 体系结构的基本版本体系结构的基本版本版本版本 44 。与版本。与版本 33 相比,版本相比,版本 44 增加了下列指增加了下列指

令令有符号、无符号的半字和有符号字节的有符号、无符号的半字和有符号字节的 loadload和和

storestore 指令。指令。增加了增加了 TT 变种,处理器可以工作于变种,处理器可以工作于 ThumbThumb 状状

态,在该状态下的指令集是态,在该状态下的指令集是 1616 位的位的 ThumbThumb 指令指令集。集。

增加了处理器的特权模式。在该模式下,使用增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。的是用户模式下的寄存器。

Page 15: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 体系结构的基本版本体系结构的基本版本版本 5主要由两个变型版本 5T、 5TE组成 相比与版本 4,版本 5的指令集有了如下的变化:

提高了 T变种中 ARM/Thumb混合使用的效率。增加前导零记数( CLZ )指令,该指令可使整数

除法和中断优先级排队操作更为有效;增加了 BKPT (软件断点)指令;为协处理器设计提供了更多的可供选择的指令;更加严格地定义了乘法指令对条件码标志位的影

响。

Page 16: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 体系结构的基本版本体系结构的基本版本

ARM 体系版本 6是 2001年发布的。新架构 v6 在降低耗电量的同时还强化了图形处理性能。通过追加有效进行多媒体处理的 SIMD 功能,将语音及图像的处理功能提高到了原机型的 4 倍。 ARM 体系 版 本 6 首先在 2002 年春季发布的ARM11 处理器中使用。除此之外, v6还支持多微处理器内核。

Page 17: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 体系结构的基本版本体系结构的基本版本ARM 体系结构总结

核 体系结构ARM1 V1

ARM2 V2

ARM2aS, ARM3 V2a

ARM6, ARM600, ARM610 V3

ARM7, ARM700, ARM710 V3

ARM7TDMI, ARM710T, ARM720T ARM740T V4T

Strong ARM, ARM8, ARM810 V4

ARM9TDMI, ARM920T, ARM940T V4T

ARM9E-S V5TE

ARM10TDMI, ARM1020E V5TE

ARM11, ARM1156T2-S, ARM1156T2F-S, ARM1176JZ-S, ARM11JZF-S

V6

Page 18: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.2.2 2.2.2 ARMARM 体系结构的演变体系结构的演变1) Thumb 指令集( T 变种) Thumb 指令集是把 32 位的 ARM 指令

集的一个子集重新编码后而形成的一个特殊的 16 位的指令集

2 )长乘指令( M 变种)长乘指令是一种生成 64位相乘结果的

乘法指令(此指令为 ARM 指令),M 变种增加了两条长乘指令

Page 19: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 体系结构的演变体系结构的演变

33 )增强型)增强型 DSPDSP 指令(指令( EE 变种)变种) EE 变种的变种的 ARMARM 体系增加了一些增强处理器对体系增加了一些增强处理器对

典型的典型的 DSPDSP算法处理能力的附加指令。算法处理能力的附加指令。44)) JavaJava 加速器加速器 JazelleJazelle(( JJ 变种)变种) ARMARM的的 JazelleJazelle 技术是技术是 JavaJava语言和先进的语言和先进的 3232

位位 RISCRISC 芯片完美结合的产物芯片完美结合的产物 。 。55)) ARMARM 媒体功能扩展(媒体功能扩展( SIMDSIMD 变种)变种)

Page 20: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.2.3 ARM2.2.3 ARM 体系结构的命名规则体系结构的命名规则 表示 ARM/Thumb 体系版本的命名格式的

ARM/Thumb 体系版本由下面几部分组成的: 基本字符串 ARMv。基本字符串后为 ARM 指令集版本号,目前是 1-6

的数字字符。ARM 指令集版本号后为表示所含变种的字符。由

于在 ARM 体系版本 4 以后, M 变种成为系统的标准部件,所以字符M 通常也不单独列出来。

最后使用的字符 x 表示排除某种功能。

Page 21: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.3 Thumb2.3 Thumb 技术介绍 技术介绍 ARM的 RISC 体系结构的发展中已经提

供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题, ARM 体系结构又增加了T变种,开发了一种新的指令体系,这就是 Thumb 指令集,它是 ARM 技术的一大特色。

2.3.1Thumb 的技术概述2.3.2Thumb 的技术实现2.3.3Thumb 技术的特点

Page 22: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.3.1 Thumb2.3.1 Thumb 的技术概述的技术概述Thumb是 ARM 体系结构的扩展。它有从标准 32

位 ARM 指令集抽出来的 36条指令格式,可以重新编成 16 位的操作码。这能带来很高的代码密度

ARM7TDMI 是第一个支持 Thumb 的核,支持Thumb 的核仅仅是 ARM 体系结构的一种发展的扩展,所以编译器既可以编译 Thumb 代码,又可以编译 ARM 代码

支持 Thumb的 ARM 体系结构的处理器状态可以方便的切换、运行到 Thumb 状态,在该状态下指令集是 16 位的 Thumb 指令集 。

Page 23: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.3.2 Thumb2.3.2 Thumb 技术的特点技术的特点在性能和代码大小之间取得平衡,在需

要较低的存储代码时采用 Thumb 指令系统,但有比纯粹的 16 位系统有较高的实现性能,因为实际执行的是 32 位指令,用 Thumb 指令编写最小代码量的程序,却取得以 ARM代码执行的最好性能

Page 24: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ThumbThumb 技术的特点技术的特点与 ARM 指令集相比. Thumb 指令集具有以

下局限 完成相同的操作, Thumb 指令通常需要更多的

指令,因此在对系统运行时间要求苛刻的应用场合ARM 指令集更为适合;

Thumb 指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,还是需要使用ARM 指令,这种限制决定了 Thumb 指令需要和ARM 指令配合使用。

Page 25: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.4 ARM2.4 ARM 处理器工作状态处理器工作状态 ARM 处理器核可以工作在以下 2 种状态1 ) ARM 状态32 位, ARM 状态下执行字对准的 32 位 ARM

指令;2) Thumb 状态16 位, Thumb 状态下执行半字对准的 16位

Thumb 指令。在 Thumb 状态下,程序计数器 PC 使用位 1选择另一个半字。

Page 26: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 处理器工作状态处理器工作状态 在程序执行的过程中,处理器可以在两种状态下

切换 。ARM 和 Thumb 之间状态的切换不影响处理

器的模式或寄存器的内容。ARM 指令集和 Thumb 指令集都有相应的状

态切换命令。ARM 处理器在开始执行代码时,只能处于

ARM 状态。

Page 27: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.5 ARM2.5 ARM 处理器工作模式处理器工作模式 CPSR (当前程序状态寄存器)的低 5 位用于定义当前操作模式 , 如图示:

Page 28: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 处理器工作模式处理器工作模式 除用户模式外的其他 6 种模式称为特权模式 。特权模式中除系统模式以外的 5 种模式又称为异

常模式,即 :FIQ( Fast Interrupt Request)IRQ( Interrupt ReQuest)SVC( Supervisor)中止( Abort)未定义( Undefined)

Page 29: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.6 ARM2.6 ARM 寄存器组成 寄存器组成

2.6.1ARM 寄存器组成概述2.6.2ARM 状态下的寄存器组织2.6.3Thumb 状态下的寄存器组织

Page 30: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.6.1 ARM2.6.1 ARM 寄存器组成概述寄存器组成概述 ARM 处理器总共有 37 个寄存器,可以分为以下两

类寄存器 :1 ) 31 个通用寄存器 :

R0~ R15;R13_svc、 R14_svc;R13_abt、 R14_abt;R13_und、 R14_und;R13_irq、 R14_irq;R8_frq-R14_frq。

2) 6 个状态寄存器 CPSR; SPSR_svc、 SPSR_abt、 SPSR_und、 SPSR_irq和 SPSR_fiq 。

Page 31: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.6.2ARM2.6.2ARM 状态下的寄存器组织状态下的寄存器组织11)) ARMARM 状态的寄存器简介:状态的寄存器简介:ARMARM 状态下的寄存器组织:状态下的寄存器组织:

Page 32: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 状态下的寄存器组织状态下的寄存器组织2) ARM 状态的通用寄存器 不分组寄存器( The unbanked registers)

R0~R7

分组寄存器( The banked registers):R8~R14

程序计数器: R15( PC)

Page 33: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 状态下的寄存器组织状态下的寄存器组织不分组寄存器 R0~R7 R0~R7 是不分组寄存器。这意味着在所有处理

器模式下,它们每一个都访问的是同一个物理寄存器。它们是真正并且在每种状态下都统一的通用寄存器。 未分组寄存器没有被系统用于特别的用途,任

何可采用通用寄存器的应用场合都可以使用未分组寄存器,但必须注意对同一寄存器在不同模式下使用时的数据保护 。

Page 34: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 状态下的寄存器组织状态下的寄存器组织分组寄存器 R8-R14 :

分组寄存器 R8-R12 :FIQ 模式分组寄存器 R8~R12 。FIQ 以外的分组寄存器 R8~R12 。

分组寄存器 R13、 R14寄存器 R13 通常用做堆栈指针 SP 。寄存器 R14 用作子程序链接寄存器( Link

Register- LR),也称为 LR 。

Page 35: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 状态下的寄存器组织状态下的寄存器组织程序计数器 R15 :寄存器 R15 被用作程序计数器,也称为 PC 。R15 值的改变将引起程序执行顺序的变化,这

有可能引起程序执行中出现一些不可预料的结果 。ARM 处理器采用多级流水线技术,因此保存

在 R15 的程序地址并不是当前指令的地址 。一些指令对于 R15 的用法有一些特殊的要求 。

Page 36: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 状态下的寄存器组织状态下的寄存器组织3)ARM 程序状态寄存器所有处理器模式下都可以访问当前的程序状

态寄存器 CPSR。 CPSR 包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。

在每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器 SPSR 。当异常出现时, SPSR 用于保存 CPSR 的状态,以便异常返回后恢复异常发生时的工作状态。

Page 37: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 状态下的寄存器组织状态下的寄存器组织CPSRCPSR和和 SPSRSPSR 的格式 的格式

Page 38: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.6.3Thumb2.6.3Thumb 状态下的寄存器组状态下的寄存器组织织

Thumb 状态下的寄存器集是 ARM 状态下寄存器集的子集。程序员可以直接访问 8 个通用的寄存器( R0~R7),程序计数器 PC 、堆栈指针 SP 、连接寄存器 LR 和当前状态寄存器CPSP 。每一种特权模式都各有一组 SP, LR和SPSR。

R0

R1

R2

R3

R4

R5

R6

R7

SP

LR

PC

CPSR

SPSR

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

SP(R13)

LR(R14)

PC(R15)

CPSR

SPSR

高寄存器

Thumb 状态 ARM状态

低寄存器

Page 39: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.7 ARM2.7 ARM 的异常中断的异常中断在 ARM 体系结构中,异常中断用来处理

软件中断、未定义指令陷阱(它不是真正的“意外”事件)及系统复位功能(它在逻辑上发生在程序执行前而不是在程序执行中,尽管处理器在运行中可能再次复位)和外部事件,这些“不正常”事件都被划归“异常”,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。

Page 40: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 的异常中断的异常中断ARM 的异常中断响应过程;从异常中断处理程序中返回 ;异常中断向量表;异常中断的优先级 ;

Page 41: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 的异常中断响应过程的异常中断响应过程ARM 处理器对异常中断的响应过程如

下:将 CPSR 的内容保存到将要执行的异常

中断对应的 SPSR 中 。设置当前状态寄存器 CPSR 中的相应位 将引起异常指令的下一条指令的地址保

存到新的异常工作模式的 R14 。给程序计数器( PC )强制赋值 。

Page 42: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 的异常中断响应过程的异常中断响应过程每个 异 常 模 式 对 应 有 两 个 寄 存 器

R13_<mode>、 R14_<mode> 分别保存相应模式下的堆栈指针、返回地址;堆栈指针可用来定义一个存储区域保存其它用户寄存器,这样异常处理程序就可以使用这些寄存器。

FIQ 模式还有额外的专用寄存器R8_fiq~ R12_fiq ,使用这些寄存器可以加快快速中断的处理速度。

Page 43: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

从异常中断处理程序中返回从异常中断处理程序中返回从异常中断处理程序中返回时,需要执行以下四个基本操作 :所有修改过的用户寄存器必须从处理程序的保

护堆栈中恢复(即出栈)。将 SPSR_mode 寄存器内容复制到 CPSR 中,

使得 CPSR 从相应的 SPSR 中恢复,即恢复被中断的程序工作状态。根据异常类型将 PC 变回到用户指令流中相应

指令处。最后清除 CPSR 中的中断禁止标志位 I/F。

Page 44: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

异常中断向量表异常中断向量表中断向量表中指定了各异常中断与其处理程

序的对应关系 。每个异常中断对应的中断向量表的 4 个字节

的空间中存放一个跳转指令或者一个向 PC 寄存器中赋值的数据访问指令 。

存储器的前 8 个字中除了地址 0x00000014 之外,全部被用作异常矢量地址 。

异常类型 向量地址 优先级 异常中断含义

复位(Reset) 0x00000000 1 当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面几种情况下:

· 系统加电时· 系统复位时· 跳转到复位中断向量处执行,称为软复位

未定义的指令( undefined instruction)

0x00000004 6 当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产(undefined instruction)生未定义的指令异常中断。可以通过该异常中断机制仿真浮点向量运算

软件中断(SWI)

0x00000008 6 这是一个由用户定义的中断指令。可用于用户模式下的程序调用特权操作

指令预取中止(Prefech Abort)

0x0000000C 5 如果处理器预取的指令的地址不存在,或者该地址不允许当前指(Prefech Abort)令访问,当该被预取的指令执行时,处理器产生指令预取中止异常中断

数据访问中止(Data Abort)

0x00000010 2 如果数据访问指令的目标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问中止异常中断

外部中断请求(IRQ)

0x00000018 4 当处理器的外部中断请求引脚有效,而且CPSR寄存器的I控制位被清除时,处理器产生外部中断请求(IRQ)异常中断。系统中各外设通常通过该异常中断请求处理器服务

快速中断请求(FIQ)

0x0000001C 3 当处理器的外部快速中断请求引脚有效,而且CPSR寄存器的F控制位被清除时,处理器产生外部中断请求(FIQ)

Page 45: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

异常中断的优先级异常中断的优先级当几个异常中断同时发生时,在 ARM 中通

过给各异常中断赋予一定的优先级来实现处理次序 :

复位(最高优先级);数据异常中止;FIQ;IRQ;预取指异常中止;SWI、,未定义指令(包括缺协处理器)。

Page 46: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.8 ARM2.8 ARM 典型流水线技术简介典型流水线技术简介 2.8.1三级流水线 ARM 的组织2.8.2五级流水线 ARM 的组织

Page 47: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.8.12.8.1三级流水线三级流水线 ARMARM 的组织的组织1) ARM 的 3级流水线介绍 到 ARM7 为止的 ARM 处理器使用的

简 单 3级流水线分别为 :取指级 ;

译码级 ;

执行级 ;

ARM单周期指令的三级流水线操作 ARM多周期指令的3级流水线操作

Page 48: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

三级流水线三级流水线 ARMARM 的组织的组织2) ARM 3级流水线下 PC 的行为 在 3级流水线的执行过程中,当通过 R15 寄

存器直接访问 PC 时,必须考虑到此时流水线的执行过程的真实情况

三级流水线的 PC 行为

Page 49: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.8.2 2.8.2 五级流水线五级流水线 ARMARM 的组的组织织

使用 5级流水线的 ARM 处理器包含下面 5 个流水线级 :取指 译码 执行 缓冲 \ 数据 回写

Page 50: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.9 ARM2.9 ARM 存储器接口及存储器层次 存储器接口及存储器层次 多级存储器使它包括一个容量小但速度快的从存

储器和一个容量大但速度慢的主存储器,根据典型程序的实验统计,这个存储器系统的外部行为在绝大部分时间象一个即大又快的存储器。这个容量小但速度快的元件是 Cache ,它自动地保存处理器经常用到的指令和数据的拷贝。

本节首先对 ARM支持的存储数据类型和处理器中数据存储格式进行介绍,在此基础上介绍了 ARM存 储 器 的 接 口 设 计 , 主 要 包 括 存 储 器 接口、 Cache 、 MMU 和保护单元,建立起 ARM 处理器的整个存储体系的概念和设计方法。

Page 51: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 存储器接口及存储器层次 存储器接口及存储器层次

2.9.1 ARM2.9.1 ARM 存储数据类型和存储格式存储数据类型和存储格式2.9.2 ARM2.9.2 ARM 的存储器层次简介的存储器层次简介2.9.3 ARM2.9.3 ARM 存储系统简介存储系统简介

Page 52: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.9.1ARM2.9.1ARM 存储数据类型和存储格式存储数据类型和存储格式 ARM 处理器支持以下 6 种数据类型 :8 位有符号和无符号字节。16 位有符号和无符号半字,它们以两字节的

边界定位。32 位有符号和无符号字,它们以 4 字节的边

界定位。

Page 53: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 存储数据类型和存储格式存储数据类型和存储格式

存储器组织 在以字节为单位寻址的存储器中有“小端”和“大端”两种方式存储字,这两种方式是根据最低有效字节与相邻较高有效字节相比是存放在较低的还是较高的地址来划分的,两种存储方式如图所示。

Page 54: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.9.2 ARM2.9.2 ARM 的存储器层次简介的存储器层次简介寄存器组 片上 RAM

片上 Cache

主存储器 硬盘

Page 55: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.10 ARM2.10 ARM 协处理器协处理器 ARM 通过增加硬件协处理器来支持对其指令

集的通用扩展,通过未定义指令陷阱支持这些协处理器的软件仿真。简单的 ARM 核提供板级协处理器接口,因此协处理器可以作为一个独立的元件接入。

最常使用的协处理器是用于控制片上功能的系统协处理器,例如控制 ARM720 上的高速缓存Cache 和存储器管理单元 MMU 等。 ARM 也开发了浮点协处理器,也可以支持其它的片上协处理器。 ARM 体系结构支持通过增加协处理器来扩展指令集的机制。

Page 56: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.112.11 ARM ARM 片上总线片上总线 AMBAAMBA

先进的微控制器总线体系结构 AMBA是 ARM 公司公布的总线标准 AHB ( Advanced High-performance Bus ):

用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序参考同一个时钟沿。

ASB ( Advanced System Bus ):用于连接高性能系统模块,它支持突发数据传输模式。

APB( Advance Peripheral Bus):是一个简单接口支持低性能的外围接口。

Page 57: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.12 ARM2.12 ARM 核核ARM 处理器核当前有 6 个系列产品:ARM7 ARM9ARM9E ARM10E,SecurCore ARM11

Intel 公司推出的:StrongARM XScale

Page 58: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 核综述 核综述 2.12.1 ARM7 系列核介绍2.12.2 ARM9 系列核介绍 2.12.3 ARM10 系列核2.12.4 StrongARM和 XScale 系

列核2.12.5 SecurCore 系列核

Page 59: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.12.1 ARM72.12.1 ARM7 系列核介绍系列核介绍ARM7TDMI是 ARM 公司最早为业界普遍认可且得

到了最为广泛应用的处理器核,特别是在手机和 PDA 中,随着 ARM 技术的发展,它已是目前最低端的 ARM 核。

ARM7: 32位 ARM 体系结构 4T 版本;T “: Thumb”16 位压缩指令集;D :支持片上 Debug (调试),使处理器能够停止

以响应调试请求;M :增强型 Multiplier ,与前代相比具有较高的性能

且产生 64 位的结果;I “: EmbeddedICE”硬件以支持片上断点和观察点。

Page 60: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARM7ARM7 系列核介绍系列核介绍1) ARM7TDMI 组织结: ARM7TDMI重要的

特性有实现 ARM 体系结构版本 4T ,支持 64位结果的乘法,

半字、有符号字节存取;支持 Thumb 指令集,可降低系统开销;32×8 DSP 乘法器;32 位寻址空间 - 4GB 线性地址空间;它包含了 EmbeddedICE 模块以支持嵌入式系统调试;调试硬件由 JTAG测试访问端口访问,因此 JTAG控制

逻辑被认为是处理器核的一部分。广泛的 ARM 和第三方支持,并与 ARM9 Thumb

系列 ARM10 Thumb 系列和 StrongARM 处理器相兼容。

Page 61: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARM7ARM7 系列核介绍系列核介绍2) ARM7TDMI硬件接口 按接口信号的功能划分为存储器接口、 MMU接

口、片上调试、 JTAG边界扫描扩展以及时钟接口等十四类接口信号。各接口信号包括接口信号和接口控制信号

ARM7TDMI 核的外围硬件接口信号图

Page 62: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.12.2ARM92.12.2ARM9 系列核介绍系列核介绍ARM8 核是从 1993 年到 1996 年开发的,并开

发了具有片上 Cache 及存储器管理单元高性能ARM CPU 芯片以满足比 ARM7 的 3级流水线更高性能的 ARM 核的需求。

ARM9TDMI 将流水线的级数从 ARM7TDMI的 3级增加到 5级,并使用分开的指令与数据存储器的 Harvard 体系结构。 ARM9TDMI 的性能在相同工艺条件下近似达到 ARM7TDMI 两倍

Page 63: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARM9ARM9 系列核介绍系列核介绍1) ARM9TDMI 技术特点 支持 Thumb 指令集;含有 EmbeddedICE 模块支持片上调试;通过采用 5 级流水线以增加最高时钟速率;分开的指令与数据存储器端口以提高处理器性

能。

Page 64: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARM9ARM9 系列核介绍系列核介绍2) ARM9TDMI组织 ARM9 内 核 采 用 了 与后面 要讲到 的

Strong ARM 相 同 的 5 级 流 水线。 ARM9TDMI与 StrongARM 核的主要区别在于 StrongARM 有一个与寄存器读出级并行操作的专用的转移加法器进行转移地址计算,而 ARM9TDMI 使用数据路径中的 ALU来计算转移目标地址。

Page 65: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARM9ARM9 系列核介绍系列核介绍3) Thumb 解码和存储器读写 4 )协处理器支持 5 )片上调试 6 )低电压操作 7) ARM9TDMI 应用 8) ARM9E-S及 ARM946E-S和 ARM966E-S

Page 66: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.12.3 ARM102.12.3 ARM10 系列核系列核ARM10TDMI属于 ARM 处理器核中

的高端处理器核, ARM10TDMI 的性能在相同工艺条件下近似达到也以ARM9TDMI 的两倍性能工作。 ARM1020E/ARM10200 是基于ARM10TDMI 核设计的高性能 CPU 核。

增加最高时钟速率。

Page 67: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.12.4 StrongARM2.12.4 StrongARM 和和 XScaleXScale 系列核系列核1995 年, ARM、 Apple、 DEC 公司联合声明

将开发一种应用于 PDA 的高性能、低功耗、基于ARM 体系结构的 StrongARM 微处理器。

StrongARM主要特点有: 具有寄存器前推的 5 级流水线;除 64 位乘法、多寄存器传送和存储器 / 寄存器交

换指令外,其它所有普通指令均是单周期指令;16KB、 32路相联的指令 Cache ,每行 32字节;16KB、 32路相联的写回式数据 Cache ,每行 3

2字节;分开的 32 数据项的指令和数据地址变换后备缓

冲器;

Page 68: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

StrongARMStrongARM和和 XScaleXScale 系列核系列核8 数据项的写缓冲器,每个数据项 16 个字节;低功耗的伪静态操作。StrongARM 的乘法部件很有特色。不论处理

器的时钟速率有多高,乘法器以每周期计算 12 位,用 1~3 个时钟周期计算两个 32 位操作数的乘积。对 于 数 字信号处 理 性 能 要求很高 的 应 用来说, StrongARM 的高速乘法器有很大的潜力。微处理器使用系统控制协处理器 CP15来管理

片上 MMU和 Cache资源,并且集成了 JTAG边界扫描测试电路以支持印制板连接测试。

Page 69: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

StrongARMStrongARM和和 XScaleXScale 系列核系列核StrongARM 的五级流水线 取指(从指令 Cache)。指令译码及寄存器读;转移目标计算及执行。移位及 ALU 操作,包括数据传送的存储器地址计

算。数据 Cache 访问结果写回到寄存器文件寄存器前推通路将中间结果传给下一条指令,以

避免读后写冒险引起的寄存器互锁停顿。从下一条指令的取指级传送 PC+4的 PC 通路给出

当前指令的 PC+8 ,作为 r15并用于转移目标计算。

Page 70: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

StrongARMStrongARM和和 XScaleXScale 系列核系列核Intel XScale 系列处理器核是基

于 ARMv5TE 体系结构的,它提供了从手持互联网设备到互联网基础设施产品全面解决方案,支持 16位 Thumb指令和 DSP 扩充。基于 XScale 技术开发的系列微处理器,由于超低功率与高性能的组合使 Intel XScale适用于广泛的互联网接入设备

Page 71: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.12.5 SecurCore2.12.5 SecurCore 系列核系列核SecurCoreSecurCore 系列微处理器专为安全需要而设计,系列微处理器专为安全需要而设计,

提供了完善的提供了完善的 3232位位 RISCRISC 技术的安全解决方案,因技术的安全解决方案,因此,此, SecurCoreSecurCore 系列微处理器除了具有系列微处理器除了具有 ARMARM 体系体系结构的低功耗、高性能的特点外,还具有其独特的结构的低功耗、高性能的特点外,还具有其独特的优势,即提供了对安全解决方案的支持。优势,即提供了对安全解决方案的支持。 带有灵活的保护单元,以确保操作系统和应用带有灵活的保护单元,以确保操作系统和应用数据的安全。数据的安全。采用软内核技术,防止外部对其进行扫描探测。采用软内核技术,防止外部对其进行扫描探测。可集成用户自己的安全特性和其他协处理器。可集成用户自己的安全特性和其他协处理器。

Page 72: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

2.13 ARM2.13 ARM 指令集与寻址模式指令集与寻址模式1111

3333

2222

ARM 微处理器指令的分类

ARM 微处理器指令的寻址方式

ARM 微处理器指令的条件域

Page 73: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM微处理器的指令系统微处理器的指令系统 ARM微处理器指令的分类 ARMARM 微处理器的指令集是加载微处理器的指令集是加载 // 存储型的,也即指令集仅能处存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载存储器的访问则需要通过专门的加载 // 存储指令来完成。存储指令来完成。

ARMARM 微处理器的指令集可以分为六大类微处理器的指令集可以分为六大类 ::跳转指令跳转指令数据处理指令数据处理指令程序状态寄存器(程序状态寄存器( PSRPSR )处理指令)处理指令加载加载 // 存储指令存储指令协处理器指令和异常产生指令协处理器指令和异常产生指令

Page 74: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 微处理器指令表微处理器指令表 -1-1助记符 指令功能描述

ADC 带进位加法指令ADD 加法指令AND 逻辑与指令B 跳转指令BIC 位清零指令BL 带返回的跳转指令BLX 带返回和状态切换的跳转指令BX 带状态切换的跳转指令

ARM微处理器指令的分类

Page 75: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 微处理器指令表微处理器指令表 -2-2助记符 指令功能描述

CDP 协处理器数据操作指令CMN 比较反值指令CMP 比较指令EOR 异或指令LDC 存储器到协处理器的数据传输指令LDM 加载多个寄存器指令LDR 存储器到寄存器的数据传输指令MCR ARM 寄存器到协处理器寄存器数据传输

ARM微处理器指令的分类

Page 76: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 微处理器指令表微处理器指令表 -3-3助记符 指令功能描述

MLA 乘加运算指令MOV 数据传送指令MRC 协处理器寄存器到 ARM 寄存器数据传输MRS 传送 CPSR或 SPSR 的内容到通用寄存

器MSR 传送通用寄存器到 CPSR或 SPSR 的指令MUL 32 位乘法指令

MLA 32 位乘加指令MVN 数据取反传送指令

ARM微处理器指令的分类

Page 77: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 微处理器指令表微处理器指令表 -4-4助记符 指令功能描述

ORR 逻辑或指令RSB 逆向减法指令RSC 带借位的逆向减法指令SBC 带借位减法指令STC 协处理器寄存器写入存储器指令STM 批量内存字写入指令STR 寄存器到存储器的数据传输指令SUB 减法指令

ARM微处理器指令的分类

Page 78: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 微处理器指令表微处理器指令表 -5-5助记符 指令功能描述

SWI 软件中断指令

SWP 交换指令

TEQ 相等测试指令

TST 位测试指令

ARM微处理器指令的分类

Page 79: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

指令的条件域 指令的条件域 当处理器工作在当处理器工作在 ARMARM 状态时,几乎所有的指令均根状态时,几乎所有的指令均根据据 CPSRCPSR 中条件码的状态和指令的条件域有条件的中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。则指令被忽略。

每一条每一条 ARMARM 指令包含指令包含 44 位的条件码,位于指令的位的条件码,位于指令的最高最高 44 位位 [31:28][31:28] 。条件码共有。条件码共有 1616 种,每种条件种,每种条件码可用两个字符表示,这两个字符可以添加在指令码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。例如,跳转指令助记符的后面和指令同时使用。例如,跳转指令 BB可以加上后缀可以加上后缀 EQEQ 变为变为 BEQBEQ 表示“相等则跳转”,表示“相等则跳转”,即当即当 CPSRCPSR 中的中的 ZZ 标志置位时发生跳转。 标志置位时发生跳转。

ARM微处理器指令的条件域

Page 80: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

指令的条件域表指令的条件域表 -1-1条件码 后缀 标 志 含 义

0000 EQ Z置位 相等0001 NE Z清零 不相等0010 CS C置位 无符号数大于或等

于0011 CC C清零 无符号数小于0100 MI N置位 负数0101 PL N清零 正数或零0110 VS V置位 溢出0111 VC V清零 未溢出

ARM微处理器指令的条件域

Page 81: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

指令的条件域表指令的条件域表 -2-2条件码 后缀 标 志 含 义

1001 LS C清零 Z置位 无符号数小于或等于

1010 GE N 等于 V 带符号数大于或等于

1011 LT N 不等于 V 带符号数小于

1100 GT Z清零且( N等于 V )

带符号数大于

1101 LE Z置位或( N不等于 V )

带符号数小于或等于

1110 AL 忽略 无条件执行

ARM微处理器指令的条件域

Page 82: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

ARMARM 指令的寻址方式指令的寻址方式ARMARM 指令系统支持如下几种常见的寻址方式:指令系统支持如下几种常见的寻址方式: 立即寻址 立即寻址 寄存器寻址 寄存器寻址 寄存器间接寻址 寄存器间接寻址 基址变址寻址 基址变址寻址 多寄存器寻址 多寄存器寻址 相对寻址 相对寻址 堆栈寻址堆栈寻址

ARM微处理器指令的寻址方式

Page 83: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

立即寻址 立即寻址 立即寻址也叫立即数寻址,这是一种特殊的寻址方立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如以下指令:的寻址方式也就叫做立即寻址。例如以下指令:ADDADD R0R0,, R0R0 ,#,# 11 /*R0←R0/*R0←R0++ 1*/1*/

ADDADD R0R0,, R0R0 ,#,# 0x3f0x3f /*R0←R0/*R0←R0++ 0x3f*/0x3f*/

在以上两条指令中,第二个源操作数即为立即数,在以上两条指令中,第二个源操作数即为立即数,要求以“#”为前缀,对于以十六进制表示的立即要求以“#”为前缀,对于以十六进制表示的立即数,还要求在“#”后加上“数,还要求在“#”后加上“ 0x”0x” 。。

ARM微处理器指令的寻址方式

Page 84: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

寄存器寻址 寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。一种方式,也是一种执行效率较高的寻址方式。以下指令:以下指令:ADDADDR0R0,, R1R1,, R2R2 /*R0←R1/*R0←R1++R2*/R2*/

该指令的执行效果是将寄存器该指令的执行效果是将寄存器 R1R1和和 R2R2 的内的内容相加,其结果存放在寄存器容相加,其结果存放在寄存器 R0R0 中。 中。

ARM微处理器指令的寻址方式

Page 85: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

寄存器间接寻址 寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。例如以下指令:址,而操作数本身存放在存储器中。例如以下指令: ADD R0ADD R0,, R1R1,, [R2][R2] /*R0←R1/*R0←R1++[R2]*/[R2]*/ LDRLDR R0R0,, [R1][R1] /*R0←[R1]*//*R0←[R1]*/ STRSTR R0R0,, [R1][R1] /*[R1]←R0*//*[R1]←R0*/在第一条指令中,以寄存器在第一条指令中,以寄存器 R2R2 的值作为操作数的地的值作为操作数的地址,在存储器中取得一个操作数后与址,在存储器中取得一个操作数后与 R1R1 相加,结果相加,结果存入寄存器存入寄存器 R0R0中中 ;;第二条指令将以第二条指令将以 R1R1 的值为地址的存储器中的数据传的值为地址的存储器中的数据传送到送到 R0R0 中。中。第三条指令将第三条指令将 R0R0 的值传送到以的值传送到以 R1R1 的值为地址的存的值为地址的存储器中。储器中。

ARM微处理器指令的寻址方式

Page 86: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

基址变址寻址 基址变址寻址 基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。采用变址寻址方式的指令常见有以下常用于访问某基地址附近的地址单元。采用变址寻址方式的指令常见有以下几种形式,如下所示:几种形式,如下所示:LDR R0LDR R0,, [R1[R1 ,#,# 4]4];; R0R0←[R1←[R1++ 4]4]LDR R0LDR R0,, [R1[R1 ,#,# 4]4]!! ;; R0R0←[R1←[R1++ 4]4]、、 R1←R1R1←R1++ 44LDR R0LDR R0,, [R1] [R1] ,#,# 44 ;; R0R0←[R1]←[R1]、、 R1←R1R1←R1++ 44LDR R0LDR R0,, [R1[R1,, R2]R2] ;; R0R0←[R1←[R1++ R2]R2]在第一条指令中,将寄存器在第一条指令中,将寄存器 R1R1 的内容加上的内容加上 44 形成操作数的有效地址,从而形成操作数的有效地址,从而取得操作数存入寄存器取得操作数存入寄存器 R0R0 中。中。在第二条指令中,将寄存器在第二条指令中,将寄存器 R1R1 的内容加上的内容加上 44 形成操作数的有效地址,从而形成操作数的有效地址,从而取得操作数存入寄存器取得操作数存入寄存器 R0R0 中,然后,中,然后, R1R1 的内容自增的内容自增 44 个字节。个字节。在第三条指令中,以寄存器在第三条指令中,以寄存器 R1R1 的内容作为操作数的有效地址,从而取得操的内容作为操作数的有效地址,从而取得操作数存入寄存器作数存入寄存器 R0R0 中,然后,中,然后, R1R1 的内容自增的内容自增 44 个字节。个字节。在第四条指令中,将寄存器在第四条指令中,将寄存器 R1R1 的内容加上寄存器的内容加上寄存器 R2R2 的内容形成操作数的有的内容形成操作数的有效地址,从而取得操作数存入寄存器效地址,从而取得操作数存入寄存器 R0R0 中。中。

ARM微处理器指令的寻址方式

Page 87: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

多寄存器寻址 多寄存器寻址 采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多送。这种寻址方式可以用一条指令完成传送最多 1616 个通用寄个通用寄存器的值。以下指令:存器的值。以下指令:LDMIA R0LDMIA R0,, {R1{R1,, R2R2,, R3R3,, R4}R4} ;; R1R1←[R0]←[R0]

;; R2R2←[R0←[R0++ 4]4]

;; R3R3←[R0←[R0++ 8]8]

;; R4R4←[R0←[R0++ 12]12]

该指令的后缀该指令的后缀 IAIA 表示在每次执行完加载表示在每次执行完加载 // 存储操作后,存储操作后, R0R0按按字长度增加,因此,指令可将连续存储单元的值传送到字长度增加,因此,指令可将连续存储单元的值传送到 R1R1~~R4R4 。。

ARM微处理器指令的寻址方式

Page 88: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

相对寻址 相对寻址 与基址变址寻址方式相类似,相对寻址以程序计与基址变址寻址方式相类似,相对寻址以程序计数器数器 PCPC 的当前值为基地址,指令中的地址标号的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效作为偏移量,将两者相加之后得到操作数的有效地址。以下程序段完成子程序的调用和返回,跳地址。以下程序段完成子程序的调用和返回,跳转指令转指令 BLBL 采用了相对寻址方式:采用了相对寻址方式:BLBL NEXTNEXT ;跳转到子程序;跳转到子程序 NEXTNEXT 处执行处执行…………

NEXTNEXT

…………

MOVMOV PCPC,, LRLR ;从子程序返回;从子程序返回

ARM微处理器指令的寻址方式

Page 89: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

堆栈寻址 堆栈寻址 堆栈是 一 种 数 据 结 构 ,按先进后出堆栈是 一 种 数 据 结 构 ,按先进后出(( First In Last OutFirst In Last Out ,, FILOFILO )的方式)的方式工作,使用一个称作堆栈指针的专用寄存工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指器指示当前的操作位置,堆栈指针总是指向栈顶。向栈顶。当堆栈指针指向最后压入堆栈的数据时,当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(称为满堆栈( Full StackFull Stack ),而当堆栈指),而当堆栈指针指向下一个将要放入数据的空位置时,针指向下一个将要放入数据的空位置时,称为空堆栈(称为空堆栈( Empty StackEmpty Stack )。)。

ARM微处理器指令的寻址方式

Page 90: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

堆栈寻址堆栈寻址 根据堆栈的生成方式,又可以分为递增堆栈(根据堆栈的生成方式,又可以分为递增堆栈( Ascending Ascending StackStack )和递减堆栈()和递减堆栈( Decending StackDecending Stack ),当堆栈由低地址),当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址生成时,称为递减堆栈。这样就有四种类型的堆栈工作方生成时,称为递减堆栈。这样就有四种类型的堆栈工作方式式 ::

满递增堆栈:堆栈指针指向最后压入的数据,且由低地址满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。向高地址生成。满递减堆栈:堆栈指针指向最后压入的数据,且由高地址满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。向低地址生成。空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。且由低地址向高地址生成。空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成且由高地址向低地址生成

ARM微处理器指令的寻址方式

Page 91: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

例子例子 :ARM:ARM 程序设计程序设计ARMARM 汇编汇编 :: 选择排序选择排序

详见详见 :: 示例程序示例程序 example/ADS_example/example/ADS_example/ 选择排序选择排序 /selectSort/selectSort

ARMARM 汇编汇编 :: 冒泡排序冒泡排序详见详见 :: 示例程序示例程序 example/ADS_example/example/ADS_example/ 冒泡排序冒泡排序 //

bubbleSortbubbleSort

其他示例其他示例

Page 92: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

3.14 Xscale pxa2703.14 Xscale pxa270

(1) pxa270(1) pxa270 芯片总述芯片总述及及芯片特性概述 芯片特性概述 见见 Intel xscale datasheetIntel xscale datasheet

(2) pxa270(2) pxa270 开发板引脚及电路连接开发板引脚及电路连接见电路原理图见电路原理图

(3) pxa270 GPIO(3) pxa270 GPIO 控制控制见见 Intel xscale datasheetIntel xscale datasheet

Page 93: 第 3 章  体系结构与指令系统

西南林学院计算机系 贺金平

本章结束本章结束 ,,谢谢谢谢 !!