컴퓨터 구조
명령어
operation code, operand
- operation code: 연산
- operand: 연산에 필요한 데이터 혹은 주소, 연산 코드마다 필요로 하는 오퍼랜드의 개수가 다르다.
오퍼랜드에는 데이터가 직접 저장되는 immediate addressing mode(즉시 주소 지정 방식)과 주소가 저장되는 방식이 있다.
주소 지정 방식
- direct addressing mode: 메모리에 데이터가 있고 그 주소를 지정하는 방식
- redirect addressing mode: 메모리 위에 데이터가 있고, 그 주소 또한 메모리에 있을 때, 주소값을 가지고 있는 메모리의 주소를 지정하는 방식
- register addressing mode: 레지스터 위에 데이터가 있을 때, 저장되어 있는 레지스터를 지정하는 방식
- register indirect addressing mode: 메모리 위에 데이터가 있을 때, 메모리의 주소를 레지스터가 가지고 있고 이 레지스터를 지정하는 방식
컴퓨터의 핵심 부품
그림 출처, https://en.wikipedia.org/wiki/System_bus
- CPU
- Memory
- Secondary Memory
- I/O
추가로 위 부품들을 연결하는 Mainboard(motherboard)가 있다. 메인보드에는 정보를 교환하는 System Bus가 존재하며, 버스에는 Address bus, Data bus, Control bus로 구성되어 있다.
CPU
ALU, Register, Control Unit
메모리에 있는 값(명령어, 데이터)을 불러오고 계산하고 실행
ALU
그림 출처, https://en.wikipedia.org/wiki/Arithmetic_logic_unit
제어장치로부터 제어신호를 받고 레지스터에 있는 피연산자를 받는다.
연산에 따라 추가적인 정보를 내보내야 할 때, Flag register에 특정값을 내보낸다.
제어장치
control unit
- 클럭으로 동작된다.
- 명령어 레지스터로부터 명령어를 받아 해석한다.
- 제어 버스로 제어 신호를 읽는다.
레지스터
프로그램 속 명령어와 데이터는 실행 전후로 반드시 레지스터에 저장된다.
- Program Counter: 메모리에 있는, 다음 명령어의 주소를 기록
- Instruction register: 읽어 드린 명령어를 저장
- Memory Address register: 메모리의 주소를 저장
- Memory Buffer register: 메모리에 전달할, 전달받은 값을 저장
Memory
현재 실행되는 프로그램의 명령어와 데이터를 저장
Secondary Memory