본문 바로가기
컴퓨터구조

[컴퓨터구조][기초] CPU - 제어장치

by codingbird1234 2025. 3. 14.

*해당 글은 '혼자 공부하는 컴퓨터구조 + 운영체제(강민철 지음)'을 참고하여 작성되었습니다.

*구체적인 예시와 함께 더 자세히 공부하고 싶으신 분들은 해당 책을 읽어보시기를 추천드립니다.

 

 

지난 시간에는 CPU와 CPU 내의 계산 장치인 ALU를 간단히 알아보았습니다.

이번 시간에는 CPU의 제어 장치에 대해서 알아보겠습니다.

 

제어장치(Control Unit)란, 컴퓨터 부품을 제어하는 제어 신호를 보내고, 명령어를 해석하는 장치라고 했습니다.

여기서, 제어 신호컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호라고 했습니다.

좀 더 풀어서 이해해보자면,

명령어를 해석하고, 컴퓨터의 각 부품들을 제어 신호를 통해 작동시키면서 명령을 수행하도록 하는 장치입니다.

 

제어장치는 CPU를 구성하는 부품들 중 가장 정교하게 설계된 부품이라 할 수 있습니다.

참고로, CPU 제조사마다 제어장치의 구현이나 명령어 해석 방식 등이 조금씩 다릅니다.

여기서는 제어장치가 받아들이고 내보내는 가장 대표적인 정보들에 대해서만 알아보겠습니다.

 

제어장치는 명령어를 해석하는 역할도 있지만, 컴퓨터 부품을 전체적으로 제어하는 역할도 있죠?

때문에 제어장치는 받아들이는 정보도 많고, 내보내는 정보도 많습니다.

 


받아들이는 정보

먼저, 받아들이는 정보에 대해 알아보겠습니다.

1. 클럭 신호

클럭, 우리는 시계라고 알고 있죠? 컴퓨터에도 작동하는 단위가 있는데, 그것이 바로 이 클럭입니다.

클럭(Clock)이란, 컴퓨터의 모든 부품이 움직이는 시간 단위로, 주기적인 전기적 펄스를 말합니다.

컴퓨터의 맥박 같은 느낌이죠. 클럭에 따라 컴퓨터의 각 부품들을 작동합니다.

(다만, 모든 부품들이 한 클럭마다 작동하는 것은 아닙니다.)

제어장치도 이 클럭 주기에 따라 작동하기 때문에 클럭 신호를 받아들이게 되어있습니다.

 

2. 해석해야 할 명령어

제어장치는 명령어를 해석한다고 했죠? 그래서 해석해야 할 명령어를 받아들입니다.

이 명령어는 명령어 레지스터라는 특별한 레지스터에 저장되어있기 때문에,

제어장치는 명령어 레지스터로부터 해석할 명령어를 받아들입니다.

그 다음에 이 명령어를 해석하고 제어 신호를 발생시켜 각 부품들에게 지시를 내리겠죠?

 

3. 플래그 값 (in 플래그 레지스터)

저번 시간에 ALU를 배우면서, ALU는 플래그 값을 내보내고 이 플래그 값은 플래그 레지스터에 저장된다고 했었습니다.

( 플래그 : 연산 결과에 대한 추가적인 상태 정보 )

플래그는 중요한 정보를 담고 있습니다. 제어장치가 컴퓨터 부품들을 제어할 때 이 플래그 값을 무시하면 안되겠죠?

그래서 제어장치는 플래그 값을 참고하여 각 부품에 제어 신호를 보내게 됩니다.

 

4. 제어 버스 (in 시스템 버스)

제어 신호는 CPU의 제어장치만 발생시킬 수 있는 것일까요? 정답은 '아니요'입니다.

CPU 외에 다른 장치들도 제어 신호를 발생시킬 수 있습니다.

그리고 발생할 신호는 시스템 버스, 그중에서도 제어 버스를 통해 이동합니다.

그렇다면 제어장치는 CPU 외부의 장치가 보낸 제어 신호를 제어 버스로 받겠죠?

 


내보내는 정보

이번에는 내보내는 정보에 대해 알아보겠습니다.

제어장치가 내보내는 정보는 제어 신호입니다.

이 제어 신호는 CPU 내부에 전달하는 제어 신호CPU 외부에 전달하는 제어 신호로 나뉩니다.

 

1. CPU 내부에 전달하는 제어 신호

CPU 내부에는 제어장치를 제외하고는 레지스터ALU가 있습니다.

  • 레지스터에 전달하는 제어 신호 : 레지스터 간에 데이터를 이동시키거나, 레지스터에 저장된 명령어를 불러올 때
  • ALU에 전달하는 제어 신호 : 수행할 연산을 지시할 때

 

2. CPU 외부에 전달하는 제어 신호

CPU 외부로 제어 신호를 전달할 때는 시스템 버스 내에 있는 제어 버스를 이용합니다.

제어장치가 CPU 외부 장치에 직접적으로 제어 신호를 보낼 때는, 일반적으로 메모리입출력장치입니다.

  • 메모리에 전달하는 제어 신호 : 메모리에 저장된 값을 읽거나, 메모리에 어떤 값을 저장하고 싶을 때
  • 입출력장치에 전달하는 제어 신호 : 입출력장체의 값을 읽거나, 입출력장치에 어떤 값을 쓰고 싶을 때

 


 

이번 시간에는 CPU의 제어장치에 대해 알아보면서, 제어장치가 어떤 정보를 받아들이고 내보내는지에 대해 배웠습니다.

다음 시간에는 CPU의 레지스터에 대해 알아보겠습니다!