4. CPU의 작동 원리

ALU(산술논리장치)

image.png

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

이렇게 받아들인 정보를 바탕으로 다양한 연산을 수행하여 정보를 내보낼 때, 결괏값은 바로 메모리에 저장되지 않고 일시적으로 레지스터에 저장된다. 또한 결과값 뿐만 아니라 플래그 역시 내보낸다.

<aside> ⛳

플래그

연산 결과에 대한 추가적인 상태 정보. 플래그 레지스터에 저장된다.

플래그 종류 의미 사용 예시
부호 플래그 연산 결과의 부호 0: 양수 / 1: 음수
제로 플래그 연산 결과가 0인지 여부 1일 경우 결과값 0
캐리 플래그 연산 결과 올림수/빌림수 발생 여부 1일 경우 발생
오버플로우 플래그 오버플로우 발생 여부 1일 경우 오버플로우
인터럽트 플래그 인터럽트 가능 여부 1일 경우 인터럽트 가능
슈퍼바이저 플래그 커널/사용자 모드 여부 0: 사용자모드 / 1: 커널모드
</aside>

이밖에도 ALU에는 계산을 위한 다양한 회로(가산기, 보수기, 시프터, 오버플로우 검출기 등)가 있다.

제어장치

제어장치는 제어 신호를 내보내고, 명령어를 해석하는 부품이다. 제어 신호는 컴퓨터 부품을 작동시키기 위한 전기 신호이다. CPU의 구성 요소 중 가장 정교하며, CPU 제조사마다 차이가 있다.

image.png

제어장치가 받아들이는 정보는 대표적으로 4가지가 있다.

제어장치가 받아들이는 정보

  1. 클럭(Clock) 신호

클럭 : 컴퓨터의 부품들이 움직일 수 있게 하는 시간 단위. 클럭의 주기에 맞춰 레지스터 내의 데이터 이동, ALU의 연산 등이 일어난다.

클럭은 박자의 개념으로, 모든 연산이 한 클럭마다 일어나는 것은 아니며 하나의 명령어가 여러 클럭에 걸쳐 실행되기도 한다.

  1. 명령어

명령어 레지스터에 저장된 명령어를 받아와 해석하여 제어신호를 발생시킨다.