3.5 트랜지스터를 묶어 만든 기본 논리 회로

앞 절에서 전자 회로의 동작을 우리의 계산과 연결하는 관점을 알아보았다. 이 관점을 바탕으로, 이제 트랜지스터를 연결하면 어떤 회로가 되는지 살펴보려고 한다. 칩 안의 복잡한 회로도 결국 이런 작은 회로들이 모여 이루어진다.

그중에서도 먼저, 간단한 논리 연산을 하는 회로(논리 회로)를 살펴보자.

19세기 중반에 만들어진 불 대수(Boolean algebra)라는 수학에서는 논리 연산을 다룬다. 우리가 흔히 알고 있는 덧셈 연산은 1과 2를 받으면 3을 답하는 연산이며, 비슷한 맥락에서 논리 연산은 참 또는 거짓을 입력받아 참 또는 거짓을 답하는 연산으로, 논리 연산에는 AND, OR, XOR 등의 여러 종류 연산이 존재한다. 지금 우리가 살펴볼 것은 이 연산을 하는 전자 회로다.

연산을 하는 전자 회로가 특별한 것이 아니라, 연산의 입출력을 회로의 입출력과 대응시키고 원하는 입력에 따라 원하는 출력이 나오도록 구성된 회로라는 것을 앞 절에서 알아보았다.

여러 논리 연산 중 대표적인 AND 연산을 하는 전자 회로를 살펴보자. 먼저, AND 연산에 대해서 이해를 해야 할 필요가 있는데, AND 연산은 두 가지 입력을 받아, 입력 A와 B가 동시에 참(True)인 경우에만 참(True)을, 그 외의 경우에는 거짓(False)을 결과로 내는 연산이다. 예로, 입력 A가 참, 입력 B가 거짓이면, A AND B 연산의 결과는 거짓이 된다. AND 논리 연산에 대한 입력값/결과값을 표로 정리해보면 아래 〈표 3-2〉와 같다.

A(입력)B(입력)결과
거짓거짓거짓
거짓참거짓
참거짓거짓
참참참
〈표 3-2〉 AND 논리 연산 진리표

이처럼 가능한 모든 입력 조합과 그 결과를 정리한 표를 진리표라고 한다. 〈표 3-2〉는 논리 연산 입력과 그에 따른 결과를 나타내며 이와 같은 연산에 대응되는, 즉 같은 결과를 낼 수 있는 전자 회로가 있다면, 그 회로가 바로 AND 연산을 하는 전자 회로다.

3.1절에서 약속한 대로 전자 회로에서는 전압이 기준보다 낮으면 0, 높으면 1로 표현한다. 여기에 더해 참(True)을 1에, 거짓(False)을 0에 대응시킨다면, 참, 거짓 또한 회로와 연관시켜 볼 수 있고, AND 연산과 동일한 결과가 나오는 회로를 고민해 볼 수 있게 된다.

사람이 참 AND 거짓을 계산해 거짓을 얻는 모습과, 칩이 1 AND 0을 받아 0을 내는 모습을 비교한 그림
〈그림 3-9〉 AND 논리 연산 — 뇌의 연산(a)과 회로의 연산(b) 비교

〈그림 3-9〉와 같은 입출력이 가능한 회로를, 트랜지스터의 연결로 만든다고 상상해보자. 과연 가능할까?

사실 우리는 3.2절에서, 특별한 언급은 하지 않았지만, 이미 AND 연산을 하는 전자 회로를 만났다. 〈그림 3-5〉 회로의 입출력을 정리한 〈표 3-1〉에서 4가지 경우를 보면, 위 〈표 3-2〉와 동일한 입출력 결과를 만들어 내고 있음을 확인할 수 있다. 이것은 해당 회로가 AND 논리 연산이 가능한 회로임을 의미한다. 우리는 〈그림 3-5〉에 있는 회로를 통해, 트랜지스터 2개의 연결을 통해 AND 논리 연산 전자 회로를 만들었다고 이야기할 수 있는 것이다.

트랜지스터 2개를 적절히 연결해 AND 연산을 하는 논리 연산 전자 회로가 생겼으니, 이 전자 회로를 통해 빠르고 정확한 AND 논리 연산 결과를 얻을 수 있게 되었다. 이제 더 이상, 사람의 머리를 통해 이 연산의 결과를 생각하지 않아도 된다. 표를 기억할 필요가 없다. 전자 회로를 사용하여, 원하는 대로 입력에 전압만 인가하면, 회로는 적절한 결과로 출력의 전압을 결정하고, 그것을 해석하면 우리는 AND 연산의 결과를 바로 알 수 있기 때문이다. 이로써, 전자 회로가 사람의 계산을 대신할 수 있게 되었다.

같은 방식으로 OR 논리 연산을 하는 회로도 살펴보자. AND 연산과는 다르게, OR 논리 연산은 입력이 둘 중 하나라도 참(True)이면 결과는 참(True)이 되는 연산이다. AND 연산 회로를 만들 때와 같은 방식으로 OR 연산의 입력과 결과를 〈표 3-3〉으로 정리해 보자. 그리고, 트랜지스터를 어떻게 연결하면 OR 연산을 하는 전자 회로가 될지 생각해 보자.

A(입력)B(입력)결과
거짓거짓거짓
거짓참참
참거짓참
참참참
〈표 3-3〉 OR 논리 연산 진리표
트랜지스터 T1·T2를 나란히 이어 만든 OR 회로와 그 진리표
〈그림 3-10〉 OR 논리 회로 (트랜지스터 구성)

