超标量处理器设计:重排序缓存(ROB)

★超标量处理器的很多地方用到了重排序缓存,但是我对它不是很了解,所以我整理一下重排序缓存的知识点。

重排序缓存(ROB)在确保乱序执行的指令能够正确地完成和提交(Commit),也可以用来寄存器重命名。

ROB是一个先进先出的表,每个项是ROB表项,可以记录指令执行的信息。

ROB表项的字段

(1)Complete: 标志位,用来标记指令是否已经完成执行阶段。当指令的所有操作(包括计算、访存等)都完成,标志就会被置为“是”,指令准备好进入退休阶段。

(2)Areg:指令在程序代码中指定的目的寄存器(逻辑寄存器)。

(3)Preg:物理寄存器的编号,经过寄存器重命名后指令实际使用的物理寄存器。

(4)OPreg:Old Physical Register,记录Areg在被重命名到当前Preg之前所对应的物理寄存器编号。在指令因异常需要回滚恢复状态时,OPreg用于指向应该恢复的物理寄存器状态,确保异常处理后的状态正确。

(5)PC:指令的程序计数器(PC)值。当指令执行过程中遇到中断时,保存这个PC能够从正确的点重新开始执行程序。

(6)Exception:如果指令执行中触发了异常,字段会记录异常的类型。指令即将退休时,处理器会根据异常类型执行相应的处理逻辑,可能是中止指令执行、恢复现场或是执行特定的异常处理程序。

(7)Type:记录指令的类型,如算术逻辑运算、加载、存储、跳转等。指令退休时,处理器会依据不同的指令类型执行相应的动作,比如存储指令需要把结果写入数据缓存(D-Cache),分支指令则可能需要清理预测执行的痕迹(如恢复检查点资源)。

ROB工作原理

分发(Dispatch)阶段

指令从指令队列或解码阶段被取出,进入流水线执行。每个指令在进入流水线时,会在ROB中分配一个唯一的表项(Entry)。表项会记录该指令的初始状态。将complete状态位设为0,表示指令尚未执行完成。同时,指令的目的寄存器信息、PC值等也会被记录下来。

执行(Execution)阶段

指令在执行阶段完成计算后,将complete状态位设为1,该指令已经执行完毕,计算结果可能被暂时存储在ROB中或直接写入物理寄存器堆(PRF)。如果执行过程中发生异常,异常类型也会被记录在ROB对应的表项中,但异常的实际处理被推迟到提交阶段。

异常与退休(Exception & Commit)阶段

所有对程序状态的最终更改,包括结果的写回、异常处理,都发生在提交阶段。只有当指令的complete状态为1,且所有先前的指令(在程序顺序上)也已正确执行并退休时,该指令才能退休。计算结果根据Areg和Preg信息被写入到寄存器或内存中。

若存在异常,处理器会根据ROB中记录的异常类型进行相应处理,可能包括恢复现场、跳转到异常处理程序等。

ROB工作例子

所以ROB就是一个先进先出的队列,当后面的指令执行完必须等到前面的执行完才可以退休。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/608336.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

车载测试___长安汽车车机测试项目

项目介绍: 长安汽车车机是以腾讯车载互联为基础,融合了多媒体影音系统(QQ音乐、喜马拉雅FM、酷我音乐)、车载导航、车辆功能设定这些选项,可以在线听歌、导航、查看360度全景影像辅助系统,让车主驾车更加安逸享受。 具体模块包含远程车辆状…

LeetCode 147. 对链表进行插入排序

目录 1.原题链接: 2.从前往后插入结点: 代码实现: 3.提交结果: 4.读书分享: 1.原题链接: 147. 对链表进行插入排序 2.从前往后插入结点: 对于本题,我们可以以头结点作为参考…

【Leetcode】八大排序

总述 插入排序:直接插入排序;希尔排序; 选择排序:简单选择排序;堆排序; 交换排序:冒泡排序;快速排序; 归并排序; 桶排序/基数排序; 直接插入排序 …

NVIDIA Omniverse Cloud API支持数字孪生开发,可解决复杂AI问题 | 最新快讯

在全球范围内,价值超过 50 万亿美元的重工业市场,正在竞相实现数字化。 基于此,为帮助数字孪生技术更好地赋能千行百业,AI 企业 NVIDIA 在架构底层算力的同时,也搭建了 NVIDIA AI Enterprise 和 Omniverse 两大平台。 …

【隧道篇 / WAN优化】(7.4) ❀ 03. WAN优化的原理 ❀ FortiGate 防火墙

【简介】相信对WAN优化感兴趣的人都会有疑问,WAN优化真的有作用吗?如果真的有作用,那是根据什么原理呢?让我们来更深入的了解一下。 客户端和服务器端 其实很多人在一开始看到WAN优化这个词,就自然的以为上网速度太慢&…

基于51单片机的智能垃圾桶仿真设计( proteus仿真+程序+设计报告+原理图+讲解视频)

这里写目录标题 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单资料下载链接: 基于51单片机智能垃圾桶仿真设计( proteus仿真程序设计报告原理图讲解视频) 仿真图proteus8.9及以上 程序编译…

