【學習筆記】計算機組成原理(七)

指令系統

在這里插入圖片描述

文章目錄

  • 指令系統
    • 7.1 機器指令
      • 7.1.1 指令的一般格式
      • 7.1.2 指令字長
    • 7.2 操作數類型和操作類型
      • 7.2.1 操作數類型
      • 7.2.2 數據在存儲器中的存放方式
      • 7.2.3 操作類型
    • 7.3 尋址方式
      • 7.3.1 指令尋址
        • 7.3.1.1 順序尋址
        • 7.3.1.2 跳躍尋址
      • 7.3.2 數據尋址
        • 7.3.2.1 立即尋址
        • 7.3.2.2 直接尋址
        • 7.3.2.3 隱含尋址
        • 7.3.2.4 間接尋址
        • 7.3.2.5 寄存器尋址
        • 7.3.2.6 寄存器(間接)尋址
        • 7.3.2.7 基址尋址
        • 7.3.2.8 變址尋址
        • 7.3.2.9 相對尋址
        • 7.3.2.10 堆棧尋址
    • 7.4 指令格式舉例
      • 7.4.1 設計指令時應考慮的各種因素
      • 7.4.2 舉例
    • 7.5 RISC技術
      • 7.5.1 RISC的產生和發展
      • 7.5.2 RISC的主要特征
      • 7.5.3 CISC的主要特征
      • 7.5.4 RISC與CISC的比較

7.1 機器指令

計算機就是連續執行每一條機器語句而實現全自動工作的。

  • 把每一條機器語言的語句稱為機器指令;

  • 又將全部機器指令的集合稱為機器的指令系統 / 指令集。

    指令集就是計算機系統軟件和硬件的交界面,軟件通過指令系統告訴計算機的硬件做什么操作,計算機的硬件通過指令系統把運算結果和硬件的狀態返回給軟件。

7.1.1 指令的一般格式

指令是由操作碼和地址碼兩部分組成的
在這里插入圖片描述

  • 操作碼

    操作碼用來指明該指令所要完成的操作。通常,其位數反映了機器的操作種類, 也即機器允許的指令條數,如操作碼占7位,則該機器最多包含27=128 條指令

    實際上操作碼的作用遠遠不止反映機器做什么操作,很多機器的指令集當中,操作碼還要指出對什么樣的數據進行操作,例如IBM360的指令系統當中,同樣是加法操作,因為參與加法操作的數據的類型不一樣,表示的基值不一樣,一個加法指令實際上是八條指令,分別對應了對定點數加法、浮點數加法、在浮點數加法中尾數的基值是二進制還是十六進制等等。
    另外在有些機器的指令集當中,操作碼還指出了操作數的尋址方式。

    • 固定長

      • 將操作碼集中放在指令字的一個字段內。這種格式便于硬件設計,指令譯碼時間短,廣泛用于字長較長的、大中型計算機和超級小型計算機以及RISC(Reduced Instruction Set Computer)中。
    • 可變長

      • 操作碼長度不固定會增加指令譯碼和分析的難度,使控制器的設計復雜。通常采用擴展操作碼技術,使操作碼的長度隨地址數的減少而增加,不同地址數的指令可以具有不同長度的操作
        碼,從而在滿足需要的前提下,有效地縮短指令字長。

        在這里插入圖片描述

  • 地址碼

    在這里插入圖片描述

7.1.2 指令字長

? 在這里插入圖片描述

7.2 操作數類型和操作類型

7.2.1 操作數類型

機器中常見的操作數類型有地址、數字、字符、邏輯數據等。

? (1)地址

? 地址實際上也可看做是一種數據,在許多情況下要計算操作數的地址。地址可被認為是一個無符號的整數。

? (2)數字

? 計算機中常見的數字有定點數、浮點數和十進制數

? (3)字符

? 普遍采用 ASCI 碼,還有其他一些字符編碼 - 擴展BCD交換碼等。

? (4)邏輯數據

? 作邏輯運算,此時n個0和1的組合不是被看做算術數字,而是被看做邏輯數。

7.2.2 數據在存儲器中的存放方式

在這里插入圖片描述

字節編址

在這里插入圖片描述

7.2.3 操作類型

  1. 數據傳送

    -----
    寄存器寄存器存儲器存儲器
    目的寄存器存儲器寄存器存儲器
    例如MOVESTORELOADMOVE
    MOVEMOVE
    PUSHPOP

    置“1”,清“0”

  2. 算術邏輯操作

    加、減、乘、除、增1、減1、求補、浮點運算、十進制運算、與、或、非、異或、位操作、位測試、位清除、位求反

    如 8086ADD SUB MUL DIV INC DEC CMP NEG
    AAA AAS AAM AAD
    AND OR NOT XOR TEST

  3. 移位

    移位可分為算術移位、邏輯移位和循環移位(帶進位和不帶進位)三種。

    算術移位和邏輯移位分別可實現對有符號數和無符號數乘以2n(左移)或整除以2n(右移)的運算,并且移位操作所需時間遠比乘除操作執行時間短,因此,移位操作經常被用來代替簡單的乘法和除法運算。

  4. 轉移

    (1)無條件轉移

    無條件轉移不受任何條件約束,可直接把程序轉移到下一條需執行指令的地址。

    例如“JMP X"其功能是將指令地址無條件轉至X

    (2)條件轉移

    在這里插入圖片描述

    (3)調用與返回

    ? 在這里插入圖片描述

    (4)陷阱(Trap)與陷阱指令

在這里插入圖片描述

  1. 輸入輸出

    并不是每一種指令集都有輸入輸出指令,如果I/O端口的編址空間被作為內存編址空間的一部分,那么這個指令集就不需要輸入輸出指令,直接用訪問內存的指令就可以對外部設備進行輸入輸出,如果外部設備有自己的獨立地址空間單獨編址,就需要單獨的輸入輸出指令對外設進行訪問。

    ? 在這里插入圖片描述

  2. 其他

    其他包括 等待指令、停機指令、空操作指令、開中斷指令、關中斷指令、條件碼指令 等。

    為了適應計算機的信息管理、數據處理及辦公自動化等領域的應用,有的計算機還設有 非數值處理指令 。如字符串傳送、字符串比較、字符串查詢及字符串轉換等。

    在多用戶、多任務的計算機系統中,還設有 特權指令 ,這類指令只能用于操作系統或其他系統軟件,用戶是不能使用的。

    在有些大型或巨型機中,還設有 向量指令 ,可對整個向量或矩陣進行求和、求積運算。

    在多處理器系統中還配有專門的 多處理機指令

7.3 尋址方式

確定本條指令的操作數地址

下一條要執行指令的指令地址

7.3.1 指令尋址

7.3.1.1 順序尋址

取完一條指令后,順序的取下一條指令。

( PC ) + 1 → PC

內存單元的編址單位是字節,每一條指令的長度是32位(四個字節),順序存儲每次加的值就是4,

如果指令的長度是64位,則PC+8。

如果指令是可變長度的話,這個1會更加復雜。

7.3.1.2 跳躍尋址

由轉移指令給出下一條指令地址

在這里插入圖片描述

7.3.2 數據尋址

? 在這里插入圖片描述

7.3.2.1 立即尋址

? 在這里插入圖片描述

7.3.2.2 直接尋址

? 在這里插入圖片描述

7.3.2.3 隱含尋址

在這里插入圖片描述

7.3.2.4 間接尋址

在這里插入圖片描述

7.3.2.5 寄存器尋址

? 在這里插入圖片描述

7.3.2.6 寄存器(間接)尋址

在這里插入圖片描述

7.3.2.7 基址尋址

基址寄存器可采用隱式的和顯式的兩種。

所謂隱式,是在計算機內專門設有一個基址寄存器BR,使用時用戶不必明顯指出該基址寄存器,只需由指令的尋址特征位反映出基址尋址即可。

顯式是在一組通用寄存器里,由用戶明確指出哪個寄存器用做基址寄存器,存放基地址。

  • 采用專用寄存器作為基址寄存器,有效地址是基址寄存器中的內容加上形式地址(形式地址實際上就是一個偏移量)。

? 在這里插入圖片描述

  • 采用通用寄存器作基址寄存器

在這里插入圖片描述

7.3.2.8 變址尋址

在這里插入圖片描述

在這里插入圖片描述

7.3.2.9 相對尋址

在這里插入圖片描述

在這里插入圖片描述

7.3.2.10 堆棧尋址

在計算機的硬件實現的棧是高地址向低地址方向,即棧頂是低地址,棧底是高地址。

在這里插入圖片描述

7.4 指令格式舉例

7.4.1 設計指令時應考慮的各種因素

  1. 指令系統的 兼容性

  2. 其他因素

    操作類型 包括指令個數及操作的難易程度

    數據類型 確定哪些數據類型可參與操作

    指令格式 指令字長是否固定操作碼位數,是否采用擴展操作碼技術地址碼位數,地址個數,尋址方式類型

    尋址方式 指令尋址、操作數尋址

    寄存器個數 寄存器的多少直接影響指令的執行時間

7.4.2 舉例

  • PDP - 8

    在這里插入圖片描述

  • PDP - 11

    在這里插入圖片描述

  • IBM 360

