Как моят компютър може да се рестартира?
Това е такава обща дейност, която повечето от нас вероятно никога не са спрели да мислят за това: автоматичното рестартиране. Независимо дали става въпрос за потребител или за приложение, какво точно се случва, когато компютърът циклизира собствената си сила?
Днешната сесия на въпросите и отговорите идва с любезното съдействие на SuperUser - подразделение на Stack Exchange, обединяващо групи от уебсайтове с въпроси и отговори.
Въпроса
Читателят на суперпотребителя Сет Карнеги се чуди за управлението на захранването на компютъра:
Как може един компютър да се рестартира? След като е изключен, как се казва да се върне отново? Какъв софтуер е този, който може да направи това?
Как наистина? Каква комбинация от софтуерна / хардуерна магия го прави?
Отговорът
Сътрудникът на SuperUser Jcrawfordor предлага както сбит и подробен отговор на въпроса, който повече от адекватно адресира въпроса:
Твърде дългият, не е прочел отговора: Състоянията на захранване във вашия компютър се контролират от реализация на ACPI (разширена конфигурация и интерфейс за захранване). В края на процеса на изключване вашата операционна система задава команда ACPI, указваща, че компютърът трябва да се рестартира. В отговор дънната платка нулира всички компоненти, използвайки съответните им команди за нулиране или линии, след което следва процеса на първоначално зареждане. Дънната платка всъщност никога не се изключва, само възстановява различни компоненти и след това се държи така, сякаш бутонът за захранване току-що е бил натиснат.
Дълъг и разбъркан, но по мое мнение по-интересен отговор:
Soft Power и как работи
В старите дни (добре, добре, за студент като мен през 90-те години беше отдавна) имахме дънни платки с AT (Advanced Technology) с AT мощност управление. АТ захранващата система беше много, много проста. Бутонът за захранване на компютъра е хардуерен превключвател (вероятно в задната част на кутията) и вашият 120vac вход е преминал през него. Той физически включи захранването към захранването и изключи, и когато този превключвател беше в позиция Off, всичко в компютъра ти беше напълно мъртво (това направи CMOS батерията много важна, защото без нея нямаше захранване, за да се запази хардуерът часовник). Тъй като превключвателят на захранването беше физически механизъм, нямаше никакъв софтуер за включване и изключване на захранването. Windows ще покаже известното съобщение "Сега е безопасно да изключите компютъра", защото, въпреки че всичко беше паркирано и готово да се изключи, операционната система не беше в състояние да преобърне превключвателя на захранването. Тази конфигурация понякога се нарича твърда мощност, защото всичко е хардуерно.
Днес нещата са различни, поради чудесата на ATX дънните платки и Мощност на ATX (това е усъвършенствана технология, ако се следи). Заедно с редица други аванси (mini-DIN PS / 2, всеки?), ATX донесе мека сила. Меката сила означава, че захранването на компютъра може да се контролира от софтуер. Това доведе до няколко промени в импортирането:
- Захранване в режим на готовност: може да сте виждали съединител “5v SB” или “5v standby”, обозначен в изводите за захранване. Най- захранване в режим на готовност е линия 5v към вашата дънна платка, която е винаги включена, дори когато компютърът е изключен. Ето защо е важно да изключите или изключите PSU твърд превключвател (ако има такъв), когато обслужвате съвременните компютри, защото дори когато е изключен, потенциално бихте могли да намалите 5v SB и да повредите дънната платка. Това е и причината CMOS батериите да не са толкова важни - 5v SB се използва за смяна на CMOS батерията, когато захранването има захранване, така че CMOS батерията се използва само когато изключвате компютъра изцяло. Линията SB 5v важно позволява компонентите на компютъра ви (най-важното - 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 остава включено, но CPU не изпълнява инструкции. Периферните устройства са изключени.
- S2: CPU е изключен, RAM поддържа
- S3: Всички компоненти се изключват, с изключение на RAM и устройства, които ще задействат възобновяване (клавиатура). Когато кажете на операционната система „Sleep“, тя ще спре процесите и след това ще влезе в този режим.
- S4: Хибернация. Абсолютно всичко е изключено. Когато кажете на операционната си система за хибернация, тя спира процесите, запазва съдържанието на RAM на диск и след това влиза в този режим..
- G2: Soft Off. това е състоянието на изключване на компютъра ви. Захранването е изключено за всичко, освен за устройства, които могат да задействат зареждане.
- G3: Механично изключване.
Как се възстановява действително
Ще забележите, че рестартирането не е едно от тези състояния. И така, какво всъщност се случва, когато компютърът ви се рестартира? Отговорът може би е изненадващ, защото от гледна точка на управлението на енергията това е почти нищо. Има команда за нулиране ACPI. Когато кажете на операционната система да рестартира, тя следва обичайния си процес на спиране (спира всичките си процеси, извършва малко поддръжка, демонтира файловите системи и т.н.), а след това като последна стъпка, вместо да изпраща машината в състояние на захранване G2 (както би било, ако просто сте го казали на Shut Down), той задава командата Reset. Това обикновено се нарича "Reset регистър", защото, както повечето интерфейси на ACPI, това е просто адрес, към който трябва да бъде записана определена стойност, за да се поиска ресет. Ще цитирам спецификацията на 2.0 за това какво прави:
Опционалният механизъм за нулиране ACPI определя стандартен механизъм, който осигурява пълно нулиране на системата. Когато се приложи, този механизъм трябва да нулира цялата система. Това включва процесори, основна логика, всички шини и всички периферни устройства. От гледна точка на OSPM, утвърждаването на механизма за нулиране е логически еквивалент на цикличната работа на машината. При придобиване на контрол след нулиране, OSPM ще извърши действия по подобен начин на студено зареждане.
Така че, когато настроите регистъра за нулиране, няколко неща се случват последователно.
- Цялата логика се нулира. Това означава изпращане на съответните команди за нулиране към различни битове хардуер, включително процесора, контролера на паметта, периферните контролери и т.н. В повечето случаи това просто означава осветяване на физически RST проводник, както се показваше от AndrejaKo по-горе.
- След това компютърът се стартира. Това е "изпълнява действия по подобен начин на студена обувка" част. Дънната платка изпълнява същите стъпки, както и ако захранването е току-що готово след натискане на бутона за захранване.
Крайният ефект от тези две стъпки (които всъщност разрушават много повече стъпки) е, че изглежда като всичко, което току-що стартира, но мощността е действително през цялото време. Това означава по-малко време, необходимо за изключване и стартиране (тъй като не е нужно да чакате захранването да стане готово) и по-важното позволява стартирането на операционната система да се задейства. Това означава, че друг стартиращ тригер не трябва да се използва (WoL и т.н.) и ви позволява да използвате Reboot като ефективен начин за възстановяване на системата от разстояние, когато нямате начин да задействате зареждането.
Това беше дълъг отговор. Но хей, надявам се, че вече знаете повече за управлението на компютъра. Със сигурност научих някои неща, изследвайки това.
.