58
微微微微微微微微微 微微微ARM 微微微微微微微微 主主主 主主主主 主主主主主主主主主主

微机原理与接口技术 第二章: ARM 微处理器硬件结构

Embed Size (px)

DESCRIPTION

微机原理与接口技术 第二章: ARM 微处理器硬件结构. 主讲人:鞠 雷 山东大学 计算机科学与技术学院.  内容提要. 计算机体系结构. ARM 处理器结构 和技术特征. ARM 处理器模式及内部寄存器. ARM 存 储 系 统 机 制. 计算机体系结构. 计算机中,按内存的组成分两种典型的结构: 1. 冯 · 诺依曼结构 / 普林斯顿结构 ( von Neumann architecture / Princeton architecture ) 2. 哈佛结构 (Harvard architecture). 冯 · 诺依曼体系结构. - PowerPoint PPT Presentation

Citation preview

Page 1: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

微机原理与接口技术 第二章: ARM 微处理器硬件结构

微机原理与接口技术 第二章: ARM 微处理器硬件结构

主讲人:鞠 雷

山东大学 计算机科学与技术学院

Page 2: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

 内容提要 内容提要

2

ARM 存 储 系 统 机 制

ARM 处理器模式及内部寄存器

ARM 处理器结构和技术特征

计算机体系结构

Page 3: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

计算机体系结构计算机体系结构 计算机中,按内存的组成分两种典型的结构:1. 冯 · 诺依曼结构 / 普林斯顿结构 (von Neumann architecture / Princeton architecture)

2. 哈佛结构 (Harvard architecture)

3

Page 4: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

冯 · 诺依曼体系结构冯 · 诺依曼体系结构

4

指令寄存器控制器

数据通道输入 输出

中央处理器

存储器

程序

指令 0指令 1指令 2指令 3指令 4

数据

数据 0数据 1数据 2

结构特点: 1 、指令和数据存储在相同的内存空间,但存储地址不同。2 、处理器利用相同的总线处理内存中的指令和数据,指令和数据具有相同的数据宽度,指令与数据无法同时存取。

ARM7 嵌入式微处理器亦采用此结构

地址 0

Page 5: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

哈佛雕像哈佛雕像

Page 6: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

哈佛体系结构哈佛体系结构

6

指令寄存器控制器

数据通道输入 输出

CPU

程序存储器

指令 0指令 1指令 2

数据存储器

数据 0数据 1数据 2

地址

指令

地址

数据

结构特点:1 、指令存储和数据存储分开,指令和数据分别位于不同的存储空间。2 、指令与数据的存取采用不同总线。

数字信号处理器 DSP 通常采用哈佛结构 , ARM9 嵌入式微处理器亦采用此结构( modified-Harvard architecture )。

地址 0

地址 0

Page 7: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

两种体系结构的比较与发展两种体系结构的比较与发展 各自的优缺点

灵活性 从存储系统读取数据并作为指令执行 Just-in-time compilation Self-modified code

资源利用 执行效率 结构复杂度 可靠性 面向的应用程序 …

发展 早期: PC ( x86 )冯 · 诺依曼结构,单片机 (8051) 哈佛结

构 如今: modified Harvard architecture

课后阅读: http://en.wikipedia.org/wiki/Modified_Harvard_architecture

Page 8: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

第 2 章 ARM 微处理器硬件结构第 2 章 ARM 微处理器硬件结构

8

ARM 存 储 系 统 机 制

ARM 处理器模式及内部寄存器

ARM 处理器结构和技术特征

计算机体系结构

Page 9: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARMARM

9

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

ARM Barn

Page 10: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM ARM

10

Page 11: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

RealView 开发工具RealView 开发工具Debug Tools

AXD (part of ADS)Trace Debug ToolsMulti-ICEMulti-Trace

Platforms

ARMulator (part of ADS)Integrator™ Family

Compilation Tools

ARM Developer Suite (ADS) –

Compilers (C/C++ ARM & Thumb),Linker & Utilities

RealView Compilation Tools (RVCT)

RealView Debugger (RVD)

RealView ICE (RVI)

RealView Trace (RVT)

RealView ARMulator ISS (RVISS)

www.realview.com.cn/

Page 12: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 处理器内核 ( 简称 ARM 核 ) 新增ARM 处理器内核 ( 简称 ARM 核 ) 新增

所谓 ARM 核就是传统意义上的微处理器,目前 ARM 公司共推出了 7 个 ARM 版本,这些版本的变化主要体现在内核的变化和内核的扩展。

ARM 核 =ALU+CU+R+ 内部总线主要包括:1 、算术逻辑部件2 、控制部件 CU ( Control Unit )3 、寄存器组 R ( Registers )4 、内部总线。

12

Page 13: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM7 硬件结构ARM7 硬件结构

Page 14: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 处理器内核ARM 处理器内核 微处理器是整个系统的核心,通常由 4 部分组成:控制部件、

算术逻辑部件、寄存器组和内部总线。

14

算术逻辑单元(ALU)

寄存器组(register bank)

控制单元

CU

微处理器

存储器

输入 输出

Page 15: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

时钟

中断

总线控制

电源

调试

协处理器接口

存储管理接口

存储器

处理器状态

处理器模式

边界扫描控制信号

边界扫描

1 、时钟 mclk 系统时钟 wait 等待信号,为低时arm7 等待。2 、中断信号 nIRQ 外部中断 nFIQ 快速中断3 、总线控制 复位、总线使能、字节 / 字选择等4 、存储器信号 地址线A[31 : 0] ,内部数据线Dout Din[31 :0] 、 Din[31 : 0] 和 D Din[31 : 0] ,读写控制nRW

5 、边界扫描 通过边界扫描寄存器(位于芯片管脚附近)观察和控制调试状态下的处理器芯片内部状态。 http://www.eefocus.com/article/08-08/49830s.html

ARM7 内核硬件结构ARM7 内核硬件结构

Page 16: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

16

3级流水线的ARM核

1 、取指

2 、译码

冯 · 诺依曼结构 ARM7 3级流水线的 ARM 核3 、执行

Page 17: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

基本组成 : (详见前图 )

1 、寄存器块 由通用寄存器和状态寄存器组成,主要用来保存处理器状态和处

理器工作中的数据。 5 个对外端口 2 个读端口,用于读 2 个源操作数; 1 个写端口,用于写入目的操作数; 上述端口都可访问任意寄存器; 1 个专门访问程序计数器 R15 的附加读端口; 1 个附加写端口。

17

Page 18: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

3 、桶式移位器 主要完成指令中第 2 个操作数移位。4 、 ALU 执行算术逻辑运算5 、地址寄存器和增值器 选择和保存所有存储器地址,并在需要时通过地址增值

器生成顺序地址。6 、数据寄存器 对传送到存储器或从存储器取回的数据暂

存。7 、控制通路 / 控制器 基本功能模块是指令解码器和相关的控制逻辑。

18

Page 19: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本 ARM 体系结构共定义了 7 个版本,版本号分别为 1—

7 。同时,各版本中还有一些变种,这里将某些特定功能称为 ARM 体系的某种变种 (variant)

ARM 体系结构版本的变化主要体现为增加 ARM 核外围的组件以改善 ARM 性能和增加内核的功能。硬件 ARM 核外围的组件扩展: 1 、 cache 和紧耦合存储器 TCM (片上 RAM ) 2 、存储管理部件 MMU

3 、协处理器(配置 cache 、 TCM 和存储管理)ARM 核的扩充功能:1 、 T 变种 Thumb 指令集2 、 M 变种 增加 64 位长乘法指令

19

Page 20: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本

3 、 E 变种 增强型 DSP 指令 E 变种的 ARM 体系增加了一些增强处理器对典型的

DSP 算法处理能力的附加指令。4 、 J 变种 java加速器 Jazelle 提供了 Java加速功能,使得 Java代码的运行速度比普通的 Java虚拟机提高了 8倍。

5 、 SIMD 变种(单指令流多数据流) ARM媒体功能扩展 ARM媒体功能扩展 SIMD 技术极大地提高了嵌入式应用

