Какая прошивка / аппаратный механизм обеспечивает принудительное отключение?

41

Хотя я не знаю этого наверняка, я почти уверен, что удержание кнопки питания на всех компьютерах приведет к их отключению через разное время. Это особенно полезно, если компьютер зависает, или какая-либо другая ошибка требует полной перезагрузки.

Что меня интересует, так это то, что этот механизм принудительного отключения жестко закодирован в компьютерах, на которых установлена ​​прошивка? Или встроено ли это в компьютер на аппаратном уровне. Если механизм был встроенным программным обеспечением, то логично предположить, что ошибка на уровне процессора помешает правильному запуску этого механизма, что заставляет меня полагать, что это аппаратная функция.

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

user4493605
источник
7
@EJP Неверно. Смотрите мой ответ :)
DavidPostill
2
На некоторых пользовательских устройствах, с которыми я работал, также есть мягкая кнопка питания и питание от батареи (что затрудняет цикл жесткого питания для пользователя), мы явно добавляем отдельный микроконтроллер или таймер + логические схемы (или выделенный раздел на FPGA) для управления питанием, когда прошивка достаточно сложна, чтобы обеспечить принудительное отключение питания, если имеется ошибка прошивки, которая блокирует ее.
Джейсон С
4
Большинство утверждений со словом «все» неверны.
Paŭlo Ebermann
2
Если ничего не помогает, есть еще одно полностью аппаратное решение для резервного копирования, включающее толстый черный шнур сзади с 3-контактным разъемом, удаление которого также приведет к отключению.
Даррен Х
3
@DarrenH не на ноутбуке с несъемным аккумулятором. Сбрасывание батареи сработало бы, но у моей 10+ часов жизни (например)
Крис Х

Ответы:

45

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

В этом процессе участвуют как материнская плата (аппаратная часть), так и BIOS (прошивка).

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

BIOS обычно устанавливается таким образом, чтобы, если цепь уже была включена, и кратковременный контакт оставался замкнутым в течение не менее 4 секунд, будет выполнено одно из двух действий. Либо система сразу выключится (например, выключение выключателя), либо материнская плата перейдет в состояние «сна» и будет ждать повторного пробуждения. Какой из этих двух вариантов сделан, вы задаете на экранах настройки BIOS. **

Это причина того, что материнская плата никогда не бывает полностью выключена в большинстве рабочих ситуаций. Даже когда он выключен, есть небольшая его часть, предназначенная для проверки входов от нескольких источников (например, передней кнопки, некоторых USB-устройств и, возможно, модема), чтобы он мог реагировать включением питания на вся система. Способ по-настоящему отключить все источники питания - это вытащить шнур питания или использовать физический переключатель, установленный на задней панели блока питания, для его отключения.

Источник Как (работает) кнопка питания?


Современные выключатели не содержат никакой магии. На самом деле они менее сложны и дороги, чем реальные физические переключатели.

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

Это означает, что обычно немного устройства включено, по крайней мере, достаточно для питания микроконтроллера. Однако современные микроконтроллеры могут потреблять такое небольшое количество энергии, когда ничего не делают, кроме ожидания сигнала переключателя, что это питание в большинстве случаев не имеет значения.

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

Источник Как работают эти современные кнопки питания на устройствах? Ответ от Olin Lathrop.

ДэвидПостилл
источник
1
Чтобы выяснить, обрабатывается ли кнопка питания непосредственно основным ЦП, как и большинство кодов BIOS, или микропрограмма, которая управляет кнопкой питания, работает на микроконтроллере, как вторая часть вашего ответа?
Slebetman
3
Я полагаю, что и то и другое: нажатие кнопки генерирует событие ACPI для ЦП, но есть также неосновной ЦП, который отслеживает его, чтобы осуществить истинное принудительное отключение, если он удерживается без ответа от ЦП. В противном случае вы можете оказаться в ситуации, когда прерывания отключены и ACPI отключен, и вы не сможете принудительно завершить работу.
pjc50
6

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

Без поиска ссылок здесь есть довольно простая логика: они должны работать на аппаратном уровне, потому что они работают без процессора в сокете.

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

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

Обратите внимание, что «аппаратный уровень» - это довольно широкий термин; то есть, может легко быть что угодно от нескольких транзисторов до небольшого выделенного микросхемы с несколькими битами NVRAM вокруг (который сохранит значения, сконфигурированные BIOS, например, поведение короткого нажатия), что большинство людей все равно назвали бы "железом".

Anoe
источник