计算机系统结构第四章PPT课件
合集下载
计算机系统结构第4章精品PPT课件

▲
4/1344.1 指令来自并行1. 循环级并行:使一个循环中的不同循环体并行执行。 ➢ 开发循环体中存在的并行性
最常见、最基本
➢ 是指令级并行研究的重点之一 ➢ 例如,考虑下述语句:
for (i=1; i<=500; i=i+1) a[i]=a[i]+s; 每一次循环都可以与其他的循环重叠并行执行; 在每一次循环的内部,却没有任何的并行性。
(ILP:Instruction-Level Parallelism)
➢ 本章研究:如何通过各种可能的技术,获得更多 的指令级并行性。
硬件+软件技术 必须要硬件技术和软件技术互相配合,才能够最大 限度地挖掘出程序中存在的指令级并行。
▲
3/134
4.1 指令级并行
1. 流水线处理机的实际CPI ➢ 理想流水线的CPI加上各类停顿的时钟周期数:
▲
5/134
4.1 指令级并行
1. 最基本的开发循环级并行的技术 ➢ 循环展开(loop unrolling)技术 ➢ 采用向量指令和向量数据表示
2. 相关与流水线冲突 ➢ 相关有三种类型:
数据相关、名相关、控制相关
➢ 流水线冲突是指对于具体的流水线来说,由于相关 的存在,使得指令流中的下一条指令不能在指定的 时钟周期执行。
➢ 读操作数(Read Operands,RO):等待数据冲 突消失,然后读操作数。
(out of order execution)
IS
RO
检测结构冲突 检测数据冲突
▲
16/134
4.2 指令的动态调度
1. 在前述5段流水线中,是不会发生WAR冲突和WAW冲突 的。但乱序执行就使得它们可能发生了。
第4章 指令级并行
《计算机科学导论》第4章操作系统精品PPT课件

பைடு நூலகம்
4.3 操作系统的功能
3.网络操作系统的功能
常用的网络操作系统有Windows NT、UNIX、Linux、 NetWare等。网络操作系统除具有一般操作系统的功能外,还 应该具有以下功能:
• 网络通信 • 网络资源管理 • 网络服务 • 网络管理 • 互操作
4.4 操作系统的分类
1.批处理操作系统
来描述一个进程 。
(2) 进程的状态 :三个最基本的状态:运行态、就绪态、阻塞
态。
运行态
就绪态
阻塞态
4.5 一些基本概念及组成
(3) 进程调度 :不同的系统会采用不同的调度算法 。
(4) 进程通信 :包括进程的同步与互斥、管道通信、
共享内存、消息队列 、网络通信。
4.5 一些基本概念及组成
• 存储管理 (1) 单一分区:整个内存除了操作系统外,另外的内存空间只分
(1) 文件: 可以长期保存在外存中的、被赋名了的、信息单元的 集合
(2) 目录:目录是一些目录项的列表,每个目录项一般含有文件 名,以及文件控制说明信息(或文件的索引节点号)。
4.5 一些基本概念及组成
2.操作系统的基本组成
操作系统
用户接口
存储管理 进程管理 设备管理 文件系统
4.5 一些基本概念及组成
• 地址空间
(1) 物理空间:物理内存的连续的物理单元隔成物理地址,物理
(2)
地址的集合即为物理空间 。
(2) 逻辑空间:进程的逻辑地址的集合,这个地址的开始值通常
为0,一直到某个最大值。
4.5 一些基本概念及组成
• I/O设备 (1) 字符设备 :以字符为单位发送或接收一个字符流。 (2) 块设备 :信息存放在固定大小的块中,这些块有自己的地址 。 • 文件
4.3 操作系统的功能
3.网络操作系统的功能
常用的网络操作系统有Windows NT、UNIX、Linux、 NetWare等。网络操作系统除具有一般操作系统的功能外,还 应该具有以下功能:
• 网络通信 • 网络资源管理 • 网络服务 • 网络管理 • 互操作
4.4 操作系统的分类
1.批处理操作系统
来描述一个进程 。
(2) 进程的状态 :三个最基本的状态:运行态、就绪态、阻塞
态。
运行态
就绪态
阻塞态
4.5 一些基本概念及组成
(3) 进程调度 :不同的系统会采用不同的调度算法 。
(4) 进程通信 :包括进程的同步与互斥、管道通信、
共享内存、消息队列 、网络通信。
4.5 一些基本概念及组成
• 存储管理 (1) 单一分区:整个内存除了操作系统外,另外的内存空间只分
(1) 文件: 可以长期保存在外存中的、被赋名了的、信息单元的 集合
(2) 目录:目录是一些目录项的列表,每个目录项一般含有文件 名,以及文件控制说明信息(或文件的索引节点号)。
4.5 一些基本概念及组成
2.操作系统的基本组成
操作系统
用户接口
存储管理 进程管理 设备管理 文件系统
4.5 一些基本概念及组成
• 地址空间
(1) 物理空间:物理内存的连续的物理单元隔成物理地址,物理
(2)
地址的集合即为物理空间 。
(2) 逻辑空间:进程的逻辑地址的集合,这个地址的开始值通常
为0,一直到某个最大值。
4.5 一些基本概念及组成
• I/O设备 (1) 字符设备 :以字符为单位发送或接收一个字符流。 (2) 块设备 :信息存放在固定大小的块中,这些块有自己的地址 。 • 文件
计算机系统结构第四章ppt课件

