Part1
Instruction Set Architecture (ISA)
- 변수, 문법 등을 알면 C로 코드를 짜고 컴퓨터를 control할 수 있다.
- 컴퓨터를 control하기 위해서는 어떻게 변수를 정의하고 어떤 문법을 정의해야 하는지를 알아야 한다. ISA는 이러한 것을 제공한다. 컴퓨터의 abstract model이다. 어떻게 다자인하고 구현하는지 등의 자세한 것은 제공하지 않는다.
- assembly 프로그래머는 H/W와 CPU를 control하기 위한 프로그래밍을 할 것이다. ISA는 이러한 정보를 제공한다. ISA는 프로그래머에게 H/W를 logically 이해할 수 있도록 돕는다.
- ISA에는 processor의 Instruction set이 있는데 이는 assembly language instruction의 set이며 syntax, flow와 비슷하다. C에서 for, if-else를 생각하면 된다. 또한 processor 내에 위치한 accessible register가 있다. 일시적인 메모리이다. 이에 더해 어떻게 프로그래머가 memory를 control할 수 있는지를 제공한다.
- interrupt가 발생하는 경우가 있는데 ISA는 프로그래밍 관점에서 어떻게 processor가 interrupt에 반응하는지에 관한 정보를 제공한다.
- 컴퓨터마다 다른 ISA를 가지고 있다.
MIPS ISA Basics
- Goals of instruction set design for MIPS: Maximize performance and minimize cost, and reduce design time (of compiler and hardware)
- Registers
- Arithmetic
- Data transfer
- Logical operation
- Conditional/Unconditional operation
- Number representation
- Instruction representation
- Addressing