- C-olekud salvestavad jõudeolekus (sügavam = suurem latentsus), P-olekud reguleerivad sagedust/pinget koormuse all.
- Mõlemad on ortogonaalsed: protsessor saab pärast kõrgel sagedusel töötamist sügavalt magada.
- C6/C7 latentsusajad mõjutavad mängimist, heli ja võrguühendust; reguleerige maksimaalset C-olekut koormuse põhjal.
- Kasutage stabiilsust kaotamata mõõtmiseks ja juhtimiseks tööriistu (Windows ja Linux) ning BIOS/OS profiile.

Kaasaegsetes protsessorites ei ole toitehaldus üksik lüliti, vaid lülitite kogum. koordineeritud mehhanismid (muuhulgas protsessori C- ja P-olekud) mida operatsioonisüsteem, püsivara ja protsessor ise kasutavad energiatarbimise, temperatuuri ja jõudluse reaalajas reguleerimiseks. See artikkel destilleerib ja korrastab selle akronüümide sasipuntra, et saaksite aru, mis kapoti all toimub, kui teie arvuti energiat säästab või kiirendab.
Kuigi iga tootja ja protsessoriperekond lisab oma eripära, on alus ühine: ACPI defineerib standardsed „olekud” süsteemi, seadmete ja protsessori jaoks. Siin näete C- ja P-olekute erinevusi, kuidas need on seotud G/S/D-olekutega, millist reaalset mõju need avaldavad latentsusele, miks mängurid ja professionaalsed audiofiilid sageli sügava une keelavad ning millised praktilised tööriistad on saadaval Windowsi, Linuxi ja selliste keskkondade nagu ESXi jaoks.
ACPI lühidalt
ACPI (Advanced Configuration and Power Interface) on standard, mis koordineerib arvutite ja serverite võimsust ning mis asendas APM-i suurema kontrolli ja detailsusegaSee sündis Inteli, Microsofti ja Toshiba käe läbi 90ndatel ning arenes edasi 64-bitise, mitmeprotsessorilise, moodsate siinide (PCIe, SATA, USB 3.x) ja sündmuste tuvastamise (nt toitenupp) hõlmamiseks.
Kuigi ACPI-d kasutatakse peamiselt x86 perekonnas, on seda kasutusele võetud ka teistes arhitektuurides. ARM-mobiilseadmetes aga... kasutatakse patenteeritud strateegiaid (näiteks big.LITTLE ja heterogeensed klastrid) et tasakaalustada efektiivsust ja reageerimisvõimet olenevalt koormusest.

