5.5 流水线

返回目录《计算机组成原理笔记目录(2019 王道考研)》

5.5 流水线

1.指令流水线的定义
    一条指令的执行过程可以分成多个阶段(或过程)
    根据计算机的不同,具体分法也不同。
    1.设取指、分析、执行3个阶段的时间都相等,用t表示,按以下几种执行方式分析n条指令的执行时间。
        1.顺序执行方式
            总耗时T=n*3*t
            传统冯诺依曼机采用顺序执行方式,又称串行执行方式。
            优点:
                控制简单,硬件代价小
            缺点:
                执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,
                    各功能部件的利用率很低
        2.一次重叠执行方式
            总耗时=3*t+(n-1)*2*t=(1+2*n)*t
            优点: 
                程序的执行时间缩短了1/3,各功能部件的利用率明显提高。
            缺点:
                需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂了。
        3.二次重叠执行方式
            总耗时=(2+n)*t
    2.流水线的表示方法

在这里插入图片描述

2.流水线的性能指标
    1.吞吐率
        吞吐率是指单位时间内流水线所完成的任务数量,或是输出结果的数量。

在这里插入图片描述

    2.加速比
        完成同一批任务,不使用流水线所用的时间与使用流水线所用的时间之比

在这里插入图片描述

    3.效率
        流水线设备利用率称为流水线的效率
        在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与
            n个任务所用的时间与k个流水线段所围成的时空区总面积之比

在这里插入图片描述

3.影响流水线的因素(重点掌握)
    1.结构相关(资源冲突)
        多条指令在同一时刻争用同一资源而形成的冲突称为结构相关
        解决办法:
            1.后一相关指令暂停一周期
            2.资源重复配置:数据存储器+指令存储器
    2.数据相关(数据冲突)
        1.在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,
            则这两条指令即为数据相关
        2.解决办法:
            1.把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直至数据相关问题消失后再继续执行。
                可分为硬件阻塞(stall)和软件插入“NOP”两种办法
            2.数据旁路技术
            3.编译优化:通过编译器调整指令顺序来解决数据相关
        3.例题:

在这里插入图片描述

        4.数据相关的基本类型
            数据的基本操作:读(R),写(W)
            冲突的基本类型:RAW(写后读)、WAR(读后写)、WAW(写后写)

在这里插入图片描述

    3.控制相关(控制冲突)
        1.当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关
        2.解决办法:
            1.尽早判别转移是否发生,尽早生成转移目标地址
            2.预取转移成功和不成功两个控制流方向上的目标指令
            3.加快和提前形成条件码
            4.提高转移方向的猜准率
4.流水线的分类
    1.按照流水线使用的级别来分类:
        1.部件功能级流水线
            将复杂的算数逻辑运算组成流水线工作方式。
            例如:可将浮点加法操作分成求阶差、对阶、位数相加、结果规格化4个子过程
        2.处理机级流水线
            把一条指令解释过程分成多个子过程,
            如前面提到的取指、译码、执行、访存及写回5个子过程
        3.处理机间流水线
            是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的的结果
            需要存放在与下一个处理机共享的存储器中。
    2.按照流水线可以完成的功能分类
        1.单功能流水线
            指只能实现一种固定的专门功能的流水线
        2.多功能流水线
            指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线
    3.动态流水线和静态流水线
        1.静态流水线
            指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
        2.动态流水线
            指在同一时间内,当某些段正在实现某种运算时,另一些段却正在
            进行另一种运算。这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。
    4.线性流水线和非线性流水线
        按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。
        1.线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
        2.非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线
            适合进行线性递归的运算。
5.流水线的多发技术
    1.超标量技术
    2.超流水技术
    3.超长指令字        
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页