CPU 내부에는 여러 가지 부품들이 있지만 크게 ALU, 제어장치 그리고 여러 개의 레지스터로 이루어져 있다. ALU는 그중에서도 계산하는 장치고, 제어 장치는 제어신호를 발생시키고 명령어를 해석하는 장치다. 앞으로 ALU가 내보내고 받아들이는 정보는 무엇인지 제어 장치가 내보내고 받아들이는 정보는 무엇인지에 대해서 알아볼 것.
ALU
- ALU는 CPU 내부에 있는 계산을 위한 계산기 같은 회로
- 레지스터로부터 피연산자를, 제어 장치로부터 제어 신호를 받아들인다. → 계산에 필요한 정보들
- ALU는 이렇게 받아들인 피연산자와 제어 신호를 바탕으로 연산을 수행한다.
- 연산의 결과값은 숫자가 될 수도 있고, 문자가 될 수도 있고, 주소가 될 수도 있다. 0과 1로 표현된 컴퓨터가 이해할 수 있는 정보라고 보면 된다.
- 그 결과값을 레지스터에 담는다.
- 왜 메모리가 아닌 레지스터에? CPU가 레지스터에 접근하는 속도가 메모리에 접근하는 속도보다 빠르기 때문이다.
이렇게 피연산자와 제어 신호를 바탕으로 계산된 결과값을 레지스터에 담는 것이 ALU가 내보내는 정보 중에 하나라고 보면 된다. ALU가 내보내는 또 다른 정보 중에서는 플래그가 있다.
ALU 내보내지는 정보 - 플래그(flag)
이전에 0과 1로 숫자를 표현하는 방법에서 2진수를 음수로 표현하는 방법 중에서 이 음수와 양수는 어떻게 구분하는지에 대해 CPU 내부에서 플래그라고 하는 값으로서 구분된다라고 했다. CPU가 연산한 결과의 부가 정보로서 이 결과값이 양수인지 음수인지가 결과값과 더불어서 내보내진다. 그리고 이렇게 내보내진 정보는 플래그 레지스터라는 특수한 레지스터에 저장이 된다.
ALU 내보내지는 정보 - 플래그의 종류
제어 장치
제어장치가 받아들이는 정보 - 클럭(clock)
- 제어장치가 받아들이는 정보 중 하나는 클럭이다.
- CPU의 클럭(clock)은 컴퓨터의 프로세서가 연산을 수행하는 속도를 결정하는 중요한 요소로 주로 클럭 사이클이라고도 불리우는데, 이는 프로세서 내의 특정한 일련의 동작들이 실행되는 기본 단위의 시간을 의미한다.
- 즉, 컴퓨터의 모든 부품들을 일사분란하게 움직일 수 있게 하는 시간 단위
- 클럭 속도는 초당 클럭 사이클의 수를 의미하며, 주로 헤르츠(Hz) 단위로 측정된다. 예를 들어, 3GHz(기가헤르츠) CPU는 초당 30억 사이클을 실행할 수 있다.
- 클럭 속도가 빠를수록 CPU는 더 많은 연산을 빠르게 수행할 수 있다. 그러나 클럭 속도만으로 전체적인 CPU의 성능을 판단할 수는 없다. 클럭 사이클 당 실행할 수 있는 명령어의 수, 코어의 수, 캐시 크기 등 다른 요소들도 중요하다.
제어장치가 받아들이는 정보 - 해석할 명령어
- 제어장치는 명령어 레지스터에 저장된 명령어를 받아들인다.
- 명령어 레지스터는 현재 CPU가 해석하고 실행해야 할 명령어를 담고 있다.
- 제어장치는 명령어 레지스터에 저장된 명령어를 해석하여 어떤 작업을 수행할지 결정한다.
- 명령어에는 연산 코드(Op Code)와 오퍼랜드(Operand)가 포함되어 있으며, 이를 통해 수행할 연산과 사용할 데이터를 알 수 있다.
제어장치가 받아들이는 정보 - 플래그 값
- 플래그 레지스터에는 CPU의 최근 연산 결과에 대한 부가적인 정보(상태 플래그)가 저장된다.
- 이 정보는 연산 결과가 0인지, 양수인지, 음수인지, 오버플로우가 발생했는지 등을 나타낸다.
- 제어장치는 이러한 플래그 값을 참고하여 조건부 명령어의 실행 여부를 결정하거나, 프로그램의 흐름을 제어한다.
그 외
- CPU 외부의 장치나 내부 이벤트로부터 발생하는 인터럽트 신호도 받아들일 수 있다.
- 인터럽트는 현재 실행 중인 프로세스를 중단하고 긴급하게 처리해야 할 사항(예: 입력 장치로부터의 데이터 수신)에 CPU가 응답할 수 있도록 한다.
제어장치가 내보내는 제어 신호
- CPU 내부 제어 신호
- 레지스터 간의 데이터 이동, 특정 레지스터에 값을 저장하는 등의 작업을 지시한다.
- ALU(산술 논리 장치)에 특정 연산을 수행하라는 신호를 보낸다. 이 신호는 ALU가 수행해야 할 연산의 유형을 결정한다.
- CPU 외부 제어 신호
- 메모리 제어 신호: 메모리로부터 데이터를 읽거나 메모리에 데이터를 쓰는 작업을 지시한다.
- 입출력(I/O) 제어 신호: 입출력 장치와의 데이터 교환을 관리하고, 입출력 작업을 지시한다.
'컴퓨터구조와 운영체제' 카테고리의 다른 글
9. 명령어 사이클과 인터럽트 (0) | 2023.11.09 |
---|---|
8. CPU의 내부 구성 - 레지스터 (0) | 2023.11.07 |
6. 명령어의 구조와 주소 지정 방식 (0) | 2023.11.06 |
5. 소스 코드와 명령어 (0) | 2023.11.06 |
4. 0과 1로 문자를 표현하는 방법 (0) | 2023.11.03 |