ACPI-definitie (geavanceerde configuratie en voedingsinterface)

24 april 2024

ACPI, of Advanced Configuration and Power Interface, is een standaard die een open interface biedt voor apparaatconfiguratie en energiebeheer door de besturingssysteem. Hiermee kunnen systemen energiebesparende bewerkingen en apparaatbeheer dynamisch en efficiënt uitvoeren.

Wat is geavanceerde configuratie en voedingsinterface (ACPI)?

ACPI, of Advanced Configuration and Power Interface, is een essentiële interface en energiebeheerspecificatie op systeemniveau, ontwikkeld om de interactie tussen besturingssystemen en systemen te verenigen en te standaardiseren. hardware voor effectief energiebeheer en configuratie. Het biedt de mechanismen voor detectie, configuratie en energiebeheer van hardwarecomponenten door het besturingssysteem, waardoor geavanceerde controle van systeembronnen mogelijk is.

ACPI definieert een verzameling tabellen en uitvoerbare code (in de vorm van ACPI Machine Language of AML) die dicteren hoe individuele componenten en het systeem als geheel de stroom beheren en reageren op configuratieverzoeken. Deze specificatie omvat gedetailleerde methodologieën voor het beheren van energietoestanden voor individuele apparaten (D-toestanden), processor toestanden (C-toestanden voor vermindering van inactief vermogen en P-toestanden voor prestatieschaling) en systeemtoestanden (S-toestanden, zoals slaap en sluimerstand). Bovendien gaat ACPI verder dan louter energiebeheer en omvat het functionaliteit voor de afhandeling van systeemgebeurtenissen, hot-plugging van apparaten en gedetailleerd batterij- en temperatuurbeheer.

Waarom is ACPI belangrijk?

ACPI is om verschillende redenen belangrijk, vooral omdat het de computerfunctionaliteit, de energie-efficiëntie en de gebruikerservaring verbetert:

  • Energiebeheer. Een van de belangrijkste functies van ACPI is het beheren van het stroomverbruik van verschillende apparaten die op een computersysteem zijn aangesloten. Dit is van cruciaal belang voor het verlengen van de levensduur van de batterij in draagbare apparaten zoals laptops en mobiele telefoons. Door te bepalen wanneer afzonderlijke componenten actief zijn of in een slaapstand met laag energieverbruik kunnen worden gezet, helpt ACPI energie te besparen.
  • Systeemstabiliteit en prestaties. ACPI vergemakkelijkt het centrale beheer van hardwarebronnen via het besturingssysteem. Deze gecentraliseerde controle zorgt voor een efficiëntere omgang met bronnen en een betere systeemstabiliteit. Afhankelijk van de huidige werklast beheert ACPI dynamisch CPU energietoestanden (C-toestanden) en prestatietoestanden (P-toestanden), waardoor de prestaties en het stroomverbruik in realtime worden geoptimaliseerd.
  • Hardware-abstractie. ACPI biedt een gestandaardiseerde manier van communiceren met hardwareapparaten, wat de ontwikkeling van besturingssystemen vereenvoudigt. Dankzij deze abstractielaag kan het besturingssysteem hardwareconfiguratie en energiebeheer uitvoeren zonder directe interactie met de hardware.
  • Verbeterde systeemconfiguraties. ACPI ondersteunt complexe configuraties en grootschalige systemen, inclusief hot-swappable en plug-and-play-functies. Met deze functionaliteit kunnen gebruikers apparaten toevoegen en verwijderen zonder handmatig hardware te configureren of hun systemen opnieuw op te starten.

Een korte geschiedenis van ACPI

ACPI, ontwikkeld door de toonaangevende technologiebedrijven Intel, Microsoft en Toshiba, werd voor het eerst uitgebracht in 1996. Het initiatief had tot doel de beperkingen van eerdere energiebeheerstandaarden zoals APM (Advanced Power Management) te overwinnen, die slechts beperkte controle over de stroomdistributie boden en geen ondersteunen de toen nieuwe plug-and-play-functionaliteiten.

ACPI introduceerde een meer geavanceerde methode voor het beheren van energie die rechtstreeks werd gecontroleerd door het besturingssysteem, waardoor een fijnere controle over hardwarebronnen mogelijk werd. Dit was cruciaal voor de ontwikkeling van laptops, die een beter batterijbeheer vereisten om de bruikbaarheid en draagbaarheid te verbeteren. Naarmate ACPI evolueerde, werden de specificaties rijker, met functies die thermisch beheer, hot-swapping en meer gedetailleerde statusrapportage van hardware mogelijk maakten.

