-
ALU와 제어장치

ALU 사진 - ALU는 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들인다
- 연산을 수행한 결과는 특정 숫자나 문자가 될 수 있고, 메모리 주소가 될 수 있다.
- 그리고 이 결과 값은 메모리에 저장되지 않고, 일시적으로 레지스터에 저장이 된다.
레지스터에 저장되는 이유 : CPU가 메모리에 직접 접근 하면 프로그램 실행 속도에 영향을 주니 메모리가 아닌 레지스터에 저장을 한다.
플래그 : 음수 인지 양수인지 판단을 플래그로 한다고 했었는데, 때로는 연산 결과에 대한 추가적인 정보를 나타내야 할 때가 있다. 이러한 연산 결과에 대한 추가적인 상태 정보를 플래그 라고 한다
-> 연산 결과가 연산 결과를 담을 레지스터보다 큰 상황을 오버플로우 라고 한다
플래그 태그 정보 - 위와 같은 플래그는 CPU가 프로그램을 실행하는 도중 반드시 기억해야 하는 일종의 참고 정보입니다.
- 그리고 플래그는 플래그 레지스터에 저장이 된다
제어장치
- 제어장치는 제어 신호를 내보내고, 명령어를 해석하는 부품이다.
- 제어신호는 컴퓨터 부품을 관리하고 작동시키기 위한 일종의 전기 신호이다

- 제어 장치가 받아들이는 정보
첫째, 제어장치는 클럭 신호를 받아들인다.
- 클럭이란 컴퓨터 부품을 움직일 수 있게 해주는 시간 단위다.
- 클럭 주기에 맞춰 레지스터에서 레지스터로 이동하거나, ALU에서 연산이 수행되거나, CPU가 저장된 명령어를 읽어 들인다.
- 주의사항 ⚠️ -> 모든 부품이 클럭 신호에 맞춰 작동한다는 것이지 한 클럭마다 작동한다는 것은 아니다
둘째, 제어장치는 '해석해야 할 명령어를 받아들인다'.
- CPU가 해석해야할 명령어는 명령어 레지스터에 저장이 된다.
- 제어장치는 명령어 레지스터로부터 해석할 명령어를 받아들이고 해석 후, 제어신호를 발생시켜 알려준다.
셋째, 제어장치는 플래그 레지스터 속 플래그 값을 받아들인다.
- 제어장치는 제어신호를 통해 컴퓨터 부품을 제어할 떄 플래그 값을 받아들이고 이를 참고하여 제어신호를 발생시킨다.
넷째, 제어장치는 시스템 버스 그 중에서도 제어버스로 전달된 제어신호를 받아들인다.
- 제어신호는 CPU뿐만 아니라 입출력장치를 비롯한 외부 장치더 발생시킬 수 있다. 제어장치는 제어 버스를 통해 외부로 부터 전달된 제어 신호를 받아들인다.