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

超标量处理器设计笔记(10) 寄存器重命名过程的恢复、分发

重命名

  • 寄存器重命名过程的恢复
    • 使用 Checkpoint 对 RAT 进行恢复
    • 使用 WALK 对 RAT 进行恢复
    • 使用 Architecture State 对 RAT 进行恢复
    • 总结
  • 分发(Dispatch)

寄存器重命名过程的恢复

当发生异常、分支预测失败时,指令占用 RAT、ROB 和 Issue Queue 等资源恢复

使用 Checkpoint 对 RAT 进行恢复

image.pngl200

对一个正在工作的部件来说,两种方式

image.pngl200

名字随机访问的 GC串行访问 GC
缩写Random Access GC, RAGCSequential Access GC,SAGC
区别将整个内容放到任意 GC 中逐步地移位才能放到指定的 GC 中
和主存储器连接方式连接每个 GC连接单个 GC
要求驱动负载较大(接缓冲器)恢复时,可能需要移位多次
选择更合适
  • MBC(Main Bit Cell)
    • SRAM 最小存储单元
    • 两读一写
  • CBC(Checkpoint Bit Cell)
    • 一读一写

RAT 状态保存时(Allocation):将 MBC 的内容复制到指定的 CBC 中
RAT 状态恢复时( Restore ):将 CBC 的内容复制到指定的 MBC 中

image.pngl200

使用 WALK 对 RAT 进行恢复

ROB 存储了这条指令前对应的物理寄存器,可以逐步倒退

当发现一条分支指令预测失败时,使用分支指令的编号,将流水线中所有相关指令都给抹除
同时暂停流水线,从 ROB 的底端开始(最新的指令),逐条将每条指令之前对应的映射关系写到 RAT 中。

  • 分支预测错误时,首先需要抹除流水线,需要逐个指令地进行恢复,需要消耗很多时间(增大分支预测失败的惩罚)
  • 异常时,只需要恢复,不需要抹掉指令(因为异常需要等到该指令变成最旧的指令时才进行)

占用资源少,可用于处理异常发生频率低的处理器

使用 Architecture State 对 RAT 进行恢复

处理器外部访问逻辑寄存器时,RAT 中存储的是未提交状态,所以不一定

例子:
指令 A 提交成功,此时访问 RAT r1 对应的是 P34,但 D 可能出现异常,由此外部不应该读取这个映射关系
image.pngl200

因此在提交时,也使用一个 RAT,所有正确的流水线指令都会更新 RAT,称为 aRAT(architecture RAT)

利用 aRAT 也可以完成修复

  • 出现分支预测失败时,并不马上进行 RAT 状态修复,而是继续执行,直到运行到该分支指令变成最旧指令时,此时 aRAT 则是正确状态的指令

缺点

  • 流水线中存在 D-cache 缺失的 load 指令时,该分支指令需要等待很长时间才能顺利离开

总结

复位方式CheckpointWALKArchitecture State
内容将 RAT 内容复制出来根据 ROB 序列完成删掉、恢复指令等待分支指令成为最老指令
利用 ARAT 复制
占用资源直接复制比较简单
处理速度可能由于 D-cache 原因变慢
常用于异常发生概率低的处理器中不需要过多处理,降低功耗

分发(Dispatch)

经过重命名后,会进入

  • 队列
    • 发队队列 (out of order)
      • 大部分 FU (function Unit),等待操作数
    • 发射队列 (in order)
      • Store 指令和分支指令
  • 重排序缓存 (ROB)
    • 乱序执行的指令拉回到原始顺序,并且记录指令执行的状态(是否发生异常)

相关文章:

超标量处理器设计笔记(10) 寄存器重命名过程的恢复、分发

重命名 寄存器重命名过程的恢复使用 Checkpoint 对 RAT 进行恢复使用 WALK 对 RAT 进行恢复使用 Architecture State 对 RAT 进行恢复总结 分发(Dispatch) 寄存器重命名过程的恢复 当发生异常、分支预测失败时,指令占用 RAT、ROB 和 Issue …...

硬件设计-电源轨噪声对时钟抖动的影响

目录 定义 实际案例 总结 定义 首先了解抖动的定义,在ITU-T G.701中有关抖动的定义如下: 数字信号重要瞬间相对于其理想时间位置的短期非累积变化。 抖动是时钟或数据信号时序的短期时域变化。抖动包括信号周期、频率、相位、占空比或其他一些定时特…...

geeCache 一致性hash

目标:解决当自身结点没有改缓存时,从哪个结点获得这个缓存的问题 一、普通的hash算法 hash(Tom)%结点数量 缺点:缓存雪崩 缓存雪崩是指在某一时刻,大量缓存同时失效或宕机,导致大量请求直接访问数据库,从…...

【我的开源】ESCurlGen 一款 ElasticSearch curl 命令生成器

由于经常编写复杂的 Elasticsearch 查询,并通过代码生成查询条件,我发现每次使用 curl 请求 Elasticsearch 时,手动复制配置信息并构建 curl 命令的过程非常繁琐,尤其是在管理多个环境的情况下更为不便。因此,我利用 A…...

Python库NetworkX介绍

NetworkX 是一个用于创建、操作和研究复杂网络结构的 Python 库。它特别适用于图论和网络分析,提供了丰富的图形数据结构和许多常用的算法。无论是学术研究、数据科学还是实际应用,NetworkX 都是分析图网络和复杂关系的强大工具。 1. NetworkX的基本概述…...

Muduo网络库解析--网络模块(2)

前文 重写Muduo库实现核心模块的Git仓库 注:本文将重点剖析 Muduo 网络库的核心框架,深入探讨作者精妙的代码设计思路,并针对核心代码部分进行重写,将原本依赖 boost 的实现替换为原生的 C11 语法。需要说明的是,本文…...

【读书笔记】《论语别裁》语文的变与不变

1.内容摘要 在《论语别裁》第01章“学而”中,作者探讨了语言和文字的变与不变,通过中西文化的对比,分析了文字作为思想表达工具的独立性和持久性。作者指出,虽然外语(如英语和法语)在每三十年有明显变化&a…...

elasticsearch 使用预处理将JSON类型转换成Object类型

文章目录 使用 Ingest Pipeline 和 json 处理器示例:使用Ingest Pipeline 写入数据使用该Pipeline 在Elasticsearch(ES)中,您可以使用“预处理”(通常是通过处理器、Ingest Pipeline等方式)将JSON类型的数据…...

华为HarmonyOS NEXT 原生应用开发: 数据持久化存储(用户首选项)的使用 token令牌存储鉴权!

