4강 / 20강
논리 게이트 — 전기 스위치로 덧셈을 만들다
AND · OR · NOT 세 개면 컴퓨터가 만들어진다
CPU가 덧셈을 한다는 건 무슨 뜻일까요? 안에 계산기가 들어 있는 걸까요?
놀랍게도 CPU 안에 있는 건 전기 스위치뿐입니다. 그 스위치를 잘 엮으면 덧셈이 '저절로' 나와요. 이번 강에서 그걸 직접 만들어 봅니다.
세 가지 기본 스위치
여기에 아주 유용한 조합 하나를 더합니다.
네 가지 게이트의 진리표.
Python
브라우저에서 실행
덧셈을 조립한다 — 반가산기
1비트 두 개를 더하면 결과가 이렇습니다.
0 + 0 = 0 (자리올림 0) 0 + 1 = 1 (자리올림 0) 1 + 0 = 1 (자리올림 0) 1 + 1 = 0 (자리올림 1) ← 2진수라 10 이 된다
왼쪽 결과(합)를 보세요. 이건 정확히 XOR입니다. 자리올림을 보세요. 이건 정확히 AND고요.
그러니까 덧셈기 = XOR 하나 + AND 하나입니다. 그게 전부예요.
게이트만으로 8비트 덧셈기를 조립했습니다.
Python
브라우저에서 실행
ALU — 계산 담당 부서
덧셈기·비교기·비트 연산기를 한데 묶어 놓은 것이 ALU(산술논리연산장치)입니다. CPU 안에서 실제로 '계산'을 하는 유일한 부품이에요.
ALU에게는 두 개의 입력값과 "무슨 연산을 할지 고르는 신호"가 들어갑니다. 그 신호를 만들어 주는 게 5강에서 볼 제어장치고요.
비트 연산은 실무에서도 쓰입니다
리눅스 권한 chmod 755가 바로 비트입니다. 읽기·쓰기·실행이 각각 한 비트예요.
chmod 755 의 정체는 비트 플래그입니다.
Python
브라우저에서 실행
권한 비트를 직접 바꿔 봅니다.
bash
브라우저에서 실행
🤔 확인 문제
XOR 게이트가 덧셈에서 맡는 역할은?
해설 1+1은 2진수로
10 이라 그 자리에는 0이 남고 1이 위로 올라갑니다. '남는 자리'는 XOR(다를 때만 1), '올라가는 것'은 AND(둘 다 1일 때만 1)예요.🤔 확인 문제
CPU에 뺄셈 전용 회로가 따로 없는 이유는?
해설 a - b = a + (-b) 이고, -b는 b를 뒤집고 1을 더하면 됩니다. NOT 게이트 몇 개만 추가하면 같은 덧셈기로 뺄셈이 되니 회로 면적이 절반으로 줄어요.