Met opeenvolgende herzieningen, zoals ACPI 2.0 in 2000 en latere versies, voegde de standaard ondersteuning toe voor 64-bit systemen en nieuwe hardwaretypen, waardoor de schaalbaarheid werd vergroot en de mogelijkheid om met nieuwe technologieën om te gaan zodra deze opkwamen. Dit aanpassingsvermogen verzekerde de relevantie van ACPI naarmate computerapparatuur diverser werd en de normen voor energie-efficiëntie strenger werden.

Tegenwoordig is ACPI een fundamenteel onderdeel van vrijwel alle besturingssystemen en computerapparatuur, niet alleen een integraal onderdeel van het energiebeheer, maar ook van het garanderen van stabiele en flexmogelijke hardware-integratie.

ACPI-architectuur

De ACPI-architectuur biedt een uitgebreid raamwerk voor apparaatconfiguratie en energiebeheer. Het is ontworpen om besturingssystemen op een gestandaardiseerde manier te laten communiceren met hardwareapparaten, waardoor zowel de flexbillijkheid en energie-efficiëntie van een systeem. Hier volgt een overzicht van de belangrijkste componenten waaruit de ACPI-architectuur bestaat.

ACPI-tabellen

ACPI gebruikt verschillende tabellen om informatie over de hardwareconfiguratie en systeemstatus op te slaan. Deze tabellen zijn van cruciaal belang omdat ze gegevens bevatten die het besturingssysteem nodig heeft om de mogelijkheden van de hardware te begrijpen en te beheren. De belangrijkste tabellen zijn:

  • DSDT (gedifferentieerde systeembeschrijvingstabel). Deze tabel bevat het merendeel van de ACPI-gegevens voor een systeem, inclusief definities voor de meeste hardwarecomponenten en hun energiebeheerfuncties.
  • SSDT (tabel met secundaire systeembeschrijving). Biedt aanvullende definities die mogelijk vereist zijn voor systeemonderdelen die niet zijn opgenomen in de DSDT.
  • FADT (vaste ACPI-beschrijvingstabel). Biedt statische informatie die nodig is voor de juiste werking van verschillende hardwarecomponenten, inclusief informatie op systeemniveau en verwijzingen naar andere tabellen.
  • MADT (meerdere APIC-beschrijvingstabel). Bevat informatie over de interruptcontroller(s) van het systeem en wordt voornamelijk gebruikt in systemen met meerdere processors.

AML (ACPI-machinetaal)

ACPI-tabellen zijn gecodeerd in een bytecodetaal genaamd ACPI Machine Language (AML). Deze taal wordt geïnterpreteerd door de ACPI-component in het besturingssysteem, waardoor het besturingssysteem de hardwarebronnen van het systeem rechtstreeks kan beheren. AML wordt gebruikt om gebeurtenissen, apparaatconfiguraties en energiestatussen op een hardware-onafhankelijke manier te definiëren.

ACPI-BIOS

Het systeem firmware or BIOS omvat een ACPI-implementatie die de initiële ACPI-tabellen en interfaces biedt die nodig zijn zodat het besturingssysteem het beheer van systeembronnen kan overnemen. Het ACPI BIOS is verantwoordelijk voor het opstarten van de ACPI-omgeving voordat de controle aan het besturingssysteem wordt overgedragen.

Afhandeling van evenementen

ACPI definieert een mechanisme voor het afhandelen van verschillende systeemgebeurtenissen met betrekking tot stroom, thermisch beheer en andere systeemfuncties. Deze omvatten gebeurtenissen zoals veranderingen in de batterijstatus, temperatuurveranderingen of updates van de hardwarestatus. Het besturingssysteem kan in realtime op deze gebeurtenissen reageren en het systeembeleid dynamisch aanpassen om optimale prestaties en energieverbruik te garanderen.

Kracht Staten

ACPI specificeert verschillende globale energiestatussen voor het systeem, van volledig aan tot volledig uit, evenals apparaatspecifieke energiestatussen. Met deze statussen kan het systeem het energieverbruik stapsgewijs verminderen door niet-essentiële componenten te deactiveren wanneer ze niet in gebruik zijn of op basis van gebruikersinstellingen.

Besturingssysteeminterfaces

Het besturingssysteem communiceert met ACPI via een onderdeel dat het ACPI-stuurprogramma wordt genoemd. Deze driver is verantwoordelijk voor het interpreteren van AML en het uitvoeren van ACPI-functies. Het fungeert als brug tussen de systeemhardware en de software en zorgt ervoor dat het besturingssysteem hardwarebronnen efficiënt kan beheren volgens ACPI-specificaties.

ACPI-mogelijkheden