系统的音频和视频处理能力,可使微处理器的音频和视频处理性能提高 4倍。

20

Page 21: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本• 各 ARM 体系结构版本—— V1 自学

该版本的 ARM 体系结构,只有 26 位的寻址空间,没有商业化,其特点为: 基本的数据处理指令(不包括乘法); 字节、字和半字加载 / 存储指令; 具有分支指令,包括在子程序调用中使用的分支和链接指令; 在操作系统调用中使用的软件中断指令。

21

Page 22: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本• 各 ARM 体系结构版本—— V2 自学

同样为 26 位寻址空间,现在已经废弃不再使用,它相对 V1 版本有以下改进: 具有乘法和乘加指令; 支持协处理器; 快速中断模式中的两个以上的分组寄存器; 具有原子性加载 / 存储指令 SWP 和 SWPB 。

22

Page 23: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本• 各 ARM 体系结构版本—— V3 自学

寻址范围扩展到 32 位(目前已废弃),具有独立的程序: 具有乘法和乘加指令; 支持协处理器; 快速中断模式中具有的两个以上的分组寄存器; 具有原子性加载 / 存储指令 SWP 和 SWPB 。

23

Page 24: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本• 各 ARM 体系结构版本—— V4 自学

不在为了与以前的版本兼容而支持 26 位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对 V3 版本作了以下的改进: 半字加载 / 存储指令; 字节和半字的加载和符号扩展指令; 具有可以转换到 Thumb 状态的指令( BX ); 增加了用户模式寄存器的新的特权处理器模式。

24

Page 25: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本• 各 ARM 体系结构版本—— V5 自学

在 V4 版本的基础上,对现在指令的定义进行了必要的修正,对 V4 版本的体系结构进行了扩展并并增加了指令,具体如下: 改进了 ARM/Thumb 状态之间的切换效率; E---增强型 DSP 指令集 , 包括全部算法操作和 16 位乘法操作; J----支持新的 JAVA, 提供字节代码执行的硬件和优化软件加速功能。

25

Page 26: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本• 各 ARM 体系结构版本—— V6 自学

V6 版架构是 2001年发布的,首先在 2002年春季发布的ARM11 处理器中使用。此架构在 V5 版基础上增加了以下功能:改进了 ARM/Thumb 状态之间的切换效率; THUMBTM : 35%代码压缩; DSP 扩充:高性能定点 DSP功能; JazelleTM : Java 性能优化,可提高 8倍; Media 扩充:音 /视频性能优化,可提高 4倍。

26

Page 27: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 体系结构版本ARM 体系结构版本• 各 ARM 体系结构版本—— V7 自学• ARMv7定义了 3 种不同的处理器配置( processor profiles ) :

▫ Profile A(application) 是面向复杂、基于虚拟内存的 OS 和应用的

▫ Profile R(real-time) 是针对实时系统的;▫ Profile M(microcontroller) 是针对低成本应用的优化的微控制器

的。• 所有 ARMv7 profiles实现 Thumb-2 技术,同时还包括了

NEON™ 技术的扩展提高 DSP 和多媒体处理吞吐量 400% ,并提供浮点支持以满足下一代 3D图形和游戏以及传统嵌入式控制应用的需要。

27

Page 28: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 处理器的分类ARM 处理器的分类

28

Page 29: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM7 微处理器系列 (一般了解)

特点: 冯诺伊曼体系结构; ARM7TDMI 是目前应用最广的微处理器核 ; ARM720T带有 MMU 和 8KB 的指令数据混合 cache; ARM7EJ- 执行 ARMv5TEJ 指令, 5级流水线,提供 Java加速

指令,没有存储器保护。

29

