Werden VRAM / Register im Ruhezustand gespeichert?

8

Wenn ein Computer in den ACPI S4-Status wechselt, speichert er seinen RAM-Inhalt auf der Festplatte und fährt herunter.

Aber was passiert mit Registern, VRAM oder flüchtigem Speicher in Erweiterungskarten oder ähnlichem?

Max Ried
quelle

Antworten:

3

Die TL: DR-Antwort auf Ihre Frage lautet: Nicht als Teil der Hardware- / BIOS-S4-Implementierung, obwohl nichts das Betriebssystem / die Treiber daran hindert, dies zu tun.

Gemäß der ACPI-Spezifikation ist das Betriebssystem dafür verantwortlich, alle Systemgeräte nach der Wiederherstellung aus einem S4-Ruhezustand in einen verwendbaren Zustand zu versetzen.

ACPI-Spezifikation Seite 7-142 "System \ _S4 State":

  • Die Gerätezustände sind mit den aktuellen Power Resource-Zuständen kompatibel. Mit anderen Worten, alle Geräte befinden sich im Status D3, wenn der Systemstatus S4 ist

Der D3-Status ist definiert als:

D3 - Aus:
Das Gerät wurde vollständig vom Stromnetz getrennt. Der Gerätekontext geht verloren, wenn dieser Status eingegeben wird, sodass die Betriebssystemsoftware das Gerät beim erneuten Einschalten neu initialisiert. Da Gerätekontext und Stromversorgung verloren gehen, decodieren Geräte in diesem Zustand ihre Adressleitungen nicht. Geräte in diesem Zustand haben die längsten Wiederherstellungszeiten.
Alle Geräteklassen definieren diesen Status.

Damit der Treiber unter Windows (oder einem anderen Betriebssystem) funktioniert, muss er alle erforderlichen Puffer zuweisen und eine bestimmte Menge an Statusinformationen speichern . Dies wird im Speicher des Betriebssystems und somit in der Ruhezustandsdatei gespeichert.

Das Betriebssystem weiß, welche Geräte initialisiert werden müssen, und ruft wahrscheinlich nur den registrierten Treiberinitialisierungscode auf, der prüft, ob Statusinformationen in seinen internen Puffern gespeichert wurden, und die Karte in einen verwendbaren Zustand zurückversetzt.

Dies wiederholt nur, dass die Karten selbst nichts darüber wissen, wie sie sich aus dem Ruhezustand herausbewegen und in ihren Standardzustand "Einschalten" zurückkehren können, bis Windows (über die Treiber) etwas anderes sagt. Es ist nicht erforderlich, die Kartenregister außerhalb von betriebssystemabhängigen Treibern zu speichern, damit ihr Speicherplatz durch den Ruhezustand gespeichert wird.

Mokubai
quelle
Wenn ich Sie richtig gelesen habe, werden der VRAM und andere Caches für Erweiterungskarten in den entsprechenden Treibern im RAM gespeichert. Beim Beenden des Ruhezustands sind diese Treiber dafür verantwortlich, diese Inhalte des Erweiterungsspeichers neu zu installieren. Habe ich dich richtig verstanden?
Dan
1
So funktioniert mein Verständnis davon. Das Betriebssystem (und die Erweiterungstreiber) sind dafür verantwortlich, dass alle Geräte nach einem Ruhezustand in einen verwendbaren Zustand zurückversetzt werden. VRAM muss möglicherweise nicht speziell "gespeichert" werden, da VRAM einfach eine Darstellung dessen speichert, was das System wünscht, damit es durch "Wiedergabe" des Bildschirmzeichnungsprozesses wiederhergestellt werden kann, z. B. diese Bitmap nehmen und hier zeichnen, dann diese Linie zeichnen und so weiter Alle Dinge, die im System-RAM und nicht nur im VRAM gespeichert werden. Ähnliches gilt für alle anderen Geräte / Treiber, die aus dem Ruhezustand kommen.
Mokubai
EINFACH FALSCH. Die Standardgröße der Ruhezustandsdatei (hiberfil.sys) hängt von der auf Ihrem PC installierten RAM-Größe ab. Der VRAM in modernen Grafikkarten kann so groß oder größer als der RAM des Computers sein, geht jedoch nicht in diese Berechnung ein. Wenn man die Grafikkarte durch eine mit einem größeren VRAM ersetzt, wird Windows hiberfil.sys nicht neu zuweisen! Der Grund dafür ist natürlich, dass Windows weder VRAM noch einen anderen Gerätespeicher speichert (es sei denn, das Gerät behält seinen Speicher im RAM).
Harryc
→ harrymc: muss nicht schreien ☺. Diese Frage wurde nicht als Windows gekennzeichnet. Vielleicht warten einige Leser auf eine Analyse des Verhaltens verschiedener Betriebssysteme.
Dan
@danielAzuelos: Nicht schreien, sondern nur einen Fehler für zukünftige Leser melden. Jeder, der jemals ein 32-Bit-Betriebssystem verwendet hat, sollte wissen, dass ein Teil des RAM als Gerätespeicher für Treiber verwendet wird und dass der größte Teil normalerweise für die Grafikkarte verwendet wird, weshalb a 4 GB Computer können nicht die gesamten 4 GB verwenden. Die Treiber erwarten natürlich nicht, dass Windows ihren integrierten Speicher behält, und Microsoft würde niemals zustimmen, Treiber von Drittanbietern, Videos oder auf andere Weise zu unterstützen. Ich denke nicht, dass dies für Linux / Mac mit Tausenden von zu unterstützenden Geräten anders ist (oder sein kann).
Harryc
6

