오늘 끝나면
레지스터와 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비트를 수억 개 깐 것이 메모리다