Vad är skillnaden mellan C-tillstånd och P-tillstånd hos CPU:n?

Senaste uppdateringen: 15/10/2025
Författare: Daniel Terrasa

  • C-tillstånd sparar vid tomgång (djupare = mer latens), P-tillstånd justerar frekvens/spänning under belastning.
  • Båda är ortogonala: processorn kan sova djupt efter att ha körts med hög frekvens.
  • C6/C7-latenser påverkar spel, ljud och nätverk; justera maximal C-tillstånd baserat på belastning.
  • Använd verktyg (Windows och Linux) och BIOS/OS-profiler för att mäta och styra utan att förlora stabilitet.

CPU-strömtillstånd: C-tillstånd och P-tillstånd

I moderna processorer är strömhantering inte en enda brytare, utan en uppsättning koordinerade mekanismer (bland annat CPU:ns C-tillstånd och P-tillstånd) som operativsystemet, firmware och själva processorn använder för att justera strömförbrukning, temperatur och prestanda i realtid. Den här artikeln sammanfattar och organiserar den här virvlan av akronymer så att du kan förstå vad som händer under huven när din dator sparar ström eller ökar hastigheten.

Även om varje tillverkare och CPU-familj har sin egen prägel, är grunden gemensam: ACPI definierar standardiserade "tillstånd" för systemet, enheterna och processorn. Här ser du skillnaderna mellan C-tillstånd och P-tillstånd, hur de relaterar till G/S/D-tillstånd, vilken verklig inverkan de har på latens, varför spelare och professionella audiofiler ofta inaktiverar djupsömn och vilka praktiska verktyg som finns tillgängliga för användning i Windows, Linux och miljöer som ESXi.

ACPI i ett nötskal

ACPI (Avancerat konfigurations- och strömgränssnitt) är standarden som styr strömförsörjningen i datorer och servrar, och det ersatte APM med större kontroll och granularitetDet föddes ur Intel, Microsoft och Toshibas händer på 90-talet och utvecklades till att omfatta 64-bitars, multiprocessorstyrda, moderna bussar (PCIe, SATA, USB 3.x) och händelsedetektering (t.ex. strömbrytaren).

Även om ACPI främst används i x86-familjen har det även använts på andra arkitekturer. På mobila ARM-enheter däremot... proprietära strategier används (såsom big.LITTLE och heterogena kluster) för att balansera effektivitet och respons beroende på belastning.

ACPI

Globala och suspenderade stater (G-stater och S-stater)

Globala tillstånd beskriver systemets fullständiga tillstånd. Det viktigaste är G0/S0 (Fungerar), där datorn är aktiv. På nyare hårdvara finns det S0ix (undertillstånd av S0) vilket möjliggör mycket fina vilolägen där en del av SoC:n sover, särskilt i bärbara datorer.

  • G0/S0: systemet i drift.
  • G1 (Sovande): täcker S1, S2, S3 (i viloläge till RAM) och S4 (i viloläge till disk). S3 håller RAM-minnet strömförsörjt för att återuppta snabbt; S4 tömmer minnet till icke-flyktigt lagringsutrymme.
  • G2/S5 (Mjuk avstängning)Logisk avstängning med minimal strömförbrukning för att möjliggöra väckning av händelser (tangentbord, nätverk etc.).
  • G3 (Mekanisk avstängning)Fysisk avstängning; endast RTC:n överlever per batteri.

Tänk på det Processorns C-tillstånd ligger inom G0/S0När systemet går in i G1 stängs CPU-paketet av och C-tillstånden slutar spela.

Enhetsstatus (D-status)

ACPI definierar också hur kringutrustning sover eller vaknar. D0 motsvarar "full drift", D1/D2 är mellanliggande (enhetsberoende) och D3 förgrenar sig till Hot (med hjälpström, svarar på bussen) eller Cold (helt avstängd, svarar inte). Detta gör att till exempel ett nätverkskort kan väcka datorn medan andra enheter förblir i viloläge.

Exklusivt innehåll - Klicka här  Perovskitkamera: den nya riktmärket inom SPECT och bildsensorer

T-tillstånd: Klockmodulering, den sista utvägen

Förutom P och C finns det klockmodulering (T-tillstånd): en typ av PWM som undertrycker interna klockpulser i ett mönster (t.ex. 1 av 8), vilket minskar aktiviteten utan att ändra den annonserade basfrekvensen. Den är avsedd som en termisk eller nödåtgärd (PROCHOT) och styrs via IA32_CLOCK_MODULATION, med orsaker/loggar i MSR_*_PERF_LIMIT_REASONS.

Även om vissa dokument anser det vara "irrelevant", i praktiken Det fortsätter att dyka upp på bärbara datorer med en hyfsad termisk design och under ihållande belastning. Om du ser att Windows rapporterar en "hastighet" under den lägsta EIST-nivån är T-tillståndet troligtvis aktivt (klockgating).

