핵심 인사이트 (3줄 요약)

  1. 앞서 배운 C-State(Core State)가 "CPU가 놀 때(Idle) 어떻게 잠을 재울 것인가?"에 대한 수면 모드라면, **P-State(Performance State)**는 "CPU가 일할 때(Active, C0) 얼마나 빡세게 뛸 것인가?"에 대한 달리기 모드다.
  2. P-State는 운영체제(OS)가 현재의 작업 부하를 보고 하드웨어의 클럭(Clock)과 전압(Voltage)의 단계를 0부터 n까지 조절하는 DVFS (동적 전압 주파수 스케일링)의 ACPI 표준 구현체다.
  3. P0 상태일 때가 CPU가 허락한 가장 빠르고 전기를 많이 먹는 상태이며, 번호가 커질수록(P1, P2...) 천천히 걷는 절전 모드가 된다.

Ⅰ. P-State의 개념: 일하는 중에도 기어 변속이 필요하다

CPU가 C-State를 벗어나 완전히 깨어나서 연산을 수행하는 상태를 C0 상태라고 합니다. 그런데 C0 상태라고 해서 무조건 100% 풀 파워로 달릴 필요는 없습니다.

  • 게임을 돌릴 때는 5GHz로 미친 듯이 달려야 합니다.
  • 웹 브라우저에서 스크롤을 내릴 때는 2GHz로 설렁설렁 걸어도 충분합니다.

이때 OS(윈도우/리눅스)는 CPU의 부담감을 측정하여, C0 상태 내부에서 자동차의 기어를 바꾸듯 P-State를 조절합니다. P-State의 단계는 CPU 제조사가 공장에서 구워둔 전압/클럭 테이블에 따라 결정됩니다.

📢 섹션 요약 비유: C-State는 쉴 때 '의자에 앉을지(C1) 침대에 누울지(C6)'를 정하는 것이고, P-State는 달리기(C0)를 할 때 '전력 질주(P0)를 할지 빠른 걸음(P2)으로 걸을지' 페이스를 조절하는 호흡법입니다.

Ⅱ. P-State의 등급과 터보 부스트(Turbo Boost)

일반적으로 숫자가 낮을수록 고성능입니다.

  • P0 (Maximum): 기본 스펙상 낼 수 있는 가장 높은 클럭과 전압. (예: 4.0GHz)
  • P1, P2... Pn (Throttled): 전기를 아끼기 위해 클럭과 전압을 낮춘 상태. (예: Pn은 800MHz)

터보 부스트의 비밀 (P-State의 꼼수)

최신 인텔/AMD CPU는 **"터보 부스트(Turbo Boost)"**라는 기능을 제공합니다. 기본 클럭이 4.0GHz인데 5.0GHz까지 순간적으로 튀어 오르는 기능입니다.

이 터보 부스트는 ACPI 규격상 어떻게 처리될까요? OS는 P0 이상의 상태를 모릅니다. 그래서 하드웨어는 P0 상태를 **'터보 부스트가 터진 5.0GHz'**로 속여서 OS에 보고하고, 기본 클럭인 4.0GHz를 P1 상태로 둡니다. 즉, OS가 "가장 빠르게 달려(P0)!"라고 명령하면, CPU 하드웨어가 스스로 온도와 전력 여유분을 계산해서 알아서 5.0GHz로 오버클럭을 때려버리는 것입니다.

📢 섹션 요약 비유: P1이 사람이 뛰는 최고 속도라면, P0는 부스터를 달고 뛰는 속도입니다. 단, 부스터(P0)는 CPU의 체온이 100도를 넘지 않는 찰나의 순간(수십 초)에만 허락되는 한정판 기술입니다.

Ⅲ. 하드웨어 P-State (HWP / CPPC)의 등장

과거에는 OS(윈도우)가 "너 지금 50% 정도 힘드네? P3 모드로 내려가"라며 1밀리초(1ms) 단위로 명령을 내렸습니다. 하지만 현대의 클라우드 워크로드는 1마이크로초 단위로 트래픽이 튀기 때문에 OS의 판단이 너무 굼떴습니다.

해결책: Intel Speed Shift (HWP, Hardware P-States) / AMD CPPC 인텔 6세대(스카이레이크)부터는 OS가 기어를 변속하는 권한을 포기했습니다. OS는 단지 "이 프로그램은 성능이 중요해(또는 배터리가 중요해)"라는 **방향성(Hint)**만 던져줍니다. 그러면 **CPU 내부에 달린 마이크로컨트롤러(PCU)**가 1나노초 단위로 작업량을 분석해 OS 몰래 독단적으로 클럭을 P0부터 Pn까지 미친 듯이 휙휙 바꿔버립니다. 속도가 수십 배 빠르고 정교해졌습니다.