(CS 지식) CPU란?

MOON·2024년 10월 9일

CS지식

목록 보기
8/11

CPU의 개념과 세부 장치들에 대한 설명이 포함되면 좋을 것 같아요

CPU란?

Central Processing Unit의 약자로 CPU 직역하면 중앙처리장치 라고 불리며 말그대로 컴퓨터의 중심으로 모든 데이터를 처리하는 장치입니다. 컴퓨터의 두뇌같은 역할이라고 생각하시면 좋을 것 같습니다. CPU는 사용자가 입력한 명령을 해석하고, 데이터를 연산하며, 결과를 출력하거나 다른 장치에 전달합니다.

CPU의 주요 구성 요소 (세부 장치)

CPU의 구성요소로 몇가지 세부 장치가 있습니다.

연산 장치(ALU, Arithmetic Logic Unit)

ALU는 산술 연산(덧셈, 뺄셈 등)과 논리 연산(AND, OR 등)을 수행하는 역할을 합니다. 즉, 데이터를 실제로 계산하고 비교하는 작업을 수행하여 프로그램이 의도한 작업을 실행합니다.

제어 장치(CU, Control Unit)

제어 장치는 프로그램의 명령을 해석하고 각 장치(메모리, 입출력 장치 등)와 CPU의 다른 구성 요소들이 어떻게 동작해야 하는지 제어합니다. 예를 들어, 연산 장치가 언제 어떤 데이터를 처리할지 지시하는 역할을 합니다.

레지스터(Register)

레지스터는 CPU 내부의 작은 저장 장치로, 매우 빠른 속도로 데이터를 저장하고 전달합니다. 프로그램이 실행되는 동안 임시 데이터를 저장하거나, 계산을 위한 피연산자 값을 저장하는 데 사용됩니다. 종류로는 명령 레지스터, 데이터 레지스터 등이 있습니다.

캐시 메모리(Cache Memory)

캐시는 CPU와 메모리 간의 속도 차이를 줄이기 위해 사용되는 고속 메모리입니다. 자주 사용되는 데이터나 명령을 임시로 저장하여 CPU가 더 빠르게 접근할 수 있도록 합니다. L1, L2, L3 캐시가 있으며, L1은 가장 작고 빠르며 L3는 상대적으로 크고 느립니다.

CPU의 동작 원리

  • 명령어 인출(Fetch): CPU는 메모리에서 실행할 명령어를 가져옵니다.
  • 명령어 해석(Decode): 가져온 명령어를 해석하고, 어떤 작업을 수행할지 결정합니다.
  • 명령어 실행(Execute): 해석된 명령어를 실제로 실행하여 연산하거나, 데이터를 이동하는 작업을 수행합니다.
  • 결과 저장(Write Back): 연산 결과를 레지스터나 메모리에 저장하고, 필요 시 다음 명령어를 가져옵니다.

예시
만약 계산을 해야되는 일이 있다면 5 + 3을 한다면을 예시로 들어 보겠습니다.
1. 명령어 인출(Fetch) - 메모리에서 5 + 3 을 계산하라는 명령어를 가져옵니다.
2. 명령어 해석(Decode) - cpu는 가져온 명령어를 해석하여 어떻게 작업을 할지 정합니다.
- 해석한 명령어는 연산장치(ALU)로 보내집니다.
- 해석내용 : "5와 3을 더하라" 아마 이런 느낌일 겁니다.
3. 명령어 실행(Execute) - 여기서 연산장치(ALU)는 명령어에 따라 실행하여 결과 5 + 3 = 8이 생성됩니다.
4. 결과 저장(Write Back) - 8을 레지스터나 메모리에 저장하고, 필요 시 다음 명령어를 가져옵니다.

CPU의 작동 속도와 성능

CPU의 성능은 주로 다음과 같은 요소들에 의해 결정됩니다:

  • 클럭 속도(Clock Speed): CPU가 1초 동안 처리할 수 있는 명령어의 수를 의미하며, GHz(기가헤르츠)로 표시됩니다. 클럭 속도가 높을수록 CPU의 연산 속도가 빠릅니다.
  • 코어 수(Core): 하나의 CPU 안에 여러 개의 코어가 존재할 수 있으며, 각 코어는 독립적으로 작업을 처리할 수 있습니다. 듀얼 코어, 쿼드 코어, 헥사 코어 등으로 불립니다.
  • 스레드(Thread): 스레드는 CPU가 동시에 처리할 수 있는 작업의 단위를 말합니다. 멀티스레딩을 통해 여러 작업을 병렬로 수행할 수 있습니다.

저는 그래서 이걸 처음 찾아 보았을때 사람으로 비유한 사례가 있었습니다. 그래서 쉽게 비유하자면

  • 클럭 속도 = 한 사람이 일을 처리하는 속도
  • 코어 수 = 일하는 사람 수
  • 스레드 = 일하는 사람이 처리할 수 있는 양

이런식으로 비유하면 쉽게 이해할 수 있을 것 같습니다.

profile
개발해서 성공하자

0개의 댓글