iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
Software Development

RISC-V 與處理器之架構學習及應用系列 第 16

[Day16] MIPS (RISC) Register 和 Instruction

  • 分享至 

  • xImage
  •  

一、設計原則:

  1. 簡單、有規律:設計簡化,方便理解和實作。
  2. 好設計需要好取捨:需要在複雜度與效能間取得平衡。
  3. 越小越快:硬體實現中,元件越少,效能越高。
  4. 讓經常用到的功能變快:優化常用功能,提升整體效能。

二、Register (暫存器) 清單

Name Register Number Usage
$zero 0 the constant value 0
$v0-$v1 2-3 values for results and expression evaluation
$a0-$a3 4-7 arguments
$t0-$t7 8-15 temporaries
$s0-$s7 16-23 saved
$t8-$t9 24-25 more temporaries
$gp 28 global pointer
$sp 29 stack pointer
$fp 30 frame pointer
$ra 31 return address

三、Instruction (指令) 類型

指令主要分成三種格式:

R-type (Register Type)

op rs rt rd shamt funct
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
  • op: operation code (opcode)
  • rs: first source register number
  • rt: second source register number
  • rd: destination register number
  • shamt: shift amount (00000 for now)
  • funct: function code (extends opcode)

I-format (Immediate Type)

op rs rt constant or address
6 bits 5 bits 5 bits 16 bits
  • rt: destination or source register number
  • Constant: −2¹⁵ to +2¹⁵ − 1
  • Address: offset added to base address in rs
  • 不同格式會增加解碼複雜度,但可使32-bit指令統一。
  • 保持格式盡量一致。

J-format (Jump Type)

op address
6 bits 26 bits

更多指令可在資料中查詢。


四、其他補充

  • System Call:程式無法直接進行I/O操作,需透過system call使用作業系統的API進行。
  • Pseudo instruction:偽指令,並非真實指令,只是協助模擬的指令,不會產生任何工作碼。

上一篇
[Day15] CPU 時間與 Clock Cycles 的計算
下一篇
[Day17] Overflow Detection & Carry-Lookahead Adder
系列文
RISC-V 與處理器之架構學習及應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言