Tomasulo算法介绍

news2024/11/25 12:52:48

Tomasulo算法详细解释

在这里插入图片描述

有空闲
无空闲
收到数据
开始
指令发射
检查保留站
分配保留站
等待
操作数就绪?
执行指令
监听CDB
写回结果到CDB
更新寄存器状态
释放保留站
结束

Tomasulo算法是一种用于处理器中的动态调度技术,它允许指令在保持数据依赖性的同时进行乱序执行。这种算法由IBM的Robert Tomasulo在1967年首次实现于IBM 360/91处理器中。

算法核心思想

Tomasulo算法的核心在于使用一组称为“保留站”(Reservation Stations, RS)的结构来跟踪指令的状态,并通过“公共数据总线”(Common Data Bus, CDB)将执行结果广播给所有需要的硬件单元。算法通过寄存器重命名消除了WAR(Write After Read)和WAW(Write After Write)相关的危险,并利用转发(Forwarding)机制来解决RAW(Read After Write)相关的危险。

关键组件

保留站(Reservation Stations)

保留站是Tomasulo算法中用于缓存指令的结构,它们等待操作数(operands)变得可用,以便可以执行指令。每个保留站可以包含以下信息:

  • 操作类型(Op)
  • 操作数的值(Vj, Vk)
  • 操作数是否就绪的标志(Ready flags)
  • 功能单元的标识(FU)
  • 寄存器结果状态(Register result status)

公共数据总线(Common Data Bus)

CDB是连接功能单元和保留站的总线,用于广播完成指令的结果。CDB上的信息包括数据和来源标识,这样所有监听CDB的保留站和寄存器都可以根据来源标识获取数据。

寄存器重命名

Tomasulo算法通过寄存器重命名来消除WAR和WAW相关的危险。每次写入架构寄存器时,都会分配一个物理寄存器,直到该架构寄存器再次被写入。这种方法保留了RAW依赖性,但简化了硬件设计。

算法流程

  1. 发射(Issue):从操作队列中获取指令,如果保留站空闲且没有结构性危险,记分牌将发出指令并将操作数重命名。
  2. 执行(Execution):当操作数就绪时执行操作;如果没有就绪,则监视CDB以获取结果。
  3. 写回(Write-back):在CDB上向所有等待的单元广播结果;标记保留站为可用。

优势与应用

Tomasulo算法的优势在于它能够动态调度指令,包括加载/存储操作,而不需要静态调度所需的复杂编译器支持。它通过增加可用于保存寄存器值的位置、动态地基于指令实际完成和操作数可用性做出调度决策,以及完全消除内存引用的歧义,从而更有效地利用并行性,提高指令吞吐量和功能单元利用率。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++练习】二进制到十进制的转换器

题目:二进制到十进制的转换器 描述 编写一个程序,将用户输入的8位二进制数转换成对应的十进制数并输出。如果用户输入的二进制数不是8位,则程序应提示用户输入无效,并终止运行。 要求 程序应首先提示用户输入一个8位二进制数。…

量子计算包kaiwu安装过程踩过的坑

目录 1 安装过程 2 官方代码测试 3 踩坑说明 首先,目前的kaiwu版本仅支持python3.8,所以必须要下载python3.8才能运行kaiwu 1 安装过程 step1: 在页面的SDK标签下,找到对应操作系统的kaiwu包。 step2: 下载python3.8到本地,可…

全文检索ElasticSearch到底是什么?

学习ElasticSearch之前,我们先来了解一下搜索 1 搜索是什么 ① 概念:用户输入想要的关键词,返回含有该关键词的所有信息。 ② 场景: ​ 1互联网搜索:谷歌、百度、各种新闻首页; ​ 2 站内搜索&#xff…

海鲜特写镜头视频素材去哪找 热门视频素材网站分享

作为美食自媒体创作者,海鲜特写镜头的视频素材无疑是提升内容吸引力和质量的重要利器。无论你想展示新鲜的海鲜原料、精美的烹饪过程,还是诱人的餐桌美食,精致的海鲜特写镜头都能极大地吸引观众的注意力。那么,问题来了&#xff1…

