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

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.kler.cn/a/160686.html

相关文章:

  • 机器学习在医疗健康领域的应用
  • Linux git-bash配置
  • HTTP常见的请求头有哪些?都有什么作用?在 Web 应用中使用这些请求头?
  • ubuntu-desktop-24.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法)
  • 某app最新版 vmp算法分析一
  • linux设置主机名
  • c# OpenCV 读取、显示和写入图像(二)
  • SAP ABAP 开发ALV的基本流程(ALV资料二)
  • 前端实现手机短信验证码倒计时效果
  • 【PyTorch】模型选择、欠拟合和过拟合
  • Linux命令之ps
  • QT+Unity3D 超详细(将unity3D与QT进行连接,并实现信息传递)
  • SpringSecurity6 | 默认用户生成(下)
  • Linux设置Docker自动创建Nginx容器脚本
  • IDEA如何配置Git 遇到问题的解决
  • Java 敏感信息脱敏类
  • 【开源项目】Windows串口通信组件 -- Com.Gitusme.IO.Ports.SerialPort
  • 【c语言指针详解】指针的高级应用
  • 被动式安全扫描器
  • WebGL笔记:矩阵平移的数学原理和实现
  • 内衣洗衣机和手洗哪个干净?高性价比内衣洗衣机推荐
  • 【C语言】用户空间使用非缓存内存
  • 【Flink on k8s】- 3 - Kubernetes 中的关键概念
  • composer配置国内镜像
  • MySQL:update set的坑
  • HXDSP2441-Demo板