컴퓨터구조 - DevWoony가 복습을 위해서 전공과목을 정리하는 내용이에요!

Instructions 란?
- 기계에서 사용되는 언어이다.
- high-level 언어보다 원시적이다.
- 양식이 매우 제한적이다.
MIPS의 발전
우리가 알아볼 MIPS 라는 CPU는 RISC(Reduced Intructions Set Computer) 기반이다.
MIPS 디자인은 Performance를 최대화하고 Cost를 최소화하며 설계에 걸리는 시간을 최소화 하는 것을 설계의 목표로 삼았다.
- MIPS에서 Load and Store의 words 4 byte단위로만 addressing된다.
- MIPS에서 arithmetic은 registers 에서만 동작한다.
MIPS Arithmetic
MIPS의 arithmetic 명령어는
- 다음과 같은 설계철학
- "Simplicity favors regularity"="단순성은 규칙 성을 선호한다"
- "Smaller is faster"="작을수록 빠르다"
- 모든 instructions는 3개의 operands를 갖는다.
- 2개는 sources, 1개는 destination이다.
- Operands의 순서는 고정이다.
- Operands들은 registers여야 하며, 32bit registers들만 제공된다.


Registers vs. Memory
- Arithmetic instructions에 사용되는 operands 들은 항상 32 bit refisters로 제공되어야 한다.
- Compiler는 registers들의 변수들과 관계있다.
- 만약 프로그램에 많은 변수들이 있다면 어떻게 할까?
- Compiler는 registers에서 자주 사용되는 변수들을 지속적으로 유지하기를 시도하고 나머지를 메모리에 배치시킨다.
- loads and store을 사용하여 변수들을 registers와 memory사이를 이동시킨다.

Memory Organization
- 거대한 1차원 배열 형태로 address와 함께 제공된다.
- memory address는 배열에 접근하기 위한 index이다.
- "Byte addressing"을 사용한다. 이는 index를 가르킬때 byte 단위의 memory 접근을 의미한다.
- Bytes 단위도 좋지만 대부분 데이터들은 더 큰 "words"를 사용한다.
- MIPS에서의 word는 32 bits 또는 4 bytes 이다.
- 2^32 bytes의 byte address는 0 부터 2^32-1 까지다.
- 2^30 word의 byte address는 0, 4, 8, ... 2^32-4 이다.

Byte Order
- Big Endian (0x11223344)

- Little Endian (0x11223344)

Load and Store

Let's Swap()


출처: [Computer Organization And Design: The Hardware/Software Interface]