在這里插入圖片描述

  • Intel8086

    在這里插入圖片描述

7.5 RISC技術

7.5.1 RISC的產生和發展

RISC (Reduced Instruction Set Computer ) 精簡指令系統計算機

CISC(Complex Instruction Set Computer ) 復雜指令系統計算機

RISC技術 —— 80 - 20 規律

  • 典型程序中80%的語句僅僅使用處理機中20%的指令
  • 執行頻度高的簡單指令,因復雜指令的存在,執行速度無法提高
  • 能否用20%的簡單指令組合不常用的80%的指令功能

7.5.2 RISC的主要特征

  • 選用使用頻度較高的一些簡單指令復雜指令的功能由簡單指令來組合
  • 指令 長度固定、指令格式種類少、尋址方式少
  • 只有 LOAD /STORE 指令訪存
  • CPU 中有多個 通用寄存器
  • 采用 流水技術 一個時鐘周期內完成一條指令
  • 采用 組合邏輯 實現控制器

7.5.3 CISC的主要特征

  • 系統指令復雜龐大,各種指令使用頻度相差大指令
  • 長度不固定、指令格式種類多、尋址方式多
  • 訪存 指令 不受限制
  • CPU 中設有 專用寄存器
  • 大多數指令需要 多個時鐘周期 執行完畢
  • 采用 微程序 控制器

7.5.4 RISC與CISC的比較

  • RISC更能 充分利用 VLSI 芯片的面積【VLSI芯片:超大規模集成電路(Very Large Scale Integration Circuit)】
  • RISC 更能 提高計算機運算速度
    • 指令數、指令格式、尋址方式少
    • 通用 寄存器多,減少訪存次數
    • 采用 組合邏輯比微程序延遲小,縮短CPU周期
    • 便于實現 指令流水
  • RISC 便于設計,可 降低成本,提高 可靠性
  • RISC 不易 實現 指令系統兼容

參考:
教材:計算機組成原理 (唐朔飛).pdf
視頻:
https://www.bilibili.com/video/BV1t4411e7LH?p=107&vd_source=a89593e8d33b31a56b894ca9cad33d33

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

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

相關文章

第四十五天 | 322.零錢兌換

題目:322.零錢兌換 嘗試解答: 1.確定dp[j]含義:裝滿容量為j的背包所需要放的硬幣個數為dp[j]; 2.動態轉移方程:dp[j] dp[j - coins[i]] 1; 3.遍歷順序:本題應該為組合類題目,不考慮裝入的順序&#x…

精品PPT | 精益生產管理中MES系統的實現與應用(免費下載)

【1】關注本公眾號,轉發當前文章到微信朋友圈 【2】私信發送 MES系統的實現與應用 【3】獲取本方案PDF下載鏈接,直接下載即可。 如需下載本方案PPT/WORD原格式,請加入微信掃描以下方案驛站知識星球,獲取上萬份PPT/WORD解決方案&…

吃掉 N 個橘子的最少天數(Lc1553)——記憶化搜索

廚房里總共有 n 個橘子,你決定每一天選擇如下方式之一吃這些橘子: 吃掉一個橘子。如果剩余橘子數 n 能被 2 整除,那么你可以吃掉 n/2 個橘子。如果剩余橘子數 n 能被 3 整除,那么你可以吃掉 2*(n/3) 個橘子。 每天你只能從以上 …

Redis - 緩存場景

學習資料 學習的黑馬程序員嗶站項目黑馬點評,用作記錄和探究原理。 Redis緩存 緩存 :就是數據交換的緩沖區,是存儲數據的臨時地方,讀寫性能較高 緩存常見的場景: 數據庫查詢加速:通過將頻繁查詢的數據緩存起來&…

【挖金子game】

如果您想要編寫一個簡單的“挖金子”游戲代碼,可以使用Python這樣的編程語言來實現。以下是一個簡單的Python代碼示例,用于創建一個基本的“挖金子”游戲: import random # 游戲設置 max_gold 10 # 最大金子數量 max_digs 5 # 最大挖掘…

數據驅動(Data-Driven)和以數據為中心(Data-Centric)的區別

一、什么是數據驅動? 數據驅動(Data-Driven)是在管理科學領域經常提到的名詞。數據驅動決策(Data-Driven Decision Making,簡稱DDD)是一種方法論,即在決策過程中主要依賴于數據分析和解釋&…

Java基礎學習:java中的基礎注解

在Java中,有一些內置的(或稱為“基礎”)注解(annotation),這些注解在Java標準庫中定義,并且具有特定的用途。以下是一些主要的Java內置注解: Override: 用于表示一個方法…

