Днешната сесия за въпроси и отговори се отнася до нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, обединяване на уеб сайтове с въпроси и отговори.
Въпроса
Reader на SuperUser Seth Carnegie се чуди за управлението на мощността на компютъра:
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?
Как наистина? Каква комбинация от софтуер / хардуерна магия прави това да се случи?
Отговорът
Твърде дълго, не го четеше отговор: Силовите състояния на компютъра се контролират от внедряването на ACPI (разширена конфигурация и интерфейс за захранване). В края на процеса на изключване операционната ви система задава команда ACPI, която показва, че компютърът трябва да се рестартира. В отговор дънната платка нулира всички компоненти, като използва съответните им команди или редове за нулиране, след което следва процеса на стартиране. Дънната платка никога не се изключва, само възстановява различни компоненти и след това се държи така, сякаш току-що е натиснат бутонът за захранване.
Дълги и неспокойни, но (по мое мнение) по-интересен отговор:
Мека сила и как работи
В старите дни (добре, добре, за един студент като мен през 90-те години беше много отдавна), имахме AT (Advanced Technology) дънни платки с AT мощност управление. АТ системата беше много, много проста. Бутонът за захранване на компютъра ви е хардуерен превключвател (вероятно в задната част на касетата) и входът ви от 120vac преминава през него. Тя физически включи и изключи захранването на вашия захранващ източник и когато този превключвател е в положение Off, всичко в компютъра ви е напълно мъртво (това прави батерията CMOS много важна, защото без нея нямаше захранване, което да запази хардуера часовник). Тъй като превключвателят на захранването беше физически механизъм, нямаше софтуер за включване и изключване на захранването. Windows ще покаже известната "Сега е безопасно да изключите компютъра си" съобщение, защото, въпреки че всичко е паркирано и готово да се изключи, не е възможно за операционната система всъщност да обърнете превключвателя на захранването. Тази конфигурация понякога се наричаше твърда мощност, защото всичко е хардуер.
Днес нещата са различни, заради чудесата на дънните платки и ATX ATX мощност (това е Advanced Technology eXtended, ако следите). Наред с редица други подобрения (мини-DIN PS / 2, всеки?), ATX донесе мека сила, Мекото захранване означава, че мощността на компютъра може да се управлява от софтуер. Това доведе до няколко промени в импортирането:
- Мощност в режим на готовност: може да сте виждали конектор "5v SB" или "5v готовност", означен в изводите за захранване. Най- резервно захранване е 5-на линия към дънната ви платка, която винаги е включена, дори когато компютърът е изключен. Ето защо е важно да изключите или изключите захранващия ключ на захранващия блок (ако има такъв), когато сервирате съвременни компютри, защото дори когато е изключен, бихте могли да намалите 5V SB и да повредите дънната платка. Това е и причината, поради която CMOS батериите вече не са толкова важни - 5V SB се използва за замяна на батерията CMOS, когато захранването е захранвано от мрежата, така че батерията CMOS се използва само когато извадите напълно компютъра. В 5-инчовият сериен интерфейс на SB ви дава възможност компонентите на вашия компютър (най-вече BIOS и мрежовите адаптери) да продължат да работят с обикновен софтуер, дори когато компютърът е изключен.
- Интелигентно управление на захранването. Ако погледнете пинтууд за дънната платка (P1) на захранващото Ви захранване, ще забележите, че два пина обикновено са обозначени с етикет PS_ON и PS_RDY, Те са за "включване на захранването" и "захранване готово". Ако искате да експериментирате, занесете захранването не на компютър, включете го и внимателно късо наземна линия (един от черните проводници) към линията PS_ON (зелената жица). Електрическото захранване видимо се включва, а вентилаторът се върти. Компонентите на дънната платка, изтичащи от + 5V SB, всъщност захранват и изключват захранването чрез свързване на захранването към щифта PS_ON. Тъй като има няколко кондензатора и други компоненти в захранващото захранване, които отделят време за зареждане, напреженията от основните изходи на захранването може да не са стабилни веднага след включването на захранващото устройство. За това е предназначен PS_RDY, той се включва, когато вътрешната логика на електрозахранването определя, че захранването е "готово" и ще осигури стабилна мощност. Дънната платка чака, докато PS_RDY продължи да зарежда.
Така че вашият превключвател за захранване вече не "включва" компютъра. Вместо това, той е свързан към основните контролери на дънната платка, които откриват, че бутонът е бил натиснат и изпълни няколко стъпки за подготовка на системата, включително включване на PS_ON, за да може да има достъп. Бутонът за захранване не е единственият начин да задействате процеса на стартиране, а устройствата на шината ви за разширение също могат да направят това.Това е важно, защото вашите ethernet мрежови адаптери всъщност остават, когато компютърът ви е изключен и търсят много специфичен пакет, често наричан "магически пакет". Ако установят този пакет, адресиран до техния MAC адрес, те ще задействат процеса на стартиране, Така работи "Wake-on-LAN" (WoL). Часовникът може също така да стартира обувка (повечето BIOS ви позволяват да зададете време, което компютърът трябва да зарежда всеки ден), а устройствата с USB и FireWire могат да задействат обувка, въпреки че не съм запознат с каквото и да било прилагане на това.
Разбиране на управлението на захранването
Е, обяснявам нещо Soft Power както защото мисля, че е интересно (винаги е основна причина, поради която обяснявам нещата), и защото ви позволява да разберете как силата и състоянието на бягане и изключване на вашия компютър са контролирани от софтуера. В повечето текущи компютри тази софтуерна система е изпълнение на Разширено конфигуриране и захранващ интерфейс или ACPI, ACPI е стандартизирана, унифицирана система, позволяваща софтуер за управление на електрозахранването на вашия компютър. Може би сте чували за ACPI мощност състояния, Основният механизъм за управление на мощността е тези "състояния на мощността", операционната ви система превключва през режимите на захранване, като се подготвя за превключване (процесите на изключване / хибернация, които се случват преди да влезе в сила) и след това командване на дънната платка,, Мощните състояния изглеждат така:
- G0: Работа (състоянието на компютъра ви е "в")
-
G1: Спящата (състоянието на готовност в компютъра ви, разделено на субстанциите S)
- S1: мощността на CPU и RAM остава включена, но процесорът не изпълнява инструкции. Периферните устройства се изключват.
- S2: Процесорът е изключен, RAM поддържан
- S3: Всички компоненти са изключени, с изключение на RAM и устройства, които ще задействат резюме (клавиатура). Когато кажете на вашата операционна система "Sleep", тя ще спре процесите и ще влезе в този режим.
- S4: Хибернация. Абсолютно всичко е изключено. Когато кажете на операционната ви система да преживява хибернация, тя спира процесите, записва съдържанието на RAM на диск и след това влиза в този режим.
- G2: Софт. това е "изключено" състояние на вашия компютър. Захранването е изключено за всичко, освен за устройства, които могат да задействат обувка.
- G3: Изключено механично.
Как се извършва ресет
Ще забележите, че рестартирането не е едно от тези състояния. И така, какво всъщност се случва, когато компютърът ви се рестартира? Отговорът може да е изненадващ, защото от гледна точка на управлението на захранването е така почти нищо, Има команда за нулиране на ACPI, Когато кажете на операционната ви система да се рестартира, тя следва своя нормален процес на изключване (спира всичките ви процеси, изпълнява малко поддръжка, сваля файловите системи и т.н.) и после като последна стъпка, вместо да изпрати машината в състояние на захранване G2 (както бихте го казали, ако сте го казали да изключите), той задава командата Reset. Това обикновено се нарича "Reset register", тъй като като повечето от ACPI интерфейса, това е просто адрес, на който трябва да се напише конкретна стойност, за да поискате нулиране. Ще цитирам спецификацията 2.0 за това, което прави:
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.
Така че, когато се настрои регистърът за нулиране, няколко неща се случват последователно.
- Цялата логика се нулира. Това означава да изпратите съответните команди за нулиране на различни битове на хардуера, включително процесора, контролера на паметта, периферните контролери и т.н. В повечето случаи това просто означава запалване на физически RST проводник, както се виждаше по-горе.
- След това компютърът се задейства. Това е "извършете действия по един и същ начин на студен обувка". Дънната платка изпълнява същите стъпки, каквито би се случило, ако захранването току-що е готово след натискане на бутона за захранване.
Крайният ефект на тези две стъпки (които всъщност се свеждат до много повече стъпки) е, че всичко изглежда точно като компютъра, който току-що е стартирал, но всъщност мощта е била през цялото време. Това означава по-малко време, необходимо за изключване и стартиране (тъй като не е нужно да чакате захранването да бъде готово) и е важно да се задейства стартирането на зареждането от изключването на операционната система. Това означава, че не е необходимо да се използва друг стартов тригер (WoL и т.н.) и ви позволява да използвате рестартирането като ефективен начин за дистанционно нулиране на системата, когато нямате начин да задействате зареждането.
Това беше дълъг отговор. Но хей, надявам се, че вече знаете повече за управлението на захранването на компютъра. Разбира се, научих някои неща, които изследват това.
Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.