计算机指令的流水线执行与流水线冒险

目录

计算机指令流水线

流水线冒险

结构冒险

数据冒险

控制冒险


计算机指令流水线

流水线方式的洗衣房可以以并行的方式提高性能

计算机执行指令,同样可以以流水线的方式并行

MIPS 流水化的数据通路

流水线冒险

下一周期不能按时执行下一条指令

结构冒险

数据冒险

一条指令依赖于前面某条执行的计算结果

add s0, t0, t1 sub t2, s0, t3

下一条指令需要气泡停顿等待前面计算出结果

前推/旁路(forwarding/bypassing)

不要等待计算结果保存到目的寄存器,增加一条额外数据通路,将计算的结果直接传给下一条指令计算的输入

但是并非所有冒险都能通过前推来避免气泡停顿

lw s0, 20(t1)
sub t2, s0, $t3

前推+阻塞

在需要使用前一个指令的结果时,前一个指令还没有拿到结果,此时需要停顿一下

还可以通过调整指令的顺序来避免阻塞等待

控制冒险

分支预测

更有效的分析预测

相关推荐
hero_heart13 小时前
ubuntu 密码重置(不用系统盘)
linux·运维·ubuntu
v***431713 小时前
Nginx WebSocket 长连接及数据容量配置
运维·websocket·nginx
2301_8160738314 小时前
SELinux 学习笔记
linux·运维·前端
归叶再无青14 小时前
nginx从入门到实践全指南
运维·nginx·bash
爱喝水的鱼丶14 小时前
SAP-ABAP:SAP概述:数据处理的系统、应用与产品
运维·学习·sap·abap·1024程序员节
Ronin30514 小时前
【Linux网络】传输层协议UDP
linux·网络·udp·传输层
ycydynq14 小时前
python html 解析的一些写法
linux·python·html
A***279514 小时前
后端服务限流配置,Spring Cloud Gateway
java·运维·数据库
n***265614 小时前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
知识分享小能手14 小时前
openEuler入门学习教程,从入门到精通,openEuler 24.03 中的 Vim 编辑器 —— 全面知识点详解(7)
linux·vim·openeuler