고민하는 시간을 가졌을 독자를 믿고, 〈그림 3-10〉을 살펴보면, 이 회로는 트랜지스터 2개를 연결하여 구성된 OR 논리 회로이다.

이 회로는 T1과 T2 트랜지스터의 C가 모두 전원과 이어져 있어 전압이 높고, 두 트랜지스터의 E가 함께 out에 연결되어 있는 구조다. 입력 A가 T1의 B에 전압을 인가하면, 입력 B의 상태와 상관없이 T1이 닫혀 out이 전원과 이어지고, out의 전압이 높아진다. 반대로 입력 B가 T2의 B에 전압을 인가하면, 입력 A의 상태와 상관없이 T2가 닫혀 out이 전원과 이어지고, out의 전압이 높아진다. 마지막으로, 입력 A와 입력 B에 모두 전압을 인가하지 않을 경우에만 out이 전원과 이어지지 못해 전압이 낮게 남는다.

우리는 지금 OR 논리 연산이 되는 회로를 만들었으며, 위 회로에 나타나는 전압 상태를 참(True), 거짓(False)과 연결시켜 생각해 보면 이 회로를 통해 OR 논리 연산의 결과를 얻을 수 있게 된다. 예를 들면, 입력 A에 전압을 인가하고(1: 참), 입력 B에는 전압을 인가하지 않으면(0: 거짓) 출력 out의 전압은 높아질 것이고(1: 참), 우리는 이 결과를 해석해서, 참(True) OR 거짓(False)의 논리 연산의 결과는 참(True)이라고 말할 수 있게 된다. 회로의 모든 입출력은 〈표 3-3〉을 만족시킬 것이다.

AND 그리고 OR 연산과는 또 달리, XOR 논리 연산은 두 입력이 다른 경우에는 참(True), 두 입력이 같은 경우에는 거짓(False)을 출력하는 연산이다. AND, OR와 동일한 방식으로 입출력을 정리하면 〈표 3-4〉와 같다. 지금까지 AND와 OR 회로를 살펴보았으니, XOR 회로는 트랜지스터를 어떻게 연결하면 될지 한번 생각해 보는 것도 좋다. 다만 둘 다 참일 때 오히려 거짓이 되어야 하는 XOR은 AND나 OR보다 조금 더 복잡한 연결이 필요하다. 지금은 입력과 결과의 규칙이 AND, OR과 어떻게 다른지 이해하는 것으로 충분하다.

A(입력)B(입력)결과
거짓거짓거짓
거짓참참
참거짓참
참참거짓
〈표 3-4〉 XOR 논리 연산 진리표

우리는 이번 절에서 논리 연산, 그중 AND, OR 논리 연산이 가능한 회로를 살펴보았다.

중요한 것은, 앞에서 살펴본 논리 연산 회로가 컴퓨터의 뇌의 역할을 하는 칩의 회로를 구성하는 데 있어 기본 단위 회로라는 점이다. 즉, CPU의 기능을 하는 복잡한 회로를 구성하는 데 있어 이들 논리 연산 회로가 모이고 모이고 모여 전체 회로를 구성한다는 의미이다. 약간, 기본 단위의 레고 블록 같은 것이다. 그렇기에 이 기본 논리 연산이 가능한 트랜지스터의 회로 구성은 중요하며, 우리는 이를 기본 논리 회로(또는 기본 논리 게이트)라고 부른다.

이 회로들은 칩 안에서 아주 많이 반복해서 쓰이기 때문에, 매번 트랜지스터를 하나하나 그려서 나타내는 것은 번거롭다. 그래서 회로 자체는 그대로 두고, 같은 기능을 간단한 기호로 나타내기로 한다. 이렇게 한 단계 추상화(모듈화)해서, 트랜지스터 단위가 아닌 게이트 단위로 〈그림 3-11〉처럼 표현한다. 이제 아래 〈그림 3-11〉의 기호들을 보면, 각 기호 뒤에는 앞에서 살펴본 것처럼 트랜지스터들을 연결한 회로가 있다고 생각하면 된다.

AND 게이트와 OR 게이트 기호
〈그림 3-11〉 (a) AND 기본 논리 회로 (b) OR 기본 논리 회로

처음에 전구와 스위치가 연결된 회로로부터 시작하여, 전압이 낮은 것을 0, 높은 것을 1로 약속하고, 나아가서는 회로의 구성 중 트랜지스터를 연결한 특정 구조들을 기본 논리 회로라는 이름으로 추상화하였다. 그리고 이렇게 추상화한 기본 논리 회로는, 이들을 연결해 만든 더 복잡한 회로를 이해하는 바탕이 된다. 더 이상 각 지점의 전압이나 물리적인 트랜지스터의 동작에 집중하는 것에서 벗어나 논리적인 사고의 확장을 할 수 있게 될 것이다. 하지만, 그 내면에는 전자 회로가 있음을 인지해야 한다.

조금 놀랍지 않은가? 기본 논리 회로를 이해함으로써, 우리는 컴퓨터의 뇌인 칩이 어떻게 이루어져 있는지 들여다보는 첫걸음을 뗀 것이다.

자세한 내부적인 설명 없이는 이해의 어려움을 겪을 수 있는 것이 추상화가 가지는 단점이기도 하지만, 다른 한편으로 복잡한 것은 뒤로하고, 다음 단계로 쉽게 나아갈 수 있는 바탕이 되는 것이 추상화가 가지는 힘이다. 다음 장에서는, 이 기본 논리 회로들을 조합하여 어떻게 더 복잡한 기능을 가진 회로로 발전해 나가는지 살펴볼 것이다.