[순차 논리] 시간 표현과 상태 기억
[시간 표현과 상태 기억]
📋 Logic
조합 논리 (Combinational Logic) : 현재 출력은 현재 입력의 함수
순차(순서) 논리 (Sequential Logic) : 현재 출력은 현재 입력과 과거의 입출력에 영향을 받는다
주기적 함수의 예시 : 지구의 자전
지구가 한 바퀴를 다 돌면 이를 하루라고 부른다.
하루를 나누어 구분하면 하루는 86,400초이므로, 1초는 지구 자전의 1/86,400이라고 정의 할 수 있다.
Q. 그렇다면 디지털 회로에서는 시간을 어떻게 만들어내는가?
👉🏻 전자공학적으로 주기적인 전기 신호를 만들어내는 방식을 사용
[ 발진자(oscilator) ]
발진자는 인버터의 출력을 그림과 같이 입력에 연결하는 트릭을 이용하여 동작
feedback(되먹임) : 인버터의 출력이 다시 입력으로 들어가면서, 출력이 0과 1사이를 진동한다.
그러나 이러한 발진자는 진동하는 속도가 전파 지연에 따라 결정되고, 온도에 따라 달라지는 경향이 있음.
안정적인 주파수로 진동하는 발진자가 있어야 더 정확한 시간을 측정 가능 => 크리스털을 활용
피에조 전기 효과(압전효과)
- 어떤 물질에 압력을 가했을 때 전기적인 변화가 생기는 현상
- 고체물질은 기본적으로 같은 모양을 한 분자가 반복되는 구조로 이루어져 있어, 양전하(+), 음전하(-)의 분포가 균형을 이뤄 전기적으로 중성을 띈다.
- 그런데 여기에 힘을 줘서 고체의 결정 구조가 미세한 변화가 생기면, 전하의 분포가 변하고 순간적으로 전기가 흐르게 된다
- 물질에서 한쪽은 상대적으로 +가, 다른 쪽에서는 -가 강해져 물질의 전하 분포가 음과 양으로 나뉘면서 전기가 흘러갈 수 있게 되고, 미세한 진동을 만들어낸다.
- 크리스털은 압력을 주었을 때 전기가 잘 발생하는 물질 중 하나로서, 크리스털은 예측 가능한 안정적인 발진자로 사용하게 되었고, 이는 시계 정확성에 획기적인 발전을 가져왔다.
*참고로 이러한 압전효과는 우리 일상생활에 다양하게 활용된다. (라이터도 압전효과의 한 예시다)
왜 뜬금없이 크리스털을 이야기했을까? 컴퓨터에서 이 크리스털을 외부 발진기로 쓴다!
[ 클록(clock) ]
- 왼쪽에 은색이 수정 발진기다. 수정 결정을 적당하게 잘라서 회로처럼 작동하고 일정한 공명 진동수를 만들어낸다.
(14.318k 라고 써있는건 저 주파수를 쓴다는 것을 뜻한다)
- 일반적으로 쿨록은 순차 회로에 가해지는 전기적 진동의 속도를 나타내는 단위이며 Hz로 표기한다.
- 아래와 같은 전기 신호가 한번 제 위치로 돌아오면 1Hz다. 보통 1초에 몇번 오는지에 따라 몇 Hz라고 표기한다.
- 발진자는 컴퓨터에 클록(시간을 셀 수 있게 해주는 신호)을 제공한다.
- 클록은 회로의 페이스를 결정한다. 또한 회로의 최대 클록 속도나 가장 빠른 템포는 회로의 전파 지연 시간에 의해 결정된다.
- CPU, GPU 대표적인 순차회로 연산 장치인데, 보통 1초에 수 억번에서 수십 억번의 진동이 가해진다.
- 모든 연산 장치는 전기적 진동을 견딜 수 있는 최대 한계치가 있는데, 이를 넘어서면 회로가 타버리거나 이상작동이 발생한다. 생산자 측에서 적절하게 계산해서 만들어놓는데, 이를 해제하고 단위시간당 작동횟수를 높이는 것을 오버쿨록이라고 한다.
[ 래치(Latch) ]
- 이전 상태를 기억하기 위한 메모리를 만들기위한 기초가 래치이다.
- 래치는 피드백을 통하여 한 비트를 저장할 수 있는 회로이다.
<AND, OR 게이트를 이용한 래치>
S : set(설정) / R : reset(재설정)
- reset이 1인 경우 out은 set의 값으로 셋팅되게 된다. ( Why? AND게이트의 결과가 항상 0이기 때문이다. )
- reset이 0이면서 set이 1이면 set의 값이 out으로 결정된다. ( Why? OR 게이트에선 어느 한쪽의 입력이 1이면 결과는 무조건 1이 나오기 때문이다. )
- reset이 0이면서 set이 0이면 이전의 out값이 그대로 out으로 출력된다. 즉, 이전값을 기억하게 된다.
위 회로를 보면 reset의 최초 입력이 0일때 되먹임이 초기화 되는 작업이 수행된다. 이를 액티브 로우(Active Low)라고 하며 어떤 작업을 수행하려고 할때 1이 아닌 0을 입력함으로써 작업을 시작할 수 있도록 하는것을 뜻한다. 반대는 액티브 하이(Active High).
<S-R 래치>
*책에서는 set과 reset에 바가 있는 것을 참고하시길 바랍니다. 여기서 설명은 위의 그림을 참고
1) S = 0, R = 0 일때 출력은 그 값을 유지
2) S = 0, R = 1 일 때, reset 신호가 활성화 되어있으므로 reset(0)으로 나옴
3) S = 1, R = 0 일 때, set 신호가 활성화 되어있으므로 출력이 set(1)로 나옴
4) S = 1, R = 1ㅇ 일 때는 제한 입력으로 출력값이 제한됨
자세히 설명하면 가령 S = 1, R = 0 일때
(1) 초기 상태에서 S가 1이면, 출력 Q의 값은 1, Q'값은 0
(2) 이 때의 Q'의 값이 R = 0 과 함께 NOR 게이트의 입력으로 들어가면 NOR 게이트의 출력은 1로 나옴
(3) 이 때의 신호가 다시 S와 함께 NOR 게이트로 입력
(4) 그러면 위의 NOR 게이트에서 S = 1, Q = 1이므로 출력이 0이 나옴
(5) 최종 출력 결과 역시 Q = 1, Q' = 0 으로 이 과정이 반복됨 (입력 신호를 기억)
*S = 1, R= 1은 왜 제한되는가?
Q와 Q'이 보수 관계가 되기 때문에 제한된다.
S가 1이면 Q가 1이 되어야하고, R이 1이면 Q'이 1이 되어야한다.
즉 출력값이 0과 1을 반복하면서 원하는 신호를 얻지 못하기 때문에, 이 때의 신호를 제한하여 허용하지 않는다.
<논리게이트 참고>
참고
https://www.youtube.com/watch?v=KRyHfr3xjwk
https://www.youtube.com/watch?v=iQuxA1dDdMU
https://e-funny.tistory.com/13