數據冒險、控制冒險、結構冒險

計算機組成原理
數據冒險、控制冒險、結構冒險
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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63036.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63036.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63036.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于32單片機的RS485綜合土壤傳感器檢測土壤PH、氮磷鉀的使用(超詳細)

1-3為RS485綜合土壤傳感器的基本內容 4-5為基于STM32F103C8T6單片機使用RS485傳感器檢測土壤PH、氮磷鉀并顯示在OLED顯示屏的相關配置內容 注意:本篇文件講解使用的是PH、氮磷鉀四合一RS485綜合土壤傳感器,但里面的講解內容適配市面上的所有多合一的RS…

SpringBoot【十一】mybatis-plus實現多數據源配置,開箱即用!

一、前言🔥 環境說明:Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 正常情況下我們在開發系統的時候都是使用一個數據源,但是由于有些項目同步數據的時候不想造成數據庫io消耗壓力過大,便會一個項目對應多個數據源…

Node.js教程入門第一課:環境安裝

對于一個程序員來說,每學習一個新東西的時候,第一步基本上都是先進行環境的搭建! 從本章節開始讓我們開始探索Node.js的世界吧! 什么是Node.js? 那么什么是Node.js呢?簡單的說Node.js 就是運行在服務端的 JavaScript JavaScript…

vim優化

1.編輯如下內容&#xff1a; cat > /root/.vimrc <<EOF set tabstop2 " 設置 Tab 為 2 個空格 set shiftwidth2 " 設置自動縮進為 2 個空格 set expandtab " 將 Tab 轉換為空格 " 基本設置 set number syntax on" 快捷鍵設置…

字符串性能對比

效率(1) : String.indexOf與String.contains效率測試_string contains效率-CSDN博客 結論是前者效率高&#xff0c;源碼里面conatins是使用indexof 在jdk8中contains直接調用的indexOf(其他版本沒有驗證),所以要說效率來說肯定是indexOf高,但contains也就多了一層方法棧,so 什…

移動網絡的原理

無線網絡是如何解決移動通信問題的 場景&#xff1a;用戶在一輛轎車內以150km/h的時速沿高速公路急速行駛時穿過多個無線接入網&#xff0c;用戶希望在整個旅程中保持一個與遠程應用的不間斷的TCP連接。 解決方案&#xff1a;移動節點的間接路由選擇方法可解決TCP鏈接不間斷的…

python學opencv|讀取圖像(十三)BGR圖像和HSV圖像互相轉換深入

【1】引言 前序學習過程中&#xff0c;我們偶然發現&#xff1a;如果原始圖像是png格式&#xff0c;將其從BGR轉向HSV&#xff0c;再從HSV轉回BGR后&#xff0c;圖像的效果要好于JPG格式。 文章鏈接為&#xff1a; python學opencv|讀取圖像&#xff08;十二&#xff09;BGR圖…

解決node.js的req.body為空的問題

從昨晚一直在試&#xff0c;明明之前用的封裝的axios發送請求給其他的后端&#xff08;springboot&#xff09;是可以的&#xff0c;但昨天用了新項目的后端&#xff08;node.js&#xff09;就不行。 之前用了代理&#xff0c;所以瀏覽器發送的post請求不會被攔截&#xff0c;…

【嵌入式】嵌入式面試題 36 問

1. volatile 是否可以修飾 const 是的&#xff0c;volatile 可以修飾 const。const 表示變量的值不能被修改&#xff0c;而 volatile 表示變量的值可能在程序之外被修改&#xff08;例如&#xff0c;由硬件修改&#xff09;。 將 volatile 用于 const 變量意味著該變量的值雖然…

java基礎概念49-數據結構2

一、樹 1-1、樹的基本概念 1、樹的節點 2、二叉樹 3、樹的高度 1-2、二叉查找樹 普通二叉樹沒有規律&#xff0c;不方便查找&#xff0c;沒什么作用。 1、基本概念 2、添加節點 此時&#xff0c;該方式添加形成的二叉查找樹&#xff0c;根節點就是第一個節點。 3、查找節點 4…

GhatGPT缺陷不足和商業應用

