멀티플렉서(MUX)는 여러 입력 중 하나를 골라 출력합니다. 이번에는 반대 방향입니다. 하나의 입력으로 여러 출력 중 하나를 고를 수는 없을까요?
하나의 입력을 받아 여러 출력 중 정확히 하나만 활성화하는 회로가 디코더입니다.
엘리베이터 버튼을 생각해봅시다. 3층 버튼을 누르면 3층 표시등만 켜집니다. 입력은 하나(버튼)지만, 그에 대응하는 출력 하나만 활성화되는 것입니다.
가장 간단한 2-to-4 디코더는 2비트 입력을 받아 네 개의 출력 중 하나만 1로 만듭니다.
| O0 | O1 | O2 | O3 | ||
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 | 1 |
00이면 O0, 01이면 O1, 10이면 O2, 11이면 O3가 켜집니다. 각
출력은 AND와 NOT의 조합으로 만들 수 있습니다. 예를 들어
O0 = (NOT A) AND (NOT B), O3 = A AND B입니다.디코더는 이후 글에서 컴퓨터 내부의 핵심 부품으로 다시 등장합니다.
하나의 입력으로 여러 출력 중 하나를 활성화하는 디코더는 여러 입력 중 하나를 골라 출력하는 MUX와 방향이 반대지만, 둘 다 선택이라는 같은 문제를 풀고 있습니다. 둘을 함께 쓰면 여러 저장소 중 하나를 골라 읽고 쓸 수 있는데, 이는 레지스터 파일에서 다룹니다.
다음 글에서는 게이트를 조합하여 실제로 덧셈을 수행하는 회로를 만들어봅시다.