ALU
( 이 책에서는 자세한 회로 등은 생략한다고 한다 )
( 음.. 어차피 알고싶으면 내게 책이 또 있지.. ㅋㅋ )
ALU 가 받아들이는 것들
- 피연산자 : ALU 는 레지스터를 통해 연산에 필요한 피연산자를 받는다.
- 제어 신호 : 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받는다.
ALU 는 이들을 갖고 산술 연산 , 논리 연산 등 다양한 연산을 수행한다.
ALU 와 레지스터의 접근
ALU 가 메모리에 접근하는 것은 매우 아주 느리다. 연산할 때마다 메모리에 접근한다면 프로그램 실행 속도를 늦출 수 있기 때문에 ALU 의 결과값을 메모리가 아닌 레지스터에 우선 저장한다.
ALU 가 내보내는 것들
- 계산 결과 : 연산한 결과값
- 플래그 Flag : 앞서 음수 양수를 판별하기 위해 플래그를 사용한다고 배웠었다. 이처럼 연산 결과 뿐만 아니라 , 그 결과에 따른 추가적인 정보를 내보내야 할 때 플래그를 내보낸다.
그리고 이 플래그는 플래그 레지스터라는 레지스터에 저장이 된다.
( 플래그에는 부호 , 제로 , 캐리 , 오버플로우 , 인터럽트 , 슈퍼바이저 등등이 있다 )
제어장치
제어장치는 제어 신호를 내보내고 , 명령어를 해석하는 부품이다.
그리고 제어 신호는 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호이다.
참고로 제어장치는 CPU 의 구성 요소 중 가장 정교하게 설계된 부품이라고 해도 과언이 아니라 한다.

제어장치가 무엇을 받아들일까
- 클럭 신호 : Clock 이란 컴퓨터의 시간 단위와 같다. 클럭의 주기에 맞춰서 모든 수행이 이루어진다. ( 1 Clock ≠ 1 수행 그냥 박자에 맞추는거임 )
- 해석해야 할 명령어 : CPU 가 해석해야 할 명령어는 명령어 레지스터라는 곳에 저장된다고 한다, 해당 레지스터로 부터 해석할 명령어를 받아들이고 제어 신호를 발생시킨다.
- 플래그 레지스터속 플래그 : 추가적인 정보인 플래그의 값을 받고 그 값을 참고하여 제어 신호를 발생시킨다.
- 시스템 버스 , 그중에서 제어 버스로 전달된 제어 신호 : 제어 신호는 CPU 뿐만 아니라 입출력 장치를 비롯한 CPU 외부 장치도 발생시킬 수 있으므로 제어장치는 제어 버스를 통해 외부로부터 전달된 제어 신호를 받아들이기도 한다.