CPU
CPU는 프로그램의 명령(기계어)을 하나씩 꺼내 실행한다. 내 Java 코드든 운영체제 커널이든, 실행된다는 건 결국 CPU가 그 명령을 읽고 한다는 뜻이다.
이 PC의 CPU — 마지막으로 잰 값
- 이름
- AMD Ryzen 7 7735HS with Radeon Graphics
- 코어 · 스레드
- 물리 코어 8개 · 논리 프로세서 16개
- 기본 클럭
- 3201 MHz (WMI MaxClockSpeed)
- 캐시 (칩 전체 합)
- L1 512 KB · L2 4096 KB · L3 16384 KB
LENOVO ThinkPad E14 Gen 6 · 2026-10-11 11:04에 잰 값 · 다시 재려면 pwsh tools/hardware-snapshot.ps1
캐시 크기는 칩 전체 합이다. 코어 하나로 나누면 L1 64 KB(명령 32 + 데이터 32) · L2 512 KB이고, L3 16 MB는 코어 8개가 같이 쓴다.
CPU는 다음 명령의 주소를 들고 하나씩 실행한다
- CPU 안의 작은 저장 칸이 레지스터다. 그중 프로그램 카운터가 다음에 실행할 명령의 주소를 가리킨다. CPU는 그 주소의 명령을 가져와 실행하고 다음으로 넘어간다
- 코어 하나가 이 일을 따로 한다. 코어가 8개면 명령 흐름 8개가 동시에 돈다
- 논리 프로세서는 코어 하나의 실행 장치를 두 흐름이 나눠 쓰는 것이다(SMT). 한 흐름이 메모리를 기다리는 틈에 다른 흐름이 실행된다. 운영체제는 논리 프로세서 하나를 CPU 하나처럼 보고 스레드를 올린다
CPU는 메모리를 64바이트씩 캐시로 가져와 둔다
- RAM은 CPU보다 훨씬 느리다. 그래서 CPU는 필요한 주소 근처 64바이트(캐시 라인)를 통째로 가져와 칩 안의 캐시에 둔다. 다음에 읽을 값은 대개 그 안에 있다
- 가까운 순서는 L1 → L2 → L3 → RAM이다. 멀수록 크고 느리다. 캐시에 없으면 RAM까지 가야 한다 — 캐시 미스
- 캐시 칸은 SRAM이다. 트랜지스터 6개가 서로 붙잡아 값을 지켜서 RAM처럼 다시 채워 줄 필요가 없고 빠르다. 대신 칸 하나가 커서 작게만 둔다 — RAM의 셀과 비교해 볼 것
타이머가 울리면 CPU가 커널 코드로 넘어간다
코어마다 타이머가 있어서 정해진 간격마다 인터럽트를 건다. 그러면 코어는 하던 명령 흐름을 멈추고 커널 코드로 넘어가고, 커널의 스케줄러가 다음에 돌 스레드를 고른다. 그 다음은 OS 프로세스 분야에서 따라간다.
CPU에서 아직 안 본 것
- 파이프라인 · 분기 예측 · 비순차 실행 — 「하나씩 실행」은 실제로는 여러 명령이 겹쳐 돈다
- 클럭이 부하에 따라 오르내리는 것 — 위 표의 기본 클럭은 WMI 값이고 실제 클럭은 계속 바뀐다
- 메모리 컨트롤러 — 이 칩 안에 있지만 RAM 3장에서 본다
최상단으로 이동했습니다!