M-tillstånd: Minnesbesparingar

ACPI tillhandahåller också minnestillstånd för att minska DRAM-delsystemets strömförbrukning när systemet är inaktivt. M0 är normal driftM1/M2 och andra lägen tvingar minnet att uppdatera sig själv och saktar ner tidpunkten, vilket minskar strömförbrukningen med längre uppvakningsfördröjningar. Dessa är mindre synliga för användaren, men bidrar till den totala besparingen.

c-tillstånd och p-tillstånd

Processorns C-tillstånd: Viloläge med huvudet igång

Låt oss nu ta upp artikelns ämne: C-tillstånd och P-tillstånd. C-tillstånd är kärnans eller paketets vilotillstånd. Ju högre siffra, desto djupare sömn och större besparingar, men också högre latens vid uppvakning. De begärs med privilegierade instruktioner som HLT eller MWAIT (den senare kan explicit begära en Cx och substatus), och funktionsmappningen når operativsystemet via ACPI (_CST).

  • C0: normal exekvering. Det är här P-tillstånd kommer in i bilden.
  • C1/C1E (Stopp): kärnan stannar, nästan omedelbar återkomst till C0; C1E minskar förbrukningen ytterligare.
  • C2 (Stoppklocka)Klocksignalerna stoppas, återgången tar lite längre tid.
  • C3 (Sömn/Djupsömn)L1/L2 töms till den sista cachen (LLC) och kärnklockorna stängs av; endast kärnans essentiella tillstånd bevaras.
  • C6 och högreKärnan kan stängas av och dess kontext sparas i dedikerat SRAM, vilket sänker kärnspänningen till ~0 V; vid avstängning återställs kärnans tillstånd. Vissa modeller exponerar upp till C10 på nyare plattformar.

Förutom C-tillstånden per kärna (CC-tillstånd) finns planet för Paket C-tillstånd (PC-tillstånd) som stänger av delade block (som LLC) när alla kärnor tillåter det. Det finns ogiltiga kombinationer (om en kärna är i C0 kan paketet inte vara i PC6), och processorn kan automatiskt "uppgradera" eller "degradera" nivån baserat på mållatenser och residenser.

Exklusivt innehåll - Klicka här  Köpte du en RTX 50? Du måste kontrollera om den har defekter och mindre kraft än vad som annonserats.

Latensfrågor: C1 överges på bara några dussin cykler, medan C6/C7 kan kosta hundratals mikrosekunder. Därför blir fördröjningskänsliga belastningar (spel, realtidsljud, krävande nätverk) lidande om processorn ofta hamnar i djupt viloläge.

Prestanda P-tillstånd: Frekvens och spänning

Medan C-stater är "sovande när det inte finns något arbete", är P-stater "anpassa takten när Ja, det finns arbete, men det tar inte max.”. P0 är det högsta prestandatillståndet (högsta frekvens/spänning), sedan kommer P1, P2… var och en med minskande frekvens-spänningspar. Dessa tabeller deklareras till operativsystemet via ACPI (_PSS) och styrs av MSR:er som IA32_PERF_CTL/IA32_PERF_STATUS.

Historiskt sett begärde operativsystemet P-tillstånd (EIST/SpeedStep på Intel, PowerNow! på AMD), men idag är det vanligt att Hårdvarustyrda prestandatillstånd (HWP/Speed ​​Shift)Operativsystemet anger en preferens (prestanda/besparingar) och processorn bestämmer den exakta punkten på millisekunder, med en mycket fin granularitet per kärna.

En viktig detalj: P-tillstånd och C-tillstånd är "ortogonala"Du kan vara vid P0 (hög frekvens) och, när du blir inaktiv, gå in i C6. Omvänt, under ihållande belastning vid P2, finns det inga C-tillstånd eftersom kärnan kör (C0). Det är därför det är en bra idé att mentalt separera "frekvens/spänning" (P) från "viloläge" (C).

p-tillstånds-processor

Från APM till ACPI: ett paradigmskifte

APM var det tidigare API:et som huvudsakligen hanterades från BIOS och drivrutiner. Stäng av inaktiva kringutrustningar och definiera enkla globala tillstånd, men processorn låg utanför operativsystemets direkta kontroll av säkerhetsskäl. ACPI utvecklades till en rikare, mer standardiserad modell, med tabellbeskrivningar, detaljerad kontroll och nära samarbete mellan firmware, operativsystem och hårdvara.

Hur man kommer in i och ut ur C-staterna

