지은이 찰스 펫졸드의 말을 빌리자면, 일단 이 책은 컴퓨터의 아주 기초적이고, 원형적인 모습을 찾아 떠나는 특이한 여행이다. 실제 컴퓨터와는 다르지만, 컴퓨터에 사용되는 많은 장치들의 초기 모습과 동작원리들을 하나씩 밝혀주고 있다. 가끔은 어떻게 실제와 다르고 어떤 문제의 소지가 있는지도 알려준다. 머리는 못 따라가도 좋은 얘기를 해주고 있다는 믿음은 어느 정도 생기는 책이라고 위안을 하고 싶다. ㅋㅋㅋㅋ

재밌게 읽기는 했는데, 후반부에 머리가 지끈거리며 한계를 느꼈다. 조만간 이런 게 있구나 싶은 수준에서 후딱 읽기만 할 때가 다가오고 있다. 회로가 정말 복잡하게 그려지기 시작한다. 게다가 타이밍(?)까지 상상해야 하는.. 흠.. ㅡㅡ;;


챕터 14. 피드백과 플립플롭

오실레이터 ( oscillator ) 는 컴퓨터에서 사용되는 메인보드에도 등장했던 단어다. 지금도 있는지는 모르겠지만, 클럭 발진기 ( clock generator ) 를 오실레이터라고도 불렀다. CPU 클럭에 작동주기를 주는 장치였는데, 그에 대한 기초적인 원리를 이 챕터에서 살펴볼 수 있다.

인버터의 출력은 입력의 반대가 되지만, 위의 그림에서는 입력은 곧 출력이 되므로 논리적으로 모순인 것 같기도 합니다. 하지만 인버터 역시 릴레이와 마찬가지로 어떤 상태에서 다른 상태로 변할 때 약간의 시간이 필요하다는 것을 기억하실 것입니다. 따라서 입력에 출력 값이 전달되어 같은 값이 되더라도, 오래지 않아 출력이 바뀌어 입력과 반대되는 값이 됩니다. 물론, 출력이 바뀜에 따라 입력도 금방 바뀌겠지요.
그렇다면 이 회로의 출력은 어떻게 될까요? 아마도 전압이 공급되는 상태와 공급되지 않는 상태를 빠르게 왔다 갔다 하게 될 것입니다. 다른 말로 하면 출력이 0과 1사이를 빠르게 왔다 갔다 한다는 말이지요.
이런 회로를 오실레이터 ( oscaillator, 진동자 ) 라 부릅니다. 이 장치는 우리가 지금까지 보아왔던 회로들과는 근본적인 차이가 있습니다. 이전의 회로들은 스위치 조작에 따라 회로의 상태가 변했습니다. 하지만, 오실레이터는 외부의 개입 없이 자체적으로 동작하기 때문에 사람의 조작이 필요하지 않습니다.
- 250쪽 발췌.

릴레이, 스위치, 접점을 그림으로 보여주며 아주 단순하게 설명해주는 데, 두 개의 스위치가 있는 회로에서 ( 두번째 스위치는 접점에 연결된 상태. ) 첫번째 스위치를 연결하면 전체 라인(?)이 연결되고 전자기력이 생긴다. 전자기력은 당기는 힘으로 두번째 스위치를 접점에서 떼어내고 전체 회로의 연결은 다시 끊긴다. 연결이 끊기는 순간, 전자기력은 사라지고, 두번째 스위치는 다시 접점으로 돌아가 ( flip back ) 전체 연결을 완성시킨다. 그러면 다시 전자기력이 발생한다. 이렇게 무한 반복이 발생하면서 클럭 혹은 사이클이 발생한다.

그림 그리기 어려워 말로 하는 것을 양해했으면 하고, 어차피 볼 사람은 나밖에 없을 듯 싶다. ㅋㅋㅋ

이 그림이 표현하고자 한 것은 시간이 지남에 따라 오실레이터의 출력이 규칙적으로 0과 1사이를 왔다 갔다 하며 일종의 진동을 발생시킨다는 것입니다. 이러한 진동의 횟수를 세면 시간에 관련된 정보를 알 수 있기 때문에 보통 오실레이터를 클럭 ( clock ) 이라고 부릅니다.
- 251쪽 발췌.

위의 원리에 따라 스위치가 붙었다 떨어졌다 하며, 전기가 흘렀다 끊어졌다 하는 주기를 아래와 같이 클럭으로 표시할 수 있다. 3.4 기가 헤르쯔가 얼마나 위대한 숫자인지 존경스러워진다. ㅋㅋㅋ

주기 ( period ) 의 역수를 구함으로써 오실레이터의 주파수를 구할 수 있습니다. ( 1 ÷ 주기 ) 위의 예에서와 같이 오실레이터의 주기가 0.05 라면 오실레이터의 주파수는 1 ÷ 0.05 가 되어 초당 20 사이클이 됩니다. 이 이야기는 오실레이터의 출력값이 변하고, 다시 변해서 원래의 값으로 돌아오는 것이 1초에 20번씩 반복된다는 말입니다. ( = 20 Hz, 20 헤르쯔 )
...
( 옮긴이 ) 앞에서 사이클도 주기라 했는데, 여기서 period 도 역시 주기라 이야기했습니다. 용어가 같은 이유는 개념상으로 아주 비슷하기 때문이지요. 사이클은 반복적으로 이벤트를 발생시키는 클럭에서 어떤 이벤트 ( event ) 가 발생한 시점부터 같은 이벤트가 발생할 때까지를 의미하고, 이를 시간으로 표현하면 period 가 되기 때문이지요. 여기서는 사이클과 주기라는 표현으로 구분하도록 하겠습니다.
- 252쪽 발췌. CODE.

