3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi

11. 디코더 (Decoder)

  • 2020.05.15 16:15
  • Study Note/디지털시스템

CPU는 산술 논리 장치ALU와 컨트롤 유닛CU, 메모리인 레지스터Register로 구성된다.
ALU는 입력에 대한 산술 연산과 논리 연산을 처리하는 장치로, CU로부터 전달된 Select 신호에 따라, 적절한 연산을 수행한다. (예를들어, 00이 들어오면 AND 연산, 01이 들어오면 OR 연산 등 CU가 원하는 연산을 처리해준다.)

CPU의 레지스터는 CPU 아키텍처마다 다른 크기를 갖는데, 8bit ~ 64bit의 값을 갖는다. 컴퓨터의 주기억장치(RAM)에서 전달된 정보는 연산을 위해 Register로 옮겨지는데, 데이터는 Register에 저장되었디가 MUX를 거쳐 ALU로 전달되고, deMUX를 거쳐 출력된다.

CPU에서 데이터가 Register로 전달될 때, Register의 적절한 위치에 데이터를 저장하기 위해 디코더를 거치는데 디코더를 거쳐 데이터는 레지스터에 저장하기 좋은 형태가 된다.

디코더

디코더는 이진 입력에 대한 이진 출력을 매치해주는 회로이다. 예를들어, 이진수 - 8진수 변환기는 3x8 디코더이다. 이외에도 메모리 주소 선택기와 같은 기능에 사용된다.

디코더에는 $n$개의 2진 코드를 입력받아 최대 $2^n$개의 출력을 갖는다.

2진수를 4진수로 바꿔주는 디코더의 진리표는 아래와 같다.

IN 1 IN 2 0 1 2 3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1

안녕하세요

조합논리회로 2번째 시간 주제는 디코더와 인코더 그리고 멀티플렉서입니다.

5-1강. 조합 논리회로 (1) - 반가산기와 전가산기

5-3강. 조합논리회로(3) - NAND, NOR게이트 변환

5-4강. 순서 논리회로(4) - 프로그래머블 로직 디바이스

자주 등장하는 조합논리회로로서 따로 주제를 분리하여 자세하게 다루고 넘어가도록 하겠습니다.

바로 본론으로 넘어가도록하겠습니다 :)

1. 디코더 ( Decoder , Minterm Generator )

디코더는 한마디로 정의해서 Minterm Generator 즉, 최소항 생성기라고 말씀드릴 수 있습니다.

n개의 입력이 디코더로 들어가게 되면 2n개의 입력이 출력으로 나오게 됩니다.

왜 디코더가 minterm generator인지 회로도를 통해서 설명하겠습니다.

3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi
3 to 8 디코더의 진리표

대표적으로 3 to 8 디코더를 예로 들어 설명하겠습니다.

3개의 입력이 주어지면 23=8개의 출력이 나오게 됩니다.

회로도는 아래와 같습니다.

3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi
3 to 8 디코더 회로도

각 출력들은 3가지 변수를 사용하는 시스템의 minterm과 같습니다.

제가 디코더를 최소항 생성기라고 말씀드린것도 이러한 이유에서 입니다.

그리고 디코더의 확장에대해서 설명드리겠습니다.

2 to 4 디코더 2개를 이용하면, 3 to 8 디코더 하나를 만들 수 있습니다.

3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi
2 to 4 디코더를 이용하여 3 to 8 디코더 설계

A2라는 변수에 대해서 주목해보겠습니다.

A2는 각 디코더의 E (Enable)의 입력으로 주어집니다. 여기서 Enable이란 회로를 활성화 시키는 신호입니다.

A2가 0이라면 inverter를 통해 아래의 디코더가 활성화되고 1이라면 위의 디코더가 활성화 될 것입니다.

이러한 원리로 2 to 4 디코더 2개를 이용해서 3 to 8 디코더를 설계할 수 있습니다.

2. 인코더 ( Encoder )

인코더는 디코더의 반대개념으로 이해할 수 있습니다.

즉, 2n개의 입력이 주어지면 출력은 n개로 나오게 됩니다.

8 to 3 인코더의 진리표를 통해서 설명 이어나가도록 하겠습니다.

3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi
8 to 3 인코더 진리표
3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi
8 to 3 인코더 회로

8개의 입력이 주어지면 각 입력은 인코더를 통해 암호화되어 출력으로 나가게됩니다.

암호화된 형태는 Q2Q1Q0 형태이므로 이를 해독하기 위해 디코더를 이용하여 해독할 수 있습니다.

※ 디코더와 인코더의 관계

3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi
디코더와 인코더의 관계

인코더에서 암호화한 출력들이 다시 디코더의 입력으로 들어가면 원래의 입력을 해독할 수 있습니다.

따라서 인코더와 디코더는 완벽하게 반대의 기능을 담당하는 관계입니다.

3. 멀티 플렉서 ( Multiplexer, MUX )

멀티플렉서는 흔히들 MUX라고도 많이 부릅니다.

4 to 1 MUX의 회로도를 보고 설명드리겠습니다.

3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi
4 x 1 MUX 회로도

특이한점이 S0,S1 이라는 입력신호입니다. 이 입력신호에 따라서 어떤 입력을 내보낼지 선택할 수 있기 때문이죠

만약 S1S0이 10이라면 다른신호들은 and게이트에의해 출력이 나오지않습니다.

하지만 I2신호는 출력이 1이 되어 Output으로 전달이 됩니다.

즉, 여러개의 입력신호 중에서 하나를 선택하여 출력에 내보낼 수 있는(데이터를 선택할 수 있는) 회로입니다.

MUX의 경우 이후 이어질 컴퓨터구조 과목에서 정말 많이 사용됩니다.

MUX도 반대의 연산을 하는 deMUX( 디멀티플렉서 )가 존재합니다.

3x8 디코더 전가산기 - 3x8 dikodeo jeongasangi

디멀티플렉서는 입력신호를 받아서 select signal에 따라 출력신호를 선택할 수 있습니다.

따라서 위 그림처럼 MUX를 통해 신호를 보내면 수신측에서 deMUX로 받은 정보를 출력하는 원리입니다.

이상으로 5-2강. 디코더와 인코더, 멀티플렉서에 대한 포스팅을 마치도록 하겠습니다.

5-3강에서는 NAND게이트와 NOR게이트를 이용하여 회로를 구성하는 방법에 대한 포스팅으로 돌아오겠습니다.

감사합니다 :)