zoukankan      html  css  js  c++  java
  • 流水线分析例题

    例1:MIPS 流水线,后半拍写 GPRs。求阻塞法处理 RAW 冒险时的执行时间。

    ADD R4,R5,R6
    SUB R7,R4,R6
    OR  R8,R4,R6
    SW  R6,20(R4)
    LW  R9,20(R8)
    

    I1-I2 冒险,停 3 拍。此时 I1-I3, I1-I4 均已消除。

    I3-I5 冒险,停 2 拍。

    故执行时间为 5+4+3+2=14​ 拍。

    例2:MIPS 流水线,前半拍写 GPRs。求转发法处理 RAW 冒险时的执行时间。假设存在 EX-EX,MEM-EX 的转发线路。

    ADD R4,R5,R6
    SUB R7,R4,R6
    OR  R8,R4,R6
    SW  R6,20(R4)
    LW  R9,20(R8)
    

    I1-I2 冒险,利用 EX-EX 线路转发,停 0 拍。

    I1-I3 冒险,利用 MEM-EX 线路转发,停 0 拍。

    I1-I4 冒险,同拍内 GPRs 先写后读,停 0 拍。

    I3-I5 冒险,利用 MEM-EX 线路转发,停 0 拍。

    故执行时间为 5+4=9 拍。

    例3:MIPS 流水线,前半拍写 GPRs。求转发法处理 RAW 冒险时的执行时间。假设仅存在 EX-EX 的转发线路。

    ADD R4,R5,R6
    SUB R7,R4,R6
    OR  R8,R4,R6
    SW  R6,20(R4)
    LW  R9,20(R8)
    

    I1-I2 冒险,利用 EX-EX 线路转发,停 0 拍。

    I1-I3 冒险,无法转发,停 1 拍(注意不是 2 拍!)。此时 I1-I4 冒险已经消除。

    I3-I5 冒险,无法转发,停 1 拍。

    故执行时间为 5+4+1+1=11 拍。

    例4:MIPS 流水线,后半拍写 GPRs。求转发法处理 RAW 冒险时的执行时间。假设仅存在 EX-EX 的转发线路。

    ADD R4,R5,R6
    SUB R7,R4,R6
    OR  R8,R4,R6
    SW  R6,20(R4)
    LW  R9,20(R8)
    

    I1-I2 冒险,利用 EX-EX 线路转发,停 0 拍。

    I1-I3 冒险,无法转发,停 2 拍。此时 I1-I4 冒险已经消除。

    I3-I5 冒险,无法转发,停 2 拍。

    故执行时间为 5+4+2+2=13 拍。

    例5:MIPS 流水线,前半拍写 GPRs。求转发法处理 RAW 冒险时的执行时间。假设仅存在 EX-EX 的转发线路。

    ADD R4,R5,R6
    SUB R7,R4,R6
    OR  R8,R4,R7
    SW  R6,20(R4)
    LW  R9,20(R8)
    

    I1-I2 冒险,利用 EX-EX 线路转发,停 0 拍。

    I1-I3 冒险,无法转发,必须要等待数据都可读才能运算。因为 R4 停 1 拍后,I3 错过了 R7 的转发时机,因此需要再停一拍到 R7 可读,总共停 2 拍。此时 I1-I4 冒险已经消除。

    I3-I5 冒险,无法转发,停 1 拍。

    故执行时间为 5+4+2+1=12 拍。

    例6:MIPS 流水线,后半拍写 GPRs。求转发法处理 RAW 冒险、阻塞法处理 load-use 冒险时的执行时间。假设仅存在 EX-EX 的转发线路。

    ADD R4,R5,R6
    SUB R7,R4,R6
    OR  R8,R4,R6
    LW  R6,20(R8)
    SW  R6,20(R4)
    

    I1-I2 冒险,利用 EX-EX 线路转发,停 0 拍。

    I1-I3 冒险,无法转发,停 2 拍。此时 I1-I4 冒险已经消除。

    I3-I5 冒险,无法转发,停 2 拍。I4-I5 存在 load-use 冒险,需要停 3 拍。故 I5 延迟 3 拍。

    故执行时间为 5+4+2+3=14 拍。

    例7:MIPS 流水线,后半拍写 GPRs。求转发法处理 RAW 冒险、阻塞法处理控制冒险时的执行时间。假设仅存在 EX-EX 的转发线路,分支指令在 MEM 段写 PC。

    ADDI	R4,R5,100
    L1: ADD	R8,R6,R7
    SW	R8,20($6)
    ADDI	R5,R5,1
    BNE	R5,R4,L1
    ADDI	R9,R9,10
    

    所有数据冒险都被转发法处理掉了,只考虑控制冒险。

    阻塞法处理,I5 每次使流水线停顿 3 拍(原本 ID 时下条指令 IF,现在 MEM 段写 PC,即 WB 时下条指令才可 IF)。

    循环体执行了 100 次,故执行时间为 5+402-1+300=706 拍。

    例8:MIPS 流水线,后半拍写 GPRs。求转发法处理 RAW 冒险、阻塞法处理控制冒险时的执行时间。假设仅存在 EX-EX 的转发线路,分支指令在 EX 段写 PC。

    ADDI	R4,R5,100
    L1: ADD	R8,R6,R7
    SW	R8,20($6)
    ADDI	R5,R5,1
    BNE	R5,R4,L1
    ADDI	R9,R9,10
    

    所有数据冒险都被转发法处理掉了,只考虑控制冒险。

    阻塞法处理,I5 每次使流水线停顿 2 拍(原本 ID 时下条指令 IF,现在 EX 段写 PC,即 MEM 时下条指令才可 IF)。

    循环体执行了 100 次,故执行时间为 5+402-1+200=606 拍。

    我知道这个例子很傻,只是提醒一定要看清是在 EX/MEM/WB 写 PC 的,写完 PC 后下一拍下条指令才可以 IF。

    例9:MIPS 流水线,后半拍写 GPRs。求转发法处理 RAW 冒险、分支预测法处理控制冒险时的执行时间。假设仅存在 EX-EX 的转发线路,分支指令在 MEM 段写 PC,分支预测始终猜测转移,预测在 IF 段进行。

    ADDI	R4,R5,100
    L1: ADD	R8,R6,R7
    SW	R8,20($6)
    ADDI	R5,R5,1
    BNE	R5,R4,L1
    ADDI	R9,R9,10
    

    所有数据冒险都被转发法处理掉了,只考虑控制冒险。

    分支预测在 IF 段进行,意味着预测正确时停 0 拍,预测错误时停 4 拍。

    循环体执行了 100 次,预测成功 99 次,预测失败一次。

    故执行时间为 5+402-1+4=410 拍。

  • 相关阅读:
    AngularJs跨域请求Java的实现---博客园老牛大讲堂
    JavaWeb的json包装以及跨域问题--博客园老牛大讲堂
    无网络联机打单机游戏---博客园老牛大讲堂
    H5移动开发AUI框架入门---博客园老牛大讲堂
    MySql链表语句--博客园老牛大讲堂
    Jquery的基本用法--博客园老牛大讲堂
    Java的日期字符串的转换---博客园老牛大讲堂
    实现访问电脑百度,访问到自己的工程方法---博客园老牛大讲堂
    Jquery的闭包理解--匿名函数--博客园老牛大讲堂
    xampp的安装和配置与HBuilder的配置--博客园老牛大讲堂
  • 原文地址:https://www.cnblogs.com/mollnn/p/14748217.html
Copyright © 2011-2022 走看看