
📋 이 글의 핵심 요약
- 레지스터는 플립플롭 여러 개를 연결해 여러 비트를 저장·이동하는 회로다
- 입력/출력 방식에 따라 SISO · SIPO · PISO · PIPO 4종류로 분류된다
- 직렬 방식은 회로가 간단하지만 느리고, 병렬 방식은 빠르지만 복잡하다
- 양방향·범용 레지스터는 왼쪽/오른쪽 시프트와 병렬 로드를 모두 지원한다
- 실제 응용으로 직렬 데이터 통신 · 디지털 금고 · 시간 지연 · 난수 발생에 사용된다
01 레지스터란 무엇인가?
레지스터(Register) 정의
플립플롭 여러 개를 일렬로 배열하고 적당히 연결하여, 여러 비트로 구성된 2진수를 저장하거나 이동할 수 있도록 만든 순서 논리회로
레지스터는 CPU 내부에서 매우 중요한 역할을 합니다. 단순히 데이터를 저장하는 것을 넘어, 비트를 왼쪽·오른쪽으로 한 칸씩 시프트(shift)하거나 연산 중간 결과를 임시 보관하고, 2진수의 보수를 구하거나 곱셈·나눗셈을 처리하는 데도 활용됩니다.
⚠️ 카운터와 레지스터의 차이
카운터는 클록 펄스에 따라 미리 정해진 순서대로 상태를 변화시키는 레지스터의 특수한 형태입니다. 일반 레지스터는 순서적 특성을 갖지 않으며, 단순히 데이터 저장·이동이 목적입니다.

| 종류 | 약어 | 특징 | 주요 용도 |
| 직렬 입력 – 직렬 출력 | SISO | 1비트씩 입력 → 1비트씩 출력 n클록 후 출력 완료 |
모뎀, 시간 지연회로 |
| 직렬 입력 – 병렬 출력 | SIPO | 1비트씩 입력 → 동시에 병렬 출력 직렬→병렬 변환 |
직렬 통신 수신부 (74164) |
| 병렬 입력 – 직렬 출력 | PISO | 동시에 병렬 입력 → 1비트씩 출력 병렬→직렬 변환 |
직렬 통신 송신부 (74165) |
| 병렬 입력 – 병렬 출력 | PIPO | 동시에 병렬 입력 → 동시에 병렬 출력 1클록에 전송 완료 |
범용 입출력, 프린터 |
02 직렬 입력 레지스터 (SISO / SIPO)
① 직렬 입력 – 직렬 출력 (SISO)

4개의 D 플립플롭을 직렬로 연결한 구조입니다. 클록 펄스가 입력될 때마다 각 플립플롭의 출력이 오른쪽으로 한 칸씩 이동합니다. 입력 데이터 1011을 넣으면 4클록 후에야 최종 출력이 나타납니다.
| 시점 | 입력(I) | QA | QB | QC | QD(출력) |
| t₁ 이전 | — | 0 | 0 | 0 | 0 |
| t₁ 후 | 1 | 1 | 0 | 0 | 0 |
| t₂ 후 | 0 | 0 | 1 | 0 | 0 |
| t₃ 후 | 1 | 1 | 0 | 1 | 0 |
| t₄ 후 | 1 | 1 | 1 | 0 | 1 ← 출력! |

📎 IC 7491 (8-Bit Shift Register)
8개의 SR 주종형 플립플롭으로 구성된 SISO 레지스터. 직렬 입력 단자 A, B / 직렬 출력 단자 Q, Q 를 갖는다. A 단자로만 데이터를 입력할 경우 B 단자는 반드시 논리 0으로 설정해야 한다.
② 직렬 입력 – 병렬 출력 (SIPO)

SISO 구조에서 각 플립플롭의 출력(QA ~ QD)을 외부로 모두 꺼낸 형태입니다. 데이터를 한 비트씩 직렬로 받아 1바이트가 완성되면 병렬로 한꺼번에 내보냅니다. 직렬 통신 수신부에서 핵심적으로 사용됩니다.
3상태 버퍼(Tri-State Buffer)란?
출력이 High(1), Low(0), Hi-Z(고임피던스) 3가지 상태 중 하나를 취할 수 있는 버퍼.
E = 0 이면 입력값을 그대로 출력, E = 1 이면 출력이 Hi-Z가 되어 회로에서 분리된다.
버스 공유 시스템에서 데이터 충돌 방지에 필수적이다.

