나만의 작은 도서관
컴퓨터 구조 #1. CPU란 무엇인가? 본문
CPU란?
CPU는 Central Processing Unit의 약자로, "중앙 처리 장치"라는 의미를 갖고 있으며, 컴퓨터 시스템의 중심적인 구성 요소입니다. CPU는 컴퓨터 내의 모든 연산 및 제어 기능을 수행하거나, 다른 하드웨어 장치들과의 상호작용을 조율합니다. 이를 통해 컴퓨터는 사용자 명령을 처리하고 프로그램을 실행할 수 있습니다.
CPU의 기본 구성 요소
CPU의 기본 구성 요소는 크게 ALU, 레지스터, 제어 장치(또는 제어 유닛) 3가지로 이루어져 있습니다. 이 3가지는 CPU내부에 존재하는 버스를 통해 서로 데이터를 교환하며 연산을 처리하게 됩니다.
산술 논리 장치 또는 ALU (Arithmetic Logic Unit)
트랜지스터가 집적된 논리회로로 이루어진 장치입니다. 이름에서 볼 수 있듯 산술 및 논리 연산을 수행합니다.
덧셈, 뺄셈, 곱셈, 나눗셈과 같은 산술 연산과 논리적 AND, OR, NOT, XOR 연산 등을 처리합니다.
제어장치 또는 CU(Control Unit)
명령어를 해석하고, 이를 수행하기 위해 필요한 제어 신호를 생성하는 장치입니다.
시스템 내 다른 구성 요소와의 조정을 담당합니다.
레지스터 (Registers)
CPU 내의 초고속 메모리 저장소입니다. 컴퓨터 내에서 사용하는 메모리 종류 중 가장 용량이 작은 대신, 데이터 전송 속도가 가장 빠릅니다(메모리 계층구조에서 가장 위). 레지스터는 현재 작업 중인 데이터와 명령어를 임시로 저장합니다.
레지스터는 역할에 따른 여러 종류가 존재하게 되는데, 각 레지스터는 아래 표와 같습니다.
+) 참고로 메모리 계층구조는 속도가 빠르고 용량이 작을 수록 상단으로 향하는 피라미드 구조를 의미하는데, 아래와 같은 모습을 하고있다.
+)캐시 메모리 (Cache Memory)
SSD, HDD와 같은 메모리는 CPU관점에서 매우 느린 메모리 장치이기 때문에 RAM에 접근하여 데이터를 가져옵니다. 하지만 램도 CPU에 비하면 많이 느리기 때문에 CPU 내부나 근처에 용량이 작지만 빠른 캐시 메모리를 두고 이곳에서 데이터를 가져옵니다. 따라서, 캐시 메모리는 기본 구성 요소는 아니지만 그 역할이 매우 중요한 지라 오랫동안 사용되어 온 요소입니다.
캐시 안에서도 계층이 존재하게 됩니다. 가장 빠른 캐시는 L1, 그 다음으로는 L2, 최근 들어 L3까지 사용하고 있습니다. L1 캐시는 가장 속도가 빠른 캐시이지만 그만큼 용량도 가장 작습니다. 반대로 L3는 속도가 가장 느리고, 용량이 가장 큽니다. 그래서 L3 캐시는 Core에 존재하는 것이 아닌, Core외부, CPU 내부에 존재하여 Core들의 공유 메모리 역할을 하게됩니다.
CPU는 L1부터 순서대로 하는 데이터가 있는지 찾습니다. L1에 없으면 L2로, L2에 없으면 L3로, L3마저 없다면 RAM으로 가서 데이터를 찾게 됩니다. 만약 RAM에도 데이터가 없다면 최종 위치인 SSD, HDD에 접근하여 데이터를 가져옵니다.
명령어 집합과 작동 원리
명령어 집합 (Instruction Set)
- CPU는 특정 명령어 집합을 통해 작동합니다. 명령어 집합은 CPU가 이해하고 실행할 수 있는 모든 명령어의 집합을 의미합니다.
- 일반적으로, 명령어는 데이터를 처리하는 방법을 정의하고 있습니다. 예를 들어, 데이터를 더하거나 곱하거나 이동시키는 작업 등이 있습니다.
명령어 사이클(Instruction Cycle)
- 페치(Fetch): CPU는 명령어를 메모리에서 가져옵니다. 프로그램 카운터(PC)는 다음에 가져올 명령어의 주소를 가리킵니다.
- 디코드(Decode): 가져온 명령어를 해석합니다. 명령어의 의미를 파악하여 어떤 연산을 수행할지를 결정합니다.
- 실행(Execute): 명령어가 요구하는 연산을 수행합니다. 이 과정에서 ALU가 사용될 수 있습니다.
- 쓰기(Write-back): 연산 결과를 레지스터 또는 메모리에 저장합니다. 필요에 따라 결과를 출력 장치로 전달하기도 합니다.
참고하면 좋은 영상
https://www.youtube.com/watch?v=Fg00LN30Ezg
'Common > CS-일반' 카테고리의 다른 글
프레임워크란? (+라이브러리와의 차이점) (1) | 2024.11.26 |
---|---|
컴퓨터 구조 #2. 메모리(Memory) (0) | 2024.07.10 |