핵심 인사이트

  1. 인코더(Encoder)는 2ⁿ개의 입력선 중 정확히 하나가 활성화될 때 n비트 이진 코드를 출력하는 조합 논리 회로로, 디코더(Decoder)의 역(逆) 기능을 수행하며 키보드·우선순위 제어·주소 생성 등에 핵심적으로 활용된다.
  2. 우선순위 인코더(Priority Encoder)는 여러 입력이 동시에 활성화될 때 가장 높은 우선순위 입력만 처리하는 실용적 확장으로, 인터럽트 컨트롤러(Interrupt Controller) 구현의 기반이 된다.
  3. 디코더와 인코더의 조합은 멀티플렉서(MUX)·디멀티플렉서(DEMUX)와 함께 디지털 시스템에서 신호 선택·변환·압축의 4대 핵심 회로를 구성한다.

Ⅰ. 인코더 기본 구조

2ⁿ → n 인코더 (2⁴ = 16 → 4):

입력 (16개 중 1개 활성) → 출력 (4비트)
  0000 0000 0001 → 0000
  0000 0000 0010 → 0001
  0000 0000 0100 → 0010
  ...
  1000 0000 0000 0000 → 1111

8 → 3 인코더 진리표 예시:
  I7 I6 I5 I4 I3 I2 I1 I0 | Y2 Y1 Y0
   0  0  0  0  0  0  0  1 |  0  0  0
   0  0  0  0  0  0  1  0 |  0  0  1
   0  0  0  0  0  1  0  0 |  0  1  0
   ...
   1  0  0  0  0  0  0  0 |  1  1  1

불 식:
  Y0 = I1 + I3 + I5 + I7
  Y1 = I2 + I3 + I6 + I7
  Y2 = I4 + I5 + I6 + I7

📢 섹션 요약 비유: 인코더는 여러 층 건물에서 어느 층 버튼을 눌렀는지 엘리베이터 제어기에 이진수로 알려주는 층수 변환기.


Ⅱ. 우선순위 인코더

Priority Encoder:
  여러 입력 동시 활성 시 최고 우선순위만 처리

74LS148 (8→3 우선순위 인코더) 동작:

  입력 I7=1, I3=1 동시 활성:
    -> I7 우선 처리 -> 출력 = 111

우선순위 인코더 진리표:
  I7 I6 I5 I4 I3 I2 I1 I0 | Y2 Y1 Y0 | GS
   X  X  X  X  X  X  X  0 |  X  X  X |  0  (유효 입력 없음)
   0  0  0  0  0  0  0  1 |  0  0  0 |  1
   0  0  0  0  0  0  1  X |  0  0  1 |  1
   0  0  0  0  0  1  X  X |  0  1  0 |  1
   1  X  X  X  X  X  X  X |  1  1  1 |  1

GS (Group Select): 유효 입력 존재 표시

📢 섹션 요약 비유: 우선순위 인코더는 여러 명이 동시에 손드는 교실에서 선생님이 가장 앞줄 학생만 먼저 발언권 주는 방식.


Ⅲ. 인코더 vs 디코더

비교:
  구분         인코더(Encoder)        디코더(Decoder)
  방향         n → 2ⁿ 비트 입력      n비트 → 2ⁿ 출력
  입력 수      2ⁿ개 입력선           n비트 코드
  출력 수      n비트 코드            2ⁿ개 출력선
  활성 입력    1개만                 n비트 코드 (전체)
  역기능       상호 역(逆) 관계
  
  응용 비교:
  인코더: 키보드 입력, IRQ 우선순위, A/D 변환
  디코더: 메모리 주소 선택, 7세그먼트 표시, 명령어 해독

조합:
  키보드 --[인코더]--> 이진 코드 --[디코더]--> LED 표시

📢 섹션 요약 비유: 인코더는 한국어→영어 번역기, 디코더는 영어→한국어 번역기 — 서로 반대 방향 변환기.


Ⅳ. 인터럽트 컨트롤러 응용

CPU 인터럽트 처리 (8259A PIC 구조):

  장치들         우선순위 인코더      CPU
  IRQ0 (타이머)  ─────────────────>
  IRQ1 (키보드)  ──> 8259A PIC ──>  INT 신호
  IRQ2 (계단식)       (우선순위       INTA 응답
  ...                 인코더 내장)
  IRQ7

동작:
  1. 여러 IRQ 동시 발생
  2. PIC가 우선순위 인코더로 최고 우선순위 결정
  3. CPU에 INT 신호 전송 + 벡터 번호 제공
  4. CPU는 IDT에서 핸들러 주소 찾아 점프

우선순위:
  IRQ0 (최고) > IRQ1 > ... > IRQ7 (최저)

📢 섹션 요약 비유: 인터럽트 컨트롤러는 응급실 트리아지 — 여러 환자 동시 도착 시 위급도(우선순위) 따라 순서 결정.


Ⅴ. 실무 시나리오 — A/D 변환 시스템

아날로그 센서 데이터 디지털화:

  센서 출력    비교기(Comparator)   우선순위 인코더   MCU
  0.0~0.5V  -> C0 활성화 ──────────────────────> 000
  0.5~1.0V  -> C1 활성화 ──> 8→3 인코더 ──────> 001
  ...              (Flash ADC 구조)               ...
  3.5~4.0V  -> C7 활성화 ──────────────────────> 111

Flash ADC 특징:
  - 2ⁿ-1개 비교기 사용
  - 단일 클럭 사이클로 변환 (초고속)
  - 8비트: 255개 비교기 + 8→256 디코더 + 우선순위 인코더
  - 단점: 하드웨어 비용 매우 높음

활용: 오실로스코프, 레이더, 고속 통신 수신기

📢 섹션 요약 비유: Flash ADC는 여러 온도계를 동시에 읽어 한 번에 디지털 숫자로 변환하는 슈퍼 빠른 온도 측정기.


📌 관련 개념 맵

인코더 (Encoder)
+-- 기본 유형
|   +-- 일반 인코더 (2ⁿ → n)
|   +-- 우선순위 인코더 (Priority Encoder)
+-- 역관계
|   +-- 디코더 (Decoder, n → 2ⁿ)
+-- 응용
|   +-- 인터럽트 컨트롤러 (8259A PIC)
|   +-- Flash ADC (고속 A/D 변환)
|   +-- 키보드 스캔 회로
+-- 관련 조합 논리 회로
    +-- MUX (멀티플렉서)
    +-- DEMUX (디멀티플렉서)

📈 관련 키워드 및 발전 흐름도

[기초 논리 게이트 (1950s)]
OR/AND 게이트 조합
      |
      v
[인코더/디코더 IC (1960~70s)]
74 시리즈 표준 논리 IC
      |
      v
[우선순위 인코더 (1970s)]
8259A PIC (Intel 1976)
인터럽트 우선순위 관리
      |
      v
[Flash ADC 응용 (1980s)]
고속 아날로그-디지털 변환
      |
      v
[현재: FPGA/ASIC 내장]
SoC 내부 우선순위 회로
IoT 센서 인터페이스

👶 어린이를 위한 3줄 비유 설명

  1. 인코더는 여러 개의 스위치(입력) 중 어떤 스위치가 켜졌는지 숫자(이진 코드)로 바꿔주는 변환기예요.
  2. 우선순위 인코더는 여러 스위치가 동시에 켜질 때, 가장 중요한 스위치 번호만 알려주는 똑똑한 인코더예요.
  3. 컴퓨터에서는 여러 장치가 동시에 "나 처리해줘!"라고 할 때, 인코더가 가장 급한 장치 번호를 CPU에 전달해줘요!