CODE. 부울 대수와 논리 게이트

rahula·2021년 5월 26일
0
post-thumbnail

'CODE : 하드웨어와 소프트웨어에 숨어 있는 언어' 10장 ~ 12장을 읽으면서

🧮 부울 대수

부울 대수의 가장 큰 의의는 연산자들이 숫자를 처리한다는 개념에서 연산자를 분리시켜서 이를 더 추상화시켜 사물의 종류에 사용했다는 것이라고 한다.

교집합과 합집합

AND(교집합), OR(합집합), NOT(전체집합에서 해당 집합을 뺀 것). 그리고 부울 대수의 1과 0. true와 false와 똑같다.

부울 대수를 통한 논리검사

AND는 두 피연산자(왼쪽과 오른쪽)가 모두 1(참)인 경우에만 1인 결과를 얻을 수 있다. OR은 두 피연산자 중에서 하나만 1(참)이면 1인 결과를 얻을 수 있다.

스위치에 적용

부울 대수를 전자 회로와 결합시켜서 이진수 기반으로 동작하는 컴퓨터를 설계하고 구축하도록 만들 수 있다. 그리고 스위치의 위치로 부울 대수의 교집합과 합집합을 표현할 수 있다.

AND는 직렬 스위치로, OR은 병렬 스위치로. 직렬로 연결된 두개의 스위치를 가진 회로의 전구에 불이 들어왔다면, 그 전구는 '두 스위치가 모두 닫혀 있나요?'라는 질문에 대한 답이 되는 것이다.

🎯 논리 게이트

논리게이트는 사람이 드나드는 일반적인 문과 매우 유사하다. 논리 게이트는 논리 회로에서 전류의 흐름을 막거나 흐르게 해주는 아주 간단한 작업을 수행한다.

회로

회로는 스위치들의 조합. 즉, 이진법의 조합이다. 논리식과 전기 회로의 유사성 발견으로 인해, 스위치를 이용해 회로를 구성하는데 부울 대수의 특성을 이용한다. 그리고 논리식을 더 간단하게 바꿀 수 있다면, 이를 구현하는 전기 회로도 더 간단하게 만들 수 있다. 논리식에서 반복되는 변수가 하나 줄었다는 것은 회로에서도 스위치 하나를 줄일 수 있다는 것을 의미한다.

입력과 출력

회로에 있어서 스위치는 일종의 입력장치이다. 입력이란 회로의 동작을 제어하기 위해 사용되는 정보를 의미한다. 여기서 전구는 출력 장치이다. 스위치 입력을 통햏 요구조건을 만족시키는 값이 입력되는 경우에 전구에 불이 들어오게 되는 것.

논리 게이트와 릴레이

스위치와 마찬가지로 릴레이도 직렬 혹은 병렬로 연결되어 간단한 논리 동작을 수행할 수 있다. 이런 릴레이의 조합을 논리 게이트라고 부른다. 릴레이의 장점은, 하나의 릴레이가 다른 릴레이를 제어할 수 있기 때문에 일일이 손가락으로 누를 필요가 없다는 것. 이로 인해 좀 더 복잡한 논리 처리를 수행할 수 있게 됐다. 릴레이들을 연결하는 것은 논리 게이트를 만드는 데 가장 중요한 개념.

여러가지 논리 게이트

AND 게이트와 OR 게이트

1은 스위치가 켜졌음, 즉 전류가 흐른다는 것을 의미하고 0은 스위치가 꺼졌음, 즉 전류가 흐르지 않는다는 것을 의미한다.

두 개의 릴레이가 직렬로 연결되었을 때, (전압원이 한 개) 두 스위치가 모두 닫혀 있어야 즉 두 릴레이가 모두 켜져있어야 전구에 불이 들어온다. 일반적으로 AND게이트는 2개의 입력과 1개의 출력을 가진다.

두 개의 릴레이가 병렬로 연결되었을 때, 두 스위치 중 하나만 닫혀 있으면 전구에 불이 들어오는 구조이다. OR게이트도 일반적으로 2개의 입력과 1개의 출력을 가진다.

NOT (인버터)

논리 게이트는 아니지만, 입력과 반대되는 전압 수준을 출력해야 할 때가 있을 때 자주 쓰인다. 논리식에서 NOT을 구현하기 위해 사용된다.

그리고 논리게이트에서 주목할 점은, 한 게이트 혹은 인버터의 출력이 다른 게이트 혹은 인버터의 입력으로 사용될 수 있다는 것이다. 이 점을 이용해서 여러 게이트를 조합할 수 있고, 어떤 게이트의 결과를 다른 게이트에 전달할 수 있다.

NOR 게이트

두 개의 릴레이가 직렬로 연결되었지만, 릴레이가 동작하고 있지 않을 때 전압이 출력된다. 두 릴레이가 동작하지 않아야 전구에 불이 들어오게 되는 것. OR의 정반대 결과이므로 NOR게이트라고 불린다.

NAND 게이트

두 개의 릴레이가 병렬로 연결되었지만, 릴레이가 동작하고 있지 않을 때 전압이 출력된다. 두 릴레이 중 하나만 동작하지 않으면 전구에 불이 들어오게 되는 것. AND의 정반대 결과이므로 NAND게이트라고 불린다.

XOR 게이트

위에서 나온 게이트들을 조합해서 여러가지 다른 게이트들을 만들 수 있다. XOR은 상호 배제적인 OR게이트라고 불리기도 한다. 두 입력값 중 하나만 1일 때엔 1을 출력하지만, 두 입력값이 모두 1일 때엔 0을 출력한다.

드모르간 법칙의 전기적 구현

두 개의 반전된 입력이 있는 AND게이트는 NOR게이트와 동일하다. 두 개의 반전된 입력이 있는 OR게이트는 NAND게이트와 동일하다.

위에서 두 논리 변수는 각각 반전된 후 논리 OR 연산자에 의해 묶여있다. 이는 두 연산자를 논리 AND 연산자로 묶은 후 이 결과를 반전시키는 것, 즉 NAND과 동일하다.
아래에서 두 논리 변수는 각각 반전된 후 논리 AND 연산자에 의해 묶여있다. 이는 두 연산자를 논리 OR 연산자로 묶은 후 이 결과를 반전시키는 것, 즉 NOR과 동일하다.

드 모르간의 법칙은 논리식을 간략하게 만들어주기 떄문에 회로를 간단하게 만들 때 아주 중요한 법칙이다.

💻 이제 덧셈을 할 수 있다!

실제로 위에서 나온 논리게이트들을 응용해서 (물론 재료들을 구해야 겠지만) 덧셈 기계를 만들 수 있다.

profile
백엔드 지망 대학생

0개의 댓글