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

数据冒险、控制冒险、结构冒险

计算机组成原理
数据冒险、控制冒险、结构冒险
275894f57be259ae2abf96707ea4189

95f956581cd6a31b98849959b62d277

对所有用户(所有程序员)可见:PSW、PC、通用寄存器

  • PSW(条件转移需要用到,程序员使用CMP指令的时候也需要用到所以是对用户可见)
  • PC(跳转指令需要使用PC+n ,所以对用户可见)
  • 通用寄存器(程序员写指令可以使用到通用寄存器R)
    • 通用寄存器:包括(数据寄存器、地址指针寄存器、变址寄存器)

对所有用户(所有程序员)透明:MAR,MDR,IR,Cache, 微程序结构和功能,控制存储器,锁存器/暂存器

  • (这些都是辅助CPU工作,所以是透明的)
  • 微指令寄存器属于微程序控制器的组成部分,它是硬件设计者的任务。
  • 控制存储器:存放微指令即控制信号
  • 锁存器/暂存器:流水线间存储数据
  • MAR:存储器地址寄存器
  • MDR:存储器数据寄存器

1.结构冒险

image-20241007180711371

结构冒险=结构冲突=资源冲突

image-20241007181613356

load指令是取数指令;Store指令是存数指令

运算类指令

算术运算指令

  1. 加法指令
    • 用于实现两个操作数的相加操作。例如在 RISC-V 指令集中有add指令,它可以将两个寄存器中的值相加,并将结果存放在一个寄存器中。
    • 格式可能为add rd, rs1, rs2,其中rd是目的寄存器,用于存放结果,rs1rs2是源寄存器,提供操作数。
  2. 减法指令
    • 实现两个操作数的相减操作。如sub指令,它从rs1寄存器的值中减去rs2寄存器的值,并将结果存放在rd寄存器中。
  3. 乘法指令
    • 完成两个操作数的乘法运算。不同的指令集可能有不同的乘法指令形式。例如,有些指令集可能有mul指令用于无符号数乘法,imul指令用于有符号数乘法等。
  4. 除法指令
    • 用于执行除法操作。像div指令用于无符号数除法,idiv指令用于有符号数除法。在执行除法指令时,通常会涉及到商和余数的处理。

逻辑运算指令

  1. 与指令
    • 实现按位与操作。例如and指令,它对rs1rs2寄存器中的对应位进行与操作,并将结果存放在rd寄存器中。
  2. 或指令
    • 执行按位或操作。如or指令,将rs1rs2寄存器中的对应位进行或操作,结果存于rd寄存器。
  3. 非指令
    • 也叫取反指令,对一个操作数的每一位进行取反操作。在一些指令集中可能有not指令来实现这个功能。
  4. 异或指令
    • 进行按位异或操作。例如xor指令,对rs1rs2寄存器中的对应位进行异或操作,结果放在rd寄存器中。

移位运算指令

  1. 逻辑左移指令
    • 将一个操作数的所有位向左移动指定的位数,右边空出的位用 0 填充。例如shl指令。
  2. 逻辑右移指令
    • 把一个操作数的所有位向右移动指定的位数,左边空出的位用 0 填充。比如shr指令。
  3. 算术右移指令
    • 对于有符号数,将其所有位向右移动指定的位数,左边空出的位用符号位填充。通常有sar指令来实现。

2.数据冒险的分析和处理

image-20241007215522119

3.控制冒险的分析和处理

注意:修改PC只在M阶段

image-20241007215829237

4.采用转发技术

6e49d171d5c4affb732ec96897257a5

Load-use:load指令在M(访存阶段才会产生结果),故采用转发旁路已经不能解决数据冒险。

image-20241127155848373

6cc7f81983778819f3f8c565ad63004

image-20241008210214469

image-20241008210232886

ca1113062707cde21fabff615e80d64

相关文章:

数据冒险、控制冒险、结构冒险

计算机组成原理 数据冒险、控制冒险、结构冒险 对所有用户(所有程序员)可见: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》模型的开创性论文,提出了一种全新的基于注意力机制的架构&#xf…...

【记录】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是一个非常强大的工具&#xff0c;可以用来验证系统漏洞、执行攻击以及开发自定义的漏洞利用代码。以下是使用MSF进行渗透测试的基本步骤&#xff1a; 1.启动MSF 启动MSF控制台。 msfconsole2. 搜索漏洞 在MSF中搜索已知漏洞。 search <vulnerability nam…...

Python中的OpenCV详解

文章目录 Python中的OpenCV详解一、引言二、OpenCV基础操作1、OpenCV简介2、安装OpenCV3、图像读取与显示 三、图像处理技术1、边缘检测2、滤波技术 四、使用示例1、模板匹配 五、总结 Python中的OpenCV详解 一、引言 在当今数字化社会中&#xff0c;图像处理和计算机视觉技术…...

IMX6ULL开发板学习嵌入式技术过程中为了测试本地网络是否正常而常用的Ping命令

Windows ip&#xff1a;192.168.5.10 Ubuntu ip&#xff1a;192.168.5.11 开发板 ip&#xff1a;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打包工具详细教程(更新中)

模块化概述 什么是模块&#xff1f;模块是一个封装了特定功能的代码块&#xff0c;可以独立开发、测试和维护。模块通过导出&#xff08;export&#xff09;和导入&#xff08;import&#xff09;与其他模块通信&#xff0c;保持内部细节的封装。 前端 JavaScript 模块化是指…...

photoshop的2个形状-箭头

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

【经验分享】搭建本地训练环境知识点及方法

最近忙于备考没关注&#xff0c;有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源&#xff0c;但我以交流、交换为主&#xff0c;笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟&#xff0c;为了避免更多人花没必要的钱&#xff0c;所以决定公…...

AI知识-多模态(Multimodal)

摘要 本文将探讨多模态&#xff08;Multimodal&#xff09;的概念&#xff0c;包括其通俗理解、技术原理、应用场景&#xff0c;以及进行总结。我们将通过一个简要的介绍来了解多模态技术&#xff0c;并深入探讨其在人工智能和机器学习领域的重要性。 通俗理解 多模态&#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&#xff0c;oracle高级服务部门做了一个数据库最佳实践的报告&#xff0c;其中就有一项就是解决未使用绑定变量但执行次数很多的SQL&#xff1b; 对于一个数据库来说如果不知道该如何优化&#xff0c;那么最简单最有效的优化就是减少硬解析&#xff0c;…...

Windows中将springboot项目运行到docker的容器中

0&#xff0c;先打包好项目&#xff0c;再启动docker 1&#xff0c;在Java项目根目录下创建一个名为Dockerfile的文件&#xff08;没有扩展名&#xff09;&#xff0c;并添加以下内容。 # 使用OpenJDK的基础镜像 FROM openjdk:8-jdk-alpine# 设置工作目录 WORKDIR /app# 将项…...

SpringBoot 缓存注解:@Cacheable/@CacheEvict 使用

在 SpringBoot 里做缓存&#xff0c;除了手动操作 RedisTem)plate&#xff0c;更优雅、更常用的方式就是Spring 自带的缓存注解。不用写重复的缓存逻辑&#xff0c;只需要在方法上加个注解&#xff0c;就能自动实现缓存读写&#xff0c;代码干净又好维护。本篇文章就来讲讲最核…...

PaddlePaddle-v3.3新手入门:Jupyter+SSH双模式,开箱即用深度学习环境

PaddlePaddle-v3.3新手入门&#xff1a;JupyterSSH双模式&#xff0c;开箱即用深度学习环境 1. 为什么选择PaddlePaddle-v3.3镜像 深度学习环境配置一直是AI开发者面临的第一道门槛。不同框架版本、CUDA版本、Python包依赖之间的兼容性问题常常让人头疼不已。PaddlePaddle-v3…...

Gemma 4推理增强版:专注数学与代码的QLoRA适配器

Gemma 4推理增强版&#xff1a;专注数学与代码的QLoRA适配器 【免费下载链接】gemma4-31b-Opus-4.6-reasoning 项目地址: https://ai.gitcode.com/hf_mirrors/kai-os/gemma4-31b-Opus-4.6-reasoning 导语&#xff1a;Google Gemma 4系列再添新成员&#xff0c;专注数学…...

OpenClaw+Qwen3-14B自媒体助手:全平台内容一键分发

OpenClawQwen3-14B自媒体助手&#xff1a;全平台内容一键分发 1. 为什么需要全平台内容分发助手 作为一个技术博主兼自媒体运营者&#xff0c;我每天最头疼的事情不是写内容&#xff0c;而是要把同一篇文章适配到不同平台发布。公众号需要特殊排版的Markdown、知乎喜欢带目录…...

飞书机器人接入指南:OpenClaw调用千问3.5-27B实现智能问答

飞书机器人接入指南&#xff1a;OpenClaw调用千问3.5-27B实现智能问答 1. 为什么选择OpenClaw飞书千问的组合&#xff1f; 去年我负责团队的知识管理时&#xff0c;每天要处理大量技术文档的检索和摘要需求。最初尝试用现成的SaaS机器人&#xff0c;但遇到三个痛点&#xff1…...

HC-SR04测距不准?STM32定时器输入捕获模式详解与精度提升技巧

HC-SR04测距不准&#xff1f;STM32定时器输入捕获模式详解与精度提升技巧 超声波测距模块HC-SR04因其低成本、易用性在嵌入式领域广泛应用&#xff0c;但许多开发者发现实际测量结果常出现波动大、数据不准的问题。本文将深入分析误差来源&#xff0c;并基于STM32定时器的输入捕…...

GraphSAGE实战:用PyTorch Geometric从零实现一个‘归纳式’节点分类器(附完整代码)

GraphSAGE实战&#xff1a;用PyTorch Geometric实现归纳式节点分类器 在社交网络分析、推荐系统和生物信息学等领域&#xff0c;图数据无处不在。传统深度学习模型难以直接处理这种非欧几里得结构的数据&#xff0c;而图神经网络(GNN)的出现改变了这一局面。GraphSAGE作为GNN家…...

【LaTeX】入门和使用拾遗

文章目录0 前言1 基本概述1.1 代码框架1.2 环境配置2 常用指令2.1 中文支持2.2 字号及其单位2.3 插图2.4 插入参考文献2.5 设置跳转链接2.6 双栏显示2.7 常用输入0 前言 记得最早接触LaTeX还是在大二参加数学建模大赛的时候&#xff0c;当时比较懵懂&#xff0c;对工具非常“迷…...

Linux驱动开发:从入门到精通的成长路径

1. 职业选择中的偶然与必然刚毕业那会儿&#xff0c;我压根没想过自己会走上Linux驱动开发这条路。就像很多同行一样&#xff0c;职业方向往往不是自己主动选择的&#xff0c;而是被第一份工作推着走的。记得入职第一天&#xff0c;主管把我叫到会议室&#xff1a;"Vincen…...

PinButtonEvents:嵌入式按钮事件处理框架深度解析

1. PinButtonEvents 库深度解析&#xff1a;面向嵌入式系统的高可靠性按钮事件处理框架在嵌入式系统开发中&#xff0c;按钮输入看似简单&#xff0c;实则暗藏诸多工程陷阱&#xff1a;机械触点抖动导致的误触发、长按与短按的语义混淆、双击/多击行为的时序判定、低功耗场景下…...