오늘 끝나면
레지스터와 RAM
- ✓레지스터와 RAM의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 레지스터와이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
플립플롭, SRAM, DRAM — 비트를 잠깐 붙잡는 법과 많이 저장하는 법은 다르다 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
13 · 1비트 메모리
1비트 메모리
게이트는 입력 사라지면 바로 까먹음. 근데 ‘기억’은 어떻게 생김?
게이트는 기억이 없다
여태 본 게이트는 다 즉답형임. 입력 들어오면 출력 나오고, 입력 빠지면 출력도 같이 사라짐.
AND·OR·XOR 어느 것도 방금 값을 붙잡지 못함. 매 순간 들어온 입력만 보고 답을 다시 계산함.
그래서 전원 끊기거나 입력 끊기면 회로 안에 남는 게 없음. 기억하려면 ‘붙잡는 장치’가 따로 필요함.
A=1 B=1 → Q=1
A=? B=? → Q 사라짐
방금 값을 안 들고 있음 — 기억 없음
피드백으로 상태를 가둔다 — 래치
기억을 만드는 트릭은 의외로 단순함. 출력을 다시 입력으로 되먹이는 것 — 피드백임.
게이트 두 개를 서로의 출력에 물려 고리를 만듦. 그러면 한쪽이 1이면 그 1이 상대를 눌러 자기를 계속 1로 유지함.
입력이 빠져도 고리가 값을 스스로 떠받침. 이렇게 상태가 걸려 멈추는 회로가 래치임 — 1비트가 회로 안에 갇힘.
파란 선 = 출력을 다시 입력으로 되먹임
입력 빠져도 고리가 값을 떠받침 — 상태가 걸림
클럭과 D 플립플롭
래치는 입력이 흔들리면 출력도 같이 흔들림. 언제 받을지 박자를 정해줘야 함.
그 박자가 클럭임. 일정하게 째깍이는 신호로, 회로 전체가 같은 순간에 움직이게 맞춰줌.
래치에 클럭을 단 게 D 플립플롭임. 클럭 치는 그 순간에만 입력 D를 받아 Q에 가둠. D를 아무리 바꿔도 다음 클럭 전까진 Q는 그대로임. 0과 1을 한 박자 동안 붙잡아 둠 — 이게 1비트 메모리임.
↑ 점선 = 클럭 상승 순간(받는 시점)
| 박자 | D | Q(가둠) |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 0 | 1 |
| 3 | 0 | 0 |
| 4 | 1 | 0 |
칸 = 클럭 친 박자에만 D가 Q로 넘어옴
직접 박자를 쳐서 가둬보기
말로 봤으니 손으로 확인함. 오른쪽에서 D를 바꾸고 클럭을 직접 쳐봄.
클럭을 안 친 채 D만 바꾸면 Q는 꿈쩍 안 함. 클럭 치는 순간에만 그때의 D가 Q로 넘어와 갇힘.
이게 ‘붙잡아 둔다’의 실체임. 입력이 다시 바뀌어도 다음 박자 전까진 값이 그대로 유지됨.
D를 바꿔도 Q는 그대로죠? 클럭을 한 번 쳐야 Q가 D를 받아 갱신됩니다. 이 ‘붙잡아 두는 것’이 바로 1비트 기억입니다.
레지스터 → SRAM → DRAM의 씨앗
플립플롭 하나는 1비트임. 이걸 나란히 깔면 메모리가 됨.
8개·32개·64개를 묶으면 레지스터 — CPU가 계산 중인 값을 잠깐 쥐는 칸임. 같은 플립플롭을 수백만 개 격자로 깔면 SRAM, 캐시가 됨.
DRAM은 플립플롭 대신 작은 커패시터 하나에 전하를 담아 1비트를 더 싸고 빽빽하게 만듦. 그래서 메인 메모리는 DRAM, 빠른 캐시는 SRAM임.
Q. 클럭을 안 친 채 D만 0→1로 바꾸면 D 플립플롭의 Q는?
정답은 안 변함(이전 값 그대로)임.D 플립플롭은 클럭 치는 순간에만 D를 받아 가둠.
클럭이 안 오면 D가 아무리 바뀌어도 Q는 직전에 가둔 값을 유지함.
이 ‘붙잡아 둠’이 1비트 메모리의 핵심임.
같은 1비트를 수억 개 깐 게 메모리임