yeolyi.com성열의 컴퓨터공학

디코더

멀티플렉서(MUX)는 여러 입력 중 하나를 골라 출력합니다. 이번에는 반대 방향입니다. 하나의 입력으로 여러 출력 중 하나를 고를 수는 없을까요?

디코더

하나의 입력을 받아 여러 출력 중 정확히 하나만 활성화하는 회로가 디코더입니다.

엘리베이터 버튼을 생각해봅시다. 3층 버튼을 누르면 3층 표시등만 켜집니다. 입력은 하나(버튼)지만, 그에 대응하는 출력 하나만 활성화되는 것입니다.

가장 간단한 2-to-4 디코더는 2비트 입력을 받아 네 개의 출력 중 하나만 1로 만듭니다.

O0O1O2O3
001000
010100
100010
110001
  1. 각 행에서 출력(O0~O3) 중 정확히 하나만 1인 것을 확인해봅시다.
  2. 입력 AB가 00이면 O0, 01이면 O1, 10이면 O2, 11이면 O3가 켜집니다. 각 출력은 AND와 NOT의 조합으로 만들 수 있습니다. 예를 들어 O0 = (NOT A) AND (NOT B), O3 = A AND B입니다.
  1. A와 B를 모두 0으로 두면 O0만 1이 됩니다. 나머지는 모두 0입니다.
  2. B를 1로 바꿔봅시다. O0이 꺼지고 O1이 켜집니다.
  3. A도 바꿔가며 네 가지 조합을 모두 시도해봅시다. 항상 출력 하나만 활성화됩니다.

디코더는 이후 글에서 컴퓨터 내부의 핵심 부품으로 다시 등장합니다.

마무리

하나의 입력으로 여러 출력 중 하나를 활성화하는 디코더는 여러 입력 중 하나를 골라 출력하는 MUX와 방향이 반대지만, 둘 다 선택이라는 같은 문제를 풀고 있습니다. 둘을 함께 쓰면 여러 저장소 중 하나를 골라 읽고 쓸 수 있는데, 이는 레지스터 파일에서 다룹니다.

다음 글에서는 게이트를 조합하여 실제로 덧셈을 수행하는 회로를 만들어봅시다.