📎 IC 74164 (8-Bit Parallel Output Serial Shift Register)
직렬 입력 단자 A, B / 병렬 출력 단자 QA ~ QH
CLR = 0 이면 모든 출력 Clear, CLR = 1 이면 정상 동작
클록 상승 에지마다 직렬 데이터가 시프트되어 저장됨
03 병렬 입력 레지스터 (PISO / PIPO)
① 병렬 입력 – 직렬 출력 (PISO)

각 플립플롭 앞에 2×1 MUX(멀티플렉서)를 배치하여 '로드 모드'와 '시프트 모드'를 전환합니다. 제어 신호 SH/LD로 동작이 결정됩니다.
| SH/LD 값 | 동작 |
| 0 | 병렬 로드 모드 — 입력 데이터(IA, IB, IC, ID)가 클록 하강 에지에서 각 플립플롭에 동시에 저장됨 |
| 1 | 시프트 모드 — 클록 하강 에지마다 레지스터 내용이 오른쪽으로 한 칸씩 이동, 직렬 출력(O)으로 나감 |

📎 IC 74165 (Parallel Load 8-Bit Shift Register)
병렬 입력 H~A / 직렬 출력 QH, QH
SER 단자 : 시프트 시 최하위 비트부터 직렬 데이터를 추가 입력하는 단자
CLK INH = 0 이면 클록펄스 정상 입력, CLK INH = 1 이면 클록 억제
② 병렬 입력 – 병렬 출력 (PIPO)

데이터를 한 번의 클록 펄스에 모두 저장하고 동시에 읽어낼 수 있는 방식입니다. 각 플립플롭 앞에 AND 게이트(WR 제어), 출력 쪽에는 3상태 버퍼(RD 제어)가 붙어 있습니다.
📎 IC 74195 (Parallel Access 4-Bit Shift Register)
PIPO 기능과 직렬 시프트를 모두 지원.
동작 순서: ① CLR=1 → ② 병렬 입력(D,C,B,A) → ③ SH/LD=0으로 로드 → ④ 클록 상승 에지에서 동작 → ⑤ QD~QA로 병렬 출력
04 양방향·범용 시프트 레지스터
① 양방향(Bidirectional) 시프트 레지스터

각 플립플롭 앞에 2×1 MUX를 두어 오른쪽 시프트와 왼쪽 시프트를 모두 수행할 수 있습니다. 제어 신호 R/L로 방향이 결정됩니다.
| R/L | 동작 | 데이터 흐름 |
| 1 | 오른쪽 시프트 | SRI(직렬 입력) → FF-A → FF-B → FF-C → FF-D → SRO(직렬 출력) |
| 0 | 왼쪽 시프트 | SLI(직렬 입력) → FF-D → FF-C → FF-B → FF-A → SLO(직렬 출력) |
② 범용(Universal) 시프트 레지스터
각 플립플롭 앞에 4×1 MUX를 배치하여 네 가지 동작을 모두 지원합니다. 2비트 모드 제어 신호 S₁, S₀의 조합으로 동작이 결정됩니다.
| S₁ | S₀ | 레지스터 동작 |
| 0 | 0 | 불변 상태 — 클록이 들어와도 현재 값 유지 |
| 0 | 1 | 오른쪽 자리 이동 (우측 시프트) |
| 1 | 0 | 왼쪽 자리 이동 (좌측 시프트) |
| 1 | 1 | 병렬 입력 수행 |

📎 IC 74178 (4-Bit Parallel Access Shift Register)
PIPO · SISO · PISO · SIPO를 모두 지원하는 4비트 범용 레지스터.
Shift, Load / 0 0 불변 / 0 1 병렬 입력 / 1 x 우측 시프트 수행
📎 IC 74194 (4-Bit Bidirectional Universal Register)
PIPO · SISO · PISO · SIPO를 모두 지원하는 4비트 범용 레지스터.
모드 제어 S₁, S₀ / 우측 직렬 입력 SR SER / 좌측 직렬 입력 SL SER / 병렬 입력 A~D / 병렬 출력 QA~QD
05 시프트 레지스터의 실제 응용
① 직렬 데이터 통신
| ① 아날로그 음성 전화가입자 신호 |
→ | ② ADC 변환 8,000회/초 샘플링 → 8비트 병렬 데이터 (64 Kbps) |
→ | ③ PISO 레지스터 병렬 → 직렬 변환 중계선으로 전송 |
→ | ④ SIPO 레지스터 직렬 → 병렬 복원 → DAC → 아날로그 재생 |

