-
TECHNISCHES GEBIET
-
Ausführungsbeispiele der Erfindung beziehen sich auf das Gebiet von Computersystemen und insbesondere auf einen schnellen Ruhezustand und eine schnelle Wiederinbetriebnahme von Computersystemen.
-
HINTERGRUND
-
Computersysteme können zwischen verschiedenen Leistungszuständen übergehen. Im Allgemeinen ermöglicht jeder Leistungszustand ein Herunterfahren von bestimmten Elementen des Computersystems während einer Periode der Inaktivität. Tieferliegende Zustande ermöglichen im Allgemeinen eine weitere Leistungseinsparung, erfordern jedoch zusätzliche Zeit, um zum Betrieb zurückgelangen.
-
Zum Beispiel können Leistungszustände Zustände umfassen, die als S-Zustände bezeichnet werden, einschließlich S3 und S4. S3 wird gelegentlich als Wartezustand, Schlafzustand oder Schwebezustand für einen RAM bezeichnet und ist ein Schlafzustand, in welchem das Betriebssystem (OS) eines Computersystems den Kontext des Systems in den physikalischen Speicher (dynamischer Zufall-Zugriffsspeicher (DRAM)) speichert und das Computersystem in einen Wartezustand versetzt wird. Während dieser Operation werden geöffnete Dokumente und Programme (Anwendungen) (oder Teile davon), die zu der Zeit des Eintretens in den S3 genutzt waren, ebenfalls während des Schwebezustands in den DRAM gespeichert. Weiterhin können ebenfalls die Inhalte von einigen Chipsatzregistern in den DRAM geschrieben werden. Der physikalische Speicher DRAM kann ebenfalls bezeichnet werden als der Hauptspeicher oder Systemspeicher. Während des S3-Zustandes wird Leistung von der Plattform-Hardware weggenommen, mit Ausnahme des DRAMs und eines kleinen Anteils von Schaltungen, die später für das Aufwachen des Systems genutzt werden. Der S3-Leistungszustand stellt eine relativ kurze Suspendier- und Wiederaufnahme-(Aufwach-)Zeit bereit, und zwar infolge seiner Möglichkeit OS-Kontext und zuvor genutzte Programme und Dokumente in/von dem Hochgeschwindigkeits-DRAM-Speicher zu speichern und wiederherzustellen.
-
S4, der manchmal auch als Ruhezustand, Schlafzustand und Suspendieren-zur-Platte bezeichnet wird, ermöglicht, dass der OS-Kontext und offene Dokumente und Programme (oder Teile davon) auf einen Festplattenlaufwerk (HDD) gesichert werden, anstatt dass sie in den schnellen DRAM-Speicher gespeichert werden. Dies ermöglicht eine erhöhte Leistungsersparnis als der S3-Zustand, da der DRAM nicht angeschaltet zu bleiben braucht. Jedoch ist eine höhere Latenz als Folge der langsamen Lese- und Schreibzugriffszeiten zu der HDD vorhanden. Typischerweise ist die S4-Zeit für den Ruhezustand und die Wiederaufnahme in der Größenordnung von einigen Zehnersekunden.
-
Der Ruhezustand und die Wiederaufnahme von Computerplattformen ist beispielsweise beschrieben in dem
U.S.-Patent Nr. 7,971,071 „System und Verfahren für einen schnellen Ruhezustand und Wiederaufnahme einer Plattform”.
-
KURZBESCHREIBUNG DER FIGUREN
-
Ausführungsbeispiele der Erfindung werden beispielhaft, jedoch nicht einschränkend, beschrieben durch die Figuren und die beiliegenden Zeichnungen, in welchen ähnliche Bezugszeichen sich auf ähnliche Elemente beziehen.
-
1 zeigt Ausführungsbeispiele von Prozessen einer Computerplattform, um in einen schnellen Ruhezustand zu gelangen und um den schnellen Ruhezustand zu verlassen;
-
2 zeigt die Transformation von Daten durch ein Ausführungsbeispiel einer Vorrichtung, eines Systems oder eines Verfahrens zum schnellen Überführen einer Plattform in einen Ruhezustand und ihrer Wiederaufnahme;
-
3 zeigt ein Ausführungsbeispiel für eine Reinigungsoperation eines Speichers in einer Vorrichtung, eines Systems und Verfahrens für einen schnellen Ruhezustand und Wiederaufnahme einer Plattform;
-
4 zeigt ein Ausführungsbeispiel einer Speicherprozessierung in einer Vorrichtung, einem System oder eines Verfahrens für einen schnellen Ruhezustand einer Plattform;
-
5 zeigt ein Ausführungsbeispiel für eine Wiederinbetriebnahme eines Computersystems von einem schnellen Plattform-Ruhezustands-Prozess;
-
6 zeigt ein Flussdiagramm für ein Ausführungsbeispiel für ein Verfahren für einen schnellen Plattform-Ruhezustand eines Computersystems;
-
7 zeigt ein Flussdiagramm eines Ausführungsbeispiels für ein Verfahren zur schnellen Plattform-Wiederinbetriebnahme eines Computersystems, welches in einen Ruhezustand gesetzt wurde; und
-
8 zeigt ein Ausführungsbeispiel eines Computersystems, welches eine(n) schnelle(n) Plattform-Ruhezustand und Wiederinbetriebnahme bereitstellt.
-
DETAILLIERTE BESCHREIBUNG
-
Ausführungsbeispiele der Erfindung beziehen sich im Allgemeinen auf eine(n) schnelle(n) Plattform-Ruhezustand und -Wiederaufnahme von Computersystemen.
-
In einigen Ausführungsbeispielen stellt eine Vorrichtung, System oder Verfahren (wie z. B. eine Computer-Vorrichtung, -System oder -Verfahren) ein verbessertes Verfahren für eine(n) schnelle(n) Plattform-Ruhezustand und -Wiederaufnahme bereit. In einigen Ausführungsbeispielen umfasst eine Vorrichtung, ein System oder Verfahren einen Mechanismus, um den Plattform-Ruhezustand über eine effiziente Handhabung der Kontextdaten zu verbessern, einschließlich einer Eliminierung von Null-Seiten-Daten in dem Ruhezustand. In einigen Ausführungsbeispielen verbessert eine Vorrichtung, ein System oder ein Verfahren die Plattform-Wiederaufnahme durch ein Null-Setzen von Speicher, um Null-Seiten beim Neu-Laden von Kontextdaten zurückzugeben. In einigen Ausführungsbeispielen umfasst das Null-Setzen von Speichern die Verwendung eines Hardware-Elementes, um eine verbesserte Initialisierung von Nullen im Speicher bereitzustellen.
-
In einigen Ausführungsbeispielen kann eine Vorrichtung, ein System oder ein Verfahren Folgendes umfassen: Feststellen und Berechnen von OS-aktiven DRAM physikalischen Speicherseiten; Bilden eines Filters (bezeichnet als ein Null-Seiten-Filter)/Bitmaps, um nichtaktive (Null-)DRAM-Seiten oder andere Speicherelemente zu identifizieren; Initialisieren von DRAM auf Nullen über einen Hardware- oder Softwaremechanismus; effizientes Prozessieren von direkten Speicherzugriffsströmen unter Nutzung von Null-Seiten-Filtern/Bitmaps; und Anwendungen eines Runtime-OS-Mechanismus, um unsaubere OS-DRAM-Seiten zu entleeren.
-
Übliche Computersysteme stehen zusätzlichen Problemen gegenüber, indem die Menge an Speicher, und somit die Menge an Kontextdaten, die zu speichern sind, sich erhöhen. Solche Systeme befassen sich nicht mit der Auswirkung auf die Performance, die von großen DRAM-Speichergrößen resultiert. In einigen Ausführungsbeispielen stellt eine Vorrichtung, ein System oder ein Verfahren einen intelligenten Mechanismus bereit, um die Größe von DRAM-Seiten, die zu sichern sind und von nichtvolatilen Speichern wiederherzustellen sind, anzupassen, um so eine signifikante Verbesserung hinsichtlich der Performance von Ruhezustands-/Ausschalt- und Wiederherstellungsprozessen zu erreichen.
-
In einigen Ausführungsbeispielen umfasst eine Vorrichtung, ein System oder ein Verfahren zwei Teile: einen ersten Mechanismus oder Prozess, um transparent und effizient Systemspeicherdaten auf ein dauerhaftes Speichermedium zu speichern; und einen zweiten Mechanismus oder Prozess, um effizient die Systemspeicherdaten von dem Speichermedium wiederherzustellen oder sie zurück in den Systemspeicher auszutauschen.
-
In einigen Ausführungsbeispielen stellt eine Vorrichtung, ein System oder ein Verfahren eine schnelle Plattform-Ruhezustands- und Wiederherstellungsvorrichtung oder -verfahren bereit, einschließlich des Kopierens von Kontextinformation von einem volatilen Systemspeicher zu einem nichtvolatilen Speicher (der ebenfalls bezeichnet wird als NVRAM oder nichtvolatilem Zufalls-Zugriffsspeicher) als Teil des Überganges zu einem Niedrigleistungszustand. In einigen Ausführungsbeispielen umfasst die Vorrichtung oder das Verfahren ein Kopieren von gespeicherter Kontextinformation zurück in einen volatilen Systemspeicher auf einen Übergang zurück zu einem Betriebszustand von einem Ruhezustand. In einigen Ausführungsbeispielen stellt die Vorrichtung, das System oder Verfahren ein Bestimmen der Position von jedem Abschnitt eines Speichers, der ungenutzt ist und Null-Information enthält, bereit. In einigen Ausführungsbeispielen ermöglicht das Gerät oder System ein Eliminieren von allen Null-Elementen des Speichers während des Kopierens von Kontextinformation.
-
In einigen Ausführungsbeispielen umfasst eine Vorrichtung, System oder Verfahren einen Speicherreiniger, wobei der Speicherreiniger ausgebildet ist, um einen DRAM-Speicher zu säubern oder Elemente auf Null zu setzen. In einigen Ausführungsbeispielen erlaubt der Speicherreiniger ein Null-Setzen von Elementen eines Speichers schneller als eine Software ein Null-Setzen ermöglicht. In einigen Ausführungsbeispielen wird der Speicherreiniger genutzt während der Wiederaufnahme eines Betriebes des Systems oder eines Systems von einem Ruhezustand, um alle Elemente eines initialisierten volatilen Speichers zu Null zu setzen, bevor der Plattform-Kontext von einem nichtvolatilen Speicher wiederhergestellt wird. In einigen Ausführungsbeispielen erlaubt eine Vorrichtung, System oder Verfahren einen verbesserten Betrieb in einen schnellen Plattform-Ruhezustand und eine schnelle Wiederinbetriebnahme durch ein Reduzieren der Datenmenge, die erforderlicherweise zu speichern und wiederherzustellen ist, indem Null-Daten-Elemente eliminiert werden und der volatile Speicher beim Wiederherstellen auf Null gesetzt wird, um so ein schnelleres Wiederladen von Null-Daten-Elementen in den volatilen Speicher zu ermöglichen.
-
In einigen Ausführungsbeispielen umfasst ein Gerät oder System weiter einen Speicherabschnitt zum schnellen Zugriff in einem Ruhezustand. In einem Ausführungsbeispiel kann ein Speicherabschnitt z. B. einen Kalender oder Daten umfassen, die für einen schnellen Zugriff erforderlich sind, wenn das System oder Gerät in einem Niedrigleistungszustand ist.
-
In einigen Ausführungsbeispielen wird ein Speicherprozess durch eine Leistungsbetriebslogik oder BIOS initialisiert. In einigen Ausführungsbeispielen kann der Speicherprozess unabhängig initialisiert werden oder er kann auf eine Anfrage des Betriebssystems initialisiert werden. In einigen Ausführungsbeispielen umfasst ein schneller Ruhezustandsprozess für eine Plattform das Folgende:
- (a) Das Betriebssystem initialisiert einen Übergang in einen ersten Zustand reduzierter Leistung, wie zum Beispiel einen Sleep-(S3)-Übergang, durch ein Speichern des gegenwärtigen Zustandes des volatilen System-DRAM.
- (b) In einigen Ausführungsbeispielen, als Teil eines schnellen Ruhezustandssystems, kann ein Betriebssystemagent, wie zum Beispiel ein schneller Ruhezustandsdienst oder ein Treiber, optional Teile des Betriebssystemspeichers auf eine Platte entleeren, um so den OS-DRAM-aktiven Speicherplatz so klein wie möglich zu halten.
- (c) Ein Hardware-Prozessor, wie beispielsweise die zentrale Verarbeitungseinheit (CPU) oder ein eingebetteter Prozessor (EP), oder eine Systemsoftware, wie beispielsweise das binäre Input-/Outputsystem (BIOS) oder Firmware (FW), kopiert OS-DRAM-Speicherinhalte in nichtvolatile Speicherpositionen, entweder direkt oder indirekt über Mittel wie beispielsweise einen Geräte-Direktspeicherzugriff (DMA).
- (d) In einigen Ausführungsbeispielen, auf den Empfang einer OS-Niedrigleistungsanfrage (wie beispielsweise ein Warten-S3/S0ix), operiert eine Anwendung auf Nutzerebene oder ein Treiber, um unreine und teilweise aktive Speicherseiten auf eine Platte zu entleeren, während freiwerdende DRAM-Speicherseiten zu Nullen umgewandelt werden. In einigen Ausführungsbeispielen verringert diese Operation die Gesamtgröße der aktiven DRAM-(nicht-Null)-Speicherseiten, während die Größe eines Nullseiten-Pools sich vergrößert.
- (e) Das Betriebssystem kann eine Absicht anzeigen, um in einen zweiten Zustand reduzierter Leistung überzugehen, wie beispielsweise einen Ruhezustand, wobei ein Computersystem in dem zweiten Zustand reduzierter Leistung weniger Leistung verbraucht als das Computersystem in dem ersten Zustand reduzierter Leistung. Zum Beispiel kann das Betriebssystem operieren, um bestimmte Bits (die SLP_TYP- und SLP_EN-Bits) in dem Chipsatz zu setzen, um der Chipsatz-Hardware anzuzeigen, dass sie in einen Ruhezustand gehen möchte.
- (f) In einigen Ausführungsbeispielen kann das Betriebssystem einen Mechanismus nutzen, der durch die Systemhardware zum Eintritt in einen ersten Zustand reduzierter Leistung, wie beispielsweise den Standby S3/S30ix-Zustand, bereitgestellt wird.
- (g) Auf ein Erhalten eines Schlafereignisses kann die System-Hardware die Steuerung an die Leistungsmanagement-Logik, BIOS oder Firmware übergeben, die dann den Systemspeicher nach aktiven und inaktiven Speicher absucht und einen Null-Seiten-Filter (wie z. B. ein Bitmap) für nichtaktive (Null) Seiten oder andere Speicherelemente erzeugt.
- (h) In einigen Ausführungsbeispielen nutzt dann die Leistungsmanagementlogik, das BIOS oder die Firmware den Null-Seiten-Filter, um ungenutzte DRAM-Speicherseiten von den DMA-Strom zu entfernen, während die aktiven (Nicht-Null) Seiten zu einem nichtvolatilen Speicher kopiert werden.
- (i) In einigen Ausführungsbeispielen wird der Null-Seiten-Filter dann in den nichtvolatilen Speicher zur Nutzung während der Wiederaufnahme des Betriebes gespeichert.
- (j) In einigen Ausführungsbeispielen versetzt die Leistungsmanagementlogik, BIOS, oder Firmware das System in einen S4/S5-Schlafzustand. In einigen Ausführungsbeispielen kann die Leistungsmanagementlogik oder BIOS optional das System in einen vollkommenen mechanischen Ausschalt-(G3)-Zustand versetzen.
-
Auf ein Erhalten eines Aufwachvorganges, wie beispielsweise eines Leistungsschaltersignals, ein Real-Zeitgeber-(RTC)-Alarm oder ein anderes Aufwachereignis, löst die Leistungsmanagementlogik oder das BIOS einen Aufwachprozess aus. In einigen Ausführungsbeispielen umfasst ein Wiederherstellungsprozess für eine Plattform Folgendes:
- (a) Auf das Auftreten eines Aufwachereignisses, wird die Leistungsmanagementlogik, BIOS, oder Firmware vor anderen Elementen des Systems angeschaltet und initialisiert den DRAM und startet ein Reinigen des vollständigen DRAM mit Nullen. Auf das vollständige Reinigen des DRAM-Speichers mit Nullen beginnt die Power-Management-Logik, BIOS oder Firmware mit dem Wiederherstellen der aktiven (Nicht-Null) DRAM-Seiten von dem NVRAM unter Nutzung des zuvor gespeicherten Null-Seiten-Filter.
- (b) Die Leistungsmanagementlogik, BIOS oder Firmware setzt eine Systemwiederherstellung (wie zum Beispiel eine S3-Wiederherstellung) entsprechend einer normalen Prozedur fort.
-
In einigen Ausführungsbeispielen stellt eine Vorrichtung, System oder Verfahren einen schnellen Plattform-Ruhezustand bereit, in welchem ein Systemkontext in einen nichtvolatilen Speicher (einen kleineren nichtvolatilen Speicher oder NVRAM) geschrieben wird, der eine kleinere Kapazität aufweist als ein anderer nicht volatiler Speicher (der größere nichtvolatile Speicher oder ein Festplattenlaufwerk), welcher genutzt wird zum Wiederherstellen von zumindest einem Betriebssystem, Programm oder Daten. Während einer Wiederaufnahme von einem schnellen Ruhezustand, wird der Systemkontext von dem kleineren nichtvolatilen Speicher gelesen und genutzt für die Wiederherstellungsoperation eines Computersystems. In einigen Ausführungsbeispielen wird der Systemkontext vollständig von einem DRAM-Speichersystem zu den kleineren nichtvolatilen Speicher transferiert und auf die Wiederaufnahme vollständig von dem kleinen nichtvolatilen Speicher zu dem DRAM-Systemspeicher transferiert. In einigen Ausführungsbeispielen kann der Systemkontext teilweise von anderen Speichern wie beispielsweise einen Chipsatzregister kommen und direkt zu solchen Register zurückgeschrieben werden, anstatt indirekt durch den DRAM zu laufen.
-
In einigen Ausführungsbeispielen, während des schnellen Ruhezustandsprozesses, kommt es zu Übertragung von dem DRAM-Systemspeicher zu den kleineren nichtvolatilen Speicher, sogar nachdem Prozessorkerne und andere Systemkomponente wie beispielsweise eine Festplatte oder ein Anzeigeschirm ausgeschaltet wurden. Dies ermöglicht den Nutzer des Computers das Gefühl zu haben, dass das Computersystem sehr schnell herunterfährt, selbst wenn der Transfer des Systemkontexts noch nicht abgeschlossen wurde. Dementsprechend verbessern Ausführungsbeispiele die Nutzerwahrnehmung der Systemreaktionsfähigkeit. In einigen Ausführungsbeispielen wird die Systemreaktionsfähigkeit weiter verbessert durch die Verringerung der Speicher-Ablagen über das Eliminieren von Null-Seiten aus dem Speicher, so dass der Speicher schneller ausgeschaltet wird.
-
In einigen Ausführungsbeispielen nutzt ein schneller Ruhezustandsprozess ein Betriebssystem, welches für S3 (ersten Zustand reduzierter Leistung) und S4 (ein zweiter Zustand reduzierter Leistung) Zuständen bestimmt ist, jedoch nicht spezifisch bestimmt ist für einen schnellen Ruhezustand. Dies kann erfolgen durch ein Veranlassen des BIOS und/oder eines anderen Mechanismus, auf eine Anweisung für einen Schwebezustandskommando an einen RAM (S3) zu antworten, und zwar durch ein Setzen des Prozessors in einen Systemmanagementmodus (SMM) und ein Steuern der Übertragung von dem DRAM-Systemspeicher zu dem kleineren nichtvolatilen Speicher und dann durch ein Wechsel eines schlafartigen Zustandes zu dem Ruhezustand. In diesen Ausführungsbeispielen kann der Prozess transparent für das Betriebssystem sein.
-
1 zeigt Ausführungsbeispiele von Verfahren für eine Computerplattform, um in einen schnellen Ruhezustand einzutreten und aus dem schnellen Ruhezustand heraus zu gelangen. In dieser Darstellung beginnt das Eintreten in den schnellen Ruhezustand 110 mit einem Betriebssystem in einem Betriebs(S0)-Zustand 115, der in einen Schlaf-(S3)Zustand übergeht, einschließlich des Speicherns von Kontextdaten in einen volatilen DRAM-Speicher 120. In einigen Ausführungsbeispielen umfasst der schnelle Ruhezustandsprozess die Identifikation von Null-Daten-Seiten. Der schnelle Ruhezustandsprozess umfasst weiter ein Kopieren von nicht-Null-Daten-Seiten der Kontextinformation von dem DRAM, während die Nicht-Null-Daten und ein Null-Seiten-Filter in dem NVRAM 125 gespeichert werden. Der Speicher ist ein nichtvolatiler Speicher und erlaubt einen Übergang von der Plattform zu einem Ruhezustand (S4) oder, optional, in einem Null-Leistungszustand 130.
-
In einigen Ausführungsbeispielen beginnt der Austrittsprozess aus einem schnellen Ruhezustand 160 mit S4 oder einen Null-Leistungszustand 165. In einigen Ausführungsbeispielen wird, auf ein Aufwachen der Logik wie beispielsweise eine Leistungsmanagementlogik oder BIOS, der DRAM 175 gereinigt mit Nullwerten, und nicht-Null-Seiten werden von dem NVRAM 170 zu dem DRAM 175 wiedergestellt unter Nutzung des gespeicherten Null-Seiten-Filters. Das Laden von Kontext in den DRAM 175 bringt dann die Daten in der richtigen Position zum Wiederherstellen des Kontexts unter Nutzung des Schlafzustand-(S3)-Prozesses, um so das Betriebssystem (180) in den Betriebs-(S0-)Zustand zurückzuversetzen.
-
2 zeigt eine Darstellung der Transformation von Daten durch ein Ausführungsbeispiel für eine Vorrichtung, System oder Verfahren für einen schnellen Plattformruhezustand und -Wiederaufnahme. In einigen Ausführungsbeispielen kann in einem schnellen Ruhezustandsprozess eine nichtgefilterte FFS-(Flash File System)DMA-Tabelle 220, die ein Systemkontext, der in dem DRAM zum Übergang in einem Schlafzustand gespeichert ist, nach Null-Seiten gescannt werden. Die Scanresultate in einem Null-Seiten-Filter 250 stellen die Positionen der aktiven/nicht-Null-Seiten und der nichtaktiven/Null-Seiten dar. In einigen Ausführungsbeispielen werden dann die Null-Seiten 255 verworfen. In einigen Ausführungsbeispielen resultiert dann der schnelle Ruhezustandsprozess in eine gefilterte FSS-DMA-Tabelle 270, wobei die gefilterte Tabelle nicht-Null-Seiten und leere Einträge umfasst.
-
3 zeigt ein Ausführungsbeispiel einer Speicherreinigungsoperation in einer schnellen Plattformruhezustands- und Wiederaufnahme-Vorrichtung-, System oder -Verfahren. In einigen Ausführungsbeispielen umfasst ein Verlassen von einem schnellen Ruhezustand eine Inbetriebnahme des DRAM vor einem erneuten Laden der Daten von dem nichtvolatilen Speicher. Jedoch wird der DRAM-Speicher 320 zufällige Eins- und Null-Werte als Zustände von Speicherelementen nach der Rückkehr in einen Leistungszustand enthalten und im Allgemeinen instabil werden. Die Wiederherstellung von Daten von dem nichtvolatilen Speicher wird lediglich die Werte von nicht-Nullelementen wiederherstellen und somit werden die Null-Elemente Zufallsdaten enthalten, wenn keine Vorkehrungen getroffen werden.
-
In einigen Ausführungsbeispielen wird, vor der Wiederherstellung von Daten in dem DRAM von dem nichtvolatilen Speicher, der DRAM durch ein Hardware-Reinigungselement 350 bereinigt, wobei das Hardware-Element 350 in der Lage ist, um Nullen in jedem Bit des Computer-DRAM signifikant schneller zu speichern, als dieser Prozess unter Nutzung von Software-Anweisungen dazu in der Lage wäre. In einigen Ausführungsbeispielen ist das Resultat ein entleerter Speicher 370, der Null-Elemente in jedem Bit enthält. In einigen Ausführungsbeispielen kann der bereinigte Speicher 370 genutzt werden, um den wiederhergestellten Systemkontext von einem nichtvolatilen Speicher zu halten, wobei nicht-Null-Seiten entsprechend zu einer Null-Filter-Seite eingefügt werden können, wie z. B. die Null-Filter-Seite 250 der 2, wodurch der DRAM in einen Zustand zum Übergang durch das Betriebssystem zurück zu dem Betriebszustand (S0) zurückversetzt wird.
-
4 ist eine Darstellung eines Ausführungsbeispiels einer Speicherverarbeitung in einer/m schnellen Plattformruhezustands-Vorrichtung, -System oder -Verfahren. In einigen Ausführungsbeispielen werden, in einer FFS-DMA-Verarbeitung 400, ungefilterte DMA-Tabelleneinträge 405 durch ein Null-Seiten-Filter 410 verarbeitet, um Null-Seiten in den Tabelleneinträgen zu identifizieren. In einigen Ausführungsbeispielen resultiert das Verarbeiten in eine Tabelle von gefilterten DMA-Tabelleneinträgen 415 (wie die Tabelleneinträge 270, die in der 2 dargestellt sind), die nicht-Null-Seiten und leere Einträge enthalten.
-
In einigen Ausführungsbeispielen sind die gefilterten Tabelleneinträge komprimiert, wie es durch den Prozess einer Tabellenkomprimierung 420 gezeigt ist, was zu komprimierten DMA-Einträgen 425 führt, welche im Allgemeinen im Vergleich zu den Original-Tabelleneinträgen deutlich reduziert sind. In einigen Ausführungsbeispielen sind die komprimierten DMA-Einträge 425 durch eine Hardware-DMA-Maschine 430 zum Speichern in einen nichtvolatilen Speicher verarbeitet, wie es als Speicher einer Festkörperplatte (SSD) 435 gezeigt ist.
-
5 zeigt ein Ausführungsbeispiel einer Wiederaufnahme eines Computersystems von einem schnellen Plattform-Ruhezustandsprozess. In einigen Ausführungsbeispielen stellt eine Vorrichtung, System oder Verfahren Möglichkeiten der Wiederaufnahme von einem schnellen Ruhezustand bereit, wobei die Wiederaufnahme durch einen zweiphasigen Prozess beschrieben werden kann. In einigen Ausführungsbeispielen ist eine erste Phase 510 zur Vorbereitung des DRAM zum Laden von Kontextdaten bereitgestellt.
-
In einigen Ausführungsbeispielen wird, auf einen Erhalt eines Einschaltereignisses der Computerplattform, die Leistungsmanagementlogik oder BIOS eingeschaltet und operiert, um den DRAM-Speicher 515 zu initialisieren. Jedoch werden, auf eine Initialisierung, die Bits des DRAM-Speichers im Allgemeinen zufällig sein. Um das Laden von Kontextdaten zu ermöglichen, wird der Speicher bereinigt, um eine Null in jedem Bit des Speichers zu setzen. In einigen Ausführungsbeispielen wird der DRAM 515 bereinigt durch einen Hardware-Reiniger 520, wobei der Hardware-Reiniger schnell den DRAM zu Null setzen kann, um einen bereinigten Speicher 525 zu erzeugen, der Nullen in Datenbits des Speichers enthält.
-
In einigen Ausführungsbeispielen umfasst eine zweite Phase 560 ein Erhalten von Kontextdaten, die in dem SSD-Speicher 575 gespeichert sind, wobei komprimierte DMA-Einträge 570 (die nicht-Null-Seiten) durch den FFS-DMA-Tabellenprozessor 565 zusammen mit dem Null-Seiten-Filter (wie beispielsweise das Element 250, welches in der 2 gezeigt ist) in dem schnellen Ruhezustandsprozess gespeichert wurden. In einigen Ausführungsbeispielen operiert die DMA-Maschine 580, um die Daten von dem SSD zu erhalten, was weiter ein Erhalten des Null-Seiten-Filters von dem SSD umfasst. In einigen Ausführungsbeispielen ist die DMA-Maschine 580 ausgebildet, um komprimierte Daten in dem bereinigten DRAM 585 entsprechend zu dem Null-Seiten-Filter zu speichern, wodurch der DRAM in einen Zustand für einen Übergang in einen Betriebsleistungszustand durch das Betriebssystem versetzt wird.
-
6 zeigt ein Flussdiagramm, welches ein Ausführungsbeispiel eines Verfahrens darstellt, welches ein Computersystem schnell in einen Plattform-Ruhezustand versetzt. In dieser Darstellung kann ein Computersystem gestartet werden 600, um so das Computersystem in einen Betriebs(S0)-Leistungszustand zu versetzen. Das Computersystem kann mit unterschiedlichen Computersystemoperationen 605 fortfahren. Auf ein Detektieren eines Ereignisrufes für das Computersystem, um es in einen ersten Zustand reduzierter Leistung zu versetzen, welches hier als Schlafzustand bezeichnet wird (welches ein S3-Zustand oder ein ähnlicher Zustand sein kann) 610, unterminiert das Betriebssystem solche Aktionen, die für den Eintritt in den Schlafzustand erforderlich sind, einschließlich eines Speichern von gegenwärtigen Kontextdaten 616 in einem DRAM-Systemspeicher 660.
-
In einigen Ausführungsbeispielen wird die Steuerung an eine Logik wie beispielsweise BIOS, Leistungsmanagementlogik oder Firmware (mit dem BIOS-Fall, wie er in der 6 dargestellt ist) weiter gegeben. In einigen Ausführungsbeispielen ist das BIOS ausgebildet, um den DRAM-Systemspeicher nach aktiven und inaktiven Seiten zu scannen und um einen Null-Seiten-Filter von aktiven Seiten 620 zu erzeugen. In einigen Ausführungsbeispielen nutzt das BIOS den Null-Seiten-Filter zum Eliminieren von inaktiven DRAM-Speicherseiten, um so die Kontextdaten 625 zu komprimieren.
-
In einigen Ausführungsbeispielen ist das BIOS ausgebildet zum Speichern der komprimierten Kontextdaten und des Null-Seiten-Filters 630 in den nichtvolatilem Speicher (NVRAM) 670. In einigen Ausführungsbeispielen kann die Speicherung in NVRAM bestimmte Daten umfassen, auf die sehr schnell auf eine Inbetriebnahme des Computersystems zugegriffen wird, wie z. B. Kalender- oder Planungsdaten. In einigen Ausführungsbeispielen schaltet das BIOS die Versorgung des DRAMs ab und setzt den Übergang des Systems in einen zweiten Zustand reduzierter Leistung fort, die als ein Ruhezustand bezeichnet wird (welcher ein S4-Zustand oder ein ähnlicher Zustand sein kann) 635, was das Computersystem in dem Ruhezustand 640 belässt.
-
7 zeigt ein Flussdiagramm, das ein Ausführungsbeispiel eines Verfahrens für eine schnelle Wiederaufnahme eines Computersystems, welches in einem Ruhezustand gesetzt wurde, darstellt. In dieser Darstellung kann ein Computersystem anfänglich in einem zweiten Zustand reduzierter Leistung (einem Ruhezustand) 700 sein. Auf das Feststellen eines Aufwachereignisses 705 (wie beispielsweise ein Versorgungsschaltersignal, Realzeittaktgeberalarm, oder andere Aufwachereignisse) wird die Logik wie beispielsweise die Leistungsmanagementlogik, BIOS oder Firmware (wobei das Beispiel des BIOS in der 7 gezeigt ist) vor den anderen Elementen des Systems 710 angeschaltet. In einigen Ausführungsbeispielen kann das System optional ausgebildet sein zum Zugriff auf Datenbilder einer bestimmten Anwendung 715, um einem Benutzer einen schnellen Zugriff auf die Daten zu erlauben.
-
In einigen Ausführungsbeispielen ist das BIOS ausgebildet, um den DRAM(volatilen)-Systemspeicher des Systems 720 zu initialisieren, welches im Allgemeinen weitestgehend zu zufälligen Daten, die in dem DRAM enthalten sind, führt. In einigen Ausführungsbeispielen ist das BIOS ausgebildet, um den DRAM-Speicher 760 zu bereinigen oder zu Null zu setzen, wobei die Operation einen Hardware-Reiniger, welcher ein schnelles zu Null-Setzen des Speichers 725 erlaubt, nutzt.
-
In einigen Ausführungsbeispielen empfängt das BIOS die gespeicherten komprimierten Kontextdaten und Null-Seiten-Filter 730 von dem NVRAM 770. Das BIOS führt dann fort mit den Kontextdaten von dem NVRAM 770 in dem DRAM-Systemspeicher 780 entsprechend zu dem Null-Seiten-Filter 735, wodurch die Daten vor der Eliminierung von Null-Seiten-Daten in dem Ruhezustandsprozess erneut erzeugt werden, und die Daten in einer Form für einen ersten Zustand reduzierter Leistung (Schlafzustand) gebracht werden.
-
In anderen Ausführungsbeispielen kann das Betriebssystem dann fortfahren mit dem Wiederherstellen des Betriebszustandes unter Nutzung der erneut erzeugten Kontextdaten, die in dem DRAM-Systemspeicher 740 gespeichert sind, was in einen Übergang des Computersystems von dem Schlafzustand in einen Betriebszustand 750 resultiert.
-
8 zeigt ein Ausführungsbeispiel eines Computersystems, welches einen schnellen Plattform-Ruhezustand und Wiederaufnahme ermöglicht. In dieser Darstellung werden bestimmte Standard- und bekannte Komponenten, welche für die gegenwärtige Beschreibung nicht weiter von Belang sind, nicht gezeigt. In einigen Ausführungsbeispielen umfasst das Computersystem 800 eine Verbindung oder ein Crossbar 805 oder andere Kommunikationsmittel zum Übertragen von Daten. Das Computersystem 800 kann Verarbeitungsmittel wie beispielsweise eine oder mehrere Prozessoren 810, die mit der Verbindung 805 gekoppelt sind, zum Verarbeiten von Information umfassen. Die Prozessoren 810 können eine oder mehrere physikalische Prozessoren und eine oder mehrere logische Prozessoren umfassen. Die Verbindung 805 wird als eine einzige Verbindung der Einfachheit halber dargestellt, kann aber mehrfache unterschiedliche Verbindungen oder Busse darstellen und die Komponentenverbindungen zu solchen Verbindungen können variieren. Die Verbindung 805, wie sie in der 8 gezeigt ist, ist eine Abstraktion, die jeden oder mehrere separate physikalische Busse darstellen kann, Punkt-zu-Punkt-Verbindungen oder beides, die durch geeignete Brücken, Adapter oder Kontroller miteinander verbunden sind.
-
In einigen Ausführungsbeispielen umfasst das Computersystem 800 einen Hardwarespeicher-Reiniger 812, der ausgebildet ist, zum Bereinigen von Speicher, um Daten mit Nullen nach dem Initialisieren eines solchen Speichers in einer Wiederaufnahme des Betriebs zu ersetzen, nachdem das System in einem Ruhezustand versetzt wurde. In einigen Ausführungsbeispielen umfasst das Computersystem 800 weiter einen Zufall-Zugriffs-Speicher (RAM) oder andere dynamische Speichergeräte oder -elemente als einen Hauptspeicher 814 zum Speichern von Information und Anweisungen, die durch die Prozessoren 810 auszuführen werden. Der RAM-Speicher umfasst einen dynamischen Zufall-Zugriffs-Speicher (DRAM), die ein Erneuern von Speicherinhalten erfordern, und statische Zufall-Zugriffs-Speicher (SRAM), welche kein Erneuern von Inhalten erfordern, aber zu erhöhten Kosten. DRAM-Speicher können synchrone dynamische Zufall-Zugriffs-Speicher (SDRAM) umfassen, die ein Taktsignal umfassen, um Signale zu steuern, und ausgedehnte Ausgangsdaten dynamischer Zufall-Zugriffsspeicher (EDO DRAM) umfassen. In anderen Ausführungsbeispielen kann der Speicher-Reiniger 812 auf den Hauptspeicher 814 zugreifen, um dem Hauptspeicher 814 zu erlauben, vor dem Transfer von Daten in dem Hauptspeicher auf der Wiederaufnahme des Betriebes des Computersystems 800 bereinigt zu werden. In einigen Ausführungsbeispielen kann der Speicher des Systems bestimmte Register oder andere spezielle Speicher umfassen. Das Computersystem 800 kann ebenfalls ein Nur-Lese-Speicher (ROM) 816 oder andere statische Speichergeräte umfassen zum Speichern statischer Informationen und Anweisungen für die Prozessoren 810. Das Computersystem 800 kann ein oder mehrere nichtvolatile Speicherelemente 818 zum Speichern von bestimmten Elementen umfassen. In anderen Ausführungsbeispielen umfassen die nichtvolatilen Speicherelemente 818 nichtvolatile Speicher zum Speichern von Kontextdaten in einem schnellen Ruhezustandsprozess.
-
Das Computersystem 800 kann ebenfalls über die Verbindung 805 an eine Ausgabeanzeige 840 gekoppelt werden. In einigen Ausführungsbeispielen kann die Anzeige 840 eine Flüssigkristallanzeige (LCD) oder andere Arten von Anzeigetechnologien zum Anzeigen von Informationen oder Inhalten für einen Nutzer umfassen. In einigen Ausführungsbeispielen kann die Anzeige 840 einen Touchscreen umfassen, der ausgebildet ist, um zumindest teilweise auch als ein Eingabegerät zu dienen. In einigen Ausführungsbeispielen kann die Anzeige 840 ein Audiogerät umfassen oder sein, wie beispielsweise ein Lautsprecher zum Bereitstellen von Audioinformation. Das Computersystem 800 kann weiter einen oder mehrere Eingabegeräte 842 wie beispielsweise eine Tastatur, Maus oder andere Anzeigegeräte, ein Mikrofon für Audioanweisungen oder andere Eingabegeräte umfassen.
-
Ein oder mehrere Überträger oder Empfänger 845 können ebenfalls an die Verbindung 805 koppeln. In einigen Ausführungsbeispielen kann das Computersystem 800 eine oder mehrere Ports 850 zum Empfangen und Senden von Daten umfassen. Das Computersystem 800 kann weiter eine oder mehrere Antennen 855 zum Empfangen von Daten über Funksignale umfassen.
-
Das Computersystem 800 kann ebenfalls ein Versorgungsgerät oder System 860 umfassen, welches eine Versorgungsquelle, eine Batterie, eine Solarzelle, eine Brennstoffzelle oder andere Systeme oder Geräte zum Bereitstellen oder Erzeugen eines Stromes umfassen. Die Leistung, die durch das Versorgungsgerät oder -System 860 bereitgestellt wird, kann, wenn erforderlich, an Elemente des Computersystems 800 weiterverteilt werden. In einigen Ausführungsbeispielen kann das Versorgungssystem 860 eine Versorgungsmanagementlogik umfassen oder mit einer zusammenarbeiten, wobei eine solche Versorgungsmanagementlogik Funktionen oder Verfahren bereitstellen kann, die in Bezug stehen zu dem schnellen Plattformruhezustand und der -Wiederaufnahme.
-
In der vorherigen Beschreibung sind zum Zwecke der Erklärung verschiedene spezifische Details dargestellt worden, um ein gründliches Verständnis der vorliegenden Erfindung zu erreichen. Es versteht sich jedoch für einen Fachmann, dass die vorliegende Erfindung, ohne diese spezifischen Details ausgeführt werden kann. In anderen Beispielen wurden bekannte Strukturen in Geräten in Blockdiagrammform gezeigt. Es mag Zwischenstrukturen zwischen den einzelnen dargestellten Komponenten geben. Die Komponenten, die hierin beschrieben und dargestellt sind, können zusätzliche Eingaben oder Ausgaben haben, die nicht dargestellt oder beschrieben wurden.
-
Unterschiedliche Ausführungsbeispiele können unterschiedliche Verfahren umfassen. Diese Verfahren können durch Hardwarekomponenten ausgeführt werden oder können eingebettet sein in Computerprogrammen oder maschinenlesbaren Anweisungen, die genutzt werden können, um einen Mehrzweck- oder einen Spezialprozessor oder Logikschaltungen, die mit den Anweisungen programmiert wurden, dazu zu veranlassen, das Verfahren auszuführen. Alternativ können Verfahren durch eine Kombination von Hardware und Software ausgeführt werden.
-
Teile von verschiedenen Ausführungsbeispielen können als ein Computerprogrammprodukt bereitgestellt werden, welches ein computerlesbares Medium umfassen kann, welches darauf gespeicherte Programmanweisungen enthält, die genutzt werden können, um einen Computer (oder andere elektronische Geräte) zur Ausführung durch einen oder mehrere Prozessoren eines Verfahrens nach einem der bestimmten Ausführungsbeispielen zu programmieren. Das computerlesbare Medium kann, muss aber nicht oder ist nicht darauf beschränkt, folgendes umfassen: Disketten, optischen Platten, Kompaktscheiben Nur-Lese-Speicher (CD-ROM) und magnetisch-optische Platten, Nur-Lese-Speicher (ROM), Zufall-Zugriffs-Speicher (RAM), löschbare programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder andere Arten von computerlesbaren Medien, die geeignet sind zum Speichern von elektronischen Anweisungen. Außerdem können Ausführungsbeispiele ebenfalls als ein Computerprogrammprodukt heruntergeladen werden, wobei das Programm übertragen werden kann von einem entfernten Computer zu einem anfragenden Computer.
-
Viele der Verfahren sind in ihrer einfachsten Form beschrieben, jedoch können Prozesse hinzugefügt werden oder entfernt werden von jedem der Verfahren und Information kann hinzugefügt werden oder abgezogen werden von allen der beschriebenen Nachrichten, ohne von dem grundliegenden Umfang der vorliegenden Erfindung abzuweichen. Es ist offensichtlich für einen Fachmann, dass viele weitere Modifikationen und Anpassungen vorgenommen werden können. Die besonderen Ausführungsbeispiele sind nicht beschrieben, um die Erfindung einzuschränken, sondern lediglich um sie darzustellen. Der Umfang der Ausführungsbeispiele der vorliegenden Erfindung ist nicht bestimmt durch die spezifischen Beispiele, die zuvor dargestellt wurden, sondern lediglich durch die folgenden Ansprüche.
-
Wenn gesagt wird, dass ein Element „A” gekoppelt ist mit einem Element „B”, kann ein Element „A” direkt gekoppelt sein an das Element „B” oder indirekt gekoppelt sein über z. B. ein Element „C”. Wenn die Beschreibung oder Ansprüche aussagen, dass eine Komponente, Merkmal, Struktur, Verfahren oder Charakteristik A eine Komponente, Merkmal, Struktur, Prozess oder Charakteristik B „veranlasst”, heißt dies, dass „A” zumindest ein Teil der Ursache von „B” ist, aber es kann auch zumindest eine weitere Komponente, Merkmal, Struktur, Prozess oder Charakteristik „B” mit verursachen. Wenn die Beschreibung darstellt, dass eine Komponente, Merkmal, Struktur, Prozess oder Charakteristik umfasst sein „kann”, „könnte” oder „dürfte”, dann ist die besondere Komponente, Merkmal, Struktur, Prozess oder Charakteristik nicht notwendigerweise umfasst. Wenn die Beschreibung oder Ansprüche „ein” Element bezeichnen, heißt dies nicht, dass nur das eine beschriebene Element vorhanden ist.
-
Ein Ausführungsbeispiel ist eine Implementierung oder Beispiel der vorliegenden Erfindung. Der Bezug in der Beschreibung auf „ein Ausführungsbeispiel”, „einige Ausführungsbeispiele” oder „andere Ausführungsbeispiele” bedeutet, dass ein besonderes Merkmal, Struktur oder Charakteristik, welches in Verbindung mit den Ausführungsbeispielen beschrieben wird, zumindest in einigen Ausführungsbeispielen, aber nicht notwendigerweise in allen Ausführungsbeispielen vorhanden ist. Die unterschiedlichen Vorkommen von „ein Ausführungsbeispiel” oder „einigen Ausführungsbeispielen” beziehen sich nicht notwendigerweise auf dieselben Ausführungsbeispiele. Es sollte verstanden werden, dass die vorhergehende Beschreibung beispielhafte Ausführungsbeispiele der vorliegenden Erfindung sind, das unterschiedliche Merkmale mitunter zusammengruppiert sind in einem einzigen Ausführungsbeispiel, Figur oder einer Beschreibung davon lediglich zum Zweck der besseren Offenbarung und der Hilfe im Verständnis von einem oder mehreren unterschiedlichen erfinderischen Aspekten. Dieses Verfahren der Offenbarung ist jedoch nicht zu interpretieren als eine Wiedergabe der Absicht, dass die beanspruchte Erfindung mehrere Merkmale notwendigerweise umfasst, als sie eindeutig ausgedrückt werden in jedem der Ansprüche. Stattdessen, wie die folgenden Ansprüche darstellen, liegen die erfinderischen Aspekte in weniger als allen Merkmalen eines einzigen zuvor beschriebenen Ausführungsbeispiels. Daher sind die Ansprüche ausdrücklich einbezogen in die Beschreibung mit jedem der Ansprüche, wobei jeder als ein eigenes separates Ausführungsbeispiel der Erfindung zu verstehen ist.