ALU와 제어장치

ALU
-
레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들여서 다양한 연산을 수행함
-
연산 수행의 결과를 일시적으로 레지스터에 저장시킴(CPU가 직접 메모리에 접근하면 속도가 느려지기 때문)
-> 계산 결과와 플래그도 내보낸다.
-
플래그 : 연산 결과에 대한 추가적인 정보로,
- 음수인지 양수인지를 구분하는 부호 플래그,
- 연산 결과가 레지스트보다 크다고 알리는 오버플로그 플래그
등이 있다.

-
플래그들은 플래그 레지스터에 저장되며, 이 레지스터를 통해 연산결과의 추가정보를 얻을 수 있게 된다.
제어장치
- 제어장치 : 제어 신호를 내보내고, 명령어를 해석하는 부품
- 제어신호 : 컴퓨터 부품들을 관리하고 작동시키는 일종의 전기 신호
제어장치가 받아들이는 정보
- 클럭(clock) 신호
컴퓨터의 시간단위, 컴퓨터의 모든 부품이 일정 클럭 신호주기에 맞춰 작동함.
- 해석해야 할 명령어
명령어 레지스터 로부터 해석할 명령어를 받아들이고 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들을 작동시킴
- 플래그 값
플래그 레지스터로부터 플래그 값을 받아들여 제어 신호를 발생시킴
- 제어 신호
제어 버스(시스템 버스 중 하나)로부터 제어 신호를 받아들임
제어장치가 내보내는 정보
- CPU 외부에 전달하는 제어신호
== 제어버스를 통해 제어 신호를 내보내는 것, 메모리에 전달하는 제어 신호와 입출력장치에 전달하는 제어신호가 있음
- CPU 내부에 전달하는 제어신호
1) ALU에 전달하는 제어 신호(수행할 연산을 지시)와 2) 레지스터에 전달하는 제어 신호(레지스터 간 데이터 이동 o r 리지스터에 저장된 명령어 해석)가 있음
레지스터
명령어와 데이터는 실행 전후로 반드시 레지스터에 저장됨
-> 레지스터에 저장된 값만 잘 관찰해도 프로그램의 실행 흐름을 파악할 수 있음
반드시 알아야할 레지스터의 종류
1. 프로그램 카운터(PC)
메모리에서 가져올 명령어의 주소, 즉 메모리에서 읽어들일 명령어의 주소를 저장2
2. 명령어 레지스터(IR)
해석할 명령어, 즉 방금 메모리에서 읽어들인 명령어를 저장
3. 메모리 주소 레지스터(MAR)
메모리의 주소를 저장, CPU가 읽어들이고자하는 주소 값을 주소 버스로 내보낼 때 이 레지스터를 거치게 됨
4. 메모리 버퍼 레지스터(MBR)
메모리와 주고받을 값(데이터, 명령어)을 저장, 메모리에 쓰고 싶은 값이나 전달받은 값(데이터 버스로 주고받을 값)은 이 레지스터를 거친다.