명령어 (9) - I Format

컴퓨터구조

2020. 4. 8. 13:49

1. I Format Instruction

I Format Instruction은 앞서 살펴봤던 Immediate Operation, Transfer(lw/sw 등), Branch 등을 위해 사용되는 Instruction Format이다. 때문에 상수, 혹은 주소의 위치를 오퍼랜드로 가진다. (addi, lw, sw, lb, sb, lh, sh, beq 등) I Foramt이 쓰이는 가장 중요한 이유는 레지스터가 아닌 메모리에 접근해서 무언가를 가져오거나, 상수를 반드시 써야할 때 사용된다. (레지스터가 아닌 오퍼랜드를 쓸때 I Format을 유용하게 사용한다)

 

[그림] I format instruction

  • op : opcde로 명령어를 나타낸다.
  • rs : 소스 레지스터를 나타낸다
  • rt : 타겟 레지스터를 나타낸다.
  • address/immediate : 주소나 상수를 나타낸다.

 

Design Principle 4.
Good deisgn demands good compromise (좋은 디자인은 좋은 타협을 요구한다)

- immediate operation과 load-store operation을 모두 I format으로 만들었음.
- 새로운 format을 만들지 않고 어느정도 타협해서 비슷하면 묶어서 처리했음.
- 이렇게 되면 구조 자체가 단순해지고 단순성은 고성능으로 연결된다.

 

다 좋지만 문제가 있다. 만약 메모리가 4GB라면 16Bit에 4GB의 모든 영역을 표현할 수 없다. 때문에 우리는 여기에서 변위 주소 지정방식 (Displacement Addressing)을 사용한다. rs가 가리키는 레지스터의 값(=주소)를 기준으로 immediate의 16비트로 표현할 수 있는 만큼 주소를 감소시키거나 증가시킨다. 

 

arr[2] = temp + arr[4]

lw $t0, 16($s0)
add $s0, $t0, $t1
sw $t0, 8($s0)
  • lw $t0, 16($s0)에서 lw는 opcode, t0는 rt, s0는 rs, 16은 immediate이다.
  • 즉 메모리에서 로드해서 rt에 저장할 것인데, rs에서 16만큼 움직인 위치의 값을 읽는다.
  • 이러한 변위주소지정방식은 I format instruction을 구현하는데에 용이하게 사용된다.
  • 주소지정방식은 변위지정주소방식 이외에 다양한 방식들이 존재한다. (다음 포스트에서 알아보자)

 

2. Reference

 

컴퓨터구조

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

www.kocw.net