Globaalsed ja peatatud olekud (G-olekud ja S-olekud)
Globaalsed olekud kirjeldavad süsteemi täielikku olekut. Kõige olulisem on G0/S0 (töötab), kus arvuti on aktiivne. Uuemal riistvaral on see olemas S0ix (S0 alamolekud) mis võimaldavad väga täpseid unerežiime, kusjuures osa SoC-st on unerežiimis, eriti sülearvutites.
- G0/S0: süsteem töötab.
- G1 (Magamisasend): hõlmab S1, S2, S3 (peatamine muutmällu) ja S4 (talveunerežiim kettale). S3 hoiab RAM-i töös kiireks jätkamiseks; S4 tühjendab mälu püsimällu.
- G2/S5 (pehme väljalülitus)Loogiline väljalülitus minimaalse energiatarbega, et võimaldada sündmuste (klaviatuur, võrk jne) korral äratamist.
- G3 (mehaaniline väljalülitus)Füüsiline väljalülitus; iga aku kohta jääb alles ainult reaalajakell.
Pea meeles, et Protsessori C-olekud asuvad G0/S0 piiresKui süsteem siseneb G1 olekusse, lülitub protsessoripakett välja ja C-olekud lõpetavad esitamise.
Seadme olekud (D-olekud)
ACPI määratleb ka, kuidas välisseadmed magama lähevad või ärkavad. D0 on samaväärne "täieliku tööga", D1/D2 on vahepealsed (seadmest sõltuv) ja D3 hargnevad olekuks „kuum“ (lisatoitega, reageerib siinile) või „külm“ (täielikult välja lülitatud, ei reageeri). See võimaldab näiteks võrgukaardil arvuti äratada, samal ajal kui teised seadmed jäävad magama.
T-olekud: kella modulatsioon, viimane abinõu
Lisaks P-le ja C-le on olemas ka kella modulatsioon (T-olekud): PWM-i liik, mis summutab sisemisi kellapulsse mustris (nt 1 iga 8 kohta), vähendades aktiivsust ilma reklaamitud baassagedust muutmata. See on mõeldud termiliseks või avariikaitseks (PROCHOT) ja seda juhitakse IA32_CLOCK_MODULATION kaudu, põhjused/logid salvestatakse MSR_*_PERF_LIMIT_REASONS-is.
Kuigi mõned dokumendid peavad seda praktikas ebaoluliseks See ilmub pidevalt sülearvutitele, millel on korralik termiline disain ja pideva koormuse all. Kui Windows teatab minimaalsest EIST-st madalamast kiirusest, on tõenäoliselt aktiivne T-olek (kella värav).
M-olekud: mälu kokkuhoid
ACPI pakub ka mäluolekuid, et vähendada DRAM-alamsüsteemi energiatarbimist, kui süsteem on jõudeolekus. M0 on normaalne töörežiimM1/M2 ja muud režiimid sunnivad mälu ennast värskendama ja aeglustavad ajastust, vähendades energiatarbimist pikemate äratuslatentsusaegadega. Need on kasutajale vähem nähtavad, kuid aitavad kaasa üldisele kokkuhoiule.
Protsessori C-olekud: maga peaga
Vaagem nüüd artikli teemat: C-olekud ja P-olekud. C-olekud on kerneli või paketi jõudeolekud. Mida suurem arv, seda sügavam on uni ja suuremat kokkuhoidu, aga ka suuremat äratuslatentsust. Neid taotletakse privilegeeritud käskudega, näiteks HLT või MWAIT (viimane saab selgesõnaliselt taotleda Cx-i ja alamolekut) ning võimekuse kaardistus jõuab operatsioonisüsteemi ACPI (_CST) kaudu.
- C0: normaalne teostus. Siin tulevadki mängu P-olekud.
- C1/C1E (Stopp): südamik peatub, peaaegu kohene tagasitulek C0-ni; C1E vähendab tarbimist veelgi.
- C2 (stoppkell)Kella signaalid on peatatud, tagasitulek võtab veidi kauem aega.
- C3 (uni/sügav uni)L1/L2 tühjendatakse viimasesse vahemällu (LLC) ja põhitaktid lülitatakse välja; säilib ainult tuuma põhiolek.
- C6 ja kõrgemTuuma saab välja lülitada ja selle konteksti salvestada spetsiaalsesse SRAM-i, mis langetab südamiku pinge ~0 V-ni; väljumisel taastatakse südamiku olek. Mõned mudelid pakuvad uuematel platvormidel kuni C10 pinget.
Lisaks tuumade C-olekutele (CC-olekud) on olemas ka tasand Pakett C-olekud (PC-olekud) mis lülitavad jagatud plokid (nagu LLC) välja, kui kõik tuumad seda lubavad. Esinevad sobimatud kombinatsioonid (kui tuum on C0-s, ei saa pakett olla PC6-s) ja protsessor saab sihtlatentsuse ja residentsuse põhjal automaatselt taset "edasi viia" või "maha viia".
Latentsusaeg on oluline: C1 hüljatakse vaid mõnekümne tsükliga, samas kui C6/C7 võib maksta sadu mikrosekundeid. Seega kannatavad viivitustundlikud koormused (mängimine, reaalajas heli, nõudlik võrguühendus), kui protsessor satub sageli sügavasse unerežiimi.
Jõudluse P-olekud: sagedus ja pinge
Kui C-seisundid on „magamisseisundid, kui tööd pole“, siis P-seisundid on „tempo kohandamise režiimid, kui tööd pole“. Jah, tööd on, aga see ei võta maksimumi.„P0 on kõrgeima jõudlusega olek (kõrgeim sagedus/pinge), seejärel tulevad P1, P2… igaüks kahanevate sagedus-pinge paaridega. Need tabelid deklareeritakse operatsioonisüsteemile ACPI (_PSS) kaudu ja neid juhivad MSR-id nagu IA32_PERF_CTL/IA32_PERF_STATUS.“
Ajalooliselt küsis operatsioonisüsteem P-olekuid (EIST/SpeedStep Intelil, PowerNow! AMD-l), kuid tänapäeval on see tavaline Riistvara abil juhitavad jõudlusseisundid (HWP/Speed Shift)Operatsioonisüsteem näitab eelistust (jõudlus/sääst) ja protsessor otsustab täpse punkti millisekundites, väga peene tuumapõhise detailsusega.
Oluline detail: P- ja C-olekud on "ortogonaalsed"Võite olla P0-l (kõrgsagedus) ja mitteaktiivseks muutudes siseneda olekusse C6. Vastupidiselt, püsiva koormuse korral P2-l C-olekuid pole, kuna tuum töötab (C0). Seetõttu on hea mõte vaimselt eraldada "sagedus/pinge" (P) "jõudeolekust" (C).
APM-ist ACPI-ni: paradigma muutus
APM oli eelmine API, mida hallati peamiselt BIOS-i ja draiverite kaudu. See lubas Lülitage mitteaktiivsed välisseadmed välja ja määratlege lihtsad globaalsed olekud, kuid turvakaalutlustel oli protsessor väljaspool operatsioonisüsteemi otsest kontrolli. ACPI arenes rikkamaks ja standardiseeritumaks mudeliks, mis sisaldas tabelikirjeldusi, detailset kontrolli ja tihedat koostööd püsivara, operatsioonisüsteemi ja riistvara vahel.
Kuidas C-riikidesse siseneda ja sealt lahkuda
Kui ajastajal pole ühtegi lõime valmis, käivitab see HLT või MWAIT käsu koos vihjega siht-C-oleku kohta; Katkestused "lõhuvad" une ja viivad südamiku tagasi asendisse C0. Privaatsed vahemälud tühjendatakse asendis C3; kontekst salvestatakse SRAM-i asendis C6 ja pinge langetatakse nullini. Mõned protsessorid rakendavad katkestuste suunamiseks energiasäästlikku katkestuste marsruutimist (PAIR). juba aktiivsed tuumad (salvestamiseks) või jõudeolekus tuumade jaoks (jõudluse osas), vastavalt vajadusele.
Turbo, TDP ja võimsuspiirangud
Protsessorid defineerivad TDP-d, mida jahutussüsteem peab suutma püsivalt hajutada (PL1: ohutu keskmine võimsus). Ülalpool saavad siseneda kõrgemate elektriakendega (PL2ja platvormist olenevalt täiendavaid tasemeid, näiteks PL3/PL4) piiratud aja jooksul. Kui on olemas termiline ja elektriline reservruum, saab tuum Turbo abil baassagedust ületada isegi asümmeetriline kuju (rohkem turbot, vähem aktiivseid südamikke).
Kui temperatuur ületab läve või kui VRM/võimsus seda nõuab, PROCHOTi saab aktiveerida ja kiibi kaitsmiseks sisestage T-olekusse või sageduslõikusse. See käitumine on õhukeste sülearvutite puhul tavaline.
Windows: energiarežiimid, näidud ja loendurid
Windowsi pakkumised plaanid nagu „Energiasääst“, „Tasakaalustatud“ ja „Suure jõudlusega“. Esimene kipub olema alandavad agressiivselt P-staadiume ja magavad rahulikultKolmas variant säilitab kõrged sagedused ja väldib latentsusaja langust efektiivsuse arvelt. „Tasakaalustatud” variant püüab leida keskteed.
Tegumihalduris on „kiirus” sünteetiline mõõdik, mis keskmised südamiku kohta ja arvestab modulatsioonikohustust kui esineb T-seisundeid. See võib ületada baasväärtust (Turbo) või langeda alla minimaalse EIST-i (värav). Täiustatud telemeetria puhul kajastab loendur „\Protsessori teave(_Kokku)\% protsessori jõudlust” protsessori efektiivse jõudluse protsenti.
Diagnoosimiseks või kohandamiseks on olemas utiliidid: CPU-Z (põhiandmed), HWiNFO (andurid), DrosselSeis (taktid, C-olekud südamiku kohta ja PROCHOT/modulatsiooni juhtimine) või Parkimiskontroll (tuuma parkimise häälestamine/C-olekud), mis puudutavad peidetud energiarežiimi parameetreid (powercfg võimaldab muuta „IDLE_PROMOTE/DEMOTE” jne).
Linux: cpupower, turbostat ja CoreFreq
Linuxis on selliseid tööriistu nagu cpupower näidata regulaatoreid, sagedusvahemikke ja ülemineku latentsusaegu; turbostaat kuvab MSR-e, põhilise jõudluse piirangu põhjuseid (MSR_CORE_PERF_LIMIT_REASONS) ja elukohti C-riigi järgi; ja CoreFreq annab detailse ülevaate absoluutsagedustest, C-olekutest ja turbovõimsusest iga südamiku/paketi kohta.
Praktiline nüanss: mõnes arvutis on draiver intel_idle saab BIOS-i piiranguid ignoreerida C-olekute kohal ja kasutavad oma tabelit. Teistes "lukustab" püsivara MSR-i kaudu operatsioonisüsteemi jaoks lubatud sügavaima C-oleku.
BIOS/UEFI ja profiilid: kes tegelikult vastutab?
BIOS/UEFI sätetes kuvatakse need tavaliselt võtmelülitid: EIST/SpeedStep, TurboBoost ja CPU C-olekudLisaks võimaldavad paljud serverid valida võimsusprofiile: „Maksimaalne jõudlus” (kõik parimal võimalikul viisil, minimaalse latentsusega) või „Operatsioonisüsteemi juhitav/kohandatud”, kus hüperviisor või operatsioonisüsteem haldab P/C-olekuid. „Operatsioonisüsteemi juhtimisrežiimi” valimine delegeerib intelligentsuse operatsioonisüsteemile.
Kui kasutate hüperviisoreid, näiteks ESXi, on hea mõte need kombineerida OS-i juhtimisrežiim BIOS-is koos plaaniga „Kõrge jõudlusega” hüperviisorist, kui eesmärk on jõudluse vähendamine (näiteks NSX-T, servasõlmede või latentsustundlike funktsioonide puhul). Sellisel juhul näete P-olekut 0 sagedamini ja C-olekuid piiratakse C0/C1-ga; „tasakaalustatud“ plaani korral tugineb host rohkem madalamatele P-olekutele ja sügavamatele C-olekutele.
Kogu selle C- ja P-olekute segaduse kokkuvõtteks: ACPI defineerib raamistiku, C-olekud säästavad energiat, kui tööd pole, P-olekud reguleerivad koormuse all kõrget/madalat käiku, T-olekud päästavad päeva äärmise kuumuse korral ja M-olekud vähendavad mälumahtu. Peaasi on valida endale sobiv profiil., mõõta õigete vahenditega ja vajadusel määrata puhkesügavusele mõistlikud piirid.
Toimetaja on spetsialiseerunud tehnoloogiale ja internetiprobleemidele, omades rohkem kui kümneaastast kogemust erinevates digitaalsetes meediates. Olen töötanud toimetajana ja sisuloojana e-kaubanduse, kommunikatsiooni, veebiturunduse ja reklaamiettevõtetes. Olen kirjutanud ka majanduse, rahanduse ja teiste sektorite veebisaitidele. Minu töö on ka minu kirg. Nüüd minu artiklite kaudu Tecnobits, püüan uurida kõiki uudiseid ja uusi võimalusi, mida tehnoloogiamaailm meile iga päev oma elu parandamiseks pakub.

