[컴퓨터 시스템] 8. 논리 게이트에서 CPU까지 어떤 연결이 생길까
7편까지는 값을 어떻게 표현하는지에 집중했다면, 이제는 그 값을 실제 하드웨어가 어떻게 처리하기 시작하는지로 시선을 내릴 차례입니다. 논리 게이트는 너무 낮은 층위처럼 느껴질 수 있지만, 여기서부터 CPU의 큰 그림이 시작됩니다.
이번 글은 게이트 이름을 외우는 데서 끝나지 않고, 게이트 -> 조합 회로 -> 상태를 가진 회로 -> CPU 구성 요소라는 연결을 한 흐름으로 잡는 데 초점을 둡니다.
- 게이트를 조건 검사처럼 읽는 기본 감각
- AND, OR, NOT이 조합되면 어떤 회로가 되는지
- 덧셈 회로와 ALU 관점의 연결
- 조합 회로와 순차 회로의 차이
- CPU를 작은 회로들의 계층 구조로 보는 방법
1. 게이트는 전기 부품보다 먼저 논리 규칙으로 보는 편이 낫다
게이트를 회로 기호부터 외우기 시작하면 금방 막힐 수 있습니다. 초반에는 게이트를 '입력 비트에 대해 규칙을 적용해 출력 비트를 만드는 작은 판정기'처럼 이해하는 편이 좋습니다.
즉 AND는 둘 다 1일 때만 1, OR는 하나라도 1이면 1, NOT은 뒤집기라는 규칙입니다. 시스템 공부에서 중요한 것은 이 규칙들이 쌓여 더 큰 계산을 만든다는 점입니다.
| 게이트 | 쉬운 말 | 대표 쓰임 |
|---|---|---|
| AND | 둘 다 참이어야 통과 | 조건 동시 만족 |
| OR | 하나라도 참이면 통과 | 대안 조건 결합 |
| NOT | 참/거짓 뒤집기 | 부정, 보수 만들기 |
2. 작은 게이트가 모이면 계산을 하는 회로가 된다
게이트 하나는 작은 규칙이지만, 여러 개를 조합하면 비교, 선택, 덧셈 같은 더 큰 기능을 만들 수 있습니다. 여기서부터는 부품 이름보다 '입력이 들어와서 출력이 결정되는 구조'를 보는 감각이 중요합니다.
특히 덧셈 회로는 게이트가 단순 판정을 넘어서 실제 산술 계산의 바닥을 이룬다는 점을 보여 주는 대표 예시입니다.
3. ALU는 산술과 논리를 묶은 계산 블록으로 볼 수 있다
CPU 안에서 ALU(Arithmetic Logic Unit)는 덧셈, 뺄셈, 논리 연산 같은 계산을 담당하는 핵심 블록입니다. 게이트를 직접 다 세지 않더라도, ALU를 '작은 회로들이 모인 계산 블록'으로 이해하면 충분히 좋은 출발입니다.
즉 비트 표현에서 배운 값들이 실제 하드웨어 계산으로 넘어가는 첫 만남이 바로 이런 블록입니다.
| 입력 | 회로가 하는 일 | 출력 |
|---|---|---|
| 두 피연산자 | 더하기/빼기/논리 연산 선택 | 결과 비트열 |
| 상태 비트 | 올림/영 여부 같은 보조 정보 생성 | 후속 제어에 쓰이는 플래그 |
4. 조합 회로와 순차 회로의 차이가 상태를 만든다
조합 회로는 지금 입력만으로 결과가 정해집니다. 반면 순차 회로는 '이전까지 무엇이 저장돼 있었는가'도 함께 봅니다. 이 차이가 생기면서 레지스터, 카운터, 상태 머신 같은 개념이 등장합니다.
CPU가 한순간의 계산기가 아니라 실행 흐름을 이어 가는 장치가 되려면, 바로 이 상태 보존이 필요합니다.
| 종류 | 무엇에 의존하나 | 대표 감각 |
|---|---|---|
| 조합 회로 | 현재 입력 | 계산 결과를 즉시 만든다 |
| 순차 회로 | 현재 입력 + 이전 상태 | 기억을 가지고 다음 단계로 넘어간다 |
5. CPU는 회로들의 계층 구조로 보는 편이 이해가 잘 된다
CPU를 처음부터 거대한 검은 상자로 보면 이후 구조가 계속 추상적으로 남습니다. 하지만 게이트, 계산 블록, 상태를 가진 저장 요소, 제어 회로가 쌓여 CPU를 만든다고 생각하면 훨씬 덜 막막합니다.
즉 CPU는 갑자기 등장하는 신비한 장치가 아니라, 지금까지 본 작은 회로 개념들이 층을 이루며 커진 결과입니다.
6. 직접 해볼 문제: 이 회로는 어떤 질문에 답하는가
아래 질문은 회로도를 외우는 문제가 아니라, 게이트가 무엇을 계산하는지 사고방식으로 읽는 연습입니다.
이번 글에서 기억할 것
스스로 점검
다음 글 예고
다음 글에서는 CPU가 실제로 명령을 가져오고 해석하고 실행하는 흐름, 그리고 파이프라인이 왜 필요한지로 넘어갑니다.
'학습 자료 글 > 컴퓨터시스템' 카테고리의 다른 글
| 컴퓨터시스템 기초 10. 어셈블리는 왜 C와 하드웨어 사이의 번역본일까 (0) | 2026.03.31 |
|---|---|
| 컴퓨터시스템 기초 9. CPU는 명령을 어떤 단계로 실행할까 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 7. 왜 실수는 10진수처럼 정확하게 저장되지 않을까 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 6. 바이트 순서는 왜 값을 다르게 보이게 만들까 (0) | 2026.03.31 |
| 컴퓨터시스템 기초 5. 데이터는 왜 결국 비트로 표현될까 (0) | 2026.03.31 |