부울대수와 논리게이트

들어가기 전에
컴퓨터는 인간의 사고를 반영한 연산기계입니다. 컴퓨터에는 많은 기계장치들이 있습니다. 그 중에서도 CPU라는 중요한 장치가 있는데, 인간에 빗대면 뇌와 같은 역할을 합니다. CPU의 주된 역할은 인간 대신 계산을 하는 것입니다. 그렇다면 CPU는 어떻게 계산을 할까요? CPU는 기계이기 때문에 0과 1 이진수로만 계산을 합니다. 인간의 언어로 계산명령을 입력하면 그 명령을 해석하여 0과 1로 이루어진 이진코드로 변환합니다. 이때 연산에서 중요한 개념이 부울대수입니다. CPU는 기본적으로 부울대수를 이용하여 계산을 하기 때문입니다.

부울대수
조지 부울이 수학의 집합 개념을 도입해 0과 1로 이루어진 이진코드를 계산할 수 있게 만든 수학적인 방법입니다. 부울대수의 기본 함수는 아래와 같이 3가지로 분류할 수 있습니다.
1) 논리곱: 집합의 교집합(AND, 그리고, 곱하기) 연산에 해당합니다.
2) 논리합: 집합의 합집합(OR, 또는, 더하기) 연산에 해당합니다.
3) 부정: 집합의 여집합(NOT) 연산에 해당합니다. 
<표1> 부울대수의 기본함수와 의미

부울대수의 기본공식
부울대수의 기본공식을 정리하면 아래 표와 같습니다.
<표2> 부울대수 공식

부울대수 공식 예제
① A + (A * B) = A * (1 + B) = A * 1 = A
② A + (A * B') = A(1 + B') = A * 1 = A
③ A + (A' * B) = (A + A') * (A + B) = 1 * (A + B) = A + B
④ A * (A + B) = (A * A) + (A * B) = A + (A * B) = A * (1 + B) = A * 1 = A
⑤ A * (A' + B) = (A * A') + (A * B) = 0 + (A * B) = A * B
⑥ A + AB+ AC = A(1 + B + C) = A * 1 = A
⑦ AB + AB' + A'B = A(B + B') + A'B = (A * 1) + A'B = A + A'B = (A + A') * (A + B) = 1 * (A + B) = A + B

논리게이트의 종류
논리게이트의 종류는 아래와 같습니다.
<표3> 논리게이트의 종류

MASK연산
특정 데이터를 지울 때 사용하는 연산으로, MASK 연산을 할 때 AND 연산을 사용합니다.
예) A라는 문자의 이진코드가 11000001이고, B문자의 이진코드가 10101100이라고 할 때, AB문자열에서 A문자를 삭제하고 싶으면 A문자에 0을 AND 연산하고, B문자에는 1을 AND 연산하면 A문자는 사라지고 B문자만 남게 됩니다. 그 과정을 표현하면 아래와 같습니다.
<그림1> 마스크 연산과정

Selective Set연산
두개의 데이터를 섞거나 일부를 삽입하는 데 사용됩니다. 논리게이트에서 or 연산에 해당합니다.

단항연산
입력값이 1개인 연산자로, 논리게이트에서 not 연산만 단항연산에 해당합니다. 나머지 논리게이트는 이항연산에 해당합니다.

정리
CPU는 인간의 뇌를 물리적으로 구현해놓은 연산장치입니다. 인간의 뇌처럼 연산하기 위해, 수학의 집합 개념과 대응되는 개념인 부울대수를 이용하여 물리적인 논리게이트를 만들었습니다. 논리게이트를 통해 기계가 해석할 수 있는 단위인 0과 1 이진코드를 계산할 수 있습니다. 대표적인 논리게이트로는 AND, OR, NOT, NAND, NOR, BUFFER, XOR, NXOR가 있습니다. 

다음시간에는 논리게이트를 조합한 조힙 논리회로에 대해 포스팅하겠습니다.
감사합니다.





Comments

Popular posts from this blog

$$ Regular Expression이 안먹는 경우

exception in thread main java.lang.unsupportedclassversionerror unsupported major.minor version 52.0

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver