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
반응형
'컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 ) 코어 & 멀티 코어, 스레드 & 멀티 스레드란 무엇인가? (0) | 2024.02.07 |
---|---|
컴퓨터 구조 ) 레지스터, 명령어 사이클, 인터럽트에 대해 알아보자. (0) | 2024.02.07 |
컴퓨터 구조 ) 명령어의 구조에 대해 알아보자. (0) | 2024.01.25 |
컴퓨터 구조 ) 고급 언어와 저급 언어, 컴파일 언어와 인터프리트 언어란?? (0) | 2024.01.25 |
컴퓨터 구조 ) 문자 집합과 인코딩에 대해 알아보자. (0) | 2024.01.25 |