中国科学技术大学ppt课件.ppt
《中国科学技术大学ppt课件.ppt》由会员分享,可在线阅读,更多相关《中国科学技术大学ppt课件.ppt(123页珍藏版)》请在三一文库上搜索。
1、中国科学技术大学,1,计算机体系结构,周学海 0551-63601556, 63492149 中国科学技术大学,第三章 流水线技术,3.1流水线的基本概念 3.2 MIPS基本流水线 3.3 DLX (MIPS)中多周期操作的处理 3.4 MIPS R4000流水线,中国科学技术大学,chapter03.2,流水线的基本概念,一个任务可以分解为k 个子任务 K个子任务在 K 个不同阶段(使用不同的资源)运行 每个子任务执行需要1个单位时间 整个任务的执行时间为 K倍单位时间 流水线执行模式是重叠执行模式 K个流水段并行执行K个不同任务 每个单位时间进入/离开流水线一个任务,中国科学技术大学,
2、chapter03.3,同步流水线,流水段之间采用时钟控制的寄存器文件(clocked registers) 时钟上升沿到达时 所有寄存器同时保存前一流水段的结果 流水段是组合逻辑电路 流水线设计中希望各段相对平衡 即所有段的延迟时间大致相等 时钟周期取决于延迟最长的流水段,中国科学技术大学,chapter03.4,流水线的性能,设 = time delay in stage Si 时钟周期 = max( ) 为最长的流水段延迟 时钟频率 f = 1/ = 1/max( ) 流水线可以在k+n-1个时钟周期内完成n个任务 完成第一个任务需要 k个时钟周期 其他n-1个任务需要n-1个时钟周期完
3、成 K-段流水线的理想加速比(相对于串行执行),中国科学技术大学,chapter03.5,简单的5段流水线,5个流水段,每段的延迟为1个cycle IF: 取值阶段 选择地址:下一条指令地址、转移地址 ID: 译码阶段 确定控制信号 并从寄存器文件中读取寄存器值 EX: 执行 Load 、Store:计算有效地址 Branch:计算转移地址并确定转移方向 MEM: 存储器访问(仅Load和Store) WB: 结果写回,中国科学技术大学,chapter03.6,流水线的可视化表示,多条指令执行多个时钟周期 指令按程序序从上到下排列 图中展示了每一时钟周期资源的使用情况 不同指令相邻阶段之间没有
4、干扰,中国科学技术大学,chapter03.7,指令流时序,时序图展示: 每个时钟周期指令所使用的流水段情况 指令流在采用5段流水线执行模式的执行情况,中国科学技术大学,chapter03.8,单周期、多周期、流水线控制性能比较,假设5段指令执行流水线 某一程序段假设: 20% load, 10% store, 40% ALU, and 30% branch 比较三种执行模式的性能,中国科学技术大学,chapter03.9,中国科学技术大学,chapter3.10,03/03-review 流水线技术要点,流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率 流水线中的瓶颈最慢的
5、那一段 多个任务同时执行,但使用不同的资源 其潜在的加速比流水线的级数 流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低 由于存在相关问题,会导致流水线停顿,吞吐率:在单位时间内流水线所完成的任务数量或输 出结果的数量。,基本度量参数:吞吐率,加速比,效率,n:任务数 Tk:处理完成n个任务所用的时间,流水线的性能分析,中国科学技术大学,chapter03.11,1. 各段时间均相等的流水线 各段时间均相等的流水线时空图,流水线技术提高系统的任务吞吐率,中国科学技术大学,chapter03.12,流水线完成n个连续任务所需要的总时间为 (假设一条k段线性流水线)
6、Tkkt(n-1)t(kn-1)t 流水线的实际吞吐率,最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率。,吞吐率,中国科学技术大学,13,最大吞吐率与实际吞吐率的关系,流水线的实际吞吐率小于最大吞吐率,它除了与每个段的时间有关外,还与流水线的段数k以及输入到流水线中的任务数n等有关。 只有当nk时,才有TPTPmax。,TP与Tpmax的关系,中国科学技术大学,chapter03.14,2. 各段时间不完全相等的流水线 各段时间不等的流水线及其时空图 一条4段的流水线 S1,S3,S4各段的时间:t S2的时间:3t (瓶颈段) 流水线中这种时间最长的段称为流水线的瓶颈段。,流水线中
7、的瓶颈最慢的段,中国科学技术大学,chapter03.15,中国科学技术大学,chapter03.16,各段时间不等的流水线的实际吞吐率: ( ti为第i段的时间,共有k个段 ),流水线的最大吞吐率为,中国科学技术大学,17,例如:一条4段的流水线中,S1,S2,S4各段的 时间都是t,唯有S3的时间是3t。,最大吞吐率为,中国科学技术大学,18,解决流水线瓶颈问题的常用方法 细分瓶颈段 例如:对前面的4段流水线 把瓶颈段S3细分为3个子流水线段:S3a,S3b,S3c,改进后的流水线的吞吐率 :,中国科学技术大学,19,重复设置瓶颈段 缺点:控制逻辑比较复杂,所需的硬件增加了。 例如:对前面
8、的4段流水线 重复设置瓶颈段S3:S3a,S3b,S3c,中国科学技术大学,chapter03.20,重复设置瓶颈段后的时空图,中国科学技术大学,chapter03.21,加速比:完成同样一批任务,不使用流水线所用的时间 与使用流水线所用的时间之比。 假设:不使用流水线(即顺序执行)所用的间为Ts,使用流水线后所用的时间为Tk,则该流水线的加速比为,加速比,中国科学技术大学,chapter03.22,1. 流水线各段时间相等(都是t) 一条k段流水线完成n个连续任务 所需要的时间为 Tk = (kn-1)t 顺序执行n个任务 所需要的时间: Ts= nkt 流水线的实际加速比为,中国科学技术大
9、学,chapter03.23,最大加速比,当nk时,S k 思考:流水线的段数愈多愈好?,中国科学技术大学,chapter03.24,流水线的各段时间不完全相等时 一条k段流水线完成n个连续任务的实际加速比为,中国科学技术大学,chapter03.25,效率,效率:流水线中的设备实际使用时间与整个运行时间 的比值,即流水线设备的利用率。 由于流水线有通过时间和排空时间,所以在连续 完成n个任务的时间内,各段并不是满负荷地工作。 各段时间相等 各段的效率ei相同,中国科学技术大学,chapter03.26,整条流水线的效率为,可以写成,最高效率为,当nk时,E1。,中国科学技术大学,27,当流水
10、线各段时间相等时,流水线的效率与吞吐率成正比。 E=TPt 流水线的效率是流水线的实际加速比S与它的最大加速 比k的比值。,当E=1时,S=k,实际加速比达到最大。,中国科学技术大学,chapter03.28,从时空图上看,效率就是n个任务占用的时空面积和 k个段总的时空面积之比。,当各段时间不相等时,中国科学技术大学,29,中国科学技术大学,chapter3.30,Summary,实际吞吐率:假设k段,完成n个任务,单位时间所实际完成的任务数。 加速比: k段流水线的速度与等功能的非流水线的速度之比。 效率:流水线的设备利用率。,中国科学技术大学,chapter3.31,中国科学技术大学,c
11、hapter3.32,-Review: Pipelining,指令流水线通过指令重叠减小 CPI 充分利用数据通路 当前指令执行时,启动下一条指令 其性能受限于花费时间最长的段 检测和消除相关 如何有利于流水线技术的应用 所有的指令都等长 只有很少的指令格式 只用Load/Store来进行存储器访问,中国科学技术大学,chapter3.33,-Review:流水线性能分析,流水线技术应用的难度何在? :相关问题,吞吐率、加速比、效率之间的关系,中国科学技术大学,chapter3.34,指令流水线:CPU执行大量的指令,指令吞吐率非常重要 MIPS 的指令格式,3.2 MIPS的基本流水线,所有
12、指令相同长度 在指令格式中寄存器位于同一位置 只有Loads和Stores可以对存储器操作,6,中国科学技术大学,chapter3.35,MIPS数据通路,中国科学技术大学,chapter3.36,中国科学技术大学,chapter3.37,MIPS数据通路,中国科学技术大学,chapter3.38,改进后流水线的分支操作,中国科学技术大学,chapter3.39,3.2.1 流水线的相关,相关的基本概念 结构相关 数据相关 控制相关,中国科学技术大学,chapter3.40,采用流水线技术带来的新问题,流水线相关 结构相关:同一时间两种方式使用同一资源 例如 washer/dryer 合在一起
13、, IM和ID合在一起 控制相关: 试图在条件未评估之前,就做决定 例如 branch instructions 数据相关:在数据未准备好之前,就需要使用数据 当前指令的执行需要上一条指令的结果 使用等待策略总是可以解决相关 流水线控制必须能检测相关,否则由软件设计来避免 采用相应操作解决相关 (or 等待),中国科学技术大学,chapter3.41,Mem,单个存储器引起的结构相关,I n s t r. O r d e r,Time (clock cycles),Load,Instr 1,Instr 2,Instr 3,Instr 4,Reg,Mem,Reg,Reg,Mem,Reg,Dete
14、ction is easy in this case! (right half highlight means read, left half write),中国科学技术大学,chapter3.42,消除结构相关,中国科学技术大学,chapter3.43,结构相关对性能的影响,例如: 如果每条指令平均访存1.3 次,而每个时钟周期只能访存一次,那么 在其他资源100利用的前提下,平均 CPI 1.3,中国科学技术大学,chapter3.44,流水线的加速比计算,For simple RISC pipeline, CPI = 1:,中国科学技术大学,chapter3.45,例如: Dual-po
15、rt vs. Single-port,机器A: Dual ported memory (“Harvard Architecture”) 机器B: Single ported memory 存在结构相关的机器B的时钟频率是机器A的时钟频率的1.05倍 Ideal CPI = 1 在机器B中load指令会引起结构相关,所执行的指令中Loads指令占 40% Average instruction time = CPI * Clock cycle time 无结构相关的机器A: Average Instruction time = Clock cycle time 存在结构相关的机器B: Avera
16、ge Instruction time = (1+0.4*1) * clock cycle time /1.05 = 1.3 * clock cycle time,中国科学技术大学,chapter3.46,数据相关问题,Time (clock cycles),中国科学技术大学,chapter3.47,写后读相关(Read After Write (RAW) InstrJ tries to read operand before InstrI writes it 由于实际的数据交换需求而引起的,三种基本的数据相关,I: add r1,r2,r3 J: sub r4,r1,r3,中国科学技术大学,
17、chapter3.48,读后写相关Write After Read (WAR) InstrJ writes operand before InstrI reads it 编译器编写者称之为“anti-dependence”(反相关),是由于重复使用寄存器名“r1”引起的. DLX(MIPS) 5 段基本流水线不会有此类相关因为: 所有的指令都是5段, 并且 读操作总是在第2段,而 写操作在第5段,中国科学技术大学,chapter3.49,写后写相关(Write After Write (WAW)) InstrJ writes operand before InstrI writes it. 编
18、译器编写者称之为“output dependence” ,也是由于重复使用寄存器名 “r1”引起的. 在DLX(MIPS) 5段基本流水线中,也不会发生。因为 所有指令都是5段,并且写操作都在第5段 在后面的复杂的流水线中我们将会看到 WAR 和WAW 相关,中国科学技术大学,chapter3.50,采用定向技术避免数据相关,中国科学技术大学,chapter3.51,采用定向技术硬件所需做的修改,中国科学技术大学,chapter3.52,定向源为R-R ALU操作的定向比较判断,中国科学技术大学,chapter3.53,定向源为ALUimm操作的定向比较判断,中国科学技术大学,chapter3
19、.54,定向源为Load操作的比较判定,中国科学技术大学,chapter3.55,采用定向技术仍然存在相关,中国科学技术大学,chapter3.56,DMem,中国科学技术大学,chapter3.57,Try producing fast code for a = b + c; d = e f; assuming a, b, c, d ,e, and f in memory. Slow code: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SW d,Rd,采用软件方法避免数据相关,Fast code: L
20、W Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra SUB Rd,Re,Rf SW d,Rd,控制冲突,执行分支指令的结果有两种 分支成功:PC值改变为分支转移的目标地址。 在条件判定和转移地址计算都完成后,才改变PC值。 不成功或者失败:PC的值保持正常递增,指向顺序的下一条指令。 分支需要解决两个问题 分支目标地址(转移成功意谓着PC值不是 PC+4) CC是否有效,这两点在DLX(MIPS)中都在流水线的靠后段中确定 处理分支指令最简单的方法: “冻结”或者“排空”流水线 。 优点:简单。,中国科学技术大学,chapter03.58,中
21、国科学技术大学,chapter3.59,回顾DLX (MIPS)数据通路,简单处理分支指令:分支成功的情况,简单处理分支指令:分支失败的情况,中国科学技术大学,chapter03.60,中国科学技术大学,chapter3.61,减少分支延时的方法,硬件的方法 修改数据通路:使得目标地址和分支条件尽早确定,其中之一尽早确定是没有用的 判断是否为0可以在ID段确定 使用另一个加法器计算 可以在ID段计算BTA(分支目标地址),即在ID段形成下一条指令地址,两种可能(BTA, PC+4),选择哪一个取决于ID段确定的CC 必要时使用互锁机制来插入Stall 设计合适的ISA e.g. BNEZ, B
22、EQZ on DLX 使得CC可以在ID段确定 软件(通过编译器)的方法: 调度一些指令放入分支的延迟槽中 预测的方法:统计分支成功和失败的情况,提高预测精度,中国科学技术大学,chapter3.62,新的DLX (MIPS)数据通路,中国科学技术大学,chapter3.63,改进后流水线的分支操作,中国科学技术大学,chapter3.64,四种可能的解决控制相关的方法,#1: Stall 直到分支方向确定 #2: 预测分支失败 直接执行后继指令 如果分支实际情况为分支成功,则撤销流水线中的指令对流水线状态的更新 DLX(MIPS)分支指令平均47%为分支失败 要保证:分支结果出来之前不会改变
23、处理机的状态,以便一旦猜错时,处理机能够回退到原先的状态。 #3: 预测分支成功 前提:先知道分支目标地址,后知道分支是否 成功。 平均53% DLX (MIPS)分支为分支成功 DLX(MIPS)分支目标地址在ID段才能计算出目标地址 DLX(MIPS) 还是有1个 cycle 的分支延迟,中国科学技术大学,chapter3.65,延迟转移,#4: 延迟转移 主要思想: 从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成,不管分支是否成功,都要按顺序执行延迟槽中的指令。 定义分支发生在一系列指令之后 branch instruction sequentia
24、l successor1 sequential successor2 sequential successorn branch target if taken 5级流水只需要一个延迟槽就可以确定目标地址和确定条件 DLX 使用这种方式,分支延迟槽中的指令“掩盖”了流水线原来必须插入的暂停周期。,具有一个分支延迟槽的流水线的执行过程,中国科学技术大学,66,中国科学技术大学,chapter3.67,延迟转移,从何处选择指令来填充延迟槽? 分支指令之前的指令:最好 从分支目标地址处取: 在分支成功可能性大时,这种策略较好 从分支失败处调度:仅在分支失败时 编译器可以有效的调度一个延迟槽 如果提供取
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国科学技术大学 ppt 课件
链接地址:https://www.31doc.com/p-2706770.html