虚拟地址空间中的页称为虚页
主存地址空间中的页称为实页
精品课件
27
一个主存地址A由两部分组成,实页号p和页内偏移d。
一个虚地址Av由三部分组成,程序号U、虚页号P和页 内偏移D。
用户号U
虚页号P 页内偏移D 多用户虚拟地址Av的组成
实页号p 页内偏移d 主存地址A的组成
精品课件
28
0页 1页 2页 3页 用户程序
34
①全相联映像:
每道程序的任何虚页可以映像装入到任何实页位置
主存
页面位置0 1 2
. . . 2ny-1
全相联映像
虚存
1 2
. . .
2ny’-1
每道程序任何 虚页可映像到 任何实页位置
精品课件
35
②目录表:用一个小容量高速存贮器存放页表
地址变换过程:把某用户虚地址中U与P拼接起来,相联 访问目录表。读出主存实页号p,把p与多用户虚地址中 的D拼接得到主存实地址。如果相联访问失败,发出页面 失效请求。
13主要由软件实现硬件为辅cache主存与主存辅存层次的区别几百到几千个字节存储层次cpu对第二级的访问方式比较项目存储管理实现访问速度的比值第一级和第二级典型的块页大小失效时cpu是否切换cache主存层次主存辅存层次为了弥补主存速度的不足为了弥补主存容量的不足主要由专用硬件实现几比一几百比一几十个字节可直接访问均通过第一级不切换切换到其他进程主要由专用软件实现几百到几千个字节144
第四章 存 贮 体 系
4.1存贮体系的形成与性能 4.2虚拟存贮器 4.3高速缓冲存贮器
精品课件
1
1.存贮体系的形成与性能
从用户的角度来看,存储器的三个主要指标是: 容量,速度,价格(每位价格)。
主存地址空间中的页称为实页
精品课件
27
一个主存地址A由两部分组成,实页号p和页内偏移d。
一个虚地址Av由三部分组成,程序号U、虚页号P和页 内偏移D。
用户号U
虚页号P 页内偏移D 多用户虚拟地址Av的组成
实页号p 页内偏移d 主存地址A的组成
精品课件
28
0页 1页 2页 3页 用户程序
34
①全相联映像:
每道程序的任何虚页可以映像装入到任何实页位置
主存
页面位置0 1 2
. . . 2ny-1
全相联映像
虚存
1 2
. . .
2ny’-1
每道程序任何 虚页可映像到 任何实页位置
精品课件
35
②目录表:用一个小容量高速存贮器存放页表
地址变换过程:把某用户虚地址中U与P拼接起来,相联 访问目录表。读出主存实页号p,把p与多用户虚地址中 的D拼接得到主存实地址。如果相联访问失败,发出页面 失效请求。
13主要由软件实现硬件为辅cache主存与主存辅存层次的区别几百到几千个字节存储层次cpu对第二级的访问方式比较项目存储管理实现访问速度的比值第一级和第二级典型的块页大小失效时cpu是否切换cache主存层次主存辅存层次为了弥补主存速度的不足为了弥补主存容量的不足主要由专用硬件实现几比一几百比一几十个字节可直接访问均通过第一级不切换切换到其他进程主要由专用软件实现几百到几千个字节144
第四章 存 贮 体 系
4.1存贮体系的形成与性能 4.2虚拟存贮器 4.3高速缓冲存贮器
精品课件
1
1.存贮体系的形成与性能
从用户的角度来看,存储器的三个主要指标是: 容量,速度,价格(每位价格)。
计算机体系结构完整讲义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
引言
课程简介
计算机体系结构是计算机科学的一门核心课程,主要研究计算机系统的基本组成、组织结构、工作原 理及其设计方法。
《计算机操作系统》课件第4章

18
第四章 存 储 器 管 理
3. 运行时动态链接(Run-time Dynamic Linking) 在许多情况下,应用程序在运行时,每次要运行的模块 可能是不相同的。但由于事先无法知道本次要运行哪些模块, 故只能是将所有可能要运行到的模块全部都装入内存,并在 装入时全部链接在一起。显然这是低效的,因为往往会有部 分目标模块根本就不运行。比较典型的例子是作为错误处理 用的目标模块,如果程序在整个运行过程中都不出现错误, 则显然就不会用到该模块。
2
第四章 存 储 器 管 理
4.1.1 多层结构的存储器系统 1. 存储器的多层结构 对于通用计算机而言,存储层次至少应具有三级:最高
层为CPU寄存器,中间为主存,最底层是辅存。在较高档的 计算机中,还可以根据具体的功能细分为寄存器、高速缓存、 主存储器、磁盘缓存、固定磁盘、可移动存储介质等6层。 如图4-1所示。
19
第四章 存 储 器 管 理
4.3 连续分配存储管理方式
4.3.1 单一连续分配 在单道程序环境下,当时的存储器管理方式是把内存分
为系统区和用户区两部分,系统区仅提供给OS使用,它通常 是放在内存的低址部分。而在用户区内存中,仅装有一道用 户程序,即整个内存的用户空间由该程序独占。这样的存储 器分配方式被称为单一连续分配方式。
9
第四章 存 储 器 管 理
4.2 程序的装入和链接
用户程序要在系统中运行,必须先将它装入内存,然后 再将其转变为一个可以执行的程序,通常都要经过以下几个 步骤:
(1) 编译,由编译程序(Compiler)对用户源程序进行编译, 形成若干个目标模块(Object Module);
(2) 链接,由链接程序(Linker)将编译后形成的一组目标 模块以及它们所需要的库函数链接在一起,形成一个完整的 装入模块(Load Module);
第四章 存 储 器 管 理
3. 运行时动态链接(Run-time Dynamic Linking) 在许多情况下,应用程序在运行时,每次要运行的模块 可能是不相同的。但由于事先无法知道本次要运行哪些模块, 故只能是将所有可能要运行到的模块全部都装入内存,并在 装入时全部链接在一起。显然这是低效的,因为往往会有部 分目标模块根本就不运行。比较典型的例子是作为错误处理 用的目标模块,如果程序在整个运行过程中都不出现错误, 则显然就不会用到该模块。
2
第四章 存 储 器 管 理
4.1.1 多层结构的存储器系统 1. 存储器的多层结构 对于通用计算机而言,存储层次至少应具有三级:最高
层为CPU寄存器,中间为主存,最底层是辅存。在较高档的 计算机中,还可以根据具体的功能细分为寄存器、高速缓存、 主存储器、磁盘缓存、固定磁盘、可移动存储介质等6层。 如图4-1所示。
19
第四章 存 储 器 管 理
4.3 连续分配存储管理方式
4.3.1 单一连续分配 在单道程序环境下,当时的存储器管理方式是把内存分
为系统区和用户区两部分,系统区仅提供给OS使用,它通常 是放在内存的低址部分。而在用户区内存中,仅装有一道用 户程序,即整个内存的用户空间由该程序独占。这样的存储 器分配方式被称为单一连续分配方式。
9
第四章 存 储 器 管 理
4.2 程序的装入和链接
用户程序要在系统中运行,必须先将它装入内存,然后 再将其转变为一个可以执行的程序,通常都要经过以下几个 步骤:
(1) 编译,由编译程序(Compiler)对用户源程序进行编译, 形成若干个目标模块(Object Module);
(2) 链接,由链接程序(Linker)将编译后形成的一组目标 模块以及它们所需要的库函数链接在一起,形成一个完整的 装入模块(Load Module);
西安电子科技大学_计算机组成与体系结构_第4章存储系统_课件PPT

的时间一样。
存取方式 读写功能
随机读写:RAM 顺序(串行)访问:
顺序存取存储器 SAM 直接存取存储器 DAM
12
4.1 存储系统概述 4.1.2 存储器分类:不同的分类标准
存储信息的介质
在计算机中的用途
存放信息的易失(挥发)性
存取方式 读写功能
读写存储器 只读存储器
13
存储信息的介质
在计算机中的用途 存放信息的易失(挥发)性 存取方式 读写功能
易失:RAM 非易失:
ROM 磁盘
……
11
4.1 存储系统概述 4.1.2 存储器分类:不同的分类标准
存储信息的介质 在计算机中的用途 存放信息的易失(挥发)性
存储器的存取时间 与存储单元的物理 地址无关,随机读 写其任一单元所用
无
36
8086系统总线
D0~D7
A1~A13 MEMR MEMW
A0
D8~D15 A1~A13 MEMR MEMW
BHE
&
A19
A18
A17
&
A16 A15 A14
6264与8086系统总线的连接
6264
D0~D7
A0~A12
CS1
OE
WE
CS2
6264
D0~D7
A0~A12
CS1
OE
WE
CS2
74LS138
每次读出/写入的字节数 存取周期
价格
体积、重量、封装方式、工作电压、环境条件
14
4.1 存储系统概述 4.1.2 存储器的性能指标
容量 速度 可靠性
可维修部件的可靠性: 平均故障间隔时间(MTBF)
存取方式 读写功能
随机读写:RAM 顺序(串行)访问:
顺序存取存储器 SAM 直接存取存储器 DAM
12
4.1 存储系统概述 4.1.2 存储器分类:不同的分类标准
存储信息的介质
在计算机中的用途
存放信息的易失(挥发)性
存取方式 读写功能
读写存储器 只读存储器
13
存储信息的介质
在计算机中的用途 存放信息的易失(挥发)性 存取方式 读写功能
易失:RAM 非易失:
ROM 磁盘
……
11
4.1 存储系统概述 4.1.2 存储器分类:不同的分类标准
存储信息的介质 在计算机中的用途 存放信息的易失(挥发)性
存储器的存取时间 与存储单元的物理 地址无关,随机读 写其任一单元所用
无
36
8086系统总线
D0~D7
A1~A13 MEMR MEMW
A0
D8~D15 A1~A13 MEMR MEMW
BHE
&
A19
A18
A17
&
A16 A15 A14
6264与8086系统总线的连接
6264
D0~D7
A0~A12
CS1
OE
WE
CS2
6264
D0~D7
A0~A12
CS1
OE
WE
CS2
74LS138
每次读出/写入的字节数 存取周期
价格
体积、重量、封装方式、工作电压、环境条件
14
4.1 存储系统概述 4.1.2 存储器的性能指标
容量 速度 可靠性
可维修部件的可靠性: 平均故障间隔时间(MTBF)
第四章-指令系统PPT课件

