컴퓨터는 어떻게 판단할까요?
지금까지 0과 1로 숫자도 글자도 담았다. 그런데 컴퓨터는 담기만 하는 기계가 아니라 '그렇다, 아니다'를 판단하는 기계이기도 해요. 그 판단이 어디서 시작되는지 이번 레슨에서 따라간다.
입력 두 개, 출력 하나
컴퓨터의 모든 판단은 논리 게이트라는 아주 작은 부품에서 시작한다.
게이트는 스위치를 입력으로 받아 정해진 규칙대로 켜짐이나 꺼짐 하나를 내놓는다.
아래에서 기본 게이트 세 가지를 직접 켜고 끌 수 있어요.
게이트라는 이름은 문처럼 신호를 통과시키거나 막는다는 데서 왔다.
입력 스위치를 켜고 끄면 각 게이트의 출력이 바로 바뀐다.
방금 만진 것이 컴퓨터를 이루는 가장 작은 판단 단위다.
이 부품들이 하는 일은 켜짐과 꺼짐을 정해진 규칙대로 바꾸는 것뿐이에요.
규칙은 변하지도 지치지도 않아서, 같은 입력을 넣으면 언제나 같은 답이 나온다.
그리고, 또는, 아니다
세 게이트는 성격이 저마다 다르다.
AND는 까다로워서 두 입력이 모두 켜져야만 켜진다.
OR는 너그러워서 하나만 켜져도 켜져요.
NOT은 청개구리처럼 들어온 것을 반대로 뒤집는다.
그리고 NOT은 다른 둘과 달리 입력을 하나만 받는다.
AND · 그리고
두 손잡이를 동시에 잡아야 켜지는 안전 장치처럼, 둘 다 켜져야 켜져요.
OR · 또는
현관문이든 뒷문이든 하나만 열려도 들어오듯, 하나만 켜져도 켜져요.
NOT · 아니다
누르면 꺼지고 떼면 켜지는 청개구리. 들어온 신호를 반대로 뒤집어요.
세 게이트가 입력을 다루는 방식.
기본 게이트는 이 세 가지뿐이다.
놀랍게도 세상의 모든 컴퓨터가 하는 판단은 이 셋을 섞어서 만든다.
조건이 아무리 많은 판단도 결국 '그렇다'와 '아니다'의 조합이라, 이 세 가지만 있으면 빠짐없이 나타낼 수 있어요.
경우의 수를 표 하나로
게이트의 규칙은 표 하나로 깔끔하게 정리된다.
입력 두 개가 각각 켜짐이나 꺼짐이니 가능한 경우는 딱 네 가지이고, 경우마다 출력을 적어 두면 된다.
이 표를 진리표라고 불러요.
입력이 하나 늘 때마다 경우의 수는 두 배가 되어, 입력이 셋이면 여덟 줄, 넷이면 열여섯 줄이 된다.
| 입력 A | 입력 B | 출력 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
AND 게이트의 진리표.
표를 보면 규칙이 한눈에 들어온다.
AND는 두 입력이 모두 켜진 마지막 한 줄에서만 출력이 켜진다.
OR의 표는 반대로 둘 다 꺼진 첫 줄만 꺼지고 나머지 세 줄은 모두 켜져요.
복잡해 보이던 판단도 결국 이런 표 몇 개로 설명된다.
게이트를 엮으면 더 똑똑해진다
게이트 하나는 단순하지만 여러 개를 이어 붙이면 훨씬 복잡한 판단을 만들 수 있다.
두 입력이 '서로 다를 때만' 켜지는 판단이 좋은 예다.
이것은 게이트 하나로는 안 되지만 몇 개를 엮으면 된다.
서로 다른지 가려내는 이 판단은 두 값을 비교하거나 더할 때 쓰이는 바로 그 조각이에요.
서로 다를 때만 켜지는 조합.
이렇게 단순한 게이트를 차곡차곡 쌓으면 숫자를 더하고 값을 기억하는 회로가 되고, 끝내는 CPU가 된다.
다음 레슨에서는 바로 이 게이트들로 덧셈 기계를 만든다.
놀라운 점은 여기서부터 새 부품이 하나도 필요 없다는 것이다.
같은 세 게이트를 얼마나 많이, 어떻게 엮느냐만 달라져요.