' CPU ' 는 Central Processing Unit (중앙 처리 장치) 의 약어로, Input device (입력 장치)로 부터 데이터를 받아서 Memory Unit (기억장치) 와 연계하여 처리하고 Output device (출력 장치)로 내보내는 모든 과정을 연산하고 제어하는 장치입니다.
오늘은 이러한 CPU 가 어떻게 구성되어 있고, 또 어떻게 작동하는지에 대해서 알아보도록 하겠습니다.
CPU 의 구성
CPU 는 크게 Control Unit (제어 장치) 와 Arithmetic Logic Unit (산술 논리 연산 장치), Memory Unit (기억 장치)으로 구성됩니다.
Control Unit 은 프로그램의 명령을 차례대로 실행하기 위해 명령어를 해독하여 Arithmetic Logic Unit , Memory Unit , In/Out put Device 에 제어신호를 보내고, 또 이들 장치로부터 처리된 신호를 받아 다음 작업을 진행하는, 모든 과정을 총괄하여 제어하는 장치입니다.

Arithmetic Logic Unit 은 데이터를 처리하고 계산하는 장치로, 전달된 명령어에 맞는 ' 산술 연산 '과 ' 논리 연산 '을 수행합니다.

Memory Unit 은 컴퓨터에서 사용하는 프로그램과 처리할 데이터 및 처리한 결과 등을 저장하는 장치로,
엄밀히 하자면 용도와 용량, 속도에 따라 다양하게 구분됩니다.
하지만 여기서 말하는 Memory Unit 은 Main Memory (주기억 장치) 와는 구분되어야 합니다.
본문의 Memory Unit 은 Processor(CPU) 내부에 위치한 저장공간으로, 처리중인 명령이나 중간 결과값과 같이 바로 사용할 수 있는 소량의 데이터를 빠르게 접근하기 위한 고속의 기억 장치를 의미합니다.

보통 Register 를 의미하며 컴퓨터의 구조에 따라 Cache Memory 가 포함되기도 합니다.
Register는 연산에 필요한 다양한 용도에 맞춰 또 다시 여러 종류로 나누어지는데요,
크게는 특정 기능만을 담당하여 수행하는 ' 특수목적 Register ' 와 저장, 연산, 색인 등 다양한 목적으로 사용되는 ' 범용 Register ' 로 구분됩니다.
CPU 내에는 각각의 특수목적 Register 와 여러개의 범용 Register 가 존재합니다.
통상 컴퓨터의 성능을 비교할 때 사용되는 32비트, 64비트 라고 하는 것은 CPU 가 한번에 처리할 수 있는 데이터의 크기를 의미합니다.
그리고 그 크기는 Register 의 크기와 밀접하게 연관되어 있습니다.
CPU 는 연산에 필요한 데이터를 Register 에 담아서 인식하고 처리하기 때문에, 한번에 Register 에 담을 수 있는 데이터의 양이 곧 한번에 인식/처리가 가능한 데이터의 크기가 되는 것이죠.
어떤가요? 이제 CPU 의 전체적인 구성이 조금은 그려지시나요?
참고로 이렇게 연결된 각 부품들이 신호를 주고 받으며 통신할 수 있도록 이어진 통로를 System Bus 라고 합니다.
이 Bus 에 대해서는 다음에 좀 더 자세히 다루도록 하겠습니다.

그리고 이러한 CPU 의 모든 기능들을 하나의 집적 회로 칩에 구현한 것을 Microprocessor (마이크로프로세서) 라고 합니다.
Microprocessor 는 CPU 를 구현하는 하나의 방식인 것이죠.
CPU 의 작동
그렇다면 이번에는 CPU 가 어떻게 작동하는지에 대해 알아보겠습니다.
CPU 의 기본적인 동작을 설명할 때는 보통 4가지의 단계로 그 과정을 나누는데요.
바로 Fetch(인출), Decode(해독), Execute(실행), Writeback(저장) 이 그것입니다.
그럼 ' 1과 2 를 더해서 출력하라는 프로그램 '이 있다고 가정하고,
작동 과정을 한 단계씩 따라가보면서 CPU의 작동을 이해해보도록 하겠습니다.
1. Fetch (인출)
Control Unit 은 제어 신호를 보내 Main memory 에서 다음 실행할 명령어를 꺼내와 CPU 내의 Register 에 담아둡니다.

2. Decode (해독)
Control Unit 은 CPU 내부로 가져온 명령어를 해독하여 실행할 동작이나 작업을 결정합니다.
이 단계에서 명령어의 형식과 의미를 이해하고 필요한 조치를 취합니다.

3. Execute (실행)
해독된 명령어가 실행됩니다. 이 단계에서는 명령어에 따라 산술 연산, 논리 연산, 메모리 접근 등이 수행됩니다.
해당 예시에서는
1. Control Unit 이 Main memory 에 '더하기 연산'과 '숫자 데이터 1, 2' 가 필요하다고 제어 신호를 보냅니다.
2. Main memory 에서 필요한 데이터를 꺼내와 Register 에 담아둡니다.
3. Arithmetic Logic Unit 이 Register 에 접근해 필요한 데이터를 가져오고 연산을 수행합니다.

4. Writeback (저장)
실행된 명령어에 따라 결과를 적절한 Memory 위치에 기록 합니다.
해당 예시의 경우, Arithmetic Logic Unit 이 실행된 명령어의 결과를 Register 담고 이를 Main memory 로 내보냅니다.

이렇게 CPU 의 기본 동작들을 살펴 보았는데요.
이러한 4단계의 과정을 포함해 하나의 명령어를 실행하는데 필요한 모든 과정을 Cycle 이라고 합니다.
Cycle 이 CPU 의 동작을 나타내는 기본 단위인 것이죠.
추가로 CPU 의 동작을 조금더 엄밀히 말하자면,
CPU 는 위의 각 단계마저도 세분화하여 작업을 진행하고 이렇게 분리된 각각의 Process 를 Thread 라고 합니다.
또한 Processor(CPU) 의 구성이나 Architecture 는 제작사마다 다양한 형태가 존재하고 현재도 진화를 거듭하고 있습니다.
작성 전 학습/참고한 자료
CPU란?- 중앙 처리 장치 설명 - AWS (amazon.com)
'Computer Science' 카테고리의 다른 글
| RAM 세부적인 이해를 위한 간단한 그림 (0) | 2024.03.20 |
|---|---|
| Memory unit 이해를 위한 간단한 그림 (0) | 2024.03.18 |
| 계산 복잡도 이론 이해를 위한 간단한 그림 (0) | 2024.03.11 |
| 자료구조로써의 Hash (해시) 개념 이해를 위한 간단한 그림 (0) | 2024.02.29 |
| 해시 Hash 개념 이해를 위한 간단한 그림 (1) | 2024.02.27 |