热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Rocket–core–wb_reg_flush_pipe

https:mp.weixin.qq.coms6WVmHCY0nd_AtOBByfgJVA 简单介绍wb_reg_flush_pipe的作用。  1.wb_reg_flush_pi

https://mp.weixin.qq.com/s/6WVmHCY0nd_AtOBByfgJVA

 

简单介绍wb_reg_flush_pipe的作用。

 

 

1. wb_reg_flush_pipe值的由来

 

1) wb_reg_flush_pipe

wb_reg_flush_pipe的值是通过流水线从mem_reg_flush_pipe传递而来的。

如果没有kill mem阶段,则可以把mem_reg_flush_pipe传递给wb_reg_flush_pipe:

这里kill mem的典型情况是mem_reg_valid为假,即mem阶段流水线寄存器的值不合法。

 

2) mem_reg_flush_pipe

 

mem_reg_flush_pipe的值从ex_reg_flush_pipe传递而来:

如果不考虑debug的情况,mem_reg_flush_pipe直接在ex_pc_valid的控制下,由ex_reg_flush_pipe传递而来。

 

ex_pc_valid主要的情况为ex_reg_valid,即ex阶段流水线寄存器的值是合法的。在中断的情况下,ex_pc_valid也为真。

 

3) ex_reg_flush_pipe

 

ex_reg_flush_pipe的值使用id阶段生成的值更新:

这里存在两种情况:

a. 指令为fence_i指令;

b. csr指令要求flush流水线;

 

2. wb_reg_flush_pipe的使用

 

wb_reg_flush_pipe可以导致take_pc_wb,进而导致take_pc,要求重新取指。重新取指的pc是随着flush pipe一路传递而来的wb_reg_pc,其源头为ibuf.io.pc。

 

3. 对流水线的影响

 

所谓flush pipe就是刷新流水线。即以带有flush效果的指令为分界,之前的指令都执行完成之后,才能重新取指进行执行。

 

以fence_i指令为例:

a. 在ID阶段,fence_i指令导致ex_reg_flush_pipe的值将要被更新为1:

因为fence_i是一条正常指令,所以ctrl_killd = 0;

 

b. 在EX阶段,fence_i指令正常执行:

mem_reg_flush_pipe将要被更新为1。

 

c. 在MEM阶段,fence_i指令正常执行:

wb_reg_flush_pipe将要被更新为1。

 

d. 在WB阶段,fence_i指令触发take_pc:

take_pc实时导致之前的各阶段被废弃(killd/killx/killm),并重新取指。

 



推荐阅读
  • 使用Gulp进行前端资源压缩
    本文探讨了如何利用Gulp这一强大的自动化构建工具,通过集成各种第三方插件来实现JavaScript、CSS和HTML等前端资源的高效压缩,以提升网站性能。 ... [详细]
  • 本文档详细描述了在Windows 7环境下使用Python 2.7和Git进行mavlink协议移植时遇到的问题及解决方案,包括pip3的环境配置与使用。 ... [详细]
  • 本文详细介绍了Python的multiprocessing模块,该模块不仅支持本地并发操作,还支持远程操作。通过使用multiprocessing模块,开发者可以利用多核处理器的优势,提高程序的执行效率。 ... [详细]
  • Web网络基础
    目录儿1使用HTTP协议访问Web2HTTP的诞生2.1因特网的起源2.2互联网、因特网与万维网2.3万维网与HTTP3网络基础TCPIP3.1TCPIP协议族3.2TCPIP的分 ... [详细]
  • Python中调用Java代码的方法与实践
    本文探讨了如何在Python环境中集成并调用Java代码,通过具体的步骤和示例展示了这一过程的技术细节。适合对跨语言编程感兴趣的开发者阅读。 ... [详细]
  • Python:新浪微博API初试
    {想在微博上抓点数据进行分析,费了一天多的时间,才终于找到点头绪,整理一下。}目录:一注册创建应用获取认证和授权二新浪微博pythonsdk下载和安装三简 ... [详细]
  • BeautifulSoup4 是一个功能强大的HTML和XML解析库,它能够帮助开发者轻松地从网页中提取信息。本文将介绍BeautifulSoup4的基本功能、安装方法、与其他解析工具的对比以及简单的使用示例。 ... [详细]
  • 转载自:https:blog.csdn.netu013948858articledetails77800663【python】pip安装报错UnicodeDecode ... [详细]
  • 如何更换Anaconda和pip的国内镜像源
    本文详细介绍了如何通过国内多个知名镜像站(如北京外国语大学、中国科学技术大学、阿里巴巴等)更换Anaconda和pip的源,以提高软件包的下载速度和安装效率。 ... [详细]
  • 尤洋:夸父AI系统——大规模并行训练的深度学习解决方案
    自从AlexNet等模型在计算机视觉领域取得突破以来,深度学习技术迅速发展。近年来,随着BERT等大型模型的广泛应用,AI模型的规模持续扩大,对硬件提出了更高的要求。本文介绍了新加坡国立大学尤洋教授团队开发的夸父AI系统,旨在解决大规模模型训练中的并行计算挑战。 ... [详细]
  • 本文介绍如何使用 Arcade 库在 Python 中绘制太阳,包括环境配置、基础图形绘制方法及具体代码示例。 ... [详细]
  • 2023年最新:PHP本地端口配置详解
    本文详细介绍了PHP在不同环境下的本地端口配置方法及常见问题解决方案,帮助开发者更好地理解和配置PHP端口。 ... [详细]
  • Java 实现判断二叉树B是否为A的子结构
    本文介绍了一种通过递归方法来判断给定的两棵二叉树A和B,B是否为A的子结构的方法。文中提供了详细的代码示例及解析。 ... [详细]
  • 在使用SteamVR Unity Plugin进行开发时,开发者常常面临设备获取复杂、设备重启后索引ID变化导致配置错乱等问题。针对这些问题,HTC推出了Vive Input Utility Unity Plugin,旨在简化开发流程并提高开发效率。 ... [详细]
  • 在上一章【第三十九章:基于SpringBoot&Quartz完成定时任务分布式单节点持久化】中我们已经完成了任务的持久化,当我们创建一个任务时任务会被quartz定时任务框架自动持 ... [详细]
author-avatar
freezing-wing
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有