본문 바로가기

2-2/컴퓨터 구조

[컴퓨터 구조] Type of Instructions

지난 시간에는 주요 Operand에 대해서 알아보았는데

이번에는 Instruction들의 Type에 대해 알아보자.

 

 

 

💻 R-Type

 

기본 산술 연산들은 모두 R-type이다. R-type의 R은 register를 뜻한다.

총 32비트이며, 그안에 모든 것을 넣었다.

먼저,  그 안에 들어갈 내용에 대해서 간략히 설명을 하겠다.

 

앞선 포스팅에서 말했지만

rd는 register destination으로, 값들이 저장될 register를 말한다.

opcodefunct3, funct7은 명령어의 고유 숫자들로 명령어마다 opcode가 같은 등, 일부가 같을수는 있지만 모두가 같을 수는 없다.

rs 2, rs1은 각각 2번째 1번째 source가 되는 register이다.

 

opcode,funct3, funct7 로 정해진 명령행동을 rs1, rs2에 적용하여 rd에 저장한다.

 

예를들어서

add x9, x20, x21이라는 명령이 있다면 이는 곧 x9 = x20+x21 이된다. 

 

 

💻 I-Type

 

R-type과는 다르게 rs가 하나만 존재한다.

대신, funct7과 rs2가 합쳐져서 immediate가 되었다. immediate에는 상수 혹은 offset이 들어가게 된다.

 

I-type에는 대표적으로 addi와 load 명령어 들이 있다.

load를 예시로 사용하게 된다면,

 

rs1에 있는 base address에 immediate 값을 더하여 rd에 값을 넣는다.

 

ld x14, 8(x2)를 예시로 보면

 

000000001000 | 00010 | 011 | 01110 | 0000011 와같이 포함된다.

 

 

 

💻 S-Type

 

 

앞서, rs2 옆에 위치하는 immediate는 immediate[11:5] 이고, 뒤에 있는 immediate [4:0]이다.

이 두개가 합쳐져서 하나의 offset을 만든다.

이는 rs1, rs2의 위치를 동일하게 놔두기 위함이고, 또한 opcode와 funct3를 동일한 위치에 놔두기 위해 쪼개 놓았다.

 

rs1은 저장공간의 base address이고, rs2는 저장할 값이 있는 register이다.

 

rs2에 있는 값을 rs1+ immediate [11:0]에 둔다고 보면 된다.

 

S-type encoding information

 

 

 

'2-2 > 컴퓨터 구조' 카테고리의 다른 글

[컴퓨터 구조] Data Hazard  (0) 2022.11.23
[컴퓨터 구조] Pipeline  (0) 2022.11.23
[컴퓨터 구조] 3. RISC-V Operands  (1) 2022.10.10
[컴퓨터 구조] Instruciton  (0) 2022.10.02
[컴퓨터 구조] Performance  (3) 2022.09.19