컴퓨터 구조의 큰 그림: 핵심 개념 정리
1. 컴퓨터 구조에서 배우는 주요 내용
컴퓨터 구조를 효과적으로 학습하기 위해서는 전체적인 큰 그림을 이해하는 것이 중요합니다. 컴퓨터 구조에서 배울 내용은 크게 두 가지로 나뉩니다.
-
컴퓨터가 이해하는 정보
- 데이터(Data): 숫자, 문자, 이미지, 동영상 등의 정적인 정보.
- 명령어(Instruction): 컴퓨터가 수행해야 하는 동작을 지시하는 정보.
-
컴퓨터의 네 가지 핵심 부품
- CPU (Central Processing Unit, 중앙처리장치)
- 메모리 (Memory, 주기억장치)
- 보조기억장치 (Storage, 보조 기억장치)
- 입출력장치 (I/O Devices, Input/Output 장치)

2. 컴퓨터가 이해하는 정보
컴퓨터는 데이터와 명령어라는 두 가지 정보를 처리합니다.
1) 데이터 (Data)
- 컴퓨터에서 다루는 정적인 정보.
- 예: 숫자, 문자, 이미지, 동영상 등.
- 컴퓨터는 0과 1(이진수)만 이해할 수 있기 때문에, 모든 데이터는 0과 1의 조합으로 표현됨.
2) 명령어 (Instruction)
- 컴퓨터가 수행해야 하는 작업을 지정하는 정보.
- 예:
1 + 2를 계산하라 → 여기서 1과 2는 데이터, 더하라는 명령어.
"안녕하세요"를 화면에 출력하라 → "안녕하세요"는 데이터, 출력하라는 명령어.
즉, 데이터는 컴퓨터가 다루는 정보이고, 명령어는 컴퓨터가 데이터를 처리하는 방식을 지정합니다.
3. 컴퓨터의 네 가지 핵심 부품
컴퓨터의 종류에 상관없이, 모든 컴퓨터는 기본적으로 동일한 네 가지 핵심 부품을 갖추고 있습니다.
1) CPU (중앙처리장치)
- 컴퓨터의 두뇌 역할을 담당.
- 메모리에 저장된 명령어를 읽고, 해석하고, 실행하는 장치.
- CPU 내부의 주요 구성 요소:
- ALU (산술 논리 연산 장치, Arithmetic Logic Unit): 계산 및 논리 연산 수행.
- 제어장치 (Control Unit): 명령어를 해석하고 실행 순서를 제어.
- 레지스터 (Register): CPU 내부의 작은 저장공간 (임시 데이터 저장).




2) 메모리 (주기억장치)
- 현재 실행 중인 프로그램의 명령어와 데이터를 저장하는 장치.
- RAM (램, 휘발성 메모리) → 전원이 꺼지면 데이터가 사라짐.
- 메모리는 주소(Address) 개념을 사용하여 데이터의 위치를 저장.



3) 보조기억장치 (Storage)
- 실행되지 않는 프로그램이나 데이터를 저장하는 장치.
- 전원이 꺼져도 데이터가 보존됨.
- 예: HDD(하드디스크), SSD(솔리드 스테이트 드라이브), USB, SD 카드 등.


4) 입출력장치 (I/O Devices)
- 컴퓨터와 외부 환경 간의 데이터 입출력을 담당하는 장치.
- 입력장치: 키보드, 마우스, 마이크 등.
- 출력장치: 모니터, 스피커, 프린터 등.
- 입출력장치와 보조기억장치는 개념적으로 구분되지만, 실제로는 유사한 역할을 수행.

4. 컴퓨터 부품 간의 연결: 메인보드와 시스템 버스
1) 메인보드 (Motherboard)
- 컴퓨터의 중앙 회로 기판으로, 네 가지 핵심 부품을 연결하는 역할을 함.
- 각 부품을 연결하는 슬롯(Slot)과 포트(Port)를 제공.

