기억을 되살려 보면
CPU
는 메모리에 저장된 저장된 명령어를 읽어 들이고 해석하고 실행하는 장치
이고CPU내부에는 아래와 같은 부품들이 존재합니다.
ALU는 레지스터
를 통해 피연산자를 받아들이고
제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들입니다.
ALU가 연산을 통해 결과를 도출해내면 그 결과값은 일시적으로 레지스터
에 저장됩니다.
ALU가 연산할 때마다 결과값을 메모리에 저장한다면 CPU는 메모리에 자주 접근하게 되고 이는 CPU가 프로그램 실행 속도를 늦출 수 있기 때문입니다.
ALU는 연산 결과값 외에도 플래그라는 정보를 내보냅니다.
이 정보는 '방금의 결과값은 음수다' 같은 거나 '방금의 결과는 결과를 담을 레지스터보다 크다'와 같은 정보들입니다.
다양한 플래그 정보들이 존재합니다.
그리고 이 플래그는
플래그 레지스터
에 저장됩니다.
이런식으로 플래그 레지스터에 해당 플래그가 1이 되어있으면 그 해당하는 정보를 나타낸다고 볼 수 있습니다.
제어장치는
제어 신호
를 내보내고 명령어를 해석하는 부품입니다.
제어 신호
는 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호 입니다.
명령어 레지스터
라는 특별한 레지스터에 저장됩니다.명령어 레지스터
로부터 해석해야할 명령어를 받아들이고 해석한 뒤 제어 신호를 발생시켜 컴퓨터 부품들에게 수행해야 할 내용을 알려줍니다.제어장치가 메모리에 값을 읽거나 쓰고 싶으면 메모리로 제어 신호를 보내고 입출력장치의 값을 읽거나 새로운 값을 쓰고 싶으면 입출력장치로 제어 신호를 보냅니다.
프로그램 속 명령어와 데이터는 실행 전후로 반드시 레지스터에 저장됩니다.
각 레지스터들은 저마다의 역할이 있고 그에 걸맞는 내용을 저장합니다.