TIL

CPU란? (기초)

추운날_너를_기다리며 2024. 10. 10. 09:02

CPU(Central Processing Unit)는 컴퓨터의 핵심 연산 장치로, 모든 계산과 명령 처리를 담당하는 "컴퓨터의 두뇌"라고 할 수 있습니다. CPU는 프로그램에서 요청하는 명령을 받아 해석하고, 필요한 연산을 수행하며, 결과를 출력하는 과정을 반복합니다.

CPU는 크게 다음과 같은 세부 장치들로 구성됩니다:

  1. 연산 장치(ALU, Arithmetic Logic Unit):
    • 산술 연산(덧셈, 뺄셈 등)과 논리 연산(AND, OR, NOT 등)을 수행하는 장치입니다.
    • 데이터를 처리하고 계산하는 핵심 역할을 담당합니다.
  2. 제어 장치(CU, Control Unit):
    • 프로그램 명령을 해석하고, CPU 내 각 구성 요소와 메모리 사이의 데이터 흐름을 제어합니다.
    • 명령어를 읽고, 이를 해석한 후, ALU나 레지스터 등이 어떤 동작을 수행할지 결정합니다.
  3. 레지스터(Register):
    • CPU 내부에서 데이터를 임시로 저장하는 고속 메모리입니다.
    • 연산에 필요한 데이터를 보관하거나, 명령어 실행 중간에 필요한 정보를 저장하는 역할을 합니다.
    • 대표적으로 누산기(Accumulator), 명령어 레지스터(IR), 프로그램 카운터(PC) 등이 있습니다.
  4. 캐시(Cache):
    • CPU와 메인 메모리(RAM) 사이의 속도 차이를 줄이기 위해 사용되는 작은 고속 메모리입니다.
    • 자주 사용되는 데이터를 캐시에 저장하여 CPU가 메모리에 직접 접근하는 시간을 단축시킵니다.
    • L1, L2, L3 캐시로 구분되며, L1 캐시가 가장 빠르지만 용량이 적고, L3 캐시는 용량이 크지만 상대적으로 속도가 느립니다.

이 외에도 CPU의 동작은 클럭 속도(Clock Speed)에 의해 결정됩니다. 클럭 속도는 초당 처리할 수 있는 명령어의 수를 나타내며, 보통 기가헤르츠(GHz) 단위로 표시됩니다. 높은 클럭 속도는 더 많은 명령어를 더 빨리 처리할 수 있음을 의미하지만, 전력 소비와 발열 문제가 발생할 수 있습니다.

이러한 구성 요소들이 함께 작동하여, CPU는 프로그램의 명령을 실행하고 데이터를 처리하는 기능을 수행합니다.

 

CPU 예시: 계산기 프로그램 실행 과정

 

예를 들어, 계산기 프로그램에서 2 + 3이라는 명령을 수행한다고 가정해보겠습니다.

  1. 제어 장치(CU)가 계산기 프로그램의 명령어(2 + 3)를 읽어 옵니다.
    • 이 단계에서 제어 장치는 프로그램 카운터(PC)를 사용해 다음에 실행할 명령어의 위치를 추적합니다.
    • 명령어가 메모리에서 로드되면 명령어 레지스터(IR)에 저장되어 실행을 준비합니다.
  2. 제어 장치(CU)는 명령어를 해석하고, 연산 장치(ALU)에게 덧셈 연산을 수행하라는 신호를 보냅니다.
    • 이때, 23이라는 값은 레지스터(Register)에 저장되어 ALU로 전달됩니다.
    • 예를 들어, A 레지스터에 2, B 레지스터에 3이 저장될 수 있습니다.
  3. 연산 장치(ALU)는 A 레지스터와 B 레지스터의 값을 읽어 2 + 3 연산을 수행하고, 그 결과 5를 계산합니다.
  4. 계산된 결과 5는 다시 레지스터에 저장되며, 이후 필요한 경우 메모리(RAM)로 이동하거나 다른 명령어에 사용될 수 있습니다.
  5. 이 과정에서, 자주 사용하는 연산 결과나 명령어는 캐시(Cache)에 저장됩니다.
    • 예를 들어, 2 + 3과 같은 간단한 계산이 반복될 경우, CPU는 캐시에 저장된 결과를 빠르게 가져올 수 있습니다. 이렇게 하면 메모리에 다시 접근하는 시간을 줄일 수 있습니다.
  6. 최종적으로, 프로그램은 계산 결과 5를 화면에 출력합니다.

각 구성 요소의 역할 요약:

  • 제어 장치(CU): "2 + 3"이라는 명령을 받아 어떤 연산을 수행해야 하는지 연산 장치(ALU)에 지시합니다.
  • 연산 장치(ALU): 덧셈 연산을 수행하여 결과를 계산합니다.
  • 레지스터(Register): 계산할 값과 계산 결과를 일시적으로 저장합니다.
  • 캐시(Cache): 자주 쓰이는 데이터를 저장하여 계산 속도를 높입니다.

이처럼 CPU는 다양한 구성 요소가 협력하여 명령어를 처리하고 연산을 수행합니다. CPU의 역할은 단순한 덧셈 연산뿐 아니라, 복잡한 프로그램 로직과 데이터를 처리하는 데까지 확장됩니다.