当前位置: 首页 > news >正文

经典5级流水线概述

抽象化的流水线结构:

  • 流水线的基本概念
    • 多个任务重叠(并发/并行)执行,但使用不同的资源
    • 流水线技术提高整个系统的吞吐率,不能缩短单个任务的执行时间
    • 其潜在的加速比=流水线的级数 
  • 流水线正常工作的基本条件
    • 增加寄存器文件保存当前段传送到下一段的数据和控制信息
    • 需要更高的存储器带宽
  • 流水线的相关(hazards)问题
    • 由于存在相关(hazards)问题,会导致流水线停顿
    • Hazards 问题:流水线的执行可能会导致对资源的访问冲突,或破坏对 资源的访问顺序

CPU中经典的5级流水线结构:

在从左到右的指令流中有两个例外:

  • 写回阶段,它把结果写回数据通路中间的寄存器堆中。
  • 选择PC 的下一个值时,需在自增的 PC和MEM级的分支地址间进行选择。

这两个从右向左的数据流不会影响当前指令;只有当前指令以后的指令才会受到这种数据反向活动的影响。需要注意的是,第一个例外会导致数据冒险,而第二个会导致控制冒险。

RISC-V经典5级流水线结构

流水线的可视化

图中,Memory这一步,只有load/store会有,所以其他的指令都是pass掉的;

http://www.lryc.cn/news/456032.html

相关文章:

  • LSTM模型实现电力数据预测
  • jmeter学习(7)beanshell
  • TCP_SOCKET编程实现
  • 螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习07(基于docker容器的防火墙及NAT企业实战)
  • ②EtherNet/IP转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • Java 集合(Collection)
  • Windows系统编程(三)线程并发
  • 【Qt】控件概述(2)—— 按钮类控件
  • Java访问器方法和更改器方法
  • CAN协议帧结构
  • valgrind 单例模式的自动释放(多线程)
  • OpenFegin
  • LeetCode-2608. 图中的最短环【广度优先搜索 图,腾讯面试真题】
  • IDEA 编译报错 “java: 常量字符串过长” 的解决办法
  • RK3568平台开发系列讲解(I2C篇)I2C 总线实现 client 设备方法
  • K8S安装和部署
  • Singleton(单例模式)
  • 【Linux报错】“-bash: cd: too many arguments“
  • C# WebService返回参数为DataTable报错“XML文档有错误”
  • [paddle]paddleseg快速开始
  • UNIAPP popper气泡弹层【unibest框架下】vue3+typescript
  • launcher.py: error: the following arguments are required: --output_dir
  • C语言基础之结构体
  • Redis入门第四步:Redis发布与订阅
  • MySQL 之权限与授权
  • 解决方案:Pandas里面的loc跟iloc,有什么区别
  • C# 和 C++ 混合编程
  • Vxe UI vue vxe-table 实现表格单元格选中功能
  • 组合模式详解
  • AltiumDesigner脚本开发-DIP封装制作