개발자가 작성한 높은 수준의 코드는 결국 PC가 다음 주소를 가리키고, MAR과 MBR을 통해 데이터가 오가며, ALU가 연산하는 과정의 무수한 반복입니다. 이 하부 구조를 이해할 때, 비로소 '코드의 성능'과 '메모리 효율'에 대한 진정한 고민이 시작될 수 있습니다.
프로그램은 결국 “명령어(instruction)”의 집합이고, CPU는 이 명령어를 순서대로 실행합니다.
실행 과정에서 CPU는 메모리(RAM)에서 데이터를 읽고, 계산하고, 결과를 다시 저장합니다.
즉, 명령어가 “무엇을 할지”를 결정하고, 데이터는 그 명령어가 처리하는 재료가 됩니다.
“CPU는 명령어(Instruction)를 실행하며,
레지스터 ↔ 캐시 ↔ 메모리 계층을 통해 데이터를 빠르게 처리한다.”
어디에서 연산하고(레지스터/ALU), 누가 흐름을 제어하며(제어 유닛), 데이터는 어디에서 오느냐(캐시/메모리)를 이해하는 게 중요합니다.
산술논리연산장치 (ALU)
CPU 정의CPU에서 0과 1로 세상을 계산하는 핵심 엔진입니다.실제로 덧셈, 뺄셈 같은 사칙연산이나 데이터 비교 같은 논리연산을 수행할 회로로 구성되어 있는 계산기입니다.작은 회로가 0과 1의 전
develop-enchantment.tistory.com
레지스터(Register)
ComputerScience 프로그램 카운터 (PC, Program Counter) 다음에 실행할 명령어의 “주소”를 가리키는 레지스터 PC는 메모리에서 다음으로 가져올(=fetch) 명령어의 위치를 가리킵니다. CPU가 한 번의 명령을
develop-enchantment.tistory.com
소프트웨어는 ISA를 기준으로 컴파일/실행됩니다. 예를 들어 x86-64와 ARM64는 ISA가 달라 동일 바이너리가 그대로 실행되지 않습니다. (그래서 “같은 소스코드”라도 다른 아키텍처에서는 다시 빌드가 필요합니다.)
메모리는 CPU보다 느리기 때문에, CPU는 자주 쓰는 데이터를 가까운 곳에 두는 캐시(Cache: L1/L2/L3)를 사용합니다.
또 여러 명령어를 겹쳐 처리하는 파이프라인(Pipeline), 분기 실패를 줄이기 위한 분기 예측(Branch Prediction) 같은 기법으로 효율을 높입니다.
💡 TIP / 참고사항
“CPU가 빠른데 왜 느리지?”의 답은 보통 캐시 미스, 메모리 대기, I/O 대기 중 하나입니다. 백엔드에서 p95 지연이 튀는 경우, CPU 연산 자체보다 GC/락 경합/디스크·네트워크가 더 큰 병목일 때가 많습니다.
CPU 코어는 동시에 하나의 흐름만 실행할 수 있으므로(단순화해서), 여러 프로세스/스레드를 번갈아 실행합니다. 이때 레지스터 값/프로그램 카운터/스택 포인터 같은 “상태”를 저장·복구하는 과정이 컨텍스트 스위칭이며, 잦으면 오버헤드가 커집니다.
- ✔️ CPU는 명령어를 해석·실행하며 데이터를 처리하는 연산 장치다.
- ✔️ 핵심 구성은 ALU(연산), 제어 유닛(흐름), 레지스터(초고속 저장)다.
- ✔️ CPU는 Fetch → Decode → Execute 사이클로 명령어를 처리한다.
- ✔️ 성능은 캐시/파이프라인/분기예측 같은 “효율”과 데이터 이동에 크게 좌우된다.
- ✔️ 멀티태스킹은 OS가 컨텍스트 스위칭으로 CPU 시간을 분배해 구현한다(잦으면 오버헤드).