중계선 전송 방식
· T1 방식 : 24채널 × 64 Kbps + 8 Kbps(동기) = 1.544 Mbps
· E1 방식 : 32채널 × 64 Kbps = 2.048 Mbps
② 디지털 금고

비밀번호 키패드의 각 키를 플립플롭의 클록 입력에 연결합니다. 설정된 비밀번호 키를 순서대로 누르면 데이터가 오른쪽으로 시프트되어, 마지막 키를 눌렀을 때 QD=1이 되면서 금고가 열립니다. 비밀번호 외의 다른 키를 누르면 NOR 게이트가 모든 플립플롭을 초기화(CLR)합니다.
③ 시간 지연 회로

지연 시간 공식
n비트 SISO 레지스터를 사용할 때, 입력 펄스 대비 출력 지연 = (n − 1) × T
(T : 클록 주기)
예시) 4비트 레지스터 + 클록 주파수 1 MHz
→ T = 1 μs, 지연시간 = (4 − 1) × 1 μs = 3 μs
※ 이 공식은 데이터가 첫 번째 플립플롭에 이미 저장된 시점을 기준으로 계산한 것입니다. 외부 입력 단자부터 최종 출력까지 전체 경로를 기준으로 하면 n × T가 소요됩니다. 전공 서적마다 기준이 다를 수 있으니 문제 조건을 꼭 확인하세요.
④ 난수 발생 회로

시프트 레지스터의 일부 출력을 XOR 게이트로 피드백하는 선형 피드백 시프트 레지스터(LFSR) 구조입니다. PR=0 후 PR=1로 하면 초기값 1111로 설정되며, 이후 클록이 입력될 때마다 규칙적이지 않은 비트 패턴(의사 난수)이 생성됩니다.
발생 가능한 난수 개수
n비트 레지스터 사용 시, 초기 상태 0000을 제외한 2ⁿ − 1개의 서로 다른 상태를 순환한다.
06 직렬 전송 vs 병렬 전송 비교
| 구분 | 직렬 전송 | 병렬 전송 |
| 전송 속도 | 느림 (n클록 필요) | 빠름 (1클록으로 완료) |
| 회로 복잡도 | 간단 (하드웨어 절감) | 복잡 (비트 수만큼 전송선 필요) |
| 예) 1바이트 (100 KHz) |
8 × 10 μs = 80 μs | 10 μs (1클록) |
| 주요 활용 | 모뎀, 통신 케이블, 장거리 전송 | CPU 내부 버스, 프린터, 고속 처리 |

📌 핵심 정리
· 레지스터 : 플립플롭 여러 개를 연결해 다중 비트를 저장·이동하는 순서 논리회로
· SISO : 직렬 입력 → 직렬 출력, 모뎀·시간 지연 등에 활용
· SIPO : 직렬 입력 → 병렬 출력, 직렬 통신 수신부 변환에 활용 (74164)
· PISO : 병렬 입력 → 직렬 출력, 직렬 통신 송신부 변환에 활용 (74165)
· PIPO : 병렬 입력 → 병렬 출력, 빠른 데이터 저장·전달에 활용 (74195)
· 양방향 레지스터 : R/L 신호로 좌/우 시프트 방향 선택
· 범용 레지스터(74194) : S₁, S₀ 2비트 제어로 불변·우이동·좌이동·병렬로드 4가지 동작
· 시간 지연 공식 : 지연 = (n−1)×T (n: 비트수, T: 클록 주기)
· 난수 발생 : n비트 LFSR → 최대 2ⁿ−1개 의사 난수 생성
태그 : 레지스터란 시프트 레지스터 종류 SISO SIPO PISO PIPO 차이 직렬 병렬 전송 차이 74164 74165 74194 레지스터 양방향 시프트 레지스터 범용 레지스터 동작 시간 지연 회로 공식 디지털공학 레지스터 난수 발생 회로 원리
'학과 수업 노트 > 디지털공학' 카테고리의 다른 글
| 11. 카운터 - 동기식, 비동기식, 카운터의 응용 (0) | 2026.05.23 |
|---|---|
| 10. 동기 순서논리회로 (0) | 2026.05.18 |
| 9. 플립플롭 - JK플립플롭, T플립플롭 (0) | 2026.05.08 |
| 8. 플립플롭 I - SR 래치, SR 플립플롭, D 플립플롭 (0) | 2026.05.01 |
| 7. 조합논리회로(2) - 멀티플렉서, 디멀티플렉서, 코드변환기, 비교기 (0) | 2026.04.17 |

