ISSUE的基本概念

ISSUE:将符合一定条件的指令从发射队列(IssueQueue)中选出来,并送到FU中执行的过程;

  • ISSUE QUEUE也称之为reservation station, 其按照一定的规则,选择那些源操作数都已经准备好的指令,将其送到FU中执行,这个过程称为发射;
  • IQ的作用,就是使用硬件,保存一定数量的指令,然后从这些指令中,找到可以执行的指令,而不用管指令之间的顺序;
  • 发射阶段是从顺序执行转到乱序执行的分界线,在发射阶段之前的所有指令都在流水线中按照程序中指定的顺序流动,而在发射阶段之后,所有的指令都是乱序执行的,直到流水线最后的提交(Commit)阶段,才利用重排序缓存(ROB)将这些指令又拉回到程序中指定的原始顺序

对于乱序执行(out-of-order)的超标量处理器来说,只有少数指令,例如store指令或分支指令,才会使用顺序执行的方法,而对于大多数的指令,都是按照乱序的方式进行发射。

乱序发射:

指令到了发射队列中之后,就不会再按照程序中指定的顺序在处理器中流动,只要发射队列中的一条指令的操作数都准备好了,且满足了发射的条件(具体的条件将在本章进行介绍),就可以送到相应的FU中去执行。

上述的执行过程,可以总结成如下几点:

  1. 发射队列(Issue Queue),用来存储已经被寄存器重命名,但是没有被送到FU 执行的指令,通常也被称为保留站(Reservation Station);
  2. 分配(Allocation)电路,用来从发射队列中找到空闲的空间,将寄存器重命名之后的指令存储到其中;
  3. 选择(Select)电路,也称为仲裁(Arbiter)电路,如果在发射队列中存在多条指令的操作数都已经准备好了,那么这个电路会按照一定的规则,从其中找出最合适的指令,送到FU中去执行,这部分电路是发射阶段比较关键的部分,会直接影响整个处理器的执行效率;
  4. 唤醒(Wake-up)电路,当一条指令经过 FU 执行而得到结果数据时,会将其通知给发射队列中所有等待这个数据的指令,这些指令中对应的源寄存器就会被设置为有效的状态,这个过程就是唤醒。如果发射队列中一条指令的所有源操作数都有效了,则这个指令就处于准备好(ready)的状态,可以向选择电路发出申请。

 

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

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

相关文章

最新50万字312道Java经典面试题52道场景题总结(附答案PDF)

最近有很多粉丝问我,有什么方法能够快速提升自己,通过阿里、腾讯、字节跳动、京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题;花了3个月的时间将市面上所有的面试题整理总结成了一份50万字的300道Java高频面…

TCP服务器的编写(上)

tcp服务器的初始化,第一件事情就是创建套接字 目前来说我们的tcp套接和udp套接是没有任何区别的!!! 那么接下来,如果是udp创建好套接字在进行绑定,那么基本上就完成我们udp服务器的初始化 而我们tcp创建好…

题目:二进制中1的个数 (蓝桥OJ 1331)

题目描述: 解题思路: 使用位运算.右移并判断最低位是否为一.但需要注意一般的int类型不行,要使用unsigned int. 题解: #include <bits/stdc.h> using namespace std; int main() {unsigned int x;cin >> xint ans 0;while(x){if(x & 1)ans;x >> 1;}c…

算法基础概念之数据结构

邻接表 每个点作为头节点接一条链表 链表中元素均为该头节点指向的点 优先队列 参数: ①储存元素类型 ②底层使用的存储结构(一般为vector) ③比较方式(默认小于)

使用React实现随机颜色选择器,JS如何生成随机颜色

背景 在标签功能中&#xff0c;由于有「背景色」属性&#xff0c;每次新增标签时都为选择哪种颜色犯难。因此&#xff0c;我们思考如何通过JS代码生成随机颜色&#xff0c;提取一个通用的随机颜色生成工具&#xff0c;并基于React框架封装随机颜色选择器组件。 实际效果 原理…

Vue用<br>自定义换行,用v-html渲染,hover的时候title也需要使用自定义换行或者显示一行用省略号展示,hover展示全部

哈喽 大家好啊,最近遇到一个需求&#xff1a; 需求一&#xff1a;用<br>自定义换行&#xff0c;hover的时候title也需要使用自定义换行 然后我便想到了用<br>自定义换行&#xff0c;然后用v-html渲染&#xff0c;则就正常显示了 但是title只能用文本&#xff0c…

数据结构--稀疏矩阵及Java实现

一、稀疏 sparsearray 数组 1、先看一个实际的需求 编写的五子棋程序中&#xff0c;有存盘退出和续上盘的功能。 分析问题: 因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据.->稀疏数组。 2、稀疏数组基本介绍 当一个数组中大部分元素为&#xff10;…

