ALU의 숫자 계산
ALU는 숫자를 계산할 때 어떤 과정을 거칠까?
- ALU는 기본적인 논리 회로의 결합으로 사칙 연산과 논리 연산을 수행합니다.
1. 산술 연산
- AND (
&연산): 두 입력 비트가 모두1일 때만1을 반환합니다. - OR (
|연산): 입력 중 하나라도1이면1을 반환합니다. - XOR (
^연산): 두 입력 비트가 다르면1, 같으면0을 반환합니다. - NOT (
~연산): 비트를 반전시킵니다.
예시
| A | B | AND (A & B) | OR (A | B) | XOR (A ^ B) | NOT A (~A) |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 |
2. 6 + 9의 연산 과정
0000 0110 (6)+0000 1001 (9)- 각 비트별
XOR연산을 수행 =0000 1111 (15) - 위처럼 자리올림이 없는 경우 XOR을 사용해 연산이 가능하지만, 자리올림이 있을 경우 ALU는 어떻게 처리할까요?
3. 반가산기(Half Adder)와 전가산기(Full Adder)
- ALU는 자리올림이 발생하면
반가산기와전가산기를 통해 연산을 수행합니다.
반가산기(Half Adder)
- 반가산기는
XOR과AND두 개의 논리 게이트로 구성됩니다. - 반가산기는 두 개의 입력과 두 개의 출력을 가지는 논리 회로입니다.
- 이 회로는 두 개의 입력 비트를 더하고 합과 자리올림(carry)을 출력합니다.

전가산기(Full Adder)
-
전가산기는 두 개의
반가산기와OR게이트로 구성됩니다. -
전가산기는 세 개의 입력과 두 개의 출력을 가지는 논리 회로입니다.
-
세 개의 입력은 더할 두 비트와 이전 단계에서 넘어온 carry를 나타냅니다.
-
carry가 발생하면 AND 게이트로 자리올림을 다음 연산으로 넘겨줍니다.
-
이러한 과정을 통해 최하위 비트부터 시작해 순차적으로 자리올림(carry)을 전파하여 덧셈을 수행합니다.

출처: