【计算机系统结构】流水方式

📝本文介绍
本文主要为计算机系统结构的流水方式。涉及流水基本概念,分类和流水处理机的性能。

👋作者简介:一个正在积极探索的本科生
📱联系方式:943641266(QQ)
🚪Github地址:https://github.com/sankexilianhua
🔑Gitee地址:https://gitee.com/Java_Ryson
由于本人的知识所限,如果文章有问题,欢迎大家联系并指出,博主会在第一时间修正。

📕流水线概念

📖基本概念

  基本概念:流水是重叠的延申。一次/二次重叠是将一条指令的解释划分为两/三个子过程,而流水则会划分成更多子过程。

📖表示方法

  • 连接图
    在这里插入图片描述

  • 时空图
    在这里插入图片描述

  • 预约表(非线性流水线使用)
    在这里插入图片描述

📖特点

  • 只有连续提供同类任务才能充分发挥流水线的效率
  • 在流水线的每一个流水段中都要设置一个流水锁存器
  • 各类流水段时间应尽量相等
  • 流水线需要有装入时间、充满时间和排空时间
  • 理想情况下,当流水线充满后,每隔Δt时间将会有一个结果流出流水线。

📘流水线分类

  • 按向下扩展和向上扩展的思路
    • 向下扩展:子过程细分
    • 向上扩展:多个处理机之间进行流水
  • 按流水处理的级别
    • 部件级(操作流水线)
    • 处理机级(指令流水线)
    • 系统级(宏流水线)
  • 按功能多少
    • 单功能:只能完成一种固定功能的流水线
    • 多功能:流水线的各段通过不同连接实现不同功能
  • 按多功能的连接方式
    • 静态:同一段时间内,只能按照一种固定方式连接功能段,实现一种功能
    • 动态:在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。
  • 按数据表示
    • 标量流水:没有向量数据,只能用标量循环方式来对向量、数组进行处理。
    • 向量流水:设置有向量指令和向量运算硬件,能对向量、数组中的各个元素流水地处理。
  • 按是否有反馈电路
    • 线性:每个流水段都流过一次,且仅流过一次
    • 非线性:在流水线的某些流水段之间有反馈回路或前馈回路
  • 按控制方式
    • 同步流水线
    • 异步流水线

📙流水处理机的性能

  主要通过时空图来分析

📖吞吐率

🔖概念

  流水线单位时间里能流出的任务数或结果数。

  假设有n个任务,m Δ t {\Delta t} Δt时间后充满流水线

  Tpmax= 1 m a x { Δ t 1 , Δ t 2 , Δ t 3 , Δ t 4 . . . . . } {1 \over max\{\Delta t_1 ,\Delta t_2 ,\Delta t_3 ,\Delta t_4 .....\}} max{Δt1,Δt2,Δt3,Δt4.....}1

  TP = n m Δ t + ( n − 1 ) Δ t {n \over m\Delta t + (n-1)\Delta t} mΔt+n1Δtn

  也就是,任务总数/任务总时间。理想状态下,当流水线充满之后,一个 Δ t \Delta t Δt的时间就可以输出一个结果.那么前m Δ t {\Delta t} Δt的时间就需要用来充满流水线。而这m Δ t {\Delta t} Δt的时间,实际上只能输出一个任务结果。

🔖瓶颈解决

  实际过程中,每个功能段的时间总不会完全相等,这时候就有可能出现等待的问题。也就是前面环节不能马上进入该功能段,需要等待一段时间(瓶颈段执行时间-前一功能段执行时间).解决方法有如下两种:

  • 细分:将一个瓶颈段细分成更小的功能段,实现更多段流水
  • 并联:多增加几个该功能段,实现功能段的并联。(假如前一功能段时间为 Δ t {\Delta t} Δt 而瓶颈段为3 Δ t {\Delta t} Δt 那么就需要添加3-1=2个功能段,从而实现3个瓶颈功能段的并联。让前一个功能段处理完,马上能进入瓶颈段处理。)

📖加速比

  指流水线的速度与等效的非流水线的速度之比。
  公式就是之前说过的:未加速前的时间(串行时间)/加速后的时间(流水时间)
   Δ t \Delta t Δt都相等时:Sp= n m Δ t m Δ t + ( n − 1 ) Δ t {nm\Delta t \over m\Delta t +(n-1) \Delta t } mΔt+(n1)ΔtnmΔt

   Δ t \Delta t Δt不相等时:Sp= n ∑ 1 m Δ t i ∑ 1 m Δ t 1 + ( n − 1 ) Δ t j {n\sum_1^m\Delta t_i \over \sum_1^m\Delta t_1 +(n-1) \Delta t_j } 1mΔt1+(n1)Δtjn1mΔti ( Δ t j \Delta t_j Δtj为时间最长的段/瓶颈段)

   加速比一定大于1

📖效率

  指流水线中的设备实际使用时间占整个运行时间之比,也称流水线设备的时间利用率。
  这里的实际使用时间,在时空图中表现为有标号的格子,而总时间则是整个长方形(从开始到最后一个任务的输出)

  各段时间相同: η \eta η= n Δ t m ∗ T {n\Delta t \over m*T} mTnΔt(T为最后一个任务输出时在时间轴的坐标)

  各段时间不同: η \eta η= n ∗ ∑ 1 m Δ t i m ∗ [ ∑ 1 m Δ t i + ( n − 1 ) ∗ Δ t j ] {n*\sum_1^m\Delta t_i \over m*[\sum_1^m \Delta t_i + (n-1)*\Delta t_j]} m[1mΔti+(n1)Δtj]n1mΔti( Δ t j \Delta t_j Δtj 为时间最长的功能段)

相关推荐

  1. 计算机系统结构期末复习

    2024-03-20 01:36:02       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 01:36:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 01:36:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 01:36:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 01:36:02       18 阅读

热门阅读

  1. Vue ref函数讲解示例

    2024-03-20 01:36:02       21 阅读
  2. openstack调整虚拟机CPU 内存 磁盘 --来自gpt

    2024-03-20 01:36:02       19 阅读
  3. vue回车键进行列表页查询

    2024-03-20 01:36:02       22 阅读
  4. 2024蓝桥杯每日一题(BFS)

    2024-03-20 01:36:02       20 阅读
  5. Streampark 入门到生产实践

    2024-03-20 01:36:02       18 阅读
  6. OpenJudge - 13:大整数的因子

    2024-03-20 01:36:02       19 阅读
  7. Chapter 1 - 3. Introduction to Congestion in Storage Networks

    2024-03-20 01:36:02       19 阅读
  8. 面试算法-45-分发糖果

    2024-03-20 01:36:02       21 阅读
  9. leetcode 139. 单词拆分

    2024-03-20 01:36:02       18 阅读