高等计算机体系结构-课件-Lect8_P1
合集下载
计算机结构与组成 PPT
大家好
16
输入设备 常见的输入设备有键盘,鼠标,扫描仪
大家好
17
输出设备 常见的输出设备有显示器,打印机,绘图仪
大家好
18
外存储器 硬盘,光盘,软磁盘,可移动磁盘。
大家好
19
软件、软件系统
软件:能够指挥计算机工作的程序,与程序运行 时所需要的数据,以及与这些程序和数据 有关的文字说明和图表资料的集合。
软件系统:所有相关的计算机软件的集合。
大家好
20
系统软件
系统软件是面向计算机管理、监控、操作和 维护的软件,具有通用性和基础性。
大家好
21
应用软件
应用软件是指用户或专门的软件公司利用计算机 及其提供的系统软件为解决各种实际问题而编制 的计算机程序。
大家好
22
常见的操作系统软件有 DOS Windows95 Windows98 Windows2000 Windowsme Windowsxp Unix等
1.容量 指一条内存可容纳的字节(8位二进制)数,通常 有32MB、64MB、128MB等等。
2.存取时间:内存条芯片存取数据的速度 3.奇偶校验位 4.接口类型:包括SIMM和DIMM类型接口
大家好
10
内存储器的主要特点: 存储容量小,存取速度快,存放的信息易丢失。
大家好
11
只读存储器(ROM):
大家好
3
பைடு நூலகம்
系统主板
大家好
4
打印机接口 USB接口
PCI槽 AGP槽 内存槽
CPU接口
大家好
5
微处理器(CPU)
运算器、控制器和一组寄存器,合在一个芯片上 称之为CPU (Central Processing Unit)
计算机体系结构完整讲义ppt课件
• 计算机的更新换代
– 第一代:电子管计算机 – 第二代:晶体管计算机
硬件设计公理: 越小越快
– 第三代:中小规模集成电路
– 第四代:大或超大规模集成电路
– 第五代:VLSI(甚大规模集成电路)
计算机性能的大幅度提高和更新换代,一方面依靠 器件的不断更新,同时也依赖系统结构的不断改进。
30
二 按计算机系统成本分类
• 是对计算机系统中各机器级之间界面的划 分和定义,以及对各级界面上、下的功能 进行分配
– 1964年,IBM/360系列机的总设计工程师G.M. Amdahl、G.A. Blauw、F.P. Brooks等人提出。 也称体系结构。
– 是从程序员的角度所看到的系统的属性,是 概念上的结构和功能上的行为
• 1.2.2 计算机系统的设计方法
• ---软硬件舍取的基本原则 • ---计算机系统设计者的主要任务 • ---计算机系统设计的基本方法 (三种)
• 计算机语言:是用以描述控制流程的、 有一定规则的字符集合
– 语言不是专属软件范畴,可以介属于计算机 系统的各个层次,具有不同作用
4
1.1.1计算机系统的多级层次结构
从使用语言的角度上,将计算机系统 看成按功能划分的多级层次结构
机器、汇编、高级、应用语言
低级
高级
后者比前者功能更强、使用更方便;
而前者是后者发展的基础,在单条指令的 执行速度相比较,前者更快。
•第1章 •第2章 •第3章 •第4章 •第5章 •第6章
计算机系统设计基础 数据表示与指令系统性能分析 流水技术和向量处理 阵列计算机 多处理机系统 数据流计算机
1
第1章 计算机系统设计基础
• 1.1 计算机系统的基本概念 • 1.2 计算机系统的设计技术 • 1.3 计算机系统的性能评价 • 1.4 计算机系统结构的发展
《计算机体系结构》课件
ABCD
理解指令集体系结构、处 理器设计、存储系统、输 入输出系统的基本原理和 设计方法。
培养学生对计算机体系结 构领域的兴趣和热情,为 未来的学习和工作打下坚 实的基础。
CHAPTER
02
计算机体系结构概述
计算机体系结构定义
计算机体系结构是指计算机系统的整 体设计和组织结构,包括其硬件和软 件的交互方式。
CHAPTER
06
并行处理与多核处理器
并行处理概述
并行处理
指在同一时刻或同一时间间隔内 完成两个或两个以上工作的能力
。
并行处理的分类
时间并行、空间并行、数据并行和 流水并行。
并行处理的优势
提高计算速度、增强计算能力、提 高资源利用率。
多核处理器
1 2
多核处理器
指在一个处理器上集成多个核心,每个核心可以 独立执行一条指令。
间接寻址
间接寻址是指操作数的有效地址通过寄存器间接给出,计算机先取出 寄存器中的地址,再通过该地址取出操作数进行操作。
CHAPTER
04
存储系统
存储系统概述
存储系统是计算机体系结构中 的重要组成部分,负责存储和 检索数据和指令。
存储系统通常由多个层次的存 储器组成,包括主存储器、外 存储器和高速缓存等。
《计算机体系结构》ppt 课件
CONTENTS
目录
• 引言 • 计算机体系结构概述 • 指令系统 • 存储系统 • 输入输出系统 • 并行处理与多核处理器 • 流水线技术 • 计算机体系结构优化技术
CHAPTER
01
引言
课程简介
计算机体系结构是计算机科学的一门核心课程,主要研究计算机系统的基本组成、组织结构、工作原 理及其设计方法。
计算机系统结构课件
浮点数据就是高级语言课程中所说的“实型数”。
2.1.1.1 浮点数的组成 浮点数的组成与人们通常所说的“科学记数法”非常相似,唯一不同的是各部分 均为有限位数,如下所示
它的主要参数有8个:
m ── 尾数,一般为纯小数,符合规格化原则(即最高位的绝对值不为0), 用原码或补码表示;
e ── 阶码,整数,常用移码表示(见下文解释);
= 1.25×80%×ICA×1.1×CYCLEA = 1.1×ICA×CYCLEA < Te_A 这时B机器快一些。
Sn
• 题12 (P33)
20
Amdahl定律公式,代入已知量
Se=20变成一元函数
10.5
Sn=20/(20-19Fe)
用三点作图法作出关系曲线。
1.8
1
0
0.5
2001.9.1
计算机系统结构
•
= 1.25×80%×ICA×1.25×CYCLEA
•
= 1.25×ICA×CYCLEA > Te_A
• 显然A机器快一些。
2001.9.1
计算机系统结构
17
例题选讲(5)
• 例1.5(P12) Te公式,改动上题中CYCLEB =1.1 ×CYCLEA,则最后
Te_B = 1.25×ICB ×CYCLEB
汇编语言机器
汇编语言程序员 (使用汇编语言)
(经汇编程序翻译成机器语言、操作系统原语)
操作系统语言机器 操作系统用户 (使用操作系统原语)
(经原语解释子程序翻译成机器语言)
传统机器语言机器 传统机器程序员(使用二进制机器语言)
(由微程序解释成微指令序列)
微指令语言机器 微指令程序员 (使用微指令语言)
2.1.1.1 浮点数的组成 浮点数的组成与人们通常所说的“科学记数法”非常相似,唯一不同的是各部分 均为有限位数,如下所示
它的主要参数有8个:
m ── 尾数,一般为纯小数,符合规格化原则(即最高位的绝对值不为0), 用原码或补码表示;
e ── 阶码,整数,常用移码表示(见下文解释);
= 1.25×80%×ICA×1.1×CYCLEA = 1.1×ICA×CYCLEA < Te_A 这时B机器快一些。
Sn
• 题12 (P33)
20
Amdahl定律公式,代入已知量
Se=20变成一元函数
10.5
Sn=20/(20-19Fe)
用三点作图法作出关系曲线。
1.8
1
0
0.5
2001.9.1
计算机系统结构
•
= 1.25×80%×ICA×1.25×CYCLEA
•
= 1.25×ICA×CYCLEA > Te_A
• 显然A机器快一些。
2001.9.1
计算机系统结构
17
例题选讲(5)
• 例1.5(P12) Te公式,改动上题中CYCLEB =1.1 ×CYCLEA,则最后
Te_B = 1.25×ICB ×CYCLEB
汇编语言机器
汇编语言程序员 (使用汇编语言)
(经汇编程序翻译成机器语言、操作系统原语)
操作系统语言机器 操作系统用户 (使用操作系统原语)
(经原语解释子程序翻译成机器语言)
传统机器语言机器 传统机器程序员(使用二进制机器语言)
(由微程序解释成微指令序列)
微指令语言机器 微指令程序员 (使用微指令语言)
lect8_华科并行编程课件
What if consumer was much slower than producer?
11
Buffered Blocking Message Passing Operations
Deadlocks are still possible with buffering since receive operations block
receive
? This class of non-blocking protocols returns from the send or
receive operation before it is semantically safe to do so
? Non-blocking operations are generally accompanied by a
check-status operation
? When used correctly, these primitives are capable of
overlapping communication overheads with useful computations
? Message passing libraries typically provide both blocking and non-blocking primitives
13
Non-Blocking Message Passing Operations
Non-blocking non-buffered send and receive operations (a) in absence of communication hardware (b) in presence of communication hardware
计算机体系结构课件
详细描述
输入输出系统是计算机中用于接收外部输入(如键盘、鼠标、传感器等)和输 出数据(如显示器、打印机、音响等)的硬件设备。输入输出系统的性能和可 靠性对计算机的整体性能和使用体验至关重要。
总线与接口
总结词
总线与接口是计算机中用于连接各个部件并进行通信的通道。
详细描述
总线与接口是计算机中各个部件之间进行通信的通道。总线是连接各个部件的公共通道,而接口则是 连接外部设备和计算机的通道。通过总线与接口,各个部件之间可以相互通信并协同工作,实现计算 机的整体功能。总线与接口的性能和稳定性对计算机的整体性能和使用体验至关重要。
长电池寿命。
扩展功能
03
通过增加输入输出接口、支持多种数据类型等,可以扩展计算
机的功能和应用范围。
计算机体系结构的分类
1 2
按指令集分类
可以分为复杂指令集计算机(CISC)和精简指令 集计算机(RISC)。
按数据类型分类
可以分为固定长度数据和可变长度数据。
3
按寻址方式分类
可以分为直接寻址、间接寻址和基址加变址寻址 等。
03
计算机指令系统
指令集架构
ቤተ መጻሕፍቲ ባይዱ
复杂指令集架构 (CISC)
提供了许多复杂的指令,能够执行各种高级操作。
精简指令集架构 (RISC)
只包含简单的、基本的指令,强调通过并行处理加快执行速度。
超长指令集架构 (VLIW)
通过将多个操作数和操作码放入一个指令,实现并行处理。
指令格式与寻址方式
固定长度的指令格式
可重构计算面临着能效、可扩展性、编程模型等方面的挑 战,如何设计更高效的
THANKS
感谢观看
详细描述
存储器是计算机中用于存储数据和程序的硬件设备。根据存储速度、容量和价格的不同,计算机中存在多种类型 的存储器,如随机存取存储器(RAM)、只读存储器(ROM)、高速缓存(Cache)等。存储器的容量和速度 对计算机的性能有很大的影响。
输入输出系统是计算机中用于接收外部输入(如键盘、鼠标、传感器等)和输 出数据(如显示器、打印机、音响等)的硬件设备。输入输出系统的性能和可 靠性对计算机的整体性能和使用体验至关重要。
总线与接口
总结词
总线与接口是计算机中用于连接各个部件并进行通信的通道。
详细描述
总线与接口是计算机中各个部件之间进行通信的通道。总线是连接各个部件的公共通道,而接口则是 连接外部设备和计算机的通道。通过总线与接口,各个部件之间可以相互通信并协同工作,实现计算 机的整体功能。总线与接口的性能和稳定性对计算机的整体性能和使用体验至关重要。
长电池寿命。
扩展功能
03
通过增加输入输出接口、支持多种数据类型等,可以扩展计算
机的功能和应用范围。
计算机体系结构的分类
1 2
按指令集分类
可以分为复杂指令集计算机(CISC)和精简指令 集计算机(RISC)。
按数据类型分类
可以分为固定长度数据和可变长度数据。
3
按寻址方式分类
可以分为直接寻址、间接寻址和基址加变址寻址 等。
03
计算机指令系统
指令集架构
ቤተ መጻሕፍቲ ባይዱ
复杂指令集架构 (CISC)
提供了许多复杂的指令,能够执行各种高级操作。
精简指令集架构 (RISC)
只包含简单的、基本的指令,强调通过并行处理加快执行速度。
超长指令集架构 (VLIW)
通过将多个操作数和操作码放入一个指令,实现并行处理。
指令格式与寻址方式
固定长度的指令格式
可重构计算面临着能效、可扩展性、编程模型等方面的挑 战,如何设计更高效的
THANKS
感谢观看
详细描述
存储器是计算机中用于存储数据和程序的硬件设备。根据存储速度、容量和价格的不同,计算机中存在多种类型 的存储器,如随机存取存储器(RAM)、只读存储器(ROM)、高速缓存(Cache)等。存储器的容量和速度 对计算机的性能有很大的影响。
计算机系统结构 第一章 计算机系统结构的基础知识PPT课件
总结说明:
➢各个层之间通过翻译或解释实现的,翻译是指通过编译 器把高一级的语言程序转换成低一级的等效的语言程序, 并运行。
➢物理机
➢虚拟机是用软件实现的,但不一定完全用软件,也可以 用硬件加固件来实现。固件是指具有软件功能的硬件。
1.1.2计算机系统结构定义
1.计算机系统结构定义一:
➢ 系统结构:程序设计者所看到的一个计算机系统的属性, 即概念性结构和功能特性。Amdahl(阿姆达尔)等人于 1964年提出的。
第 6级:应用程序 第 5级:高级语言 第 4级:汇编语言 第 3级:操作系统 第 2级:机器语言 第 1级:微程序 第 0级:硬联逻辑
应用软件 系统软件 软硬件分界 硬件
第0级机器由硬件实现是 机器的硬件内核 第1级机器由微程序(固 件)实现,它根据各种指 令操作所需要的控制时序 吗,配备一套微指令,编 写出微程序,控制信息在 各寄存器之间的传送。
1.1.4.1弗林(Flynn)分类法 1.1.4.2冯氏分类法 1.1.4.3汉德勒(Händler)分类法
1.1.4.1 弗林(Flynn)分类法
弗林(Flynn)分类法按照指令流(Instruction stream,IS) 和数 据流(Data stream,DS)的多倍性进行分类。
指令流:计算机执行的指令序列。 数据流:由指令流调用的数据系列。 多倍性:在系统最受限的部件上,同n)分类法把计算机系统结构分为以下四类: 1.单指令流单数据流SISD(Single IS Single DS) 2.单指令流多数据流SIMD(Single IS Multiple DS) 3.多指令流单数据流MISD(Multiple IS Single DS) 4.多指令流多数据流MIMD(Multiple IS Multiple DS)
计算机系统组成与结构PPT第8章
基准测试程序通常包括多个测试用例, 每个用例代表一种典型的计算任务或 工作负载。
常见的基准测试程序包括SPEC、 TPCC、Linpack等,它们分别用于评 估CPU、内存、磁盘等系统资源的性 能。
通过运行基准测试程序并收集性能指 标数据,可以对不同计算机系统或不 同配置进行性能比较和评估。
性能分析方法
计算机系统包括硬件系统和软件系统 两大部分,其中硬件系统提供计算机 运行的物质基础,软件系统则提供计 算机运行所需的各种程序和数据。
计算机系统的组成
01
02
03
硬件系统
包括中央处理器、存储器、 输入输出设备等,提供计 算机运行的物质基础。
软件系统
包括系统软件和应用软件, 系统软件如操作系统、编 译器等,应用软件如办公 软件、游戏等。
03
计算机软件系统
系统软件
操作系统
管理和控制计算机硬件 及软件资源,提供用户 与计算机之间的接口。
设备驱动程序
连接和驱动各种硬件设 备,使其正常工作。
数据库管理系统
存储、管理和处理大量 数据,提供高效的数据
访问和操作。
网络管理系统
配置、监控和管理计算 机网络,确保网络的安
全和稳定。
应用软件
01
CPU的性能指标
03
时钟频率、CPI、MIPS、MFLOPS等
存储器
存储器的层次结构
Cache、主存、辅存
主存储器的类型与特点
RAM、ROM、EPROM等
Cache的工作原理与替换算法
LRU、FIFO等
虚拟存储器的基本概念与实现
页式管理、段式管理等
输入/输出设备
I/O设备的类型与特点
键盘、鼠标、显示器等
常见的基准测试程序包括SPEC、 TPCC、Linpack等,它们分别用于评 估CPU、内存、磁盘等系统资源的性 能。
通过运行基准测试程序并收集性能指 标数据,可以对不同计算机系统或不 同配置进行性能比较和评估。
性能分析方法
计算机系统包括硬件系统和软件系统 两大部分,其中硬件系统提供计算机 运行的物质基础,软件系统则提供计 算机运行所需的各种程序和数据。
计算机系统的组成
01
02
03
硬件系统
包括中央处理器、存储器、 输入输出设备等,提供计 算机运行的物质基础。
软件系统
包括系统软件和应用软件, 系统软件如操作系统、编 译器等,应用软件如办公 软件、游戏等。
03
计算机软件系统
系统软件
操作系统
管理和控制计算机硬件 及软件资源,提供用户 与计算机之间的接口。
设备驱动程序
连接和驱动各种硬件设 备,使其正常工作。
数据库管理系统
存储、管理和处理大量 数据,提供高效的数据
访问和操作。
网络管理系统
配置、监控和管理计算 机网络,确保网络的安
全和稳定。
应用软件
01
CPU的性能指标
03
时钟频率、CPI、MIPS、MFLOPS等
存储器
存储器的层次结构
Cache、主存、辅存
主存储器的类型与特点
RAM、ROM、EPROM等
Cache的工作原理与替换算法
LRU、FIFO等
虚拟存储器的基本概念与实现
页式管理、段式管理等
输入/输出设备
I/O设备的类型与特点
键盘、鼠标、显示器等
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
NT T NT T
10
Predict Taken
T Predict Not Taken
01
NT
00
Predict Not Taken
NT
8
T
11
NT
10
T
01
T NT
00
例子
NT NT
T
Actual: State: 1-bit 2-bit Predicted: State: Predicted:
�冒险导致处理器指令调度的问题
2
Branch Penalty ) 分支代价( 分支代价(Branch Penalty)
� 分支代价(Branch penalty): 在没有特殊措施的情况下,处理器流水线 由于等待分支指令结果(方向)和目标地址所需的停顿时间 � 在现代处理器中,分支代价非常高昂
3
推测式执行
− 采用程序计数器PC的一部分作为访问BHT的索引 − 一个BHT表项为一个bit,存储上次映射到该表项的分支指令的实际方向(若 taken则为1,否则为0),本次的预测结果则有存储的内容决定 − 别名效应(Alias effect): 会有多个分支指令映射到同一个BHT表项,造成 当前查询该BHT表项的分支指令,得到的可能是别的分支指令上一次的结果
25
的局限性 BHT BHT的局限性
虽然可预测方向,但对于预测为跳转的情况,需要等到指令取指和译 码完成,而且目标地址已经知道的前提下,才可重导指令流
26
推测式执行
� 推测式执行(speculative execution): 由硬件推 测分支指令的结果来克服控制相关,分为3个部分
1. 方向预测(Direction prediction): 预测分支指令的方 向是跳转(taken)还是顺序执行(not taken) 2. 目标地址预测(Target address prediction): 在预测 分支方向为跳转的情况下,对跳转目标地址的推断 3. 推测式执行(Speculative execution): 在控制相关解 决之前,允许流水线按推测的方向和目标地址获取和执 行指令;若发现推测错误,则及时终止错误推测的指令 取指和执行,并消除(undo)由于执行错误指令造成 的后果
高等计算机体系结构 (Advanced Computer Architecture)
第八讲 指令级并行:超标量处理器 -B 指令级并行:超标量处理器-B (Instruction Level Parallelism: Superscalar Processors -B) Processors李险峰 (lixianfeng@) 北京大学深圳研究生院
− 如果上一条分支指令为非跳转, 则使用和更新 predictor p0 − 如果上一条分支指令为非跳转, 则使用和更新p1
� 那么,这种被称为(1,1)型的协同分支预测器,在初 始化为[0,0]的情况下会有怎样的表现?
16
协同分支预测器的通用形式
�(m, n) 形式
− 采用最近m条分支指令的“全局”历史结果参与分支预测器的索引
− 以SPEC中的eqntott为例
14
分支指令的协同性
� 若该代码片段被反复执行多次
− d的值在2与0之间交替
� 对于初始状态为0的1-bit predictor来说,其 行为会怎样?
15
一个简单的协同分支预测器
� 每一条分支指令对应一对1-bit predictors [p0, p1], 具体选择哪一个预测器进行预测和更新,则取决于 上一条分支指令的结果
�根据剖视(profile)结果,在编译时刻确定分支指令的预测 方向
− 需要ISA的支持:指令域中需要专门的分支指令方向预测域 − 预测失效率从5%到22%不等
5
: 最简单的动态分支预测 最简单的动态分支预测: 1-Bit Branch Prediction
� 分支历史表 Branch History Table (BHT)
eqntott
gcc
19
Two-level Predictors ) 两级分支预测器( 两级分支预测器(Two-level Predictors)
�第一级:采用最近k条分支指令的历史结果为索引
− Global: 整个程序中,最近执行的k条分支指令 − Per-address: 当前要预测的分支指令的最近k次执行结果
Hazards ) 冒险ቤተ መጻሕፍቲ ባይዱ 冒险(Hazards Hazards)
�3种冒险
− 结构冒险 多条指令在同一时间访问同一硬件资源 − 数据冒险 由于相近的指令操作数之间存在的相关 (寄存器或存储器) 所引起 (RAW, WAW, WAR) − 控制冒险 一条分支指令的后续执行指令依赖于该分支指令的结果所 引起
所基于的假设: 同一分支指令,倾向于与上一次分支方向一样
6
1-Bit Branch Prediction
�例 1: 一个循环体的循环判断分支指令,先有9次结果为 跳转,最后一次为非跳转结束循环。那么对于该分 支指令,1-bit predictor的预测正确率是多少? −答案: 80%. 因为存在这两次mispredictions:一 次是循环体首次执行,另一次是最后一次执行。 �例 2: 一个前向分支指令,多数时间为跳转,少数时间为 非跳转
� 推测式执行(speculative execution): 由硬件推 测分支指令的结果来克服控制相关,分为3个部分
1. 方向预测(Direction prediction): 预测分支指令的方 向是跳转(taken)还是顺序执行(not taken) 2. 目标地址预测(Target address prediction): 在预测 分支方向为跳转的情况下,对跳转目标地址的推断 3. 推测式执行(Speculative execution): 在控制相关解 决之前,允许流水线按推测的方向和目标地址获取和执 行指令;若发现推测错误,则及时终止错误推测的指令 取指和执行,并消除(undo)由于执行错误指令造成 的后果
n-bit
10
: 4K-entry 2-bit 表 vs 无限容量表 预测失效率 预测失效率: 2-bit表
11
一些重要结论
�分支预测正确率大致在82%到99%之间,也就是失效率大 致在1%至18% �整点程序(gcc, espresso, eqntott, li)的分支预测失效率明 显高于浮点程序(nasa7, matrix300, tomcatv, doduc, spice, fppp) �分支预测代价包括预测失效率和分支指令频率两个因素, 而在浮点程序中,这两者都要显著低于整点程序 �分支预测正确率随着分支预测表的容量增加而改善,但超 过4K项之后就很难再有提高
� 多达2m 种可能的结果 � 可保存在一个m-bit 的以为寄存器中
− 采用n-bit计数器记录该分支指令的 “局部”历史结果用于方向预测
�BHT的结构为一个二维数组,对其访问索引方法为
− 分支指令部分低位地址作为行选择 − m位全局历史结果作为列选择 − 每个BHT表项保存对应分支指令在某一具体全局历史结果下(执行至 该分支指令的一条具体路径)的前n次分支结果
27
BTB 分支目标缓冲器 分支目标缓冲器BTB
�分支目标缓冲器(Branch Target Buffer, BTB)
T T N T … N … N … N …
7
2-Bit Branch Prediction
� 1-bit branch predictor: 不稳定, 受“噪声”干扰 � 解决方案: 采用2-bit方案,当一个预测只有连错两次的情况下,才会发生改变 � 一个4态摩尔机
T Predict Taken
�在这种结构下,别名效应(Aliasing)仍是不可避免的,因 为BHT不足够大,只能使用程序计数器的部分地址信息对其 进行索引 �如果m = 0,就变成普通的BHT
17
(2, 2) Predictor
18
不同配置下的预测失效率
20% 18% 16%
18%
4096 Entries 2-bit BHT Unlimited Entries 2-bit BHT 1024 Entries (2,2) BHT
1 = branch was last taken 0 = branch was last not taken 1 0 prediction bit a31a30…a11…a2a1a0 branch instruction
1K-entry BHT 10-bit index 1 Instruction memory
13
Correlating Predictors ) 协同分支预测器( 协同分支预测器(Correlating Predictors)
�到目前为止,基于历史的分支预测器都是根据被预测分支指 令自身的历史 �一个改进的办法:
− 一条分支指令的结果,常常与它之前的k条分支指令的结果存在较强 的相关性
� 也就是说,该分支指令的方向与行进至该分支指令的路径有关
T
1
N
1
T
0
T
1
T
1
N
1
T
0
N
1
T
0
T
1
T
11
T
11
N
10
T T N
1
T T T
0
T
11
N T T
0
T T N
1
N T T
0
T T N
1
11 11
10 11
10 11
T T
1
T N
1
T T
0
T N
1
Actual: State: 1-bit 2-bit Predicted: State: Predicted:
NT T NT T
10
Predict Taken
T Predict Not Taken
01
NT
00
Predict Not Taken
NT
8
T
11
NT
10
T
01
T NT
00
例子
NT NT
T
Actual: State: 1-bit 2-bit Predicted: State: Predicted:
�冒险导致处理器指令调度的问题
2
Branch Penalty ) 分支代价( 分支代价(Branch Penalty)
� 分支代价(Branch penalty): 在没有特殊措施的情况下,处理器流水线 由于等待分支指令结果(方向)和目标地址所需的停顿时间 � 在现代处理器中,分支代价非常高昂
3
推测式执行
− 采用程序计数器PC的一部分作为访问BHT的索引 − 一个BHT表项为一个bit,存储上次映射到该表项的分支指令的实际方向(若 taken则为1,否则为0),本次的预测结果则有存储的内容决定 − 别名效应(Alias effect): 会有多个分支指令映射到同一个BHT表项,造成 当前查询该BHT表项的分支指令,得到的可能是别的分支指令上一次的结果
25
的局限性 BHT BHT的局限性
虽然可预测方向,但对于预测为跳转的情况,需要等到指令取指和译 码完成,而且目标地址已经知道的前提下,才可重导指令流
26
推测式执行
� 推测式执行(speculative execution): 由硬件推 测分支指令的结果来克服控制相关,分为3个部分
1. 方向预测(Direction prediction): 预测分支指令的方 向是跳转(taken)还是顺序执行(not taken) 2. 目标地址预测(Target address prediction): 在预测 分支方向为跳转的情况下,对跳转目标地址的推断 3. 推测式执行(Speculative execution): 在控制相关解 决之前,允许流水线按推测的方向和目标地址获取和执 行指令;若发现推测错误,则及时终止错误推测的指令 取指和执行,并消除(undo)由于执行错误指令造成 的后果
高等计算机体系结构 (Advanced Computer Architecture)
第八讲 指令级并行:超标量处理器 -B 指令级并行:超标量处理器-B (Instruction Level Parallelism: Superscalar Processors -B) Processors李险峰 (lixianfeng@) 北京大学深圳研究生院
− 如果上一条分支指令为非跳转, 则使用和更新 predictor p0 − 如果上一条分支指令为非跳转, 则使用和更新p1
� 那么,这种被称为(1,1)型的协同分支预测器,在初 始化为[0,0]的情况下会有怎样的表现?
16
协同分支预测器的通用形式
�(m, n) 形式
− 采用最近m条分支指令的“全局”历史结果参与分支预测器的索引
− 以SPEC中的eqntott为例
14
分支指令的协同性
� 若该代码片段被反复执行多次
− d的值在2与0之间交替
� 对于初始状态为0的1-bit predictor来说,其 行为会怎样?
15
一个简单的协同分支预测器
� 每一条分支指令对应一对1-bit predictors [p0, p1], 具体选择哪一个预测器进行预测和更新,则取决于 上一条分支指令的结果
�根据剖视(profile)结果,在编译时刻确定分支指令的预测 方向
− 需要ISA的支持:指令域中需要专门的分支指令方向预测域 − 预测失效率从5%到22%不等
5
: 最简单的动态分支预测 最简单的动态分支预测: 1-Bit Branch Prediction
� 分支历史表 Branch History Table (BHT)
eqntott
gcc
19
Two-level Predictors ) 两级分支预测器( 两级分支预测器(Two-level Predictors)
�第一级:采用最近k条分支指令的历史结果为索引
− Global: 整个程序中,最近执行的k条分支指令 − Per-address: 当前要预测的分支指令的最近k次执行结果
Hazards ) 冒险ቤተ መጻሕፍቲ ባይዱ 冒险(Hazards Hazards)
�3种冒险
− 结构冒险 多条指令在同一时间访问同一硬件资源 − 数据冒险 由于相近的指令操作数之间存在的相关 (寄存器或存储器) 所引起 (RAW, WAW, WAR) − 控制冒险 一条分支指令的后续执行指令依赖于该分支指令的结果所 引起
所基于的假设: 同一分支指令,倾向于与上一次分支方向一样
6
1-Bit Branch Prediction
�例 1: 一个循环体的循环判断分支指令,先有9次结果为 跳转,最后一次为非跳转结束循环。那么对于该分 支指令,1-bit predictor的预测正确率是多少? −答案: 80%. 因为存在这两次mispredictions:一 次是循环体首次执行,另一次是最后一次执行。 �例 2: 一个前向分支指令,多数时间为跳转,少数时间为 非跳转
� 推测式执行(speculative execution): 由硬件推 测分支指令的结果来克服控制相关,分为3个部分
1. 方向预测(Direction prediction): 预测分支指令的方 向是跳转(taken)还是顺序执行(not taken) 2. 目标地址预测(Target address prediction): 在预测 分支方向为跳转的情况下,对跳转目标地址的推断 3. 推测式执行(Speculative execution): 在控制相关解 决之前,允许流水线按推测的方向和目标地址获取和执 行指令;若发现推测错误,则及时终止错误推测的指令 取指和执行,并消除(undo)由于执行错误指令造成 的后果
n-bit
10
: 4K-entry 2-bit 表 vs 无限容量表 预测失效率 预测失效率: 2-bit表
11
一些重要结论
�分支预测正确率大致在82%到99%之间,也就是失效率大 致在1%至18% �整点程序(gcc, espresso, eqntott, li)的分支预测失效率明 显高于浮点程序(nasa7, matrix300, tomcatv, doduc, spice, fppp) �分支预测代价包括预测失效率和分支指令频率两个因素, 而在浮点程序中,这两者都要显著低于整点程序 �分支预测正确率随着分支预测表的容量增加而改善,但超 过4K项之后就很难再有提高
� 多达2m 种可能的结果 � 可保存在一个m-bit 的以为寄存器中
− 采用n-bit计数器记录该分支指令的 “局部”历史结果用于方向预测
�BHT的结构为一个二维数组,对其访问索引方法为
− 分支指令部分低位地址作为行选择 − m位全局历史结果作为列选择 − 每个BHT表项保存对应分支指令在某一具体全局历史结果下(执行至 该分支指令的一条具体路径)的前n次分支结果
27
BTB 分支目标缓冲器 分支目标缓冲器BTB
�分支目标缓冲器(Branch Target Buffer, BTB)
T T N T … N … N … N …
7
2-Bit Branch Prediction
� 1-bit branch predictor: 不稳定, 受“噪声”干扰 � 解决方案: 采用2-bit方案,当一个预测只有连错两次的情况下,才会发生改变 � 一个4态摩尔机
T Predict Taken
�在这种结构下,别名效应(Aliasing)仍是不可避免的,因 为BHT不足够大,只能使用程序计数器的部分地址信息对其 进行索引 �如果m = 0,就变成普通的BHT
17
(2, 2) Predictor
18
不同配置下的预测失效率
20% 18% 16%
18%
4096 Entries 2-bit BHT Unlimited Entries 2-bit BHT 1024 Entries (2,2) BHT
1 = branch was last taken 0 = branch was last not taken 1 0 prediction bit a31a30…a11…a2a1a0 branch instruction
1K-entry BHT 10-bit index 1 Instruction memory
13
Correlating Predictors ) 协同分支预测器( 协同分支预测器(Correlating Predictors)
�到目前为止,基于历史的分支预测器都是根据被预测分支指 令自身的历史 �一个改进的办法:
− 一条分支指令的结果,常常与它之前的k条分支指令的结果存在较强 的相关性
� 也就是说,该分支指令的方向与行进至该分支指令的路径有关
T
1
N
1
T
0
T
1
T
1
N
1
T
0
N
1
T
0
T
1
T
11
T
11
N
10
T T N
1
T T T
0
T
11
N T T
0
T T N
1
N T T
0
T T N
1
11 11
10 11
10 11
T T
1
T N
1
T T
0
T N
1
Actual: State: 1-bit 2-bit Predicted: State: Predicted: