41指令级并行的概念

合集下载

计算机系统结构第4章指令级并行及限制

计算机系统结构第4章指令级并行及限制

2
4.1.1 指令级并行
1、流水线处理机的实际CPI
– 理想流水线的CPI加上各类停顿的时钟周期数:
CPI流水线 = CPI理想 + 停顿结构冲突 + 停顿数据 冲突 + 停顿控制冲突 – 理想CPI是衡量流水线最高性能的一个指标。 – IPC:Instructions Per Cycle (每个时钟周期完成的指令条数)
24
(1) 展开后没有调度的代码
流出时钟 F0,0(R1) 1 2 F4,F0,F2 3 4 5 0(R1),F4 6 F6,-8(R1) 7 8 F8,F6,F2 9 10 11 -8(R1),F8 12 F10,-16(R1) 13 14 流出时钟 F12,F10,F2 16 17 -16(R1),F12 F14,-24(R1) 19 20 F16,F14,F2 22 23 -24(R1),F16 24 R1,R1,#32 25 26 R1,Loop 27 28

一个元素的操作时间从10个时钟周期减少到6个 5个周期是有指令执行的,1个空转周期。
10
(Ⅱ) (1) 首先,仅仅去除4遍循环体中的分支指令,得到以下 由17条指令构成的指令序列,如下所示:
Loop: LD F0 , 0(R1) ADD.D F4 , F0 , F2 SD 0(R1) , F4 SUBI R1 , R1 , #8 LD F0 , 0(R1) ADD.D F4 , F0 , F2 SD 0(R1) , F4 SUBI R1 , R1 , #8 LD F0 , 0(R1) ADD.D F4 , F0 , F2 SD 0(R1) , F4 SUBI R1 , R1 , #8 LD F0 , 0(R1) ADD.D F4 , F0 , F2 SD 0(R1) , F4 SUBI R1 , R1 , #8 BNEZ R1 , Loop

三门定律解析

三门定律解析

三门定律解析
三门定律是由美国数学家John von Neumann提出的概念,指的是计算机科学领域中的三个重要原则。

这些原则用于评估和优化计算机系统中的性能和效率。

1.指令级并行(Instruction-Level Parallelism):这个原则指的是在执行指令时,同时利用多种处理器资源。

它包括了指令流水线、超标量和超流水线等技术。

指令级并行性可以加快计算机处理速度,通过同时执行多条指令来提高效率。

2.数据级并行(Data-Level Parallelism):这个原则关注的是同时处理多个数据元素的能力。

它包括向量处理、多处理器系统等技术。

通过同时处理多个数据,可以提高计算机系统的效率。

3.任务级并行(Task-Level Parallelism):这个原则指的是同时处理多个独立的任务或者进程。

它包括了多线程、分布式系统等技术。

任务级并行性可以提高系统的吞吐量,使得计算机能够同时处理多个任务。

三门定律强调了并行性在计算机系统中的重要性。

它们代表了不同层次上的并行化原则,通过同时处理多个指令、数据或任务来提高计算机系统的效率和性能。

然而,并行化也面临着一些挑战,比如资源竞争、数据一致性等问题需要被有效地解决。

第 4 章 指令级并行

第 4 章 指令级并行
• 1.指令流出(Issue, 记为IS):如果指令所需的功 能部件空闲,并且其他正在执行的指令使用的目 的寄存器与该指令的不同,记分牌就向相应的功 能部件发射该指令,并改变记分牌内部的数据结 构。这一步代替了ID的一部分。
• 解决了结构相关和WAW相关。
2020/8/4
17
• 2.读操作数(Read Operand, 记RO):如果前面 已流出的正在运行的指令不对本指令的源操作数 寄存器进行写操作,或者一个正在工作的功能部 件已经完成了对这个寄存器的写操作,那么此操 作数有效。整个检测工作由记分牌完成。当操作 数有效后,记分牌告诉功能部件读操作数并开始 执行。
硬件+软件技术
必须要硬件技术和软件技术互相 配合,才能够最大限度地挖掘出程 序中存在的指令级并行。
2020/8/4
2
1.流水线处理机的实际CPI
–理想流水线的CPI加上各类停顿的时钟周 期数:
CPI流水线 = CPI理想 + 停顿结构冲突 + 停顿数据冲突 + 停顿控制冲突
– 理想CPI是衡量流水线最高性能的一个指标。 –IPC:Instructions Per Cycle
(每个时钟周期完成的指令条数)
2020/8/4
3
2.基本程序块
– 基本程序块:一段除了入口和出口以外 不包含其他分支的线性代码段。
– 程序平均每5~7条指令就会有一个分支。 循环级并行:使一个循环中的不同循环体 并行执行。 – 开发循环体中存在的并行性
• 最常见、最基本 – 是指令级并行研究的重点之一
2020/8/4
10
流水线动态调度的优点
• (1)能处理某些在编译时无法知道的相 关情况。
• (2)能简化编译程序设计。 • (3)使代码有可移植性。 • 动态调度方法的主要缺点是硬件较为复

浙江工商大学计算机体系结构第2章 指令级并行及其开发

浙江工商大学计算机体系结构第2章 指令级并行及其开发
4
2.1 指令级并行概念
数据相关
相关有三种不同的类型:数据相关、名字相关和 控制相关
数据相关,也称为真数据相关,比如有两条指 令j和i,指令j可能会引用指令i的结果或指令j 数据相关于指令K,而指令k数据相关于指令i ,则称指令j数据相关于指令i
5
2.1 指令级并行概念
数据相关
数据相关的两条指令是不能同时执行或完全重叠的,相 关意味着在两条指令之间可能可能存在一条由一个或多 个数据冒险组成的相关链(见附录A);同时执行数据相 关的指令会使内部互锁流水线的处理器检测到冒险,造 成停顿,从而减小甚至消除指令间的重叠度
数据相关传递三方面的信息:1)数据相关表明 存在冒险的可能,2)数据相关决定了必须遵循 的执行顺序,3)数据相关决定了可以达到并行 度的上限
6
2.1 指令级并行概念
名字相关
名字相关发生在使用相同存储器或存储单元(称为名字 )的两条指令之间,但名字相关的指令间不存在数据流 ,名字相关有两种类型(假设指令i位于指令j之前): 1、反相关 指令 i 读一个寄存器或存储单元,而指令j写该寄存器或 存储单元,必须保护原始的指令执行顺序。 2、输出相关 指令i和指令j写相同的寄存器时,为了保证该寄存器的值 最后是由指令j写入的,必须保护指令的执行顺序。
指令级并行方法分为两类:一种依赖于硬件,动 态地发现和开发指令级并行;另一种依赖于软件 技术,在编译阶段静态地发现并行。前一种占主 导地位,后一种局限于科学或特定领域。
2
2.1 指令级并行概念
循环级并行
为了提高指令级并行,最常用的方法是将一个 循环中的各次迭代并行执行,通常将这类并行称 为循环级并行。
21
2.4 采用动态调度克服数据冒险

计算机体系结构第四章-1

计算机体系结构第四章-1
阻。
4.2 指令的动态调度
➢ 在前面的基本流水线中:指令在译码阶段判断相关关 系。
ID
检测结构冲突 检测数据冲突
• 一旦一条指令受阻,其后的指令都将停顿。
4.2 指令的动态调度
动态调度的基本思想是前面指令的阻塞不影响后面的 指令的继续前进。具体做法是流水线的译码阶段再分为 两个阶段:
流出(Issue, IS):指令译码,并检查结构冲突。(inorder issue) 读操作数(Read Operands, RO):等待数据冲突消 失(如果有冲突),然后读操作数。(out of order execution)
前提:在乱序流动的流水线中。
不足:可能会产生新的WAR或WAW冲突。
(3)控制冲突:
• 预测分支失败 • 预测分支成功
(编译器)
• 延迟转移技术
静态调度
4.2 指令的动态调度
静态调度
➢ 依靠编译器对代码进行静态调度,以减少相关和冲突。 ➢ 它不是在程序执行的过程中,而是在编译期间进行代码
调度和优化。 ➢ 通过把相关的指令拉开距离来减少可能产生的停顿。
即原来程序中是怎么发生的,改变执行顺序后还是怎 么发生。 弱化为:指令执行顺序的改变不能导致程序中发生新 的异常。
4.2 指令的动态调度
4.2 指令的动态调度
关键知识回顾: 1. 相关 相关是指两条指令之间存在某种依赖关系,是程序固有的一种
属性。 相关包括:名相关,数据相关,控制相关。 2. 冲突( HAZARDS,也称为冒险) 冲突是指由于相关的存在,使得指令流中的下一条指令不能在
指定的时钟周期执行。 具体一次相关是否会导致实际冲突的发生以及该冲突会带来多
长的停顿,则是流水线的属性。 流水线冲突包括:结构冲突,数据冲突,控制冲突。

《计算机系统结构》指令级并行及限制 (2)

《计算机系统结构》指令级并行及限制  (2)

3
答案肯定是NO. 因此如果要避免暂停流水线,一个相关指令的执行必须和 被相关的前一条指令的要分开,分开的时钟周期需至少等 于被相关的指令的流水线延迟。
例如: load r1, 100(r2);若顺序执行,则这两条指令之间 必须暂停一个时钟周期。
add r3, r1, 也r4可在这两条指令之间插入一条 非数据相器换名,消除读后写和写后写。
F0、F4:用于展开后的第1个循环体;
F2:保存常数;
F6和F8:用于展开后的第2个循环体; F10和F12:用于第3个循环体;
数据冒险
F14和F16:用于第4个循环体。
Loop:
LD F0 , 0(R1) ADD.D F4 , F0 , F2 SD 0(R1) , F4 LD F0 , -8(R1) ADD.D F4 , F0 , F2 SD -8(R1) , F4 LD F0 , -16(R1) ADD.D F4 , F0 , F2 SD -16(R1) , F4 LD F0 , -24(R1) ADD.D F4 , F0 , F2 SD -24(R1) , F4 SUBI R1 , R1 , #32 BNEZ R1 , Loop
延迟时钟周期数 3
浮点数据存操作(SD)
2
浮点计算
1
浮点数据取操作(LD) 浮点数据存操作(SD)
0
指令流入时钟
Loop: LD F0 , 0(R1) 1
(空转)
2
ADD.D F4 , F0 , F2 3
(空转)
4
(空转)
5
SD 0(R1) , F4 6
SUBI R1 , R1 , #8 7
(空转)
如Intel的Pentium系列采用动态调度;Intel的Itanium( 用于科学领域和特殊应用)采用静态调度。在RISC机器中,指令 系统支持编译优化,其编译器都会采用静态调度方式,有的也同 时采用动态调度。

指令级并行

指令级并行

指令级并行我们知道,要从系统结构上提高计算机的性能,就必须设法以各种方式挖掘计算机工作的并行性。

并行性又有粗粒度并行性(coarse-grained parallelism)和细粒度并行性(fine-grained parallelism)之分。

所谓粗粒度并行性是在多处理机上分别运行多个进程,由多台处理机合作完成一个程序。

所谓细粒度并行性是在一个进程中进行操作一级或指令一级的并行处理。

这两种粒度的并行性在一个计算机系统中可以同时采用,在单处理机上则用细粒度并行性。

指令级并行概念指令级并行(Instruction-Level Parallelism, ILP),是细粒度并行,主要是相对于粗粒度而言的。

顾名思义,指令级并行是指存在于指令一级即指令间的并行性,主要是指机器语言一级,如存储器访问指令、整型指令、浮点指令之间的并行性等,它的主要特点是并行性由处理器硬件和编译程序自动识别和利用,不需要程序员对顺序程序作任何修改。

正是由于这一优点,使得它的发展与处理器的发展紧密相连。

指令级并行技术突破了每个时钟周期完成一条指令的框框,做到在单处理机上每个时钟周期能完成的指令数平均多于一条。

我们已知道,向量处理机进行的是细粒度的并行处理,它在处理向量时由于采用了流水线,多功能部件河链接技术,能够做到每个时钟周期完成多个操作,相当于多条指令。

但它在处理标量时,效率将大大降低,有时甚至还不及一个普通的通用计算机。

现在几种新的系统结构设计,其基本思想是要挖掘指令级并行,使单处理机达到一个时钟周期完成多条指令。

指令级并行性的含义可用下面的例子来说明:(1)Load C1←23(R2)Add R3←R3+1FPAdd C4←C4+C3并行度=3(2)Add R3←R3+1Add R4←R3+R2Store R0←R4并行度=1上例中,(1)的三条指令是互相独立的,它们之间不存在数相关,所以可以并行执行。

反之,(2)的三条指令中,第2条要用到第1条的结果,第3条要用到第2条的结果,它们都不能并行执行。

第四章 指令级并行

第四章 指令级并行

26
消除名相关 引入两个临时寄存器S和T 把这段代码改写为: DIV.D F0,F2,F4 ADD.D S,F0,F8 S.D S,0(R1) SUB.D T,F10,F14 两个F8都换 名为T MUL.D F6,F10,T

两个F6都换 名为S

基于Tomasulo算法的MIPS处理器浮点部件的基本结构
20
§ 4.2 指令的动态调度
存储器总线 指令分析部件 CDB F7 F6 F5 F4 F3 F2 F1 控制 站号 后行写数站 译 码 器
控制总线 FLB 总线 FLR 总线 CDB
6 5 4 3 2 FLB1
先行读数站 (FLB)
控制
先行操作站 (FLOS)
忙位 站号
通用寄存器 (FLR)
1
10/8
6
§ 4.1 指令级并行

可以从两个方面来解决相关问题:

保持相关,但避免发生冲突。 通过代码变换,消除相关。
可以将冲突检测和相关处理分开进行

程序顺序:
由源程序确定的在完全串行方式下指令的执行顺序。
必须保持程序顺序
改变程序执行顺序是否影响到程序的正确性?
7
§ 4.1 指令级并行 对于正确地执行程序来说,必须保持的最关键的两个属 性是:数据流和异常行为。
第四章
指令级并行
§4.1 指令级并行的概念

指令之间存在的潜在并行性称为指令级并行。 (ILP:Instruction-Level Parallelism) 流水线使指令重叠并行执行,可以达到提高性能的目的。 如果指令间没有相关性,可以并行执行 程序中存在潜在的指令间并行 需要相应的硬件支持 故指令级并行: 硬件+软件技术 硬件技术和软件技术互相配合,通过各种可能的技术, 最大限度地挖掘出程序中存在的指令级并行。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档