CPU指令融合技术概述

news2024/11/26 20:41:33

什么是指令融合?

  • 某些指令,例如add $3,$2,0, 只会使用rd/rs两个字段,但是这条指令却占用了全部32个bit, 这样会使得代码密度不高,指令域的有效利用率不高;
  • 这样,在实现某些功能的情况下,会使得CPU花费更多的时钟周期来处理;
  • 因此,引入了指令融合技术:
    • 指的是,将符合融合条件的相邻两条,或者多条指令,进行合并;
    • 一条融合指令的执行,相当于多条被融合的指令同时发射,执行;
    • 这样可以使得CPU花费更少的时间来完成相同的工作;
    • 对于指令来讲,也可以提升指令域段的有效利用率;
  • 根据宏融合的基本思想,如果某条指令的空闲指令域足够多,足以容纳另一条指令的所有有效指令域,则可以将这两条或多条相邻的指令融合.
    • 例如,add 的有效寄存器索引是 rs、rt 和 rd,sa 闲置,而jr只有rs有效,因此可以将这两条指令融合.

指令融合原理简介

        为了实现宏融合,fetch阶段预取到指令后,对指令进行扫描,如果连续两条指令的全部有效指令域,经优化可以由单独一条指令容纳,则将这两条指令融合成一条“融合指令”。

        在判断指令是否能够融合时会碰到两个问题:

  • 已有指令的空闲指令域不多甚至没有;
  • 相邻的两条指令之间有数据依赖关系;

 MIPS指令融合举例

addsll_v1

        从图3可以看到,存在WAW (Write AfterWrite)冲突,并且融合条件要求 rt 与rd一样,限制太紧,实际意义不大。

        一条指令所涉及到的寄存器个数,MIPS通常是3个,Intel X86 通常是2个MIPS:

  • add $rl, $r2, $r3; r3=rl+r2;
  • X86: add Sr1, $r2;rl=rl+r2;

        各有好处,但是当MIPS指令涉及到相同寄存器时,如add, $r1, $r1, $r1,就严重浪费用于寄存器索引的指令域了,而指令融合关键在于提高指令域的利用率,为此对MIPS指令作第一次扩展.

        所以,下面讲的融合方式,是在对基础的指令集,进行扩展之后,才能使用更好的一些指令融合技术;

addsll_v2

LWSLL2

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

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

相关文章

Java创建线程池和线程池的七个核心参数

线程池的工作流程是:当一个任务被提交到线程池时,线程池会根据当前的线程数量和工作队列的状态来决定如何处理这个任务。如果当前运行的线程数量小于corePoolSize,则创建新线程执行任务;如果大于等于corePoolSize,则将…

