issue unit

The Issue Unit

issue queue用来hold住,已经dispatched,但是还没有执行的uops;

当一条uop的所有的operands已经ready之后,request请求会被拉起来;然后issue select logic将会从request bit ==1的slot中,选择一条,进行issue;

一旦uop被issue了,则需要从issue queue中删除,为后续的dispatch instruction腾出位置;(什么时候删除,需要看实现,有的实现会提前唤醒,虽然已经issue了,但是可能replay);

一般不同类型的指令放在不同的issue queue里面;

Speculative Issue

可以采用speculatively issue的方式,来提升性能;

例如,推测load inst将会在cache中hit, 然后提前将依赖于该inst的指令提前issue, 其数据希望从bypass网络中拿到;

在这种场景下,issue queue不能删除这些speculatively issued的uops, 直到这些uops的推测状态,被resolved了;

如果提前issued的uops fail了,则所有这些speculatively issued的uops都必须要kill, 并replay;

 Issue Slot

issue slot的内容如图所示,dispatch过来的uop将会存在这样一个entry中,其中p代表presence bit, 代表rs ready的意思;

一旦ready, issue slot将会拉起request请求,等待被iusse;

Issue Select Logic 

每个issue select logic port, 采用静态优先级编码,选择issue queue中第一个availablede uop;

每种类型的issue select logic port, 只会给对应的execution unit进行调度;

如果FU unvailable, 则不能进行调度选择;

 Un-ordered Issue Queue

 dispatch 的uop将会放在第一个可用的issue entry中,等待isseud;

这样会导致性能问题,尤其是在 unpredictable branches放在低优先级的slot,不能被isseud的场景;这种场景下,只能等到ROB fills up, issuew start to drain时,才能进行issue;

这样导致分支预测迟迟不能进行execution, 之前执行的,可能uops都在错误的分支上;

Age-ordered Issue Queue

dispatch 过来的指令,都放在issue queue的底部,优先级最低;

每个cycle, 每条指令都会向上移动,因此,最旧的指令,将会有最高的issue priority;

这样做性能比较好,但是功耗比较大;

Wake-up

 有两类,fast wakeup, slow wake up;

由于ALU UOPs可以通过bypass network发送写回数据,因此发出的ALU UOPs将在发issue时向Issue Queue广播其wakeup。

但是,floating-point操作、loads、可变延迟操作不会通过bypass network发送wakeup信号,而是在write-back阶段来自register file端口。

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

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

相关文章

第十二章 React 路由配置,路由参数获取

一、专栏介绍 🐶🐶 欢迎加入本专栏!本专栏将引领您快速上手React,让我们一起放弃放弃的念头,开始学习之旅吧!我们将从搭建React项目开始,逐步深入讲解最核心的hooks,以及React路由、…

0基础学java-day19(IO流)

