issue阶段的选择电路的实现
- 1-of-M的仲裁电路
- 为什么要实现oldest-first 功能的仲裁呢?
- 这是考虑到越是旧的指令,和它存在相关性的指令也就越多,因此优先执行最旧的指令,则可以唤醒更多的指令,能够有效地提高处理器执行指令的并行度,
- 而且最旧的指令还占据着处理器中其他的资源,例如重排序缓存(ROB)和Store Buffer等部件,越早地执行这些旧的指令,就可以越早地释放这些硬件资源,供后面的指令使用。
- 年龄信息的追踪;
- 年龄信息指的是进入流水线的先后顺序;
- in-order处理器,先执行的比后执行的要老;
- ort-of-order处理器,进入issue 队列后,顺序被打乱了,但是还有一个地方记录着,即ROB;可以使用ROB_IDX,作为这条指令的年龄信息;
- 但是只直接使用rob_idx,无法准确表达年龄信息;
- 解决方式:增加1bit, 即position bit;


- 位置值(position bit)相同时,ROB的地址值越小,对应的指令越旧;
- 位置值(position bit)不同时,ROB的地址值越大,对应的指令越旧。
- 年龄信息指的是进入流水线的先后顺序;
- 1-of-M的仲裁电路示意图:

- 上述的示意图中,需要解决两个问题:
- 如何屏蔽掉发射队列中那些还没有准备好的指令,使这些指令的年龄信息不会对仲裁电路的结果产生影响;
- 通过rdy bit来解决;
- 如何根据仲裁电路挑选出的年龄值,在发射队列中找到对应的指令?
- 将issue queue idx也随着这个比较电路一直送下去;
- 如何屏蔽掉发射队列中那些还没有准备好的指令,使这些指令的年龄信息不会对仲裁电路的结果产生影响;
- 为什么要实现oldest-first 功能的仲裁呢?
- N-of-M的仲裁电路
- 几个 FU共用一个发射队列,这个发射队列需要在一个周期内为每个 FU 都选择出一条指令,这样就要求它有一个 N-of-M 的仲裁电路;