毕设开源 大数据电影数据分析与可视化系统(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要3 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师…

完全免费安卓远程安卓方案:FRP+ADB甲壳虫方案,远程手机不是问题。

引言 在当今这个数字化时代,无论是在个人项目还是商业应用中,能够从公网访问到内网设备的能力变得越来越重要,尤其是安卓终端设备,在必要的情况下,从安卓远程到安卓进行紧急指导救援是未来一种重要的趋势. 通过合理的…

Java - WebSocket

一、WebSocket 1.1、WebSocket概念 WebSocket是一种协议,用于在Web应用程序和服务器之间建立实时、双向的通信连接。它通过一个单一的TCP连接提供了持久化连接,这使得Web应用程序可以更加实时地传递数据。WebSocket协议最初由W3C开发,并于2…

3种常用的缓存读写策略详解

在详解3种常用的缓存读写之前,我们先要了解什么事缓存读写。 缓存读写是指在使用缓存技术时,对数据进行读取和更新的操作过程。缓存是一种用于提高系统性能和可扩展性的技术,通过减少对慢速存储(如数据库)的访问次数&…

CAN总线仲裁机制

文章目录 1、什么是CAN总线仲裁?2、仲裁机制3、仲裁过程 1、什么是CAN总线仲裁? CAN总线上的每个节点都能监测到总线上发送的数据,当总线空闲时每个节点都能够进行报文发送,多个节点同时发送报文时,最终由哪个节点来进…

中间件有哪些分类?

中间件的分类 中间件是位于操作系统和应用程序之间的软件,它提供了一系列服务来简化分布式系统中的应用程序开发和集成。中间件可以根据其功能和用途被分为不同的类别。以下是中间件的一些主要分类: 1. 通信处理(消息)中间件&am…

Sentinel 1.80(CVE-2021-44139)

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性 Report a Sentinel Security Vulnerability …

华为eNSP实验:以太网交换---MAC地址漂移防止与检测

一:MAC地址漂移 MAC地址漂移是一种网络攻击技术,它利用了网络设备(如交换机)的动态学习特性来改变网络流量的路径。这种攻击可能导致数据包被错误地转发到未经授权的设备上,从而造成信息泄露或拒绝服务攻击。为了防止…

ViirtualBox+Vagrant快速创建虚拟机,固定IP地址

ViirtualBoxVagrant配置虚拟机共分三步 1.ViirtualBox的安装 2.Vagrant的安装 3.VirtualBoxVagrant配置虚拟机 1.安装virtual Box 2.进入官网 下载 https://www.virtualbox.org/wiki/Downloads 下载对应版本 https://www.virtualbox.org/wiki/Download_Old_Builds_6_1 使用…

物联网中的远距离通信LoRa无线技术

LoRa(Long Range Radio)远距离无线传输技术是基于扩频调制技术的低功耗、远距离无线通信技术,采用扩频调制,通过将原始信号与一个伪随机序列进行编码,使得信号的带宽显著增加,从而在更宽的频谱上传输。这种…

《征服数据结构》并查集(DSU)

摘要: 1,并查集的介绍 2,并查集的查找 3,并查集的合并 1,并查集的介绍 并查集(Disjoint-set data structure,不交集数据结构)是用于处理一些不交集的合并以及查询问题,它是非常重要的一种数据结…

在 Qt 中实现可拖动的无边框 MainWindow 并设置圆角效果

在应用程序的界面设计中,很多时候我们希望窗口能够拥有更好的视觉效果,比如设置圆角以及去除默认的标题栏,使窗口看起来更加美观。此外,还需要支持用户通过鼠标拖动窗口。在本文中,我们将详细介绍如何在 Qt 中实现这些效果。 如图: 一、设置无边框窗口 Qt 提供了 Qt::F…

风格迁移-StyTr 2 : Image Style Transfer with Transformers

风格迁移-StyTr 2 : Image Style Transfer with Transformers 论文链接:Image Style Transfer with Transformers 源码链接:StyTR-2 文章目录 风格迁移-StyTr 2 : Image Style Transfer with TransformersStyTR架构图图像内容编码器内容感知位置编码&…

libaom 源码分析系列:svc_encoder_rtc.cc 文件

源码函数关系 文件功能:实现 AV1 svc 编码的 RTC 功能 demo文件位置:libaom/examples/svc_encoder_rtc.cc文件内函数关系图: 结构体 AppInput:svc_encoder_rtc.cc 所属 demo 的结构体,作为从命令行接受参数的结构体;AvxVideoWriter:输出视频写入结构体;aom_codec_enc_c…

服务器部署‌Traefik 实现子级域名路由服务(对外子域名80,路由对内大端口)

文章目录 1.‌Traefik安装2.启动nginx配置路由 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 前言,领导让我调研在线发布得…

Cocos Creator 原生Android项目打 aab 包,升级到Android14(API 34)

注意:打aab包的前提是需要配置对应gradle文件。这里我简单说下,我这边做的。 1.setting.gradle文件中配置 include ‘:asset_pack’ 。如下图 2.找到对应的 asset_pack 的 gradle文件,一定要改assetPack。如下图: deliveryType = “install-time” //PAD资源分发 安装时分…

LiveGBS流媒体平台GB/T28181常见问题-视频服务器有多个IP多个网段的时候如何配置摄像头下级平台接入多网段收流?

LiveGBS常见问题视频服务器有多个IP多个网段的时候如何配置摄像头下级平台接入多网段收流? 1、背景2、查看设备的出口IP3、默认收流地址配置4、其它网络设备收流配置5、搭建GB28181视频直播平台 1、背景 服务器部署的时候,可能有多个网卡多个网段。Live…

常见webshell后门查杀工具

文章目录 D盾百度webshell在线查杀河马webshellkiller长亭牧云微步在线云沙箱Web Shell DetectorVirusTotal D盾 D盾Webshell后门查杀工具由阿D开发,是一款免费且功能强大的Webshell查杀软件。它利用自行研发的代码分析引擎,能够高效、准确地检测并清除…

Ubuntu QT 交叉编译环境搭建

文章目录 下载安装qtCreatornot a valid identifier 的错误 安装g下载并安装交叉编译器下载交叉编译器安装交叉编译器 下载编译 ARM 的Qt平台源码配置arm的QT平台 下载安装qtCreator 去QT下载官网下载对应需要的QT软件。 这里下载5.12.96版本的 改变安装包权限,…