CPU는 정확히 무슨 일을 할까?
함정 질문CPU가 "계산을 한다"고들 하는데, 그 CPU가 할 줄 아는 일은 정확히 몇 가지나 될까요?
그림으로 보기
1. 가져오기 — 102번 서랍에서 명령 하나를 꺼낸다
CPU는 번호가 붙은 서랍(메모리)에서 명령을 하나씩 꺼내옵니다. 지금 꺼낸 것은 "200번 서랍의 값을 읽어와라"입니다.
속도
사람이 쓴 코드
total = price + tax컴파일 ↓
CPU가 실제로 보는 것
LOAD → ADD → STORE → HALT지금 꼭 볼 것
서랍 번호를 기억하는 자리가 따로 있어서, 하나를 꺼내면 곧바로 다음 번호로 넘어갑니다.
상태 기록
- 다음 서랍 번호
- 103
- 지금 든 명령
- LOAD R1, [200]
- 손에 든 값
- —
- 202번 서랍
- —
문장 따라가기
1/38CPU는 정확히 무슨 일을 할까요?
텍스트 모드에서는 3초마다 다음 문장으로 넘어갑니다.
이렇게 생각해 보세요
CPU는 만능 계산기가 아니라 버튼이 몇 개 안 되는 리모컨에 가깝습니다. 읽어오기, 더하기, 넣어두기, 멈추기 같은 아주 단순한 버튼들뿐입니다.
버튼은 한 번에 하나씩만 눌립니다. 그리고 버튼 하나를 누를 때마다 언제나 같은 세 단계를 지납니다 — 번호가 붙은 서랍에서 명령을 가져오고, 그게 무슨 버튼인지 알아보고, 시키는 대로 값을 옮깁니다.
위 화면에서 "다음 변화"를 눌러 그 세 단계를 하나씩 넘겨 보세요. 우리가 쓴 코드 한 줄은 이 세 단계 묶음이 여러 번 반복된 것입니다.
숫자로 뒤집기
계산 · 지금 계산됨
이 화면의 프로그램이 쓰는 버튼은 4종류뿐입니다 — 읽어오기·더하기·넣어두기·멈추기. 그리고 버튼 하나는 언제나 같은 3단계를 지납니다.
버튼 한 번에 박자 하나가 든다고 하면, 3GHz CPU는 1초에 3,000,000,000번 버튼을 누를 수 있습니다. 다음 장에서는 이 숫자가 왜 그대로 성능이 되지 않는지 봅니다.
이 숫자는 문구에 박아둔 값이 아니라, 이 화면을 그릴 때 산수로 계산한 값입니다.
CPU는 똑똑해서 빠른 게 아니라, 아주 단순한 동작을 엄청나게 여러 번 하기 때문에 빠릅니다.
진도는 이 브라우저에만 저장됩니다 (계정·기기 간 동기화 없음).
확인 문제
0 / 3 맞음1.코드 한 줄 `total = price + tax`는 CPU에서 어떻게 처리되나요?
2.메모리에는 명령과 값이 함께 들어 있습니다. CPU는 둘을 어떻게 구분하나요?
3.CPU가 "한 번에 버튼 하나"인데도 컴퓨터가 여러 일을 함께 하는 것처럼 보이는 이유는?
새로 나온 말
- 명령어
- CPU가 아는 버튼 하나입니다. "가져와라", "더해라"처럼 그 이상 쪼갤 수 없는 동작입니다.
- 레지스터
- CPU가 지금 다루는 값 한두 개를 잠깐 들고 있는 아주 작은 자리입니다. 위 화면의 "손에 든 값"이 그것입니다.
- 메모리 주소
- 값이 든 서랍에 붙은 번호입니다. CPU는 이름이 아니라 이 번호로 값을 찾아갑니다.