부울 계산과 논리게이트

업데이트:
3 분 소요

관련 동영상

서론

2진수의 개념

지난 강의에서 우리는 컴퓨터가 어떻게 전자 기계 장치로 진화해 왔는지를 살펴봤다.
기어의 톱니바퀴로 나타난 10진수로 표현했던 기계에서 트랜지스터가 전류의 흐름을 켜고 
끌 수있는 전자식 컴퓨터가 되기까지 말이다.
그리고 다행히도, 2가지의 전기적 상태만으로 우리는 중요한 정보를 표현할 수 있다.
  1. 우리는 이표현을 이진(Binary)라고 부른다.
  2. 문자상으로는 두 가지 상태를 일컫는데, 자전거가 두개의 바퀴를 갖거나 두발짐승이 다리를 두 개 가진것과 같다.
    • 그러나 이 2가지 상태로 정확히 참과 거짓으로 나타내는데 필요하다.
    • 컴퓨터 안에서 On상태는 전기가 흐르고, true를 나타내는 상태이다.
    • Off는 전기가 흐르지않고,false를 나타내는 상태이다.

            - 우리는 true와 false를 이진수인 1과 0을 사용해서 나타낼 수 있다.
      

2진수의 등장과 부울 대수학

  1. 시간이 흘러 전류를 흐르게 하거나 끊는것 이상으로 트랜지스터를 사용할 수 있게 되어 다른 수준의 전류를 허용할 수 있게 됨

     - 어떤 초기의 전자 컴퓨터는 3개의 상태를 갖고 있는 3진법을 이용함
     - 심지어 5가지 상태를 가진 5진법을 사용도 함
    
  2. 문제는, 중간 상태가 더 존재할수록 그것들을 나누기다 더 어려워짐

     - 스마트폰 배터리가 다 떨어져갈 때 누군가 가까이에서 전자레인지를 사용해 
       전기적인 잡음이 생긴다면 신호가 섞임
    
     - 이것의 해결방안으로 가능한 한 두개의 신호를 멀리 배치하는 것
    
     - 단지 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 연산이 참인 경우는 하나의 입력이 참이고, 하나는 거짓인 경우다.
      - 마치저녁을 먹으러갔는데 샐러드나 수프 하나를 골라야 하는 상황이다.
    

다른 추상화 단계로 이동

  • 컴퓨터 기술자가 프로세서를 설계할 때 대부분 트랜지스터 수준으로 일하지 않는다.

      - 대신 그것보다 매우 큰 블록들로 논리회로와 같은 논리회로들로 
        만들어진 더 큰 구성요소들은 작업한다.
    
  • 그리고 당신이 전문적으로 프로그래머라고 해도 어떻게 당신이 프로그래밍
    논리가 물리적 세계에서 구현되는지에 대해서 생각하는 경우가 드물다.

  • 이 아주작은 부품들로 말이다.

    이렇게 원시적인 전기 신호에 대한 생각에서부터 참과 거짓 
    같은 데이터의 첫 번째 표현과 그리고 연산을 조금 배워봤다.
    그리고 우리는 이 강의에서 배우 논리회로만으로 복잡한 논리문을 
    평가하는 시스템을 만들 수 있다.
    

    출처 https://blog.naver.com/yellowpeach0/222545901625

댓글남기기