리플 캐리·캐리 룩어헤드·캐리 세이브 가산기의 차이: 지연·회로 규모·용도 비교
모두 전가산기를 조합한 덧셈 회로이지만, 자리올림을 다루는 방식이 다릅니다. 리플 캐리 가산기는 전가산기를 직렬로 연결해 자리올림이 하위에서 상위로 차례로 전달되므로, 지연은 비트 수 n에 비례합니다(O(n)). 캐리 룩어헤드 가산기는 각 자리의 생성 신호와 전파 신호로부터 모든 자리올림을 병렬로 구하며, 룩어헤드 회로를 계층화하면 지연은 O(log n)으로 끝납니다. 캐리 세이브 가산기는 세 수를 자리올림을 전달하지 않고 합과 자리올림의 두 수로 정리하는 회로로, 지연은 비트 수와 관계없이 전가산기 1단 분량입니다. 곱셈기에서는 캐리 세이브 가산기의 트리(월리스 트리 등)로 부분곱을 줄이고, 마지막에 남은 두 수를 고속 가산기로 더합니다.
| 비교 항목 | 리플 캐리 가산기 | 캐리 룩어헤드 가산기 | 캐리 세이브 가산기 |
|---|---|---|---|
| 입력과 출력 | 두 수(와 자리올림 입력)를 더해 하나의 합과 자리올림 출력을 낸다 | 두 수(와 자리올림 입력)를 더해 하나의 합과 자리올림 출력을 낸다 | 세 수를 합 S와 자리올림 Cy의 두 수로 정리한다(A + B + C = S + Cy) |
| 자리올림의 처리 | 각 전가산기가 하위로부터의 자리올림을 기다려 차례로 상위로 전달한다 | 생성 신호 g = a·b와 전파 신호 p = a ⊕ b를 써서 c(i+1) = g(i) + p(i)·c(i)를 전개해 자리올림을 병렬로 구한다 | 옆 자리로는 전달하지 않고, 1자리 왼쪽으로 민 수로서 다음 단에 넘긴다 |
| 지연이 늘어나는 방식 | O(n). 최악의 경우 자리올림이 최하위에서 최상위까지 전달된다 | O(log n)(룩어헤드 회로를 계층화한 경우) | O(1). 비트 수와 관계없이 전가산기 1단 분량 |
| 64비트에서의 기준 | 자리올림이 전가산기 64단을 지난다 | 4비트 블록을 3계층으로 구성한다. 병렬 프리픽스 가산기라면 Kogge-Stone형에서 자리올림 계산은 log₂64 = 6단 | 1단은 전가산기 1개 분량의 지연. 64개의 부분곱을 두 개로 정리하는 월리스 트리는 10단 |
| 회로 규모 | 최소. n비트에서 전가산기 n개 | 룩어헤드 회로만큼 크다. 빠른 구성일수록 게이트와 배선이 많다(Kogge-Stone형에서는 대략 n log n) | 1단은 전가산기 n개이며 자리올림을 전달하는 회로는 없다. 곱셈기의 트리 전체로는 부분곱의 비트 수(n² 정도)에 비례한다 |
| 결과의 형태 | 일반적인 2진수 | 일반적인 2진수 | 합과 자리올림의 두 수로 나뉜 중복 표현. 하나의 값으로 만들려면 마지막에 일반 가산기로 더해야 한다 |
| 주요 용도 | 속도가 중요하지 않은 작은 회로나 저전력 회로. FPGA에서는 전용 자리올림 회로(캐리 체인)를 써서 만드는 경우가 많다 | CPU의 ALU, 주소 계산, 부동소수점 유닛, 곱셈기 마지막 단의 덧셈 | 곱셈기의 부분곱 덧셈(월리스 트리, 다다 트리), 곱셈 누산의 누적, 많은 수의 덧셈 |
| 관련 방식 | 캐리 스킵 가산기, 캐리 셀렉트 가산기(속도와 면적이 중간) | 병렬 프리픽스 가산기(Kogge-Stone형, Brent-Kung형 등) | 4:2 컴프레서, 부분곱을 줄이는 부스 알고리즘과의 조합 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.