Šiandieninė klausimų ir atsakymų sesija ateina pas mus "SuperUser" - "Stack Exchange", "Q &A" interneto svetainių grupių bendruomenės, padalinys.
Klausimas
"SuperUser" skaitytojas Setas Carnegis kyla klausimas apie kompiuterio galios valdymą:
How can a computer restart itself? After it’s off, how does it tell itself to come back on again? What kind of software is it that can do this?
Kaip iš tikrųjų? Kokia programinės ar techninės magijos kombinacija leidžia tai padaryti?
Atsakymas
Per ilgai; nelaikė atsakymo: Jūsų kompiuterio galios būsenos kontroliuoja ACPI (papildoma konfigūracija ir maitinimo sąsaja) įdiegimas. Pasibaigus išjungimo procesui, jūsų operacinė sistema nustato ACPI komandą, nurodančią, kad kompiuteris turi būti perkrautas. Atsakant į tai, pagrindinė plokštė iš naujo nustato visus komponentus naudodama atitinkamas iš naujo nustatytas komandas arba linijas, o po to vykdo paleisties procesą. Pagrindinė plokštė niekada neišnyksta, ji tik iš naujo nustato įvairias sudedamąsias dalis, o tada elgiasi taip, tarsi maitinimo mygtukas ką tik buvo paspaustas.
Ilgas ir baisus, bet (mano nuomone) įdomus atsakymas:
"Minkšta galia" ir kaip tai veikia
Senosiomis dienomis (gerai, gerai, koledžo studentui patinka man 90-tieji metai), mes turėjome AT (Advanced Technology) plokštes su AT galia valdymas. AT maitinimo sistema buvo labai paprasta. Kompiuterio maitinimo mygtukas buvo aparatūros perjungimas (greičiausiai atgal) ir 120vac įėjimas iš karto per jį. Jis fiziškai įjungė ir išjungė maitinimo šaltinį, o kai šis jungiklis buvo išjungtas, viskas jūsų kompiuteryje buvo visiškai negyvas (dėl to CMOS akumuliatorius labai svarbus, nes be jo nebuvo maitinimo, kad būtų išlaikyta aparatinė įranga laikrodis pažymimas). Kadangi maitinimo jungiklis buvo fizinis mechanizmas, nebuvo programinės įrangos, kaip įjungti ir išjungti maitinimą. "Windows" rodys žinomą pranešimą "Dabar yra saugu išjungti kompiuterį", nes, nors viskas buvo pastatyta ir paruošta išjungti, OS nebuvo įmanoma perjungti įjungimo jungiklio. Ši konfigūracija kartais vadinama kieta jėga, nes tai visa aparatinė įranga.
Šiuo metu viskas yra kitokia, nes ATX pagrindinės plokštės ir ATX galia (tai yra "Advanced Technology", jei norite stebėti). Kartu su daugeliu kitų pasiekimų (mini-DIN PS / 2, visi?), Atnešė ATX minkšta galia. Minkšta energija reiškia, kad kompiuterio galią valdyti programine įranga. Tai leido keletą importo pakeitimų:
- Laukimo režimas: galbūt matėte "5v SB" arba "5v budėjimo režimo" jungtį, pažymėtą maitinimo šaltiniu. The laukimo maitinimas yra 5v linija prie jūsų pagrindinės plokštės, kuri visada įjungta, net kai kompiuteris yra išjungtas. Štai kodėl svarbu atjungti ar išjungti maitinimo bloko kietąjį jungiklį (jei jis yra) šiuolaikinių kompiuterių techninės priežiūros metu, nes net ir tada, kai jis išjungtas, galėtumėte trumpai užtrukti 5V SB ir sugadinti pagrindinę plokštę. Štai kodėl CMOS akumuliatoriai dar nėra tokie svarbūs - 5V SB naudojamas CMOS baterijai pakeisti, kai maitinimo šaltinis yra maitinimo šaltinis, taigi CMOS baterija naudojama tik visiškai atjungiant kompiuterį nuo elektros tinklo. 5v SB linija svarbiausia leidžia kompiuterio komponentams (ypač BIOS ir tinklo adapteriams) išlaikyti kai kurią paprastą programinę įrangą net ir tada, kai kompiuteris yra išjungtas.
- Protingas energijos tiekimo valdymas. Jei pažvelgsite į elektros maitinimo plokštės pagrindinės plokštės (P1) jungtį, pastebėsite, kad dvi spygliai paprastai pažymėti PS_ON ir PS_RDY. Tai reiškia, kad "maitinimas" ir "maitinimas parengtas". Jei norite eksperimentuoti, įjunkite maitinimo šaltinį ne į kompiuterį, įjunkite jį ir atsargiai sutrumpinkite įžeminimo liniją (vieną iš juodųjų laidų) prie linijos PS_ON (žalia viela). Maitinimo šaltinis pastebimai įsijungs, kai ventiliatorius sukasi. Pagrindinės plokštės komponentai, kuriuose veikia + 5v SB, iš tiesų įjungia ir išjungia maitinimą, prijungdami maitinimą prie PS_ON kontaktų. Kadangi maitinimo šaltinyje yra keletas kondensatorių ir kitų komponentų, kurių įkrovimas tam tikru momentu, elektros energijos tiekimo pagrindinių išėjimų įtampos gali nebūti stabilios iškart po to, kai įjungiamas maitinimo blokas. Tai yra PS_RDY kaištis, jis ateina, kai elektros energijos tiekimo vidaus logika nustato, kad maitinimas yra "pasirengęs" ir užtikrins stabilią galią. Pagrindinė plokštė laukia, kol "PS_RDY" bus tęsiamas paleisti.
Taigi jūsų maitinimo jungiklis nebeužjungia kompiuterio. Vietoj to jis yra prijungtas prie jūsų pagrindinės plokštės pagrindinių valdiklių, kurie nustato, kad mygtukas buvo paspaustas, ir atliks keletą veiksmų sistemos paruošimui, įskaitant apšvietimą PS_ON, kad galėtumėte naudotis. Maitinimo mygtukas yra ne vienintelis būdas paleisti paleidimo procesą, bet ir išplėtimo autobusų įrenginiai.Tai svarbu, nes jūsų "Ethernet" tinklo adapteriai išlieka, kai jūsų kompiuteris išjungtas, ir ieškos labai konkretaus paketo, kuris dažnai vadinamas "magišku paketu". Jei jie aptinka šį paketą, adresuojamą jo MAC adresu, jie paleidžia paleidimo procesą. Taip veikia "Wake-on-LAN" (WoL). Laikrodis taip pat gali inicijuoti įkrovą (dauguma BIOS leidžia nustatyti laiką, kurį kompiuteris turi įkrauti kiekvieną dieną), o USB ir FireWire įrenginiai gali paleisti paleidimą, nors aš nežinau jokio jo įdiegimo.
Suprasti galios valdymą
Na, aš paaiškinau "Soft Power" dalyką, nes manau, kad tai įdomu (visada pagrindinė priežastis, kodėl aš paaiškinau dalykus) ir todėl, kad jis leidžia suprasti, kaip valdoma kompiuterio galia ir veikimo / išjungimo būklė. Daugumoje naujausių kompiuterių ši programinės įrangos sistema yra " Išplėstinė konfigūracijos ir galios sąsaja arba ACPI. ACPI yra standartizuota, vieninga sistema, leidžianti programinei įrangai valdyti jūsų kompiuterio energetinę sistemą. Jūs galbūt girdėjote apie ACPI galios būsenos. Pagrindinis maitinimo valdymo mechanizmas yra šios "galios būsenos", jūsų operacinė sistema perjungia galios režimus ruošdamiesi jungikliui (išjungimo / hibernate procesai, kurie atsiranda prieš tai, kai iš tikrųjų praplečiama maitinimo įtampa), tada komandą pagrindinei plokštei įjungti energijos būseną. Galios būsenos atrodo taip:
- G0: darbas (jūsų kompiuterio būsena "įjungta")
-
G1: miega (jūsų kompiuterio parengties būsenos yra suskirstytos į S substates)
- S1: galia CPU ir RAM lieka, tačiau procesorius nevykdo instrukcijų. Išoriniai įrenginiai išjungiami.
- S2: procesorius išjungtas, palaikoma RAM
- S3: visi komponentai išjungiami, išskyrus RAM ir įrenginius, kurie paleidžia atnaujinimą (klaviatūra). Kai pasakysite savo OS "miego" režimui, jis sustabdo procesus ir tada įveda šį režimą.
- S4: sulaikymas. Visiškai viskas yra išjungta. Kai pasakysite savo operacinei sistemai "Hibernate", ji sustabdo procesus, išsaugo RAM turinį į diską ir įveda šį režimą.
- G2: "Soft Off". tai yra jūsų kompiuterio "išjungta" būsena. Maitinimas išsijungia nuo visko, išskyrus įrenginius, kurie gali sukelti įkrovą.
- G3: mechaninis išjungimas.
Kaip iš naujo iš tikrųjų atsitinka
Pastebėsite, kad iš naujo paleisti ne viena iš šių būsenų. Taigi, kas iš tikrųjų atsitinka, kai jūsų kompiuteris paleidžiamas iš naujo? Atsakymas gali būti stebina, nes nuo energijos valdymo perspektyvos tai yra beveik nieko. Yra ACPI atstatymo komanda. Kai pasakysite, kad operacinė sistema turi būti paleista iš naujo, ji seka įprastą išjungimo procesą (sustoja visi jūsų procesai, atlieka šiek tiek techninės priežiūros, pašalina jūsų failų sistemas ir tt), o paskui - kaip paskutinį žingsnį, o ne išsiųsti mašiną į būseną G2 (kaip būtų, jei tu paprasčiausiai papasakosi, kad jis uždarys), ji nustato komandą Reset (iš naujo). Tai paprastai vadinama "Reset registru", nes, kaip ir dauguma ACPI sąsajos, tai tik adresas, į kurį turi būti įrašyta konkreti reikšmė, kad galėtumėte prašyti iš naujo nustatyti. Cituoti 2.0 specifikaciją apie tai, ką ji daro:
The optional ACPI reset mechanism specifies a standard mechanism that provides a complete system reset. When implemented, this mechanism must reset the entire system. This includes processors, core logic, all buses, and all peripherals. From an OSPM perspective, asserting the reset mechanism is the logical equivalent to power cycling the machine. Upon gaining control after a reset, OSPM will perform actions in like manner to a cold boot.
Taigi, kai nustatomas iš naujo registras, keletas dalykų vyksta nuosekliai.
- Visa logika iš naujo nustatoma. Tai reiškia, kad reikia siųsti atitinkamas atkūrimo komandas įvairioms aparatinės įrangos bitėms, įskaitant procesorių, atminties valdiklį, periferinius valdiklius ir tt Daugeliu atvejų tai tiesiog reiškia, kad apšviesti fizinę RST laidą, kaip parodė AndrejaKo.
- Kompiuteris paleidžiamas. Tai yra "atlikite veiksmus panašiai kaip šalto įkrovimo" dalį. Pagrindinė plokštė atlieka tokius pačius veiksmus kaip ir tuo atveju, jei maitinimo šaltinis ką tik būtų paruoštas po spaudžiamo maitinimo mygtuko.
Galutinis šių dviejų etapų poveikis (kuris iš tikrųjų suskaidomas į daug daugiau žingsnių) yra tas, kad atrodo viskas, kaip tik kompiuteris buvo paleistas, bet galia iš tikrųjų buvo visą laiką. Tai reiškia, kad reikia mažiau laiko uždaryti ir paleisti (nes nereikia laukti, kol maitinimas bus parengtas), o svarbiausia, paleidimas bus pradėtas, kai operacinė sistema bus uždaryta. Tai reiškia, kad nereikia naudoti kito paleisties paleidimo priemonės (WoL ir tt), ir jūs galite naudoti iš naujo paleisti iš naujo kaip veiksmingą nuotoliniu būdu atstatyti sistemą, kai neturite paleidimo paleidimo.
Tai buvo ilgas atsakymas. Bet, gerb., Tikiuosi, dabar daugiau žinote apie kompiuterio maitinimo valdymą. Aš tikrai išmokau šiek tiek išsiaiškinti tai.
Ar turite ką nors įtraukti į paaiškinimą? Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų? Patikrinkite visą diskusijų temą čia.