- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章流水技术
第八章 流水技术 第一节 流水线工作原理 第二节 标量流水技术 第三节 向量流水技术 第一节 流水线工作原理 流水工作方式:将一个计算任务细分成若干个子任务,每个子任务由专门的部件处理,多个计算任务依次进行并行处理。 一、流水线的分类 操作部件级,指令级,处理器级 单功能,多功能 静态,动态 线性,非线性 标量,向量 二、流水线的性能 1. 吞吐率:单位时间内流水线能处理的任务数量。 对于线性流水线: Dt=max{t1,…,ti,…,tm}+tl 最大吞吐率:流水线达到不间断流水的稳定状态后可获得的吞吐率。 时空图 流水线瓶颈的解决 时空图 实际吞吐率 对于线性流水线,完成n个任务所需时间为T=mDt+(n-1)Dt,实际吞吐率为: 2. 加速比 ——流水方式的工作速度与等效的顺序工作方式时间的比值。对于线性流水线: 3. 使用效率:——工作时间的时空区与流水线中各段总的时空区之比。对于线性流水线: 退耦流水线 三、流水线的相关处理指令流水线结构: 例 假定将CPU分成上述5个阶段,存储器访问需要2ns时间,寄存器操作需要1ns,ALU运算时间为2ns,求流水方式和非流水方式下执行以下4条指令所需的时间。 lw $1,$2,$3 sw $4,$5,$6 add $7,$8,$9 beq $10,$11,3000 答: 在非流水的情况下,每个步骤所需的时间: 每条指令的执行周期定为8ns。4条指令的执行时间是4x8=32ns。 在流水的情况下,流水周期定为2ns,指令执行为8个周期。 时序图 三种相关性 1. 资源相关(结构相关) 解决方法:增加资源 2. 数据相关(RAW、WAR、WAW) 解决方法:停顿、编译检测、旁路相关专用通路 3. 控制相关。 解决方法:提前判断、转移延迟槽等 数据相关性对指令流水执行的影响。 消除数据相关性影响方法之一——编译的方法。 解决数据相关性的方法之二——由硬件监测相关性以及前向专用通道相关性的表示 MEM/WB.RegisterRd = ID/EX.RegisterRs=$2 解决数据相关性的方法之三——流水线的停顿 改进转移指令执行性能的方式——将转移指令的执行在流水线中提前进行 四、流水线的调度 调度状态转换图 调度方案比较 第二节 标量流水技术 指令级并行性:指令序列中的并行性。 基本块 循环级并行性:循环递归之间的并行性。 例: for (i=1; i=1000; i=i+1) x[i] = x[i] + s; 编译后变成: loop: LD F0, 0(R1); F0=array element ADDD F4,F0,F2; add scalar in F2 SD 0(R1),F4; store result SUBI R1,R1,8; decrement pointer 8 bytes BNEZ R1,loop; branch if R1!=zero 执行时的情况 假定LD指令的执行需2拍,ADDD执行需3拍,有一个转移延迟槽。 loop: LD F0, 0(R1) 1 stall 2 ADDD F4,F0,F2 3 stall 4 stall 5 SD 0(R1),F4 6 SUBI R1,R1,8 7 BNEZ R1,loop 8 stall 9 执行时的情况 指令调度后: loop: LD F0, 0(R1) stall ADDD F4,F0,F2 SUBI R1,R1,8 BNEZ R1,loop SD 8(R1),F4 执行时间减少到6个时钟周期。 执行时的情况 将上述程序展开3次之后 loop: LD F0, 0(R1) 2 ADDD F4,F0,F2 3 SD 0(R1),F4 1 LD F6,-8,0(R1) 2 ADDD F8,F6,F2 3 SD -8(R1),F8 1 LD F10,-16(R1) 2 ADDD F12,F10,F2 3 SD -16(R1),F12 1 LD F14,-24(R1) 2 ADDD F16,F14,F2 3 SD -24(R1),F16 1 SUBI R1,R1,#32 1 BNEZ R1,loop 2 未调度时,执行时间为27个周期,平均每个迭代6.8个周期。 执行时的情况 调度后: loop: LD F0, 0(R1) LD F6,-8,0(R1) LD F
文档评论(0)