Preferences 数据持久化存储 用户首选项(Preferences) 1. 封装 仓库工具类 ● 这里可以选择将 数据字段 key 抽取为一个静态方法,这里选择让用户传参,看起来较容易理解! /*** 首选项 preferences - 实现数据持久化…...

每天40分玩转Django:Django视图和URL

Django视图和URL 一、课程概述 学习项目具体内容预计用时视图基础函数视图、类视图、视图装饰器90分钟URL配置URL模式、路由系统、命名URL60分钟请求处理请求对象、响应对象、中间件90分钟 二、视图基础 2.1 函数视图 # blog/views.py from django.shortcuts import render…...

Kioptirx level4

具体步骤 通过nmap扫描我们所在的网段探测一下存活的主机,发现目标主机开放了80端口可以去访问一下 在访问的同时通过dirb去爆破一下目录,这边发现有一个john的目录不知道是什么可以去 这边在用dirsearch去扫一下防止有漏掉的页面我们没有访问到&#x…...

JPG 转 PDF:免费好用的在线图片转 PDF 工具

JPG 转 PDF:免费好用的在线图片转 PDF 工具 在日常工作和生活中,我们经常需要将图片转换为 PDF 格式。无论是制作电子文档、准备演示材料,还是整理照片集,将图片转换为 PDF 都是一个常见的需求。今天为大家介绍一款完全免费、无需…...

《Django 5 By Example》阅读笔记:p543-p550

《Django 5 By Example》学习第 19 天,p543-p550 总结,总计 8 页。 一、技术总结 1.fixtures (1)定义 A fixture is a collection of files that contain the serialized contents of the database. (2)作用 1)数据导入 一般来说,我们是…...

精品基于Python实现的微信小程序校园导航系统-微信小程序

[含文档PPT源码等] [包运行成功永久免费答疑辅导] 《django微信小程序校园导航系统》该项目采用技术Python的django框架、mysql数据库 ,项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视频等 软件开发环境及开发工具&#xf…...

【数字花园】个人知识库网站搭建:①netlify免费搭建数字花园

目录 [[数字花园]]的构建原理包括三个步骤:五个部署方案教程相关教程使用的平台 步骤信息管理 这里记录的自己搭建数字花园(在线个人知识库)的经历,首先尝试的是网上普遍使用的方法,也就是本篇文章介绍的。 后面会继续…...

数据仓库工具箱—读书笔记01(数据仓库、商业智能及维度建模初步)

数据仓库、商业智能及维度建模初步 记录一下读《数据仓库工具箱》时的思考,摘录一些书中关于维度建模比较重要的思想与大家分享🤣🤣🤣 博主在这里先把这本书"变薄"~有时间的小伙伴可以亲自再读一读,感受一下…...

分布式 窗口算法 总结

前言 相关系列 《分布式 & 目录》《分布式 & 窗口算法 & 总结》《分布式 & 窗口算法 & 问题》 参考文献 《【算法】令牌桶算法》 固定窗口算法 简介 固定窗口算法是最简单的流量控制算法。固定窗口算法的核心原理是将系统的生命周期划分为一个个…...

docker容器内部启动jupyter notebook但是宿主机无法访问的解决方法

目录 1.问题2.解决方法 1.问题 在docker容器内启动了jupyter notebook,在宿主机内用如下的url无法访问 http://localhost:8888 http://127.0.0.1:8888 启动方法: jupyter notebook 2.解决方法 启动方法加上选项[ --ip‘*’]或者[–ip‘0.0.0.0’] 即启…...

2.2 数据库设计方法

数据库设计流程: 1.需求分析:准确了解分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,需求分析决定了构建数据库大厦的速度和质量 2.概念结构设计:概设结构设计是整个数据库设计的关键&…...

ALOHA 协议详解

注:本文为 “ALOHA 协议” 相关文章合辑。 未去重整理。 动态分配信道(ALOHA 协议、CSMA 协议) QuantumYou 于 2021-07-27 09:32:04 发布 ALOHA 协议 纯 ALOHA 协议 -纯 ALOHA 协议思想:不监听信道,不按时间槽发送…...

Chord视频理解工具实战教程:日志记录与分析过程可追溯性配置

Chord视频理解工具实战教程:日志记录与分析过程可追溯性配置 1. 工具概览与核心价值 Chord视频时空理解工具是一款基于Qwen2.5-VL架构开发的本地智能视频分析解决方案。这个工具专门解决视频内容深度理解的需求,能够对视频进行帧级特征提取和时序分析&…...

【MATLAB源码-第410期】基于matlab的图像去雾系统设计—采用暗通道先验、颜色衰减与导向滤波融合。

操作环境:MATLAB 2024a1、算法描述基于MATLAB的图像去雾系统设计与实现 摘要 雾霾天气会显著削弱成像系统获取场景信息的能力,使图像出现对比度下降、颜色失真、边缘模糊及远景细节衰减等问题,从而影响目标检测、场景理解、智能监控与辅助驾驶…...

开源歌词工具技术解析:跨平台音乐资源整合与高效处理方案

开源歌词工具技术解析:跨平台音乐资源整合与高效处理方案 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 开源歌词工具作为一款专注于音乐资源处理的解决方案…...

Qt+OpenGL实战:从SOLIDWORKS到UR3机械臂OBJ模型渲染全流程

QtOpenGL实战:从SOLIDWORKS到UR3机械臂OBJ模型渲染全流程 在机器人仿真开发领域,将工业设计软件中的精密模型转化为可交互的三维可视化应用是一个关键且具有挑战性的环节。UR3协作机械臂作为工业自动化领域的明星产品,其高精度模型的渲染与操…...

Qwen3.5-9B图文理解效果展示:JPEG/PNG上传问答真实作品

Qwen3.5-9B图文理解效果展示:JPEG/PNG上传问答真实作品 1. 惊艳的多模态理解能力 Qwen3.5-9B作为一款90亿参数的开源大语言模型,在多模态理解方面展现出了令人印象深刻的能力。特别是其变体Qwen3.5-9B-VL,能够同时处理文本和图像输入&#…...

普通阿里234滑块分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…...

体验ai辅助开发:在快马平台与ai协作构建智能任务管理应用

最近尝试用AI辅助开发了一个任务管理应用,整个过程就像有个经验丰富的编程伙伴在旁边随时提供建议。在InsCode(快马)平台上,这种协作体验特别流畅,分享下具体实现过程: 初始框架搭建 输入"创建一个Vue3任务列表应用&#xff…...

5分钟部署!《崩坏:星穹铁道》全自动助手终极指南

5分钟部署!《崩坏:星穹铁道》全自动助手终极指南 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否每天花费大量时间在《崩坏&#xff1a…...

C++的std--ranges工作窃取算法

C的std::ranges工作窃取算法:高效并行的新利器 在现代多核处理器普及的背景下,如何充分利用计算资源成为编程领域的重要课题。C20引入的std::ranges库不仅简化了范围操作,还通过工作窃取算法(Work-Stealing Algorithm&#xff09…...

从白炽灯到LED:聊聊那些“不听话”的非线性元件(附特性曲线解读)

从白炽灯到LED:聊聊那些“不听话”的非线性元件(附特性曲线解读) 记得我第一次用电阻给LED限流时,那颗蓝色LED在我眼前发出"啪"的一声轻响就永远熄灭了。那时我才明白,电路世界里不是所有元件都像电阻那样&q…...