
计算机系统结构第3章流水线技术.ppt
127页1第三章第三章 流水线技术流水线技术3.1流水线的基本概念3.2流水线的时空图及性能分析3.3流水线的相关3.4MIPS R4000流水线计算机 3.5向量处理机23.1 流水线的基本概念l一.指令的重叠执行l1.一条指令执行的几个过程段l 1)取指令: 根据PC(指令计数器)从M(存储 器)取出指令送到IR(指令寄存器)l 2)译码分析: 译出指令的操作性质,准备好 所需数据 l 3)执行:将准备好的数按译出性质进行处理, 主要涉及ALU(算术逻辑运算部件)3.1.1有关基本概念32. 对指令执行的几种方式1)顺序执行 (传统机采用)l只有在前一条指令的各过程段全部完成后,才从存储器取出下一条指令 取译 执取译执i条 i +1条42) 仅两条指令重叠:第i条指令的执行与第i+1条的取指重叠 3) 三条指令重叠:第i条指令的执行与第i+1条的译码及第i+2 条的取指重叠i条取译执取译执i+1条i条取译执i+1条取译执i+2条取译执5若一条指令的过程段划分更多时,重叠组合方式更多重叠解释并不能加快一条指令的实现,但能加快一段程序的 解释3. 3. 重叠方式中所需时间表达式及所需时间计算重叠方式中所需时间表达式及所需时间计算1)条件:设一条指令分为三个过程段,各过程段分别用t取、 t译、t执表示。
执行n条指令,分别采用顺序执行、两条重叠、三条重叠2)分别列出上述三种执行方式所需时间表达式 顺序执行 n*(t取+t译+t执)两条重叠 t取+ n* t译+(n-1) * max( t取,t执) + t执三条重叠 t取+ max( t译, t取) +(n-2) * max (t取,t译,t执)+max( t执, t译) + t执63) 例子 当n=200,t取=3Δt,t译=4Δt,t执=5Δt,时,分别 计算上述三种执行方式的时间顺序执行:200×(3+4+5)=2400Δt两条重叠:3+200×4+(200-1)×5+5=1803Δt三条重叠:3+4+(200-2)×5+5+5=1007Δt74重叠方式需要解决的问题1)对存储器的频繁访问 ① 有哪些访问:取指令、取操作数、存放执行结果, I/O 通道访问. ② 希望存储器为多体结构,以适应多种访问源的需要 ③ 当存储器为单体结构时,需要将访问源排队,先后顺序 为:取指令、取数据、I/O通道访问、存结果2)应具有先行控制部件 ① 先行:在重叠操作中,当前一条指令在执行过程中就需 要提前取出后面的指令进行相应处理,这种提前取出后 继指令进行相应处理,称为先行。
82) 先行控制部件的主要内容Ⅰ)先行地址站,包括先行指令地址站和先行操作数地址 站;Ⅱ)先行指令站,用来存放多条指令;Ⅲ)先行操作数站,用来存放多个操作数; Ⅳ)先行地址形成部件,用来形成先行指令地址以及先行 操作数地址;Ⅴ)先行操作数译码站,用来完成对多条指令的译码并保 留译码输出状态93)也应具有后行部件后行部件:对指令执行后的结果进行处理的器件,称后行部件 包括: ①后行数地址站,提供后行数存放地址 ②后行数站,存放运行的结果,并且,这些结果需送存储器1011二、从重叠到流水1、工业生产流水线下面通过一个例子来说明流水线的好处:–两种方案–两种方案的工作过程对比–流水线生产过程的抽象描述–这种流水工作方式的主要特点12°洗衣店的例子° A, B, C, D均有一些衣物要清洗,甩干,折叠° 清洗要花 30 分钟° 甩干要用 30 分钟° 叠衣物也需要 30 分钟° 还要花费 30 分钟的时间将衣物放在衣柜里ABCD13顺序操作° 洗4 个人的衣物,顺序操作需要 8 个小时° 如果使用流水线作业, 将需要多少时间呢?30任 务 顺 序BCDA时间30 30303030303030 30303030 3030306 下午 78910111212 上午14流水线作业° 流水线作业洗4个人的衣物只需要 3.5 个小时!任 务 顺 序122 上午6 下午 78910111时间BCDA3030 30303030 3015流水线°流水线无法帮助解决单个任务 的延迟, 有利于减少整个工作 全部时间°多个任务同时操作需要不同 的资源°流水线的速率受速度最慢 的流水段的限制°流水线各段长度不均会降低 加速比6 下午789时间BCDA3030 30303030 30任 务 顺 序162、流水线技术–把一个重复的过程分解为若干个子过程,每个子 过程由专门的功能部件来实现。
–把多个处理过程在时间上错开,依次通过各功能 段,这样,每个子过程就可以与其他的子过程并 行进行3、流水线中的每个子过程及其功能部件称为流 水线的级或段,段与段相互连接形成流水线 流水线的段数称为流水线的深度174、指令流水线–把指令的解释过程分解为分析和执行两个子过程 ,并让这两个子过程分别用独立的分析部件和执 行部件来实现 理想情况:速度提高一倍–4段指令流水线 185、浮点加法流水线–把流水线技术应用于运算的执行过程,就形成了 运算操作流水线,也称为部件级流水线–把浮点加法的全过程分解为求阶差、对阶、尾数 相加、规格化4个子过程理想情况:速度提高3倍193.1.2 流水线的分类流水线可按不同的观点进行分类,一般来说流水线可以 分为以下几个类型1、按各过程段用时是否相等分类流水线按各过程段用时是否相等可分为均匀流水 线和非均匀流水线两种1) 均匀流水线指的是各过程段用时全相等的流水线2) 非均匀流水线指的是各过程段用时不全相等的流水线 202、按处理的数据类型1) 标量流水线:用于对标量数据进行流水处理2) 向量流水线:用于对向量数据进行流水处理 (向量很适合流水处理)按处理的数据类型可分为标量流水处理机和向量流 水处理机两种。
213.按流水线的规模按流水线的规模可分为操作流水线、指令流水线和 宏流水线1) 操作流水线是把处理机的算术逻辑部件分段,使得各种数 据类型的操作能够进行流水,规模最小 2) 指令流水线则是把解释指令的过程按照流水方式处理 3) 宏流水线它是指由两个以上的处理机串行地对同一数据流 进行处理,每个处理机完成一项任务 224.按功能分类 按流水线完成的功能是否单一,流水线可分为单功 能流水线与多功能流水线两种1) 单功能流水线:只能完成一种固定功能的流水 线 2) 多功能流水线:流水线的各段可以进行不同的 连接,以实现不同的功能l例: ASC的多功能流水线23245.按工作方式分类 流水线按工作方式可分为静态流水线和动态流 水线两种1) 静态流水线:在同一时间内,多功能流水线中的 各段只能按同一种功能的连接方式工作对于静态流水线来说,只有当输入的是一串相 同的运算任务时,流水的效率才能得到充分的发挥例如:ASC的8段流水线252) 动态流水线:在同一时间内,多功能流水线中 的各段可以按照不同的方式连接,同时执行多种 功能 优点l灵活,能够提高流水线各段的使用率,从而 提高处理速度缺点l控制复杂。
26静、动态流水线时空图对比276.按连接方式分类 按照流水线的各个功能段之间是否有反馈信号, 可将流水线分为线性流水线和非线性流水线1) 线性流水线:流水线的各段串行连接,没有反馈回 路数据通过流水线中的各段时,每一个段最多只流过一 次2) 非线性流水线:流水线中除了有串行的连接外,还 有反馈回路2829例:在一个5段流水线上9拍完成一个任务,其预约表为:分别写出延迟禁止表F和冲突向量C并请给出一种可行的调度方案307.其他分类除上述几种外,流水线分类还有下述几种1)根据控制方式分成顺序流水线和乱序流水线 2)性流水线中,根据控制方式还可以分成同步流 水线和异步流水线 313.1.3 流水线的特点1.流水线处理的必须是连续任务,只有连续不断的任务才能充 分发挥流水线的效率2.流水线依靠多个功能部件并行工作来缩短程序的执行时间, 实际上是把一个大的功能部件分解为多个子过程,如前述将浮点 数加法器分解为4个子过程3.流水线中的每一功能部件后面都要有一个缓冲寄存器,即所 谓的锁存器,以便平滑各个功能段延时时间的不一致4.流水线中各段时间应尽量相等,避免段延时过长引起的相互 等待5.流水线需要有“装入时间”和“排空时间”。
323.2 流水线的时空图及性能分析一、时空图–时空图从时间和空间两个方面描述了流水线的工作过程 时空图中,横坐标代表时间,纵坐标代表流水线的各 个段 –4段指令流水线的时空图3.2.1 流水线的时空图333.2.2 流水线的性能分析l吞吐率:在单位时间内流水线所完成的任务数量或输 出结果的数量一、 吞吐率n:任务数Tk:处理完成n个任务所用的时间341、各段时间均相等的流水线–各段时间均相等的流水线时空图35–流水线完成n个连续任务所需要的总时间为 (假设一条k段线性流水线)Tk=kΔt+(n-1)Δt=(k+n-1)Δt –流水线的实际吞吐率–最大吞吐率36–最大吞吐率与实际吞吐率的关系 l流水线的实际吞吐率小于最大吞吐率,它除了与每个段的时间有关外,还与流水线的段数k以及输入到流水线中的任务数n等有关l只有当nk时,才有TP≈TPmax 372、各段时间不完全相等的流水线 –各段时间不等的流水线及其时空图– 举例(时空图)l一条4段的流水线lS1,S3,S4各段的时间:ΔtlS2的时间:3Δt (瓶颈段)–流水线中这种时间最长的段称为流水线的瓶颈段 3839–各段时间不等的流水线的实际吞吐率:l( Δti为第i段的时间,共有k个段 )–流水线的最大吞吐率为403、解决流水线瓶颈问题的常用方法 1)细分瓶颈段l 例如:对前面的4段流水线l把瓶颈段S3细分为3个子流水线段:S3a, S3b,S3c改进后的流水线的吞吐率 :412)重复设置瓶颈段l缺点:控制逻辑比较复杂,所需的硬件增加 了。
例如:对前面的4段流水线 重复设置瓶颈段S3:S3a,S3b,S3c42重复设置瓶颈段后的时空图43二、 加速比流水线的加速比(Speedup,S)完成某个任务顺序执 行所用时间与流水线执行所用时间之比 假设:不使用流水线(即顺序执行)所用的间为Ts, 使用流水线后所用的时间为Tk,则该流水线的加速比为441、流水线各段时间相等(都是△t) –一条k段流水线完成n个连续任务l 所需要的时间为Tk = (k+n-1)Δt –顺序执行n个任务l 所需要的时间: Ts= nk△t流水线的实际加速比为45–最大加速比当nk时,S ≈ k思考:流水线的段数愈多愈好? 462、流水线的各段时间不完全相等时 一条k段流水线完成n个连续任务的实际加速比为47三、 效率流水线效率(Efficiency,E)是指流水线的设备利用率在 时空图上,流水线的效率定义为n个任务占用的时空区与k个功能 段总的时空区之比,因此流水线的效率包含时间和空间两个方面 的因素实际上,n个任务占用的时空区就是顺序执行n个任务的 总的时间T0;而用一条k段流水线完成n个任务的总的时空区 为K*Tk ,其中Tk 是流水线完成n个任务所使用的总时间,则 一条k段流水线的效率为:48举例l计算:S=a0+a1+a2+a3+a4+a5+a6+a7l对相关算式要合理分解算式——尽量分解为少相关算式:l① S0=a0+a1 ⑤S4=S0+S1l② S1=a2+a3 ⑥S5=S2+S3 l③ S2=a4+a5 ⑦S6=S4+S5 l④ S3=a6+a749吞吐率:TP=7/18 (1/Δt) 效率:E=(作用区域面积)/(完成运算所需时间矩形面积 )=(7*5Δt)/(18Δt*5)=7/18503.3 流水线中的相关3.3.1 什么是流水线相关如果要执行算式S=a/b+c,要通过下列四条指令来执行。
LD R , A DIV R , BADD R , C;要等DIV结果ST R , S;存。
