디지털 논리회로, 논리회로와 컴퓨터 명령어
디지털 논리회로
디지털 논리회로는 크게 2가지로 나뉜다.
조합논리회로, 순서놀리회로로 구분되는데 구별의 기준은 기억소자의 유무이다.
조합논리회로
현재의 입력에 의해서만 출력이 결정되는 논리회로이다.
종류로는 덧셈회로인 가산기, 뺄셈회로인 감산기 등이 존재한다.
반가산기
2진수의 덧셈을 수행하는 회로이며, 두 비트의 덧셈을 수행한다.
덧셈의 결과 중 합을 뜻하는 S와 올림수를 뜻하는 C(캐리)가 존재한다.
전가산기
2진수의 덧셈을 수행하는 회로이며, 세 비트의 덧셈을 수행한다.
반감산기
2진수의 뺄셈을 수행하는 회로이며, 두 비트의 뺄셈을 수행한다.
한 가지 눈여겨 볼 점은 반가산기의 회로와 매우 유사한데, 반가산기에 NOT 게이트를 하나 추가하면 같은 모양의 회로가 되는 것을 볼 수 있다.
전감산기
전감산기 또한 전가산기의 회로와 매우 유사한데, 전가산기의 회로에 NOT 게이트를 몇 개 추가한 모양인 것을 확인할 수 있다.
가,감산기
이러한 회로 유사도에 따라서 나온 것이 가,감산기이다.
덧셈과 뺄셈 연산을 가산기만으로 수행하는 형태로, 감산기는 가산기에 인버터(NOT 게이트)를 추가한 형태이므로 가산기만 사용하여 감산을 수행하면 회로를 최소화 할 수 있다.
MSI를 이용한 조합논리회로
디지털 시스템에서 효과적인 조합논리회로를 설계하기 위해서는 주어진 기능을 수행하는데 필요한 게이트의 수를 최소화해야 한다.
이를 위해 집적회로(IC)를 사용하며, 패키지화된 IC의 내부 게이트를 이용하면 경제적인 설계가 가능하다.
대표적인 예시로는 인코더, 디코더, 멀티플렉서, 디멀티플렉서 등이 존재한다.
인코더 / 디코더
인코더는 부호화되지 않은 입력을 받아서 부호화된 출력을 내보내는 부호화기이다.
2^n개의 입력와 n개의 출력을 가지고 있으며, 출력은 입력값에 대응하는 2진 코드를 생성한다. 문자, 숫자, 기호등을 2진 코드로 변환시켜주는 조합논리회로 등에 사용된다.
디코더는 인코더와 상대되는 개념으로, 부호화된 입력을 받아서 부호화되지 않은 출력을 내보내는 복호화기이다.
n비트의 2진 코드를 최대 2^n 개의 서로 다른 정보로 바꾸어 준다. 기억장치에서 특정 번지를 선택할 때나 컴퓨터 명령어를 해독하는 데 사용된다.
멀티플렉서 / 디멀티플렉서
멀티플렉서는 여러 개의 입력선 중에서 하나를 선택하여 단일의 출력을 내보내는 조합논리회로이다.
특정 입력선을 선택하기 위해서 선택변수를 사용하며 2^n개의 입력선 중에서 특정 입력선을 선택하기 위해서는 n개의 선택변수가 있어야 하며, 이러한 n개의 선택변수 조합에 의해 특정 입력선이 선택된다.
데이터 선택기(data selector)라고도 하며, 약어로 MUX로 표현한다. 컴퓨터 시스템에서 공통 버스 시스템을 구성하거나 여러 개의 레지스터 중 하나를 선택하는데 사용된다.
디멀티플렉서는 멀티플렉서와 반대되는 동작을 수행하는 조합논리회로이며, 데이터 분배기 라고도 불린다.
순서논리회로
조합논리회로에 저장요소(플립플롭)를 추가한 회로이며, 저장요소의 상태와 입력번수에 의해서 출력이 결정된다.
종류로는 곱셈회로인 승산기, 나눗셈회로인 제산기 등이 존재한다.
플립플롭
한 비트의 2진 정보를 저장할 수 있는 장치이며, 입력신호에 의해 상태를 바꾸도록 지시가 있을 때 까지 현재의 2진 상태를 유지하는 논리 소자이다.
클럭 신호에 의해 출력 상태를 바꾸며, RS 플립플롭, D 플립플롭, JK 플립플롭, T 플립플롭 등이 존재한다.
이러한 플립플롭으로 구성된 것이 레지스터이며 4개의 플립플롭이 존재하면 4비트 레지스터, 8개가 존재하면 8비트 레지스터 등으로 불린다.
레지스터
데이터를 일시 저장하거나 전송하는 장치이다.
여러 개의 플립플롭을 연걸하여 구성되며, n비트 레지스터는 n개의 플립플롭으로 구성되며 이는 곧 n비트의 2진 정보를 저장할 수 있다는 말이기도 하다.
데이터 적재 레지스터, 시프트 레지스터 등이 존재하며 이러한 레지스터들은 여러 비트를 일시적으로 저장하거나, 배열된 비트를 좌, 우 자리이동을 시키는데 사용된다.
카운터
플립플롭을 사용해 만든 순서논리회로이며, 입력되는 클럭 펄스의 적용에 따라 미리 정해진 순서를 밟아 가는 특수한 형태의 레지스터이다.
외부의 입력이나 출력이 없으며 상태변화는 클럭펄스에 의해 수행된다.
참고
- 방송통신대학교, 컴퓨터 구조 2강(김형근), 디지털논리회로(II) 및 컴퓨터 명령어(I)