모든 장치가 유기적으로 동작할 수 있도록 하고, 주기억 장치에서 명령어를 가져와 해독하여 결과에 따라 제어 신호를 컴퓨터 시스템 내의 각 부분으로 전달 하는 장치
- 프로세서의 조작을 지시하는 컴퓨터 중앙 처리 장치(CPU)의 한 부품이다.
- 모든 컴퓨터 자원들은 제어 장치에 관리를 받는다.
- CU는 control unit의 약자이다.
- 입력장치에서 입력된 데이터를 기억장소에 저장한다.
- 기억 장치에 있는 데이터를 연산 장치로 이동시킨다.
- 연산 장치에서 연산이 완료되면 그 결과를 다시 기억 장치로 이동시킨다.
- 기억 장치에 저장된 데이터를 출력 장치로 이동시켜 출력시킨다.
- 입출력 장치 간 통신 및 조율을 제어한다.
- 명령어들을 읽고 해석하며 데이터 처리를 위한 시퀀스를 결정한다.
- 중앙 처리 장치와 다른 장치들 사이의 데이터 흐름을 제어한다.
cpu가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 기억장치
- 주기억 장치에 명령이나 자료가 기억되어 있는 주소를 보관 하는 레지스터이다.
- MAR은 Memory Address Register의 약자이다.
- 명령어 계수기가 지정하는 주기억 장치의 내용을 임시 보관하는 레지스터이다.
- MBR은 Memory Buffer Register의 약자이다.
- 다음에 실행할 마이크로명령어의 주소를 저장하는 레지스터이다.
- Mapping의 결과값, 주소 필드, 서브루틴 레지스터의 내용들이 적재되어 있다.
- CAR은 Control Address Register의 약자이다.
- 제어 기억장치로부터 읽혀진 마이크로명령어 비트들을 일시적으로 저장하는 레지스터이다.
- CBR은 Control Buffer Register의 약자이다.
- 현재 실행 중인 명령을 기억하는 레지스터로, 연산 코드와 주소부로 구성된다.
- 단순한 프로세서에서 실행될 각 명령은 명령 레지스터로 적재된다.
- 명령어는 기억장치 → MBR → IR 순서로 진행된다.
- IR은 Instruction Register의 약자이다.
- 분기, 서브루틴 호출 등의 제어 명령을 제외하고 명령어가 기억장치에서 IR로 적재될 때 기억장치 워드의 크기에 따라 일정한 값만큼씩 증가한다.
- 다음에 실행할 명령어가 기억되어 있는 주기억 장치의 주소를 기억한다.
- PC는 Program Counter의 약자이다.
- 명령어 레지스터의 명령 코드를 해독하여 필요한 실행 신호를 발생시킨다.
- 명령어의 연산코드는 명령어 해독기로 보내져 해석된다.
- 해석 결과를 제어신호 발생기에 전달한다.
- 영어로는 Decoder라고 한다.
- 피연산자를 인출할 경우 그 주소를 계산하거나 수행될 명령 순서가 바뀔 때 다음에 수행할 명령의 주소를 계산한다
- 영어로는 Address Processor라고 한다.
- 해독된 명령에 따라 각 장치로 보낼 제어 신호를 생성하는 회로이다.
- 영어로는 Encoder라고 한다.
- 정해진 순서에 따라 동작 순서를 제어한다.
- 영어로는 Sequencer라고 한다.
- 디코더에 의해 선택된 번호에 해당하는 타이밍신호를 생성한다.
- 영어로는 Sequence counter라고 한다.
- 보통 기계 어에서 연산을 가리키는 코드이다.
- op code 라고 하며 operation code의 약자이다.
- 명령어 주소 전송을 위해 명령어 계수기(PC)에 기억된 주소를 MAR으로 보낸다.
- 주기억 장치의 내용을 임시 보관하고 있는 MBR에서 읽어온 명령어를 명령어 레지스터(IR)에 저장하고, 명령어 계수기를 1 증가시킨다.
- 명령어 코드(op Code) 필드와 주소 필드를 각각 해독기와 주소 처리기로 보낸다.
- 주소 처리기는 연산 자료를 인출할 때 피연산자의 주소를 계산하며, 수행될 명령어의 순서가 바뀔 때에는 다음에 수행될 명령어 주소를 계산하여 명령어 계수기에 기억시킨다.
- 제어 신호 발생기가 연산자를 해독하여 명령어 수행을 위한 제어 신호를 발생하며, 수행 순서를 변경할 때에는 주소 처리기를 동작시켜 수행될 명령어 주소를 계산한다.
- 다음 명령의 수행을 위하여 위 과정을 다시 시작한다. 현재 명령어 레지스터 에 있는 명령어의 수행이 끝나면 증가 된 명령어 계수기의 값을 MAR에 보내 다음 명령어를 실행한다.