Vad är Active State Power Manager och hur påverkar det prestandan?

  • Active State Power Management (ASPM) hanterar strömförbrukningen för PCIe-länkar för att minska förbrukningen när det inte sker någon aktiv dataöverföring.
  • Att aktivera den förbättrar energieffektiviteten på bekostnad av att lägga till viss latens, vilket gör den särskilt användbar i bärbara datorer och mindre prioriterad i högpresterande utrustning.
  • Korrekt implementering beror på BIOS/UEFI, operativsystem och drivrutiner, och kan vara inaktiverat på problematisk hårdvara eller servrar där stabilitet prioriteras.
  • ASPM är en del av ACPI-ekosystemet och samexisterar med tillstånden G, D, C och P, vilka koordinerar den övergripande balansen mellan prestanda, förbrukning och temperatur i systemet.

Vad är en aktiv tillståndsströmhanterare?

Om du någonsin har sett något i stil med "PCI Express Active-State Power Management (ASPM) inaktiverad" i en Windows-strömrapport Och om du står kvar med tom blick, oroa dig inte: du är inte ensam. Den här tekniken låter väldigt teknisk, men den handlar egentligen om hur din dator bestämmer sig för att balansera strömförbrukning och prestanda när PCI Express-enheter inte körs med full kapacitet.

Att förstå vad Active State Power Manager är och hur det påverkar prestandan är viktigt. Oavsett om du använder en bärbar dator och vill maximera batteritiden, eller hanterar servrar eller kraftfulla datorer och är mer intresserad av stabilitet och topprestanda än att spara några watt, kommer vi att bryta ner det noggrant och koppla det till andra koncept som PCIe, ACPI, strömförsörjningslägen, BIOS/UEFI och strömförsörjningsalternativ för Windows och Linux.

Vad är Active State Power Management (ASPM) i PCI Express?

Active State Power Management (ASPM) är en energisparmekanism som är integrerad i PCI Express-standarden. ASPM hanterar förbrukningen av PCIe-länkar när anslutna enheter inte aktivt överför data. Istället för att hålla länken alltid "vid full belastning" tillåter ASPM att länken mellan processorn eller chipsetet och PCIe-enheten går in i låg belastning. lågenergitillstånd under perioder av inaktivitet.

Grundidén är väldigt enkel: när det inte finns någon datatrafik "slappnar länken av"Den förbrukar mindre energi och genererar mindre värme. När den behövs igen återgår länken till sitt aktiva tillstånd. Denna övergång är inte utan kostnad: den lägger till lite latensOch det är där balansen mellan prestanda och effektivitet kommer in i bilden.

