Hvad er Active State Power Manager, og hvordan påvirker det ydeevnen?

  • Active State Power Management (ASPM) styrer strømtilstandene for PCIe-links for at reducere forbruget, når der ikke er nogen aktiv dataoverførsel.
  • Aktivering forbedrer energieffektiviteten på bekostning af en vis latenstid, hvilket gør den særligt nyttig i bærbare computere og mindre prioriteret i højtydende udstyr.
  • Korrekt implementering afhænger af BIOS/UEFI, operativsystem og drivere og kan være deaktiveret på problematisk hardware eller servere, hvor stabilitet prioriteres.
  • ASPM er en del af ACPI-økosystemet og sameksisterer med tilstandene G, D, C og P, som koordinerer den overordnede balance mellem systemets ydeevne, forbrug og temperatur.

Hvad er en aktiv tilstands strømstyring?

Hvis du nogensinde har set noget i retning af "PCI Express Active-State Power Management (ASPM) deaktiveret" i en Windows-energirapport og er blevet efterladt med at klø dig i hovedet, så bare rolig: du er ikke alene. Denne teknologi lyder meget teknisk, men det handler i virkeligheden om, hvordan din computer beslutter at balancere strømforbrug og ydeevne, når PCI Express-enheder ikke kører med fuld kapacitet.

Det er vigtigt at forstå, hvad Active State Power Manager er, og hvordan det påvirker ydeevnen, uanset om du bruger en bærbar computer og ønsker at maksimere batterilevetiden, eller administrerer servere eller kraftfulde pc'er og er mere optaget af stabilitet og maksimal ydeevne end at spare et par watt. Lad os gennemgå det grundigt og forbinde det med andre koncepter som PCIe, ACPI, strømtilstande, BIOS/UEFI samt strømstyringsmuligheder i Windows og Linux.

Hvad er Active State Power Management (ASPM) i PCI Express?

Active State Power Management (ASPM) er en strømbesparende mekanisme indbygget i PCI Express-standarden , der styrer strømforbruget for PCIe-links, når tilsluttede enheder ikke aktivt sender data. I stedet for at holde linket ved fuld effekt, tillader ASPM linket mellem CPU'en eller chipsættet og PCIe-enheden at gå i lavstrømstilstande i perioder med inaktivitet.

Grundideen er meget enkel: Når der ikke er nogen datatrafik, "slapper " forbindelsen af, hvilket forbruger mindre energi og genererer mindre varme. I det øjeblik der er brug for den igen, vender forbindelsen tilbage til sin aktive tilstand. Denne overgang er ikke uden omkostninger: den tilføjer en vis latenstid , og det er her, balancen mellem ydeevne og effektivitet kommer ind i billedet.

ASPM overvåger strømtilstanden i begge ender af PCIe-linket (f.eks. chipsættets PCIe-controller og grafikkortet eller NVMe-controlleren). Det betyder, at strømbesparelser ikke kun sker på enhedsniveau, men også på selve det fysiske link (PCIe-transportlaget), selv når PCIe-enheden forbliver i en fuldt operationel strømtilstand.

I Linux-systemer styres ASPM's globale opførsel fra kernemodulet, der svarer til PCIe.Der er en modulparameter eksponeret i /sys/module/pcie_aspm/parameters/policy hvor den politik, der skal anvendes, er defineret. Derudover kan parametre som [følgende] bruges under kerneopstart. pcie_aspm=off at deaktivere det globalt eller pcie_aspm=force at gennemtvinge ASPM selv på enheder, der i teorien ikke understøtter det korrekt (noget der kan forårsage problemer på problematisk hardware).

Forholdet mellem ASPM, Link State Power Management og strømstyringsindstillinger i Windows

I Windows er det, der normalt vises i strømstyringsindstillingerne som "Link State Power Management", i bund og grund den måde, operativsystemet eksponerer og styrer ASPM-politikken for kompatible PCIe-links.

Denne indstilling findes i strømstyringsplanen i den sædvanlige sti: Indstillinger → System → Strøm og dvaletilstand → Yderligere strømindstillinger → Skift planindstillinger → Skift avancerede strømindstillinger. Under de avancerede indstillinger finder du "Link-state strømstyring" under "PCI Express".

