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

rename--统一的PRF

基本概念

  • 将ARF/PRF进行合并,合同之后的不见,称之为统一的PRF(Physical Register File);
  • 存储的是speculative的,以及正确的(retire)寄存器值;
    • 使用free list,存储PRF中,哪些寄存器是空闲的;
    • 使用中的寄存器,会经历值没有被计算出来,计算出来但还没有retire, retire三个阶段

重命名过程 

  •  对源寄存器,查找register mapping table(RAT), 找出其对应的PRF的编号;
  • 对目的寄存器,从free list中申请一个空闲的PRF,建立映射关系;
  • 当外部需要查看指令的结果时,因为此时PRF中,既有推测值,也有准确值,因此不满足要求;
    --> 使用另一个RAT, 存储所有退休的指令,和物理寄存器的关系;
  • 当一个物理寄存器不再被后面的指令使用时,该寄存器就可以被释放了;

怎么判断该寄存器是否还会被后续的指令使用?

  • 考虑上面两条指令,当b retire的时候,a对应的寄存器已经没有用了;
  • 如果有指令要使用a的目的寄存器作于src_reg,则这条指令必定是处于a,b之间;
  • 当b retire的时候,肯定可以保证没有指令使用a的p1作为源寄存器了;
  • 因此,当b退休的时候,需要将p1变为空闲状态;
  • => 也就是说,ROB中,除了记录当前对应的reg外,还需要存储它之前对应的物理寄存器;

 RAT的内容

  • 本质上是一个表格,以逻辑寄存器作为地址来索引;
  • 对源寄存器,从这个表格中找到对应的物理寄存器编号;
  •  对目的寄存器,从free list申请物理寄存器后,将对应关系写入RAT中;
  • 实现层面,可以用sram/cam来实现;
http://www.lryc.cn/news/254466.html

相关文章:

  • 010-editor破解(1)
  • Ubuntur编译ROS报错:error PCL requires C++14 or above
  • 17.认识下Docker之docker的核心原理(2)
  • 【EasyExcel实践】万能导出,一个接口导出多张表以及任意字段(可指定字段顺序)
  • 代码随想录算法训练营第四十二天 _ 动态规划_01背包问题、416.分割等和子集。
  • 市场上好用的aspera替代方案,你知道哪些
  • Stm32_串口的帧(不定长)数据接收
  • L0、Linux常用命令
  • Golang实践录:读取toml配置
  • 超大规模集成电路设计----基于阵列的可编程逻辑(七)
  • 深入探索FastAPI单元测试:使用TestClient轻松测试你的API
  • 基于ssm小型企业办公自动化系统论文
  • CasADi - 最优控制开源 Python/MATLAB 库
  • Java中使用String字符串的注意事项
  • 离线数仓构建案例一
  • nginx优雅如何优雅的接管【跨域配置】
  • 远离危险的购买手机的渠道
  • 外包干了2个多月,技术明显有退步了。。。。。
  • 【Java项目管理工具】Maven
  • solidity案例详解(六)服务评价合约
  • 使用kubeadm搭建高可用的K8s集群
  • C#图像处理OpenCV开发指南(CVStar,07)——通用滤波(Filter2D)的实例代码
  • c++函数模板STL详解
  • Java利用UDP实现简单群聊
  • fastapi.templating与HTMLResponse
  • 当初为什么选择计算机这类的行业?
  • tif文件转png、Excel
  • 【PyTorch】训练过程可视化
  • 深入理解Go语言GC机制
  • qt-C++笔记之组件-分组框QGroupBox