ARM命名规则:1 、基于 ARM Architecture 的版本命名规则| ARM Vn | variants | x ( variants ) | Vn n -- 指令集版本号, n[1:7] 。 ·variants -- 变种。 ·x ( variants ) -- 排除 x 后指定的变种 例, ARMv5TxM表示 ARM 指令集版本为 5 ,支持 T 变种,不支持M 变种。2 、基于 ARM 处理器系列命名规则ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S} ·x -- 处理器系列 ·y -- 存储管理 /保护单元 ·z -- cache ··D -- 支持片上调试(加断点,单步执行)·I -- 支持 Embedded ICE ,支持嵌入式跟踪调试。开发环境可跟踪调试目标板。·-S -- 可综合版本,无 s硬核 ,工艺固定不可综合。

Page 30: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM7TDMIARM7TDMI

30

ARM7TDMI :整数处理核 ARM7TDMI 处理器的可综合版本; ARM720T :带MMU 的处理器核心,支持操作系统;ARM7EJ-S :带有 DSP 和 Jazelle TM 技术,能够实现 Java加速功能

支持高密度 16 位的 Thumb 指令集;支持片上调试;支持 64 位乘法;支持 Embeded-ICE 观察硬件 ;

ARM7TDMI 的可综合( synthesizable )版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致;

ARM7 T D M I - S

Page 31: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM710T ARM720TARM710T ARM720T

31

ARM7TDMI内核

地址

地址

数据读

AMBA接口

写缓冲

MMU

数据写

数据

ARM7xxT

控制逻辑

Cache

AMBA总线接口

JTAG 和非 AMBA 信号

CP15

带 Cache 的 ARM720T ARM710T

• 8K 统一的 cache • 完整的内存管理单元

( MMU ),支持虚拟地址和存储器保护

• 写缓冲

ARM720T

同 ARM710T ,但支持 WinCE

ARM740T• 8K 统一的 cache• 存储管理单元• 写缓冲

MMU 存储管理单元,其核心部件是TLB (快表), TLB保存了最近访问的物理页地址,若 TLB命中可快速取得变量的物理地址。

Cp15 ARM 内置协处理器,含有多个寄存器,用于配置MMU 、 cache 和writer buffer 。Writer buffer 写缓

冲,暂存地址和数据,提高地址和数据的访问速度。

advanced microcontroller bus architecture

取指(操作数存取 ) 过程: 1 、内核首先以虚拟地址访问 cache ,若 cache命中则从cache 取指。 2 、若 cache未命中,则访问MMU 中的 TLB 。若 TLB命中,则把 TLB 中的物理页号与虚拟地址的低位拼接成物理地址,以该地址访问内存。 3 、若 TLB未命中,则以虚拟地址访问内存页表。

Page 32: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM 处理器工作状态ARM 处理器工作状态

ARM 和 Thumb 状态 ARM 指令系统( V4 版以后具有 Thumb 指令集):

32 位 ARM 指令集:固定的 32 位指令, Load/Store RISC 特征,3 地址格式。

16 位 Thumb 指令集:是 ARM 指令集的子集,按 16 位指令重新编码,固定的 16 位指令, Load/Store RISC 特征, 2 地址格式。

注意:两个状态之间的切换并不影响处理器模式或寄存器内容。

Page 33: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

流水线作业 (Pipelining)流水线作业 (Pipelining)

4 位同学洗衣服 ( A,B,C,D )

洗衣服: 30 分钟烘干: 40 分钟叠衣服: 20 分钟

A B C D

Page 34: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

方法一:线性作业方法一:线性作业

共需 6小时

A

B

C

D

30 40 20 30 40 20 30 40 20 30 40 20

6 PM 7 8 9 10 11 Midnight

T

a

s

k

O

r

d

e

r

Time

Page 35: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

方法二 : 流水线方法二 : 流水线

共需 3.5小时

A

B

C

D

6 PM 7 8 9 10 11 Midnight

T

a

s

k

O

r

d

e

r

Time

30 40 40 40 40 20

Page 36: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

流水线流水线 处理器性能提高的核心技术之一 使用条件: 1. 多个独立任务; 2. 任务可被分解; 3. 分解后的子任务使用不同资源

参数: 1. throughput( 性能 )

2. latency ( 时延 )

Page 37: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

Pipeline Throughput and LatencyPipeline Throughput and Latency

s1 s2 s3

4 ns 10 ns 3 ns

