조합논리회로와 순차논리회로
논리회로
CPU는 이진코드로 구성된 명령어만을 인식할 수 있습니다. 이진코드 명령어를 연산하기 위해서 여러 논리회로를 사용하는데, 예를 들어 덧셈 연산에는 가산기와 반가산기, 기계어와 명렁어를 해석하는 디코더와 인코더, 상태값을 저장하는 레지스터 등이 바로 대표적인 논리회로라고 할 수 있습니다. 논리회로는 여러 논리게이트(AND, OR, NOT, XOR, NAND, NOR)의 조합으로 이루어집니다. 논리회로는 기억소자 존재 유무에 따라 조합논리회로와 순차논리회로로 구분할 수 있습니다.
조합논리회로
조합논리회로는 단순한 논리게이트의 조합입니다. 논리게이트 규칙에 따라 결과값이 출력되므로 결과값을 쉽게 예측할 수 있습니다.
조합논리회로 종류
1) 반가산기(Half Adder): 더할 자리수 2개를 입력 받아 덧셈하여 덧셈 겨로가 값(S), 올림 값(C)을 출력하는 구조의 논리회로입니다. 입력 2개, 출력 2개로 이루어져 있으며, AND와 XOR 논리게이트가 사용됩니다. 반가산기의 연산과정은 아래와 같습니다.
<그림1> 반가산기의 연산과정
반가산기를 논리회로로 표현하면 다음과 같습니다.
<표1> 반가산기 논리회로
2) 전가산기(Full Adder): 반가산기 2개를 합친 구조의 논리회로로, 더할 자리수 2개와 올림값(Cin)을 입력받아 덧셈 결과 값(S), 올림 값(Cout)을 출력하는 구조의 논리회입니다. 입력이 총 3개 출력이 2개이며 전가산기의 연산과정은 아래와 같습니다.
<그림2> 전가산기의 연산과정
전가산기를 논리회로로 표현하면 다음과 같습니다.
<표2> 전가산기 논리회로
3) 인코더(Encoder): 2의 n승 개 만큼을 입력하면 n개를 출력하는 논리회로로, 인코더의 논리회로는 다음과 같습니다.
<표3> 인코더 논리회로
4) 디코더(Decoder): n개를 입력하면 2의 n승 개 만큼을 출력하는 논리회로로, 디코더의 논리회로는 다음과 같습니다.
<표4> 디코더 논리회로
5) 멀티플렉서(Multiflexer, MUX): 2의 n 승 개를 입력하면 1개를 출력하는 논리회로입니다.
6) 디멀티플렉서(Demultiflexer, DEMUX): 1개를 입력하면 2의 n 승 개를 출력하는 논리회로 입니다.
순차논리회로
조합논리회로가 논리게이트의 단순 조합이라면, 순차논리회로에는 기억소자가 추가됩니다. 1비트 크기의 기억소자에는 상태값을 저장하는 공간이라고 할 수 있습니다. 조합논리회로와는 달리 기억소자 상태값에 따라 결과 값이 달라지는 논리회로 입니다.
순차논리회로 종류
플립플롭은 순차논리회로의 대표적인 논리회로입니다. 플립플롭은 1비트의 기억소자를 가집니다. 1비트 기억소자에는 0과 1 상태값을 저장하며, 플립플롭이 모여 CPU 레지스터를 구성합니다. 플립플롭의 종류는 아래와 같이 3가지로 구분할 수 있습니다.
1) RS플립플롭: R(R값이 1이면 결과 값을 0으로 Reset), S(S값이 1이면 결과 값을 1로 Set) 두 개의 입력 값과 1비트의 기억소자 상태값의 조합으로 결과를 출력합니다.
<표5> RS플립플롭 연산결과 테이블
2) JK플립플롭: RS플립플롭의 단점은 R값과 S값이 모두 1일 때 부정상태에 빠진다는 점입니다. R값이 1이고 S값도 1이면 결과값을 0과 1로 모두 출력하라는 의미인데, 출력 1개에 두가지 상태를 지니도록 값을 출력할 수는 없어 부정상태에 빠지는 것입니다. 이런 단점을 해결한 것인 JK플립플롭입니다. J값이 1이고, K값이 1이면 결과 값을 부정상태 대신 기억소자의 값을 반전시켜줍니다.
<표6> JK플립플롭 연산결과 테이블
3) T플립플롭: JK플립플롭에서 더 진보된 플립플롭입니다. T값이 1이면 결과값을 1로 Set을 의미합니다.
<표7> T플립플롭 연산결과 테이블
정리
논리회로는 CPU가 연산할 수 있도록 해주는 물리적인 회로입니다. 논리회로는 여러 논리게이트를 조합하여 만들어지는데, 그 종류에는 조합논리회로와 순차논리회로가 있습니다. 조합논리회로는 단순히 논리게이트들을 조합한 것으로 반가산기, 전가산기, 인코더, 디코더, 멀티플렉서, 디멀티플렉서가 대표적입니다. 순차논리회로는 논리게이트의 조합에 1비트 기억소자를 가지고 있어 기억소자에 저장하는 상태 값에 따라 결과가 달라집니다. 대표적으로 RS플립플롭, JK플립플롭, T플립플롭이 있습니다.
Comments
Post a Comment