티스토리 뷰



게이트(gate)는 단순히 "통로"의 의미도 있지만 워터게이트를 비롯해서 사회를 혼란의 폭풍속으로 밀어넣는 부정적인 사건에 붙는 단어이기도 합니다. 그렇지만, 기술적으로는 신호를 연결하거나 끊는 회로를 의미합니다. 논리 게이트(Logic gate)는 하나 이상의 입력을 받아 하나의 출력을 내보내는 논리 연산을 구현한 실제 또는 가상의 장치를 의미합니다. 최신의 CPU나 메모리의 근원에는 이러한 논리 게이트가 존재합니다. 논리 게이트는 전자공학적인 접근이지만 소프트웨어에서도 이러한 논리 연산은 그대로 적용되므로 정확한 이해와 숙지의 필요가 있습니다.

논리게이트의 표현 방식은 NOT, AND, OR처럼 논리 키워드를 사용하는 것과 함께 논리식, 진리표나 기호 표현 방식이 있습니다. 기호 표현 방식에는 MIL/ANSI 기호, IEC 기호, DIN 기호등이 있으나 MIL(Military)/ANSI 기호가 널리 이용되고 있습니다. 가장 기본적인 논리 게이트는 아래와 같습니다.

논리 키워드 MIL/ANSI 기호  진리표  논리식  설명
NOT Inverter  
Input Output 
 A
1 0
0 1
   -입력의 반대 상태 출력  -인버터
Buffer  
Input Output 
 A
1 1
0 0
 -입력을 그대로 출력  -버퍼
 AND  
Input Output 
 A  B
0  0 0
0 1 0
1 0 0
1 1 1

 -입력이 모두 1일때   1 출력   -논리곱, 교집합
 OR  
Input Output 
 A  B
0 0 0
0 1 1
1 0 1
1 1 1
  -입력이 하나라도 1이면
 1 출력
 -논리합, 합집합
 XOR  
Input Output 
 A  B
0 0 0
0 1 1
1 0 1
1 1 0
  -입력이 서로 다르면  1 출력  -배타적 논리합  -Exclusive OR
 NAND  
Input Output 
 A  B
0 0 1
0 1 1
1 0 1
1 1 0
  -AND 게이트의 반대
 -입력이 모두 1이 
  아니면 항상 1 출력
 -부정 논리곱
 NOR  
Input Output 
 A  B
0 0 1
0 1 0
1 0 0
1 1 0
   -OR 게이트의 반대
 -입력이 모두 0일때만
 1 출력
 -부정 논리합
 XNOR  
Input Output 
 A  B
0 0
0 1 0
1 0 0
1 1 1
 -XOR 게이트의 반대  -입력이 서로 같으면  1 출력  -배타적 부정 논리합  -Exclusive NOR


ON/OFF 또는 1/0으로 표현하는 디지털 값을 프로그래밍 언어에서는 참(True)/거짓(False) 타입으로 표현해서 0이면 거짓, 0이 아니면 참으로 인식하기도 합니다. 그래서 위의 표에서 진리표(Truth table) 상의 1과 0은 소프트웨어 적으로 참과 거짓으로 바꾸어 표현해도 마찬가지 결과 입니다. 정보처리기능사 필기 문제에서 이러한 논리 게이트를 해석하는 문제들이 있는데 아래의 기출 문제들을 풀어 보시기 바랍니다. 정답보기를 클릭하면 답을 확인할 수 있습니다.

1. 그림에서 X값은 "0101", Y값은 "1101" 이 입력될 때, 그 결과값 F의 값은? (정답보기☜)

   가. 0010 나. 0110

   다. 1100 라. 0111

※ AND, OR, NOT 게이트의 동작을 이해하고 X, Y에 한 비트씩 차례대로 대입해 보세요.

2. 그림의 전기회로를 컴퓨터의 논리회로로 치환하면?  (정답보기☜)

    가. AND 나. OR

    다. NOT 라. NAND

