yeolyi.com성열의 컴퓨터공학

SR 래치

AND, OR, NOT 같은 논리 게이트들을 조합하면 덧셈을 수행하는 계산기를 만들 수 있습니다. 하지만 이 계산기에는 한 가지 큰 한계가 있습니다. 바로 계산 결과를 기억하지 못한다는 점입니다.

가산기처럼 현재 입력값에만 의존해서 출력이 즉시 결정되는 회로를 조합 논리 회로(Combinational Logic Circuit)라고 부릅니다. 입력이 바뀌면 출력도 바로 바뀌고, 이전에 어떤 입력이 들어왔었는지는 기억하지 못합니다.

마치 벽의 전등 스위치를 누르는 동안만 불이 켜지고 손을 떼면 즉시 불이 꺼지는 것과 같습니다. 일반적인 전등 스위치는 한 번 누르면 불이 켜지고, 다시 누르면 불이 꺼지는 토글 방식으로 작동하는데, 조합 논리 회로로는 이런 기능이 불가능합니다. 전등의 이전 상태가 무엇이었는지를 기억해야 새로운 상태를 계산할 수 있기 때문입니다.

오늘은 컴퓨터의 기억상실증을 고쳐줄 회로, 바로 순차 논리 회로를 알아봅시다.

순차 논리 회로

반면 기억 능력을 가진 회로를 순차 논리 회로(Sequential Logic Circuit)라고 합니다. 순차 논리 회로는 현재 입력뿐만 아니라 이전 상태(기억된 값)에도 의존하여 출력을 결정합니다.

SR 래치

그렇다면 순차 논리 회로는 어떻게 정보를 기억하는 걸까요? 피드백(Feedback), 즉 회로의 출력이 다시 입력으로 돌아가는 구조가 핵심입니다. 이 피드백 루프를 활용하여 가장 단순한 형태의 기억 장치인 SR 래치(SR Latch)를 만들 수 있습니다.

NOR 게이트는 OR의 결과를 뒤집은 것으로, 두 입력이 모두 0일 때만 1을 출력합니다. SR 래치는 이 NOR 게이트 단 두 개만으로도 만들 수 있습니다.

S와 R을 클릭해 값을 토글할 수 있습니다. 다음 순서대로 조작해봅시다:

  1. S를 클릭해 1로 바꾸면 Q가 1이 됩니다. (설정)
  2. S를 다시 클릭해 0으로 돌리면, Q는 여전히 1입니다. 값이 기억됩니다. Q=1이 아래쪽 NOR의 입력으로 들어가 Q̅를 0으로 만들고, 그 0이 다시 위쪽 NOR의 입력이 되어 Q=1을 유지합니다. 두 게이트가 서로의 출력을 붙잡고 있는 것입니다.
  3. R을 클릭해 1로 바꾸면 Q가 0으로 돌아갑니다. (리셋)

SR 래치는 두 가지 입력과 두 가지 출력을 가집니다:

SRQQ̅동작
00이전 상태 유지이전 상태 유지유지 (Hold)
0101리셋 (Reset)
1010설정 (Set)
11불안정불안정금지 상태

각 입력과 출력의 역할을 살펴보면:

S와 R 입력이 모두 0으로 돌아갔을 때 래치는 이전에 기억했던 값을 계속 유지한다는 점이 가장 큰 특징입니다.

SR 래치의 문제점

SR 래치는 기본적인 ‘기억’ 기능을 제공하지만, 실제 컴퓨터에서 사용하기에는 몇 가지 문제가 있습니다.

가장 큰 문제는 S와 R이 동시에 1이 될 때 발생하는 불안정한 상태입니다. S와 R이 모두 1이면 두 NOR 게이트의 출력은 강제로 0이 됩니다. 즉, Q=0, Q̅=0이 되는데, 이는 SR 래치의 기본 정의인 “Q와 Q̅는 항상 반대 값”이라는 조건을 위배합니다.

더 큰 문제는 이 상태에서 다시 S=0, R=0으로 바꿀 때 발생합니다. 두 NOR 게이트가 동시에 입력 0을 받게 되면서 서로의 출력을 기다리는 경쟁 상태에 빠집니다. 어느 게이트가 먼저 반응하느냐에 따라 Q=1이 될 수도, Q=0이 될 수도 있습니다. 즉 결과를 예측할 수 없습니다.

마무리

논리 게이트의 피드백 구조를 활용해 1비트를 기억하는 SR 래치를 만들었습니다. 하지만 S와 R이 동시에 1이 되면 결과를 예측할 수 없다는 문제가 남아있습니다.

다음 글에서는 이런 금지된 입력이 아예 들어올 수 없게 막은 D 래치를 만들어봅시다.