더하기는 실제로 누가 할까요?
지난 시간 '더해라' 명령을 봤죠. 그런데 그 더하기는 실제로 누가 할까요? 빼기랑 비교는요? CPU 안에서 계산만 전담하는 일꾼, ALU를 만나봐요.
계산만 맡는 부분이 있어요
CPU 안에는
계산만 전담하는
부분이 있어요.
이름은 ALU.
숫자 두 개와
'무슨 계산을 할지'를 받으면,
그 계산을 해서
결과를 내놓죠.
계산기의 심장 같은 거예요.
두 숫자가 위로 들어가고, 계산 결과가 아래로 나와요.
ALU는
'계산 논리 장치'를
줄인 말이에요.
이름은 거창하지만
하는 일은 분명해요.
받은 두 수로
시킨 계산을 하는 것.
오직 그것만 해요.
다이얼로 계산 종류를 골라요
ALU가 똑똑한 건
한 가지만 하는 게 아니라서예요.
더하기,
빼기,
그리고 비교까지.
'무슨 계산'이라는 다이얼을 돌려
원하는 걸 고르면,
같은 두 수라도
다른 결과가 나와요.
직접 돌려보세요.
두 수를 넣고, 계산을 골라보세요.
다이얼만 바꿨을 뿐인데
같은 일꾼이
다른 계산을 해줬죠?
이 '무슨 계산'은
사실 지난 시간의 명령어가
정해주는 거예요.
6강의 가산기가 여기 살아요
ALU를 열어보면
낯익은 게 있어요.
6강에서 만든 가산기예요.
더하기는 그 가산기가 맡죠.
빼기, 비교, 그리고
그리고·또는 같은 논리 연산까지,
작은 계산 회로들이
모여 사는 동네예요.
ALU 안에 모인 계산 회로들.
우리가 5강, 6강에서
하나씩 만든 작은 회로들이,
사실은 이 ALU를
이루는 부품이었던 거예요.
작은 게 모여
계산 일꾼 하나가 됐죠.
'누가 더 큰가'도 ALU가 답해요
ALU가 하는 일 중
계산만큼 중요한 게 비교예요.
'이 수가 저 수보다 큰가?'
'두 수가 같은가?'
이런 질문에
참 또는 거짓으로 답하죠.
이 참·거짓 하나가,
나중에 '만약'이라는
갈림길의 씨앗이 돼요.
참은 1, 거짓은 0. 컴퓨터에겐 이것도 결국 0과 1이에요.
'10이 7보다 큰가?'
답은 참.
이 단순한 판단이
엄청나게 중요해요.
프로그램이 상황을 보고
길을 고르는 건,
전부 이 비교에서 시작하거든요.
명령어가 다이얼을 돌려줘요
이제 두 영역이 만나요.
지난 시간의 명령어 기억하죠?
'더해라'의 앞부분,
그 연산 부호가
바로 ALU의 다이얼을 돌려요.
'더해라'면 더하기로,
'빼라'면 빼기로.
명령이 ALU에게
무슨 계산을 할지 알려주는 거예요.
명령어의 연산 부호 → ALU 다이얼.
명령어가 무엇을 할지 정하고,
ALU가 그 계산을 해내고.
이제 CPU의 두 핵심 부품이
모였어요.
다음 시간엔
이 둘이 어떻게 한 몸으로 일하는지,
CPU 전체를 들여다볼게요.