Welcher Firmware / Hardware-Mechanismus ermöglicht das erzwungene Herunterfahren?

41

Obwohl ich das nicht genau weiß, bin ich mir ziemlich sicher, dass das Gedrückthalten des Ein- / Ausschaltknopfs auf allen Computern das Herunterfahren der Computer nach unterschiedlichen Zeiten erzwingt. Dies ist besonders nützlich, wenn der Computer einfriert oder ein anderer Fehler einen vollständigen Neustart erforderlich macht.

Was mich interessiert ist, ob dieser Force-Shutdown-Mechanismus in die zugrunde liegende Firmware des Computers fest einprogrammiert ist? Oder ob dies auf Hardwareebene in den Computer eingebaut ist. Wenn es sich bei dem Mechanismus um Firmware handelte, ist es logisch anzunehmen, dass ein Fehler auf CPU-Ebene die ordnungsgemäße Auslösung dieses Mechanismus verhindern würde, was mich zu der Annahme veranlasst, dass es sich um eine Hardwarefunktion handelt.

Zusammenfassend lässt sich sagen: Ist der universelle Force-Shutdown-Mechanismus (ich nehme an) auf Hardware- oder Firmware-Ebene eingebaut? Und kann jemand die Mechanismen Natur, Varianten und allgemeine Geschichte erarbeiten.

user4493605
quelle
7
@EJP Falsch. Siehe meine Antwort :)
DavidPostill
2
Bei einigen benutzerdefinierten Geräten, mit denen ich gearbeitet habe, die auch einen Soft-Power-Knopf haben und batteriebetrieben sind (was einem Benutzer einen harten Stromzyklus erschwert), fügen wir explizit einen separaten Mikrocontroller oder Timer + Logikschaltungen (oder einen eigenen Abschnitt) hinzu auf einem FPGA), um die Stromversorgung zu handhaben, wenn die Firmware komplex genug ist, um ein hartes Ausschalten zu ermöglichen, wenn ein Firmware-Fehler vorliegt, der sie blockiert.
Jason C
4
Die meisten Aussagen mit "all" sind falsch.
Paŭlo Ebermann
2
Wenn alles andere fehlschlägt, gibt es eine weitere vollständige Hardware-Backup-Lösung, die ein dickes schwarzes Kabel auf der Rückseite mit einem 3-poligen Stecker umfasst. Wenn Sie dieses entfernen, wird auch das Herunterfahren erzwungen.
Darren H
3
@ DarrenH nicht auf einem Laptop mit einem nicht austauschbaren Akku. Das Schmeicheln der Batterie würde funktionieren, aber meine hat 10+ Stunden Lebensdauer (zum Beispiel)
Chris H

Antworten:

45

Ist der universelle Force-Shutdown-Mechanismus auf Hardware- oder Firmware-Ebene integriert?

Sowohl das Motherboard (Hardware) als auch das BIOS (Firmware) sind an dem Prozess beteiligt.

Das eigentliche Ein- und Ausschalten der Stromversorgung erfolgt über Schaltkreise auf der Hauptplatine. Die Stromkreise werden durch einen vorübergehenden Kurzschluss zweier Punkte im Stromkreis ausgelöst, um ihren Zustand zu ändern. Dies erfolgt über die Drucktaste an der Vorderseite. Eine kurzfristige Verbindung dieser Taste ist ausreichend. Die Hauptplatinenschaltung hat auch eine zweite und dritte Funktion, die sie ausführen kann.

Das BIOS ist normalerweise so eingestellt, dass eine von zwei Aktionen ausgeführt wird, wenn sich der Stromkreis bereits im EIN-Zustand befindet und der Momentan-Kontakt für mindestens 4 Sekunden geschlossen bleibt. Entweder wird das System sofort heruntergefahren (wie das Ausschalten eines Schalters), oder das Motherboard wird in den Ruhezustand versetzt und wartet, bis es wieder aktiviert wird. Welche dieser beiden Optionen ausgeführt wird, wird in den BIOS-Setup-Bildschirmen festgelegt. **

