Computer Science
[Computer Science] CPU : ALU와 제어장치
WebDevLee
2024. 5. 9. 21:04
CPU를 구성하는 여러가지 부품 중 ALU와 제어장치에 대하여 정리하였습니다.
참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'

< ALU >

1. 계산을 하기 위해서는 피연산자(from. 레지스터)와 수행할 연산(from. 제어장치)이 필요
2. 계산의 결괏값을 레지스터에 저장(숫자, 문자, 주소 등..)
+. 메모리보다 레지스터에 접근하는 게 더 빠르기 때문에 레지스터에 저장합니다.
3. 연산 결과에 대한 부가 정보를 플래그 레지스터라는 특수한 레지스터에 저장
(연산 결과가 음수이다, 연산 결과가 레지스터에 비해 너무 크다=오버플로우 등..)
플래그 레지스터 종류 :
플래그 종류 | 의미 | 사용 예시 |
부호 플래그 | 연산한 결과의 부호를 나타낸다. | 부호 플래그가 1일 경우 계산 결과는 음수, 0일 경우 계산 결과는 양수를 의미한다. |
제로 플래그 | 연산 결과가 0인지 여부를 나타낸다. | 제로 플래그가 1일 경우 연산 결과는 0, 0일 경우 결과는 0이 아님을 의미한다. |
캐리 플래그 | 연산 결과 올림수가 빌림수가 발생했는지를 나타낸다. | 캐리 플래그가 1일 경우 올림수나 빌림수가 발생했음을 의미하고, 0일 경우 발생하지 않았음을 의미한다. |
오버플로우 플래그 | 오버플로우가 발생했는지를 나타낸다. | 오버플로우 플래그가 1일 경우 오버플로우가 발생했음을 의미하고, 0일 경우 발생하지 않았음을 의미한다. |
인터럽트 플래그 | 인터럽트가 가능한지를 나타낸다. | 인터럽트 플래그가 1일 경우 인터럽트가 가능함을 의미하고, 0일 경우 인터럽트가 불가능함을 의미한다. |
슈퍼바이저 플래그 | 커널 모드로 실행 중인지, 사용자 모드로 실행 중인지를 나타낸다. | 슈퍼바이저 플래그가 1일 경우 커널 모드로 실행 중임을 의미하고, 0일 경우 사용자 모드로 실행 중임을 의미한다. |
< 제어장치 >

[ 받아들이는 정보 ]
1. 클럭신호 확인

클럭 : 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
2. 해석할 명령어(from.명령어 레지스터) 확인
3. 그 외 부가적인 정보(from.플래그 레지스터) 확인
4. 외부로부터 제어 신호 확인
+. 입출력 장치를 비롯한 주변장치들도 제어신호를 발생시킬 수 있습니다.
[ 내보내는 정보 ]
1. 레지스터 : CPU 내부에 전달
(어떤 정보를 저장해라, 어떤 값을 저장해라, 어떤 행동을 해라 등)
2. ALU : CPU 내부에 전달
(어떤 연산을 수행해라)
3. 메모 : CPU 외부에 전달
(메모리를 읽어라, 메모리에 써라 등)
4. 입출력 장치 : CPU 외부에 전달
(입출력장치를 써라, 입출력장치를 테스트해라 등)