- 折中方案如上:
- 图8.30中存在四个FU: ALU0、ALU1、Mul/Div0和Mul/Div1,它们共用一个发射队列
- 发射队列的容量为M,每个FU都有一个专属的 1-of-M 的仲裁电路。
- 当指令被写到发射队列中的某个表项时,根据这条指令的类型,将这条指令分配给一个对应的FU
- 如果存在功能相同的FU,则会按照轮流或者随机的顺序进行分配,这个分配的过程本质上可以通过一个多路分配器(demultiplexer)来实现,它将每个表项的ready信号根据指令的类型分配给不同的仲裁电路;
- 因为发射队列中的每个表项都有可能存放不同类型的指令,所以每个FU 的仲裁电路都会有M 个输入,执行完整的 1-of-M 的仲裁过程,这样,整个 N-of-M 的仲裁电路的延迟就只有1-of-M的仲裁电路的延迟了;
- 实际的实现方案:
- 将各种运算类型进行合并,使得几个运算类型共用一个发射队列;
- 将加减法、逻辑运算和移位运算合在一个FU中,这就传统意义上的ALU,它们共用一个发射队列;
- 将整数的乘法和除法操作合并在一起;
- 将访问存储器和访问协处理器合并在一起;
- 将所有的浮点运算合并在一起;
- 这就形成了四个比较大的FU。
- 当然,这只是最简单的情况,在实际的设计中,需要对不同的指令集,甚至是不同的程序进行分析,才能对FU进行合理的归类,得到相对优化的分配结果。
- 将各种运算类型进行合并,使得几个运算类型共用一个发射队列;
相关文章:
issue阶段的选择电路的实现
1-of-M的仲裁电路 为什么要实现oldest-first 功能的仲裁呢? 这是考虑到越是旧的指令,和它存在相关性的指令也就越多,因此优先执行最旧的指令,则可以唤醒更多的指令,能够有效地提高处理器执行指令的并行度,而且最旧的指…...
BearPi Std 板从入门到放弃 - 后天篇(3)(ESP8266透传点灯)
简介 电脑搭建一个TCP Server, ESP8266 串口设置好透传模式, 再由TCP Server发送指令控制灯的亮灭; 开灯指令: led_on回车 ; 关灯指令: led_off回车 主芯片: STM32L431RCT6 LED : PC13 \ 推挽输出即可 \ 高电平点亮 串口: Usart1 / LPUART E…...
【Linux】macOS下使用scp命令编写脚本上传文件至服务器
使用时需要输入服务器密码 #!/bin/bash# 检查传递给脚本的参数数量 if [ "$#" -ne 2 ]; thenecho "Usage: $0 <本地文件路径> <服务器文件夹路径>"exit 1 fi# 接收命令行参数 local_file"$1" remote_path"$2"# 定义远程服…...
难以置信:WINDOWS11真的取消了助记符
助记符是个好东西,记住了非常的方便。这几天升级到WINDOWS11之后,发现助记符被全面取消!真是难以置信! 现在WIN11越来越象MAC,MAC好用吗?当然不好用。 其实WIN11完全可以开发两套界面,各取所需。…...
使用VSC从零开始Vue.js——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务3:数据可视化
使用Visual Studio Code(VSC)进行Vue开发非常方便,下面是一些基本步骤: 一、下载和安装Vue 官网下载地址Download | Node.js Vue.js是基于Node.js的,所以首先需要安装Node.js,官网下载地址:No…...
企业直聘招聘人才求职系统招聘会小程序系统源码
技术栈: 端 原生小程序开发 后端php7.2 数据库mysql5.6 主要功能: 企业入住 ,企业直聘 个人实名认证,人才求职 发布线上招聘会 企业招聘邀请 个人简历置顶 刷新 浏览足迹浏览 附近 招聘信息查看...
大型语言模型:SBERT — Sentence-BERT
slavahead 一、介绍 Transformer 在 NLP 方面取得了进化进步,这已经不是什么秘密了。基于转换器,许多其他机器学习模型已经发展起来。其中之一是BERT,它主要由几个堆叠的变压器编码器组成。除了用于情感分析或问答等一系列不同的问题外&#…...
高效编写软件测试报告的关键技巧
引言: 软件测试报告是测试团队与开发团队之间沟通的重要工具,它记录了测试过程中的发现、问题和建议。一个清晰、准确、高效的软件测试报告可以帮助开发团队更好地理解测试结果,并及时修复问题。本文将介绍一些高效编写软件测试报告的关键技巧…...
编写CI/CD自动化部署脚本
编写CI/CD自动化部署脚本 什么是CI/CD CI/CD 是现代软件开发过程中的关键实践,它包含两个缩写: CI,或者持续集成(Continuous Integration)CD,可以指持续交付(Continuous Delivery)…...
Pandas实践_分类数据
文章目录 一、cat对象1.cat对象的属性2.类别的增加、删除和修改 二、有序分类1.序的建立2.排序和比较 三、区间类别1.利用cut和qcut进行区间构造2.一般区间的构造3.区间的属性与方法 一、cat对象 1.cat对象的属性 在pandas中提供了category类型,使用户能够处理分类…...
git的使用思维导图
源文件在github主页:study_collection/cpp学习/git at main stu-yzZ/study_collection (github.com)...
Qt 软件界面点击QCombBox控件,造成整个界面移位
Qt 软件界面点击QCombBox控件,造成整个界面移位 最近项目中,遇到了一个问题,在绘制界面的时候,使用了QCombBox控件,在点击QCombBox控件下拉中的item时,会造成整个界面移位的现象。 我重写了下面三个事件函…...
AI Native工程化:百度App AI互动技术实践
作者 | GodStart 导读 随着AI浪潮的兴起,越来越多的应用都在利用大模型重构业务形态,在设计和优化Prompt的过程中,我们发现整个Prompt测评和优化周期非常长,因此,我们提出了一种Prompt生成、评估与迭代的一体化解决方案…...
DDPM推导笔记
各位佬看文章之前,可以先去看看这个视频,并给这位up主点赞投币,这位佬讲解的太好了:大白话AI 1.前置知识的学习 1.1 正态分布特性 (1)正态分布的概率密度函数 f ( x ) 1 2 π σ e − ( x − μ ) …...
【C#/Java】【小白必看】不要只会读写文本文件了!对象序列化助你提高效率
【C#/Java】【小白必看】不要只会读写文本文件了!对象序列化助你提高效率 在编程的世界里,文件的读写操作是我们经常面对的任务之一。 当我们只涉及简单的文本文件时,这个任务似乎并不复杂。但是,当我们处理更为复杂的类对…...
排障启示录-无线终端信号弱
现象:无线终端显示信号弱 信息收集: AP的实际发射功率低。外置天线型AP,天线松动或者没插天线现场环境问题,信号穿透衰减终端接入远端AP终端个体问题 排查步骤: 1、AP的发射功率低 查看AP的射频功率,判…...
gem5 RubyPort: mem_request_port作用与连接 simple-MI_example.py
简介 回答这个问题:RubyPort的口下,一共定义了六个口,分别是mem_request_port,mem_response_port,pio_request_port,pio_response_port,in_ports, interrupt_out_ports,他们分别有什…...
无人机支持的空中无蜂窝大规模MIMO系统中上行链路分布式检测
无人机支持的空中无蜂窝大规模MIMO系统中上行链路分布式检测 无人机支持的空中无蜂窝大规模MIMO系统中上行链路分布式检测介绍题目一. 背景(解决的问题)二. 系统模型信道模型信道系数进行标准化 信道估计 和 数据传输信道估计上行数据传输 三. 具体的流程…...
文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络
文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络(Generative adversarial networks, GANs)在医学影像中的应用。文献…...
前端验收测试驱动开发
我们听说过很多关于测试驱动开发(TDD)的内容。那么什么是ATDD? ATDD代表验收测试驱动开发,这是一种定义验收标准并创建自动化测试来验证是否满足这些标准的软件开发方法。ATDD是一种协作方法,涉及客户、开发人员和测试…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...

