집적회로(IC)와 조합회로 부품

컴퓨터 안의 논리 회로는 결국 게이트를 실리콘 칩(IC) 위에 얼마나 많이, 어떻게 집적하느냐의 문제다. 이 글은 IC의 집적도 분류부터, 실제로 자주 쓰이는 조합회로 부품(디코더·인코더·멀티플렉서)까지를 하나의 흐름으로 정리한다.

집적회로(IC)의 집적도 분류

칩 하나에 게이트가 몇 개 들어가느냐에 따라 등급이 나뉜다.

분류 게이트 수 대표 예시
SSI (Small Scale) ~10개 이하 개별 게이트가 그대로 핀에 연결
MSI (Medium Scale) 10~200개 디코더, 가산기, 레지스터
LSI (Large Scale) 200~1000개 프로세서, 메모리
VLSI (Very Large Scale) 수천 개 이상 대형 메모리, 마이크로컴퓨터 칩

디지털 논리군(Logic Family) — 무엇으로 게이트를 만드는가

같은 게이트라도 내부를 어떤 반도체 기술로 구현했는지에 따라 속도·전력 소모가 달라진다.

논리군 특징
TTL 가장 널리 쓰임. 전원 5V, 논리 레벨 0V/3.5V
ECL 트랜지스터가 불포화 상태로 동작해 매우 빠름(전달지연 1~2ns). 슈퍼컴퓨터·신호처리기용
MOS 단상 트랜지스터(주로 NMOS) 사용
CMOS NMOS+PMOS 조합. 회로 밀도가 높고 소비전력이 적어 오늘날 가장 흔히 쓰임

현재 CPU·메모리 대부분이 CMOS인 이유가 이 표에 이미 나와 있다 — 저전력 + 고밀도 조합이 지금의 모바일/저전력 시대에 가장 유리하기 때문이다.

디코더 — “n비트 코드”를 “하나의 출력선”으로

디코더는 n비트로 코딩된 값을 최대 2ⁿ개의 서로 다른 출력 중 하나로 바꿔주는 조합회로다. 예를 들어 2×4 디코더는 2비트 입력(00~11)을 받아 4개의 출력선 중 정확히 하나만 활성화한다.

Enable 입력을 가진 3×8 디코더 회로와 진리표

작은 디코더를 여러 개 엮으면 더 큰 디코더를 만들 수 있다. 2×4 디코더 2개를 조합하면 3×8 디코더가 되고, 4×16 디코더 4개를 조합하면 16×64 디코더가 된다. 이런 확장이 가능한 이유는 디코더의 Enable 입력을 상위 비트로 제어해, “이번엔 어느 하위 디코더가 활성화될 차례인가”만 추가로 결정해주면 되기 때문이다.

Enable 입력을 가진 2×4 디코더 회로와 진리표

NAND 게이트로 디코더를 구현하는 경우가 많은데, 이는 출력을 보수(반전) 형태로 만드는 쪽이 회로적으로 더 경제적이기 때문이다.

인코더 — 디코더의 반대

인코더는 2ⁿ개의 입력 중 활성화된 것을 n개의 2진 코드로 압축해 출력한다. 디코더가 “코드 → 신호 하나”라면 인코더는 “신호 하나 → 코드”인 셈이다.

8진 인코더 입력과 3비트 출력 진리표

8대2 인코더의 부울식은 각 출력 비트가 “어느 입력들이 켜졌을 때 1이 되는가”를 OR로 묶은 형태다.

A0 = D1+D3+D5+D7
A1 = D2+D3+D6+D7
A2 = D4+D5+D6+D7

멀티플렉서(MUX) — 플립플롭과 헷갈리지 말 것

멀티플렉서는 n개의 선택 입력에 따라 2ⁿ개의 입력 중 하나를 골라 출력으로 연결하는 회로다. “여러 입력 중 하나를 고른다”는 점에서 “1비트를 저장한다”는 플립플롭과 자주 혼동되는데, 기능 자체가 다르다.

특성 멀티플렉서 (MUX) 플립플롭
주 기능 여러 입력 중 하나를 선택해 출력 1비트 정보 저장
회로 유형 조합 논리 회로 순차 논리 회로
메모리 기능 없음 있음
출력 결정 요소 현재 입력 + 선택 신호 이전 상태 + 현재 입력
클럭 신호 불필요 필요

4×1 멀티플렉서의 동작 원리를 예로 들면, 2개의 선택 신호(S)가 4개의 입력 중 하나를 골라 1개의 출력으로 연결한다. Quadruple 2×1 MUX 구성에서는 2개의 4비트 그룹 중 하나를 통째로 골라 4개의 출력(Y0~Y3)으로 내보낸다.

네 개의 2×1 멀티플렉서 블록도와 기능표

동작을 표로 정리하면 다음과 같다(Y0 기준).

E (Enable) S (Select) Y0
0 - 0 (비활성)
1 0 A0
1 1 B0

스스로 풀어보기

개념이 실제로 이해됐는지 확인하려면 다음 문제를 직접 손으로 풀어보는 게 가장 확실하다.

  1. Enable 입력을 가진 3×8 디코더 4개와 2×4 디코더 1개로 5×32 디코더를 구성하고 블록도를 그려본다.
  2. 초기값 1101인 4비트 레지스터에 직렬 입력 101101을 주고 오른쪽으로 6번 시프트했을 때, 매 시프트 단계마다 레지스터 내용이 어떻게 바뀌는지 나열해본다.
  3. 4096×16 용량의 메모리를 128×8 메모리 칩으로 구성하려면 몇 개의 칩이 필요한지 계산해본다. (힌트: 주소 공간과 워드 크기를 각각 나눠서 곱한다)

핵심 정리

  • IC의 집적도(SSI~VLSI)는 칩 하나에 들어가는 게이트 수로 구분한다.
  • 오늘날 대부분의 칩이 CMOS인 이유는 저전력+고집적이라는 두 장점을 동시에 갖기 때문이다.
  • 디코더(코드→신호), 인코더(신호→코드), 멀티플렉서(여러 입력 중 선택)는 서로 반대되거나 구분되는 역할을 하는 조합회로다.