一、文件 1 什么是文件 2.文件流 3.常用的文件操作 3.1 创建文件对象相关构造器和方法 package com.hspedu.file;import org.junit.jupiter.api.DynamicTest; import org.junit.jupiter.api.Test;import java.io.File; import java.io.IOException;/*** author 林然* vers…

js根据数组对象中的某个值去重

原理:利用对象key-value进行去重 去重方法: // 数组对象根据某一个值去重 filterList(list[], key) {let obj {};list?.forEach(item>{obj[item[key]]item;});return Object.values(obj); }, 用法: let list [{id: 1, name: 1},{id…

【TI毫米波雷达入门-11】毫米波速度相关计算

知识回顾 傅里叶变换 信号用复数表示,A :振幅, Q :相位 中频 信号 中频信号的相位 中频信号的表达公式 频率和相位的表达方式 使用两个Chirp 实现单个目标的测量 两个连续的chirp ,检测目标的相位差,通过速度和时间的关…

7+乳酸化+分型+实验,怎么贴合热点开展实验,这篇文章给你思路

今天给同学们分享一篇生信文章“Identification of lactylation related model to predict prognostic, tumor infiltrating immunocytes and response of immunotherapy in gastric cancer”,这篇文章发表在Front Immunol期刊上,影响因子为7.3。 结果解…

基于java的小型超市管理系统论文

摘 要 使用旧方法对超市信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在超市信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。 这次开发的小型超市管理系统有管理…

uniapp 数组添加不重复元素

一、效果图 二、代码 //点击事件rightBtn(sub, index) {console.log(sub, index)//uniapp 数组添加不重复元素if (this.selectList.includes(sub.type)) {this.selectList this.selectList.filter((item) > {return item ! sub.type;});} else {this.selectList.push(sub.t…

Java实现ZIP算法压缩和解压操作

ZIP是一种流行的文件压缩格式,它可以将多个文件打包成一个文件,以减小文件大小并方便传输。ZIP文件可以在大多数操作系统和软件中解压缩,例如Windows、Mac和Linux系统上的许多文件管理器和解压缩工具。ZIP压缩可以使用许多不同的压缩算法&…

【DEBUG】plt.cm.hot 的归一化问题

可视化时调用 # Matplotlib有很多内置的colormap,比如jet, viridis, hot等colormap plt.cm.hot # 选择一个colormapimg img.astype(np.float64) # 为了进行归一化,自动转换时float32norm plt.Normalize(vminimg.min(), vmaximg.max()) # 标准化灰度…

365锦鲤助手 砍价小程序源码 流量主引流裂变

源码介绍 修改版365锦鲤 助手, 砍价小程序源码 流量主引流裂变 拼多多商品快速丰富产品内容满足广大用户需求;流量矩阵让流量都进你的圈子飞起来;长期盈利、项目稳定 1.后台安装微擎 2安装应用 后台打包上传

23.12.10日总结

周总结 这周三的晚自习,学姐讲了一下git的合作开发,还有懒加载,防抖,节流 答辩的时候问了几个问题: 为什么在js中0.10.2!0.3? 在js中进行属性运算时,会出现0.10.20.300000000000000004js遵循IEEE754标…

【有限元仿真】or【流体仿真】

流体和刚体的关系? 刚体仿真关注刚性物体的运动和力学行为。刚体是指在外力作用下保持形状和结构不变的物体,不受弯曲或拉伸的影响。刚体仿真基于刚体力学原理和刚体运动学方程,模拟刚体的运动、转动、碰撞等行为。它可以用于模拟刚体之间的…

Mysql进阶-InnoDB引擎事务原理及MVCC

事务原理 事务基础 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系 统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 事务的四大特性: 原子性(A…

记录 | docker启动权限问题Get Permission Denied

docker 启动报错权限问题: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json”: dial unix /var/run/docker.sock: connect: permission d…

el-upload添加FormData参数,自定义上传接口

添加 :http-request"selfUpload"&#xff1a; <el-upload:disabled"saveLoading"class"upload-demo":limit"1":on-exceed"handleExceed":before-upload"beforeAvatarUpload":file-list"fileList":a…

电商软件定制开发数字化四大新趋势

近年来&#xff0c;电商软件定制化开发已经成为一种新趋势。得益于技术进步、用户需求个性化以及市场竞争的加剧。越来越多的企业开始认识到&#xff0c;为了在激烈的市场竞争中脱颖而出&#xff0c;他们需要一款高度定制化的电商软件来满足自身的特定需求。在电商软件定制开发…

【深度学习目标检测】五、基于深度学习的安全帽识别(python,目标检测)

深度学习目标检测方法则是利用深度神经网络模型进行目标检测&#xff0c;主要有以下几种&#xff1a; R-CNN系列&#xff1a;包括R-CNN、Fast R-CNN、Faster R-CNN等&#xff0c;通过候选区域法生成候选目标区域&#xff0c;然后使用卷积神经网络提取特征&#xff0c;并通过分类…

Android audio pop 音产生和解决方法

一、pop音产生原因 pop noise其实是隔直电容被充电产生。 二、pop音解决办法 1.插入模拟LPF 一般比较困难&#xff0c;pop noise是由于音频路径上隔直电容两端上电时候的压差而导致快速充电产生的&#xff0c;一般是在Audio PA的输入RC LPF上作调整&#xff0c;通过减小串联…

Qt图像处理-基于OpenCv的图像的腐蚀、膨胀、打开、关闭

一、概述 膨胀、腐蚀、开、闭运算是数学形态学最基本的变换。 膨胀:把二值图像各1像素连接成分的边界扩大一层(填充边缘或0像素内部的孔); 腐蚀:把二值图像各1像素连接成分的边界点去掉从而缩小一层(可提取骨干信息,去掉毛刺,去掉孤立的0像素); 开:先腐蚀再膨胀…

[Stream]自定义的Collect筛选

这里使用map就是让map中的内容作用到s上去 然后我们在map(s->{})中的部分完成了筛选 并且返回一个Actor类型的值 import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.function.Function; import java.util.stream.Colle…