数据冒险、控制冒险、结构冒险
计算机组成原理
数据冒险、控制冒险、结构冒险
对所有用户(所有程序员)可见:PSW、PC、通用寄存器
- PSW(条件转移需要用到,程序员使用CMP指令的时候也需要用到所以是对用户可见)
- PC(跳转指令需要使用PC+n ,所以对用户可见)
- 通用寄存器(程序员写指令可以使用到通用寄存器R)
- 通用寄存器:包括(数据寄存器、地址指针寄存器、变址寄存器)
对所有用户(所有程序员)透明:MAR,MDR,IR,Cache, 微程序结构和功能,控制存储器,锁存器/暂存器
- (这些都是辅助CPU工作,所以是透明的)
- 微指令寄存器属于微程序控制器的组成部分,它是硬件设计者的任务。
- 控制存储器:存放微指令即控制信号
- 锁存器/暂存器:流水线间存储数据
- MAR:存储器地址寄存器
- MDR:存储器数据寄存器
1.结构冒险
结构冒险=结构冲突=资源冲突
load指令是取数指令;Store指令是存数指令
运算类指令
算术运算指令
- 加法指令
- 用于实现两个操作数的相加操作。例如在 RISC-V 指令集中有
add
指令,它可以将两个寄存器中的值相加,并将结果存放在一个寄存器中。 - 格式可能为
add rd, rs1, rs2
,其中rd
是目的寄存器,用于存放结果,rs1
和rs2
是源寄存器,提供操作数。
- 用于实现两个操作数的相加操作。例如在 RISC-V 指令集中有
- 减法指令
- 实现两个操作数的相减操作。如
sub
指令,它从rs1
寄存器的值中减去rs2
寄存器的值,并将结果存放在rd
寄存器中。
- 实现两个操作数的相减操作。如
- 乘法指令
- 完成两个操作数的乘法运算。不同的指令集可能有不同的乘法指令形式。例如,有些指令集可能有
mul
指令用于无符号数乘法,imul
指令用于有符号数乘法等。
- 完成两个操作数的乘法运算。不同的指令集可能有不同的乘法指令形式。例如,有些指令集可能有
- 除法指令
- 用于执行除法操作。像
div
指令用于无符号数除法,idiv
指令用于有符号数除法。在执行除法指令时,通常会涉及到商和余数的处理。
- 用于执行除法操作。像
逻辑运算指令
- 与指令
- 实现按位与操作。例如
and
指令,它对rs1
和rs2
寄存器中的对应位进行与操作,并将结果存放在rd
寄存器中。
- 实现按位与操作。例如
- 或指令
- 执行按位或操作。如
or
指令,将rs1
和rs2
寄存器中的对应位进行或操作,结果存于rd
寄存器。
- 执行按位或操作。如
- 非指令
- 也叫取反指令,对一个操作数的每一位进行取反操作。在一些指令集中可能有
not
指令来实现这个功能。
- 也叫取反指令,对一个操作数的每一位进行取反操作。在一些指令集中可能有
- 异或指令
- 进行按位异或操作。例如
xor
指令,对rs1
和rs2
寄存器中的对应位进行异或操作,结果放在rd
寄存器中。
- 进行按位异或操作。例如
移位运算指令
- 逻辑左移指令
- 将一个操作数的所有位向左移动指定的位数,右边空出的位用 0 填充。例如
shl
指令。
- 将一个操作数的所有位向左移动指定的位数,右边空出的位用 0 填充。例如
- 逻辑右移指令
- 把一个操作数的所有位向右移动指定的位数,左边空出的位用 0 填充。比如
shr
指令。
- 把一个操作数的所有位向右移动指定的位数,左边空出的位用 0 填充。比如
- 算术右移指令
- 对于有符号数,将其所有位向右移动指定的位数,左边空出的位用符号位填充。通常有
sar
指令来实现。
- 对于有符号数,将其所有位向右移动指定的位数,左边空出的位用符号位填充。通常有
2.数据冒险的分析和处理
3.控制冒险的分析和处理
注意:修改PC只在M阶段
4.采用转发技术
Load-use:load指令在M(访存阶段才会产生结果),故采用转发旁路已经不能解决数据冒险。
相关文章:

