计算机系统结构复习(四):Pipelining流水线

流水线相关概念与特点

流水线的相关概念

流水线主要特征

流水线通过使多个不同任务在不同资源上同时操作,来提高任务执行效率;
指令沿流水线移动一次的时间间隔就是一个机器周期
流水线操作不能提高单个任务的执行时间,提高整体工作负载的吞吐量;
流水线的速率受限于最慢的流水段,该段称为流水线的瓶颈;
流水线的潜在加速比等于流水线的级数
流水线有通过时间和排空时间
流水线设计的目的在于平衡各段的长度

流水线的分类

指令级与部件级

线性与非线性

静态与动态(有大题)

流水的5个阶段:通过时间与排空时间

IF(取指令)-> ID(指令译码/取寄存器[针对分支转移指令])-> EX(执行/有效地址计算)-> MEM(存储器访问load或store)-> WB(写到寄存器,如 load 或者ALU 的计算结果)。
以RISC为例,每条指令长度4字节,每条指令执行时间至少是5 cycles。

流水线的通过时间: 从任务开始到稳定工作状态(段被填满)所需要的时间
流水线的排空时间:从稳定工作状态结束到最终任务 结果所需要的时间

三种冲突:结构冲突、数据冲突、控制冲突

结构冲突

原因: 因硬件资源竞争引起的冲突(某些功能部件没有充分流水或是某些资源没有充分重复设置)

<img src"https://img-blog.csdnimg.cn/20200831212550199.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMDgwNjA5,size_16,color_FFFFFF,t_70" width= “50%”>

解决方法
通过提高成本来重复设置部件或者改进硬件,使其充分流水。
比如指令cache和数据 cache 分离的方法(上图结构冲突由于两个指令同时需要访问 cache 引起 load 读数 据,Instr 3取指令)

数据冲突

原因:指令在数据流中重叠执行时需要用到前面 指令的结果产生的冲突

解决方法
1.使用旁路技术解决数据冲突
定向(旁路)技术:使用流水线寄存器组直接向后面 的指令传递结果—— ALU输入的位置。
2. 编译器调度调整可能冲突的指令距离。

注意
load指令和其他ALU指令不同,在使用定向解 决load和其后指令的冲突时仍有可能冲突
因为 load 必须得等到 mem 段才能得到真正的数据,其他的ALU指令可能在 Ex 阶段就能算出结果,load必须访存。如上右图,这时候需要旁路 +Stall 一起用。

下图表显示了当 Load 指令与其他指令产生数据冲突时的解决方法。Load 的下一条指令只能 stall+forward, 下第二条指令可以forward,下三条指令无需操作(无冲突) 前半周期写回,后半周期读。

控制冲突

原因:流水线遇到分支指令或者其他改变PC值的指令所遇到的冲突。

解决方法
1.编译时的分支预测
2.将分支判断与目标地址计算部件提前到ID段,将三个时钟周期(ID\EX\MEM)的暂停压缩为一个的办法。
3.使用分支延迟槽,选择适当的指令填充到其中,避免控制冲突引起的暂停。

编译时调度的四种策略

1.stall一直到mem段出结果
2.预测分支失败:沿失败的分支继续处理指令,即允许分支 指令后的指令继续在流水线中流动。如果确定分支失败,流水线正常流动;否则,将分支之后的指令作废(idle),按 分支目标地址重新执行。下图是在ID段计算跳转地址,预测失败(分支指令执行)只停顿一个时钟周期。如左下图所示
3. 预测分支成功:沿成功的分支继续处理指令。
4. 延迟分支,使用编译器进行指令静态调度,调到延迟槽中。 MIPS用的是只有一条指令的延迟槽,这种方法和方法2、3几乎没区别,只是槽里的指令不会被idle,也可以不是第 i+1 条指令。如右下图所示

延迟分支策略

从前调度(最常用):把位于指令之前的一条独立的指令移到延迟槽。当无法使用从前调度则使用后两种。
从目标处调度:把目标处的指令复制到延迟槽, 同时修改分支指令的地址(箭头处)。
从失败处调度
后两种方法在使用时要保证猜测错误时延迟槽中的指令不会影响程序的正常运行。

停顿及其原因

Stall停顿:当发生冲突时,往往需要使某些指令推后 执行,从而使流水线出现停顿。
当一条指令被暂停时:在该指令之后流出的所有指令都要被暂停; 在该指令之前流出的指令则继续执行。

数据冲突的种类:RAW,WAR,WAW

MIPS五级流水中只会出现RAW冲突。
WAR和WAW又称为名相关(修改变量名即可解决冲突)
RAW:真相关
WAW:输出相关
WAR:反相关

性能:时空图

吞吐率

最大吞吐率

解决流水线瓶颈问题

细分瓶颈段

重设瓶颈段

实际吞吐率

加速比

效率

MIPS五段流水组成

