핵심 인사이트
- 멀티플렉서(MUX)는 2ⁿ개의 입력 중 n비트 선택 신호(Select Line)에 의해 하나의 입력을 출력으로 선택하는 조합 논리 회로로, 디지털 시스템에서 신호 라우팅(Routing)과 데이터 선택의 핵심 빌딩 블록이다.
- MUX는 임의의 불 함수(Boolean Function)를 구현할 수 있는 범용 논리 회로로, 2ⁿ⁺¹ -1개 입력 MUX로 n+1변수 함수를, 2ⁿ-1개 MUX로 n변수 함수를 진리표만으로 구현할 수 있다.
- 디멀티플렉서(DEMUX)는 MUX의 역(逆)으로 하나의 입력을 선택 신호에 따라 2ⁿ개 출력 중 하나로 보내며, MUX-DEMUX 쌍은 시분할 다중화(TDM) 통신의 핵심 하드웨어 구조다.
Ⅰ. MUX 기본 구조
4:1 MUX (2비트 선택):
입력: I0, I1, I2, I3 (4개)
선택: S1, S0 (2비트)
출력: Y (1개)
진리표:
S1 S0 | Y
0 0 | I0
0 1 | I1
1 0 | I2
1 1 | I3
불 식:
Y = S1'S0'·I0 + S1'S0·I1 + S1S0'·I2 + S1S0·I3
게이트 구현:
4개의 AND 게이트 + 1개의 OR 게이트
각 AND: (선택 비트 조합) AND (입력)
OR: 4개의 AND 결과 합산
일반화: 2ⁿ:1 MUX = n비트 선택 신호
📢 섹션 요약 비유: MUX는 TV 리모컨 채널 선택 — 여러 방송 신호 중 버튼(Select) 누른 하나만 화면(출력)에 표시.
Ⅱ. MUX로 불 함수 구현
MUX를 이용한 범용 논리 구현:
방법 1: 진리표 직접 매핑 (2ⁿ:1 MUX)
n변수 함수 -> 2ⁿ:1 MUX
입력에 0/1 연결, 선택 신호 = 변수
예: F(A,B) = AB + A'B' 구현 (2변수)
A, B -> 선택 신호 S1=A, S0=B
A B | F | MUX 입력
0 0 | 1 | I0 = 1
0 1 | 0 | I1 = 0
1 0 | 0 | I2 = 0
1 1 | 1 | I3 = 1
방법 2: 절반 크기 MUX 활용 (2ⁿ⁻¹:1 MUX)
마지막 변수를 MUX 입력으로 활용
n변수 함수 -> 2ⁿ⁻¹:1 MUX
예: F(A,B,C) -> 4:1 MUX + C 활용
📢 섹션 요약 비유: MUX로 논리 함수 구현은 레고 범용 블록 — 진리표를 MUX 입력에 그대로 꽂아서 어떤 함수도 만들 수 있다.
Ⅲ. 디멀티플렉서 (DEMUX)
DEMUX (Demultiplexer):
하나의 입력 -> 선택 신호에 따라 2ⁿ개 출력 중 하나로
1:4 DEMUX:
입력: D (1개)
선택: S1, S0 (2비트)
출력: Y0, Y1, Y2, Y3 (4개)
동작:
S1=0, S0=0: Y0 = D, Y1=Y2=Y3=0
S1=0, S0=1: Y1 = D, Y0=Y2=Y3=0
S1=1, S0=0: Y2 = D, Y0=Y1=Y3=0
S1=1, S0=1: Y3 = D, Y0=Y1=Y2=0
MUX-DEMUX 쌍:
송신측: DEMUX - 여러 데이터를 하나 선로에 다중화
수신측: MUX - 하나 선로에서 해당 데이터 선택
데이터1 -┐ ┌-> 데이터1
데이터2 -┤ DEMUX ─선로─ MUX ├-> 데이터2
데이터3 -┘ └-> 데이터3
TDM (Time Division Multiplexing) 구현
📢 섹션 요약 비유: DEMUX는 우체국 배달 시스템 — 중앙 우체국(입력)에서 받은 우편을 각 가정(출력)에 주소(선택 신호)에 맞게 배달.
Ⅳ. MUX 계층화와 버스 구조
대형 MUX 구성:
계층 MUX (Hierarchical MUX):
16:1 MUX = 4개의 4:1 MUX + 1개의 4:1 MUX
2단계로 구현 (게이트 수 절약)
[4:1] [4:1]
I0~I3 ─┐
[4:1] ├-> [4:1] -> Y
I4~I7 ─┘
...
버스 선택 (Bus Multiplexing):
8비트 데이터 버스 선택:
8개의 2:1 MUX 병렬 사용
선택 신호 1개로 8개 MUX 동시 제어
-> 2개의 8비트 버스 중 하나 선택
CPU 내부 MUX 사용:
ALU 입력 선택 (레지스터 A or B)
PC 증가값 선택 (PC+1 or 분기 주소)
데이터 경로(Datapath) 핵심 요소
📢 섹션 요약 비유: 계층 MUX는 회사 조직 — 팀장이 팀원 중 하나를, 부장이 팀장 중 하나를 선택하는 계층 선택 구조.
Ⅴ. 실무 시나리오 — CPU 데이터패스
RISC CPU 데이터패스의 MUX:
ALU 입력 선택 MUX:
A 포트: 레지스터 파일 읽기값 (Rs)
B 포트 선택:
명령어 ADD R1, R2, R3: R3 선택
명령어 ADDI R1, R2, 10: 즉시값 10 선택
-> 2:1 MUX, 선택 = 명령어 타입 비트
PC 선택 MUX:
입력0: PC + 4 (순차 실행)
입력1: 분기 목적지 주소
-> 2:1 MUX, 선택 = 조건 분기 성공 여부
메모리 데이터 MUX:
레지스터 쓰기 값 선택:
입력0: ALU 연산 결과
입력1: 메모리 로드 값
-> 2:1 MUX, 선택 = Load 명령어 여부
FPGA에서 MUX:
LUT (Look-Up Table) = 사실상 MUX 배열
Xilinx LUT6: 6비트 선택 -> 64:1 MUX
모든 논리 함수 = LUT로 구현
📢 섹션 요약 비유: CPU 데이터패스의 MUX는 철도 분기기 — 명령어 종류에 따라 데이터가 올바른 경로(ALU or 메모리)로 흐르도록 분기.
📌 관련 개념 맵
멀티플렉서 (MUX)
+-- 구조
| +-- 2ⁿ:1 MUX (n비트 선택)
| +-- 계층 MUX
+-- 역기능
| +-- DEMUX (디멀티플렉서)
+-- 응용
| +-- 불 함수 구현 (범용 논리)
| +-- 버스 선택 (Bus Multiplexing)
| +-- CPU 데이터패스
| +-- TDM 통신
+-- FPGA
+-- LUT = MUX 배열
📈 관련 키워드 및 발전 흐름도
[MUX 회로 이론 (1940s~)]
릴레이 기반 스위칭 회로
|
v
[TTL/CMOS MUX IC (1970s)]
74153, 74151 (4:1, 8:1 MUX) 표준 IC
|
v
[CPU 데이터패스 MUX (1980s~)]
단일칩 마이크로프로세서 핵심 구성
|
v
[FPGA LUT = MUX (1985~)]
LUT 기반 프로그래머블 논리
모든 함수 MUX 구조로 구현
|
v
[현재: 고속 직렬 MUX]
SerDes (직렬화/역직렬화)
수십 Gbps 광통신 채널 다중화
👶 어린이를 위한 3줄 비유 설명
- 멀티플렉서는 여러 수도꼭지(입력) 중에서 손잡이(선택 신호)로 하나만 골라 물(출력)이 나오게 하는 분배기예요.
- 4개 입력이 있으면 2비트 신호(00, 01, 10, 11)로 어느 것을 선택할지 결정해요.
- CPU 내부에도 수십 개의 MUX가 있어서 어떤 데이터를 계산에 쓸지 매 순간 선택하고 있어요!