指令系统中指令采用等长指令的优点:各种指令字长度是相等的,
指令字结构简单,且指令字长度是不变的 ;
采用非等长指令的的优点:各种指令字长度随指令功能而异,结
构灵活,能充分利用指令长度,但指令的控制较复杂 。
.
16
五、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
指令前缀 段取代 操作数长度取代 地址长度取代
操作码 Mod Reg或操作码 R/M S I B 位移量 立即数
.
19
七、 Pentium指令格式
指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。
LOCK前缀用于多CPU环境中对共享存储器的排他性 访问
段取代用于改变默认段寄存器的情况
提供一个常数。
.
31
3、直接寻址
指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EA=A。
.
32
3、直接寻址
操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式
在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。
本章所讨论的指令,是机器指令。 一台计算机中所有机器指令的集合,称为这台计算机的指令系
统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能
不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围
.
3
4.1 指令系统的发展与性能要求
3、发展情况
复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
指令字结构简单,且指令字长度是不变的 ;
采用非等长指令的的优点:各种指令字长度随指令功能而异,结
构灵活,能充分利用指令长度,但指令的控制较复杂 。
.
16
五、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
指令前缀 段取代 操作数长度取代 地址长度取代
操作码 Mod Reg或操作码 R/M S I B 位移量 立即数
.
19
七、 Pentium指令格式
指令前缀中的重复前缀指定串的重复操作,这样使 Pentium处理串比软循环快得多。
LOCK前缀用于多CPU环境中对共享存储器的排他性 访问
段取代用于改变默认段寄存器的情况
提供一个常数。
.
31
3、直接寻址
指令中地址码字段给出的地址A就是操作数的 有效地址EA(Effective Address),即EA=A。
.
32
3、直接寻址
操作数地址是不能修改的,与程序本身所在的位置 无关,所以又叫做绝对寻址方式
在早期的计算机中,主存储器的容量较小,指令中 地址码的位数要求不长,采用直接寻址方式简单快 速,也便于硬件实现,因此,常被作为主要的寻址 方式。
本章所讨论的指令,是机器指令。 一台计算机中所有机器指令的集合,称为这台计算机的指令系
统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能
不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围
.
3
4.1 指令系统的发展与性能要求
3、发展情况
复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
究的重点之一 最基本的开发循环级并行的技术
– 循环展开(loop unrolling)技术 – 采用向量指令和向量数据表示
2. 相关与流水线冲突
静态指令调度 动态指令调度
5
4.1 指令级并行的概念
3. 对于正确地执行程序来说,必须保持的最关键 的两个属性是:数据流和异常行为。
数据流:指数据值从其产生者指令到其消 费者指令的实际流动。
DIV.D FT1,0, F1, F3 存在输出相关F10
消除名相关:引入两个临时寄存器S和T,分别 将第一个F10换成S,将后一个F6换成T。
16
基于Tomasulo算法的MIPS处理器浮点部件的 基本结构
从指令部件来
存在数据相关 存在输出相关
WAR冲突
DIV.D F10, F1, F3 SUB.D F10, F4, F6 WAW冲突
Tomasulo算法可以通过使用寄存器重命名来消除1。3
4.2 指令的动态调度
二、Tomasulo算法
1.基本思想 核心思想:
– 记录和检测指令相关,操作数一旦就绪就 立即执行,把发生RAW冲突的可能性减少到 最小;
• 延迟转移技术
8
4.2 指令的动态调度
静态调度
➢ 依靠编译器对代码进行静态调度,以减 少相关和冲突。
➢ 它不是在程序执行的过程中,而是在编 译期间进行代码调度和优化。
➢ 通过把相关的指令拉开距离来减少可能 产生的停顿。
动态调度
➢ 在程序的执行过程中,依靠专门硬件对
代码进行调度,减少数据相关导致的停
保持异常行为是指:无论怎么改变指令的 执行顺序,都不能改变程序中异常的发生 情况。
➢ 即原来程序中是怎么发生的,改变执行 顺序后还是怎么发生。
➢ 弱化为:指令执行顺序的改变不能导致 程序中发生新的异常。
6
4.2 指令的动态调度
内容回顾: 1. 相关
2. 相关是指两条指令之间存在某种依赖关系,是程序 固有的一种属性。
(out of order execution)
IS
RO
检测结构冲突 检测数据冲突 12
4.2 指令的动态调度
有的代码在采用乱序执行后可能会发生WAR冲突 和WAW冲突。
例如,考虑下面的代码
存在反相关
DIV.D SUB.D ADD.D
F4, F0, F2 F10, F4, F6
F6, F8, F14
器,限制了编译器调度的有效性。 – 360/91的访存时间和浮点计算时间都很长。
(也是Tomasulo算法要解决的问题)
15
4.2 指令的动态调度
寄存器换名可以消除WAR冲突和WAW冲突。
考虑之前的代码: DIV.D F4, F0, F2 SUB.D F10, F4, F6 存在数据相关F4
存在反相关F6 ADD.D FS6,, F8, F14
4.2 指令的动态调度
在前面的基本流水线中:
ID
检测结构冲突 检测数据冲突
• 一旦一条指令受阻,其后的指令都将停顿。
• 解决办法:
允许乱序执行
11
4.2 指令的动态调度
为了允许乱序执行,我们将5段流水线的译码 阶段再分为两个阶段: – 流出(Issue,IS):指令译码,检查是否 存在结构冲突。 (in-order issue) – 读操作数(Read Operands,RO):等待 数据冲突消失,然后读操作数。
7
4.2 指令的动态调度
3. 冲突的解决
1)结构冲突:停顿(流水线气泡)
2)数据冲突:
• 定向传送技术
• 定向传送与停顿相结合
• 指令调度(依靠编译器): 前提:在乱序流动的流水线中。 不足:可能会产生新的WAR或WAW冲突。
3)控制冲突: • 预测分支失败
静态调度
• 预测分支成功 都是通过编译器来实现
– 通过寄存器换名来消除WAR冲突和WAW冲突。
14
4.2 指令的动态调度
IBM 360/91首先采用了Tomasulo算法。
– IBM 360/91的设计目标是基于整个360系 列的统一指令集和编译器来实现高性能, 而不是设计和利用专用的编译器来提高性 能。
需要更多地依赖于硬件。 – IBM 360体系结构只有4个双精度浮点寄存
本章研究:如何通过各种可能的技术,获得 更多的指令级并行性。
硬件+软件技术
必须要硬件技术和软件技术互相配合,才 能够最大限度地挖掘出程序中存在的指令 级并行。
3
4.1 指令级并行的概念
流水线处理机的实际CPI
➢ 理想流水线的CPI加上各类停顿的时钟周期 数:
CPI流水线 = CPI理想 + 停顿结构冲突 + 停顿数据冲突
第四章 指令级并行
4.1 指令级并行的概念 4.2 指令的动态调度 4.3 动态分支预测技术 4.4 多指令流出技术 4.5 循环展开和指令调度
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
2
4.1 指令级并行的概念
几乎所有的处理机都利用流水线来使指令重 叠并行执行,以达到提高性能的目的。这种 指令之间存在的潜在并行性称为指令级并行。 (ILP:Instruction-Level Parallelism)
3. 相关包括:名相关,数据相关,控制相关。
2. 冲突( HAZARDS,也称为冒险)
3. 冲突是指由于相关的存在,使得指令流中的下一条 指令不能在指定的时钟周期执行。
4. 具体一次相关是否会导致实际冲突的发生以及该冲 突会带来多长的停顿,则是流水线的属性。
5. 流水线冲突包括:结构冲突,数据冲突,控制冲突。
顿。
94Βιβλιοθήκη 2 指令的动态调度一、动态调度的基本思想
考虑下面一段代码: DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F12,F6,F14
➢ SUB.D指令与DIV.D指令关于F4相关,导致流 水线停顿。
➢ ADD.D指令与流水线中的任何指令都没有关系, 但也因此受阻。
10
+ 停顿控制冲突 ➢ 理想CPI是衡量流水线最高性能的一个指标。
通过减少右边各项,就能减小总的CPI,从 而提高IPC。 ➢ IPC:Instructions Per Cycle
(每个时钟周期完成的指令条数) 4
4.1 指令级并行的概念
1. 循环级并行:
使一个循环中的不同循环体并行执行。 开发循环体中存在的并行性是指令级并行研
– 循环展开(loop unrolling)技术 – 采用向量指令和向量数据表示
2. 相关与流水线冲突
静态指令调度 动态指令调度
5
4.1 指令级并行的概念
3. 对于正确地执行程序来说,必须保持的最关键 的两个属性是:数据流和异常行为。
数据流:指数据值从其产生者指令到其消 费者指令的实际流动。
DIV.D FT1,0, F1, F3 存在输出相关F10
消除名相关:引入两个临时寄存器S和T,分别 将第一个F10换成S,将后一个F6换成T。
16
基于Tomasulo算法的MIPS处理器浮点部件的 基本结构
从指令部件来
存在数据相关 存在输出相关
WAR冲突
DIV.D F10, F1, F3 SUB.D F10, F4, F6 WAW冲突
Tomasulo算法可以通过使用寄存器重命名来消除1。3
4.2 指令的动态调度
二、Tomasulo算法
1.基本思想 核心思想:
– 记录和检测指令相关,操作数一旦就绪就 立即执行,把发生RAW冲突的可能性减少到 最小;
• 延迟转移技术
8
4.2 指令的动态调度
静态调度
➢ 依靠编译器对代码进行静态调度,以减 少相关和冲突。
➢ 它不是在程序执行的过程中,而是在编 译期间进行代码调度和优化。
➢ 通过把相关的指令拉开距离来减少可能 产生的停顿。
动态调度
➢ 在程序的执行过程中,依靠专门硬件对
代码进行调度,减少数据相关导致的停
保持异常行为是指:无论怎么改变指令的 执行顺序,都不能改变程序中异常的发生 情况。
➢ 即原来程序中是怎么发生的,改变执行 顺序后还是怎么发生。
➢ 弱化为:指令执行顺序的改变不能导致 程序中发生新的异常。
6
4.2 指令的动态调度
内容回顾: 1. 相关
2. 相关是指两条指令之间存在某种依赖关系,是程序 固有的一种属性。
(out of order execution)
IS
RO
检测结构冲突 检测数据冲突 12
4.2 指令的动态调度
有的代码在采用乱序执行后可能会发生WAR冲突 和WAW冲突。
例如,考虑下面的代码
存在反相关
DIV.D SUB.D ADD.D
F4, F0, F2 F10, F4, F6
F6, F8, F14
器,限制了编译器调度的有效性。 – 360/91的访存时间和浮点计算时间都很长。
(也是Tomasulo算法要解决的问题)
15
4.2 指令的动态调度
寄存器换名可以消除WAR冲突和WAW冲突。
考虑之前的代码: DIV.D F4, F0, F2 SUB.D F10, F4, F6 存在数据相关F4
存在反相关F6 ADD.D FS6,, F8, F14
4.2 指令的动态调度
在前面的基本流水线中:
ID
检测结构冲突 检测数据冲突
• 一旦一条指令受阻,其后的指令都将停顿。
• 解决办法:
允许乱序执行
11
4.2 指令的动态调度
为了允许乱序执行,我们将5段流水线的译码 阶段再分为两个阶段: – 流出(Issue,IS):指令译码,检查是否 存在结构冲突。 (in-order issue) – 读操作数(Read Operands,RO):等待 数据冲突消失,然后读操作数。
7
4.2 指令的动态调度
3. 冲突的解决
1)结构冲突:停顿(流水线气泡)
2)数据冲突:
• 定向传送技术
• 定向传送与停顿相结合
• 指令调度(依靠编译器): 前提:在乱序流动的流水线中。 不足:可能会产生新的WAR或WAW冲突。
3)控制冲突: • 预测分支失败
静态调度
• 预测分支成功 都是通过编译器来实现
– 通过寄存器换名来消除WAR冲突和WAW冲突。
14
4.2 指令的动态调度
IBM 360/91首先采用了Tomasulo算法。
– IBM 360/91的设计目标是基于整个360系 列的统一指令集和编译器来实现高性能, 而不是设计和利用专用的编译器来提高性 能。
需要更多地依赖于硬件。 – IBM 360体系结构只有4个双精度浮点寄存
本章研究:如何通过各种可能的技术,获得 更多的指令级并行性。
硬件+软件技术
必须要硬件技术和软件技术互相配合,才 能够最大限度地挖掘出程序中存在的指令 级并行。
3
4.1 指令级并行的概念
流水线处理机的实际CPI
➢ 理想流水线的CPI加上各类停顿的时钟周期 数:
CPI流水线 = CPI理想 + 停顿结构冲突 + 停顿数据冲突
第四章 指令级并行
4.1 指令级并行的概念 4.2 指令的动态调度 4.3 动态分支预测技术 4.4 多指令流出技术 4.5 循环展开和指令调度
1
整体 概述
一 请在这里输入您的主要叙述内容
二
请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
2
4.1 指令级并行的概念
几乎所有的处理机都利用流水线来使指令重 叠并行执行,以达到提高性能的目的。这种 指令之间存在的潜在并行性称为指令级并行。 (ILP:Instruction-Level Parallelism)
3. 相关包括:名相关,数据相关,控制相关。
2. 冲突( HAZARDS,也称为冒险)
3. 冲突是指由于相关的存在,使得指令流中的下一条 指令不能在指定的时钟周期执行。
4. 具体一次相关是否会导致实际冲突的发生以及该冲 突会带来多长的停顿,则是流水线的属性。
5. 流水线冲突包括:结构冲突,数据冲突,控制冲突。
顿。
94Βιβλιοθήκη 2 指令的动态调度一、动态调度的基本思想
考虑下面一段代码: DIV.D F4,F0,F2 SUB.D F10,F4,F6 ADD.D F12,F6,F14
➢ SUB.D指令与DIV.D指令关于F4相关,导致流 水线停顿。
➢ ADD.D指令与流水线中的任何指令都没有关系, 但也因此受阻。
10
+ 停顿控制冲突 ➢ 理想CPI是衡量流水线最高性能的一个指标。
通过减少右边各项,就能减小总的CPI,从 而提高IPC。 ➢ IPC:Instructions Per Cycle
(每个时钟周期完成的指令条数) 4
4.1 指令级并行的概念
1. 循环级并行:
使一个循环中的不同循环体并行执行。 开发循环体中存在的并行性是指令级并行研