1. 引言 ChatGPT的興起&#xff1a; 2022年末推出&#xff0c;迅速在自然語言處理和人工智能領域引起廣泛關注。數億用戶體驗其強大智能&#xff0c;感嘆機器智能的飛速發展。 存在的缺陷&#xff1a; 事實性錯誤&#xff1a;生成的文本中包含錯誤信息。無法實時更新&#xff1…

【Linux】Macvlan介紹及LInux下例子實現

Macvlan Macvlan 是一種網絡虛擬化技術&#xff0c;允許在同一物理網絡接口上創建多個虛擬網絡接口&#xff0c;每個虛擬接口都有自己獨立的 MAC 地址。這對于需要在同一物理主機上運行多個網絡隔離的應用程序或容器時非常有用。 Macvlan 的特點和用途 獨立的 MAC 地址 每個 …

Jackson @JsonInclude 注解

1. 概述 Jackson 是一個著名的Java庫&#xff0c;以轉換Java對象為JSON格式以及從JSON反序列化回Java對象而聞名。有時候&#xff0c;我們可能希望僅在某些字段滿足特定條件時才將其包含在JSON輸出中&#xff0c;而Jackson的JsonInclude注解正是為此目的量身定制的。 JsonInc…

12.12 枚舉 共用體 數據結構 創建順序表

1.思維導圖 2. 創建順序表 1>頭文件 test.h #ifndef __TEST_H__ #define __TEST_H__#include<stdlib.h> #include<stdio.h> #include<string.h>#define MAX 30 //typedef int datatype;typedef struct sequence {int data[MAX];int len;}seqlist,*se…

next.js 存在緩存中毒漏洞(CVE-2024-46982)

免責聲明: 本文旨在提供有關特定漏洞的深入信息,幫助用戶充分了解潛在的安全風險。發布此信息的目的在于提升網絡安全意識和推動技術進步,未經授權訪問系統、網絡或應用程序,可能會導致法律責任或嚴重后果。因此,作者不對讀者基于本文內容所采取的任何行為承擔責任。讀者在…

如何對小型固定翼無人機進行最優的路徑跟隨控制?

控制架構 文章繼續采用的是 ULTRA-Extra無人機&#xff0c;相關參數如下&#xff1a; 這里用于guidance law的無人機運動學模型為&#xff1a; { x ˙ p V a cos ? γ cos ? χ V w cos ? γ w cos ? χ w y ˙ p V a cos ? γ sin ? χ V w cos ? γ w sin ? χ…

【Flink-scala】DataStream編程模型之延遲數據處理

DataStream API編程模型 1.【Flink-Scala】DataStream編程模型之數據源、數據轉換、數據輸出 2.【Flink-scala】DataStream編程模型之 窗口的劃分-時間概念-窗口計算程序 3.【Flink-scala】DataStream編程模型之水位線 4.【Flink-scala】DataStream編程模型之窗口計算-觸發器-…

react useRef、useContext、useReducer使用中遇到的問題及解決辦法

在 React 中&#xff0c;useRef、useContext 和 useReducer 是三個非常有用的 Hook&#xff0c;它們可以幫助我們更好地管理組件的狀態和行為。然而&#xff0c;在使用這些 Hook 時&#xff0c;可能會遇到一些問題和困惑。本文將詳細解釋這三個 Hook 的工作原理&#xff0c;并提…

2024告別培訓班 數通、安全、云計算、云服務、存儲、軟考等1000G資源分享

大類有&#xff1a;軟考初級 軟考中級 軟考高級 華為認證 華三認證&#xff1a; 軟考初級&#xff1a; 信息處理技術員 程序員 網絡管理員 軟考中級&#xff1a; 信息安全工程師 信息系統監理師 信息系統管理工程師 嵌入式系統設計時 數據庫系統工程師 電子商務設…

《操作系統 - 清華大學》8 -1:進程的組成

文章目錄 1. 進程的組成2. 進程與程序的聯系3. 進程與程序的區別4. 進程與程序關系 1. 進程的組成 進程具體包含哪些東西&#xff1a; 首先要執行相應的代碼&#xff0c;所以執行代碼需要放到內存中代碼執行需要處理數據&#xff0c;數據需要放到內存中需要知道現在要執行哪條…