Last update: @1/7/2023
ALU와 제어장치
•
ALU
: 계산을 위한 부품. 레지스터로부터 피연산자를, 제어장치로부터 제어신호를 받아 계산 결과와 플래그를 내보냄
◦
플래그
: 연산 결과에 대한 추가적인 상태. CPU가 프로그램을 실행하는 도중 반드시 기억해야 하는 일종의 참고 정보. 플래그 레지스터에 저장됨
▪
대표적인 종류
•
부호 플래그
: 연산한 결과의 부호를 나타냄
•
제로 플래그
: 연산 결과자가 0인지 여부를 나타냄
•
캐리 플래그
: 연산 결과 올림수나 빌림수가 발생했는지를 나타냄
•
오버플로우 플래그
: 오버플로우가 발생했는지를 나타냄. 연산 결과가 연산 결과를 담을 레지스터보다 큰 상황을 오버플로우(overflow)라고 함
•
인터럽트 플래그
: 인터럽트가 가능한지를 나타냄
•
슈퍼바이저 플래그
: 커널 모드로 실행중인지, 사용자 모드로 실행중인지를 나타냄
•
제어장치
: 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호인 제어신호를 내보내고 명령어를 해석하는 부품
◦
제어장치가 받아들이는 정보
▪
클럭(clock)
: 컴퓨터의 모든 부품이 박자에 맞춰 움직이는 시간 단위. 컴퓨터 부품들은 클럭이라는 박자에 맞춰 작동할 뿐 한 박자(주기)마다 작동하는 것은 아님. 즉, 하나의 명령어가 여러 클럭에 걸쳐 실행될 수 있음
▪
해석해야 할 명령어
: 제어장치는 명령어 레지스터에 저장된 명렁어를 받아들여 해석한 뒤 제어신호를 발생시켜 컴퓨터 부품들에 수행해야 할 내용을 알려줌
▪
플래그 레지스터 속 플래그 값
: 제어장치는 플래그 레지스터 속 플래그 값을 받아들임
▪
시스템 버스 중에서 제어 버스로 전달된 제어 신호
: CPU뿐만 아니라 입출력장치를 비롯한 외부 장치도 제어 신호를 발생시킬 수 있음. 제어장치는 이런 제어 신호를 받아들이기도 함
◦
제어장치가 CPU 내부에 전달하는 제어신호
▪
ALU에 전달하는 제어신호
▪
레지스터에 전달하는 제어신호
: 레지스터 간에 데이터를 이동시키거나 레지스터에 저장된 명령어를 해석하기 위해