Dies ist der Grund, warum das Motherboard in den meisten Betriebssituationen niemals vollständig ausgeschaltet ist. Selbst wenn es ausgeschaltet ist, wird ein kleiner Teil darauf verwendet, nach Eingaben von einigen Quellen (wie dem vorderen Druckknopf, einigen USB-Geräten und möglicherweise einem Modem) zu suchen, damit es reagieren kann, indem es die Stromversorgung einschaltet ganzes System. Um die gesamte Stromversorgung auszuschalten, müssen Sie entweder das Netzkabel herausziehen oder den physischen Schalter auf der Rückseite des Netzteils verwenden, um das Gerät auszuschalten.

Quelle Wie funktioniert der Netzschalter?


Die modernen Schalter enthalten keine Magie. Tatsächlich sind sie weniger kompliziert und teuer als echte physische Ein / Aus-Schalter.

Diese Schalter sind nur Eingänge zu einem Mikrocontroller. Der Mikrocontroller erkennt, wann Sie die Taste drücken, und der Rest ist in der Firmware richtliniencodiert, um zu entscheiden, was zu tun ist. Die Leistung wird üblicherweise mit Transistoren geschaltet. Dies bedeutet, dass der Knopf selbst nicht mit hoher Spannung oder hohem Strom umgehen muss. Es gibt also viel mehr Optionen, um ihn zu machen und klein zu halten. Es könnte sich beispielsweise um einen Membranschalter handeln, mit dem Sie niemals die Wandstromversorgung umschalten würden.

Dies bedeutet, dass in der Regel ein Teil des Geräts eingeschaltet ist, zumindest für die Stromversorgung des Mikrocontrollers. Moderne Mikrocontroller können jedoch so wenig Energie verbrauchen, wenn sie nur auf ein Schaltsignal warten, dass diese Energie in den meisten Fällen irrelevant ist.

In einigen Fällen bewirkt der Knopf, dass das Mikro beim Drücken eingeschaltet wird, wodurch dann einige Transistoren oder ein Relais oder etwas eingeschaltet bleiben. Wenn Sie die Taste drücken, um das Gerät auszuschalten, fährt das Mikro alles herunter, auch sich selbst.

Quelle Wie funktionieren diese modernen Einschaltknöpfe auf Geräten? Antwort von Olin Lathrop

DavidPostill
quelle
1
Wird der Netzschalter wie der meiste BIOS-Code direkt von der Haupt-CPU bedient oder läuft die Firmware, die den Netzschalter bedient, auf einem Mikrocontroller wie im zweiten Teil Ihrer Antwort?
Slebetman
3
Ich glaube, es ist beides: Das Drücken der Taste generiert ein ACPI-Ereignis für die CPU, aber es gibt auch eine CPU, die es überwacht, um ein echtes erzwungenes Herunterfahren zu implementieren, wenn es ohne Antwort von der CPU gedrückt wird. Andernfalls könnten Sie in eine Situation geraten, in der Interrupts ausgeschaltet und ACPI deaktiviert sind und das Herunterfahren nicht erzwingen können.
pjc50
6

Ist der universelle Force-Shutdown-Mechanismus (nehme ich an) auf Hardware- oder Firmware-Ebene integriert?

Ohne nach Referenzen zu suchen, gibt es hier eine ziemlich einfache Logik: Sie müssen auf der Hardware-Ebene arbeiten, da sie ohne CPU im Sockel arbeiten.

Sicher, der PC macht dann nicht so viel, aber Sie können ihn trotzdem technisch einschalten. Wenn Ihr Mainboard in der Lage ist, Ihnen Nachrichten zu übermitteln (durch Pieptöne oder einen kleinen zweistelligen Code), erhalten Sie wahrscheinlich den Code "Bad CPU / No CPU". Sie können es auch mit einem langen Tastendruck ausschalten, was hier der wichtigste Teil ist.

Denken Sie auch daran, dass in allen Fällen, in denen sich das System in einem äußerst unsicheren Zustand befindet (z. B. im Einzelbenutzermodus / Linux-Kernel-Panik / BSOD usw.) und in jeder Hinsicht in einer Sackgasse liegt Taste funktioniert immer noch (zumindest das lange Drücken).

Beachten Sie, dass "Hardware-Level" bereits ein ziemlich weit gefasster Begriff ist. Das heißt, es könnte leicht irgendetwas geben, von einigen Transistoren bis zu einem kleinen dedizierten µC mit ein paar NVRAM-Bits (die die vom BIOS konfigurierten Werte beibehalten würden, zum Beispiel das Verhalten des Tastendrucks), das die meisten Leute kennen würde immer noch "Hardware" nennen.

AnoE
quelle