어떻게 게이트를 엮으면 덧셈 기계가 돼요
앞 레슨에서 만든 그리고, 또는, 아니다 게이트를 몇 개 엮으면 놀랍게도 덧셈하는 기계가 된다. 컴퓨터가 계산을 시작하는 바로 그 출발점이에요.
0과 1의 세계에서는 1+1이 10
덧셈을 회로로 만들기 전에 0과 1로 더하는 법부터 확인한다.
0+0은 0이고 0+1은 1이다. 여기까지는 쉽다.
그런데 1+1은 어떨까? 이진수에는 2라는 숫자가 없으니 자리를 올려 10이 된다.
십진수 10이 아니라 이진수로 일영이에요.
두 비트를 더한 결과를 경우마다 확인할 수 있다.
그러니까 두 비트를 더하면 결과가 두 개 나온다.
하나는 그 자리에 남는 값이고, 다른 하나는 다음 자리로 넘기는 값이다.
이 둘을 각각 합과 자리올림이라고 불러요.
합은 XOR, 자리올림은 AND
놀라운 점은 이 규칙이 앞 레슨의 게이트로 그대로 만들어진다는 것이다.
합은 두 비트가 서로 다를 때만 1이 되니 XOR(서로 다름)와 같다.
자리올림은 둘 다 1일 때만 1이 되니 AND 게이트와 같아요.
게이트 두 개면 끝이다.
반가산기. 입력을 켜면 합과 자리올림이 바로 바뀐다.
두 비트를 더해 합과 자리올림을 내놓는 이 작은 기계를 반가산기라고 부른다.
게이트 딱 두 개로 세상에서 가장 간단한 덧셈기를 만든 셈이에요.
받아올림까지 더해야 진짜 덧셈
그런데 반가산기에는 빈틈이 있다.
여러 자리를 더할 때는 아랫자리에서 올라온 자리올림도 함께 더해야 한다.
그래서 입력이 A, B, 그리고 아래에서 받은 올림까지 세 개가 된다.
이 셋을 모두 더하는 기계가 전가산기예요.
전가산기. 입력이 세 개다.
전가산기는 반가산기 두 개에 또는 게이트 하나를 덧붙여 만든다.
작은 부품으로 조금 큰 부품을 만들고, 그것을 다시 엮어 더 큰 것을 만든다.
컴퓨터는 처음부터 끝까지 이런 식으로 만들어져요.
여러 개를 이으면 큰 수도 더한다
전가산기 하나는 한 자리만 더한다.
네 자리나 여덟 자리 수를 더하려면 전가산기를 옆으로 죽 이어 붙이면 된다.
한 자리의 자리올림을 바로 옆 자리의 입력으로 넘기는 방식이에요.
아래에서 두 수를 직접 켜서 더할 수 있다.
두 수를 켜서 더하기 (4비트).
윗줄과 가운뎃줄을 켜면 맨 아랫줄에 합이 저절로 나타난다.
사람이 계산하는 것이 아니라, 게이트들이 자리올림을 옆으로 넘기며 답을 만들어 내는 것이다.
덧셈은 결국 게이트였다
컴퓨터가 계산을 한다는 것은 사실 마법이 아니었다.
그리고, 또는, 아니다 게이트를 정해진 모양으로 엮어 둔 것뿐이에요.
스위치를 켜면 전기가 게이트들을 타고 흐르고, 그 끝에서 답이 불을 밝힌다.
작은 부품에서 큰 부품으로.
이렇게 작은 부품에서 큰 기능이 자라난다.
다음 레슨에서는 전기가 계속 흐르는 동안에도 값을 붙잡아 두는 회로, 곧 기억하는 회로를 만난다.