首页 > 其他分享 > 计算机组成原理之处理器(流水线)

计算机组成原理之处理器(流水线)

时间:2023-11-12 16:36:45浏览次数:35  
标签:ld 计算机 指令 EX 流水线 WB 冒险 处理器

引言

为什么不采用单周期实现,硬件比较简单?

主要是因为效率太低,处理器中最长的路径(一般是ld指令)决定了时钟周期

流水线概述

流水线是一种能使多条指令重叠执行的技术。

流水线更快的原因是所有的工作都在并行执行,所以单位时间能够完成更多的工作,流水线提高了吞吐率。

file

RISC-V是五级流水线 约等于五倍加速比

  • 从存储器中取出指令IF
  • 读寄存器并译码指令ID
  • 执行操作或计算地址EX
  • 访问数据存储器的操作数MEM
  • 将结果写入寄存器WB

file


流水线冒险

当讲到流水线型的处理器的时候,冒险是绝对不能忽视的。

结构冒险

即硬件不支持多条指令在同一时钟周期执行。但是RIscv是面向流水线设计的,一些结构冒险早已经考虑到了。比如IM与DM的硬件分离。

数据冒险

由于一个步骤必须等待另一个步骤完成而导致的流水线停顿加Data Hazard

一种基本的解决方案是前递法,后面再详细介绍,这里提一下。

例子:

add x19, x0, x1

sub x2, x19 ,x3

sub指令x19使用的是add指令的rd也就是19号寄存器,这里会产生冒险。

前递解决图示:

file


但是请注意,前递不能解决所有的数据冒险,比如有ld use型指令。ld指令的rd被下一条指令进行使用,这个时候必须要停顿一个周期才能用前递解决。

file

控制冒险

出现在需要根据一条指令的结果后做决定,而其他指令在执行。

控制冒险的解决,可以采用停顿法或者预测法。停顿法这种保守的方法固然有效,但是太慢了。但是预测也有时候会出错,总之这个是个有优化空间的方案。

file

预测其实有种动态预测的方法来处理分支。就是比如:上一次预测失败了,这次改变预测的策略。

流水线的通路与控制

概览图

file


流水线:

file


WB阶段问题

考虑:

ld x10 0(x11)	A
add x1 x2 x3	B
add x4 x5 x6	C
add x7 x8 x9	D

ld运行到WB阶段,将DM中的值写回寄存器但是由于D号指令此时正读,表示X7为writeReg,那么值就会写错!解决这个问题要添加额外的数据通路

如图:

file

时钟周期切片

如图

file

控制的添加

既然添加了额外的器件,为了实现流水线,还要添加控制

file

完整的数据通路

看图看图!

file


关于冒险进一步说明

关于数据冒险

数据冒险实际上有两对条件。

EX/MEM.RegisterRd = ID/EX.RegisterRs1

EX/MEM.RegisterRd = ID/EX.RegisterRs2

MEM/WB.RegisterRd = ID/EX.RegisterRs1

MEM/WB.RegisterRd = ID/EX.RegisterRs2

下一条要用到上一条的结果。

前递法解决

file

检测冒险的条件以及解决相应冒险的控制信号

EX冒险

file

file


ME冒险

file

更复杂的

file


数据冒险与停顿

载入使用型指令必要阻塞(停顿)stall

file


完整图示

file

本文由博客一文多发平台 OpenWrite 发布!

标签:ld,计算机,指令,EX,流水线,WB,冒险,处理器
From: https://www.cnblogs.com/xiaocrblog/p/17827343.html

相关文章

  • 2023-2024-1 20211319《计算机基础与程序设计》第七周学习总结
    2023-2024-120211319《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标<写上具体方面>作业正文......
  • 2023-2024-1 20231417 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231417《计算机基础与程序设计》第七周学习总结 作业信息这个作业属于哪个课程<班级的链接>(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里<作业要求的链接>(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07)......
  • 2023-2024-1 20231403 《计算机基础与程序设计》第七周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里2023-2024-1计算机基础与程序设计第七周作业)这个作业的目标自学《计算机科学概论》第8章《C语言程序设计》第6章作业正文https://www.cnblogs.com/lsrmy/p/17......
  • 学期:2023-2024-1 学号:20231426 《计算机基础与程序设计》第七周学习总结
    作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机基础与程序设计作业这个作业的目标通过教材内容了解数组、子程序与参数作业正文https://www.cnblogs.com/hhaxx/p/17826871.html教材学习内容总结《计......
  • #2023-2024-1 20231424《计算机基础与程序设计》第7周学习总结
    2023-2024-120231424《计算机基础与程序设计》第7周学习总结作业信息作业属于的课程<班级链接>(2022-2023-1-计算机基础与程序设计)作业要求<作业要求链接>(2022-2023-1计算机基础与程序设计第一周作业)作业目标《计算机科学概论》第8章和《C语言程序设计》第6章......
  • 2023-2024-1 20231405《计算机基础与程序设计》第七周学习总结
    2023-2024-120231405《计算机基础与程序设计》第七周学习总结作业信息作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13009作业的目标自学《计算机......
  • 常见面试题-计算机网络相关
    1.OSI七层模型?OSI七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP五层模型:应用层、传输层、网络层、链路层、物理层应用层应用层是由网络应用程序使用的,是离用户最近的一层应用层通过各种协议,为网络应用提供服务,常见协议如下:FTP-文件传输协议HTTP/......
  • 2023-2024-1 20231406 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231406《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程([2023-2024-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(2023-2024-1计算机基础与程序设计第七周作业这个作业......
  • 基于SpringBoot的来访管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘 要本文首先实现了来访管理技术的发展,随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制作和数据库查询构造设计,依据系统整体功能模块的设计,制作系统的功能模块图、流程表和E-R图。其次进行设计框架,依据设计的框架撰写编码,完成系......
  • 基于springboot的旅游出行指南-计算机毕业设计源码+LW文档
    摘 要随着社会的发展,旅游出行的管理形势越来越严峻。越来越多的用户利用互联网获得信息,但旅游出行信息鱼龙混杂,信息真假难以辨别。为了方便用户更好的获得本旅游出行信息,因此,设计一种安全高效的旅游出行指南极为重要。为设计一个安全便捷,并且使用户更好获取本旅游出行信息,本文......