利用流水线提高性能ppt课件

上传人:aa****6 文档编号:55089965 上传时间:2018-09-24 格式:PPT 页数:156 大小:800KB
返回 下载 相关 举报
利用流水线提高性能ppt课件_第1页
第1页 / 共156页
利用流水线提高性能ppt课件_第2页
第2页 / 共156页
利用流水线提高性能ppt课件_第3页
第3页 / 共156页
利用流水线提高性能ppt课件_第4页
第4页 / 共156页
利用流水线提高性能ppt课件_第5页
第5页 / 共156页
点击查看更多>>
资源描述

《利用流水线提高性能ppt课件》由会员分享,可在线阅读,更多相关《利用流水线提高性能ppt课件(156页珍藏版)》请在金锄头文库上搜索。

1、2005,1,华东师范大学计算机科学技术系,6 利用流水线提高性能,2005,2,华东师范大学计算机科学技术系,6 利用流水线提高性能,6.1 流水线概述 6.2 流水线的数据通路 6.3 流水线中的控制 6.4 数据冒险与转发 6.5 数据冒险与阻塞 6.6 分支冒险 6.7 异常 6.8 提高性能 6.9 实例:Pentium 4处理器的流水线,2005,3,华东师范大学计算机科学技术系,6 利用流水线提高性能,6.1 流水线概述,2005,4,华东师范大学计算机科学技术系,6.1 流水线概述,并行处理技术早期的计算机基于冯诺伊曼的体系结构,采用的是串行处理计算机的各个操作只能串行地完成,

2、任一时刻只能进行一个操作,6.1 流水线概述,一、并行处理技术并行性: 同时性:指两个以上事件在同一时刻发生 并发性:指两个以上事件在同一时间间隔内发生 计算机的并行处理技术可贯穿于信息处理 的各个步骤和阶段分三种形式: 时间并行空间并行时间并行空间并行,2005,5,华东师范大学计算机科学技术系,一、并行处理技术, 时间并行时间重叠让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以赢得处理速度时间并行性概念的实现方式就是采用流水处理部件,2005,6,华东师范大学计算机科学技术系,一、并行处理技术, 空间并行资源重复在并行性概念中引入空间因素,以增加“数量” 来大幅度

3、提高计算机的处理速度空间并行技术主要体现在多处理器系统和 多计算机系统,2005,7,华东师范大学计算机科学技术系,一、并行处理技术, 时间并行空间并行时间重叠和资源重复的综合应用既采用时间并行性又采用空间并行性例:奔腾CPU采用超标量流水技术,在一个机器周期中同时执行两条指令具有时间并行性又具有空间并行性,2005,8,华东师范大学计算机科学技术系,2005,9,华东师范大学计算机科学技术系,6.1 流水线概述,流水线是一种可将多条指令的执行过程相互重叠的实现技巧。流水线技术是在计算机上实现时间并行性,提高处理器速度的一种非常经济的方法。二、流水线工作原理概述:将任务分割为一系列子任务,使各

4、子任务能在流水线的各个阶段并发地执行,即实现子任务级的并行操作。,2005,10,华东师范大学计算机科学技术系,二、流水线工作原理概述:,子任务的划分决定流水线性能的关键因素。,方法:将T任务划分为k个子任务T = T1,T2,Tk,要求:各子任务划分合理,处理时间相同,避免空转 子任务任务数的划分取决于: 操作的效率 所期望的处理速度 成本价格等,关键: 每个子任务的处理时间一样 应取多少任务数,2005,11,华东师范大学计算机科学技术系,二、流水线工作原理概述:,效率:子任务并行工作,提高了吞吐率 实际上整个任务处理的时间并没有缩短,而是因为各子任务并行工作,单位时间内所完成的工作量就大

5、大增加了。流水线提高了整个系统的吞吐率。 子任务划分越细,流水线效率越高,但硬件代价也越高,2005,12,华东师范大学计算机科学技术系,二、流水线工作原理概述:,1. 线性流水线各子任务之间有一定的优先关系。若ij, 则必须在Ti完成后,Tj才开始工作,这种线性优先关系的流水线称为线性流水线。,时钟周期 i为执行Si所需的时间,l为缓冲寄存器的延时maxilml 流水线时钟频率为: f1/,2005,13,华东师范大学计算机科学技术系,二、流水线工作原理概述:,2. 流水线加速比当流水线任务饱满时,任务源源不断地输入流水线,不论有多少级过程段,每隔一个时钟周期都能输出一个任务从理论上说,一个

