Trei Amigos 2018 ACPI, OnNow și instantaneu disponibile PC partea I

au făcut primii pași către reducerea consumului de energie Intel
înapoi în 1989. În procesorul 386SL a apărut modul SMM - Modul de Management System,
care a permis la putere a anumitor componente ale sistemului și chiar să oprească
procesorul în sine.

Cine a spus ACPI?

Ce este ACPI, în plus față de decodarea directă a abrevierilor - Avansat
Configurarea și Power Interface? Standardul este exact ceea ce spun ei
în numele său, adică. e. descrierea interfeței furnizate de sistemul de operare
(OS) de acces unificat la funcțiile de economisire a energiei de hardware.
În teorie, ACPI - este un element de acționare pentru arhitectura OSPM. Toate clar?
De fapt, nimic misterios despre această tehnologie nu este prezent, cu excepția incredibilul
abundența de acronime de neînțeles. OSPM trebuie tratate ca un sistem de operare direcționat
configurare și Power Management - Configurare și Power Management
sub controlul sistemului de operare. Anterior, înainte de apariția conceptului OSPM, toate operațiile de schimbare
de operare setările de hardware (placa de baza, interne și dispozitive externe,
microcontrolere încorporate) au fost obținute la BIOS-ul sistemului. Cu toate acestea, utilizatorii
Nu am putea fi mulțumiți de această situație. Ei lucrează în principal cu
Sisteme de operare și aplicații, care au informațiile cele mai complete despre dorințele lor
și preferințe. Aici nu putem vorbi despre orice „conflict de interese“
și prioritatea ar trebui acordată omului. Și, din moment ce nu toată lumea vrea ca fiecare minut
reconfigura calculatorul folosind mai mult de interfață BIOS neprietenos,
ar trebui să ofere utilizatorului „pârghie“ pentru lungimea folosind
care va fi capabil, dacă nu este de a transforma un PC, afectează în mod direct
la politicile de economisire a energiei. Este aceste obiective altruiste urmărite
creatorii caietul de sarcini ACPI: Microsoft, Intel, Toshiba, Compaq și Phoenix.

Documentul de 481 de pagini intitulat „Advanced Configuration și putere
Interface Specification Revision 2.0“, nu vorbesc despre recomandări specifice
proiectare de hardware sau software. Mai mult decât atât, definiția
lista de funcții care sunt potrivite pentru fiecare tip de dispozitiv este
la latitudinea fabricantului. ACPI oferă un set de reguli care trebuie urmate
ingineri atunci când creați propriile implementări ale tehnologiilor de economisire a energiei.

În general, întregul model se bazează pe utilizarea ASL / AML Limbi tandem. pe ASL
firmware compilat - metode de control (metode de control), realizând
o anumită configurație și funcția de gestionare a energiei.

Legătura dintre hardware și software-ul are loc prin intermediul evenimentului.
Notificare se realizează prin generarea unui control al sistemului de întrerupere
(SCI) - partajat întrerupe. Există trei tipuri de evenimente: transparente pentru
Sistem de operare (OS Evenimente transparente), o întrerupere (întrerupere evenimente) și hardware (hardware
Evenimente). Deja de la numele, este clar că tipul transparent de eveniment pentru
îndeplini funcțiile care nu sunt acceptate de sistemul de operare (de exemplu, în cazul „Moștenire“
ACPI incompatibil OS) sau pur și simplu, nu necesită o atenție din partea ei. întrerupe
lansa în acțiune stivuitoare - programe scrise în ASL. hardware-
evenimente provoca o acțiune necondiționată de către sistem care nu poate fi
„Discuție“ (poate fi oprit operațiunile de repornire, și așa mai departe.
d.).

direct asociată cu controlul temperaturii tehnica de preempțiune, care,
Apropo, în conformitate cu specificațiile standardelor se măsoară în grade Kelvin. echipament
ar trebui să notifice ACPI orice schimbări de temperatură de SCI-întrerupere.
Informații despre care există zone termice în sistem și cât de des
trebuie să interogheze, este conținută în _TZP obiect. În mod firesc, pentru creația sa
și actualizarea responsabilitatea BIOS. SCI lansează handler de control
Metoda _TMP, compară temperatura actuală a tuturor zonelor termice cu prag
valoarea primită pentru ei. Există patru praguri, fiecare dintre acestea
Ea are propria sa metodă de răcire. Semnificația lor este descrisă în tabel.
Pragurile sunt setate individual pentru fiecare zonă și poate fi modificată în mod dinamic,
este uneori necesar, de exemplu, în cazul unei schimbări de dispozitiv în spațiile de susținere
hot swapping (dispozitiv Bay, PC Card, și așa mai departe. d.). În plus, utilizatorul trebuie să
să fie în măsură să influențeze strategia de răcire ca priorități umane
rareori coincid cu preferințele PC-ului. Prioritățile schimba „de Carlson“
- prin inversarea rapids pe scala de temperatură.

Punctul critic. Oprirea sistemului

Casa, care a fost construit de către Compaq, Intel, Microsoft,
Phoenix si Toshiba: obiecte și subiecte

Enumerarea este fără sfârșit, iar există o structură care descrie
capacitățile acestui ACPI de punere în aplicare special (MADT), seturi de registre (fix
Registrele caracteristicilor) și evenimente (fixe). Prezenta evenimente Unele dintre conceptele le atingem,
și unele omise pentru eșecul de a explica conținutul detaliilor de volum îngrășa
pe mai multe pagini de revistă.

Vor fi discutate în mod exclusiv asupra nivelurilor de consum de energie. Standardul ACPI
numărul lor de neimaginat: în fiecare caz un set diferit. acestea diferă
nu numai o tensiune, valoarea curentă și frecvența de ceas, dar, de asemenea, rata de „trezire“
dispozitiv. Să începem cu statele globale, dintre care doar patru:

  • G0 - funcționare normală;
  • G1 - „lumina de somn“, din punctul de vedere al utilizatorului
    mașina este oprită, dar contextul de aplicare curentă este salvată;
  • G2 - „somn profund“, contextul este pierdut;
  • G3 - sistem de închidere mecanică.

Prin "contextul unei aplicații" (context de sistem)
aici se referă la starea procesorului curent (registre, steaguri, cache-uri, și așa mai departe.
d.), conținutul RAM și instalați pe chipset-ul placii de baza. Prin urmare,
din G1 mai rapid decât „trezirea“ din G2. În același timp, pentru a reveni
de la G2 la G0 OS repornire este necesară, care nu este necesară în cazul tranziției
G1 -> G0. Dar nivelurile de consum de energie pentru condițiile de mai sus sunt
invers proporțională cu viteza de „trezire“.

În interiorul statelor la nivel mondial există o clasificare mai detaliată: cinci state“
somn „(state de dormit) de la S1 la S5. Primul menține cel mai mic procent
putere, dar permite o revenire rapidă la funcționarea normală. pierdut
numai datele din cache-ul procesorului (CPU, deoarece este complet oprit)
OS ar trebui să aibă grijă de păstrarea lor. S2 - cu punctul de vedere al sistemului de operare, aproape
identice S1, cu excepția faptului că alimentarea este oprită, în general, CPU. Toate majore
ceasuri sunt oprite, cu excepția celor care sunt asociate cu upgrade RAM.
Următorul pas logic - puterea totală a subsistemului, cu excepția
Memorie: Suspend-to-RAM, S3. BIOS-ul este responsabil pentru restaurarea contextului
controler de memorie și controler de cache. După ce survine detecția puterii
Toate dispozitivele de pe pneuri, astfel încât dispozitivul va fi descoperit „fierbinte“
conexiune. Chiar și "mai profundă" este starea S4 - Suspend-to-Disk,
Sistemul este, de fapt oprit, dar contextul actual, inclusiv imaginea de memorie va
salvate pe disc. Recuperarea din S4, la fel ca în cazul precedent, mijloace
procesul de determinare a autobuzelor disponibile (enumerare). Mai economic, poate, poate
numai să fie pe deplin off - S5, care, în ciuda numelui său, nu
Este o stare de somn. A cincea etapă pe drum „jos“ - este că
noi numim soft-off, soft-off. Nu există evenimente (trezire
evenimente) „trezi“ sistemul (cu excepția apăsarea butoanelor de pe sistem
bloc) nu poate.

