명령어 (8) - R Format

컴퓨터구조

2020. 4. 8. 13:39

프로그램은 결국엔 여러 명령어로 구성되어있고, CPU는 명령어를 한개씩 불러와서 연산을 수행한다. 그런데 MIPS에는 이러한 명령어의 3가지 Format의 명령어가 존재한다. 첫번째는 R Format 부터알아보자.

 

[그림] MIPS 명령어 Format 

 

1. R Format Instruction

두개의 오퍼랜드를 가지는 레지스터 2개와 연산 결과를 저장하는 레지스터 1개를 가리키는 명령어 구조이며, 일반적으로 Arithmetic Operation이나 Logic Operation에 사용된다. (add, sub, mul, div, and, or 등)

 

[그림] R Foramt Instructon

 

  • opcode: funct와 함께 명령어의 종류를 나타낸다. (operation code)
  • rs: 첫번째 오퍼랜드가 들어가는 레지스터의 주소를 담고 있다. (source register)
  • rt: 두번째 오퍼랜드가 들어가는 레지스터의 주소를 담고 있다. (target register)
  • rd: 결과값이 담길 레지스터의 주소를 담고 있다. (destination register)
  • shamt: 얼마나 쉬프트 할지에 대한 정보를 담고있다 (shift amount)
  • funct: opcode와 함께 명령어의 종류를 나타낸다 (function code)

 

2. Example of R Format Instruction

[그림] R Foramt Instruction 예시 1 (add)

  • add 경우 opcode는 special, rs는 s1, rt는 s2, rd는 t0, shamt는 0, funct는 add이다.
  • 때문에 아래와 같이 명령어가 기계어로 번역된다.
  • 사람은 기계어를 읽기 힘들기 때문에 어셈블리어를 사용한다.
  • add, t0, s1, s2와 같은 MIPS Code도 어셈블리어의 일종이다.
  • rs, rd, rt가 5바이트인 이유는 MIPS가 32개의 레지스터를 가지기 때문이다 ($2^5 = 32$)
  • R format은 I나 J format에 비해 공간의 여유가 있기 때문에 opcode에 special 0을 쓰고
  • 실제 명령어인 add는 funct 칸에 적고 사용한다. 

 

3. Reference

 

컴퓨터구조

이 과목에서는 컴퓨터 시스템의 구성, 동작원리와 설계를 다룬다. 특히 컴퓨터 성능, 명령집합, 제어와 마이크로프로그래밍, 파이프라인, 정수와 부동 소수점수 연산, 기억부 시스템, 입출력 부시스템, 고급 컴퓨터구조 등과 같은 내용에 중점을 둔다. 교과목을 통해 고속 Data Network 시스템에 들어가는 여러 Processors를 이해하고, 이들을 설계 또는 Programming 할 수 있는 능력을 배양한다.

www.kocw.net