이 글은 직접 학습하거나 구현하며 남긴 개인 기술 기록입니다. 참고 자료가 있는 경우 본문에 출처를 남기고, 틀린 부분을 발견하면 수정합니다.
집적회로(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개의 출력선 중 정확히 하나만 활성화한다.

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

NAND 게이트로 디코더를 구현하는 경우가 많은데, 이는 출력을 보수(반전) 형태로 만드는 쪽이 회로적으로 더 경제적이기 때문이다.
인코더 — 디코더의 반대
인코더는 2ⁿ개의 입력 중 활성화된 것을 n개의 2진 코드로 압축해 출력한다. 디코더가 “코드 → 신호 하나”라면 인코더는 “신호 하나 → 코드”인 셈이다.

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)으로 내보낸다.

동작을 표로 정리하면 다음과 같다(Y0 기준).
| E (Enable) | S (Select) | Y0 |
|---|---|---|
| 0 | - | 0 (비활성) |
| 1 | 0 | A0 |
| 1 | 1 | B0 |
스스로 풀어보기
개념이 실제로 이해됐는지 확인하려면 다음 문제를 직접 손으로 풀어보는 게 가장 확실하다.
- Enable 입력을 가진 3×8 디코더 4개와 2×4 디코더 1개로 5×32 디코더를 구성하고 블록도를 그려본다.
- 초기값 1101인 4비트 레지스터에 직렬 입력 101101을 주고 오른쪽으로 6번 시프트했을 때, 매 시프트 단계마다 레지스터 내용이 어떻게 바뀌는지 나열해본다.
- 4096×16 용량의 메모리를 128×8 메모리 칩으로 구성하려면 몇 개의 칩이 필요한지 계산해본다. (힌트: 주소 공간과 워드 크기를 각각 나눠서 곱한다)
핵심 정리
- IC의 집적도(SSI~VLSI)는 칩 하나에 들어가는 게이트 수로 구분한다.
- 오늘날 대부분의 칩이 CMOS인 이유는 저전력+고집적이라는 두 장점을 동시에 갖기 때문이다.
- 디코더(코드→신호), 인코더(신호→코드), 멀티플렉서(여러 입력 중 선택)는 서로 반대되거나 구분되는 역할을 하는 조합회로다.
댓글이 보이지 않으면 GitHub에 로그인한 뒤 새로고침해 주세요. 공개 댓글은 로그인 상태에서 더 안정적으로 표시됩니다.