제어장치 - 제어장치의 구성과 명령어 수행 과정

2021. 4. 20. 16:08 기타 정보/소프트웨어 공학

제어장치와 처리장치의 관계

- 제어장치는 외부 입력신호(컴퓨터 명령)을 받아 이 신호에 해당하는 제어신호(마이크로 연산)을 처리장치로 보낸다.

- 처리장치에서 제어신호에 의해 입력 데이터를 받아 처리한 후 결과를 출력 데이터로 내보낸다.

- 처리장치에서 연산 결과로 나타나는 상태신호를 제어장치로 보낸다.

- 상태신호는 분기, 조건판단 등을 위한 판단기준을 제공한다.

 

제어장치 구성

제어장치는 기억장치에서 명령을 하나씩 읽어 해독한 후 해당되는 회로가 동작할 지시신호를 보내 모든 장치가 유기적으로 동작할 수 있도록 한다.

 

(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의 내용은 다음에 수행할 명령어의 주소를 지정하거나 분기가 필요한 경우 해당 명령어의 주소를 지정하는데 이는 다시 부터의 과정을 반복하며 실행된다.

 

참고 서적

컴퓨터구조(김형근·손진곤, 한국방송통신대학교출판문화원)

 

출처 : atoz-develop.tistory.com/entry/%EC%A0%9C%EC%96%B4%EC%9E%A5%EC%B9%98-%EC%A0%9C%EC%96%B4%EC%9E%A5%EC%B9%98%EC%9D%98-%EA%B5%AC%EC%84%B1%EA%B3%BC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%88%98%ED%96%89-%EA%B3%BC%EC%A0%95?category=814648