ASPM övervakar strömförsörjningsläget i båda ändar av PCIe-länken. (till exempel chipsetets PCIe-kontroller och grafikkortet(eller NVMe-styrenheten). Det betyder att besparingarna inte bara sker i enheten, utan även i själva den fysiska länken (PCIe-transportlagret), även när själva PCIe-enheten förblir i ett "fullt fungerande" strömtillstånd.

I Linux-system hanteras ASPM:s globala beteende från kärnmodulen som motsvarar PCIeDet finns en modulparameter exponerad i /sys/module/pcie_aspm/parameters/policy där den policy som ska tillämpas definieras. Dessutom kan parametrar som [följande] användas under kärnstart. pcie_aspm=off att inaktivera det globalt eller pcie_aspm=force att tvinga fram ASPM även på enheter som i teorin inte stöder det korrekt (något som kan orsaka problem på problematisk hårdvara).

Sambandet mellan ASPM, Link State Power Management och energialternativ i Windows

I Windows visas detta vanligtvis i energialternativen som "Länkstatus Energihantering" (eller ”Link-State Power Management”) är i huvudsak det sätt som operativsystemet exponerar och styr ASPM-policyn för kompatibla PCIe-länkar.

Denna konfiguration ingår i energiplanenI den vanliga sökvägen: Inställningar → System → Ström och viloläge → Ytterligare energiinställningar → Ändra schemainställningar → Ändra avancerade energiinställningar. Inom de avancerade alternativen, under "PCI Express", hittar du "Länkstatus-strömhantering".

Windows erbjuder vanligtvis tre beteendenivåer för Link State Power Management vilka konceptuellt motsvarar olika grader av besparingar och latens:

  • deaktiverasPCIe-länken går inte in i energisparläge; prestanda och låg latens prioriteras.
  • Måttliga energibesparingarSystemet tillämpar en mellanliggande nivå av energibesparing. Förbrukningen minskar något, men återhämtningstiden från lågförbrukningsläget är relativt snabb.
  • Maximal energibesparingLänken stängs aggressivt av när det inte finns någon trafik; förbrukningen sjunker ytterligare, men uppvakningstiden från lågströmsläget är längre.

På en bärbar dator kan valet mellan måttlig eller maximal göra en betydande skillnad i batteritiden.Särskilt om datorn spenderar en betydande mängd tid med lättare uppgifter som att surfa eller titta på videor. På en stationär dator eller speldator väljer många användare att lämna den inaktiverad för att undvika potentiell latens och maximera varje FPS.

Hur ASPM påverkar prestanda och batteritid

Den mest uppenbara effekten av ASPM ses på två fronter: prestanda (latens) och energiförbrukning.Det är två sidor av samma mynt, och att leka med inställningarna innebär att prioritera den ena eller den andra.

När ASPM är aktiverat och i aggressiva lägen lyckas systemet minska strömförbrukningen på PCIe-länkar. förutsatt att de inte aktivt överför data. Detta är särskilt märkbart i:

  • Portátiles, som är beroende av batterikraft och uppskattar varje watt som sparas.
  • System med många PCIe-enheter (grafikkort, nätverkskort, lagringskontroller etc.), där de kumulativa besparingarna kan bli betydande.
  • Mycket täta datacenter- och servermiljöerdär några få watt per server skalas till stora siffror på rack- eller datacenternivå.

Priset att betala är den latens som introduceras vid övergången från ett lågeffektläge till ett aktivt tillstånd.Vid allmän användning (kontorsprogram, surfning, multimediauppspelning) är denna latens vanligtvis omärkbar för användaren. I krävande scenarier – spel, låg nätverkslatens, intensiv lagringsbelastning – kan den dock ha en marginell, men vanligtvis liten, effekt.

Vissa analyser och studier har nämnt förbättringar i energieffektivitet och PCIe-bussanvändning på upp till 20 % med korrekt ASPM-hantering.Det betyder inte att din enhet kommer att köras 20 % snabbare, utan snarare att den för samma arbetsbelastning kan förbruka mindre energi och generera mindre värme, vilket är särskilt intressant för bärbara datorer och mobila enheter.

I Windows är det vanligt att verktyg som powercfg -energy visa fel relaterade till ASPM av typen: ”PCI Express Active-State Power Management (ASPM) inaktiverad på grund av en känd inkompatibilitet med den här datorns maskinvara.” I dessa fall har Windows beslutat att blockera ASPM av säkerhetsskäl, eftersom man vet att en viss komponent inte hanterar det bra och kan orsaka krascher, enhetsavbrott eller instabilitet.

Typiska problem: ASPM-fel, batterier och hårdvarukompatibilitet

Många användare stöter först på ASPM när de undersöker batteriproblem eller diagnostiserar strömförsörjningen.särskilt i kraftfulla bärbara datorer med moderna processorer och dedikerade grafikkort (till exempel datorer med 12:e generationens Intel Core i9 och avancerad RTX-grafik).

Ett typiskt exempel är en ny bärbar dator vars batteri håller mycket kortare än förväntat. (2–2,5 timmar vid lätt användning jämfört med de 5–6 timmar som rapporterats av andra användare). När man genererar en rapport med powercfg -energy I Windows visas fel som följande:

  • "Plattformens energihanteringsfunktioner: PCI Express Active-State Power Management (ASPM) inaktiverad. ASPM har inaktiverats på grund av en känd inkompatibilitet med den här datorns hårdvara."
  • Varningar om USB-enheter som inte går in i selektivt viloläge (till exempel enheter med specifika USB-ID:n), vilket också ökar strömförbrukningen i standbyläge.

I dessa situationer är det inte alltid processorns fel.Ofta är det en kombination av:

  • Utrustningsdesign (moderkort, BIOS/UEFI, hur tillverkaren implementerar ACPI-tabeller och ASPM-stöd).
  • Enhetsdrivrutiner (GPU, NIC, lagring, USB) som inte implementerar ASPM helt eller korrekt.
  • Externa USB-enheter som förhindrar selektiv fjädring eller håller systemet mer aktivt än önskvärt.

I praktiken, när Windows rapporterar att ASPM är inaktiverat på grund av inkompatibilitetAtt återaktivera det utan risk är vanligtvis inte ett trivialt alternativ. Att tvinga det genom hack eller modifierade drivrutiner kan till exempel orsaka att ett nätverkskort slutar svara tills en omstart.

För att utesluta rena programvaruproblem i Windows rekommenderas vanligtvis några grundläggande steg.Kör felsökaren för strömförsörjning, Uppdatera Windows och drivrutineroch i vissa fall utföra systemfilkontroller med SFC (sfc /scannow) och DISM-verktyg (DISM.exe /Online /Cleanup-image /Scanhealth y /RestorehealthOm rapporten trots allt detta fortfarande visar att ASPM är inaktiverat av hårdvaran är det troligtvis en begränsning hos själva utrustningen eller dess firmware.

ASPM på servrar och dygnet runt-utrustning: Är det värt det?

Vad är Active State Power Manager och hur påverkar det prestandan?

I världen av servrar som är tillgängliga dygnet runt genererar ASPM en hel del debatt.Å ena sidan verkar det vara en bra idé att spara energi på PCIe-länkar. Å andra sidan är alla tecken på instabilitet eller paketförlust oacceptabla.

Ett klassiskt exempel är vissa Intel-nätverkskort (som 82574L) som uppvisar en väl dokumenterad hårdvarufel: under vissa förhållanden stoppas paketöverföringen och återställs endast vid en omstart. Ett av sätten att mildra detta problem har varit Inaktivera ASPM för den enheten eller till och med globalt.

I Linux finns det flera sätt att hantera dessa fall på servern.:

  • Inaktivera ASPM globalt med kärnans startparameter pcie_aspm=offDet är den mest effektiva lösningen, giltig för alla enheter, till priset av att helt avstå från denna energibesparing.
  • Använd en uppdaterad drivrutin (till exempel en modifierad version av e1000e (för Intel-nätverkskort) som inaktiverar ASPM eller ignorerar vissa problematiska tillstånd endast för den berörda enheten.
  • Ändra ASPM-bitarna för en specifik enhet med verktyg som setpci, justerar beteendet vid körning utan att påverka resten av systemet (även om ändringar vanligtvis går förlorade efter en omstart om de inte är automatiserade).

Den viktiga frågan för mig är om ASPM:s energibesparingar överväger risken och komplexiteten.I många kritiska produktionsmiljöer är stabilitet och förutsägbarhet högsta prioritet. Det är därför det är vanligt att se ASPM inaktiverat i BIOS eller kärnan på maskiner som används för databaser, intensiv virtualisering eller nätverkstjänster som inte har råd med driftstopp.

Med det sagt kan ASPM även tillämpas på andra serverenheter.såsom PCIe RAID-kort eller NVMe-styrenheter. Om firmware och drivrutiner är väl utformade kan energibesparingar potentiellt uppnås utan att det påverkar tillgängligheten, även om den faktiska nyttan i hög grad beror på om dessa enheter har betydande perioder av inaktivitet eller är ständigt belastade.

ASPM, ACPI och systemets olika energitillstånd

För att förstå var ASPM passar in på "kartan" över energihantering behöver vi prata om ACPI. (Advanced Configuration and Power Interface). ACPI är standarden som ersatte den äldre APM och definierar hur den inbyggda programvaran (BIOS/UEFI) och operativsystemet kommunicerar för att hantera strömförsörjning, avbrott, vilolägen, IRQ-tilldelning och mycket mer.

ACPI är en nyckelkomponent i praktiskt taget all modern hårdvara, inte bara x86.Det föddes ur Intel, Microsoft och Toshiba på 90-talet, men under åren har det också spridit sig till arkitekturer som ARM, särskilt inom server- och HPC-området, där många komponenter i x86-ekosystemet (UEFI, GPU:er etc.) återanvänds.

Trots att ACPI är en allmänt använd standard har den fått mycket kritik.Några framstående röster i branschen, såsom Canonicals grundare Mark Shuttleworth, har påpekat att sluten firmware (inklusive ACPI-implementeringar) är en idealisk vektor för säkerhetsbrister och potentiella bakdörrar. Fall har också upptäckts där tillverkare som Lenovo och Samsung använder vissa Windows ACPI-tabeller (till exempel WPBT-tabellen) för att installera tvivelaktig programvara eller, teoretiskt sett, skulle kunna underlätta installationen av ihållande rootkits.

Inom ACPI-universumet hittar vi flera typer av energitillstånd vilket påverkar både hela systemet och specifika enheter och processorn. ASPM är främst relaterat till PCIe-länkkomponenten, men det interagerar med alla dessa nivåer:

Systemets globala tillstånd (G-tillstånd)

Globala tillstånd definierar aktivitetsnivån för teamet som helhet. och representeras av Gx/Sx-kombinationer:

  • G0/S0Systemet fungerar normalt.
  • G1 (fjädringslägen), vilket i sin tur är indelat i:
    • G1/S1Lätt fjädring; CPU och cacheminne förblir strömförsörjda.
    • G1/S2CPU:n stängs av och data går förlorade i dess register, men en del av systemet förblir strömförsörjt.
    • G1/S3: ”suspend to RAM”; systemet verkar vara avstängt, men RAM-minnet fortsätter att vara strömförsörjt för att bibehålla tillståndet.
    • G1/S4viloläge; innehållet i RAM-minnet sparas i lagringsutrymmet och RAM-minnet kan stängas av.
  • G2/S5mjuk avstängning; systemet är avstängt, men det finns minimal ström för att möjliggöra en uppstart via en händelse (tangentbord, nätverk etc.).
  • G3: fullständig avstängning; ingen strömförsörjning förutom minimala komponenter såsom realtidsklockan som drivs av ett batteri.

ASPM spelar huvudsakligen roll när vi är i G0/S0Det vill säga, med systemet påslaget och i drift. Det är här PCIe-länkar kan övergå från aktiva tillstånd till lågströmslägen utan att systemet försätts i viloläge helt.

Enhetsstatus (D-status) och processorstatus (C-status)

Förutom globala tillstånd definierar ACPI energitillstånd på enhetsnivå, de så kallade D-staterna:

  • D0: enheten är påslagen och fungerar till 100 %.
  • D1 och D2mellanliggande tillstånd som varierar beroende på enhet; de sparar lite energi men bibehåller viss respons.
  • D3: uppdelad i "varm" och "kall", beroende på om den bibehåller hjälpströmmen eller inte; den kan sluta reagera på bussen helt.

Parallellt har processorerna sina egna C-tillstånd.Dessa styr hur mycket processorn "slappnar av" när det inte finns något arbete att göra. Några av de mest relevanta är:

  • C0kärna som aktivt exekverar kod.
  • C1/C1E: "stopp"-tillstånd; kärnan exekverar inte instruktioner men kan återgå till C0 nästan omedelbart. C1E-varianten har ytterligare förbättringar för energibesparing.
  • C2: ”stoppklocka”; kärnklockan stoppas, det tar lite längre tid att återgå till C0.
  • C3 och djupare tillstånd (C4-C10 i moderna processorer): cacheminnor töms, interna klockor stängs av och i vissa fall stängs kärnan till och med av, vilket bevarar dess tillstånd i dedikerade minnen (till exempel C6 sparar tillståndet i SRAM med kärnan vid 0 V).

Övergångar mellan dessa tillstånd utlöses av privilegierade instruktioner som HLT eller MWAITDessa hanteras av operativsystemet och strömförsörjningskontrollerna. Ett hårdvaruavbrott gör att kärnan omedelbart växlar till C0 för att hantera det, och vissa moderna processorer omdirigerar till och med avbrott till redan aktiva kärnor för att undvika att i onödan "väcka upp" andra vilande kärnor.

Processorns prestandatillstånd (P-tillstånd)

P-staterna fokuserar på CPU-kärnans prestandaDe möjliggör dynamisk justering av processorns frekvens och spänning, vilket sparar energi när maximal effekt inte behövs och ökar hastigheten vid behov.

P-tillstånd representeras vanligtvis som P0, P1, P2, … P0 är tillståndet med maximal frekvens och spänning, och efterföljande tillstånd med lägre frekvens och lägre strömförbrukning. Teknologier som Intel SpeedStep, AMD PowerNow!, VIA PowerSaver eller Turbo-lägen De förlitar sig på dessa tillstånd för att skala frekvensen enligt belastningen och gränser som TDP (PL1, PL2, etc.).

I Linux styrs dessa mekanismer av delsystem som cpufreq y cpuidleDet är möjligt att kontrollera den aktiva frekvensregulatorn med kommandon som cpupower frequency-info eller granskar filer i /sys/devices/system/cpu/cpu*/cpufreq/, där information som aktuell frekvens, maximala och minimala frekvenser och tillgängliga regulatorer visas (prestanda, energisparläge, ondemand, konservativetc.) och den drivrutin som används.

Även om allt detta kan verka orelaterat till ASPM, är det faktiskt en del av samma ACPI-ekosystemolika lager och mekanismer som samarbetar för att justera CPU:ns strömförbrukning och prestanda, enheter och systemlänkar, inklusive PCIe.

Praktisk implementering av ASPM: BIOS/UEFI, operativsystem och drivrutiner

För att ASPM ska fungera korrekt behövs samarbete mellan tre huvudaktörer.moderkortets firmware (BIOS/UEFI), operativsystemet och PCIe-drivrutinerna.

BIOS/UEFI innehåller ofta specifika alternativ för ASPM eller Link State Power Management. Dessa låter dig aktivera, inaktivera eller välja specifika lägen (t.ex. L0s, L1, Auto, Av). Det är viktigt att den inbyggda programvaran korrekt implementerar ACPI-tabellerna och korrekt beskriver vad varje enhet och PCIe-länk stöder.

Operativsystemet (Windows, Linux, etc.) läser informationen från ACPI och bestämmer vilka policyer som ska tillämpas.I Linux, som nämnts, kan ASPM tvingas fram eller inaktiveras med hjälp av kärnparametrar eller genom modulens policyfil. pcie_aspmI Windows är hanteringen inkapslad i energischemat och i alternativen för "PCI Express → Link-state power management".

PCIe-enhetsdrivrutiner spelar också en avgörande rollFör att dra nytta av ASPM utan problem måste de:

  • Ange korrekt enhetens energibesparande kapacitet (vilka tillstånd den stöder, vilka latenser som är acceptabla, etc.).
  • Hantera tillståndsövergångar korrektförhindrar att enheten "fryser" eller tar för lång tid på sig att svara när den lämnar ett lågt strömläge.
  • Hålla sig uppdateradDetta beror på att många tillverkare korrigerar ASPM-fel och optimerar förbrukningen genom drivrutins- eller firmwareuppdateringar.

I vissa fall har tillverkare släppt modifierade drivrutiner för att inaktivera ASPM på problematiska modeller.och anser det vara en pragmatisk "lösning" på hårdvarufel. Detta är fallet med vissa Intel-nätverkskort i Linux, där patchade versioner av e1000e ASPM är inaktiverat för att undvika problem med överföringsförlust.

För slutanvändaren är den allmänna rekommendationen att inte tvinga fram ASPM manuellt i BIOS eller operativsystemet om du inte har god förståelse för hårdvaran. eller så finns det en tydlig guide från tillverkaren. Om en Windows-rapport säger att den har inaktiverats på grund av inkompatibilitet, betyder det att operativsystemet redan har bestämt att risken överväger nyttan.

ASPM är ytterligare en pusselbit för modern energihanteringNära kopplat till ACPI, globala, enhets- och CPU-strömtillstånd. Väl implementerat hjälper det till att minska strömförbrukning och värme utan att du märker det; dåligt implementerat kan det orsaka allt från lätt latens till enhetskrascher och nätverksproblem som är mycket svåra att diagnostisera.

Att veta hur det fungerar och var det är konfigurerat gör att du kan fatta mer välgrundade beslut.Från att välja rätt läge för "Link State Power Management" på din bärbara dator för att spara batteri, till att avgöra om det på en verksamhetskritisk server är mer värt att offra några watt och inaktivera ASPM i utbyte mot bergfast stabilitet.

Vad är input lag och hur påverkar det spel på Windows 11?
Relaterad artikel:
Hur man minskar inmatningsfördröjning i Windows 11: En komplett, praktisk guide

Lägg till som prioriterad källa i Google