Keras深度學習框架第二十七講:KerasTuner超參數優化基礎

1、超參數優化概念 1.1 什么是超參數優化 超參數調優,也稱為超參數優化或參數調優,是尋找學習算法或模型最佳超參數組合的過程。超參數是在訓練過程開始之前設置的參數,模型無法直接從數據中學習這些參數。它們控制著學習算法的行為&#x…

NDIS小端口驅動開發(二)

初始化微型端口適配器 當網絡設備可用時,系統會加載所需的 NDIS 微型端口驅動程序。 隨后,即插即用 (PnP) 管理器向 NDIS 發送即插即用 IRP 來啟動設備。 NDIS 調用微型端口驅動程序的 MiniportInitializeEx 函數來初始化用于網絡 I/O 操作的適配器。 初…

嵩山為什么稱為三水之源

三水指黃河、淮河、濟河,這三條河流環繞在嵩山周邊。 黃河橫亙在嵩山北部,其支流伊洛河從西南方環繞嵩山,然后匯入黃河。濟河,古稱濟水,源自濟源王屋山,自身河道在東晉時代被黃河奪占,從此消失。…

畢設 大數據校園卡數據分析

文章目錄 0 前言1 課題介紹2 數據預處理2.1 數據清洗2.2 數據規約 3 模型建立和分析3.1 不同專業、性別的學生與消費能力的關系3.2 消費時間的特征分析 4 Web系統效果展示5 最后 0 前言 🔥 這兩年開始畢業設計和畢業答辯的要求和難度不斷提升,傳統的畢設…

職場不是掙錢

職場怎么不是掙錢? 曾經我也一直這么想,只要做好老板安排的事情,自然就可以掙到錢了。 目的應該是沒錯的,是掙錢。 只是做好活就能掙錢,好像想得有些簡單了。 畢竟每個人都在干活,為什么就該自己掙錢呢&a…

【vue2配置】Vue Router

Vue Router官網 1、npm install vue-router4 2、創建模塊,在src目錄小創/views/map/MapIndex.vue模塊和創router/index.js文件 3、在router/index.js配置路由 import Vue from "vue"; import Router from "vue-router"; // 引入模塊 const Ma…

C語言——在頭?件中#if、_STDC_等字?起什么作??

一、問題 通常,?些程序員都不會去研究頭?件中的內容是什么含義,總覺得亂亂的,有很多 #if、_STDC_、#line 等字符,那么這些字符都各代表什么呢,在頭?件中又起到什么作?呢? 二、解答 在頭?件中存在類似…

智慧校園建設的進階之路

智慧校園的建設現已到達了老練的階段,許多學校設備充滿著數字化信息,進出宿舍樓,校園一卡通體系會記載下學生信息,外來人員闖入會報警,翻開電腦就能查到學生是否在宿舍等……學生的學習和日子都充滿了數字化的痕跡。但…

C# WPF入門學習(三)

目錄 核心架構 核心組件和概念 1. XAML(eXtensible Application Markup Language) 2. 依賴屬性(Dependency Properties) 3. 路由事件(Routed Events) 4. 數據綁定 5. 命令(Commands&…

itertools內置模塊的過濾妙用

itertools內置模塊的妙用 過濾源迭代器中的元素 Python內置itertools模塊里有一些函數可以過濾源迭代器中的元素。 islice islice可以在不拷貝數據的前提下,按照下標切割源迭代器。可以只給出切割的終點,也可以同時給出起點和終點,還可以…

MongoDB 覆蓋索引查詢:提升性能的完整指南

MongoDB 覆蓋索引查詢是一種優化數據庫查詢性能的技術,它通過創建適當的索引,使查詢可以直接從索引中獲取所需的數據,而無需訪問實際的文檔數據。這種方式可以減少磁盤 I/O 和內存消耗,提高查詢性能。 基本語法 在 MongoDB 中&a…

SQL練習題:2.4

建表 # 學生表 create table t_student (stu_id varchar(10),stu_name varchar(10),stu_age datetime,stu_sex varchar(10) );# 課程表 create table t_t_course (c_id varchar(10),c_name varchar(10),c_teaid varchar(10) );# 教師表 create table t_t_teacher (tea…

光速入門python的OpenCV

前言 歡迎來到我的博客 個人主頁:北嶺敲鍵盤的荒漠貓-CSDN博客 本文整理python的OpenCV模塊的關鍵知識點 爭取用最短的時間入門OpenCV 并且做到筆記功能直接復制使用 OpenCV簡介 不浪費時間的介紹: 就是類似于ps操作圖片。 至于為什么不直接用ps,因為只有程序能…