När schemaläggaren inte har några trådar redo, kör den HLT eller MWAIT med en ledtråd till mål-C-tillståndet; Avbrott "bryter" sömnen och återför kärnan till C0. Privata cacher töms vid C3; kontext sparas till SRAM vid C6 och spänningen sänks till noll. Vissa processorer implementerar Power Aware Interrupt Routing (PAIR) för att dirigera avbrott till redan aktiva kärnor (för att spara) eller för att inaktiva kärnor (för prestanda), i förekommande fall.

Turbo, TDP och effektgränser

Processorer definierar en TDP som kylsystemet måste kunna avleda på en hållbar basis (PL1: säker genomsnittlig effektOvanför kan elektriska fönsterhissar komma in (PL2och ytterligare nivåer som PL3/PL4 beroende på plattform) under begränsade perioder. Om det finns termiskt och elektriskt utrymme kan kärnan överstiga basfrekvensen via Turbo, även asymmetrisk form (mer turbo med färre aktiva kärnor).

När temperaturerna överstiger tröskelvärdet eller VRM/strömmen kräver det, PROCHOT kan aktiveras och ange T-tillstånd eller frekvensklippning för att skydda chipet. Detta beteende är vanligt i tunna bärbara datorer.

Exklusivt innehåll - Klicka här  Överklockning av moderkort med P35-chipset och derivat

 

Windows: Energischeman, avläsningar och räknare

Windows-erbjudanden planer som "Energibesparingar", ”Balanserad” och ”Högpresterande”. Den första tenderar att sänk P-tillstånden aggressivt och sov gottDen tredje bibehåller höga frekvenser och undviker latensfall på bekostnad av effektivitet. "Balanced" försöker hitta en medelväg.

I Aktivitetshanteraren är "hastighet" ett syntetiskt mått som medelvärden per kärna och tar hänsyn till moduleringsbelastning om det finns T-tillstånd. Det kan överstiga basen (Turbo) eller falla under den lägsta EIST-nivån (gating). För avancerad telemetri återspeglar räknaren "\Processor Information(_Total)\% Processor Performance" procentandelen effektiv prestanda per CPU.

Det finns verktyg för att diagnostisera eller justera: CPU-Z (grundläggande uppgifter), Hwinfo (sensorer), ThrottleStop (klockor, C-tillstånd per kärna och PROCHOT/moduleringskontroll), eller ParkControl (kärnparkeringsjustering/C-tillstånd) som berör dolda parametrar för energischema (powercfg tillåter redigering av "IDLE_PROMOTE/DEMOTE", etc.).

Linux: cpupower, turbostat och CoreFreq

I Linux, verktyg som cpupower visa regulatorer, frekvensområden och övergångslatenser; turbostat visar MSR:er, orsaker till kärnprestandagränser (MSR_CORE_PERF_LIMIT_REASONS) och bosättningar per C-stat; och Kärnfrekvens ger en detaljerad vy över absoluta frekvenser, C-tillstånd och Turbo per kärna/paket.

En praktisk nyans: på vissa datorer är drivrutinen intel_idle kan ignorera BIOS-begränsningar över C-tillstånd och använder sin egen tabell. I andra fall "låser" firmware det djupaste C-tillståndet som tillåts för operativsystemet via MSR.

BIOS/UEFI och profiler: Vem bestämmer egentligen?

I BIOS/UEFI-inställningarna visas de vanligtvis nyckelbrytare: EIST/SpeedStep, TurboBoost och CPU C-tillståndDessutom låter många servrar dig välja strömprofiler: "Maximal prestanda" (allt när det är som bäst, med minimal latens) eller "OS-kontrollerad/anpassad", där hypervisorn eller operativsystemet styr P/C-tillstånd. Om du väljer "OS-kontrollläge" delegeras intelligensen till operativsystemet.

Om du använder hypervisorer som ESXi är det en bra idé att kombinera OS-kontrollläge i BIOS med planen "Hög prestanda" hos hypervisorn när målet är att pressa prestandan (till exempel med NSX-T, Edge Nodes eller latenskänsliga funktioner). I det scenariot kommer du att se P-tillstånd 0 oftare och C-tillstånd begränsade till C0/C1; med en "balanserad" plan kommer värden att förlita sig mer på lägre P-tillstånd och djupare C-tillstånd.

För att sammanfatta hela den här röran med C-tillstånd och P-tillstånd: ACPI definierar ramen, C-tillstånd sparar ström när det inte finns något arbete, P-tillstånd justerar hög/låg växel under belastning, T-tillstånd räddar dagen i extrem värme och M-tillstånd minskar watt från minnet. Nyckeln är att välja rätt profil för din användning., mät med rätt verktyg och, om nödvändigt, sätt rimliga gränser för vilodjupet.

Modern Standby-läge drar ur batteriet i viloläge
Relaterad artikel:
Modern Standby drar batteri under viloläge: hur man inaktiverar det