※ 위의 그림 상태로는 우측의 전구에 불이 들어오지 않습니다. 좌측의 건전지를 통해서 전구에 불이 들어오려면 SW1과 SW2를 어떻게 조작해야 하는지 생각하면 어떤 논리게이트에 부합하는지 생각할 수 있습니다.

3. 다음 게이트에서 입력 A, B에 대한 출력 Y의 논리식은? 

 이런 문제 유형은 게이트의 유형을 확인하고 해당하는 논리식을 작성할 수 있으면 됩니다. 상단의 표를 참조하고 기호로 표현된 논리 게이트를 논리식으로, 반대로 논리식을 보고 게이트를 그릴 수 있으면 됩니다. 

"다음의 진리표에 해당하는 게이트를 무엇인가?"처럼 진리표를 가지고 논리게이트를 유추할 수 있어야 합니다.

"배타적 논리합(XOR)을 나타내는 기호는 무엇인가?"처럼 게이트에 대한 설명으로 논리게이트를 찾을 수도 있어야 합니다.


4. 그림과 같은 회로도에서 A=1, B=1, C=0 일 때 X로 출력되는 값은? (정답보기☜)

   가. 1 나. 2

   다. 0 라. 3

 1번 문제와 유사한 것으로 AND 및 OR게이트의 동작을 이해하시면 됩니다.


5. 다음 그림의 연산결과는? (정답보기☜)

가. 1001 나. 1101

다. 1010 라. 1110

 1번 문제와 유사한 것으로 ALU(arithmetic-logic unit, 산술논리 연산장치) 옆에 AND게이트가 표시되어 있음을 주목할 필요가 있습니다.


6. 다음 회로(Circuit)에서 결과가 “1” (불이 켜진 상태)이 되기 위해서는 A와 B는 각각 어떠한 값을 갖는가? (정답보기☜)

가. A=1, B=1 나. A=0, B=1

다. A=0, B=0 라. A=1, B=0

 2번 문제와 유사하지만 스위치가 나란히 배치되고 있음에 주의할 필요가 있습니다.


7. 그림과 같은 논리회로에서 A의 값이 1010, B의 값이 1110일 때 출력 Y의 값은? (정답보기☜)

가. 1010 나. 1111

다. 0100 라. 1001

 A 입력에 NOT이 먼저 수행됨에 주의합니다.


8. 아래 게이트 기호를 논리식으로 바르게 표현한 것은? (정답보기☜)

    

    가.      나. 

    다.     라. 

 3번 문제에서 언급한 것과 같이 진리표-기호 게이트-논리식-설명에 대한 명확한 숙지가 필요합니다. 복합적인 게이트를 논리식으로 전환하는 과정에서 먼저 수행되는 것을 괄호로 묶어주는 것도 감안해야 합니다. 수학이나 프로그래밍 언어에서는 연산자가 나란히 있으면 NOT>AND>OR 순서로 논리 연산을 수행하기 때문입니다.


9. 그림과 같은 논리회로의 출력 C는 얼마인가? (정답보기☜)

   (단, A=1, B=1이다)

    가. 0 나. 1

    다. 10 라. 11

 NAND, OR, XOR 게이트가 사용된 회로로 입력이 NAND와 OR게이트에 동일하게 연결되고 그 결과를 XOR 연산하는 과정을 이해하면 됩니다.


10. 다음 논리식에서 ㉠에 알맞은 것은? (정답보기☜)

    

    가. A'+B 나. A'ㆍB

    다. A+B' 라. AㆍB'

 진리표로 논리식이나 기호  게이트를 찾는 문제로 기본 게이트의 진리표만 문제로 나오는 것이 아니라 응용 회로에 대한 진리표로도 응용할 수 있어야 합니다. 위의 경우는 1인 경우가 한가지라서 단순하지만 잘 모르겠다면 논리식을 거꾸로 진리표에 대입해 보아서 모두 만족하는 것을 찾으면 됩니다. 


댓글
댓글쓰기 폼