정의 가산기(加算器, 영어: adder)는 디지털 회로에서 두 개 이상의 이진수를 더하는 연산(가산)을 수행하는 논리 회로 또는 장치이다.
개요 가산기는 컴퓨터의 중앙 처리 장치(CPU) 내부에 포함된 산술 논리 장치(ALU)의 핵심적인 구성 요소 중 하나로, 모든 디지털 컴퓨터와 계산기의 기본적인 연산 기능을 담당한다. 이진수의 덧셈을 기본으로 하며, 더하는 비트 수와 자리올림(carry) 처리 방식에 따라 다양한 종류의 가산기가 존재한다. 가장 기본적인 형태는 반가산기(half adder)와 전가산기(full adder)이다.
어원/유래 '가산기'라는 용어는 한자어 '가산(加算)'과 접미사 '기(器/機)'가 결합된 형태이다.
- 가산(加算, gasan): '더할 가(加)'와 '셈 산(算)'으로 이루어져 '더하여 계산함', 즉 덧셈을 의미한다.
- -기(器/機, -gi): '기구', '장치', '기계'를 의미하는 접미사이다. 따라서 '가산기'는 '덧셈을 수행하는 장치'를 의미한다.
가산의 개념은 고대 주판부터 시작하여 17세기 파스칼의 계산기, 라이프니츠의 계산기에 이르기까지 기계적인 형태로 발전해왔다. 현대적인 디지털 가산기는 1940년대 이후 전자 컴퓨터의 발명과 함께 논리 게이트를 기반으로 구현되기 시작했으며, 폰 노이만 구조와 함께 전자식 컴퓨터의 기본적인 연산 장치로 자리 잡았다.
특징 가산기는 입력되는 비트의 수와 자리올림 처리 방식에 따라 다음과 같은 주요 종류와 특징을 갖는다.
-
반가산기(Half Adder):
- 두 개의 1비트 이진수(A, B)를 입력받아 합(Sum, S)과 자리올림(Carry, C)을 출력한다.
- 이전 자리에서 발생하는 자리올림(carry-in)을 고려하지 못하기 때문에 다중 비트 덧셈에는 직접 사용되기 어렵다.
- 주로 XOR 게이트와 AND 게이트를 조합하여 구현된다.
-
전가산기(Full Adder):
- 세 개의 1비트 이진수(두 개의 입력 비트 A, B와 이전 자리에서 넘어온 자리올림 carry-in, Cin)를 입력받아 합(Sum, S)과 새로운 자리올림(Carry-out, Cout)을 출력한다.
- 이전 자리의 자리올림을 처리할 수 있으므로, 여러 개의 전가산기를 계단식으로 연결하여 다중 비트 덧셈을 수행할 수 있다.
- 두 개의 반가산기와 하나의 OR 게이트를 조합하여 구현할 수 있다.
-
다중 비트 가산기:
- 파형 전파 가산기(Ripple Carry Adder): 가장 기본적인 다중 비트 가산기로, 여러 개의 전가산기를 직렬로 연결하여 구성한다. 한 전가산기의 자리올림 출력(Cout)이 다음 전가산기의 자리올림 입력(Cin)으로 전달되는 방식이다. 구조는 간단하지만, 자리올림 신호가 순차적으로 전파되어야 하므로 비트 수가 많아질수록 연산 시간이 길어지는(전파 지연) 단점이 있다.
- 선행 자리올림 가산기(Carry-Lookahead Adder, CLA): 파형 전파 가산기의 전파 지연 문제를 개선하기 위해 개발된 고속 가산기이다. 각 자리에서 발생할 자리올림을 미리 예측하는 논리 회로를 추가하여, 자리올림 신호가 순차적으로 전파될 필요 없이 거의 동시에 계산되도록 한다. 이로 인해 연산 속도가 매우 빠르지만, 회로의 복잡도가 증가한다.
- 병렬 가산기(Parallel Adder): 여러 비트를 동시에 입력받아 한 번에 덧셈을 수행하는 가산기를 통칭한다. 파형 전파 가산기와 선행 자리올림 가산기는 모두 병렬 가산기의 일종이다.
- 직렬 가산기(Serial Adder): 한 번에 한 비트씩 입력받아 덧셈을 순차적으로 수행하는 가산기이다. 회로가 간단하지만 연산 속도가 느리다.
관련 항목
- 산술 논리 장치 (ALU)
- 논리 회로
- 이진수
- 디지털 회로
- 반가산기
- 전가산기
- 감산기 (subtractor)
- 곱셈기 (multiplier)