[CPU] ALU, 제어장치에 대해 간단히 알아보자
CPU는 ALU, 제어장치, 레지스터로 구성됩니다.
ALU는 한국어 번역하면 산술논리연산장치이며 이름 그대로 산술 연산, 논리 연산을 수행한다. 예를 들어 1+2 를 계산하고 3이라는 결과를 냅니다.
제어장치는 제어신호로 컴퓨터 전체를 제어합니다. 예를 들어 ALU에 "더하라" 라는 제어신호를 보내 ALU가 더하는 일을 하도록 합니다.
레지스터는 CPU 내부의 저장장치입니다. 예를 들어 ALU가 연산을 수행할때 그 피연산자들이 레지스터에 저장됩니다.
ALU
- 받아들이는 정보
- ALU로부터 오는 제어신호
- 레지스터에 임시 저장된 피연산자
- 내보내는 정보
- 연산의 결과
- 숫자, 문자, 메모리 주소
- 플래그
- 부호, 제로, 캐리, 오버플로우, 인터럽트, 슈퍼바이저 플래그
예시)
ALU가 제어장치로부터 "더해라" 라는 제어신호와 레지스터로부터 "1"과 "2" 라는 피연산자를 받아들인다.
1과 2를 더하는 연산을 수행한 뒤 3이라는 결과를 레지스터에 임시 저장한다.
그리고 플래그를 플래그 레지스터에 저장하는데, 이떄 결과값의 부호가 양수이기 때문에 부호 플래그는 0이 된다.
제어장치
- 받아들이는 정보
- 클럭 신호
- 클럭 신호는 일정 주기로 똑딱똑딱 발생하는 신호인데, 제어장치는 이 신호에 맞춰 다른 장치들에게 신호를 내보낸다.
- 해석해야할 명령어
- CPU 내 명령어 레지스터에 저장된 레지스터를 받아들이고 해석한 뒤 다른 장치들에게 신호를 내보낸다.
- CPU 외 다른 장치가 발생시킨 제어신호
- 다른 장치가 제어버스로 보낸 제어신호를 받아들인다.
- 내보내는 정보
- CPU 내부에 전달하는 제어신호
- ALU에게 보내는 제어신호
- 레지스터에게 보내는 제어 신호 (레지스터 간 명령어 이동, 레지스터에 저장된 명령어 해석)
- CPU 외부에 전달하는 제어신호
- 이 신호는 제어 버스를 통해 내보내진다.
- 메모리의 값을 읽거나 메모리에 값을 쓰는 신호
- 입출력 장치의 값을 읽거나 입출력 장치에 값을 쓰는 신호