計算機體系結構---指令系統1

1. 基本概念與分類

1.1 概念

指令系統(Instruction Set Architecture, ISA)是一臺計算機能夠直接識別並執行的機器指令的集合。
ISA是軟、硬件的分界面與接口:定義了軟、硬件交互的協約;提供了一種軟件告訴硬件該執行什麼操作的機制。
在這裏插入圖片描述

1.2 分類

CISC、RISC

計算機系統結構可根據ISA的不同進行分類,x86指令系統、MIPS指令系統等。但是使用同一指令系統的計算機硬件實現可以不同。使用相同指令系統的機器,軟件是兼容的。

根據操作數的存儲位置對指令進行分類:主存型結構、累加器型結構、堆棧型結構、通用寄存器結構 (寄存器-存儲器,寄存器-寄存器)

1.3 指令系統設計

  1. 設計原則
    (1)可編程性(Programmability)——軟件
    簡單、高效的編程
    (2)可實現性(Implementability)——硬件
    容易設計出高性能、低功耗、高可靠、低成本的計算機
    (3)兼容性(Compatibility)——用戶
    兼容性包括向上(向前)兼容與向下(向後)兼容
  2. 設計要素
    (1)指令格式 (指令長度、編碼): 定長的指令規整,控制操作簡單,但可能浪費一定的指令存儲空間,變長指令節省空間,但控制複雜。
    (2)操作數存儲位置 (寄存器、主存、累加器、堆棧等)、類型 (整形、浮點)、長度 (字節、字、雙字等)、個數。
    (3)尋址方式:寄存器尋址,立即數尋址,偏移尋址,寄存器間接尋址,索引尋址
    (4)操作類型:add、sub、mul、move、compare

2. MIPS指令系統

load-store結構 (寄存器-寄存器)

2.1 寄存器

  1. 32個64位通用寄存器 (整數寄存器)(R0, R1, …R31)R0的值永遠是0。
  2. 32個64位浮點數寄存器 (F0, F1,…F31),用來存放32個單精度浮點數 (32位),也可以用來存放32個雙精度浮點數 (64位)。存儲單精度浮點數時,只用到寄存器的一半。

2.2 數據表示

  1. 整數:字節 (8位), 半字 (16位),字 (32位),雙字 (64位)。
  2. 浮點數: 單精度浮點數 (32位),雙精度浮點數 (64位)。
  3. 字節、半字或者字在裝入64位寄存器時,用零擴展或者用符號位擴展來填充該寄存器的剩餘部分。裝入以後,對它們將按照64位整數的方式進行運算。

2.3 數據尋址方式

  1. 立即數尋址與偏移量尋址:立即數字段和偏移量字段都是16位的。
  2. 寄存器間接尋址是通過把0作爲偏移量來實現的。
  3. 16位絕對尋址是通過把R0(其值永遠爲0)作爲基址寄存器來完成的。
  4. MIPS的存儲器是按字節尋址的,地址爲64位。

2.4 指令格式

尋址方式編碼到操作碼中,所有指令都是32位的,操作碼佔6位
3種指令格式:R、I、J,同名字段的位置不變。

  1. R型指令
    (1)ALU指令
    (2)專用寄存器讀/寫指令
    (3)MOVE指令等
  2. J類指令
    (1)跳轉指令
    (2)跳轉並鏈接指令
    (3)自陷指令
    (4)異常返回指令
    在這類指令中,指令字的低26位是偏移量,它與PC值相加形成跳轉的地址
  3. I型指令
    (1)load和store指令
    (2)立即數指令
    (3)分支指令
    (4)寄存器跳轉指令
    (5)寄存器鏈接跳轉指令。
    立即數字段爲16位,用於提供立即數或偏移量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章