본문 바로가기
2-2 학기/Computer Organization

[컴퓨터구조] Lecture 3 MIPS Instructions

by bona.com 2023. 9. 30.

명령어: 컴퓨터 언어의 단어에 해당, 컴퓨터가 실행할 수 있는 프로그램의 최소 단위

 

MIPS의 산술 연산은 레지스터에서만 실행되므로 메모리와 레지스터 간에 데이터를 주고 받는 명렁어가 있어야 한다.

이런 명령어를 데이터 전송 명렁어라고 한다.

MIPS의 산술연산은 위와 같다!! 😆

 

레지스터프로세서 데이터패스에 있는 소규모의 데이터 저장장소이다. MPS 산술 명령어의 피연산자는 레지스터로 제한되어 있다.

 

💡MIPS 레지스터는 32개($0 ~ $31)이다!

💡각 레지스터의 크기는 32비트, 1워드이다!

 

변수에 해당하는 레지스터는 $s0, $s1, ... $s7이고

임시 레지스터는 $t0, $t1, ... $t9로 표현한다

 

메모리

메모리 주소: 메모리 배열 내에서 특정 데이터 요소의 위치를 표시하는 데 사용하는 값이다.

 

💡 레지스터 개수보다 훨씬 많은 데이터 원소를 가지고 있다. 레지스터가 아니라 메모리에 저장한다.

💡 메모리는 주소가 인덱스 역할을 하는 큰 1차원 배열이다. 주소는 0부터 시작한다.

 

메모리에서 레지스터로 데이터를 복사해 오는 데이터 전송 명령을 적재(load)라고 한다. 적재 명령은 연산자 이름과 메모리에서 읽어 온 값을 지정할 레지스터, 메모리 접근에 사용할 상수와 레지스터로 구성된다.

  • 적재: MIPS의 lw(load word) 명령어로 메모리에서 레지스터로 데이터를 가져온다.
  • 저장: MIPS의 sw(store word) 명령어로 레지스터 내용을 메모리에 넣는다.

 

데이터를 메모리에 저장할 때 항상 데이터 크기의 정수배 번지에 저장한다. 그러므로 MIPS에서 워드의 시작 주소는 항상 4의 배수이다. 

(연속된 워드의 주소는 4씩 차이가 난다.)

+ 이러한 요구사항을 정렬 제약이라고 하며, 정렬을 사용하면 데이터 전송이 빨라진다.

 

엔디안(endianness)

- 빅 엔디안(big endian): 제일 왼쪽, 즉 최상위 바이트 주소를 워드 주소로 사용한다.

- 리틀 엔디안(little endian): 제일 오른쪽, 즉 최하위 바이트 주소를 워드 주소로 사용한다.