제어장치 개요
중앙처리장치(CPU)는 데이터를 처리하는 연산을 실행하는 "처리장치(Processing Unit)"와 연산의 실행 순서를 결정하는 "제어장치(Control Unit)"로 분류된다. 제어장치는 처리장치로부터 상태 신호(Status Signals)를 전송받는다. 제어장치는 상태 비트를 이용해서 실행할 연산의 순서를 정한다.
NOTE!
제어장치는 기억장치에 저장된 명령어를 순차적으로 읽어서 연산코드를 해독하고 결과에 따라 컴퓨터 시스템 내 각 요소에 제어신호를 발생시켜 명령을 수행한다.
이때, 한 명령어는 한 클록 펄스 기간 동안 수행되는 마이크로연산의 집합이다.
제어장치 구성요소
제어장치는 특정한 데이터 연산을 실행하도록 처리장치에 마이크로연산을 구동시키는 여러 신호를 제공한다. 제어장치에서는 외부 입력신호인 컴퓨터 명령을 받아들여 신호에 해당하는 마이크로연산을 처리장치로 내보낸다. 처리장치는 마이크로연산에 의해 입력 데이터를 받아들여 데이터를 처리하고 결과를 출력한다.
명령어 레지스터 (IR: Instruction Register)
명령어 레지스터는 기억장치에서 읽어 온 명령어를 기억하는 레지스터이다. 앍어온 명령어의 연산코드는 명령어 해독기로 보내져 해석되고, 오퍼랜드 필드의 주소는 주소처리기로 보내져 다음 명령어 주소나 오퍼랜드의 주소가 계산된다.
제어신호 발생기 (Control Signal Generator)
제어신호 발생기는 명령어 해독기로부터 신호를 명령어를 실행하는데 필요한 제어신호를 발생시키는 장치이다. 이때, 명령어가 기억장치의 주소를 참조하는 명령이면 주소처리기를 동작시켜 다음에 수행될 명령어의 주소를 계산한다.
프로그램 카운터 (PC: Program Counter)
프로그램 카운터는 다음에 실행될 명령어의 주소를 기억하는 레지스터이다. 프로그램 카운터는 제어 명령을 제외하고 각 명령어가 기억장치에서 명령어 레지스터로 적재되면 기억장치 워드의 크기에 따라 1~4바이트의 일정한 값만큼 증가시킨다.
제어장치 구현
제어장치는 크게 "마이크로프로그램에 의한 제어장치"와 "하드웨어에 의한 제어장치"로 구분된다.
마이크로프로그램에 의한 제어구조
마이크로프로그램에 의한 제어구조는 제어단어와 같은 제어정보를 특별한 기억장치에 0과 1로 기억시킨 구조로, 제어신호를 수정하고 할 때 기억장치의 마이크로프로그램을 바꾸면 되기에 융통성이 뛰어나지만 속도가 느리다. 마이크로프로그램 방식은 펌웨어 방식이라고도 한다.
마이크로프로그램 제어장치를 사용하는 컴퓨터는 명령어와 데이터가 저장된 주기억장치와 마이크로연산의 수행에 필요한 마이크로명령어가 저장된 제어기억장치가 있다. 이때, 마이크로명령어는 하나 또는 다수의 마이크로연산을 나타내는 제어단어를 포함하고 순차적인 마이크로명령어의 집합은 마이크로프로그램을 구성한다.
하드웨어에 의한 제어구조
하드웨어에 의한 제어구조는 순서회로와 같은 게이트와 플립플롭으로 이루어진 구조로, 제어신호를 순서회로에 의해서 얻기에 사용되는 부품의 수는 최소화되고 고속 동작이 가능하지만 회로 동작 방식이 바뀌면 회로를 변경할 수 없고 다시 설계해야 한다.
하드웨어에 의한 제어장치는 상태 플립플롭을 이용한 제어방식과 순서 레지스터와 디코더를 이용한 제어방식이 있다