每个流水段的操作:
IF段:根据PC值取指令存入IR,PC+4获取下一条指令地址,若分支指令条件为真,则用分支目标地址填充PC;
ID段:指令译码,同时根据指令格式和类型,取得通用寄存器中的数据或者立即数,送至流水线锁存器A、B;
EX段
ALU指令:针对不同指令进行以寄存器或者立即数为操作数的数逻运算;
LOAD/STORE指令:进行基地址+偏移量的有效地址计算;
分支指令:进行分支条件判断;进行分支目标地址的计算;
MEM段
ALU指令:数据传送,不做实质性操作;
LOAD/STORE指令:根据计算得到的有效地址,到内存中读数据或者将数据写到内存中;
WB段
ALU指令:针对不同指令,将计算结果写回到通用寄存器中;
LOAD指令:内存取回的数据写回到通用寄存器中。

  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机系统结构大学期末复习资料题库含答案 1.看下述程序段:( C ) k: R5=R2 k+1: R0=R1×R4 k+2: R2=R5+1 k+3: R4=R0×R3 k+4: R3=R4-1 K+5: …… k和k+2之间发生的是什么数据相关 I. 先写后读相关 II.写-写相关 III. 先读后写相关 A.只有I B.只有I、II C.只有I、III D.以上都不对 2.开发并行的途径有( D ),资源重复和资源共享。 A、多计算机系统 B、多道分时 C、分布式处理系统 D、时间重叠 3.在计算机系统设计中,比较好的方法是(D )。 A、从上向下设计 B、从下向上设计 C、从两头向中间设计 D、从中间开始向上、向下设计 4.执行微指令的是(C) a.汇编程序 b.编译程序 c.硬件 d.微指令程序 5. 软件和硬件在(B)意义上是等效的。 A. 系统结构 B.功能 C. 性能 D. 价格 6. 实现汇编语言源程序变换成机器语言目标程序是由(D ) A.编译程序解释 B.编译程序翻译 C.汇编程序解释 D.汇编程序翻译 7. 按照计算机系统层次结构,算术运算、逻辑运算和移位等指令应属于(A)级机器语言。 A. 传统机器语言机器 B.操作系统机器 C. 汇编语言机器 D.高级语言机器 8.对汇编语言程序员,下列(A)不是透明的。 A. 中断字寄存器 B.乘法器 C. 移位器 D.指令缓冲器 9.在采用基准测试程序来测试评价机器的性能时,下列方法按照评价准确性递增的顺序排列是(B )。(1)实际的应用程序方法 (2)核心程序方法 (3)玩具基准测试程序(小测试程序) (4)综合基准测试程序 A.(1)(2)(3)(4) B.(2)(3)(4)(1) C.(3)(4)(1)(2) D.(4)(3)(2)(1) 10. 下列体系结构中,最适合多个任务并行执行的体系结构是( D) A、流水线的向量机结构 B、堆栈处理结构 C、共享存储多处理机结构 D、分布存储多计算机结构 11. 从用户的观点看,评价计算机系统性能的综合参数是( B ): A、指令系统 B、吞吐率 C、主存容量 D、主频率 12. 设指令由取指、分析、执行 3 个子部件完成,每个子部件的工作周期均为△t,采用常规标量单流水线处理机。若连续执行 10 条指令, 则共需时间 ( C )△t。 A.8 B.10 C. 12 D. 14 13. 系统响应时间和作业吞吐量是衡量计算机系统性能的重要指标。对于一个持续处理 业务的系统而言, ( C ) ,表明其性能越好。 A. 响应时间越短,作业吞吐量越小 B. 响应时间越短,作业吞吐量越大 C. 响应时间越长,作业吞吐量越大 D. 响应时间不会影响作业吞吐量 14. 若每一条指令都可以分解为取指、分析和执行三步。已知取指时间t 取指=4△t,分 析时间t 分析=3△t,执行时间t 执行=5△t。如果按串行方式执行完100 条指令需要( C )△t。 A. 1190 B. 1195 C. 1200 D. 1205 15. 如果按照流水线方式执行,执行完100 条指令需要 (B)△t。 A. 504 B. 507 C. 508 D. 510 16. 并行访问存储器最大的问题就是访问冲突大,下面不属于并行访问存储器的缺点的是:( D ) A、取指令冲突 B、读操作数冲突 C、写数据冲突 D、译码冲突 17. 一条4段流水线,每段执行时间为1ns,求该流水线执行100条指令最大效率为(C) A.100% B.96.2% C.97.1% D.388% 18. 假设一条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每一段的执行时间均为 ,连续执行n条指令所需要花费的最短时间约为(B)(假设仅有“取指令”和“分析”可重叠并假设n足够大): A. B. C. D. 19. MISD是指(C) A.单指令流单数据流 B.单指令流多数据流 C.多指令流单数据流 D.多指令流多数据流 20. 星形网络的网络直径和链路数分别为(A)和(D)。 A.N-1 B.N/2 C.2 D.N(N-1)/2 21. 软件和硬件在(B)意义上是等效的。 A.系统结构 B.功能 C.性能 D.价格

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值