컴퓨터구조의 큰 그림 🤗
컴퓨터구조에 대한 지식은 크게 2가지로 이루어져 있다.
1. 컴퓨터가 이해하는 정보
2. 컴퓨터의 핵심 부품
컴퓨터가 이해하는 정보
컴퓨터가 이해하는 정보는 데이터와 명령어로 나눌 수 있음
데이터
- 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상 등 정적인 정보들
명령어
- 컴퓨터는 한마디로 명령어를 처리하는 기계
- 명령어는 컴퓨터를 작동시키는 정보
- 프로그램은 명령어들의 모음
컴퓨터의 핵심 부품
핵심 부품은 크게 중앙처리장치, 주기억장치, 보조기억장치, 입출력장치로 나뉨

주기억장치 (메모리)
- 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
- 저장된 값을 사용하기 위해 주소라는 개념이 사용됨
중앙처리장치 (CPU)
- CPU는 메모리에 저장된 명령어를 읽어 들여 실행하는 부품
- 산술논리연산장치(ALU), Register, 제어장치(CU)로 구성됨
- ALU: 계산만을 위해 존재
- Register: CPU 내부의 작고 빠른 저장장치
- CU: 제어 신호라는 전기 신호를 내보내고 명령어를 해석하는 장치
보조기억장치
- 주기억장치는 비싸고 용량이 작고 휘발성이라는 단점이 있음.
→ SSD, HDD등을 이용해 프로그램들을 영구 저장함
입출력장치
- 컴퓨터 외부에 연결되어, 내부와 정보를 교환하는 장치
+ 메인보드, 시스템 버스
- 위의 부품들은 모두 메인보드에 연결됨
- 메인보드에서 시스템 버스를 통해 정보를 주고 받음
- 시스템 버스는 주소 버스, 데이터 버스, 제어 버스로 구성됨
명령어 🥸
- 모든 소스코드는 컴퓨터 내부에서 명령어로 변환됨 (고급 언어 → 저급 언어)
- 저급 언어는 0과 1로 이루어진 기계어와 사람이 읽을 수 있는 어셈블리어로 나뉨
기계어
01100101 10010110 11010111 00001000
10100111 10100001 00101001 10101010
01001010 00100101 11010111 01010101
어셈블리어
mov al, [num1]
mov bl, [num2]
add al, bl
명령어 구조
- 명령어는 Operation Code(연산자)와 Operand(피연산자)로 구성됨
- Operation Code는 데이터 이동, 연산, 제어 변경, 입출력 제어로 분류됨
- Operand는 '연산에 사용할 데이터' 또는 '연산에 사용될 데이터가 저장된 주소'를 의미함

주소 지정 방식
연산에 사용할 데이터의 위치를 찾는 방식 (Operand에 명시됨)
- 즉시 주소 지정 방식: 데이터 그 자체
- 직접 주소 지정 방식: 유효 주소 in memory
- 간접 주소 지정 방식: 유효 주소의 주소
- 레지스터 주소 지정 방식: 유효 주소 in register
- 레지스터 간접 주소 지정 방식: 유효 주소를 저장한 레지스터