부울 계산과 논리게이트
서론
2진수의 개념
지난 강의에서 우리는 컴퓨터가 어떻게 전자 기계 장치로 진화해 왔는지를 살펴봤다.
기어의 톱니바퀴로 나타난 10진수로 표현했던 기계에서 트랜지스터가 전류의 흐름을 켜고
끌 수있는 전자식 컴퓨터가 되기까지 말이다.
그리고 다행히도, 2가지의 전기적 상태만으로 우리는 중요한 정보를 표현할 수 있다.
- 우리는 이표현을 이진(Binary)라고 부른다.
- 문자상으로는 두 가지 상태를 일컫는데, 자전거가 두개의 바퀴를 갖거나 두발짐승이 다리를 두 개 가진것과 같다.
- 그러나 이 2가지 상태로 정확히 참과 거짓으로 나타내는데 필요하다.
- 컴퓨터 안에서 On상태는 전기가 흐르고, true를 나타내는 상태이다.
-
Off는 전기가 흐르지않고,false를 나타내는 상태이다.
- 우리는 true와 false를 이진수인 1과 0을 사용해서 나타낼 수 있다.
2진수의 등장과 부울 대수학
-
시간이 흘러 전류를 흐르게 하거나 끊는것 이상으로 트랜지스터를 사용할 수 있게 되어 다른 수준의 전류를 허용할 수 있게 됨
- 어떤 초기의 전자 컴퓨터는 3개의 상태를 갖고 있는 3진법을 이용함 - 심지어 5가지 상태를 가진 5진법을 사용도 함
-
문제는, 중간 상태가 더 존재할수록 그것들을 나누기다 더 어려워짐
- 스마트폰 배터리가 다 떨어져갈 때 누군가 가까이에서 전자레인지를 사용해 전기적인 잡음이 생긴다면 신호가 섞임 - 이것의 해결방안으로 가능한 한 두개의 신호를 멀리 배치하는 것 - 단지 On, Off를 사용함으로써 이 문제를 최소한의 가장 명확한 신호로 해결할 수 있음 - 또한 이진수를 사용하는 다른 이유 중 하나는 수학 분야에서 이미 존재했던 참과 거짓을 독점적으로 다루는 분야가 있었다.
- 이것은 ‘부울 대수학’이라고 불리는데.. 여기에는 NOT, AND, OR이라는 핵심적인 연산이 있음.
NOT 연산
- 참이던 거짓이던 그것 중 하나의 값을 취하고 그것을 부정함
- 즉, 참 -> 거짓 , 거짓 -> 참
- 이것은 표로 나타낼수 있으며 트랜지스터에 있는 부울 논리에 적용할 수 있음
AND 연산
- 두개의 입력이 필요하지만, 여전히 한개의 출력을한다.
- 이경우 출력은 모두 입력이 참일 경우만 참이다.
OR 연산
- 하나의 입력만 참이어도 출려기 참이되는 연산이다.
트랜지스터의 원리
-
트랜지스터는 제어선과 두개의 전극을 가지고 있다.
- 제어선에 전기를 제공하면, 하나의 전극에 전류를 흐를 수 있게 하고,
트랜지스터를 통해 다른 전극에도 전류가 흐를수 있게 해줌 -
파이프의 수도 꼭지와 비슷한데, 수도를 열면 물이 흐르고, 수도를 닫으면 물은 멈춘다.
- 제어선을 입력으로 생각하고 하부에 있는 전극을 출력으로 생각할 수 있다. - 입력을 켜면 전류가 흐를 수 있고, 출력도 역시 켜진다. - 입력을 끄면 출력도 꺼지고 전류 또한 더 이상 지나갈 수 없게 된다. - 부울용어에서 입력이 참이면 출력도 참이고, 입력이 거짓이면 출력도 거짓이다.
NOT 게이트의 원리 ( 0=1; 1=0)
- 트랜지스터의 끝부분에 출력선을 가지는 대신 출력선을 조금 움직여 보겠다.
-
입력을 켜면, 트랜지스터는 전류를 통과시켜 접지 상태가 된다.
- 그리고 출력선은 전류를 받지 않고 꺼진다.
-
물에 비유하면, 집에 모든 물이 흘러 바닥으로 닿고, 거대한 호스에서 물이 모두 빠져나와
샤워 할 물이 남아있지 않은 것처럼 된다.-그래서 이 경우 입력은 켜지고, 출력은 꺼진 상태가 된다.
-
우리가 트랜지스터를 끄면, 전류는 접지 상태가 되는 바닥으로 흐르지 못하게 되고
대신 전류는 출력선을 통해 흐른다.- 그래서 입력은 꺼지고 출력은 켜지게 된다.
AND 게이트의 원리 (1 & 1 = True)
- AND 게이트를 만들기 위해서는 우리는 두개의 트랜지스터와 함께 연결해서
두개의 입력과 하나의 출력을 만들어야 한다. -
트랜지스터 A를 켜면, 전류는 흐르지 않을것이다.
- 왜냐하면, 트랜지스터 B에의해 흐름이 끊기기 때문이다. - 또한, 트랜지스터B가 켜지고 A가 꺼진다면 전류를 통과할 수 없다. - 오직, 두개가 같이 켜져있을때만 전류가 흐른다.
OR 게이트의 원리 ( 1 || 0 = True)
- 연속으로 두개의 트랜지스터를 놓는 대신(직렬) 그들은 하나씩 병렬로 놓고
두개의 트랜지스터 모두의 전류원을 연결한다. -
만약 두개의 트랜지스터가 꺼져있다면 전류는 출력으로 흐르지 않을 것이다.
- 기본적으로 트랜지스터 A가 켜져 있으면 출력이 커지며, 두개의 트랜지스터가 켜져 있어도 출력은 여전히 켜진다.
AND, OR, NOT 연산의 추상화
-
기술자들의 게이트를 기준으로 칭하는 기호가 있는데
NOT 삼각형과 점 ,AND는 D, OR은 우주선이라고 한다.
-
게이트를 추상화하는것 은 기초적인 요소들을 활용하여 더 큰 요소들을 구상하는데 도움이 된다.
기초 연산의 응용, XOR 연산
- 예를 들어, 계산에서 또 다른 유용한 부울 연산을 Exclusive OR 또는 XOR이라고 한다.
- XOR은 OR 연산과 거의 모든것이 같지만 하나의 차이점이 있다.
-
모든 입력이 참이면, XOR의 출력은 거짓이다.
- XOR 연산이 참인 경우는 하나의 입력이 참이고, 하나는 거짓인 경우다. - 마치저녁을 먹으러갔는데 샐러드나 수프 하나를 골라야 하는 상황이다.
다른 추상화 단계로 이동
-
컴퓨터 기술자가 프로세서를 설계할 때 대부분 트랜지스터 수준으로 일하지 않는다.
- 대신 그것보다 매우 큰 블록들로 논리회로와 같은 논리회로들로 만들어진 더 큰 구성요소들은 작업한다.
-
그리고 당신이 전문적으로 프로그래머라고 해도 어떻게 당신이 프로그래밍
논리가 물리적 세계에서 구현되는지에 대해서 생각하는 경우가 드물다. -
이 아주작은 부품들로 말이다.
이렇게 원시적인 전기 신호에 대한 생각에서부터 참과 거짓 같은 데이터의 첫 번째 표현과 그리고 연산을 조금 배워봤다. 그리고 우리는 이 강의에서 배우 논리회로만으로 복잡한 논리문을 평가하는 시스템을 만들 수 있다.
댓글남기기