명령어 (6) - Immediate 오퍼랜드, 상수 Zero

컴퓨터구조

2020. 4. 8. 12:43

1. Immediate Operand

  • 기존 Arithmetic Operand의 경우 모든 오퍼랜드가 레지스터 오퍼랜드였음.
  • Immediate Operand는 그 중 하나의 오퍼랜드가 상수값을 갖는 경우이다.
  • addi s3, s3, 4 라고 하면 s3 = s3 + 4가 된다. 상수가 오퍼랜드인 경우 addi를 사용한다.
  • 그러나 이런 Immediate Operand의 경우 음수를 addi하는 것은 가능하지만, subi같은 것은 없다.
  • 즉, 어떤 상수값을 빼고 싶으면 addi로 음수를 더해서 빼야한다.

 

2. Constant Zero

  • MIPS 레지스터 중에는 zero라는 레지스터가 있다. 이 레지스터는 항상 0을 가지고 있다.
  • 이 0은 move Instruction을 구현하기 위해 사용된다.
  • add t2, t1, 0과 같이 구현하면 t2를 t1으로 옮기는 것으로 해석할 수 있다. 

 

Design Principle 3.
Make Common Case Fast (일반적으로 자주나오는 경우를 더 빠르게하자)

- 작은 값의 상수는 프로그래밍시 자주 사용한다. (0, 1, 2, ...)
- 그러나 Immediate Operand나 Constant Zero를 지원하지 않는다면, 작은 상수를 사용할 때에도 메모리에서 데이터를 로드해야하기 때문에 상대적으로 느릴 것이다 (lw를 한번 더 사용하기 때문에) 

 

3. Reference

 

컴퓨터구조

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

www.kocw.net