Wenn die Ausführung des Computers zum Ruhen unterbrochen wird, werden alle CPU- Register für die aktuell ausgeführten Threads im System-RAM gespeichert, wie dies bei Interrupts üblich ist . Diese werden also mit dem RAM gespeichert und können beim Aufwecken nahtlos neu gestartet werden.

Video-RAM oder VRAM wird nicht gespeichert und muss beim Aufwachen vom Betriebssystem neu generiert werden, um die Anzeige zu aktualisieren, was automatisch erfolgt. Ein schwarzer Bildschirm kann daher für eine extrem kurze (normalerweise nicht wahrnehmbare) Zeit entstehen.

Wenn eine gebrauchte Erweiterungskarte während des Ruhezustands zurückgezogen wird, schlägt der verwendete Prozess nach dem Aufwecken fehl, ebenso wie jede CD-Lesesoftware, wenn die CD zurückgezogen wird, oder ein Vorgang, bei dem eine ausstehende Internetverbindung verwendet wird. Was dann passiert, hängt davon ab, wie dieser Prozess programmiert wurde.

harrymc
quelle
1
Können Sie das zitieren?
Max Ried
Nein - persönliches Wissen.
Harrymc
@danielAzuelos: Der Video-RAM befindet sich auf der Grafikkarte und sein Inhalt wird entweder von der Karte selbst oder von der CPU generiert. Früher befand es sich im RAM und wurde zum Speichern des Bildpuffers in Grafikadaptern verwendet. Heute wird es jedoch weniger verwendet, da Grafikkarten leistungsfähiger als die CPU geworden sind. Windows spart nur RAM und keinen Gerätespeicher.
Harryc
→ harrymc: Wie wird der VRAM-Inhalt regeneriert? Wie wird der grafische Kontext wiederhergestellt, wenn er nicht im Prozesskontext gespeichert ist? Dieser grafische Kontext kann zum Zeitpunkt eines Interrupts das Ergebnis von Millionen elementarer Operationen auf der GPU sein. Wenn dieser VRAM nicht gespeichert wird, wie wird dieser riesige Satz von Operationen wiedergegeben?
Dan
@danielAzuelos: Die grafischen Gerätekontexte werden ungültig gemacht und aktualisiert, auch wenn dies einige Minuten dauert.
Harryc
0

Sie sind laut Wikipedia : S4: Ruhezustand oder Suspend to Disk. Der gesamte Inhalt des Hauptspeichers wird auf einem nichtflüchtigen Speicher wie einer Festplatte gespeichert und ausgeschaltet. Auch nach hier .

Konkret heißt es :

S3 - "Im RAM anhalten"

Die gesamte Stromversorgung der CPU wird abgeschaltet und der Inhalt ihrer Register wird in den RAM gespült, der eingeschaltet bleibt. In Microsoft Windows kann der Befehl "Standby" diesem Status zugeordnet werden, wenn er im BIOS aktiviert ist. Dieser Systemstatus ist am anfälligsten für Fehler und Instabilität, da ein hohes Maß an Koordination zwischen CPU-, Chipsatz-, Geräte-, Betriebssystem-, BIOS- und Betriebssystem-Gerätetreibern erforderlich ist. Pavel Machek hat ein kleines Dokument mit einigen Hinweisen zur Lösung von Problemen mit S3 erstellt. Sie finden es in den Kernelquellen unter Documentation / power / tricks.txt. S3 wird derzeit von der 2.4.x-Kernel-Serie unter Linux nicht unterstützt. S4 - "Auf Festplatte aussetzen"

Die CPU wird wie in S3 abgeschaltet, aber der RAM wird auf die Festplatte geschrieben und ebenfalls ausgeschaltet. In Microsoft Windows ist der Befehl "Ruhezustand" diesem Status zugeordnet. Am häufigsten wird eine Variante namens S4BIOS verwendet, bei der das Systemabbild vom BIOS anstelle des Betriebssystems gespeichert und geladen wird. Da der Inhalt des RAM auf die Festplatte geschrieben wird, bleibt der Systemkontext erhalten. Beispielsweise würden nicht gespeicherte Dateien nach einem S4-Übergang nicht verloren gehen. S4 wird derzeit von der 2.4.x-Kernel-Serie unter Linux nicht unterstützt, aber Sie haben möglicherweise viel Glück mit SWSUSP. Einige Computer bieten S4_BIOS an, dessen Unterstützung unter Linux / ACPI als experimentell angesehen wird.

vfbsilva
quelle
Die ursprüngliche Frage betraf einen wichtigen Speicherpunkt in modernen Computern: den VRAM und alle anderen Formen von flüchtigem Speicher, die in Erweiterungskarten eingebettet sind. Wie werden sie gerettet? Einige VRAM erreichen möglicherweise 1 GByte.
Dan