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.hqwc.cn/news/277744.html

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

相关文章

【Spring】05 生命周期之初始化回调

文章目录 1. 回调是什么2. 初始化回调2.1 实现 InitializingBean 接口2.2 配置 init-method 3. 执行顺序4.优势及应用总结 在 Spring 框架中,生命周期回调(Lifecycle Callbacks)是一种强大的机制,它允许我们在 Spring 容器中的 Be…

十几个软件测试实战项目【外卖/医药/银行/电商/金融】

项目一:ShopNC商城 项目概况: ShopNC商城是一个电子商务B2C电商平台系统,功能强大,安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城,系统PC后台是基于ThinkPHP MVC构架开发的跨…

焊盘:十字连接VS全覆盖 铺铜

在铺铜规则中,焊盘连接方式有两种: 十字连接 优点:较好焊接:因铺铜面积减少,温度下降速度降低,较好焊接,不易虚焊。 缺点:载流能力较弱:铺铜面积↓ → 载流能力↓全连接…

Flink 数据集类型

现实世界中,所有的数据都是以流式的形态产生的,不管是哪里产生的数据,在产生的过程中都是一条条地生成,最后经过了存储和转换处理,形成了各种类型的数据集。如下图所示,根据现实的数据产生方式和数据产生是…

面对同行恶意排挤,佳卫苗灭杀病毒HPV向市场发出灵魂五问

近期,抗HPV市场因为一款名叫“佳卫苗灭杀病毒HPV”的产品诞生而风起云涌。上市之初,产品方便表示,佳卫苗灭杀病毒HPV的诞生,不仅是为了造福患者,更是为了优化市场、刺激行业升级,以“机理更科学、材料更先进…

【开源软件】最好的开源软件-2023-第14名 Appsmith

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

GZ015 机器人系统集成应用技术样题2-学生赛

2023年全国职业院校技能大赛 高职组“机器人系统集成应用技术”赛项 竞赛任务书(学生赛) 样题2 选手须知: 本任务书共 25页,如出现任务书缺页、字迹不清等问题,请及时向裁判示意,并进行任务书的更换。参赛队…

java-IO流

File类 引入 【1】文件,目录: 文件: 内存中存放的数据在计算机关机后就会消失。要长久保存数据,就要使用硬盘、光盘、U 盘等设备。为了便于数据的管理和检索,引入了“文件”的概念。一篇文章、一段视频、一个可执…

【AutoDL】使用云服务器跑深度学习代码

一、AutoDL租用服务器 1.选用服务器 1.算力市场 租用服务器,选择自己心仪的服务器 2.镜像 可以选择一些基础的镜像,社区镜像里是git上有的环境。 3.上传文件 在文件存储中,选择上传的区,在右边点击上传,选择自己的文…

iClient3D 图元操作

1. S3MTilesLayer,S3M(Spatial 3D Model)图层类 S3MTilesLayer,S3M(Spatial 3D Model)图层类,通过该图层实现加载三维切片缓存,包括倾斜摄影模型、BIM模型、点云数据、精细模型、矢量数据、符号等。 那S3MTilesLayer中针对图元的…

美洽获评2023中国软件技术最佳AIGC应用奖,助力智能客服创新发展

12月15日,由中国科学院软件研究所、中科软科技股份有限公司联合主办的“2023中国软件技术大会”在北京举行。作为软件领域的年度盛事,“中国软件技术大会”已经成功举办20届。本次大会以“大模型驱动下的软件变革”为主题,聚焦于生成式AI等前…

死锁的预防、避免、检测和消除

一、预防死锁 1. 破坏互斥条件 2. 破坏不剥夺条件 3.破坏请求和保持条件 4.破坏循环等待条件 二、避免死锁 避免死锁的一种方法是使用银行家算法,它涉及到安全序列的概念。银行家算法是一种资源分配和死锁避免的算法,它确保系统能够分配资源而不会导致死…