
CPU는 컴퓨터의 두뇌 역할을 하는 핵심 부품으로, 모든 계산과 데이터 처리를 담당합니다.
CPU는 "Central Processing Unit"의 줄임말로, 컴퓨터의 명령어를 해석하고 실행하는 장치입니다. 프로그램의 명령어를 처리하여 데이터를 계산하고, 그 결과를 메모리나 외부 장치로 전송하는 역할을 합니다. CPU의 성능은 전체 시스템 성능에 큰 영향을 미치며, 주로 클럭 속도(Hz), 코어 수, 캐시 메모리 용량 등으로 평가됩니다.
CPU는 여러 세부 장치로 구성되어 있으며, 각 장치는 특정 기능을 수행합니다.
ALU는 기본적인 산술 연산과 논리 연산을 수행하는 장치입니다.
두 개의 입력값을 받아 연산을 수행하고 결과를 출력합니다. 덧셈, 뺄셈, 곱셈, 나눗셈 등의 산술 연산과 AND, OR, NOT 등의 논리 연산을 처리합니다. 또한 비트 시프트 연산이나 비교 연산 같은 복잡한 계산도 효율적으로 수행할 수 있습니다.
CU는 CPU의 모든 구성 요소를 제어하고 조정하는 역할을 합니다.
명령어를 해석하고, 해당 명령어를 수행하기 위해 ALU와 레지스터에 신호를 보냅니다. 프로그램 카운터를 사용해 다음에 실행할 명령어의 주소를 관리하며, 이를 통해 프로그램의 흐름을 제어합니다. 명령어 종류에 따라 필요한 데이터를 메모리에서 가져오거나 ALU에 전달하는 등의 작업을 수행합니다.
레지스터는 CPU 내부에 위치한 고속 저장 장치로, CPU가 즉시 필요한 데이터를 저장합니다. 매우 빠른 접근 속도를 가져 CPU 성능에 큰 영향을 미칩니다. 다양한 종류의 레지스터가 있으며, 각각 다른 역할을 수행합니다.
범용 레지스터
데이터 연산을 위한 기본적인 저장 공간으로, 주로 연산에 필요한 데이터를 임시로 저장합니다.
대표적으로 AX, BX, CX, DX 레지스터가 있습니다.
프로그램 카운터 (PC)
다음에 실행할 명령어의 주소를 저장하는 레지스터로, 프로그램이 순차적으로 실행될 수 있도록 제어하는 역할을 합니다.
메모리 주소 레지스터
메모리 주소를 저장하는 역할을 합니다. 주로 다음에 접근할 데이터나 명령어의 주소를 저장하며, 스택 포인터(SP)나 베이스 포인터(BP) 등이 여기에 해당합니다.
명령어 레지스터 (IR)
현재 실행 중인 명령어를 저장하는 레지스터로, CU가 이 명령어를 해석하는 데 사용합니다.
플래그 레지스터
CPU의 상태를 나타내는 비트들을 저장하는 레지스터입니다. 연산 결과에 따라 설정되는 플래그(예: 제로 플래그, 캐리 플래그 등)는 조건 분기 명령어의 실행 여부를 결정하는 데 중요한 역할을 합니다.
캐시는 CPU와 메모리 간의 속도 차이를 줄이기 위해 사용되는 고속 메모리입니다.
자주 사용하는 데이터와 명령어를 저장하여 CPU의 처리 속도를 향상시킵니다.
L1, L2, L3 레벨로 구분되며, L1 캐시는 CPU 내부에 위치해 가장 빠른 속도를 자랑하고, L2와 L3 캐시는 CPU와 메모리 간의 데이터 전송을 지원합니다.
버스는 CPU와 다른 부품 간의 데이터 전송을 담당하는 통로입니다.
데이터 버스, 주소 버스, 제어 버스 등 여러 종류가 있으며, 이들은 CPU와 메모리, 입출력 장치 간의 원활한 데이터 흐름을 보장합니다. 데이터 버스는 실제 데이터가 전송되는 경로로, 버스의 폭이 넓을수록 동시에 전송할 수 있는 데이터의 양이 많아져 성능이 향상됩니다.
CPU는 '페치-디코드-엑스큐트(Fetch-Decode-Execute)' 사이클을 반복하며 작동합니다.
페치(Fetch)
프로그램 카운터(PC)가 가리키는 메모리 주소에서 명령어를 가져와 명령어 레지스터(IR)에 저장합니다.
디코드(Decode)
CU가 명령어를 해석하고 필요한 오퍼랜드를 결정합니다.
이 과정에서 ALU와 레지스터에 필요한 신호를 전송하고, 명령어 종류에 따라 ALU가 사용할 데이터의 위치를 확인하며 필요한 데이터를 레지스터에서 가져옵니다.
엑스큐트(Execute)
ALU가 연산을 수행하고 결과를 레지스터에 저장하거나 메모리에 기록합니다.
이후 프로그램 카운터를 업데이트하여 다음 명령어를 준비합니다.
이 사이클은 CPU가 프로그램을 실행하는 기본적인 방식이며, 이를 통해 프로그램이 순차적으로 실행됩니다.