seegongsik
내 단어장
구조

CPU는 어떻게 일할까

계산을 맡는 ALU, 무엇을 할지 정하는 명령어. 이 둘이 어떻게 한 몸으로 움직일까요? CPU가 명령을 하나씩 처리하는 흐름을 따라가 봐요.

01

CPU는 세 박자를 반복해요

CPU가 하는 일은
사실 단순해요.
명령을 하나 가져오고,
그게 무슨 명령인지 풀고,
그걸 실행하고.
또 다음 명령을 가져오고.
이 세 박자를
쉬지 않고 반복해요.

1
인출
명령을 가져와요
2
해석
무슨 명령인지 풀어요
3
실행
ALU가 일해요
이 세 박자가 1초에 수십억 번 돌아요. 그래서 컴퓨터가 빠른 거예요.

인출 → 해석 → 실행, 그리고 반복.

인출, 해석, 실행.
이걸 한 박자라고 하면,
CPU는 1초에
이 박자를 수십억 번 돌려요.
하나하나는 단순한데,
엄청 빨라서
복잡한 일을 해내죠.

02

다음에 할 명령을 가리키는 손가락

그런데 CPU는
지금 몇 번째 명령을
할 차례인지
어떻게 알까요?
메모리 어딘가에
명령들이 줄지어 있고,
그중 '다음에 할 것'을
가리키는 게 있어요.
PC, 프로그램 카운터예요.

PC
0
다음 주소
0명령 A
1명령 B
2명령 C
3명령 D

PC가 다음 명령을 가리켜요.

명령을 하나 가져올 때마다,
PC는 한 칸 늘어나요.
0번 했으면 1번,
1번 했으면 2번.
이 손가락 덕분에
CPU는 순서를 잃지 않고
명령을 차례차례 해내요.

03

부품들이 모여 CPU가 돼요

이제 부품이 모여요.
다음을 가리키는 PC,
명령을 푸는 해석기,
계산하는 ALU,
잠깐 값을 쥐는 작은 칸들.
따로 보면 작지만,
모이면 명령을 처리하는
하나의 CPU가 돼요.

CPU
PC
다음 명령을 가리켜요
해석기
명령을 풀어요
ALU
계산해요 (11강)
레지스터
값을 잠깐 쥐어요
11강의 ALU는 이 중 '계산' 담당이었어요. CPU는 이 부품들의 팀이에요.

CPU 한 몸.

PC가 다음을 가리키고,
해석기가 명령을 풀고,
ALU가 계산하고,
레지스터가 값을 쥐고.
각자 맡은 일을 하며
한 박자를 같이 돌려요.
이게 CPU가 일하는 모습이에요.

04

명령 세 줄을 직접 실행해요

짧은 프로그램을 줄게요.
'3을 담아',
'4를 더해',
'결과를 보여줘'.
한 박자씩 진행하며
PC가 움직이는 걸,
값이 쌓이는 걸
같이 봐요.
진행을 눌러보세요.

03을 담아
14를 더해
2결과를 보여줘
PC
0
값 (레지스터)
0
진행을 누르면 시작해요

PC를 따라 한 줄씩 실행.

PC가 0, 1, 2로 늘면서
명령을 하나씩 실행했죠?
값이 3이 됐다가
7이 되고,
마지막에 화면에 떴어요.
이게 프로그램이
도는 모습이에요.

05

PC가 다른 곳으로 뛰면

PC는 보통
한 칸씩 나아가지만,
가끔 다른 곳으로 뛰어요.
'5번 명령으로 가'
같은 명령을 만나면,
PC가 그 주소로 바뀌죠.
이 '건너뛰기'가
지난 시간 본 비교의 참·거짓과 만나면,
'만약'이라는 갈림길이 돼요.

0명령
1명령
25번으로 가
3(건너뜀)
4(건너뜀)
5여기로 점프
PC를 바꾸면 명령의 순서를 바꿀 수 있어요. 다음 시간에 볼 '만약'과 '반복'이 다 이걸로 만들어져요.

PC가 2번에서 5번으로 뛰어요.

한 칸씩 가는 대신
PC를 다른 값으로 바꾸면,
프로그램의 흐름이 바뀌어요.
건너뛰거나,
되돌아가거나.
다음 시간엔
이 점프가 어떻게
'만약'과 '반복'이 되는지 볼게요.

한 줄 정리CPU는 인출·해석·실행을 쉬지 않고 반복하고, PC라는 손가락이 다음에 할 명령을 가리켜요. PC를 한 칸씩 늘리면 순서대로, 다른 곳으로 바꾸면 건너뛰기. 이 단순한 반복이 모든 프로그램의 바탕이에요.
이 페이지가 도움 됐다면 후원하기
구조