Windows tilbyder typisk tre adfærdsniveauer for Link State Power Management , som konceptuelt svarer til forskellige grader af strømbesparelser og latenstid:

  • deaktiveretPCIe-linket går ikke i strømbesparende tilstande; ydeevne og lav latenstid prioriteres.
  • Moderate energibesparelserSystemet anvender et mellemliggende niveau af energibesparelse. Forbruget reduceres noget, men genopretningstiden fra lavforbrugstilstanden er relativt hurtig.
  • Maksimale energibesparelserForbindelsen lukkes aggressivt ned, når der ikke er trafik; forbruget falder yderligere, men opvågningstiden fra lavstrømstilstanden er længere.

På en bærbar computer kan valget mellem moderate og maksimale indstillinger gøre en betydelig forskel i batterilevetiden , især hvis enheden bruger meget tid på lette opgaver som at browse eller se videoer. På en stationær eller gaming-pc vælger mange brugere at lade den være deaktiveret for at undgå ekstra latenstid og maksimere hver FPS.

Hvordan ASPM påvirker ydeevne og batterilevetid

Den mest åbenlyse effekt af ASPM ses på to fronter: ydeevne (latens) og energiforbrug . Disse er to sider af samme sag, og at lege med indstillingerne betyder at prioritere den ene eller den anden.

