[無에서 시작하는 컴퓨터&과학]

[컴퓨터][4] 부울 대수의 논리 표현식을 스위치 회로로 구성하기(게이트)

core-basic 2024. 8. 12. 17:15
728x90

※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다.


이전 글을 통해서 부울 대수가 무엇인지, 그리고

부울 대수를 통해서

세상을 논리 표현식으로 구성할 수 있다는 사실과,

그 방법에 대해 간단히 알아보았다.

 

[컴퓨터][3] 스위치회로와 0과 1, 그리고 부울 대수(Boolean Algebra) - 2

이전 글을 통해서 스위치 회로는 전류를 흐르지 못하게 하거나, 다시 흐르게 하거나, 2가지 상태를 표현할 수 있고이를 숫자기호 0과 1, 또는 문자기호 off/on으로 표기할 수 있다는 것을 알게 되

core-basic.tistory.com

그러면 이어서 부울 대수의 논리 표현식을 

스위치 회로로 어떻게 구성하는지 알아보겠다.

< 부울 대수의 논리 표현식을 스위치 회로로 구성하기 >


< “덥고 비가 온다”는 논리적 진술을 스위치 회로로 구성하기 : 입력 >

이전 글을 통해 "덥고 비가 온다"와 같이 
참과 거짓으로 평가될 수 있는 논리적 진술에 대해서

논리적 표현식을 작성해 보면
덥다는 상태에 대해 미지수 H (참 또는 거짓만 입력 가능),
비가 오는 것에 대한 상태를 미지수 R (참 또는 거짓만 입력 가능),
지정한 후, 두 미지수를 AND(그리고) 연산자로 연결해 준다.

그러면 "덥고 비가 온다"라는 논리적 진술에 대해서
"H AND R"이라는 논리 표현식을 생성할 수 있다.

이에 대해서 스위치 회로를 구성해 보면
회로의 입력은 H, R이라 할 수 있다.
그리고 물리적으로는 스위치 부품이 될 수 있다.

왜냐하면 스위치라는 부품은 전류가 흐르지 않는 상태와,
전류가 흐르는 상태 2가지 상태를 왔다 갔다 할 수 있는데
이는 참과 거짓 상태를 왔다 갔다 하는 미지수 H, R에 대응시킬 수 있기 때문이다.


< “덥고 비가 온다”는 논리적 진술을 스위치 회로로 구성하기 : 출력 >

그리고 전류의 흐름에 따라 결과(출력)가 변화하는 것을 확인하는 시각적 부품인
전구를 이용해, "덥고 비가 온다"라는 논리적 진술의 결과를 시각적으로 확인한다.

따라서
"덥고 비가 온다" 전체적인 문장 결과가  참이면
전구에 불이 들어올 것이고,
 거짓이면,
전구에 불이 들어오지 않을 것이다.


< “덥고 비가 온다”는 논리적 진술을 스위치 회로로 구성하기 : AND >

이어서 AND(그리고) 연산자를 입력과 출력사이에서 구현해야 한다.

우선 AND 연산자의 기능을 살펴보면 두 개의 입력(H, R)과 하나의 출력에 대해서

아래와 같은 진리표를 얻을 수 있다.

입력(H) 입력(R) 출력
거짓 (0) 거짓 (0) 거짓 (0)
거짓 (0) 참 (1) 거짓 (0)
참 (1) 거짓 (0) 거짓 (0)
참 (1) 참 (1) 참 (1)

따라서 이를 전류의 흐름에 대입하여 전선을 연결하면
아래와 같은 회로로 표현할 수 있다.


< AND 게이트 >

위의 회로를 좀 더 시각적으로 보기 편한 구도로 변경하고,
전원을 공급해 줄 전지까지 추가하면 
아래와 같은 스위치 회로를 구성할 수 있다.

※ GIF 파일은 Paul falstad 사이트를 통해 제작하였습니다.

전류의 방향은 +극에서 -극이지만, 실제 전자의 방향은 반대 방향으로 해당 그림은 전자의 방향을 따른다.

그리고 해당 스위치 회로 자체가 2개의 입력에 대해 AND 연산 기능을 하는데
이러한 기능을 하는 회로를  AND '게이트'라고 부른다.

위의 회로는 
덥다는 조건에 참(1) : 스위치 닫힘 : 전류 흐름
비가 온다는 조건에 참(1) : 스위치 닫힘 : 전류 흐름
이에 따라
"덥고 비가 온다" 진술이 참(1) : 전구 불 켜짐
진리표를 통해서도 확인할 수 있다.

만약 H, R 둘 중 하나라도 거짓이 될 경우 "덥고 비가 온다"는 결과는
거짓이 되므로, 전류가 흐르지 않아
전구의 불이 꺼지는 것도 파악할 수 있다. 

그리고 H, R 모두 거짓인 경우에도 마찬가지이다.


< 부울 대수와 논리적 표현 그리고 스위치 회로 구현 >

이를 통해서

주어진 조건이나 상태와 같은 것들은 회로에서
입력이자, 스위치 부품으로 구성될 수 있다.

주어진 논리적 진술(문장)은 회로에서
출력이자, 전구와 같은 부품으로 구성될 수 있다.

그리고 스위치와 전구 그리고 전지를 어떻게 배치하고,
연결하는지에 따라 AND 연산자를 구현할 수 있다.

따라서 중요한 핵심은 부울 대수의 연산자이며,
나머지는 부품 그 자체라 볼 수 있다.

그리고 전체적인 회로 기능이 입력에 대해 AND 연산을 진행하고,
결과까지 출력하는 기능이라면 
AND 게이트라고 부를 수 있다.


< 부울 대수 연산자 회로 구현 >

앞서 말했듯 부울 대수의 논리 표현식을 회로로 구성하는 데 있어서

중요 핵심은 어떤 연산자를 어떻게 구성하는지가 중요하다.

그렇다면 부울 대수 연산자에는 AND연산뿐만 아니라,

OR, NOR, NAND, NOR, XOR, XNOR이 존재한다.

따라서 해당 연산자들을 모두 스위치 회로로 구현할 수 있다면

부울 대수로 표현할 수 있는 모든 것들을 물리적인 회로로 

구현이 가능하게 된다.

 

따라서 컴퓨터 역시 그러한 스위치 회로, 게이트 등을 통해서 구현이 될 수 있다.

 

 

이번 글은 요기서 마치며, 다음 글은 다른 예시들을 통해서

다른 연산자들은 어떻게 스위치 회로로 구성되는지 탐구해 보겠다.


※ 해당 게시글은 주제를 탐구하면서 주관적인 생각을 정리 한 글입니다

728x90