[NAND Flash] 3.3 Flash闪存工艺知识深度解析

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 全文 3800 字。 1. Wafer 1.1 什么是 Wafer Wafer即晶圆&#xff0c;是半导体组件“晶片”或“芯片”的基材&#xff0c;从沙子里面…

【idea】idea尾部自动删除空格,idea2023.1.2关闭自动去除行尾空格的功能

这个功能是由于git或者svn上的代码有许多空格的时候&#xff0c;会自动把空格去掉&#xff0c;就会导致出现许多更改的地方&#xff0c;会自动删空格。 尾部刚打好空格准备写代码&#xff0c;自动就删掉空格&#xff0c;又得重打空格后继续编码&#xff0c;非常不爽。 设置如…

Kubernetes 的用法和解析 -- 2

一.集群常用指令 1.1 基础控制指令 # 查看对应资源: 状态 $ kubectl get <SOURCE_NAME> -n <NAMESPACE> -o wide [rootkube-master ~]# kubectl get pods -n kuboard -o wide# 查看对应资源: 事件信息 $ kubectl describe <SOURCE_NAME> <SOURCE_NAME_R…

maven工程中读取resources中的资源文件

maven工程的代码布局如下&#xff1a;在resources下面有一个资源文件test.properties&#xff0c;现在的目标要在Java代码中读取该资源文件中的内容。 test.properties资源文件的内容如下&#xff1a; Java代码如下&#xff1a; package com.thb;import java.io.BufferedR…

vue 在for循环中设置ref并获取$refs

一、单循环动态设置ref 1.设置&#xff1a;【:ref“‘XXX’ index”】XXX -->自定义ref的名字 2.获取&#xff1a;let ref eval(‘this.$refs.XXX’ index)[0] 3.示例&#xff1a; 代码如下所示 <template><div class"ref_test"><div v-fo…

Python封装ADB获取Android设备wifi地址的方法

一、代码实现 import subprocessimport re import subprocessfrom common.logger import loggerdef get_device_wifi_address(udid):ip_command fadb -s {udid} shell ip routeresult subprocess.check_output(ip_command, shellTrue, textTrue)# 提取 IP 地址ip_address r…

ubuntu安装详细步骤

一&#xff0c;先下载vmware 1&#xff0c;第一步打开上面链接 下载网址 : https://www.vmware.com/products/workstation-pro/wo rkstation-pro-evaluation.html 许可证 JU090-6039P-08409-8J0QH-2YR7F ZF3R0-FHED2-M80TY-8QYGC-NPKYF FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6 ZC3T…

初识JVM底层知识,一文读懂JVM知识文集。

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

网络基础2

三层交换机&#xff1a;路由器交换机 创建vlan 配置0/0/2串口为vlan2&#xff0c;3接口为vlan3 三层交换机的串口是不能直接配置地址&#xff0c;要在虚拟接口&#xff08;vlan的接口&#xff09;配置IP地址 配置vlan1的虚拟接口 此时vlan1的主机能ping通三层交换机串口1的地址…

PCL点云处理之可视化选点计算间距 (二百二十四)

PCL点云处理之可视化选点计算间距 (二百二十四) 一、算法介绍二、算法实现1.代码一、算法介绍 读取点云,使用PCL将其可视化,在窗口点云中鼠标点击两个点,输出他俩的坐标和之间的距离,效果如下所示: 注意:PCL点选方法为:按下 “Shift” 键并点击鼠标左键来选择点 二…

我的NPI项目之Android 安全系列 -- 先认识一下ST33Jxxx

目前接触过的高通平台都没有集成单独的SE&#xff0c;安全运行环境都是高通自家的TEE&#xff0c;又言Trustzone。高通Keystore功能也是依赖TEE来实现的。那么&#xff0c;如果另外集成SE&#xff0c;那么高通的Keystore如何集成&#xff1f;TEE部分要如何配置&#xff1f; 最近…

UI5 development on VS Studio code

今天来分享一下如何VS studio code 上UI5开发环境的搭建 1.安装Node.js 路径&#xff1a;Node.js 因安装步骤较为简单&#xff0c;故不在此赘述。 验证方法如下&#xff1a;WINR-->CMD--->node --version 出现下图即可 2. 安装UI5 CLI (为了后面我们方便使用UI5 的命令…

【深入浅出SpringCloud源码探究】「Netflix系列之Ribbon+Fegin」微服务化的负载均衡组件源码剖析与实战开发全流程(Ribbon篇)

微服务化的负载均衡组件源码剖析与实战开发全流程 什么是负载均衡负载均衡的种类服务器端负载均衡&#xff08;S-LB&#xff09;客户端负载均衡&#xff08;C-LB&#xff09;注解LoadBalancedLoadBalancerAutoConfiguration类LoadBalancerClient类源码分析 ServiceInstanceChoo…