好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

流水线技术标量流水部分.ppt

178页
  • 卖家[上传人]:F****n
  • 文档编号:97393750
  • 上传时间:2019-09-03
  • 文档格式:PPT
  • 文档大小:2.49MB
  • / 178 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 9/3/2019,1,第 3 章,流水线技术-标量流水部分,9/3/2019,2,本章学习内容,标量流水的基本概念和工作原理 标量流水的性能分析 流水操作中存在的主要障碍和解决方法 流水调度方法,9/3/2019,3,3.1 重叠操作和先行控制(简述),1. 顺序解释方式 一条指令完全解释执行完毕后,才开始对下一条指令进行解释执行 设把一条指令解释分为取数、分析和执行三个阶段,则: 若各阶段周期均为t0,则顺序解释n条指令,需时间T=3nt0,9/3/2019,4,,2.重叠解释方式 在两条相邻指令的解释过程中,某些不同解释阶段在时间上存在重叠部分这样在一条指令解释执行完成之前就可以开始下一条指令的解释工作 重叠方式 1 设各阶段周期均为t0,则执行n条指令共需 T=2nt0+t0=(2n+1)t0,t0,t0,t0,t0,9/3/2019,5,,重叠方式 2 设各阶段周期均为t0,则执行n条指令共需 T=nt0+2t0=(n+2)t0 重叠方式缩短了程序的执行时间,提高了功能部件的利用率,但需增加硬件支持t0,t0,t0,9/3/2019,6,一次重叠工作方式,任何时候只允许上条指令的“执行”与下条指令的 “分析”相重叠的工作方式称为“一次重叠”。

      T=(n+1)×t0,t0,t0,9/3/2019,7,采用一次重叠工作方式,完成n条指令所需的执行时间为: T=(n+1)×t0 当取指和分析部件的执行时间不等时,执行时间短的部件,必须等待执行时间长的部件功能的完成,导致部件的空闲,使得完成n条指令所需的执行时间变为:,9/3/2019,8,执行时间不等时的一次重叠工作方式,9/3/2019,9,3. 先行控制方式,先行控制方式的基本思想: 通过设置先行读数栈,先行操作栈,后行写数栈等,使分析部件和执行部件能够分别连续不断地分析和执行指令9/3/2019,10,理想情况下,指令执行部件应该一直忙碌 连续执行n条指令的时间为:,9/3/2019,11,先行控制的基本结构,主 存,存储器控制器,,先行指令栈,先行读数栈,指令分析器,后行写数栈,运算控制器,运算器,,,取指,,,读数,,,写数,先行操作栈,通用寄存器组,,,,,,,,,,,,,,,,通道,9/3/2019,12,,三个独立的控制器: 存储控制器、指令控制器、运算控制器 四个缓冲栈: 先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈9/3/2019,13,3.2 标量流水处理技术,3.2.1 流水方式 把一个重复的过程分为若干个子过程,每个子过程都可以有效地在其专用功能段上与其它子过程同时执行。

      例:把指令的执行过程分成取指、译码、执行、访存和写回寄存器五个子过程,并用五个子部件分别处理这五个子过程取指,译码,执行,访存,写回,,,,,,,输入,输出,s1,s2,s3,s4,s5,IF,ID,EX,MEM,WB,9/3/2019,14,流水处理的时空图,,9/3/2019,15,流水处理机的基本结构,,9/3/2019,16,如果每个流水段的延迟时间(通过时间)均为Δts,锁定时间为Δtl,则每功能段的处理时间Δti为: Δti= Δts+Δtl 流水处理机的最高工作频率为: 若每个流水段的延迟时间不等,则最高工作频率为:,9/3/2019,17,⑴ 一条流水线通常由若干个有联系的流水段组成 流水线中的段数也称为 “流水深度” ⑵ 每个流水段有专门的功能部件对指令进行某种加工 ⑶ 各流水段所需时间应尽量相等,以减少流水线的瓶颈影响 ⑷ 流水线工作阶段可分为建立(装入)、满载和排空三个阶段 ⑸在理想情况下,当流水线充满后,每隔Δt时间将会有一个结果流出流水线流水技术的特点,9/3/2019,18,1.按处理级别分 ⑴ 部件级——运算操作流水线 将复杂的算逻运算分段组成流水工作方式。

      例:将浮点加法操作分成求阶差、对阶、尾数相加、结果规格化四个子过程3.2.2 标量流水分类(简述),求阶差,对阶,尾数 相加,规格化,,,,,,输入,输出,s1,s2,s3,s4,9/3/2019,19,浮点加法器流水线的时空图,9/3/2019,20,⑵ 处理机级——指令流水线 把一条指令解释过程分成多个子过程组成流水工作方式 如前面所提到的将指令执行过程分为取指、译码、执行、访存及写回五个子过程 ⑶ 系统级——处理机間流水线(宏流水线) 将系统中多个处理机串联起来,对同一数据流进行不同的处理,每个处理机完成某一专门任务9/3/2019,21,2.按功能分,⑴ 单功能流水线 只完成一种固定功能的流水线 如浮点加法或乘法流水线 ⑵ 多功能流水线 同一流水线的各功能段可进行不同的连接,使流水线在不同时间或同一时间内完成不同的功能9/3/2019,22,多功能流水线,9/3/2019,23,⑴ 静态流水线 在同一时间内,流水线只能以一种功能方式工作 静态流水线可以是单功能的,也可以是多功能的当是多功能流水线时,则从一种功能方式变为另一种功能方式时,必须先排空流水线,然后为另一种功能设置初始条件后方可使用。

      3. 按工作方式分,9/3/2019,24,静态流水线的时空图,9/3/2019,25,⑵ 动态流水线,在同一时间内,可以将流水线中的不同功能段连接成不同的功能子集(前提条件是功能部件的使用不发生冲突),以完成不同的运算功能 动态流水线必是多功能流水线,而单功能流水线则必是静态的9/3/2019,26,动态流水线的时空图,9/3/2019,27,4.按连接方式分,⑴ 线性流水线 从流水线的输入到输出,每个功能段只允许经过一次,流水线中不存在反馈回路 一般的流水线均属于线性流水线 ⑵ 非线性流水线 流水线各功能段之间除了串行连接外,还存在反馈回路,因此从流水线的输入到输出过程中,某些功能段将被数次通过 非线性流水线适合于进行线性递归的运算9/3/2019,28,非线性流水线,流水线的流动顺序: S1→S2 →S3 →S2 →S3 →S4 →S1 →S2,反馈回路,9/3/2019,29,为了防止两条或两条以上的指令对同一功能段的争用,非线性流水线需要对输入流水线的指令进行比较复杂的控制 非线性流水线通常使用预约表来进行分析9/3/2019,30,5.按任务流动方式分,⑴ 顺序流动流水线 输出端的任务流出与输入端的任务流入顺序完全相同。

      ⑵ 乱序流动流水线 输出端的任务流出与输入端的任务流入顺序不完全相同 在乱序流动流水线中,当某任务阻塞时,后面的任务可绕过它继续流动9/3/2019,31,6. Pentium的流水技术,在Pentium CPU内部有两个ALU,分别对应两条流水线U和V(80486只有一条流水线),U流水线执行整数和浮点数指令;V流水线执行整数指令,以及交换寄存器的内容所以,Pentium能在每个时钟周期内执行两条整数运算指令,或在每个时钟周期内执行一条浮点数运算指令 U、V两条指令流水线的段数都含有如下所示的5段, PF D1 D2 EX WB 即:预取指令(PF)段、译码1(D1)段、译码2(D2)段、执行(EX)段和写回寄存器(WB)段9/3/2019,32,9/3/2019,33,3.3 流水线性能分析,1. 吞吐率Tp 单位时间内流水线能处理的任务数量或输出的结果数 设任务数为n,流水线段数为m,完成n个任务的时间为Tm,则吞吐率 ⑴ 最大吞吐率Tpmax 流水线达到稳定状态后可获得的吞吐率9/3/2019,34,⑵ 实际吞吐率Tp 流水线实际工作时的吞吐率 Tp<Tpmax 设在m段流水线中,各段的延迟时间均为Δt,可以利用时空图分析该流水线完成n个任务的实际吞吐率和流水线的最大吞吐率。

      9/3/2019,35,S1,S2,S3,S4,,,,,,输入,输出,Δt,Δt,Δt,Δt,,,t,,,mΔt,Tm,(n-1) Δt,,,,,,,S,9/3/2019,36,完成n个任务所需的总时间: Tm=(n+m-1) Δt 完成n个任务的实际吞吐率: 最大吞吐率: 最大吞吐率就是流水线满载时的吞吐率,因此实际吞吐率为:,9/3/2019,37,可见,实际吞吐率小于最大吞吐率,Tp<Tpmax 只有当 n>>m时,Tp≈Tpmax 设完成一个任务需要的时间为T,则 ∴ m↗ 或 Δt ↙ 都可以增加流水线的吞吐率9/3/2019,38,如果流水线各段的延迟时间不等,则吞吐率取决于最慢段所需的时间 设Δt1=Δt2=Δt4=Δt Δt3=3Δt,S1,S2,S3,S4,,,,,,输入,输出,Δt1,Δt2,Δt3,Δt4,9/3/2019,39,,,t,,,Tm,(n-1) Δt3,,,,,,,S,,9/3/2019,40,完成n个任务的实际吞吐率: 最大吞吐率: 本题中Tmax=1/3Δt,9/3/2019,41,流水线瓶颈问题的解决方法,⑴ 将瓶颈子过程进一步细分成若干个子子过程,使每一个子子过程与其他子过程时间相等。

      如将瓶颈段S3进一步分成S3a,S3b和S3c三个时间上相当于Δt的子子过程,便可消除S3瓶颈,使最大吞吐率由1/3Δt恢复成1/Δt9/3/2019,42,,,t,,,Tm,(n-1) Δt,,,,,,S,,6Δt,9/3/2019,43,⑵ 在瓶颈段,并联设置多套功能段部件,使它们轮流工作 如在瓶颈段S3并联设置3套功能部件,可使吞吐率恢复到1/Δt9/3/2019,44,重复设置功能段的控制复杂,需要在流水线中设置数据分配器和数据收集器T,9/3/2019,45,2. 加速比 Sp,加速比是指采用流水方式后的工作速度与等效的顺序串行方式的工作速度之比 对n个求解任务,若用串行方式完成工作需要时间为Tl,用m段流水线完成工作需要时间为Tm,每个功能段的延迟时间为Δt,则流水线的加速比为: 最大加速比:,9/3/2019,46,由最大加速比 Spmax=m 可知:增加流水线的深度m,可以提高流水线的最大加速比 但只有在任务数n很大的情况下,才能有效地发挥流水线的效率9/3/2019,47,例:对于4段流水线,当n=1时,Sp=1,当n=64时,Sp=3.8 若流水线个功能段的延迟时间不等,则加速比为:,9/3/2019,48,3.效率 E,效率是指流水线中的各功能段的利用率。

      由于流水线有建立和排空时间,因此各功能段的设备不可能一直处于工作状态,总有一段空闲时间一般用流水线各段处于工作时间的时空区与流水线中各段总的时空区之比来衡量流水线的效率9/3/2019,49,,,,,mΔt,Tm,(n-1) Δt,,,,,,,S,t,9/3/2019,50,流水线的最大效率,当n→∞时,流水线的效率最高 若流水线各段的延迟时间不同,则效率为:,9/3/2019,51,吞吐率、加速比和效率的关系,E=Tp·Δt=Sp/m 效率是实际加速比和最大加速比之比只有E=1时,才能达到Sp=m 当Δt不变时,效率与吞吐率成正比所以为提高效率所采用的方法,对提高吞吐率也有好处9/3/2019,52,例1:设有浮点加法器流水线,试分析算式 Z=A+B+C+D+E+F+G+H在流水线中执行时的流水线的性能 为提高运算速度,可采用算法: Z={[(A+B)+(C+D)]+[(E+F)+(G+H)] } = [(1)+(2)]+[(3)+(4)] = [一]+[二],求阶差,对阶,尾数加,规格化,,,,,,被加数,输出和,Δt0,Δt0,Δt0,Δt0,,,,,加数,9/3/2019,53,9/3/2019,54,吞吐率: 加速比: 效率:,9/3/2019,55,例2: 设有静态加、乘双功能流水线,其中段1、2、3、4、6组成乘法流水线,1、5、6组成加法流水线,各段的延迟时间均为Δt,流水线的输出可直接返回输入端或暂存到相应的缓冲寄存器中。

      现有A、B两个向量,每个向量有四个元素,要求。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.