+ 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다.
picoMIPS
MIPS Technologies에서 만든 명령어 집합이다. (교육용)
RISC 기반 아키텍쳐로 명령어 형식이 단순하고, 고정 길이 명령어를 사용한다.
- 명령어 길이: 16bit (OpCode 4bit, Operand 12bit)
8개의 범용 레지스터를 사용한다.
- 3 bit로 레지스터 주소를 표현한다.
- 레지스터 데이터는 16bit로 구성되어있다.
3가지 명령어 형식만 존재한다.
- 기본적으로 3-주소 명령어 형식을 사용한다.
명령어 | 형식 | opcode | fn | 의미 |
and $rd $rs $rt | R | 0000 | 000 | $rd <- $rs and $ rt |
or $rd $rs $rt | R | 0000 | 001 | $rd <- $rs or $ rt |
add $rd $rs $rt | R | 0000 | 010 | $rd <- $rs + $ rt |
sub $rd $rs $rt | R | 0000 | 011 | $rd <- $rs - $ rt |
mul $rd $rs $rt | R | 0000 | 100 | $rd <- $rs × $ rt |
div $rd $rs $rt | R | 0000 | 101 | $rd <- $rs ÷ $ rt |
addi $rt $rs $imm | I | 1010 | $rt <- $rs + imm | |
subi $rt $rs $imm | I | 1011 | $rt <- $rs - imm | |
lw $rt imm($rs) | I | 0100 | $rt <- M[$rs + imm × 2] | |
sw $rt imm($rs) | I | 0101 | M[$rs + imm × 2] <- $rt | |
beq $rs $rt imm | I | 0001 | if($rs - $rt == 0) then PC <- PC + 2 + imm × 2 | |
j addr | J | 0011 | PC <- PC + 2 + add × 2 |
+ ×2는 CPU의 word단위(16bit), Memory의 Byte단위(8bit) 차이로 발생
+ fn: function 필드 (opcode와 결합하여 사용)
=> 4Bit, 명령어를 16개 밖에 사용하지 못하는 것을 추가로 더 사용이 가능하다. (레지스터 크기가 작기 때문에 조금 남는다.)
+ $rd: register destination - 연산의 결과 값을 저장하는 레지스터
+ $rs: register source - 연산에 사용되는 첫번째 레지스터
+ $rt: register target - 연산에 사용되는 두 번째 레지스터
+ $imm: immediate (상수 값)
R-형식 명령어 (Register Type)
3개의 피연산자를 필요로 하는 ALU 명령어와 같은 형식이다.
- fn 필드는 연산 부호 필드와 결합하여, 산술 연산 명령어로 사용된다.
rs(register source)와 rt(register target)로 연산(fn + op)하여 rd(register destination)에 저장한다.
=> Reg[rd] = op/fn(Reg[rs], Reg[rt])
I-형식 명령어 (Immediate Type)
6 bit로 구성된 imm/address 필드를 포함한다.
적재, 저장, 판단 명령어 등과 산술 연산 일부를 포함한다.
rs(register source)와 imm(상수 or 주소) 값을 갖고 op를 수행한 결과를 rt(register target)에 저장한다.
Reg[rt] = op(Reg[rs], imm)
J-형식 명령어 (Jump Type)
Jump와 같은 하나의 긴 주소 필드를 요구하는 명령어 형식이다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
[Computer Architecture] 디지털 논리 회로 (2) | 2023.10.22 |
---|---|
[Computer Architecture] 데이터 표현 (1) | 2023.10.15 |
[Computer Architecture] CISC & RISC (49) | 2023.10.08 |
[Computer Architecture] 주소 지정 방식 (0) | 2023.10.07 |
[Computer Architecture] 명령어 집합 분류 (1) | 2023.10.06 |