본문 바로가기
컴퓨터공학

5. CPU의 작동원리 : ALU와 제어장치

by 이면지91 2024. 10. 1.

 

ALU는 계산하는 장치

제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치

 

ALU

계산을 하기 위해서는 피연산자수행할 연산이 필요

 ex) 1+2=? ; 1, 2는 피연산자, + 수행할 연산

 

ALU는 레지스터로부터 피연산자를 받아들이고 제어장치로부터 제어 신호를 받아들인다.

 

이렇게 계산된 결괏값을 레지스터에 담는데 메모리가 아니라 레지스터에 저장하는 이유는 CPU가 레지스터에 접근하는 속도가 메모리에 접근하는 속도보다 빠르기 때문이다.

 

ALU가 내보내는 또다른 정보중에서 프래그가 있다.

 

플래그는 연산결과에 대한 부가정보인데 CPU 내부에 있는 모든 숫자들은 양수 혹은 음수라고 하는 일종의 깃발을 들고 다니기 때문에 CPU는 결과값이 양수인지 음수인지 플래그를 통해서 이해할 수 있다.

 

다만, 연산결과가 이 연산을 담을 수 있는 레지스터에 비해서 너무 커지게 되면 '오버플로우가 났다'고 표현을 한다. 이러한 경우에도 플래그에 명시된다.

 

 

플래그 레지스터

부호 플래그 제로 플래그 캐리 플래그 오버플로우 플래그 인터럽트 플래그 슈퍼바이저 플래그
1 0 0 0 0 0

이 플래그를 보고 CPU는 "이 연산 결과는 음수구나"라고 이해할 수 있다.

 

제어장치

제어장치가 받는 정보

  • 클럭 : 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
  • 해석할 명령어 : 명령어 레지스터에 저장된 명령어
  • 플래그 : CPU가 연상결과로서 받아들이는 부가적인 정보, 명령어를 해석하는데 필요한 플래그 값
  • 제어신호 : 입출력장치 등 주변장치에서 CPU로 전달되는 제어신호

제어장치가 내보내는 정보

  • CPU 내부
    - 레지스터 : 레지스터 간에 '어떤 정보를 이동해라', '어떤 값을 저장해라' 등 레지스터가 특정 행동을 하도록 하는 제어신호
    - ALU : 수핼할 연산을 지시하는 제어신호
  • CPU 외부
    - 메모리 : '메모리를 읽어라', '메모리를 써라' 라고 지시하기 위한 제어신호
    - 입출력장치 : '입출력장치를 읽어라' 라고 지시라기 위한 제어신호