zoukankan      html  css  js  c++  java
  • 体系结构笔记------流水线概述

    Pipeline

    流水线技术是指将一重复的时序过程分解为若干子过程,每个子过程都可有效地在其专用功能段上与其它子过程同时执行,这种技术称为流水技术。

    这里重复的时序过程与子过程就是指将指令过程进行划分,指令划分之后的若干子过程之间并无相关与依赖,可以保证不同指令的不同子过程之间同时执行。

    由于进行了过程划分,流水线的速度受制于最慢流水站的速度(指令划分的子过程中用时最长的)。

    流水线无法缩短单个指令的执行时间,但是多个指令的指令流水是并行处理,可以提高吞吐率(单位时间内完成的任务数量)。

    时空图

    在这里插入图片描述
    从时间和空间两个方面描述流水线的工作过程。
    横坐标表示时间,纵坐标表示流水段。

    特点:流水过程由多个相关的子过程组成,这些子过程称为流水线的“级”或“段”。段的数目称为流水线的“深度”。
    每个子过程由专用的功能段实现,各功能段的时间应基本相等,通常为1个时钟周期。
    流水线需要经过一定的通过时间才能稳定。
    流水技术适合于大量重复的时序过程。

    大致分类

    操作功能

    单功能流水线:只能完成一种固定功能的流水线。
    多功能流水线:可以进行不同的连接,从而可以完成不同的功能。
    在这里插入图片描述
    通过对子过程的拆分重组可以实现不同功能的扩充。

    连接方式

    这个分类的前提是对多功能流水线进行的。
    静态流水线:在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
    动态流水线:在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算,同时执行多种功能。

    流水级别

    部件级:又叫运算操作流水线,把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。
    处理机级:又叫指令流水线,是把解释指令的过程按照流水方式处理。
    处理机间:又叫宏流水线,是由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。

    数据类型

    标量流水处理机:仅对标量数据进行流水处理。
    向量流水处理机:是指处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。

    是否含有反馈回路

    线性流水线:流水线的各段串行连接,没有反馈回路。
    非线性流水线:除有串行连接的通路外,还有反馈回路。

    流水线调度问题(非线性流水线)

    确定什么时候向流水线注入新的输入,从而使新输入的数据和先前操作的反馈数据在流水线中不产生冲突,此即所谓流水线调度问题。
    在这里插入图片描述
    在这里插入图片描述

    流入流出顺序

    按照输出端任务流出顺序与输入端任务流入顺序是否相同划分。
    乱序流动流水线也可称为无序流水线、错序流水线;

    性能描述

    吞吐率

    吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量(指令数)。

    最大吞吐率

    最大吞吐率TPmax ,是指流水线在达到稳定状态后的吞吐率。

    最大吞吐率取决于流水线中最慢一段所需的时间。

    假设流水线各段的时间相等,均为△t0
    TPmax = 1/△t0

    假设流水线各段时间不等,第i段时间为△ti
    TPmax = 1/max{△ti }

    实际吞吐率

    实际吞吐率肯定比最大吞吐率小
    实际吞吐率:完成的指令数/流水时间(n/T流水)
    在这里插入图片描述

    加速比

    使用加速比来描述流水线的性能。大致定义为:
    未使用流水前n个任务的使用时间 / 使用流水线后的用时

    理想中的加速比为流水站数(划分的子过程数)
    实际情况中无法达到这一效果,主要原因是流水线在流水站之间的速度不匹配,并且运算之间存在关联,需要通过填充或排空来保证运行与数据安全。

    流水效率

    效率指流水线对设备的利用率。
    从时空图上看,效率就是n个任务所占的时空区与m个段总的时空区之比。
    在这里插入图片描述
    即浅色的矩形与深色部分的比值。
    E=n个任务占用的时空区/m个段总的时空区

    性能小结

    流水线并不能减少(而且一般是增加)单条指令的执行时间,但能够提高吞吐率;
    增加流水线的深度通常可以提高流水线性能;
    流水线深度受限于流水线的延迟和额外开销;

  • 相关阅读:
    刨析js代码执行机制
    H5离线缓存基础系列
    meta 详解
    如何成长为一名合格的web架构师?
    整理的互联网公司面试趋势
    http协议
    前端现在到底需要什么样的人才
    webpack 4.0 版本的简单使用
    vue的懒加载如何实现?
    Runtime的几个小例子(含Demo)
  • 原文地址:https://www.cnblogs.com/yanzs/p/13788269.html
Copyright © 2011-2022 走看看