
Сьогоднішня сесія "Питання та відповіді" надходить до нас з вдячністю SuperUser - це підрозділ Stack Exchange, група веб-сайтів Q & A, що належить спільноті.
Питання
Читач SuperUser Сет Карнегі чує про управління живленням комп'ютера:
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 управління Силова система AT була дуже, дуже проста. Кнопка живлення на вашому комп'ютері була перемикання апаратного забезпечення (ймовірно, на задній панелі корпусу), і ваша 120vac вхід пройшов через нього. Це фізично включило живлення до блоку живлення, і коли цей вимикач знаходився у положенні Off, все на вашому комп'ютері було повністю мертве (це зробило батарею CMOS дуже важливою, оскільки без неї не було джерела живлення для збереження обладнання тикаючи годинник). Оскільки перемикач живлення був фізичним механізмом, не було програмного способу включення та вимкнення живлення. Windows показуватиме знамените повідомлення «Тепер ви можете вимкнути комп'ютер», оскільки, хоча все було припарковано та готові вимкнути, ОС не могла перевернути перемикач живлення. Цю конфігурацію іноді називають жорстка сила, тому що це все обладнання.
На сьогоднішній день речі різні, через чудеса материнських плат ATX і ATX потужність (це розширені технології, якщо ви відстежуєтесь). Поряд з низкою інших авансів (mini-DIN PS / 2, хтось?), ATX приніс м'яка сила. М'яка енергія означає, що потужність комп'ютера може керувати програмним забезпеченням. Це призвело до кількох змін імпорту:
- Живлення в режимі очікування: можливо, ви бачили роз'єм "5v SB" або "5v standby", позначений в розетках живлення. The енергозабезпечення в режимі очікування це лінія 5 В на вашу материнську плату, яка завжди включена, навіть коли комп'ютер вимкнений. Ось чому при обслуговуванні сучасних комп'ютерів важливо від'єднати або вимкнути жорсткий перемикач живлення живлення (якщо він присутній), тому що навіть коли він вимкнений, ви можете потенційно скоротити 5В SB і пошкодити материнську плату. Ось чому CMOS батареї насправді не так важливі - 5В SB використовується для заміни батареї CMOS, коли живлення живлення живиться, так що акумулятор CMOS використовується тільки тоді, коли ви повністю відключаєте комп'ютер. Лінія 5v SB надає перевагу можливість компонентів вашого комп'ютера (головне, BIOS та мережевих адаптерів) продовжувати роботу деякого простого програмного забезпечення навіть під час вимкнення комп'ютера.
- Інтелектуальне управління живленням. Якщо ви подивитеся на роз'єднувач для роз'єму материнської плати (P1) свого джерела живлення, ви помітите, що два штифти зазвичай позначені PS_ON і PS_RDY. Це означає, що "джерело живлення" та "живлення" готові ". Якщо вам подобається експериментувати, витягніть блок живлення не в комп'ютер, підключіть його та обережно зафіксуйте земну лінію (одну з чорних проводів) до лінії PS_ON (зелений дріт). Блок живлення помітно включається, коли вентилятор обертається. Компоненти материнської плати, що працюють від + 5v SB, фактично включають та вимикають ваш блок живлення, під'єднуючи живлення до шпильки PS_ON. Оскільки в блоці живлення є кілька конденсаторів та інших компонентів, які забирають якийсь момент для заряджання, напруга з основних виходів живлення може бути нестабільною відразу після включення блоку живлення. Для цього використовується PIN-код для PS_RDY, він подається, коли внутрішня логіка джерела живлення визначає, що блок живлення є "готовий" і забезпечить стабільну потужність. Плата чекає, поки PS_RDY не буде продовжувати завантаження.
Таким чином, ваш перемикач живлення більше не "включає" комп'ютер. Замість цього він підключається до базових контролерів вашої материнської плати, які визначають, що натиснута кнопка, і виконує ряд кроків для готування системи, включаючи підсвічування PS_ON, щоб потужність була доступна. Кнопка живлення не є єдиним способом спрацьовувати процес запуску, пристрої на шині розширення також можуть це зробити.Це важливо, тому що ваші мережеві адаптери Ethernet фактично залишаються на виході, коли ваш комп'ютер вимкнений, і шукати дуже конкретний пакет, який часто називають "магічним пакетом". Якщо вони виявляють цей пакет, адресований їх MAC-адресою, вони запускають процес запуску. Так працює "Wake-on-LAN" (WoL). Також може ініціювати завантаження (більшість BIOS дозволяють встановити час, який комп'ютер повинен завантажувати кожен день), а пристрої USB та FireWire можуть ініціювати завантаження, хоча я не знаю про будь-яку реалізацію цього.
Розуміння регулювання потужності
Ну, я пояснюю цю річ Soft Power тому, що я вважаю це цікавим (завжди є ключовою причиною, через яку я пояснюю речі), і тому, що це дозволяє вам зрозуміти, як влада та стан роботи / вимкнення вашого комп'ютера контролюються програмним забезпеченням. У більшості сучасних комп'ютерів ця система програмного забезпечення є реалізацією Розширений інтерфейс конфігурації та живлення або ACPI. ACPI - стандартизована, уніфікована система, що дозволяє програмному забезпеченню керувати енергосистемою вашого комп'ютера. Ви, можливо, чули про це ACPI потужність станів. Основним механізмом керування потужністю є ці "силові стани", ваша операційна система перемикає режими живлення, готуючись до перемикача (процеси вимикання / сплячого режиму, що відбуваються до того, як влада фактично перегортає), а потім командує материнській платі для перемикання станів живлення. Сили держави виглядають так:
- G0: робочий стан (стан вашого комп'ютера)
-
G1: Sleeping (стан резервного копіювання комп'ютера, розділений на S substates)
- S1: потужність процесора та оперативної пам'яті залишається в силі, але процесор не виконує інструкції. Периферійні пристрої відключені.
- S2: процесор вимкнений, підтримується оперативна пам'ять
- S3: всі компоненти вимикаються, крім оперативної пам'яті та пристроїв, які запускатимуть резюме (клавіатура). Коли ви повідомляєте свою ОС "Сон", вона зупинить процес, а потім увійде в цей режим.
- S4: сплячий режим. Абсолютно все вимкнено. Коли ви повідомляєте операційній системі про сплячий режим, вона зупиняє процеси, зберігає вміст оперативної пам'яті на диску, а потім входить до цього режиму.
- G2: м'який вимкнений. це стан "вимкнено" вашого комп'ютера. Потужність вимкнена для всього, крім пристроїв, які можуть викликати завантаження.
- G3: механічне відключення.
Як відбувається скидання?
Ви помітите, що перезавантаження не є одним із цих станів. Так що ж відбувається, коли ваш комп'ютер під час перезавантаження? Відповідь може бути дивним, оскільки з точки зору управління енергоспоживанням це є майже нічого. існує команда скидання ACPI. Коли ви повідомляєте операційну систему про перезавантаження, це відбувається за звичайним процесом вимкнення (зупиняє всі ваші процеси, виконує трохи технічного обслуговування, знімає файлові системи тощо), а потім як остаточний крок, замість того, щоб відправити машину в стан живлення G2 (як це було б, якщо б ви просто сказали, що закрити його), він встановлює команду "Скидання". Це, як правило, називається "Скидання регістра", тому що, як і більшість інтерфейсу 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, як показано на AndrejaKo вище.
- Комп'ютер потім завантажиться. Це "виконання дій, подібних до частини холодного завантаження". Плата виконує ті самі дії, що й у випадку, якщо блок живлення вже готовий після натискання кнопки живлення.
Кінцевий ефект цих двох кроків (що насправді розбивається на набагато більше кроків) полягає в тому, що він виглядає все так само, як комп'ютер просто завантажив, але влада була фактично на весь час. Це означає менше часу, необхідного для закриття та запуску (оскільки вам не потрібно чекати, поки блок живлення стане готовим), а головне дозволяє ініціювати завантаження операційною системою, яка закривається. Це означає, що інший пуск запуску не потрібно використовувати (WoL та ін.), І ви можете використовувати Reboot як ефективний спосіб віддалено відновити систему, коли у вас немає способу запускати завантаження.
Це була довга відповідь. Але, гаразд, сподіваюсь, ви більше знаєте про керування живленням комп'ютера зараз. Я, звичайно, вивчив деякі речі, що досліджують це.
Чи є щось додати до пояснення? Звук у коментарях. Хочете дізнатись більше відповідей від інших досвідчених користувачів Stack Exchange? Ознайомтеся з повною дискусійною гілкою тут.