seegongsik
구조

어떻게 더하기는 실제로 누가 할까요?

앞 레슨에서 '더해라' 명령을 봤다. 그런데 그 더하기는 실제로 누가 할까? 빼기와 비교는 또 누가 할까요? CPU 안에서 계산만 전담하는 일꾼, ALU를 만나 본다.

01

계산만 맡는 부분

CPU 안에는 계산만 전담하는 부분이 있다. 이름은 ALU.
숫자 두 개와 '무슨 계산을 할지'를 받으면 그 계산을 해서 결과를 내놓는다.
계산기의 심장 같은 곳이에요.

107
ALU
계산 일꾼
결과: 17

두 숫자가 위로 들어가고, 계산 결과가 아래로 나온다.

ALU는 '산술 논리 장치'를 줄인 말이다.
이름은 거창하지만 하는 일은 분명하다.
받은 두 수로 시킨 계산을 하는 것, 오직 그것만 해요.

02

다이얼로 계산 종류 고르기

ALU가 쓸모 있는 것은 한 가지 계산만 하지 않기 때문이다.
'무슨 계산'이라는 다이얼을 돌려 더하기, 빼기, 곱하기 가운데 하나를 고르면, 같은 두 수라도 다른 결과가 나와요.
아래에서 두 수를 넣고 다이얼을 바꿀 수 있다.

ALU · 더하기
10 + 7
17

두 수를 넣고 계산 종류를 고른다.

다이얼만 바꿨을 뿐인데 같은 일꾼이 다른 계산을 했다.
이 '무슨 계산'은 사실 앞 레슨의 명령어가 정하는 값이에요.

03

6강의 가산기가 여기 산다

ALU를 열어 보면 낯익은 것이 있다. 6강에서 만든 가산기다.
더하기는 그 가산기가 맡고, 빼기와 비교, 그리고 '그리고·또는' 같은 논리 연산까지 작은 계산 회로들이 한데 모여 있어요.

ALU 내부
가산기
6강에서 만든 그것 (더하기)
빼기 회로
덜어내는 계산
비교 회로
누가 더 큰지 판단
논리 회로
5강의 그리고·또는·아니다
6강의 가산기가 ALU의 한 부품으로 들어와 일하고 있어요

ALU 안에 모인 계산 회로들.

5강과 6강에서 하나씩 만든 작은 회로들이 사실은 이 ALU를 이루는 부품이었다.
작은 것이 모여 계산 일꾼 하나가 된 셈이에요.

04

'누가 더 큰가'도 ALU가 답한다

ALU가 하는 일 가운데 계산만큼 중요한 것이 비교다.
'이 수가 저 수보다 큰가?', '두 수가 같은가?' 같은 질문에 참이나 거짓으로 답한다.
이 참과 거짓 하나가 나중에 '만약'이라는 갈림길의 씨앗이 돼요.

>
참

참은 1, 거짓은 0. 컴퓨터에게는 이것도 결국 0과 1이다.

'10이 7보다 큰가?'의 답은 참이다.
이 단순한 판단이 엄청나게 중요하다.
프로그램이 상황을 보고 길을 고르는 일은 전부 이 비교에서 시작되기 때문이에요.

05

명령어가 다이얼을 돌린다

이제 두 이야기가 만난다.
앞 레슨에서 본 명령어의 앞부분, 곧 연산 부호가 바로 ALU의 다이얼을 돌린다.
'더해라'면 더하기로, '빼라'면 빼기로 다이얼이 맞춰진다.
명령 안에 ALU가 할 계산의 종류가 들어 있는 셈이에요.

ALU · 더하기
10 + 7
17

명령어의 연산 부호 → ALU 다이얼.

명령어가 무엇을 할지 정하고 ALU가 그 계산을 해낸다.
이로써 CPU의 두 핵심 부품이 모였다.
다음 레슨에서는 이 둘이 어떻게 한 몸으로 일하는지 CPU 전체를 들여다본다.

한 줄 정리ALU는 CPU 안에서 계산과 비교를 전담하는 일꾼이고, 6강의 가산기도 그 안에 들어 있다. 명령어의 연산 부호가 ALU가 할 계산을 정하고, 비교에서 나온 참과 거짓은 '만약'의 씨앗이 돼요.
← 구조
이 페이지가 도움 됐다면 후원하기