¿Qué mecanismo de firmware / hardware permite el apagado forzado?

41

Aunque no lo sé con certeza, estoy bastante seguro de que mantener presionado el botón de encendido en todas las computadoras los obligará a apagarse después de varios períodos de tiempo. Esto es particularmente útil si la computadora se congela, o algún otro error requiere un reinicio total.

Lo que me interesa es si este mecanismo de apagado forzado está codificado en el firmware subyacente de las computadoras. O si esto está integrado en la computadora a nivel de hardware. Si el mecanismo era firmware, entonces es lógico suponer que un error a nivel de CPU evitaría que este mecanismo se dispare correctamente, lo que me lleva a creer que esta es una función de hardware.

Para resumir: ¿El mecanismo de apagado forzado universal (supongo) está integrado a nivel de hardware o firmware? ¿Y alguien puede elaborar sobre los mecanismos de la naturaleza, las variantes y la historia general.

usuario4493605
fuente
77
@EJP Incorrecto. Vea mi respuesta :)
DavidPostill
2
En algunos de los dispositivos personalizados con los que he trabajado que también tienen un botón de encendido suave y funcionan con batería (lo que dificulta un ciclo de energía difícil para un usuario), agregamos explícitamente un microcontrolador o temporizador + circuitos lógicos separados (o una sección dedicada en un FPGA) para manejar la energía cuando el firmware es lo suficientemente complejo como para permitir un apagado total si hay un error de firmware que lo bloquea.
Jason C
44
La mayoría de las declaraciones con "todos" están equivocadas.
Paŭlo Ebermann
2
Si todo lo demás falla, hay una solución adicional de respaldo completamente de hardware que involucra un cable negro grueso en la parte posterior con un conector de 3 pines, la eliminación de esto también forzará el apagado.
Darren H
3
@DarrenH no está en una computadora portátil con una batería no extraíble. Aplanar la batería funcionaría, pero la mía tiene más de 10 horas de vida útil (por ejemplo)
Chris H

Respuestas:

45

¿El mecanismo de apagado forzado universal está integrado a nivel de hardware o firmware?

Tanto la placa base (hardware) como el BIOS (firmware) están involucrados en el proceso.

La conmutación real de la alimentación (encendido y apagado) se realiza mediante circuitos en la placa base. Los circuitos se activan para cambiar de estado por un cortocircuito momentáneo de dos puntos en el circuito. Eso se hace mediante el botón del panel frontal. Una conexión a corto plazo de ese botón es suficiente. El circuito de la placa base también tiene una segunda y tercera función que puede hacer.

El BIOS generalmente se configura de modo que, si el circuito ya está en estado ENCENDIDO y el contacto momentáneo se mantiene cerrado durante al menos 4 segundos, se llevará a cabo una de dos acciones. O bien el sistema se apagará de inmediato (como apagar un interruptor), o la placa base entrará en el estado de "suspensión" y esperará a que se vuelva a activar. Cuál de estas dos opciones se realiza es algo que configura en las pantallas de configuración del BIOS. **

Esta es la razón por la que la placa base nunca está completamente "apagada" en la mayoría de las situaciones operativas. Incluso cuando está "Apagado", hay una pequeña parte dedicada a verificar las entradas de algunas fuentes (como el botón frontal, algunos dispositivos USB y tal vez un módem) para que pueda responder encendiendo la alimentación del sistema entero. La forma de apagar realmente toda la alimentación es desconectar el cable de alimentación o utilizar el interruptor físico montado en la parte posterior de la fuente de alimentación para apagarlo.

Fuente ¿Cómo funciona el botón de encendido?


Los interruptores modernos no contienen ninguna magia. De hecho, son menos complicados y costosos que los interruptores físicos reales de encendido / apagado.

Estos interruptores son solo entradas a un microcontrolador. El microcontrolador puede saber cuándo presiona el botón, y el resto está codificado en el firmware para decidir qué hacer al respecto. La potencia generalmente se conmuta con transistores. Esto significa que el botón en sí no tiene que manejar alto voltaje o alta corriente, por lo que hay muchas más opciones para hacerlo y para que sea pequeño. Podría ser un interruptor de membrana, por ejemplo, que nunca usarías para cambiar la alimentación de la pared.

Esto significa que generalmente un poco del dispositivo está encendido, al menos lo suficiente como para alimentar el microcontrolador. Sin embargo, los microcontroladores modernos pueden tomar cantidades tan pequeñas de energía cuando no hacen nada más que esperar una señal de interruptor que esta energía es irrelevante en la mayoría de los casos.

En algunos casos, el botón en realidad hace que el micro se encienda cuando se presiona, lo que luego enciende algunos transistores o un relé o algo para mantener la alimentación encendida. Cuando presiona el botón para apagar el dispositivo, el micro apaga todo, incluso a sí mismo.

Fuente ¿Cómo funcionan estos modernos botones de encendido en los dispositivos? Respuesta de Olin Lathrop

DavidPostill
fuente
1
Para aclarar, ¿el botón de encendido es manejado directamente por la CPU principal como la mayoría del código de BIOS o el firmware que maneja el botón de encendido se ejecuta en un microcontrolador como la segunda parte de su respuesta?
slebetman
3
Creo que es a la vez: presionar el botón genera un evento ACPI para la CPU, pero también hay una CPU no principal que lo monitorea para implementar un apagado forzado verdadero si se mantiene presionado sin respuesta de la CPU. De lo contrario, podría terminar en una situación en la que las interrupciones están desactivadas y ACPI está desactivado, y no puede forzar el apagado.
pjc50
6

¿El mecanismo de apagado forzado universal (supongo) está integrado a nivel de hardware o firmware?

Sin buscar referencias, aquí hay una lógica bastante simple: deben funcionar en el nivel de hardware porque funcionan sin CPU en el zócalo.

Claro, la PC no hará todo eso entonces, pero técnicamente puedes encenderlo; si su placa base tiene la capacidad de enviarle mensajes (por pitidos o un pequeño código de 2 dígitos) probablemente obtendrá el código "CPU defectuosa / sin CPU". También podrá apagarlo con una presión prolongada, que es la parte importante aquí.

Además, tenga en cuenta que en todos los casos en que el sistema se encuentra en un estado profundamente no sensato (es decir, en modo de usuario único / linux kernel panic / BSOD, etc.) y para todos los intentos y propósitos en un callejón sin salida, el poder botón todavía funciona (al menos la pulsación larga).

Tenga en cuenta que "nivel de hardware" ya es un término bastante amplio; es decir, podría haber fácilmente cualquier cosa, desde unos pocos transistores hasta un pequeño µC dedicado con unos pocos bits de NVRAM (que mantendría los valores configurados por el BIOS, por ejemplo, en el comportamiento de la pulsación corta), que la mayoría de las personas todavía llamaría "hardware".

AnoE
fuente