数据冒险、控制冒险、结构冒险
计算机组成原理 数据冒险、控制冒险、结构冒险 对所有用户(所有程序员)可见:PSW、PC、通用寄存器 PSW(条件转移需要用到,程序员使用CMP指令的时候也需要用到所以是对用户可见)PC(跳转指令需要…...

TCA9555芯片手册解读(6)
接前一篇文章:TCA9555芯片手册解读(5) 二、详述 7. 上电复位 当电源(从0V)施加到VCC时,内部通电复位将TCA9555保持在复位状态,直到VCC达到VPOR。此时,重启条件被释放,T…...
NodeJs-fs模块
fs 全称为 file system ,称之为 文件系统 ,是 Node.js 中的 内置模块, fs模块可以实现与硬盘的交互,例如文件的创建、删除、重命名、移动,内容的写入读取等以及文件夹相关操作 写入文件 异步写入 // 导入fs模块const f…...

Transformer: Attention Is All You Need (2017) 翻译
论文:Attention Is All You Need 下载地址如下: download: Transformer Attention Is All you need Attention Is All You Need 中文 《Attention Is All You Need》是《Transformer》模型的开创性论文,提出了一种全新的基于注意力机制的架构…...

【记录】Django解决与VUE跨域问题
1 梗概 这里记录Django与VUE的跨域问题解决方法,主要修改内容是在 Django 中。当然其他的前端项目 Django 也可以这样处理。 2 安装辅助包 pip install django-cors-headers3 配置 settings.py INSTALLED_APPS [ # ... corsheaders, # ... ] 为了响应…...
Java 常见Exception异常解决方法
在Java编程中,异常处理是确保程序稳定性和健壮性的重要部分。了解常见的异常类型及其解决方法,可以帮助你编写更加健壮的代码。以下是一些常见的Java异常及其解决方法: NullPointerException:空指针异常 原因:尝试访问…...
东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南
东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 文章目录 东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 一 TongWeb V7二 Spring Boot JAR 配置文件三 修改 maven 依赖四 docker compose 启动项目五 查看 docker 信息 本文详细讲解了如何在 Docker 环境中…...

TIM输入捕获---STM
一、简介 IC输入捕获 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存在CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模…...

【笔记】架构上篇Day6 法则四:为什么要顺应技术的生命周期?
法则四:为什么要顺应技术的生命周期? 简介:包含模块一 架构师的六大生存法则-法则四:为什么要顺应技术的生命周期?&法则四:架构设计中怎么判断和利用技术趋势? 2024-08-29 17:30:07 你好&am…...
MSF(Metasploit Framework)
渗透测试中MSF是一个非常强大的工具,可以用来验证系统漏洞、执行攻击以及开发自定义的漏洞利用代码。以下是使用MSF进行渗透测试的基本步骤: 1.启动MSF 启动MSF控制台。 msfconsole2. 搜索漏洞 在MSF中搜索已知漏洞。 search <vulnerability nam…...

Python中的OpenCV详解
文章目录 Python中的OpenCV详解一、引言二、OpenCV基础操作1、OpenCV简介2、安装OpenCV3、图像读取与显示 三、图像处理技术1、边缘检测2、滤波技术 四、使用示例1、模板匹配 五、总结 Python中的OpenCV详解 一、引言 在当今数字化社会中,图像处理和计算机视觉技术…...
IMX6ULL开发板学习嵌入式技术过程中为了测试本地网络是否正常而常用的Ping命令
Windows ip:192.168.5.10 Ubuntu ip:192.168.5.11 开发板 ip:192.168.5.9 最常用的 最常用的两个是开发板和Ubuntu的互ping 开发板→Ubuntu ping 192.168.5.11Ubuntu→开发板 ping 192.168.5.9完整的如下 Windows→Ubuntu ping 192.16…...

Blue Ocean 在Jenkins上创建Pipeline使用详解
BlueOcean是Jenkins的一个插件,它提供了一套可视化操作界面来帮助用户创建、编辑Pipeline任务。以下是对BlueOcean中Pipeline操作的详细解释: 一、安装与启动BlueOcean 安装:在Jenkins的“系统管理”->“插件管理”->“可选插件”中搜索“BlueOcean”,然后点击“Ins…...

2024 年最新前端ES-Module模块化、webpack打包工具详细教程(更新中)
模块化概述 什么是模块?模块是一个封装了特定功能的代码块,可以独立开发、测试和维护。模块通过导出(export)和导入(import)与其他模块通信,保持内部细节的封装。 前端 JavaScript 模块化是指…...

photoshop的2个形状-箭头
有时候用ps画一些教程类图文,需要用到箭头. 另外自己画了一个镂空的长方形和正方形 形状的路径一般在Custom Shapes文件夹内 例如 E:\photoshopCS4\Adobe Photoshop CS4\Presets\Custom Shapes...

【经验分享】搭建本地训练环境知识点及方法
最近忙于备考没关注,有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源,但我以交流、交换为主,笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟,为了避免更多人花没必要的钱,所以决定公…...

AI知识-多模态(Multimodal)
摘要 本文将探讨多模态(Multimodal)的概念,包括其通俗理解、技术原理、应用场景,以及进行总结。我们将通过一个简要的介绍来了解多模态技术,并深入探讨其在人工智能和机器学习领域的重要性。 通俗理解 多模态&#x…...
代码随想录 leetcode-数据结构刷题笔记
文章目录 一、数组1.1 二分查找 1.1.1 二分查找 1.1.2 搜索插入位置1.1.3 排序数组中查找元素第一和最后一个位置1.1.4 x的平方根 1.1.5 有效的完全平方数 1.2 快慢指针 1.2.1 移除元素 1.2.2 删除有序数组中的重复项 1.2.3 移动0 1.2.4 比较含退格的字符串 1.2.5 有序数组的平…...

Oracle最佳实践-优化硬解析
前段时间参加oracle CAB,oracle高级服务部门做了一个数据库最佳实践的报告,其中就有一项就是解决未使用绑定变量但执行次数很多的SQL; 对于一个数据库来说如果不知道该如何优化,那么最简单最有效的优化就是减少硬解析,…...

Windows中将springboot项目运行到docker的容器中
0,先打包好项目,再启动docker 1,在Java项目根目录下创建一个名为Dockerfile的文件(没有扩展名),并添加以下内容。 # 使用OpenJDK的基础镜像 FROM openjdk:8-jdk-alpine# 设置工作目录 WORKDIR /app# 将项…...
for AC500 PLCs 3ADR025003M9903的安全说明
1安全说明 必须遵守特殊的环境条件(例如,由于爆炸性物质、重污染或腐蚀影响的危险区域)。必须在指定的技术数据和系统数据范围内处理和操作设备。该装置不含可维修部件,不得打开。除非另有规定,否则操作过程中必须关闭可拆卸的盖子。拒绝对不…...
Java项目中常用的中间件及其高频问题避坑
Java项目中常用的中间件及其高频问题避坑如下: 一、常用中间件分类及作用 1. 消息队列中间件 作用:解耦系统、异步通信、削峰填谷。代表产品: Kafka:高吞吐量流处理,适合日志收集、实时分析。RocketMQ:金融级可靠性,支持事务消…...

【Survival Analysis】【机器学习】【3】 SHAP可解釋 AI
前言: SHAP(SHapley Additive explanations) 是一种基于博弈论的可解释工具。 现在很多高分的 论文里面都会带这种基于SHAP 分析的图,用于评估机器学习模型中特征对预测结果的贡献度. pip install -i https://pypi.tuna.tsinghua.edu.cn/sim…...

免费插件集-illustrator插件-Ai插件-随机填色
文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件,加强illustrator使用人员工作效率,实现路径随机填色。首先从下载网址下载这款插件https://download.csdn.net/download/m0_67316550/87890501&#…...

GPUCUDA 发展编年史:从 3D 渲染到 AI 大模型时代(上)
目录 文章目录 目录1960s~1999:GPU 的诞生:光栅化(Rasterization)3D 渲染算法的硬件化实现之路 学术界算法研究历程工业界产品研发历程光栅化技术原理光栅化技术的软件实现:OpenGL 3D 渲染管线设计 1. 顶点处理&…...

PDF 转 Markdown
本地可部署的模型 Marker Marker 快速准确地将文档转换为 markdown、JSON 和 HTML。 转换所有语言的 PDF、图像、PPTX、DOCX、XLSX、HTML、EPUB 文件在给定 JSON 架构 (beta) 的情况下进行结构化提取设置表格、表单、方程式、内联数学、链接、引用和代…...

使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现
使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现(提供工作流) 摘要:本文基于一段关于使用 Coze 平台构建抖音爆火书单视频的详细讲解,总结出一套完整的 AI 视频自动化制作流程。内容涵盖从思路拆解、节点配…...

【Kubernetes】K8s 之 ETCD - 恢复备份
ETCD 是一个高可用的分布式键值存储,常用于存储配置信息和服务发现等。当系统出现故障或数据损坏时,能够快速恢复成先前的状态是维护系统稳定性的关键。ETCD 提供了备份和恢复功能,以确保数据持久性和可靠性,一起来看看如何操作吧…...

PySide6 GUI 学习笔记——常用类及控件使用方法(单行文本控件QLineEdit)
文章目录 QLineEdit 介绍常用方法QLineEdit.EchoMode 取值光标相关方法文本选择方法输入格式化字符(Input Mask)常用信号QLineEdit 实例 QLineEdit 介绍 QLineEdit 是 PySide6(Qt for Python)中用于单行文本输入的控件。它支持文本…...
JAVA获取ES连接并查询所有数据
我们的项目要获取es连接,新版本和旧版本有不小的区别,在8.17.0版本使用的是 ElasticsearchClient <dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.17…...