6、具有k级过程段的流水线处理n个任务需要的时钟周期数为:Tkk(n1),K个时钟周期用于处理第一个任务,流水线正常流动 后,剩下的n-1个任务,每个时钟周期就能完成一个。,而用非流水线的硬件来处理这n个任务,时间上只能串行进行,则所需时钟周期数为:TLnk,2005,14,华东师范大学计算机科学技术系,2. 流水线加速比,k级过程段的流水线处理n个任务需要的时钟周期数为: Tkk(n1)非流水线的硬件处理所需时钟周期数为: TLnk,流水线加速比Ck=TL/Tk= n k /(k+(n-1)k,当nk时,Ckk,理论上k级线性流水线可提高k倍速度, 但实际上由于存在结构冒险、数据 冒险等,并达不

7、到理想的值。,流水线所带来的性能提升是通过提高指令的吞吐率来实现 的,而不是通过减少单条指令的执行时间来实现。,二、流水线工作原理概述:,3. 流水线时空图为了实现流水,首先把输入的任务(或过程)分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性,2005,15,华东师范大学计算机科学技术系,3. 流水线时空图,设指令执行的流水线过程段:,一条流水线由一系列串联的过程段组成各过程段之间设有高速缓冲寄存器,以暂时保存上一过程段子任务处理的结果在统一的时钟信号控制下,数据从一个过程段流向相

8、邻的过程段,例:一条指令的执行分为四个子过程段(Si)每个子过程段处理时间均为t 分析对比:非流水线、流水线、超标量流水线执行5条指令所需时间,2005,16,华东师范大学计算机科学技术系,3. 流水线时空图, 非流水线时空图,上一条指令的四个子过程全部被执行完毕后才能开始下一条指令每隔4个机器时钟周期才有一个输出结果执行5条指令所需时间: t45=20t,时间T,2005,17,华东师范大学计算机科学技术系,3. 流水线时空图, 标量流水线时空图,上一条指令与下一条指令的子过程在时间上可以重叠执行当流水线满载时,每一个时钟周期就可以输出一个结果执行5条指令所需时间: t4+(5-1)t=8t

9、,与前者比较:流水计算机在8个t时间中执行了5条指令非流水线计算机在8个t时间中仅执行了2条指令,2005,18,华东师范大学计算机科学技术系,3. 流水线时空图, 超标量流水线时空图,所谓超标量流水是指它具有两条以上的指令流水线下图中的超标量流水线中,流水线满载时,每一个时钟周期可以执行2条指令执行5条指令所需时间: t4+(5-2)/2=6t,WB,EX,ID,IF,空间S,I6,I5,时间T,1,2,3,4,5,6,7,8,I2,I3,I4,I1,I7,I8,I9,I10,三者比较:非流水线计算机在8个t时间中执行了2条指令流水计算机在8个t时间中执行了5条指令超标量流水线计算机在8个t

10、时间中执行了10条指令,2005,19,华东师范大学计算机科学技术系,6.1 流水线概述,三、针对流水线结构的指令集设计指令流水线指令级并行(ILP)利用执行指令所需的操作之间的并行,实 现多条指令重叠执行的一种技术目前,几乎所有的高性能计算机都采用了 指令流水线,2005,20,华东师范大学计算机科学技术系,三、针对流水线结构的指令集设计,开发方法: 依赖于硬件,动态地发现和开发指令级并行,可将指令流的处理过程划分为取指令、译码、执行、写回等几个并行处理的过程段例:Intel的Pentium系列 占市场主导地位 依赖于软件技术,在编译阶段静态地发现并行例:Intel的Itanium系列 特定

11、应用环境,2005,21,华东师范大学计算机科学技术系,三、针对流水线结构的指令集设计,针对流水线结构的指令集设计:MIPS指令集就是专为指令执行的流水线化 而设计的特点: 所有的MIPS指令等长 简化了流水线的取指和译码阶段设计IA-32指令长度为1-17字节,为适合流水线,首先将指令转为简单的微操作,送入流水线处理的实际上是微操作,而不是原始指令。,2005,22,华东师范大学计算机科学技术系,三、针对流水线结构的指令集设计, MIPS指令格式简单,形式固定简化了流水线的译码阶段设计,同时可减少流水线级数 MIPS指令对内存的操作仅允许在存取操作中计算有效地址可放在执行阶段进行 MIPS指

12、令具有数据规整性,保证存取数据一次完成传输数据可保证在一个流水线级中完成,2005,23,华东师范大学计算机科学技术系,6.1 流水线概述,四、流水线冒险流水线中的主要问题 希望流水线充分发挥作用关键:不断流 但实际情况通常会出现相关冲突,使流水线发生断流,称为冒险流水线CPI=理想流水线CPI+结构停顿+数据停顿+控制停顿主要相关冲突: 资源相关结构冒险数据相关数据冒险控制相关控制冒险,2005,24,华东师范大学计算机科学技术系,四、流水线冒险,1. 结构冒险指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突,结构冒险实例:两条指令同时访问内存发生资源相关冲突,在时钟

13、T4时:I1指令执行访存操作:读操作数I4指令执行访存操作:读指令 若数据、指令放在同一存储器中(单端输出),则发生资源相关冲突(结构冒险),五个子过程段:IF: 取指ID: 指令译码、寄存器堆读取EX: 指令执行(ALU)MEM:内存访问WB: 结果写寄存器堆,解决冲突的办法: 在不改变程序正确执行的前提下,尽力开发并行度 延迟I4指令的执行,停顿一拍后再启动(引入气泡) 增设一个存储器,将指令和数据分别放在两个存储器中,2005,25,华东师范大学计算机科学技术系,四、流水线冒险,2. 数据冒险在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。

14、在流水线计算机中,由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突可能存在数据冒险,是否存在相关取决于程序的性质,而一个给定的相关是否会引起数据冒险则取决于流水线的结构。,2005,26,华东师范大学计算机科学技术系,2. 数据冒险,数据相关实例add $t1,$t2,$t3 ;($t2)+($t3)($t1)sub $t4,$t1,$t5 ;($t1)-($t5)($t4)and $t6,$t1,$t7 ;($t1)($t7)($t6),这一数据冒险将严重阻碍流水线,流水线阻塞(产生气泡),解决冲突的办法: 通过编译优化,将相关指令和不相关指令恰

15、当混合,但很难得到令人满意的效果 采用定向传送技术(数据定向或数据旁路)设置专用定向通路,将运算结果直接作为输入项,供后继指令直接使用,而不必等待下一时钟周期,以尽量减少延迟时间,2005,27,华东师范大学计算机科学技术系,2. 数据冒险,例1)两条指令间的数据转发 顺序执行: add $s0,$t0,$t1sub $t2,$s0,$t3 不采取措施,sub指令的ID子过程必须延迟到第6拍进行 采用数据定向传送通道 图6-5sub指令执行可不断流。当add指令完成EX步骤,运算结果将通过定向传送通道直接作为sub指令的操作数。,2005,28,华东师范大学计算机科学技术系,2. 数据冒险,数

16、据定向技术并不能完全解决流水线阻塞问题,但能尽量减少阻塞时间。 例2)顺序执行: lw $s0,20($t1)sub $t2,$s0,$t3即使采用数据定向技术,但由于lw指令得到$s0的结果要等到第4拍(MEM)结束,而理想状况sub指令的执行就在第4拍,所以,流水线仍然不得不阻塞一步。 图6-6要获知是否发生阻塞,需相应的技术,后面讨论。,2005,29,华东师范大学计算机科学技术系,2. 数据冒险,例3)重新排列代码以避免流水线阻塞 C语言: A=B+EC=B+F MIPS指令:I1: lw $t1,0($t0) I2: lw $t2,4($t0)I3: add $t3,$t1,$t2I4: sw $t3,12($t0)I5: lw $t4,8($t0)I6: add $t5,$t1,$t4I7: sw $t5,16($t0),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号