[컴퓨터 공학] 전가산기

오늘내일·2023년 9월 11일
0

이전에 정리했던 반가산기는 두 비트의 덧셈 연산이 가능했다. 인간의 욕심은 끝이 없으니 두 비트 이상을 더하기 위해 반가산기를 조합하여 전가산기를 알아보자.

전가산기

전가산기는 반가산기 2개를 연결하여 다음 그림과 같이 만들 수 있다.

위 그림에서 네모로 그려진 게 XOR게이트와 AND게이트를 조합한 반가산기이다. 이렇게 반가산기 2개와 OR게이트를 연결한 것을 전가산기라고 하는데 자리올림까지 처리하기 위하여 Carry(자리올림) In, Out이 있다. 전가산기의 심벌은 아래와 같다.

Carry In이 0일 경우에는 반가산기에서 A와 B를 더하는 경우와 동일하게 아래의 표와 같이 정리할 수 있다.

C(in)ABC(out)S
00000
00101
01001
01110

Carry In이 1일 경우에는 자리올림이 발생하기 때문에 다음과 같이 정리할 수 있다.

C(in)ABC(out)S
10001
10110
11010
11111

Carry In이 갑자기 나와서 헷갈릴 수 가 있는데 아래 그림과 같이 전가산기를 이어 붙여서 많은 자리수의 연산을 처리하기 위함이다.

위 그림에서 A1, B1을 둘째자리수 A0, B0를 첫째자리수라고 하여 더하는 경우를 생각해보자.

가령, A1A0 01이고 B1B0가 11이라고 해보자.(A1 : 0, A0: 1, B1 : 1, B0 : 1) 편의를 위해 A1A0를 A, B1B0를 B라고 부르도록 하겠다. A와 B를 더하기 위해서 첫째자리 수를 먼저 더한다. 즉 A0와 B0가 모두 1이기 때문에 A와 B의 합을 표현하는 S의 첫째자리(S0)는 0이 되고, C1(첫째자리 합의 자리올림)은 1이 된다.

다음에 A와 B의 둘째자리를 보면 A1이 0, B1이 1이라 단순계산하면 A와 B의 합을 표현하는 S의 둘째자리(S1)는 1이 되어야 한다. 하지만 첫째자리의 연산 결과 자리올림이 발생하여 C1이 1이기 때문에 C1까지 더하면 S1은 0이 되고, 둘째자리 또한 자리올림이 발생하여 C2는 1이 된다.

따라서 A : 01, B : 11을 더한 값은 101(C2 : 1, S : 01)이 된다.

이렇게 전가산기를 쭉쭉 이어 붙이면 여러 자리수 연산이 가능해진다. 아래와 같이 전가산기 8개를 이어 붙인 것이 8bit 가산기이다.

참고사이트 :
https://ko.wikipedia.org/wiki/%EA%B0%80%EC%82%B0%EA%B8%B0
https://key-boom.tistory.com/23
https://idlecomputer.tistory.com/88

profile
다시 시작합니다.

0개의 댓글