본문 바로가기
컴퓨터공학/기초

부울 연산과 논리 게이트

by 하이방가루 2022. 7. 26.
728x90
반응형

이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다.

2가지의 상태로 정보를 표현하는 것을 이진(Binary)라고 부른다. 문자상으로 "두 가지 상태"를 일컫는다. 2가지 상태는 정확히 "참"과 "거짓"으로 나타내는 데 필요하다. 컴퓨터 안에서 On상태는 전류가 흐르고, True를 나타낸다. Off상태에서 전기는 흐르지 않고 False를 나타낸다. 이 True와 False를 이진수인 1과 0을 사용해서 나타낼 수 있다.

 

트랜지스터가 사용되면서 전류를 흐르게 하거나 끊는 것 이상으로 다른 수준의 전류를 허용할 수 있게 됐다. 어떤 초기의 전자 컴퓨터는 3개의 상태(Ternary-3 States)를 갖고 있는 3진법을 사용하거나 5가지 상태(Quinary-5 states)를 가진 5진법을 사용하기도 하였다. 문제는 중간 상태가 많이 존재할수록 그것들을 나누기가 어려워진다는 것이다. 예를 들어 배터리가 적거나 전류가 약할 때, 전자파 등 전기적인 잡음이 있다면 신호가 섞일 수 있다. 트랜지스터가 빠르게 상태를 바꿀수록 상황은 더 안 좋다. 그래서 가능한 두 개의 신호를 멀리 배치한다. 단지 "on"과 "off"만을 사용함으로써 컴퓨터 신호를 최소한의 가장 명확한 신호로 사용할 수 있다.

 

이진수를 사용하는 다른 이유 중 하나는 수학 분야에서 이미 존재했던 참과 거짓을 독점적으로 다루는 분야가 존재하기 때문이다. 그 수학 분야는 참과 거짓을 조작하는데 필요한 규칙과 연산방법을 모두 알아냈다. 이것은 "부울 대수학(Boolean Algebra)"이라 불린다. 부울 대수학은 1800년대 영국의 수학자인 George Boole이라는 사람의 이름을 따서 만들었다. 그가 1847년에 낸 "논리의 수학적 분석"이라는 책을 통해서 부울의 접근은 논리 방정식을 통해 공식적으로, 체계적으로 증명되었다.

 

부울 대수학에서 변수의 값은 참과 거짓뿐이고 연산은 논리연산을 사용한다.

NOT은 참이든 거짓이든 하나의 값을 취하고 그것을 부정한다. 참은 거짓으로, 거짓은 참으로 뒤집는다.

입력 INPUT 출력 OUTPUT
TRUE FALSE
FALSE TRUE

트랜지스터를 이용한 NOT Gate

(게이트[Gate]는 전류의 흐름을 통제하기 때문에 이름 붙여졌다.)

 

AND 부울 연산은 두 개의 입력이 필요하지만 한 개의 출력을 가진다. AND 부울 연산은 모든 입력이 참일 경우에만 참을 출력한다.

INPUT A INPUT B OUTPUT
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE

트랜지스터를 이용한 AND Gate

 

마지막 주요한 부울 연산인 OR은 하나의 입력만 참이어도 출력이 참이 되는 연산이다.

INPUT A INPUT B OUTPUT
TRUE TRUE TRUE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE

트랜지스터를 이용한 OR Gate

계산에서 또다른 유용한 부울 연산이 있는데 Exclusive OR, 줄여서 XOR이라고 한다. XOR은 보통 OR연산과 같지만, 모든 입력이 참일 때, XOR의 출력은 거짓이다.

INPUT A INPUT B OUTPUT
TRUE TRUE FALSE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE

게이트 심볼을 통한 XOR Gate 회로 표현 1
게이트 심볼은 통한 XOR Gate 회로 표현 2

컴퓨터 기술자가 프로세서를 설계할 때 대부분 트랜지스터의 수준으로 일하지는 않는다. 대신 그것보다 더 큰 논리회로들로 만들어진 구성요소들로 작업한다.

 

 전문적인 컴퓨터 프로그래머들도 프로그래밍한 논리가 물리적 세계에서 구현되는 방식에 대해서 생각하는 경우는 드물다.

728x90
반응형

'컴퓨터공학 > 기초' 카테고리의 다른 글

컴퓨터는 어떻게 계산할까?-ALU편  (0) 2022.07.28
이진수로 숫자와 문자 나타내기  (0) 2022.07.28
전자 컴퓨팅  (0) 2022.07.26
초기컴퓨팅  (0) 2022.07.24
계획  (0) 2022.02.08

댓글