ACPI biedt een breed scala aan mogelijkheden die essentieel zijn voor moderne computersystemen. Deze mogelijkheden faciliteren verbeterd apparaatbeheer, energie-efficiëntie en reactievermogen van het systeem. Hieronder vindt u enkele van de belangrijkste mogelijkheden van ACPI.

Power management

ACPI introduceert verschillende energiestatussen voor apparaten en het systeem als geheel, waardoor het energieverbruik aanzienlijk kan worden verminderd wanneer apparaten inactief zijn, niet in gebruik zijn of wanneer het systeem zich in een energiezuinige modus bevindt. De belangrijkste machtsstaten zijn onder meer:

  • G-staten (mondiale staten). Deze omvatten de systeembrede statussen zoals werken (G0), slapen (G1) en zacht uit (G2). Elke staat heeft substaten die verschillende niveaus van energiebesparing bieden.
  • S-staten (slaapstaten). Dit zijn verschillende niveaus van systeemslaaptoestanden, variërend van lichte slaap (S1) tot diepe slaap (S4, ook bekend als slaapstand), waarbij meer apparaatcontext wordt opgeslagen om snellere hervattingstijden mogelijk te maken.
  • D-States (apparaatstatussen). Deze gelden voor individuele apparaten. D0 is volledig operationeel en hogere cijfers (D1, D2, D3) duiden op lagere energiemodi die leiden tot uit- of niet-functionele toestanden.
  • C-staten (CPU-staten). Deze toestanden verminderen het energieverbruik van de CPU door geleidelijk delen van de processor uit te schakelen wanneer deze niet actief zijn, variërend van verminderd vermogen (C1) tot diepe uitschakelmodi (C3 of hoger).

Hardware-abstractie

ACPI abstraheert de details van hardware-interfaces, waardoor het besturingssysteem generieke bewerkingen kan uitvoeren zonder details over de hardware te hoeven kennen. Dit vereenvoudigt het systeemontwerp en verbetert de draagbaarheid tussen verschillende hardwareplatforms.

Gebeurtenisgestuurd programmeren

ACPI ondersteunt een gebeurtenisgestuurd programmeermodel waarbij hardwaregebeurtenissen acties kunnen activeren zonder directe tussenkomst van de CPU, waardoor de systeemefficiëntie en reactievermogen worden verbeterd. Gebeurtenissen zoals het indrukken van de aan/uit-knop, dekselschakelaars of veranderingen in de batterijstatus kunnen worden geconfigureerd om automatisch specifieke systeemreacties te activeren.

Thermisch beheer

ACPI maakt effectief thermisch beheer mogelijk via strategieën die de bedrijfsparameters van hardwarecomponenten aanpassen op basis van de huidige thermische omstandigheden. Dit helpt bij het handhaven van veilige bedrijfstemperaturen, waardoor oververhitting en mogelijke schade aan hardwarecomponenten wordt voorkomen.

Systeemconfiguratie en toewijzing van bronnen

ACPI vergemakkelijkt dynamische configuratie en toewijzing van bronnen, waardoor systemen tijdens runtime hardware kunnen herkennen en configureren en bronnen kunnen beheren. Deze mogelijkheid ondersteunt plug-and-play-functionaliteit, waarbij apparaten kunnen worden toegevoegd of verwijderd zonder dat het systeem opnieuw hoeft te worden opgestart.

Battery management

ACPI biedt gedetailleerde mogelijkheden voor batterijbeheer, inclusief het rapporteren van de batterijstatus, resterende capaciteit en geschatte looptijden. Met deze informatie kunnen besturingssystemen het energieverbruik optimaliseren op basis van de huidige batterijstatus en gebruikers nauwkeurige schattingen van de levensduur van de batterij geven.

Hot swapping

ACPI ondersteunt hot swapping voor sommige apparaten, waardoor deze kunnen worden vervangen of verwijderd terwijl het systeem actief is. Dit is vooral belangrijk bij server omgevingen en voor apparaten zoals batterijen en sommige opslagmedia.

Wekmogelijkheden

Met ACPI kunnen apparaten het systeem ontwaken uit een lagere energiestatus. Netwerkkaarten kunnen bijvoorbeeld worden ingesteld om het systeem te wekken als reactie op netwerkactiviteit, en toetsenborden kunnen het systeem uit de slaapstand halen wanneer er op een toets wordt gedrukt.


Anastasia
Spasojević
Anastazija is een ervaren contentschrijver met kennis en passie voor cloud computergebruik, informatietechnologie en onlinebeveiliging. Bij phoenixNAP, richt ze zich op het beantwoorden van brandende vragen over het waarborgen van de robuustheid en veiligheid van gegevens voor alle deelnemers aan het digitale landschap.