当前位置: 首页 > news >正文

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也随着这个比较电路一直送下去;
  • 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真的取消了助记符

助记符是个好东西&#xff0c;记住了非常的方便。这几天升级到WINDOWS11之后&#xff0c;发现助记符被全面取消&#xff01;真是难以置信&#xff01; 现在WIN11越来越象MAC&#xff0c;MAC好用吗&#xff1f;当然不好用。 其实WIN11完全可以开发两套界面&#xff0c;各取所需。…...

使用VSC从零开始Vue.js——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务3:数据可视化

使用Visual Studio Code&#xff08;VSC&#xff09;进行Vue开发非常方便&#xff0c;下面是一些基本步骤&#xff1a; 一、下载和安装Vue 官网下载地址Download | Node.js Vue.js是基于Node.js的&#xff0c;所以首先需要安装Node.js&#xff0c;官网下载地址&#xff1a;No…...

企业直聘招聘人才求职系统招聘会小程序系统源码

技术栈&#xff1a; 端 原生小程序开发 后端php7.2 数据库mysql5.6 主要功能&#xff1a; 企业入住 ,企业直聘 个人实名认证&#xff0c;人才求职 发布线上招聘会 企业招聘邀请 个人简历置顶 刷新 浏览足迹浏览 附近 招聘信息查看...

大型语言模型:SBERT — Sentence-BERT

slavahead 一、介绍 Transformer 在 NLP 方面取得了进化进步&#xff0c;这已经不是什么秘密了。基于转换器&#xff0c;许多其他机器学习模型已经发展起来。其中之一是BERT&#xff0c;它主要由几个堆叠的变压器编码器组成。除了用于情感分析或问答等一系列不同的问题外&#…...

高效编写软件测试报告的关键技巧

引言&#xff1a; 软件测试报告是测试团队与开发团队之间沟通的重要工具&#xff0c;它记录了测试过程中的发现、问题和建议。一个清晰、准确、高效的软件测试报告可以帮助开发团队更好地理解测试结果&#xff0c;并及时修复问题。本文将介绍一些高效编写软件测试报告的关键技巧…...

编写CI/CD自动化部署脚本

编写CI/CD自动化部署脚本 什么是CI/CD CI/CD 是现代软件开发过程中的关键实践&#xff0c;它包含两个缩写&#xff1a; CI&#xff0c;或者持续集成&#xff08;Continuous Integration&#xff09;CD&#xff0c;可以指持续交付&#xff08;Continuous Delivery&#xff09…...

Pandas实践_分类数据

文章目录 一、cat对象1.cat对象的属性2.类别的增加、删除和修改 二、有序分类1.序的建立2.排序和比较 三、区间类别1.利用cut和qcut进行区间构造2.一般区间的构造3.区间的属性与方法 一、cat对象 1.cat对象的属性 在pandas中提供了category类型&#xff0c;使用户能够处理分类…...

git的使用思维导图

源文件在github主页&#xff1a;study_collection/cpp学习/git at main stu-yzZ/study_collection (github.com)...

Qt 软件界面点击QCombBox控件,造成整个界面移位

Qt 软件界面点击QCombBox控件&#xff0c;造成整个界面移位 最近项目中&#xff0c;遇到了一个问题&#xff0c;在绘制界面的时候&#xff0c;使用了QCombBox控件&#xff0c;在点击QCombBox控件下拉中的item时&#xff0c;会造成整个界面移位的现象。 我重写了下面三个事件函…...

AI Native工程化:百度App AI互动技术实践

作者 | GodStart 导读 随着AI浪潮的兴起&#xff0c;越来越多的应用都在利用大模型重构业务形态&#xff0c;在设计和优化Prompt的过程中&#xff0c;我们发现整个Prompt测评和优化周期非常长&#xff0c;因此&#xff0c;我们提出了一种Prompt生成、评估与迭代的一体化解决方案…...

DDPM推导笔记

各位佬看文章之前&#xff0c;可以先去看看这个视频&#xff0c;并给这位up主点赞投币&#xff0c;这位佬讲解的太好了&#xff1a;大白话AI 1.前置知识的学习 1.1 正态分布特性 ​ &#xff08;1&#xff09;正态分布的概率密度函数 f ( x ) 1 2 π σ e − ( x − μ ) …...

【C#/Java】【小白必看】不要只会读写文本文件了!对象序列化助你提高效率

【C#/Java】【小白必看】不要只会读写文本文件了&#xff01;对象序列化助你提高效率 ​ 在编程的世界里&#xff0c;文件的读写操作是我们经常面对的任务之一。 ​ 当我们只涉及简单的文本文件时&#xff0c;这个任务似乎并不复杂。但是&#xff0c;当我们处理更为复杂的类对…...

排障启示录-无线终端信号弱

现象&#xff1a;无线终端显示信号弱 信息收集&#xff1a; AP的实际发射功率低。外置天线型AP&#xff0c;天线松动或者没插天线现场环境问题&#xff0c;信号穿透衰减终端接入远端AP终端个体问题 排查步骤&#xff1a; 1、AP的发射功率低 查看AP的射频功率&#xff0c;判…...

gem5 RubyPort: mem_request_port作用与连接 simple-MI_example.py

简介 回答这个问题&#xff1a;RubyPort的口下&#xff0c;一共定义了六个口&#xff0c;分别是mem_request_port&#xff0c;mem_response_port&#xff0c;pio_request_port&#xff0c;pio_response_port&#xff0c;in_ports, interrupt_out_ports&#xff0c;他们分别有什…...

无人机支持的空中无蜂窝大规模MIMO系统中上行链路分布式检测

无人机支持的空中无蜂窝大规模MIMO系统中上行链路分布式检测 无人机支持的空中无蜂窝大规模MIMO系统中上行链路分布式检测介绍题目一. 背景&#xff08;解决的问题&#xff09;二. 系统模型信道模型信道系数进行标准化 信道估计 和 数据传输信道估计上行数据传输 三. 具体的流程…...

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络

文献速递&#xff1a;生成对抗网络医学影像中的应用—— CG-3DSRGAN&#xff1a;用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络&#xff08;Generative adversarial networks, GANs&#xff09;在医学影像中的应用。文献…...

前端验收测试驱动开发

我们听说过很多关于测试驱动开发&#xff08;TDD&#xff09;的内容。那么什么是ATDD&#xff1f; ATDD代表验收测试驱动开发&#xff0c;这是一种定义验收标准并创建自动化测试来验证是否满足这些标准的软件开发方法。ATDD是一种协作方法&#xff0c;涉及客户、开发人员和测试…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...