출력이 입력이 되고, 입력이 출력이 되고.. 어쩌구 하는데, 장자가 나비의 꿈을 꾸는 건지 나비가 장자의 꿈을 꾸는 건지 알 수 없다는 말과 비슷하게 들린다. ^^;;

이상하게 회로를 둘러 들어오는 전선이 눈에 띌 것입니다. 왼쪽에 있는 NOR 게이트의 출력이 오른쪽 NOR 게이트의 입력으로 들어가고, 오른쪽 NOR 게이트의 출력이 다시 왼쪽 NOR 게이트의 입력으로 들어가지요. 이러한 형태를 피드백 ( feedback ) 이라 합니다. 오실레이터에서 보신 것처럼 회로의 출력이 입력으로 되돌아가는 형태를 가집니다.
- 254쪽 발췌.


플립플롭이란 말을 애초에 이렇게 설명 들었으면 훨씬 이해하기 쉬웠을 텐데 하는 아쉬움이 남는 대목이다. 플립플롭에서 중요했던 건 이제 회로들이 " 기억 " 이란 걸 할 수 있다는 것이었다. AND, OR 게이트 같은 것들 뒤에 느닷없이 플립플롭이 나왔다고 하면 그걸 누가 자연스레 이해할 수 있겠는가..

* 위쪽 스위치를 닫으면 전구가 켜지며, 그 이후에는 스위치가 열리더라도 그 상태 ( 전구가 켜진 상태 ) 를 유지하게 됩니다.
* 아래쪽 스위치를 닫으면 전구가 꺼지며, 그 이후에는 스위치가 열리더라도 그 상태 ( 전구가 꺼진 상태 ) 를 유지하게 됩니다.

이 회로에서 이상한 점은 똑같이 두 스위치가 열려 있더라도 어떤 경우에는 전구에 불이 들어오고, 어떤 경우에는 전구에 불이 들어오지 않는다는 점입니다. 위와 같은 경우를 ' 이 회로는 두 스위치가 모두 열려 있을 때 두 가지 안정된 상태 ( stable state ) 를 가지고 있다 ' 고 합니다. 또한, 이런 회로를 플립플롭 ( flip-flop ) 이라 합니다. 플립플롭은 바닷가에서 신는 샌들 ( 옮긴이. 우리나라에서는 쪼리라는 일본어(?)로도 불리는 발가락 샌들을 이야기하죠. ) 을 부르는 말로도 사용되며, 정치적 견해를 갑자기 바꾸는 것을 이야기할 때도 사용됩니다.
...
플립플롭 회로는 정보를 유지할 수 있다는 특징을 가지고 있습니다. 정보를 ' 기억할 수 있는 것 ' 이지요. 위와 같은 형태의 플립플롭은 직전에 어떤 스위치가 닫혔는지에 대한 정보를 기억하고 있는 것입니다.
- 256쪽 발췌.

뭔가 어려운 얘기들이 시작되며 서서히 정신상태가 페이드 아웃.. ㅋㅋㅋ

이러한 형태의 회로를 레벨 트리거 D-타입 플립플롭 ( level-triggered D-type flip-flops ) 이라 합니다. 여기서 D 는 데이터를 나타냅니다. 레벨 트리거 ( level-triggered ) 는 값 보존 입력이 특정 값 ( 위의 경우에는 1이었지요. ) 인 경우에 이 플립플롭이 데이타 입력 값을 저장한다는 의미입니다.
...
실제로 이 책에서 설명한 회로들과 유사환 회로들이 사용될 때 입력으로 ' 값 보존 ' 이라는 이름은 잘 사용되지 않습니다. 보통 클럭 ( Clock ) 이라는 이름이 사용되지요. 그렇다고 이 신호가 실제 시계 ( clock ) 는 아니고, 0 과 1 사이를 주기적으로 왔다 갔다 하는 시계와 비슷한 속성을 가지고 있는 신호입니다. 하지만 일단 여기서의 클럭은 데이터 입력이 언제 저장되어야 하는지를 알려주는 신호라고만 생각하셔도 됩니다.
- 264쪽 발췌.

래치라는 말을 어디선가 봤는데, 기억이 나질 않는다. 일단 기록은 해둔다.

(옮긴이) 래치 ( latch ) 라는 단어는 문고리를 걸어 잠근다는 의미인데, 앞의 회로에서 클럭과 같은 신호가 입력을 걸어 잠그는 역할을 해주는 걸 생각하면 아주 적절한 용어겠지요. 참고로 논리 회로에서 대체로 레벨 트리거 속성을 가진 경우 래치라는 용어를, 뒤에서 설명될 엣지 트리거 ( edge-triggered ) 속성을 가진 경우에는 플립플롭이란 용어를 사용하는 것이 일반적입니다.
- 265쪽 발췌.


찰스 펫졸드가 자신의 역작이라고 했고, 정말 이해하기 쉽도록 썼다고 하는데, 나는 열외인 모양이다. 벌써 막힌다. ㅋㅋㅋ 그래도 오실레이터 알아낸 게 소득이고, 클럭이 이런 식으로 발생하는구나 정도는 알겠다. 플립플롭 이후의 회로들은 각 입력 상태, 출력 상태를 몇 번 따라가면서 확인했더니 눈이 팽팽 돈다. ㅡㅡ;;

WRITTEN BY
리컨
영화를 즐기는 취미를 기록한 블로그입니다.

,