Să ne întoarcem la descrierea statelor energetice ale CPU - acestea sunt desemnate
litera "C": C0, C1, C2 și C3. În funcțiile procesor C0 și unul
din principalele modalități de reglementare a consumului de energie este alternanța de lucru
și non-perioade de lucru. Utilizați o pereche de valori: „lățime datorie“ și „taxe
valoare“, determină mai întâi durata de timp (ciclu), iar al doilea - raportul
perioadele de muncă și de odihnă în ea. Oprire CPU este realizată prin eliminarea
furnizează o frecvență de ceas. „Stare de inactivitate“ numărul 1 înseamnă o
reducerea consumului de energie, fără manifestări externe (pentru software-ul
de securitate). Din aceasta trebuie să aibă loc atât de repede încât latența
acest proces nu este un factor care merită să fie examinat de către sistemul de operare.
Nivelul C2 a declarat opțional, acesta oferă un nivel mai scăzut al consumului de energie,
decât C1, în timp ce ieșirea statului a declarat în tabelul FADT și luate în considerare
OS. CPU ar trebui să mențină conținutul cache-uri lor coerente (m. E. Pentru a urmări
operațiuni într-un mediu multiprocesor, și cereri de modul Master Bus). nivel mai
profundă „somn“ la No. 3 permite procesorului să „arunce“
gestiona cache-uri într-un mediu multiprocesor, în general, acestea pot fi pre
resetare. Dacă încercați un dispozitiv pentru a accesa în mod direct de memorie
Bus Modul Master în procesorul să fie eliberat din starea C3 (în C2 sau C1). dacă
cereri de memorie devin mai frecvente, sistemul de operare poate decide să-l folosească mai târziu
Numai un înalt nivel de stat „somn“ de C3. C3 pe lista
capete, producătorii au dreptul de a invita orice număr de sistem de operare
(Judecând după declarațiile structurii de date, până la 256 de niveluri). setările la nivel, și
și anume consumul de energie și de latență a „trezire“, trebuie
FADT înregistrate în tabel, și, astfel, o sisteme de operare ACPI conforme vor primi toate necesare
informații pentru luarea deciziilor.

În plus față de procesorul și sistemul în ansamblu, un set de stări și a luat unele
dispozitiv. Zero de stat este menționată ca D0, și spune că dispozitivul
pe deplin și gata de utilizare (sau deja). Urmat de stat
D1 și D2, singura diferență cu punctul de vedere al sistemului de operare - diferite latență
nivelurile de „trezire“ și consumul de energie. Acestea pot fi puse în aplicare
atât prin reducerea tensiunii de alimentare și a frecvenței de ceas, și deconectarea
module individuale ale dispozitivului. D3 - cel mai „somn profund“, cu plin
prin oprirea. La rândul său, în interiorul fiecărui stat permis-D
Ea plasează orice număr de mai multe niveluri „delicate“ ale consumului de energie,
să fie comutat în mod exclusiv de către software-ul (de exemplu, șofer) și
nu va încălca conceptul general. În mod implicit, sistemul de operare folosește doar două nivele:
D0 și D3. În cazul în care dispozitivul solicită nu, se traduce în cel mai mic stat,
dacă este necesar, se referă la ea - este inclusă. Cu toate acestea, există mai
Recomandări specifice referitoare la anumite tipuri de dispozitive. Un scurt rezumat
caracteristicile de bază de gestionare a energiei, care ar trebui să ofere
diverse clase lor, sunt enumerate în tabelul. 2.

gestionare a energiei

Contextul este pierdut, motorul, cu laser și electronică nu funcționează,
consumul de energie - nu mai mult de 10% din D0. floppy disk-uri necunoscut
consumul de energie limită

Pentru Unix a dezvoltat un set de instrumente și biblioteci pentru integrare
Arhitectura ACPI a sistemului. Aceleași pachete sunt disponibile pentru Linux și Windows,
Cu toate acestea, din cauza centralizării actualizările sistemului de operare de diseminare a datelor există
mai multe servicii suplimentare decât este necesar. Principalele componente ale pachetului
sunt interpretul LAM, debugger, software-ul pentru a gestiona un spațiu de nume (Namespace
Management), suport pentru hardware-ACPI compatibil, unele
OSPM funcții de bază.