ABB RobotStudio学习记录(一)新建工作站

RobotStudio新建工作站 最近遇到 虚拟示教器和 Rapid 代码不能控制 视图中机械臂的问题,其实是由于机械臂和工作站不匹配。以下是解决方法。 名称版本Robot Studio6.08 新建一个”空工作站“; 在目标位置新建一个目标文件夹 C:\solution\test&#xff0…

鸿蒙内核源码分析(文件概念篇) | 为什么说一切皆是文件

什么是文件 不说清楚什么是文件就说不清楚文件系统,更说不清楚内核是如何管理和为什么要这么来管理文件的。现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,将文件抽象成一个宽泛的概念,把文档、目录(文件夹)、键盘、监视器、硬盘、可移动…

视频监控平台:交通运输标准JTT808设备SDK接入源代码函数分享

目录 一、JT/T 808标准简介 (一)概述 (二)协议特点 1、通信方式 2、鉴权机制 3、消息分类 (三)协议主要内容 1、位置信息 2、报警信息 3、车辆控制 4、数据转发 二、代码和解释 (一…

C语言leetcode刷题笔记1

C语言leetcode刷题笔记1 第1题:136.只出现一次的数字两次遍历(O(numsSize^2))位运算 第2题:202.快乐数快慢指针记录历史数据 第3题:53.最大子数组和暴力求解(超时)动态规划分治 第1题&#xff1…

机器学习初学者 6 个核心算法!建议收藏,反复观看!

今天再来介绍机器学习算法的基本概念和适用场景! 首先,引用一句英国统计学家George E. P. Box的名言:All models are wrong, but some are useful. 没有哪一种算法能够适用所有情况,只有针对某一种问题更有用的算法。 也就是说&…

【新版系统架构】知识点背诵默写本

前言 系统架构考试在即,想要考试的人肯定感受到了沉甸甸的压力和紧迫感,脑海中不断闪过知识点的画面,却让人有些头昏脑胀,发现很难完全记住,这个考试很难,知识点很多。这次我在准备考试的同时,…

Android GPU渲染屏幕绘制显示基础概念(1)

Android GPU渲染屏幕绘制显示基础概念(1) Android中的图像生产者OpenGL,Skia,Vulkan将绘制的数据存放在图像缓冲区中,Android中的图像消费SurfaceFlinger从图像缓冲区将数据取出,进行加工及合成。 Surface…

华为云CodeArts API专场直播来袭!——探索API全生命周期管理新趋势

API的全生命周期管理是否让你摸不清头脑?你是否对API的前沿技术和应用充满了好奇,渴望一探究竟? 华为云PaaS服务即将在5月10日16:00,为你带来一场别开生面的CodeArts API专场直播活动! 你可以在轻松愉快的氛围中&…

小巧简单实用的Linux端口转发工具Rinetd

Linux下实现端口转发有很多种方法,尤其是在可以联网的情况下,更是容易。最近在资源受限的定制系统中,找到一个方便离线安装和使用的端口转发工具Rinetd,安装包仅几十K,而且有很多版本的Linux发行系统的支持。 1、安装…

水质监测设备预警系统

随着工业化进程的加快和城市化水平的提高,水质安全问题愈发受到社会各界的广泛关注。为了确保水资源的清洁与安全,水质监测设备预警系统成为了不可或缺的利器。在这个背景下,HiWoo Cloud平台凭借其先进的技术和卓越的性能,为水质监…

【已解决】直接在远程新增文件本地再提交报Merge branch ‘master‘ of

【已解决】直接在远程新增文件本地再提交报Merge branch ‘master’ of … 1、问题产生背景 直接在远程仓库新建了md文件,本地库修改了文件已添加到暂存区之后再提交报错 2、分析 远程新建文件产生变更,版本号与本地拿到的不一致,本地再次提…

Docker 安装的MySQL迁移数据库

1. 导出数据库 docker ps :查看数据库对应的 CONTAINER ID docker exec -it id /bin/bash : 进入到mysql的docker实例中 cd /usr/bin : 进入到bin目录 mysqldump -u root -p123456 study > /root/study_backup0509.sql :使用mysqldump备份库,注意密码与-p之间…

PopChar for Mac v10.1激活版:特殊字符输入工具

PopChar for Mac是一款专为Mac用户设计的字符输入工具,其简单直观的功能使得查找和插入特殊字符变得轻而易举。 PopChar for Mac v10.1激活版下载 首先,PopChar为Mac提供了访问所有字体字符的能力,包括那些难以通过键盘直接输入的字符。用户只…

【3dmax笔记】032: 编辑顶点

一、编辑顶点概述 (1)启动安装好的3dmax软件。 (2)选择顶视图,用图形画出一个矩形。 (3)选择矩形,右击鼠标,将矩形转换成可编辑样条线。 (4)进入顶点层级。 展开可编辑样条线,选择顶点层级(快捷键为1,在不展开样条线的情况下也可以选择顶点层级)。选择后,可以…
最新文章