컴퓨터에 있는 모든 데이터는 CPU 내에 있는 제어장치에서 지시를 받아 산술연산장치에서 처리된다. 따라서 컴퓨터의 모든 장치는 제어장치의 신호에 의해서만 작동하며, 이러한 신호는 제어 버스에 의해서 전달된다.

일반적으로 제어장치는 저장장치에서 적절한 순서로 명령어를 인출하고, 각 명령어를 해석한다. 그 해석에 따라서 산술논리연산장치나 다른 부분으로 적절한 제어신호를 보낸다.

컴퓨터의 CPU는 프로그램 코드 내의 명령어를 해석하고, CPU 내의 제어장치는 프로그램에 의해 주어진 연산의 순서를 차례대로 실행하기 위해 기억장치, 연산장치, 입출력 장치에 제어신호를 발생시킨다. 그리고 제어장치는 이들 장치에서 신호를 받아 다음에 처리할 작업을 제어한다. 제어장치는 네 단계의 동작으로 구성되어 있다. [ 그림 6-35 ]는 제어장치가 동작하는 것을 나타낸 것이다.

① 주기억장치에서 명령어를 인출해서 제어장치 내에 명령어 레지스터로 저장된다.

② 프로그램 카운터는 다음에 실행될 명령어의 주소가 저장된다.

③ 제어장치가 명령어 레지스터의 명령어를 해석한다.

④ 해석된 명령어는 해당되는 제어신호를 발생시킨다.

[ 그림 6-35 ]

프로그램은 앞에서부터 한 명령씩 차례대로 실행되지만 조건부 분기(예: JUMP)와 같이 그 순서를 바꾸어야 하는 경우가 생긴다. 이때는 프로그램 카운터를 사용해 그 내용을 바꿈으로써 분기된 이후부터의 명령들이 새로운 순서에 맞게 실행되게 한다. [ 그림 6-36 ] 은 프로그램 카운터에 다음으로 실행될 명령어의 주소가 저장되는 과정을 그림으로 표현한 것이다. 명령어 레지스터는 기억장치 버퍼 레지스터로에서 명령어 코드를 가져와서 기억하며, 명령어 해독기는 명령어 코드를 해독한다. 주소는 기억장치 주소 레지스터에 기억되었다가 주소 해독기에 의해 해독된다.

[ 그림 6-36 ]

[ 그림 6-37 ]은 제어장치의 동작을 포함한 CPU의 동작을 그림으로 나타낸 것이다.

[ 그림 6-37 ]