Pipeline throughput: instructions completed per second.

1 instr. / max[s1,s2,s3] = 1 instr. / 10ns

Pipeline performance is limited by the slowest pipeline stagePipeline latency: how long does it take to execute a single instruction in the pipeline.

wait

1st instr. 4+10+3 = 17 ns

2nd instr. 4+6(wait)+10+3 = 23 ns

3rd instr. 4+12(wait)+10+3= 29 ns

s1 s2 s3

4 ns 10 ns 3 ns

waits1 s2 s3

4 ns 10 ns 3 ns

Use balanced pipeline stage length!

Page 38: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

Pipeline SpeedupPipeline Speedup

pipelined n timeinstructio Average

dunpipeline n timeinstructio Averagepipeliningfrom Speedup

上个例子中: speedup = 17/10 = 1.7

练习题:假设一台不使用流水线的计算机每个时钟周期( cycle )为1ns ,其中执行一条 ALU运算或一条分支指令需要 4 个周期,读写存储器的指令需要 5 个周期。某一在该计算机上运行的程序中以上三种指令分别占 40%, 20%, and 40% 。如在该计算机上采用流水线技术,假设由于流水线设置、时钟偏移等因素造成的流水线额外开销 (pipeline overhead)为每时钟周期 0.2ns ,请问理想状态下流水线对系统性能的提升率(speedup) 是多少?

Speedup= 4.4/1.2=3.7

Page 39: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

AR 流水线技术AR 流水线技术 流水线 (Pipeline) 技术:若干个指令可以并行执行

提高了 CPU 的运行效率 内部信息流要求通畅流动

3-stage流水线: 每条指令需要(至少) 3 cycles ( latency ) 平均每个 cycle完成一条指令 ( throughput )

(pc-8)add

(pc-4)sub

(pc)cmp

译码取指 执行 add

译码取指 执行 sub

译码取指 执行 cmp

时间3周期指令的 ARM3级流水线

1T 2T 3T

Page 40: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

流水线技术流水线技术 为增加处理器指令流的速度, ARM7 系列使用 3级流水线

允许多个操作同时处理,比逐条指令执行要快。

PC 指向正被取指的指令,而非正在执行的指令

Fetch

Decode

Execute

从存储器中读取指令 cmp

解码指令 sub

寄存器读(从寄存器 Bank )移位及 ALU操作寄存器写(到寄存器 Bank ) add

PC PC

PC-4 PC-2

PC-8 PC-4

ARM Thumb

当前 pc 所指向的指令已完成取指的指令

已完成解码的指令

Page 41: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

流水线技术 ( pipeline hazard )流水线技术 ( pipeline hazard ) ( 2 )解决流水线相关 :

结构相关

数据相关

控制相关

如果某些指令在流水线中重叠执行时,产生资源冲突,则称该流水线存在结构相关。 解决:资源重复( Cache 分离、 ALU 中单独的地址计算加法器)

写后读”、“写后写” “读后写” 解决:专用通路提高写入寄存器的速度,流水线互锁技术硬件会停止相关指令的执行。

当流水线遇到分支指令和其他会改变 PC值的指令时,取指取决于指令执行条件,可能需重新取指,致使流水线停顿。解决:引入延时分支 (硬件加入空操作指令 ) 、尽早计算转移成功时的目标地址。

add r0,r1,r2

mov r2,r0

add r0,r1,r2

add r0,r3,r5

mov r2,r0

add r0,r1,r2

Page 42: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

多周期 ARM 指令的 3 级流水线操作( 结构相关 ) 多周期 ARM 指令的 3 级流水线操作( 结构相关 )

f etch ADD decode excute1

2

3

指令 时间

f etch STR decode cal c: addr data xfer

fetch ADD decode excute

fetch ADD decode excute

fetch ADD decode excute

4

5

STR 计算存储器地址与 ADD译码,都为下一周期产生数据传送控制信号,不能同步进行。 Data xfer-excute占用数据路径两条指令不

能同时译码。

取指与存数冲突