Formal, majoritatea Intel platforma chipset-uri moderne, compatibile cu ACPI
(Pornind de la 440BX și EX), dar nu toate placile de baza rula dublu
Putere. sprijine în mod activ ACPI anunțat de chips-uri din seria (ALi Aladdin).
Surprinzător, chipset-ul VIA companii participante direct de dezvoltare
caietul de sarcini nu corespund întotdeauna le. Toate kituri, etichetate
numărul 133 (cu excepția speciale KN133 platforme mobile AMD)
Ele sunt singurul APM-conforme. Numai deoarece identificatorul 266 în descrierile
seria Apollo menționate ACPI și OnNow.

Chipseturi de la AMD, conform descrierii, nu este de gând să cedeze nimic
Intel sa-colegi. De exemplu, în lista funcțiilor de gestionare a energiei ale perifericului
Anvelope controler AMD-756 de chipset AMD-750 au menționat: suport complet pentru ACPI
1.0 și 1.2 APM, în special, există un mod Soft-Off, Power-on-Suspendare. sistematic
AMD-controler 751 din același set este capabil de a controla funcționarea procesorului (Halt / Stop-Grant / Sleep)
și introduceți în modul Power-on-Suspendare. O scurtă descriere a statelor AMD-760MP
următoarele condiții de conservare a energiei pentru procesor - C2, C3; și sistemul
- Power-on-Suspend, Suspend-to-RAM.

Concluzia este că lucrarea este, de inovare va pătrunde treptat în moderne
inginerie și software-ul de proiectare, dar nu trebuie să se aștepte un miracol. să pună în aplicare
toate aceste bune intenții nu sunt necesare efortul unor participanți
grup industrial. Avem nevoie doar de lucru în mod corespunzător sistemul de operare și software-ul care inteligent
se închide și nu se ridica resurse suplimentare. În cele din urmă, în mod unic
există o nevoie urgentă pentru conducătorii auto cu atenție scrise și bine concepute
dispozitive. Și până când toate cele de mai sus și un pic mai mult în afară
nu apare pe mesele noastre cu voi, dragi cititori, va trebui să aștepte făgăduința
mult mai mult decât tradiționalul trei ani. Apropo, pentru că acestea sunt de mult apuse!

După cum a subliniat în caietul de sarcini, de ASL și LAM - acestea sunt două limbi diferite,
dar relația dintre ele este la fel de evident ca o listare comunitate în C
și un fișier obiect. În acest caz, ASL este compilat în LMA, respectiv
și decriptate abrevieri: ACPI Limba sursă și ACPI mașină de limbă.
Cuplu ASL + AML oferă mai multă libertate la dezvoltator, decât pare
mai întâi. ASL poate fi înlocuită cu orice altă limbă mai convenabil pentru orice
caz specific, și a scris un compilator care traduce programul
în LMA, pentru a asigura compatibilitatea cu standardul. ASL este un obiect
limbă. Obiectele sunt descrise de expresii cum ar fi:

Obiect: = ObjectType
FixedList variableList

FixedList - Această listă este o lungime de date fixe, care trebuie să
prezent în caietul de sarcini cu privire la toate obiectele copil și VariableList - set
obiecte pentru copii care ajuta pentru a descrie obiectul părinte. aici
Descriere zone termice:

ThermalZoneTerm: =
ThermalZone (
ThermalZoneName
// NameString
) itc_drupal_ObjectList

Printre tipurile de date introduse de creatorii limbajului, în plus față de cunoscuți
Integer, String si mai mult sau mai puțin clare Funcționare Regiunea unitate de teren,
este un câmp de biți convențional, există, de asemenea, destul de exotice
Dispozitiv, Procesor, de resurse alimentare și Zona termică.

Acum câteva cuvinte despre LAM. Implementarea sa este încredințată o mașină virtuală,
care ar trebui să aibă un sistem de operare ACPI compatibil. Codul AML, precum ASL, este
declarativă și în timpul executării de difuzare
în obiecte ACPI namespace. Dacă vom merge de la abstract la punctul de realizare,
Codul este scris ca un flux de octeți: instrucțiuni și date.