//구글콘솔 광고 추가가
ALU와 제어장치
  • ALU: 계산하는 장치
  • 제어장치 : 제어 신호를 발생시키고 명령어를 해석하는 장치

ALU, 제어장치가 내보내고 받아들이는 정보가 각각 무엇인지 알아보자.

ALU 가 받아들이는 정보와 내보내는 정보
-  ALU는 레지스터로부터 피연산자를 받아들이고, 제어장치로부터 제어 신호를 받아들인다.
레지스터에겐 피연산자를, 제어장치에겐 제어신호를 받아들이는데, 이것은 계산을 하기 위해 피연산자와 수행할 연산(제어신호)이 필요하기 때문이다. 이걸 통해서 연산값을 수행하고 결과값을 레지스터에 담는다.


- ALU는 위에서 말한 결과값(컴퓨터가 이해할 정보)의 정보를 레지스터에 담는다(메모리가 아닌 레지스터에 담는 이유는 cpu가 메모리에 접근하는 속도보다 레지스터에 접근하는 속도가 더 빠르기 때문).
- 플래그를 내보내기도 하는데, 연산결과에 대한 부가 정보 플래그라 하며 이 플래그를 내보내서 플래그 레지스터에 담는다.

 

플래그의 종류 
플래그 종류 의미 사용 예시
부호 플래그 연산한 결과의 부호를 나타낸다. 부호 플래그가 1일 경우 계산 결과는 음수, 0일 경우 계산 결과는 양수를 의미.
제로 플래그 연산 결과가 0인지 여부를 나타낸다. 제로 플래그가 1일 경우 연산 결과는 0.
0일 경우 연산 결과는 0이 아님을 의미.
캐리 플래그 연산 결과 올림수나 빌림수가 발생하는 지를 나타낸다. 캐리 플래그가 1일 경우 올림수나 빌림수가 발생했음을 의미하고, 0일 경우 발생하지 않았음을 의미
오버플로우 플래그 오버플로우가 발생했는지를 나타낸다. 오버플로우 플래그가 1일 경우 오버플로우가 발생했음을 의미, 0일 경우 발생하지 않았음을 의미.
인터럽트 플래그 인터럽트가 가능한지를 나타낸다. 인터럽트 플래그가 1일 경우 인터럽트가 가능함으 의미하고, 0일 경우 인터럽트가 불가능함을 의미.
슈퍼바이저 플래그 커널 모드로 실행 중인지, 사용자 모드로 실행중인지를 나타낸다. 슈퍼바이저 플래그가 1일 경우 커널 모드로 실행 중임을 의미하고, 0일 경우 사용자 모드로 실행 중임을 의미.

 

제어장치가 받아들이는 정보와 내보내는 정보
- 제어장치는 클럭신호를 받아들인다.
: 클럭은 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위. 클럭신호의 단위에 맞춰 명령어들이 수행됨.
- 해석할 명령어를 받아들인다. 
: 명령어 레지스터에 저장되어 있는 해석할 명령어를 받아들인다.
- 플래그를 받아들인다.
: 명령어를 해석할때 이 명령어가 음수인지 양수인지 등을 알아야 되서 플래그 값도 받아 들임.
- 제어신호를 받아들인다.
: 외부로 부터 제어신호가 발생했다면 어떤 신호인지 제어장치가 받아들이게 됨.


- 제어장치가 내보내는 정보는 제어 신호를 내보낸다.
cpu 내부에 전달하는 제어 신호(레지스터,  ALU가 보내는)와 외부에 전달하는 제어신호(메모리, 입출력장치가 보내는)로 나뉨.

 

728x90

+ Recent posts