若流水线产生资源冲突,则称该流水线存在结构相关。 如,取指存数冲突, 2条指令同时占用译码级等。

1T 2T 3T 4T 5T 6T 7T 8T

Page 43: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

流水线结构相关( structural hazards )流水线结构相关( structural hazards )

译码 取指

译码 取指 执行 xx

译码 取指 执行 yy

执行 st/ld 都需要访问存储器,

无法同时进行

译码 取指

译码 取指 执行 xx

译码 取指 执行 yy

执行 st/ld

stall

Page 44: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

冯 . 诺依曼瓶颈冯 . 诺依曼瓶颈 Von Neumann bottleneck

计算机的性能受制于存储器的读写速度 在 ARM7 的 3-stage pipeline 中,一个 cycle 只能进行一次储存器

读 / 写 (either fetch an instruction or transfer data)

解决办法 更快的存储器( cache , bus bandwidth ) 使 instruction 和 data访问分离( Harvard architecture )

更高性能的 ARM Increase pipeline stages Separated instruction and data memories (caches)

Page 45: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

流水线技术流水线技术 在 ARM7 的 3级流水线结构中流水线易出现间断,这必然降低了流水线的效率,为了提高处理器的性能,必然要考虑如何优化处理器的组织结构。

( 1 )缩短程序执行时间 :

提高时钟频率 fclk

减少每条指令的平均时钟周期数 CPI

Tprog :程序执行时间Ninst :指令条数CPI :指令平均时钟周期数fclk :时钟频率

Page 46: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

流水线技术流水线技术

ARM 各个系列的流水线:

预取(Fetch)

译码(Decode)

执行(Execute)

预取(Fetch)

译码(Decode)

执行(Execute)

访存(Memory)

写入(Write)

预取(Fetch)

译码(Decode)

发送(Issue)

预取(Fetch)

预取(Fetch)

执行(Execute)

访存(Memory)

写入(Write)

译码(Decode)

发送(Issue)

执行(Execute)

转换(Snny)

访存(Memory)

写入(Write)

ARM7

ARM9

ARM10

ARM11

Page 47: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM9TDMIARM9TDMI

47

Page 48: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM9EARM9E

• ARM9E 微处理器系列 自学

特点: ARM9E 是针对微控制器、 DSP 和 Java 的单处理器解决方案;

ARM Jazelle  技术提供 8倍的 Java 加速性能 (ARM926EJ-S) ;

5-级整数流水线; 在 0.13µm工艺下最高性能可达到 300MIPS ( Dhrystone 2.1测

试标准);可选择的 向量浮点单元 VFP9 协处理器指令优秀海浮点性能,对于3D图形加速和实时控制可达到 215MFLOPS

高性能的 AHB 总线,带 MMU可在 0.18µm, 0.15µm, 0.13µm工艺的硅芯片上实现。以 44.1 KHz@128 kbps码率的 MP3音乐文件为例, ARM7TDMI需

要占用 20MHz以上的资源,而 ARM926EJ则只要小于 10MHz 的资源,充分体现了 ARM9E 的 DSP 处理能力。

48

Page 49: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

ARM9 5-stage pipelineARM9 5-stage pipeline

ARM7

ARM9

Page 50: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

5-stage Pipeline5-stage Pipeline

优点: 减少每个 pipeline stage (cycle) 的执行时间,提高 pipeline

throughput 和 speedup 减少结构相关:多级流水线,独立指令和数据缓存 ( 哈佛结构 ) 减少数据相关:采用 forwarding 技术 减少控制相关:分支预测 http://en.wikipedia.org/wiki/Hazard_(computer_architecture)#Re

gister_forwarding ( 课外阅读 )

Reg

ALU

DMemIfetch Reg

Reg

ALU

DMemIfetch Reg

RegA

LU

DMemIfetch Reg

RegA

LU

DMemIfetch Reg

Cycle 1Cycle 2Cycle 3Cycle 4 Cycle 6Cycle 7Cycle 5

Page 51: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

51

Data HazardsData Hazards Data hazards occur when the pipeline changes the order of

