핵심 인사이트
- SR 래치(Set-Reset Latch)는 디지털 회로의 가장 기본적인 기억 소자 — NOR 또는 NAND 게이트 2개의 교차 결합(Cross-Coupling)으로 이전 상태를 유지하는 피드백 루프를 형성하며, 모든 플립플롭과 메모리의 근간이다.
- 출력이 입력으로 피드백되는 순차 논리(Sequential Logic)의 핵심 원리 — 조합 논리(Combinational Logic)가 현재 입력만으로 출력을 결정하는 반면, SR 래치는 이전 상태를 기억하여 출력이 입력 변화 후에도 유지된다.
- S=1, R=1(또는 NAND에서 S=0, R=0)은 금지 조건(Forbidden State) — 두 출력이 동시에 같은 값이 되어 정의되지 않은 상태가 발생하며, 이 한계를 극복하기 위해 D 플립플롭·JK 플립플롭 등이 개발되었다.
Ⅰ. SR 래치 구조
NOR 게이트 SR 래치:
S ──┬── NOR1 ──┬── Q
| |
└── NOR2 ──┘── Q'
R ──┘
진리표 (NOR 기반):
S R Q(t+1) Q'(t+1) 동작
0 0 Q(t) Q'(t) 유지 (Hold/Memory)
0 1 0 1 리셋 (Reset: Q=0)
1 0 1 0 셋 (Set: Q=1)
1 1 ? ? 금지 (Forbidden!)
NAND 게이트 SR 래치:
S' ─┬── NAND1 ──┬── Q
| |
└── NAND2 ──┘── Q'
R' ─┘
진리표 (NAND 기반, 입력 반전):
S' R' Q(t+1) 동작
1 1 Q(t) 유지
1 0 0 리셋
0 1 1 셋
0 0 ? 금지 (S'=R'=0)
물리적 구현:
NOR SR: S=1이 셋, R=1이 리셋 (능동 하이)
NAND SR: S'=0이 셋, R'=0이 리셋 (능동 로우)
NAND 타입이 실제 회로에서 더 일반적
📢 섹션 요약 비유: SR 래치 = 2명의 경비원 — 두 경비원이 서로를 감시. A가 "켜"(S=1)라 하면 B가 꺼지고 A는 계속 켜짐. B가 "꺼"(R=1)라 하면 A가 꺼짐. 둘 다 동시에 명령하면 혼란(금지)!
Ⅱ. 금지 조건과 해결
금지 조건 (Forbidden State):
NOR SR에서 S=R=1:
NOR1 = NOR(S=1, Q') = 0 → Q = 0
NOR2 = NOR(R=1, Q) = 0 → Q' = 0
결과: Q=0, Q'=0 (정상적으로 Q' = NOT Q여야 하는데 위반!)
입력이 동시에 0으로 돌아가면: 레이싱 조건(Race Condition)
최종 상태 예측 불가능
해결 방법:
1. 입력 제약:
회로 설계에서 S=R=1 동시 인가 금지
(소프트웨어 제어로 보장)
2. JK 플립플롭:
J=K=1 → 출력 반전 (Toggle)으로 정의
금지 조건 제거
JK 진리표 추가:
J K Q(t+1)
0 0 Q(t) 유지
0 1 0 리셋
1 0 1 셋
1 1 NOT Q 반전 (토글)
3. D 플립플롭:
입력 D 하나만 (S=D, R=NOT D)
D=0: 리셋, D=1: 셋
S=R=1 절대 불가 → 금지 조건 원천 차단
가장 많이 쓰이는 플립플롭
CPU 레지스터, 캐시의 기본 단위
4. T 플립플롭:
T=1이면 토글, T=0이면 유지
카운터 회로에 유용
📢 섹션 요약 비유: 금지 조건 해결 = 혼선 방지 신호 — SR(둘 다 말할 수 있어 혼선), D(한 명만 말함 → 혼선 없음), JK(둘 다 말하면 역할 바꾸기로 정의). 혼선 원천 차단이 핵심!
Ⅲ. 클록 제어 래치
레벨 트리거 SR 래치 (Gated SR Latch):
CLK 신호로 입력 활성화 제어
구조:
CLK=1: S, R 입력 반영
CLK=0: S, R 무시 (이전 상태 유지)
AND 게이트 추가:
S_eff = S AND CLK
R_eff = R AND CLK
동작:
CLK S R Q(t+1)
0 x x Q(t) (입력 무시)
1 0 0 Q(t) 유지
1 0 1 0 리셋
1 1 0 1 셋
1 1 1 ? 금지
문제 - 투명성 (Transparency):
CLK=1인 동안 입력이 계속 출력에 반영
CLK 활성화 중 여러 번 상태 변경 가능
→ 예측 어려움
해결 - 엣지 트리거 플립플롭:
CLK의 상승 엣지(0→1)나 하강 엣지(1→0)에서만 샘플링
마스터-슬레이브 플립플롭:
마스터: 상승 엣지에서 입력 샘플
슬레이브: 하강 엣지에서 출력 반영
→ 클록 사이클당 1회만 상태 변경
현대 CPU: 엣지 트리거 D 플립플롭 수십억 개
📢 섹션 요약 비유: 클록 제어 래치 = 수업 시간만 발언 허용 — 수업(CLK=1) 중에만 학생(입력) 말할 수 있음. 쉬는 시간(CLK=0)엔 무시. 엣지 트리거는 딱 종이 울릴 때만!
Ⅳ. 플립플롭 종류 비교
플립플롭 (Flip-Flop) 비교:
래치 vs 플립플롭:
래치: 레벨 트리거 (CLK 레벨에 반응)
플립플롭: 엣지 트리거 (CLK 전환에만 반응)
종류별 특성:
D 플립플롭 (가장 일반적):
입력: D, CLK
Q(t+1) = D (클록 엣지에서)
응용: 레지스터, 시프트 레지스터, 파이프라인
JK 플립플롭:
입력: J, K, CLK
J=K=0: 유지, J=0,K=1: 리셋
J=1,K=0: 셋, J=K=1: 토글
응용: 카운터, 주파수 분주
T 플립플롭:
입력: T, CLK
T=0: 유지, T=1: 토글
JK에서 J=K=T로 연결
응용: 2진 카운터
SR → D → JK → T 변환:
모든 플립플롭은 서로 변환 가능
D가 가장 단순, 구현 용이 → 범용
타이밍 파라미터:
셋업 타임 (t_su): CLK 엣지 이전 입력 안정화 시간
홀드 타임 (t_h): CLK 엣지 이후 입력 유지 시간
전파 지연 (t_pd): CLK → Q 출력까지 지연
CPU 클록 속도 결정 요인:
최대 클록 = 1 / (t_pd + t_su + 배선 지연)
📢 섹션 요약 비유: 플립플롭 종류 = 직원 역할 분담 — D(단순 보조: 시키는 대로), JK(다재다능: 세 가지 역할), T(전문가: 토글만). CPU는 수십억 D 플립플롭으로 레지스터 구성!
Ⅴ. 실무 시나리오 — CPU 레지스터 설계
8비트 레지스터 설계 (D 플립플롭 8개):
구조:
D7..D0: 8비트 입력
Q7..Q0: 8비트 출력
CLK: 클록 신호
WE (Write Enable): 쓰기 허용
각 비트: D 플립플롭 + WE 제어
실제: D_eff = (WE=1) ? D_in : Q_out
동작:
WE=0: 현재 값 유지 (CLK 엣지에도 변경 없음)
WE=1 + CLK 상승 엣지: 새 데이터 래치
x86 CPU 레지스터:
RAX: 64비트 → D 플립플롭 64개
16개 범용 레지스터: 64 × 16 = 1024 플립플롭
(캐시, 파이프라인 레지스터 포함 시 수백만~수십억)
타이밍 (현대 CPU):
클록: 3~5GHz = 0.2~0.33ns 주기
D 플립플롭 전파 지연: ~50ps
셋업 타임: ~30ps
1nm 공정: 더 빠른 전환, 더 낮은 전압
5V → 0.7V (전력 절감, 속도 향상)
메모리 계층과 래치:
레지스터 (D 플립플롭): 0.3ns, 수십~수백 바이트
L1 캐시 (SRAM: 6T 래치): 1~2ns, 32~64KB
L2 캐시: 4~8ns
DRAM: 80~120ns
SRAM 셀 = 6개 트랜지스터로 1비트 SR 래치 구현
📢 섹션 요약 비유: CPU 레지스터 = 계산기 화면 — D 플립플롭 64개가 RAX 레지스터. CLK마다 새 값 저장. 3GHz = 0.33ns마다 갱신. 현대 CPU는 수십억 개 래치로 고속 연산!
📌 관련 개념 맵
SR 래치 (SR Latch)
+-- 게이트 기반: NOR / NAND
+-- 출력: Q, Q'
+-- 금지 조건: S=R=1
+-- 발전
| +-- 클록 제어 래치 (Gated SR)
| +-- D 플립플롭 (가장 일반)
| +-- JK 플립플롭
| +-- T 플립플롭
+-- 응용
+-- CPU 레지스터
+-- SRAM 셀
+-- 파이프라인 레지스터
📈 관련 키워드 및 발전 흐름도
[SR 래치 (1919년경)]
NOR/NAND 교차 결합
최초의 디지털 기억 소자
|
v
[JK 플립플롭 (1950s)]
금지 조건 해결
토글 기능 추가
|
v
[D 플립플롭 (1960s)]
단일 입력
레지스터의 표준
|
v
[엣지 트리거 (1970s~)]
마스터-슬레이브
클록 안전성
|
v
[현재: 수십억 플립플롭]
3nm 공정 CPU
레지스터, 캐시, 파이프라인
👶 어린이를 위한 3줄 비유 설명
- SR 래치 = 두 경비원 규칙 — A가 "켜"(S) 외치면 A 켜지고 유지. B가 "꺼"(R) 외치면 꺼짐. 둘 다 외치면 싸움(금지 조건)!
- D 플립플롭 = 클록마다 스냅샷 — 카메라(D FF)가 종(CLK) 울릴 때마다 현재 모습(D) 찍어 저장(Q). 3GHz = 초당 30억 장 촬영!
- SRAM 캐시 = 빠른 메모 판 — L1 캐시는 6개 트랜지스터 SR 래치. DRAM보다 100배 빠르지만 비용도 100배. CPU 옆에 작게 두는 이유!