Når ASPM er aktiveret og i aggressive tilstande, reducerer systemet strømforbruget på PCIe-links, så længe de ikke aktivt overfører data. Dette er især mærkbart i:

  • Portátiles, som er afhængige af batteristrøm og værdsætter hver en watt, der spares.
  • Systemer med mange PCIe-enheder (grafikkort, NIC'er, lagringscontrollere osv.), hvor de kumulative besparelser kan være betydelige.
  • Meget tætte datacenter- og servermiljøerhvor et par watt pr. server skaleres til store tal på rack- eller datacenterniveau.

Afvejningen er den latenstid, der introduceres, når man skifter fra en lavstrømstilstand til en aktiv tilstand . Ved generel brug (kontorapplikationer, browsing, multimedieafspilning) er denne latenstid normalt umærkelig for brugeren. I krævende scenarier - spil, lav netværkslatenstid, intensiv lagerbelastning - kan den dog have en marginal, omend typisk lille, effekt.

Nogle analyser og undersøgelser har nævnt forbedringer af energieffektivitet og PCIe-busforbrug på op til 20 % med korrekt ASPM-styring . Dette betyder ikke, at din computer vil køre 20 % hurtigere, men snarere at den kan forbruge mindre energi og generere mindre varme for den samme arbejdsbyrde, hvilket er især gavnligt for bærbare computere og mobile enheder.

I Windows er det almindeligt med værktøjer som powercfg -energy vis fejl relateret til ASPM af typen: “PCI Express Active-State Power Management (ASPM) deaktiveret på grund af en kendt inkompatibilitet med denne computers hardware.” I disse tilfælde har Windows besluttet at blokere ASPM af sikkerhedsmæssige årsager, fordi Windows ved, at en bestemt komponent ikke håndterer det ordentligt og kan forårsage nedbrud, enhedsafbrydelser eller ustabilitet.

Typiske problemer: ASPM-fejl, batterier og hardwarekompatibilitet

Mange brugere støder først på ASPM, når de undersøger batteriproblemer eller strømdiagnosticering , især på kraftfulde bærbare computere med moderne CPU'er og dedikerede GPU'er (f.eks. 12. generations Intel Core i9-systemer og avanceret RTX-grafik).

Et typisk eksempel er en ny bærbar computer, hvis batteri holder meget kortere end forventet. (2-2,5 timer ved let brug sammenlignet med de 5-6 timer, som andre brugere har rapporteret). Når man genererer en rapport med powercfg -energy I Windows vises fejl som følgende:

  • "Platformens strømstyringsfunktioner: PCI Express Active-State Power Management (ASPM) deaktiveret. ASPM er blevet deaktiveret på grund af en kendt inkompatibilitet med denne computers hardware."
  • Advarsler om USB-enheder som ikke går i selektiv suspendering (f.eks. enheder med specifikke USB-ID'er), hvilket også øger strømforbruget i standby.

I disse situationer er det ikke altid processorens skyld . Ofte er det en kombination af:

  • Udstyrsdesign (bundkort, BIOS/UEFI, hvordan producenten implementerer ACPI-tabeller og ASPM-understøttelse).
  • Enhedsdrivere (GPU, NIC, lagring, USB), der ikke fuldt ud eller korrekt implementerer ASPM.
  • Eksterne USB-enheder som forhindrer selektiv affjedring eller holder systemet mere aktivt end ønskeligt.

I praksis er det sjældent en nem løsning at genaktivere ASPM uden risiko, når Windows rapporterer, at det er deaktiveret på grund af inkompatibilitet . At tvinge det igennem hacking eller ændrede drivere kan f.eks. forårsage, at et netværkskort ikke reagerer, før det genstartes.

For at udelukke rent softwaremæssige problemer i Windows anbefales det normalt at følge nogle grundlæggende trin.Kør strømfejlfindingsværktøjet, Opdater Windows og drivereog i nogle tilfælde udføre systemfilkontroller med SFC (sfc /scannow) og DISM-værktøjer (DISM.exe /Online /Cleanup-image /Scanhealth y /RestorehealthHvis rapporten efter alt dette stadig viser, at ASPM er deaktiveret af hardwaren, er det højst sandsynligt en begrænsning i selve udstyret eller dets firmware.

ASPM på servere og 24/7-udstyr: Er det det værd?

Hvad er Active State Power Manager, og hvordan påvirker det ydeevnen?

I en verden af ​​24/7-servere skaber ASPM betydelig debat . På den ene side virker det som en god idé at spare energi på PCIe-links. På den anden side er enhver antydning af ustabilitet eller pakketab uacceptabel.

Et klassisk eksempel er visse Intel-netværkskort (såsom 82574L) , der har en veldokumenteret hardwarefejl: under visse omstændigheder stopper pakkeoverførslen og genoptages først efter en genstart. En måde at afhjælpe dette problem på har været at deaktivere ASPM for den pågældende enhed eller endda globalt.

I Linux er der flere måder at håndtere disse tilfælde på en server :

  • Deaktiver ASPM globalt med kernel boot-parameteren pcie_aspm=offDet er den mest effektive løsning, der gælder for alle enheder, på bekostning af at opgive denne energibesparelse fuldstændigt.
  • Brug en opdateret driver (for eksempel en modificeret version af e1000e (for Intel NIC'er), der deaktiverer ASPM eller ignorerer visse problematiske tilstande kun for den berørte enhed.
  • Rediger ASPM-bitsene for en bestemt enhed med værktøjer som setpci, justering af adfærden under kørsel uden at påvirke resten af ​​systemet (selvom ændringer normalt går tabt efter en genstart, hvis de ikke er automatiserede).

Det centrale spørgsmål for en server er, om ASPM's energibesparelser opvejer risikoen og kompleksiteten . I mange kritiske produktionsmiljøer er stabilitet og forudsigelighed altafgørende. Derfor er det almindeligt at se ASPM deaktiveret i BIOS eller kernen på maskiner, der bruges til databaser, intensiv virtualisering eller netværkstjenester, som ikke har råd til nedetid.

Når det er sagt, kan ASPM også anvendes på andre serverenheder , såsom PCIe RAID-kort eller NVMe-controllere. Hvis firmwaren og driverne er veldesignede, kan der potentielt opnås energibesparelser uden at påvirke tilgængeligheden, selvom den faktiske fordel i høj grad afhænger af, om disse enheder har betydelige perioder med inaktivitet eller er under konstant belastning.

ASPM, ACPI og systemets forskellige energitilstande

For at forstå, hvor ASPM passer ind i strømstyrings"kortet", er vi nødt til at tale om ACPI (Advanced Configuration and Power Interface). ACPI er standarden, der erstattede den ældre APM, og som definerer, hvordan firmwaren (BIOS/UEFI) og operativsystemet kommunikerer for at styre strøm, afbrydelser, dvaletilstande, IRQ-tildeling og meget mere.

ACPI er en nøglekomponent i stort set al moderne hardware, ikke kun x86 . Det stammer fra Intel, Microsoft og Toshiba i 90'erne, men gennem årene har det også spredt sig til arkitekturer som ARM, især inden for server- og HPC-sektorerne, hvor mange komponenter fra x86-økosystemet (UEFI, GPU'er osv.) genbruges.

Selvom ACPI er en bredt anvendt standard, har den modtaget megen kritik . Fremtrædende branchefolk, såsom Canonicals grundlægger Mark Shuttleworth, har påpeget, at lukket firmware (inklusive ACPI-implementeringer) er en ideel vektor for sikkerhedssårbarheder og potentielle bagdøre. Der er også blevet afdækket tilfælde, hvor producenter som Lenovo og Samsung bruger visse Windows ACPI-tabeller (f.eks. WPBT-tabellen) til at installere tvivlsom software eller teoretisk set kan fremme installationen af ​​vedvarende rootkits.

Inden for ACPI-universet finder vi adskillige typer strømtilstande , der påvirker hele systemet, specifikke enheder og processoren. ASPM er primært relateret til PCIe-linkkomponenten, men den sameksisterer med alle disse niveauer:

Systemets globale tilstande (G-tilstande)

Globale tilstande definerer aktivitetsniveauet for holdet som helhed og er repræsenteret af Gx/Sx-kombinationer:

  • G0/S0Systemet fungerer normalt.
  • G1 (affjedringstilstande), som igen er opdelt i:
    • G1/S1Let affjedring; CPU og cache forbliver strømforsynet.
    • G1/S2CPU'en lukker ned, og data går tabt i dens registre, men en del af systemet forbliver strømforsynet.
    • G1/S3: “suspend til RAM”; systemet ser ud til at være slukket, men RAM'en fortsætter med at blive forsynet med strøm for at opretholde tilstanden.
    • G1/S4dvaletilstand; indholdet af RAM gemmes i lageret, og RAM kan slukkes.
  • G2/S5: blød nedlukning; systemet er slukket, men der er minimal strøm til at tillade en opstart via en hændelse (tastatur, netværk osv.).
  • G3: fuldstændig nedlukning; ingen strømforsyning bortset fra minimale komponenter såsom realtidsuret, der drives af et batteri.

ASPM kommer primært i spil, når vi er i G0/S0 , ​​det vil sige, når systemet er tændt og operationelt. Det er her, PCIe-forbindelserne kan gå fra aktive tilstande til lavstrømstilstande uden at systemet går i fuldstændig dvaletilstand.

Enhedstilstande (D-tilstande) og processortilstande (C-tilstande)

Ud over globale tilstande definerer ACPI energitilstande på enhedsniveau , kaldet D-tilstande:

  • D0: enhed tændt og 100% funktionsdygtig.
  • D1 og D2mellemliggende tilstande, der varierer afhængigt af enheden; de sparer noget energi, men opretholder en vis responsivitet.
  • D3: opdelt i "varm" og "kold", afhængigt af om den opretholder hjælpestrøm eller ej; den kan helt holde op med at reagere på bussen.

Parallelt har processorer deres egne C-tilstande , som styrer, hvor meget CPU'en "slapper af", når der ikke er noget arbejde at udføre. Nogle af de mest relevante er:

  • C0: kernen udfører aktivt kode.
  • C1/C1E"Stop"-tilstand; kernen udfører ikke instruktioner, men kan vende tilbage til C0 næsten øjeblikkeligt. C1E-varianten tilføjer yderligere strømbesparende forbedringer.
  • C2: “stopur”; kernens ur er stoppet, det tager lidt længere tid at vende tilbage til C0.
  • C3 og dybere tilstande (C4-C10 i moderne CPU'er): cacher tømmes, interne ure slukkes, og i nogle tilfælde slukkes kernen endda, hvorved dens tilstand bevares i dedikerede hukommelser (for eksempel gemmer C6 tilstanden i SRAM med kernen ved 0 V).

Overgange mellem disse tilstande udløses af privilegerede instruktioner såsom HLT eller MWAIT , der styres af operativsystemet og strømstyringerne. En hardwareafbrydelse får kernen til øjeblikkeligt at overgå til C0 for at håndtere den, og nogle moderne processorer omdirigerer endda afbrydelser til allerede aktive kerner for at undgå unødvendigt at vække andre sovende kerner.

Processorens ydeevnetilstande (P-tilstande)

P-tilstande fokuserer på CPU-kernens ydeevne . De tillader dynamisk justering af processorens frekvens og spænding, hvilket sparer energi, når der ikke er behov for maksimal strøm, og øger clockhastighederne, når det er nødvendigt.

P-tilstandene er typisk repræsenteret som P0, P1, P2, ... hvor P0 er tilstanden med maksimal frekvens og spænding, og efterfølgende tilstande repræsenterer lavere frekvens og strømforbrug. Teknologier som Intel SpeedStep, AMD PowerNow!, VIAs PowerSaver og Turbo-tilstande er afhængige af disse tilstande til at skalere frekvensen baseret på belastning og begrænsninger såsom TDP (PL1, PL2 osv.).

I Linux styres disse mekanismer af undersystemer som f.eks. cpufreq y cpuidleDet er muligt at kontrollere den aktive frekvensregulator med kommandoer som f.eks. cpupower frequency-info eller gennemgang af filer i /sys/devices/system/cpu/cpu*/cpufreq/, hvor information såsom den aktuelle frekvens, maksimale og minimale frekvenser og tilgængelige regulatorer vises (ydeevne, strømbesparelse, efter behov, konservativosv.) og den anvendte driver.

Selvom alt dette kan synes at være irrelevant for ASPM, er det faktisk en del af det samme ACPI-økosystem : forskellige lag og mekanismer, der samarbejder om at justere strømforbruget og ydeevnen for CPU'er, enheder og systemforbindelser, inklusive PCIe.

Praktisk implementering af ASPM: BIOS/UEFI, operativsystem og drivere

For at ASPM kan fungere korrekt, er samarbejdet mellem tre hovedaktører nødvendigt : bundkortets firmware (BIOS/UEFI), operativsystemet og PCIe-enhedsdriverne.

BIOS/UEFI indeholder typisk specifikke ASPM- eller Link State Power Management-indstillinger , der giver dig mulighed for at aktivere, deaktivere eller vælge specifikke tilstande (f.eks. L0'er, L1, Auto, Off). Det er afgørende, at firmwaren implementerer ACPI-tabellerne korrekt og præcist beskriver, hvad hver enhed og PCIe-link understøtter.

Operativsystemet (Windows, Linux osv.) læser disse oplysninger fra ACPI og beslutter, hvilke politikker der skal anvendes.I Linux kan ASPM, som nævnt, gennemtvinges eller deaktiveres ved hjælp af kerneparametre eller gennem modulets policyfil. pcie_aspmI Windows er styringen indkapslet i strømstyringsplanen og i indstillingerne for "PCI Express → Link-state strømstyring".

PCIe-enhedsdrivere spiller også en afgørende rolle . For at kunne drage fordel af ASPM uden problemer skal de:

  • Angiv korrekt enhedens energibesparende egenskaber (hvilke tilstande den understøtter, hvilke latenser der er acceptable osv.).
  • Håndtér tilstandsovergange korrektforhindrer enheden i at "fryse" eller tage for lang tid om at reagere, når den kommer ud af en lav strømtilstand.
  • Hold dig opdateretDette skyldes, at mange producenter retter ASPM-fejl og optimerer forbruget gennem driver- eller firmwareopdateringer.

I nogle tilfælde har producenter udgivet modificerede drivere for at deaktivere ASPM på problematiske modeller.betragter det som en pragmatisk "løsning" på hardwarefejl. Dette er tilfældet med visse Intel NIC'er i Linux, hvor patchede versioner af e1000e ASPM er deaktiveret for at undgå problemet med transmissionstab.

For slutbrugere er den generelle anbefaling ikke at manuelt gennemtvinge ASPM i BIOS eller operativsystemet, medmindre du har en god forståelse af hardwaren, eller der er klar vejledning fra producenten. Hvis en Windows-rapport angiver, at ASPM er blevet deaktiveret på grund af inkompatibilitet, betyder det, at operativsystemet allerede har fastslået, at risikoen opvejer fordelen.

ASPM er endnu en brik i det moderne strømstyringspuslespil , tæt forbundet med ACPI, globale strømtilstande, enheders strømtilstande og CPU-strømtilstande. Når det implementeres korrekt, hjælper det med at reducere strømforbrug og varme, uden at du overhovedet bemærker det; når det implementeres forkert, kan det forårsage alt fra mindre latensproblemer til enhedsnedbrud og netværksproblemer, der er utroligt vanskelige at diagnosticere.

At forstå, hvordan det fungerer, og hvor det er konfigureret, giver dig mulighed for at træffe mere informerede beslutninger : lige fra at vælge den rigtige "Link State Power Management"-tilstand på din bærbare computer for at spare batterilevetid til at beslutte, om det på en missionskritisk server er mere værd at ofre et par watt og deaktivere ASPM til gengæld for bundsolid stabilitet.

Hvad er input lag, og hvordan påvirker det spil på Windows 11?
relateret artikel:
Sådan reducerer du inputforsinkelse i Windows 11: En komplet, praktisk guide

Tilføj som foretrukken kilde i Google