All Articles

Logic gate

Switch on and off

Image Source : Freepik

컴퓨터를 구성하는 기본 블록인 논리게이트에 대해 알아보자

Logic Gate

논리게이트는 두가지 상태만으로 논리연산을 수행한다.
두 가지 상태라는 것은 참(1) 그리고 거짓(0)이다. 2진수로 데이터를 표현하는 것은 전기로 작동하는 컴퓨터가 데이터를 다루기에 가장 적합한 방법이다. 실질적으로 스위치를 On & Off 하면서 데이터를 전달하면 되기 때문이다. Binary two states 전자 회로에서 Switch가 On 되었다는 것은 5v의 전류가 흐르고 있다는 것을 뜻하고 Off는 전류가 흐르지 않는 상태인 0v를 의미한다. '이 두 가지 상태만으로 복잡한 일이 가능할까?' 라는 의문이 들 수 도 있겠지만, 컴퓨터는 0과 1만으로 연산, 게임, 무인항공기제어등 복잡한 일들을 무리 없이 수행해낸다. 컴퓨터가 수많은 분야에서 쓰일 수 있게 된 것은 불리언(Boolean)방정식이 논리연산과 산술연산 모두를 가능케 했기 때문이다. 조지 불이 고안해낸 불리언방정식을 클로드 섀넌이 1937년 디지털 논리회로로 접목시킬수 있음을 증명해냈다. 기존의 방정식이 미지수를 수학적 계산을 통해 풀어냈다면 불리언 방정식은 '참' 또는 '거짓'이라는 논리적 관계를 통해 풀어낸다. 여기서 미지수는 숫자뿐만 아니라 아이디어, 명제도 포함된다.

George Boole George Boole 조지 불 | 영국의 수학자
1815.11.02 (Lincoln, UK) ~ 1864.12.08 (Cork, Ireland)

George Boole 은 Mary Ann Joyce 어머니와 John Boole 아버지 사이에서 태어났다. 그는 1854년 불리언방정식에 대한 내용을 담고 있는 책 An investigation into the Laws of Thought 를 출판했다.

Claude Shannon Claude Elwood Shannon 클로드 섀넌 | 미국의 전기공학자
1916.04.30 (Michigan, US) ~ 2001.02.24 (Massachusetts, US)

정보이론의 아버지라고 불리는 클로드 섀넌은 언어교사인 어머니와 사업가 아버지 사이에서 태어났다. 그는 1937년 불 논리를 이용한 이진수 사칙연산에 대한 석사 논문 A mathematical theory of communication 를 발표했다. 그로인해 1940년 프린스턴 고등연구소에 초빙되었으며 유명한 수학자 헤르만 바일, 존 폰 노이만등과 같이 연구를 진행했다.

Basic Gates

Image Source : hyperphysics

논리게이트는 보통 2개 이상의 Input 단자와 1개의 output 단자를 가진다. 여러 종류의 단자들이 모여 논리회로를 구성한다. 대표적인 논리게이트는 AND, OR, NOT, NAND, NOR, XOR, XNOR가 있다. 이들을 다양하게 조합하여 복잡한 논리를 간결하게 이진수로 표현해 낼 수 있다. 컴퓨터의 모든 동작은 논리회로의 동작으로 이루어진다. 아래에서는 몇가지의 논리게이트들을 진리표(truth tables) 와 함께 살펴보도록 하겠다.
* 단자: 전기회로나 전기기기 등에서 전류의 입력이나 출력부분에 전극을 접속시키기 위해 붙이는 끝 부분

AND gate

AND 게이트 | 논리곱
논리식 : A*B
AND Gate AND Gate Truth Table

AND 게이트는 논리곱이라고도 불리우는데, 곱셈연산처럼 작동을 하기 때문이다.
1*0, 0*1, 0*0 이 0인 것 처럼 True인 경우는 오직 하나 1*1 일 때만 가능하다. 즉 Input A 와 Input B 의 값이 모두 1인 상황에서만 True 를 반환한다.

예시를 들어보자 AND Example

첫번째, Input A(내 이름은 Baby Tiger)와 Input B(호랑이다)는 모두 true 이므로 Output은 True 가 되었다.
두번째, Input A(내 이름은 Baby Tiger)는 참이었지만 Input B(사자다)는 거짓이다. 두 가지 조건을 모두 충족하지 못했기에 결과는 False 가 된다.

Javscript에서 AND 연산자는 || 로 표시한다. 자바스크립트로 구현을 해본다면 아래와 같다.

And JavScript code

OR gate

OR 게이트 | 논리합
논리식 : A+B
OR Gate OR Gate Truth Table

OR 게이트는 논리합이라고도 불린다. 덧셈연산처럼 작동을 한다.
0+1, 1+0, 1+1 은 모두 참이 된다. False 인 경우는 오직 하나 Input A 와 Input B가 0 인 경우이다.

예시를 들어보자 OR Example

첫번째, Input A(나는 사자)은 거짓이지만 Input B(호랑이다)는 참이기에 결과는 참이된다.
두번째, Input A(나는 육식동물)과 Input B(고양이과다)모두 참이기에 이 역시 결과가 참이된다.

Javscript에서 OR 연산자는 && 로 표시한다. 자바스크립트로 구현을 해본다면 아래와 같다.

Or JavScript code

NOT gate

NOT 게이트 | 논리부정
논리식 : A' = Ā
OR Gate OR Gate Truth Table

인버터라고도 불리우는 NOT 게이트는 한개의 입력과 한개의 출력만을 가진다. Input된 논리를 반전시켜 반대의 결과를 도출해 내도록 하는 게이트이다. 0 이 Input되면 1 을, 1 이 Input 되면 0 을 반환한다.

지금까지 논리게이트와 기본 논리게이트의 종류에 대해 알아보았다. 다음 포스팅에서는 세가지의 논리게이트를 조합하여 만들어낼 수 있는 NAND, NOR, XOR, XNOR에 대해 알아볼 것이다.

Reference