제어장치 - 제어장치의 구성과 명령어 수행 과정
제어장치와 처리장치의 관계
- 제어장치는 외부 입력신호(컴퓨터 명령)을 받아 이 신호에 해당하는 제어신호(마이크로 연산)을 처리장치로 보낸다.
- 처리장치에서 제어신호에 의해 입력 데이터를 받아 처리한 후 결과를 출력 데이터로 내보낸다.
- 처리장치에서 연산 결과로 나타나는 상태신호를 제어장치로 보낸다.
- 상태신호는 분기, 조건판단 등을 위한 판단기준을 제공한다.
제어장치 구성
제어장치는 기억장치에서 명령을 하나씩 읽어 해독한 후 해당되는 회로가 동작할 지시신호를 보내 모든 장치가 유기적으로 동작할 수 있도록 한다.
(1) 명령어 레지스터(IR: Instruction Register)
- 기억장치에서 읽어온 명령어를 저장하는 레지스터
- 명령어가 IR에 저장되기 전에 메모리 버퍼 레지스터(MBR: Memory Buffer Register)에 임시로 저장된다.
- 명령어의 흐름 : 기억장치 → MBR → IR
- 명령어의 연산코드는 명령어 해독기로 보내져 해석된다.
- 명령어의 오퍼랜드는 주소처리기로 보내져 계산된다.(다음 명령어 주소/오퍼랜드의 주소)
- 주소처리기에서 계산된 기억장치주소는 메모리 주소 레지스터(MAR: Memmory Address Register)에 임시로 저장된다.
(2) 제어신호 발생기
- 명령어 해독기로부터 신호를 받아 명령어를 실행하는데 필요한 제어신호를 발생시킨다.
① 명령어 해독기
- 명령어 레지스터로부터 연산코드를 받아 해석한다.
- 해석 결과를 제어신호 발생기에 전달한다.
② 순서제어기
- 마이크로 연산의 수행 순서를 결정한다.
(3) 프로그램 카운터
- 다음에 실행될 명령어의 주소를 기억하는 레지스터
- 분기, 서브루틴 호출 등의 제어 명령을 제외하고 명령어가 기억장치에서 IR로 적재될 때 기억장치 워드의 크기에 따라 일정한 값만큼씩 증가한다.
제어장치 명령어 수행 과정
① PC에 저장된 주소를 MAR로 보낸다.
② MAR에 저장된 주소에 있는 기억장치의 명령어를 MBR로 읽어 오고, PC를 증가시킨다. 명령어의 실행을 위해 읽어 온 명령을 IR에 저장한다.
③ 명령어의 연산코드는 명령어 해독기로 보내고 오퍼랜드는 주소처리기로 보낸다.
④ 주소처리기는 MAR을 통해 기억장치에 접근하여 명령어 수행에 필요한 오퍼랜드의 주소 또는 다음 명령어의 주소를 계산한다.
⑤ 제어신호 발생기에서는 위의 ①~④ 과정에서 필요한 제어신호와 연산코드를 해독하여 명령 수행을 위한 제어신호를 발생시킨다. 이때 명령어가 기억장치의 주소를 참조하는 명령어라면 주소처리기를 동작시켜 다음에 수행될 명령어의 주소를 계산한다.
⑥ 현재 IR에 있는 명령어의 수행이 끝나면 증가된 PC의 내용은 다음에 수행할 명령어의 주소를 지정하거나 분기가 필요한 경우 해당 명령어의 주소를 지정하는데 이는 다시 ①부터의 과정을 반복하며 실행된다.
참고 서적
컴퓨터구조(김형근·손진곤, 한국방송통신대학교출판문화원)
'기타 정보 > 소프트웨어 공학' 카테고리의 다른 글
[자료구조] 큐 - 정리 및 연습문제 (0) | 2021.04.21 |
---|---|
[자료구조] 스택 - 정리 및 연습문제 (0) | 2021.04.21 |
[자료구조] 배열 - 정리 및 연습문제 (0) | 2021.04.21 |
[자료구조] 자료구조란 무엇인가? - 정리 및 연습문제 (0) | 2021.04.20 |
처리장치 - 제어단어의 이해와 마이크로 연산의 제어단어 변환 (0) | 2021.04.20 |
프로그래밍 언어의 구문의 표현 - BNF, EBNF, 구분 도표 표현법 (0) | 2021.04.20 |
프로그래밍 언어의 요구사항과 설계 원칙 (0) | 2021.04.20 |
프로그래밍 언어의 평가 기준 (0) | 2021.04.20 |