yeolyi.com성열의 컴퓨터공학

전가산기

논리 게이트를 조합하면 한 자리 이진수 덧셈을 수행하는 반가산기를 만들 수 있습니다. 하지만 반가산기에는 한 가지 한계가 있습니다. 첫 자리를 계산할 때는 두 개의 입력만 고려하면 되지만, 그 다음 자리부터는 이전 자리에서 올라온 올림값(Carry)까지 함께 처리해야 하기 때문입니다.

전가산기

아래에서 비트를 클릭해 두 자리 이진수 덧셈을 직접 해봅시다. 2의 자리를 계산할 때 올림값이 어떻게 전달되는지 확인할 수 있습니다.

1+
100

1의 자리 반가산기

HALFADDERABSumCarry

2의 자리 전가산기

FULLADDERABCinSumCout

이처럼 세 개의 입력값(A, B, 그리고 아래 자리에서 올라온 Carry)을 모두 처리할 수 있는 회로를 전가산기(full adder)라고 합니다.

전가산기의 진리표는 다음과 같습니다. 구분을 위해 이전 자리에서 올라온 올림값을 Cin으로, 다음 자리로 넘어가는 올림값을 Cout이라고 합니다.

CoutSum
00000
00101
01001
01110
10001
10110
11010
11111

복잡해 보이지만 각 행을 이진수 덧셈이라고 생각해봅시다. 예를 들어 마지막 행은 1 + 1 + 1 = 11₂이므로 Sum은 1, Cout은 1이 됩니다.

전가산기는 반가산기와 OR 게이트를 활용해 만들 수 있습니다.

마무리

전가산기는 두 비트에 아래 자리에서 올라온 올림까지, 세 비트를 더하는 회로입니다. 하지만 전가산기 하나로는 1비트 덧셈만 가능합니다. 4비트나 8비트처럼 여러 자리 숫자는 어떻게 더할까요? 다음 글에서 전가산기를 이어 붙여봅시다.