학습 목표
- ALU와 제어장치에 대해 학습한다.
- 레지스터의 종류와 역할에 대해 학습한다.
- 명령어 사이클을 이해한다.
- 인터럽트의 개념을 이해한다.
핵심 키워드 :
ALU
플래그
제어장치
제어 신호
CPU 내부에는 계산을 담당하는 ALU, 명령어를 읽어 들이고 해석하는 제어장치, 작은 임시 저장 장치인 레지스터라는 구성요소가 있다.
ALU는 계산하는 장치로 계산기와 유사하다고 생각하면 된다.
ALU는 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들인다.
ALU가 내보내는 정보(반환하는 값)
연산한 결괏값
플래그(⭐️⭐️⭐️⭐️⭐️)
플래그 종류 | 의미 | 사용 예시 |
---|---|---|
부호 플래그 | 연산한 결과의 부호를 나타낸다. | 부호 플래그가 1일 경우 계산 결과는 음수, 0일 경우 계산 결과는 양수를 의미한다. |
제로 플래그 | 연산 결과가 0인지 여부를 나타낸다. | 제로 플래그가 1일 경우 연산 결과는 0, 0일 경우 연산 결과는 0이 아님을 의미한다. |
캐리 플래그 | 연산 결과 올림수나 빌림수가 발생했는지를 나타낸다. | 캐리 플래그가 1일 경우 올림수나 빌림수가 발생했음을 의미하고, 0일 경우 발생하지 않았음을 의미한다. |
오버플로우 플래그 | 오버플로우가 발생했는지를 나타낸다. | 오버플로우 플래그가 1일 경우 오버플로우가 발생했음을 의미하고, 0일 경우 발생하지 않았음을 의미한다. |
인터럽트 플래그 | 인터럽트가 가능한지를 나타낸다. | 인터럽트 플래그가 1일 경우 인터럽트가 가능함을 의미하고, 0일 경우 인터럽트가 불가능함을 의미한다. |
슈퍼바이저 플래그 | 커널 모드로 실행 중인지, 사용자 모드로 실행 중인지를 나타낸다. | 슈퍼바이저 플래그가 1일 경우 커널 모드로 실행 중임을 의미하고, 0일 경우 사용자 모드로 실행 중임을 의미한다. |
💡) ALU 결괏값을 레지스터에 일시적으로 저장하는 이유?
CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 훨씬 느리다. ALU마다 결과를 메모리에 저장한다면, 당연하게도 CPU는 메모리에 자주 접근하게 되고, 이는 CPU가 프로그램 실행 속도를 늦출 수 있다. 그래서 ALU의 결과값을 메모리가 아닌 레지스터에 우선 저장한다.
💡) 오버플로우(overflow)
연산 결과가 연산 결과를 담을 레지스터보다 큰 상황을 말한다.
제어장치는 제어 신호를 내보내고, 명령어를 해석하는 부품이다. 제어신호는 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호다.
CPU내부에 전달하는 제어 신호
CPU 외부에 전달하는 제어 신호
* 뒷 내용이 너무너무 이해가 안되어서... 내일 강의 다시 듣고 정리 예정 / 레지스터가 하는 일이 너무 많아요...!!!!!