Який програмно-апаратний механізм дозволяє примусово відключити?


41

Хоча я цього точно не знаю, я майже впевнений, що утримання кнопки живлення на всіх комп’ютерах змусить їх вимкнутись через різні тривалості часу. Це особливо корисно, якщо комп'ютер зависає, або якщо якась інша помилка потребує повного перезавантаження.

Мене цікавить, чи цей механізм примусового відключення жорстко кодується в комп'ютери, що лежать в основі прошивки? Або вбудовано це в комп'ютер на апаратному рівні. Якщо механізм був прошивкою, то логічно припустити, що помилка на рівні процесора запобігла б належному спрацьовуванню цього механізму, що змушує мене вважати, що це апаратне функціонування.

Підводячи підсумок: вбудований універсальний (я припускаю) механізм примусового відключення на рівні апаратури чи програмного забезпечення? І може хтось детальніше розглянути механізми природи, варіанти та загальну історію.


7
@EJP Неправильно. Дивіться мою відповідь :)
DavidPostill

2
На деяких користувальницьких пристроях, з якими я працював, також є м'яка кнопка живлення, яка працює від акумулятора (що робить важкий цикл живлення складним для користувача), ми явно додаємо окремий мікроконтролер або таймер + логічні схеми (або спеціальний розділ на FPGA) для управління живленням, коли вбудована програма є достатньо складною, щоб вимкнути потужне живлення, якщо є помилка мікропрограмного забезпечення, яка блокує її.
Джейсон C

4
Більшість тверджень із "усіма" помилкові.
Paŭlo Ebermann

2
Якщо все інше не вдасться, є додаткове повністю апаратне рішення для резервного копіювання, що включає товстий чорний шнур на задній частині з 3-контактним роз'ємом, видалення цього також призведе до вимикання.
Даррен Н

3
@DarrenH не на ноутбуці з незнімним акумулятором. Виправлення акумулятора спрацювало б, але мій має 10+ годин життя (наприклад)
Кріс Х

Відповіді:


45

Чи вбудований універсальний механізм примусового відключення на рівні апаратних чи вбудованих програм?

У процесі беруть участь як материнська плата (апаратне забезпечення), так і BIOS (мікропрограмне забезпечення).

Фактичне перемикання живлення (увімкнення та вимкнення) здійснюється схемами на материнській платі. Схеми спрацьовують, щоб змінити стан миттєвим коротким замиканням двох точок ланцюга. Це робиться кнопкою на передній панелі. Короткострокового підключення цієї кнопки достатньо. Схема материнської плати також має другу і третю функцію, яку вона може виконувати.

Зазвичай BIOS встановлюється таким чином, що якщо ланцюг вже ввімкнено, а миттєвий контакт утримується закритим щонайменше 4 секунди, буде здійснена одна з двох дій. Або система відразу вимкнеться (наприклад, вимкнути перемикач), або материнська плата перейде в стан «сну» і чекатиме її знову пробудження. Який із цих двох варіантів зроблено - це те, що ви встановили на екранах настройки BIOS. **

Це причина, що материнська плата ніколи повністю не вимикається в більшості операційних ситуацій. Навіть коли це значення "Вимкнено", його невелика частина присвячена тому, щоб перевірити наявність входів з декількох джерел (наприклад, передня кнопка, деякі USB-пристрої та, можливо, модем), щоб вона могла реагувати, включивши живлення на вся система. Спосіб реально вимкнути всю живлення - або витягнути шнур живлення, або використовувати фізичний вимикач, встановлений на задній панелі блоку живлення, щоб вимкнути його.

Джерело Як працює кнопка живлення?


Сучасні вимикачі не містять ніякої магії. Насправді вони менш складні та дорогі, ніж реальні фізичні перемикачі на вмикання / вимикання.

Ці вимикачі - це лише входи до мікроконтролера. Мікроконтролер може повідомити, коли ви натискаєте кнопку, а інше - це політика, закодована у мікропрограмному забезпеченні, щоб вирішити, що з цим робити. Потужність зазвичай комутується транзисторами. Це означає, що сама кнопка не повинна обробляти високу напругу або високий струм, тому є набагато більше варіантів, щоб зробити її і щоб вона була маленькою. Наприклад, це може бути мембранний перемикач, який ви ніколи не використовували для перемикання живлення на стіні.

Це означає, що пристрій зазвичай увімкнено, принаймні достатньо для живлення мікроконтролера. Однак сучасні мікроконтролери можуть забирати такі мінімальну кількість енергії, не роблячи нічого, окрім очікування сигналу комутатора, що ця потужність у більшості випадків не має значення.

У деяких випадках кнопка насправді призводить до того, що мікроелектронна мережа замикається при натисканні, яка потім вмикає деякі транзистори чи реле або щось для утримання живлення. Коли ви натискаєте кнопку, щоб вимкнути пристрій, мікроекран відключає все, в тому числі і себе.

Джерело Як працюють ці сучасні кнопки живлення на пристроях, відповів Олін Летроп


1
Для уточнення, чи кнопкою живлення керує безпосередньо основний процесор, як і більшість кодів BIOS, чи прошивка, яка керує кнопкою живлення, працює на мікроконтролері, як друга частина вашої відповіді?
slebetman

3
Я вважаю, що це і те й інше: натискання кнопки генерує подію ACPI для центрального процесора, але також є не головний процесор, який слідкує за цим, щоб здійснити справжнє примусове вимикання, якщо його затримати без відповіді з процесора. В іншому випадку ви можете опинитися в ситуації, коли переривання вимкнено і ACPI вимкнено, і ви не зможете примусово зупинити роботу.
pjc50

6

Чи вбудований універсальний (я припускаю) механізм примусового відключення на рівні апаратного чи програмного забезпечення?

Не шукаючи посилань, тут досить проста логіка: вони повинні працювати на апаратному рівні, оскільки вони працюють без процесора в сокеті.

Звичайно, ПК тоді не зробить все так багато, але ви все одно можете їх технічно включити; якщо ваша материнська плата має можливість надсилати вам повідомлення (звуковими сигналами або невеликим двозначним кодом), ви, ймовірно, отримаєте код «поганий процесор / без ЦП». Ви також зможете вимкнути його за допомогою довгого натискання, що є важливою частиною тут.

Крім того, майте на увазі, що у всіх випадках, коли система перебуває у глибокому непристойному стані (тобто в режимі однокористувача / ядра Linux, паніка / BSOD тощо) та для всіх намірів та цілей у глухий кут, потужність кнопка все ще працює (принаймні, довге натискання).

Зауважте, що "апаратний рівень" - це вже досить широкий термін; тобто може легко бути що-небудь - від декількох транзисторів до невеликого виділеного µC з кількома бітами NVRAM навколо (який би зберігав значення, налаштовані BIOS, наприклад, про поведінку короткого натискання), що більшість людей все ще називали б "апаратними засобами".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.