read/write accesses to operands so that the order differs from the order seen by sequentially executing instructions on the unpipelined machine.

Clock cycle number

1 2 3 4 5 6 7 8 9

ADD R1,R2,R3 IF ID EX MEM WB

SUB R4,R5,R1 IF IDsub EX MEM WB

AND R6,R1,R7 IF IDand EX MEM WB

OR R8,R1,R9 IF IDor EX MEM WB

XOR R10,R1,R11 IF IDxor EX MEM WB

*Data hazards slides are adopted from Lung-Hao Chang, National Taiwan University

Page 52: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

52

ForwardingForwarding The problem with data hazards, introduced by this sequence of

instructions can be solved with a simple hardware technique called forwarding.

Clock cycle number

1 2 3 4 5 6 7

ADD R1,R2,R3 IF ID EX MEM WB

SUB R4,R5,R1 IF IDsub EX MEM WB

AND R6,R1,R7 IF IDand EX MEM WB

Page 53: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

53ARM Platform Design 09/21/2003

Forwarding ArchitectureForwarding Architecture Forwarding works as

follows: The ALU result from the

EX/MEM register is always fed back to the ALU input latches.

If the forwarding hardware detects that the previous ALU operation has written the register corresponding to the source for the current ALU operation, control logic selects the forwarded result as the ALU input rather than the value read from the register file.

I-cache

rot/sgn ex

+4

byte repl.

ALU

I decode

register read

D-cache

fetch

instructiondecode

execute

buffer/data

write-back

forwardingpaths

immediatefields

nextpc

regshift

load/storeaddress

LDR pc

SUBS pc

post-index

pre-index

LDM/STM

register write

r15

pc + 8

pc + 4

+4

mux

shift

mul

B, BL

MOV pc

forwarding paths

Page 54: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

54

Forward DataForward Data

The first forwarding is for value of R1 from EXadd to EXsub. The second forwarding is also for value of R1 from MEMadd to EXand. This code now can be executed without stalls.

Forwarding can be generalized to include passing the result directly to the functional unit that requires it

A result is forwarded from the output of one unit to the input of another, rather than just from the result of a unit to the input of the same unit.

Clock cycle number

1 2 3 4 5 6 7

ADD R1,R2,R3 IF ID EXadd MEMadd WB

SUB R4,R5,R1 IF ID EXsub MEM WB

AND R6,R1,R7 IF ID EXand MEM WB

Page 55: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

55

Without ForwardWithout Forward

Clock cycle number

1 2 3 4 5 6 7 8 9

ADD R1,R2,R3 IF ID EX MEM WB

SUB R4,R5,R1 IF stall stall IDsub EX MEM WB

AND R6,R1,R7 stall stall IF IDand EX MEM WB

Page 56: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

56

Data ForwardingData Forwarding

Data dependency arises when an instruction needs to use the result of one of its predecessors before the result has returned to the register file => pipeline hazards

Forwarding paths allow results to be passed between stages as soon as they are available

5-stage pipeline requires each of the three source operands to be forwarded from any of the intermediate result registers

Still one load stallLDR rN, […]ADD r2,r1,rN ;use rN immediately One stall Compiler rescheduling

Page 57: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

57

Stalls are requiredStalls are required

1 2 3 4 5 6 7 8

LDR R1,@(R2) IF ID EX MEM WB

SUB R4,R1,R5 IF ID EXsub MEM WB

AND R6,R1,R7 IF ID EXand MEM WB

OR R8,R1,R9 IF ID EXE MEM WB

The load instruction has a delay or latency that cannot be eliminated by forwarding alone.

Page 58: 微机原理与接口技术 第二章:  ARM 微处理器硬件结构

58

The Pipeline with one StallThe Pipeline with one Stall

1 2 3 4 5 6 7 8 9

LDR R1,@(R2) IF ID EX MEM WB

SUB R4,R1,R5 IF ID stall EXsub MEM WB

AND R6,R1,R7 IF stall ID EX MEM WB

OR R8,R3,R9 stall IF ID EX MEM WB

The only necessary forwarding is done for R1 from MEM  to EXsub.