연산을 대신해줄 우리의 친구, 논리게이트 -1

김재만·2022년 2월 22일
0

우리는 컴퓨터 안의 수 많은 스위치를 수동작동 하는 것에서 많이 멀어졌다. 그러기 위해서 필요한 것이 논리 표현을 수행하는 스위치와 스위치를 조작하는 하드웨어를 포함한 전체가 하나의 회로로서 작동하는 것이다. 이런 연산을 수행하는 회로를 논리게이트 혹은 게이트라고 한다.

논리게이트

논리게이트는 레고의 블럭, 리액트의 컴포넌트, 프레임워크의 모듈처럼 일정한 형태로 정형화하여 사용한다. 이렇게 하면, 일일이 논산을 구현하는 시간을 줄일 뿐만아니라, 직관적 사고의 깊이를 얕게 만들어 더 복잡한 연산을 구현할 수 있게 만든다.

정형화된 게이트는 단순한 논리연산의 종류 같다. AND게이트, OR게이트, 베타적OR게이트(XOR), 인버터(NOT)다. 이를 스키매틱 기호로 표현하면 아래와 같다.

왼쪽 A-B는 입력 값, 오른쪽 Y는 출력 값을 나타낸다. 인버터의 동그라미 모양 기호는 not연산을 의미하는 기호다.

구현하는 비용에 있어서는 AND게이트와 OR게이트보다 NAND와 NOR게이트가 저렴하다. 오히려 표현할 수 있는 논리표현이 더욱 늘어나기 때문에, NAND게이트와 NOR게이트
로 활용하는 경우가 많다.

출력값의 NOT연산 처리를 입력값에서도 적용할 수 있으며, 3개 이상의 입력 값을 받아서 연산할 수도 있다.

슈미트트리거 게이트

디지털 신호 역시 입력-전달할 때 전기라는 현실에 존재하는 물리력을 활용한다. 그리고 전기라는 물리력은 당연히 연속적이며, 힘이 발생할 때는 반작용을 비롯하여 다양한 변수의 영향아래 있다. 뿐만 아니라, 입력 역시 1아니면 0이라고 정해진 것이 아니라, 가리키는 값이 0과 1을 오고가면서 다양한 그래프를 띄는 형태의 입력도 존재한다. 이것을 해결하기 위해서 디지털에서 정확도를 높이기 위한 방법이 왜곡을 일으키는 증폭전이를 통해서 문턱값을 높이는 것이다. 하지만, 문턱값을 무작정 높인다면, 받을 수 있는 입력값의 제한이 생긴다. 그리고 문턱값을 넘었다가 넘지 못하는 상태로 변하는 형태의 입력도 있을 수 있다.

이를 해결하기 위한 방법이 이력 현상의 활용이다. 현재의 입력값에 따라 증폭전이 현상을 조절하여, 문턱값을 조정하는 것이다. 때문에 이미 문턱값을 넘은 입력값이 점차 작아지더라도, 그것에 대응하여 문턱값도 낮아지는 것이 가능하다. 이러한 방법으로 잡음(의도와 다르게 입력된 값)을 대응하는 게이트를 슈미트트리거라고 한다.

차동신호

환경이 물리적으로 이상적이지 못할 수록 많은 잡음이 발생한다. 슈미트트리거를 활용하여 유연하게 문턱값을 조정하더라도 절대적인 기준을 충족하는 잡음은 언제나 발생할 수 있다. 따라서, 특정 절대값에 연연하지 않는 상대적인 잡음대응 방법이 필요케 된다.

차동신호는 신호 하나를 입력받아 해당 값이 전달되는 도선 하나와, 입력값을 반대로 하여 전달하는 도선 하나를 통해서 두 값의 쌍을 전달하는 신호 방식이다.(일반적으로 전압 값을 조정한다.) 이 두 값은 정상적인 범위에서는 서로 논리적으로 반대 결과를 반환한다. 때문에 값 자체가 절대적으로 문턱값을 넘나, 넘지 못하나를 따지는 경우보다 더욱 정확한 값(0 혹은 1)을 반환할 수 있다.

예상 범위를 벗어나 두 값이 공통된 출력값을 가리키는 경우를 공통모드라고 하며, 이 경우 출력되는 값은 잡음에 해당한다.

전파지연

profile
듣는 것을 좋아하는 개발자입니다

0개의 댓글