Unity 如何优雅的限定文本长度, 包含对特殊字符,汉字,数字的处理。实际的案例包括 用户昵称

常规限定文本长度 ( 通过 UntiyEngine.UI.Inputfiled 附带的长度限定 ) 痛点1 无法对中文,数字,英文进行识别,同样数量的汉字和同样数量的英文像素长度是不一样的,当我们限定固定长度后,在界面上的排版不够美观 痛点2…

SH3001姿态解算

姿态角,机体坐标系相对于参考坐标系的角度 旋转的非交换性 姿态角指的是载体坐标系与参考系之间的关系, 欧拉角是描述物体与某个轴(X,Y,Z)的关系,欧拉角属于姿态角的一种常见描述形式,另外两种描述形式就是四元数和和旋转矩阵 飞…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-19

文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么&#xff…

电信网关配置管理系统 upload_channels.php 文件上传致RCE漏洞复现

0x01 产品简介 中国电信集团有限公司(英文名称“China Telecom”、简称“中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员实现对网关设备的远…

【C/C++】memcpy函数的使用

零.导言 当我们学习了strcpy和strncpy函数后,也许会疑惑整形数组要如何拷贝,而今天我将讲解的memcpy函数便可以拷贝整形数组。 一.memcpy函数的使用 memcpy函数是一种C语言内存函数,可以按字节拷贝任意类型的数组,比如整形数组。 …

【数据分享】1901-2023年我国省市县镇四级的逐年降水数据(免费获取/Shp/Excel格式)

之前我们分享过1901-2023年1km分辨率逐月降水栅格数据和Shp和Excel格式的省市县四级逐月降水数据,原始的逐月降水栅格数据来源于彭守璋学者在国家青藏高原科学数据中心平台上分享的数据!基于逐月数据我们采用求年累计值的方法得到逐年降水栅格数据&#…

【Qt问题】解决 Cannot retrieve debugging output

【Qt问题】解决 Cannot retrieve debugging output Chapter1 【Qt问题】解决 Cannot retrieve debugging output方案1 关闭其他Qt工程实例(等于没说)方案2 在PRO文件中,加上CONFIG console Chapter1 【Qt问题】解决 Cannot retrieve debuggi…

软考中级 软件设计师 上午考试内容笔记(个人向)Part.3

软考上午考试内容 7. 网络安全 威胁名称描述恶意攻击(ARP)所截获的合法通信数据拷贝,出于非法的目的而被重新发送。拒绝服务(DOS)对信息或其它资源的合法访问被无条件地阻止。窃听用户可利用合法或非法的手段窃取系统中…

第四十章 Vue之使用ESLint修正代码规范

目录 一、引言 二、前端开发规范 三、ESLint规范工具 四、ESLint规范错误解决方式 4.1. 手动修正 4.2. 自动修正 JavaScript Standard Style 规范说明地址: https://standardjs.com/rules-zhcn.html 一、引言 在我们实际项目的开发过程中,统一标…

力扣题目解析--删除链表的倒数第n个节点

题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3&…

web实操5——http数据详解,request对象功能

http请求数据 现在我们浏览器f12的那些是浏览器给http格式数据整理之后便于我们阅读的。 原始的http格式信息: 就是按照一定格式和符号的字符串: 请求行:格式如下图 请求头:一个个key,value数据,用,分割…

大语言模型LLMs在医学领域的最新进展总结

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 相比其他学科,医学AI,是发表学术成果最多的领域。 医学数据的多样性和复杂性(包括文本、图像、基因组数据等),使得…

React的概念以及发展前景如何?

React是一个由Facebook开发的用于构建用户界面的的开源JavaScript库,它主要用于构建大型、动态的Web应用程序。React的主要特点是使用VirtualDOM(虚拟DOM)来优化性能,并使用声明式的编程方式来编写UI。 React的主要概念包括&#…

计算机课程管理:Spring Boot与工程认证的协同

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

【Linux系列】命令行中的文本处理:从中划线到下划线与大写转换

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…