ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

CPU

도입
사람의 뇌입니다.

개발자가 작성한 높은 수준의 코드는 결국 PC가 다음 주소를 가리키고, MAR과 MBR을 통해 데이터가 오가며, ALU가 연산하는 과정의 무수한 반복입니다. 이 하부 구조를 이해할 때, 비로소 '코드의 성능'과 '메모리 효율'에 대한 진정한 고민이 시작될 수 있습니다.

정의
명령어를 해석하고 실행하여 데이터를 처리하는 컴퓨터의 연산 장치입니다.

프로그램은 결국 “명령어(instruction)”의 집합이고, CPU는 이 명령어를 순서대로 실행합니다.

실행 과정에서 CPU는 메모리(RAM)에서 데이터를 읽고, 계산하고, 결과를 다시 저장합니다.

즉, 명령어가 “무엇을 할지”를 결정하고, 데이터는 그 명령어가 처리하는 재료가 됩니다.

핵심 메시지

“CPU는 명령어(Instruction)를 실행하며,
레지스터 ↔ 캐시 ↔ 메모리 계층을 통해 데이터를 빠르게 처리한다.”

- 빠른 계산은 ‘연산’보다 ‘데이터 이동’에서 갈린다 -

구성 요소
논리적으로 크게 세가지 모듈로 구분됩니다.
 

레지스터(Register)

ComputerScience 프로그램 카운터 (PC, Program Counter) 다음에 실행할 명령어의 “주소”를 가리키는 레지스터 PC는 메모리에서 다음으로 가져올(=fetch) 명령어의 위치를 가리킵니다. CPU가 한 번의 명령을

develop-enchantment.tistory.com

 

실행 흐름
정해진 사이클로 명령어를 처리하니 메커니즘을 이해해야 합니다.

전문 용어
ISA(Instruction Set Architecture)는 CPU가 이해하는 “명령어의 규격”입니다.

소프트웨어는 ISA를 기준으로 컴파일/실행됩니다. 예를 들어 x86-64ARM64는 ISA가 달라 동일 바이너리가 그대로 실행되지 않습니다. (그래서 “같은 소스코드”라도 다른 아키텍처에서는 다시 빌드가 필요합니다.)

성능의 핵심
“연산 속도”보다 데이터를 얼마나 빨리 가져오느냐에 크게 좌우됩니다.

메모리는 CPU보다 느리기 때문에, CPU는 자주 쓰는 데이터를 가까운 곳에 두는 캐시(Cache: L1/L2/L3)를 사용합니다.

또 여러 명령어를 겹쳐 처리하는 파이프라인(Pipeline), 분기 실패를 줄이기 위한 분기 예측(Branch Prediction) 같은 기법으로 효율을 높입니다.

기술 한 줄 왜 중요한가
Cache 가까운 저장소 메모리 대기 시간을 줄여 CPU가 놀지 않게 함(캐시 미스가 성능 병목)
Pipeline 겹쳐 실행 Fetch/Decode/Execute를 겹쳐 처리해 처리량(Throughput)을 높임
Branch Prediction 분기 미리 예측 실패하면 파이프라인이 비워져 큰 손해(조건문/루프가 많은 코드에서 영향)

💡 TIP / 참고사항

“CPU가 빠른데 왜 느리지?”의 답은 보통 캐시 미스, 메모리 대기, I/O 대기 중 하나입니다. 백엔드에서 p95 지연이 튀는 경우, CPU 연산 자체보다 GC/락 경합/디스크·네트워크가 더 큰 병목일 때가 많습니다.

멀티태스킹
운영체제는 컨텍스트 스위칭으로 여러 작업을 번갈아 CPU에 태웁니다.

CPU 코어는 동시에 하나의 흐름만 실행할 수 있으므로(단순화해서), 여러 프로세스/스레드를 번갈아 실행합니다. 이때 레지스터 값/프로그램 카운터/스택 포인터 같은 “상태”를 저장·복구하는 과정이 컨텍스트 스위칭이며, 잦으면 오버헤드가 커집니다.

✅ 핵심 요약
  • ✔️ CPU는 명령어를 해석·실행하며 데이터를 처리하는 연산 장치다.
  • ✔️ 핵심 구성은 ALU(연산), 제어 유닛(흐름), 레지스터(초고속 저장)다.
  • ✔️ CPU는 Fetch → Decode → Execute 사이클로 명령어를 처리한다.
  • ✔️ 성능은 캐시/파이프라인/분기예측 같은 “효율”과 데이터 이동에 크게 좌우된다.
  • ✔️ 멀티태스킹은 OS가 컨텍스트 스위칭으로 CPU 시간을 분배해 구현한다(잦으면 오버헤드).
728x90