2) 시스템 버스 (System Bus)
- CPU, 메모리, 입출력장치, 보조기억장치가 데이터를 주고받는 통로.
- 시스템 버스는 크게 세 가지로 구성됨:
- 주소 버스 (Address Bus): 메모리에서 데이터를 가져올 주소를 지정.
- 데이터 버스 (Data Bus): 명령어 및 데이터를 주고받음.
- 제어 버스 (Control Bus): CPU가 다른 부품에 명령을 내릴 때 사용.
🔹 시스템 버스의 구성 요소
1️⃣ 주소 버스 (Address Bus)
📌 역할: CPU가 특정 메모리 주소(위치)를 지정할 때 사용
📌 CPU → 메모리 또는 입출력 장치로 데이터를 읽거나 쓸 주소를 전달
📌 단방향(🚀 CPU → 메모리/입출력 장치)
✅ 예제:
- CPU가 "메모리 0x0001 주소의 데이터를 가져와!"라고 요청할 때 주소 버스를 사용하여 0x0001을 전송
- CPU가 "메모리 0x0002 주소에 데이터를 저장해!"라고 요청할 때도 주소 버스를 통해 해당 위치를 지정
📌 비트 수가 중요한 이유:
- 주소 버스의 크기가 클수록 CPU가 접근할 수 있는 메모리의 크기가 커짐!
- 예:
- 16비트 주소 버스 → 최대 2¹⁶(65,536)개 주소 가능 (64KB 메모리)
- 32비트 주소 버스 → 최대 2³²(4GB) 메모리 지원
- 64비트 주소 버스 → 최대 2⁶⁴(16EB, 엑사바이트) 메모리 지원
2️⃣ 데이터 버스 (Data Bus)
📌 역할: CPU와 메모리/입출력 장치 간의 데이터 전송
📌 양방향(🚀 CPU ↔ 메모리/입출력 장치)
📌 명령어, 데이터 등을 실어 나르는 통로
✅ 예제:
- CPU가 "메모리 0x0001 주소에서 데이터를 읽어와!" 요청하면, 해당 데이터가 데이터 버스를 통해 CPU로 전송됨
- CPU가 연산 결과를 메모리에 저장할 때도 데이터 버스를 통해 전송
📌 비트 수가 중요한 이유:
- 데이터 버스의 크기가 크면 한 번에 전송할 수 있는 데이터량이 많아짐
- 예:
- 8비트 데이터 버스 → 한 번에 1바이트(8비트) 데이터 전송 가능
- 16비트 데이터 버스 → 2바이트(16비트) 전송 가능
- 64비트 데이터 버스 → 8바이트(64비트) 전송 가능 (현대 CPU 대부분 64비트)
3️⃣ 제어 버스 (Control Bus)
📌 역할: CPU가 다른 부품들에게 "무엇을 해야 하는지" 명령을 내리는 역할
📌 CPU → 메모리/입출력 장치로 신호 전송
📌 데이터 읽기(Read), 쓰기(Write), 인터럽트 처리, 메모리 접근 허가 등 제어 신호 담당
✅ 예제:
- CPU가 "메모리 0x0001 주소의 데이터를 가져와!"라고 하면,
- 제어 버스를 통해 "읽기(Read) 신호"를 보냄
- 데이터 버스를 통해 해당 데이터를 CPU로 전송
- CPU가 메모리에 값을 저장할 때
- 제어 버스를 통해 "쓰기(Write) 신호"를 보냄
- 데이터 버스를 통해 값을 메모리에 저장
📌 제어 버스에 포함되는 주요 신호:
1. 메모리 읽기(Read) 신호 → 메모리에서 데이터를 가져옴
2. 메모리 쓰기(Write) 신호 → 데이터를 메모리에 저장
3. 인터럽트 요청(Interrupt Request, IRQ) → 입출력 장치가 CPU의 주의를 끌 때 사용
4. 버스 요청(Bus Request) → 여러 장치가 버스를 사용할 때 우선순위 조정
🔹 시스템 버스를 통한 데이터 흐름 예제
✅ CPU가 메모리에서 데이터를 가져오는 과정
1️⃣ CPU → 주소 버스 → 0x0001번지 데이터를 요청
- CPU가 주소 버스를 통해 0x0001 주소를 메모리에 전달
2️⃣ CPU → 제어 버스 → "읽기(Read)" 신호 전송
- CPU가 제어 버스를 통해 메모리에 "데이터 읽기" 요청
3️⃣ 메모리 → 데이터 버스 → CPU로 데이터 전달
- 메모리가 0x0001 주소의 데이터를 데이터 버스를 통해 CPU로 전송
💡 즉, 주소를 지정하고(주소 버스) → 읽기 요청을 보내고(제어 버스) → 데이터를 받아온다(데이터 버스)!
🔹 현대 시스템에서는?
1️⃣ 예전에는 CPU, 메모리, 입출력 장치가 모두 공통 시스템 버스를 사용했지만, 병목현상(Bottleneck) 문제가 발생
2️⃣ 현대 컴퓨터에서는 CPU와 메모리 사이에 "전용 고속 버스" 사용
- 예: Intel의 프론트 사이드 버스(FSB), AMD의 하이퍼트랜스포트(HT)
3️⃣ GPU, SSD 등 고속 장치는 PCIe(PCI Express) 버스를 사용
| 버스 종류 | 역할 | 데이터 흐름 방향 | 예제 |
|---|
| 주소 버스 (Address Bus) | CPU가 읽거나 쓸 메모리 주소 지정 | 단방향 (CPU → 메모리) | 0x0001 주소의 데이터 요청 |
| 데이터 버스 (Data Bus) | 명령어 및 데이터 전송 | 양방향 (CPU ↔ 메모리) | 메모리에서 CPU로 데이터 전달 |
| 제어 버스 (Control Bus) | CPU가 장치를 제어하는 신호 전송 | 단방향 (CPU → 메모리/장치) | "읽기(Read)" 또는 "쓰기(Write)" 명령 |


5. 컴퓨터 구조의 큰 그림 정리
1) 컴퓨터가 이해하는 정보
✔ 데이터 (Data) → 숫자, 문자, 이미지 등
✔ 명령어 (Instruction) → 데이터를 처리하는 방법
2) 네 가지 핵심 부품
✔ CPU → 명령어 실행
✔ 메모리 → 실행 중인 프로그램의 명령어와 데이터 저장
✔ 보조기억장치 → 실행되지 않는 프로그램과 데이터 저장
✔ 입출력장치 → 외부와 데이터 교환
3) 부품 간 연결
✔ 메인보드 → 모든 부품을 연결하는 회로 기판
✔ 시스템 버스 → CPU, 메모리, 입출력 장치 간 데이터 통신
결론
컴퓨터 구조를 학습하면 컴퓨터가 어떻게 동작하는지에 대한 전체적인 그림을 이해할 수 있습니다.
1️⃣ 컴퓨터가 이해하는 정보 (데이터 & 명령어)를 학습하면, 프로그래밍의 기본 원리를 이해할 수 있습니다.
2️⃣ CPU, 메모리, 보조기억장치, 입출력장치라는 핵심 부품을 이해하면, 컴퓨터 시스템이 어떻게 동작하는지 알 수 있습니다.
3️⃣ 메인보드와 시스템 버스를 학습하면, 각 부품들이 어떻게 연결되어 데이터를 주고받는지 알 수 있습니다.
👉 이러한 개념을 바탕으로, 앞으로의 컴퓨터 구조 및 운영체제 학습이 더욱 수월해질 것입니다!