KalelPark's LAB

[ Computer Architecture ] Instruction Format이란? 본문

Study/Computer Architecture

[ Computer Architecture ] Instruction Format이란?

kalelpark 2023. 3. 29. 10:33

Instruction format이란?

Instruction set에서 주로 사용되며, 컴퓨터에서 사용되는 instruction (명령, 작업)의 레퍼토리 (순서를 가진 목록)

machine code라고 불리는 binary code로 encoded됩니다.

 

Instruction (명령어)

   - Binary에서 잘 작동되고, Memory 내, 명령어와 연산자를 저장합니다.

Store Program Organization

   - Program과 데이터가 서로 다른 저장소에 저장되지만, 같은 것처럼 다뤄지는 것을 의미합니다.

   - Register for Processing, Instruction code format, Immediate operands

 

RISC-V Instruction Format

   - register operands for arithmetic computation

   - 32 registers (X0 ~ X31, Word)

   - Examples  (x0 : the constant value, x1 : return address, x2 : stack pointer, x3 : global pointer)

모든 instruction은 32-bit, 1word 길이로 일반화되어 있습니다.

     

     * 대표적인 3가지 타입으로 분류된다.

          - R-Type (Register Type) : most arithmetic and logical instruction (except for "immediate")

          - I-Type (Register Type) : data transfer (load), arithmetic with Immediate

          - S-Type (Store Type) : data transfer (store)

RISC-V : R format

32 비트 내에 모든 것을 넣었으며, opcode, func3, func7을 통하여 어떤 명령을 수행할지 결장합니다.

rd는 detination register이며, 값을 넣고자 하는 Register가 됩니다.

rs1, rs2는 각각 source가 되는 register 입니다.

* Opcode, func3, func7을 활용하여, 어떤 명령어를 사용할지 결정합니다.

EX)

   func7 : 0, rs2 : 10101, rs1 : 10100, func3 : 0, rd : 010001, opcode : 0110011,

RISC-V : I format

* 대부분의 arithmetic 과 logical instruction이 해당 부분에 존재합니다. (load 혹은 constant 연산을 위해 사용합니다.)

   R-Type과는 다르게 rs1만 존재합니다.

   immediate 비트는 총 12개이며, 해당 부분에는 상수 혹은 offset이 사용됩니다.

 

* 만약 load로 명령어를 사용하게 되면, rs1에 있는 base address에 imm 값(offset)을 더하여 rd에 넣게 됩니다.

   혹은 add(add immediate)를 사용하게 되면, rs1에 있는 source를 imm에 더하여 rd에 넣습니다.

RISC-V : S format

* S-Type은 Store을 Insturction Format입니다. rd 자리에 imm이 들어간 것을 볼 수 있습니다.

   앞부분의 imm과 합쳐서 offset역할을 합니다. 여기서 rs1은 저장 공간의 base address고 rs2는 저장할 값이 있는 register.

명령어 집합 설명 

Comments