부울대수

1. 부울대수의 개요

  • 부울대수(Boolean algebra)는 논리적 관계의 문제를 다룰 때 대수 형식으로 표시하며, 여러가지 논리회로를 설계하거나 같은 기능을 갖는 논리 회로를 간략화하는 데 사용된다.
  • 인간의 지식이나 사고를 참, 거짓으로 공식화하고 이를 수학적으로 해석하기 위한 것으로 논리대수라고도 한다.
  • 주로 컴퓨터의 회로 설계 등에 이용되고 있으며 “0”과 “1”의 두 개의 수치만을 사용하여, 연산의 결과는 언제나 0 또는 1로 표한된다.


2. 논리회로

  • 논리회로는 2가지 상태를 다루는 방법으로 컴퓨터에서 사용되는 방법이다. NOT, AND, OR 3가지의 기본논리회로의 조합으로 구성된다.

1) NOT 회로

  • 인버터(inverter)라고도 한다. 입력이 1개로 구성된 것으로 입력신호와 반대되는 출력을 내놓는다.
  • 입력신호가 1이면 출력은 0, 입력신호가 0이면 출력은 1

2) AND 게이트

  • 두 입력이 모두 1일 때 출력이 1이 되고 그 외에는 모두 0이 출력된다.

3) OR 게이트

  • 입력신호 중 어느 하나 또는 두 개가 모두 1일 때 1이 출력된다.

4) 부정논리곱

  • AND와 NOT 회로를 결합한 것으로 AND의 결과를 반전한 결과를 얻는다.
  • 두 입력이 모두 1일 때에만 0을 출력하고 나머지는 모두 1 출력

5) 부정논리합

  • OR와 NOT 회로를 결합한 것으로 OR의 출력이 반전된 결과를 얻는다.
  • 두 입력이 모두 0이면 1을 출력하고 나머지는 모두 0 출력

6) 베타논리합(XOR : exclusive-OR)

  • 두 개의 입력조건이 서로 다르면 1이고, 조건이 같으면 0이 된다.

3. 조합 논리 회로

  • 입력 논리치가 정해지면 출력 논리치가 결정되는 논리회로, AND, OR, XOR 등의 논리가 해당된다.

1) 반 가산기(half adder)

  • 1비트의 2진수 2개를 합하여 그 결과를 한 비트의 합과 한 비트의 올림수로 발생시키는 논리회로

2) 전 가산기(full adder)

  • 반 가산기는 자리 올림수를 더해줄 수 없기 때문에 이것을 보완하여 만든 회로
  • 두 개의 입력과 전 단계에서 발생한 자리 올림수를 더할 수 있도록 구성된 회로
  • 여러 자리의 2진수 덧셈을 위해서는 첫 자리의 덧셈은 반 가산기를 이용하고, 다음 단계부터는 자리 올림수를 더해줘야 하기 때문에 전 가산기를 사용한다.

3) 인코더(encoder)

  • 1게의 입력을 다수의 신호로 변환하여 출력을 얻는 회로로 부호기라고도 한다.
  • 0, 1, 2, … 와 같은 하나의 십진수를 4개의 비트를 이용한 2진수 코드로 변환할 때 사용할 수 있다.

4) 디코더(decoder)

  • 인코더와 반대로 다수의 입력신호로서 1개의 출력신호를 얻는 회로이다.
  • 2진수 코드의 정보를 다른 부호로 바꾸어야 할 때 사용하는 회로로 해독기라고도 한다.

5) 멀티플렉서(multiplexer)

  • n개의 선택입력에 따라 2^n 개의 입력 중 하나를 선택하여 출력하는 회로로 다중기라고도 한다.
  • 데이터통신 장치에 많이 사용된다.


4. 순서 논리 회로

  • 조합 논리 회로가 입력신호의 조합에 따라 출력값이 결정되었다면 순서 논리 회로는 입력신호의 조합뿐만 아니라 논리회로의 내부 상태에 따라 다르게 출력이 나타난다.
  • 입력 신호에 의하여 상태를 바꾸도록 지시할 때까지 계속적으로 컴퓨터 내부에서 0, 1의 값을 가지는 bit을 기억하고 유지하기 위하여 사용된다.
  • 이런 소자를 플립플롭(Flip-Flop)이라 하며, 정보를 기억하는 레지스터 및 카운터 등의 구성소자에서 사용된다.

@레지스터(register)

  • CPU의 연산장치와 기억장치 중에서 기억장치에서 읽어내는 정보와 연산결과 등을 일시 기억하는 데 사용된다.
  • 1개의 플립플롭은 1비트의 정보가 기억되기 때문에 n개의 플립플롭을 사용하면 n비트의 정보를 기억하는 레지스터가 된다.