DE112011105864T5 - Verfahren, Vorrichtung und System zur Speichervalidierung - Google Patents

Verfahren, Vorrichtung und System zur Speichervalidierung Download PDF

Info

Publication number
DE112011105864T5
DE112011105864T5 DE112011105864.0T DE112011105864T DE112011105864T5 DE 112011105864 T5 DE112011105864 T5 DE 112011105864T5 DE 112011105864 T DE112011105864 T DE 112011105864T DE 112011105864 T5 DE112011105864 T5 DE 112011105864T5
Authority
DE
Germany
Prior art keywords
memory
processor
determining
value
validation means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112011105864.0T
Other languages
English (en)
Inventor
Yen Hsiang Chew
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112011105864T5 publication Critical patent/DE112011105864T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Retry When Errors Occur (AREA)

Abstract

Verfahren und Mechanismen zum Sicherstellen, dass ein oder mehrere adressierbare Orte im Speicher einer Computerplattform aus einem eventuell ungültigen Zustand in einen bekannt gültigen Zustand überführt werden. Bei einer Ausführungsform führt ein Speichervalidierungsmittel, welches von einem Prozessor der Computerplattform getrennt ist, Speichervalidierungs-Schreibvorgänge als Reaktion auf eine Angabe des Leistungszustandsübergangs durch. Bei einer anderen Ausführungsform bestimmt das Speichervalidierungsmittel Informationen, welche in Schreibbefehle aufgenommen werden sollen, welche die Speichervalidierung implementieren, wobei das Bestimmen der Informationen vom Betrieb des Prozessors entkoppelt ist.

Description

  • HINTERGRUND
  • 1. Technisches Gebiet
  • Hier diskutierte Ausführungsformen betreffen im Allgemeinen Computerspeichersysteme. Insbesondere betreffen bestimmte Ausführungsformen verschiedenartig eine Konfiguration einer Speichervorrichtung nach einem Leistungszustandsübergang.
  • 2. Stand der Technik
  • Hochfahren einer Computerplattform oder die Plattform auf andere Weise aus einem Zustand für niedrigeren Stromverbrauch in einen Zustand für höheren Stromverbrauch überzuwechseln benötigt oft mehr Zeit als erwünscht. Da ferner technologische Verbesserungen fortgesetzt auf eine Implementierung kleinerer Plattformen drängen, – z. B. für Tablet-Computer und verschiedene andere Handgeräte – stehen sich die Nachfrage nach erhöhter Leistungseffizienz und die Nachfrage nach schnellerer Wiederherstellung aus Zuständen niedriger Leistung zunehmend unversöhnlich gegenüber.
  • Folglich können Verzögerungen im Zusammenhang mit Leistungsübergängen nicht tragbar sein, wenn eine Vorrichtung auf beschleunigter Basis aktiviert werden muss. Eine Einschränkung beim Bereitstellen eines ausreichend schnellen Hochfahrens (oder anderer Leistungsübergänge) ist die Notwendigkeit, flüchtige Speicher zum Betrieb nach einem Leistungszustand vorzubereiten, bei welchem es den Informationen, welche in einem derartigen flüchtigen Speicher gespeichert sind, möglich ist, zu degradieren. Nach einem derartigen Leistungszustand können sich ein oder mehrere Orte in dem Speicher in einem eventuell ungültigen Zustand befinden, wie beispielsweise wenn sich eine oder mehrere Speicherzellen in unbestimmten logischen Zuständen zwischen logisch „hoch” und logisch „niedrig” befinden.
  • Operationen, um sicherzustellen, dass eine Speichervorrichtung sich in einem bekannt gültigen Zustand befindet, verlangsamen Hochfahroperationen und andere Übergänge, und sind aus mindestens diesem Grund bei verschiedenen Anwendungen eine Einschränkung der Brauchbarkeit bestimmter Computerplattformen. Dementsprechend gibt es einen Bedarf für Mechanismen, welche beispielsweise ein schnelleres Hochfahren oder andere Operationen ermöglichen, welche einem Leistungszustandsübergang von Computersystemen zugeordnet sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die verschiedenen Ausführungsformen der vorliegenden Erfindung werden beispielhaft und nicht einschränkend in den Figuren der begleitenden Zeichnungen illustriert, wobei:
  • 1 ein Blockdiagramm ist, welches Elemente einer Computerplattform gemäß einer Ausführungsform zum Bereitstellen einer Speichervalidierung illustriert.
  • 2A bis 2C Blockdiagramme sind, welche Elemente der verschiedenen Architekturen zum Bereitstellen einer Speichervalidierung gemäß jeweiligen Ausführungsformen illustrieren.
  • 3 ein Blockdiagramm ist, welches Elemente eines Speichervalidierungsmittels zum Durchführen einer Speichervalidierung gemäß einer Ausführungsform illustriert.
  • 4 ein Ablaufdiagramm ist, welches Elemente eines Algorithmus für ein Speichervalidierungsmittel zum Durchführen von Schreibvorgängen auf einen Speicher gemäß einer Ausführungsform illustriert.
  • 5 ein Ablaufdiagramm ist, welches Elemente eines Algorithmus zum Laden von Software-Code in validierten Speicher gemäß einer Ausführungsform illustriert.
  • 6 ein Ablaufdiagramm ist, welches Elemente eines Algorithmus zum Laden von Software-Code in validierten Speicher gemäß einer Ausführungsform illustriert.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockdiagramm, welches ausgewählte Elemente einer Computerplattform 100 zum Bereitstellen einer Speichervalidierung gemäß einer Ausführungsform illustriert. Die Computerplattform 100 kann beispielsweise eine Plattform eines Arbeitsplatzcomputers, ein tragbarer Computer wie beispielsweise ein Laptop-Computer oder Handgerät – z. B. ein Tablet-Computer, ein PDA-Minicomputer (PDA, Personal Digital Assistant), ein Smartphone, ein Funkrufgerät, ein digitales Musikabspielgerät, eine digitale Kamera usw. – oder eine andere derartige Computerplattform zum Speichern, Verarbeiten, Senden, Empfangen von Daten und/oder dergleichen sein.
  • Bei einer Ausführungsform weist die Computerplattform 100 eine Verarbeitungseinheit 105 mit einem oder mehreren Prozessorkernen auf, um Software auszuführen – z. B. ein Betriebssystem zum Implementieren einer oder mehrerer Anwendungen darauf. Beispielsweise kann die Verarbeitungseinheit 105 eine Zentraleinheit (CPU, Central Processing Unit), einen Prozessor mit anwendungsspezifischem Befehlssatz-(ASIP, Application-Specific Instruction-set Processor) oder einen anderen Prozessor zum Ausführen eines oder mehrerer Betriebssystemsbefehle, Software-Hochfahrbefehle, ROM-Auswahlbefehle, Firmware-Schnittstellenbefehle und/oder dergleichen aufweisen. Zum Zweck der Darstellung und nicht einer Begrenzung kann ein Prozessor der Verarbeitungseinheit 105 Code des Basisdatenaustauschsystems (BIOS, Basic Input/Output System), Code der erweiterbaren Firmware-Schnittstelle (EFI, Extensible Firmware Interface), wie beispielsweise Code der vereinheitlichten erweiterbaren Firmware-Schnittstelle (UEFI, Unified Extensible Firmware Interface), und/oder andere Firmware-Schnittstellenbefehle ausführen. Jeder von verschiedenen Typen von Firmware-Schnittstellencode, Betriebssystemscode, Anwendungscode usw. – welcher mit den hier diskutierten Verfahren konsistent ist – kann von der Verarbeitungseinheit 105 ausgeführt werden.
  • Eine Computerplattform kann einen Speicher 120 aufweisen, welcher an eine Verarbeitungseinheit 105 angeschlossen ist, – z. B. über eine Speichersteuerung 110 – wobei der Speicher 120 Befehle oder andere Daten zur Unterstützung der Software-Ausführung durch die Verarbeitungseinheit 105 speichert. Der Speicher 120 kann beispielsweise jede von verschiedenen Kombinationen von einem oder mehreren flüchtigen Speichervorrichtungen aufweisen. Zum Zweck der Darstellung und nicht einer Begrenzung kann der Speicher 120 Direktzugriffsspeicher (RAM, Random Access Memory) aufweisen, wie beispielsweise einen oder mehrere Speicher aus dynamischem RAM (DRAM), statischem RAM (SRAM), wie beispielsweise SDRAM mit doppelter Datengeschwindigkeit (DDR, Double Data Rate) und/oder dergleichen. Der Speicher 120 kann beispielsweise eine oder mehrere Doppelreihen-Speichermodul-(DIMM, Dual In-line Memory Module)-Vorrichtungen aufweisen, obwohl bestimmte Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind.
  • Bei einer Ausführungsform weist der Speicher 120 mehrere adressierbare Orte 122a, ..., 122n zum Speichern von Informationen – z. B. von Befehlen, Daten, Adressinformationen und/oder dergleichen – zum Zugriff durch die Verarbeitungseinheit 105 auf. Die adressierbaren Orte 122a, ..., 122n können beispielsweise konfiguriert sein, um Informationen zu speichern, welche einen Zustand eines oder mehrerer Software-Prozesse repräsentieren, welche durch die Verarbeitungseinheit 105 ausgeführt werden sollen.
  • Einige oder alle adressierbare Orte 122a, ..., 122n können jeweils jeweilige Fehlerkorrekturorte 124a, ..., 124n des Speichers 120 aufweisen oder ihnen auf andere Weise entsprechen, obwohl bestimmte Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind. Die Fehlerkorrekturorte 124a, ..., 124n können jeweils verfügbar sein, um einen jeweiligen Fehlerkorrekturcode (ECC, Error Correction Code) oder einen anderen Fehlerkorrekturwert – z. B. ein Paritäts-Bit, eine Prüfsumme, einen Hash-Wert und/oder dergleichen – für Informationen zu speichern, welche an einem entsprechenden der adressierbaren Orte 122a, ..., 122n gespeichert sind. Es versteht sich, dass der Speicher 120 beliebige von verschiedenen zusätzlichen oder alternativen adressierbaren Orten (und/oder Fehlerkorrekturorten) aufweisen kann, welche in 1 nicht gezeigt sind.
  • Zu bestimmten Zeiten kann die Computerplattform 100 verschiedenartig in einem oder mehreren Leistungszuständen arbeiten, – z. B. in einem ausgeschalteten Zustand, in einem Tiefschlafzustand, in einem Schlafzustand usw. – bei welchen die Degradation einiger oder aller Daten möglich sind, welche in dem Speicher 120 gespeichert sind. In einem derartigen Leistungszustand können beispielsweise ein oder mehrere Speicherauffrischmechanismen, Fehlererkennungsmechanismen, Fehlerkorrekturmechanismen und/oder dergleichen, zum Zweck des Reduzierens des Stromverbrauchs der Computerplattform 100 deaktiviert sein. Wenn folglich eine Computerplattform 100 aus einem derartigen Leistungszustand – z. B. durch Einschalten oder Reaktivieren der Computerplattform 100 – in einen Leistungszustand gebracht wird, welcher einen Betrieb derartiger Mechanismen unterstützt, können Daten, welche in dem Speicher 120 gespeichert sind, einiges oder alles von ihrer Integrität verloren haben. Beispielsweise können Informationen in adressierbaren Orten 122a, ..., 122n und/oder in Fehlerkorrekturorten 124a, ..., 124n in einem unbestimmten Zustand sein, sie können Fehler aufweisen, durch welche die Computerplattform 100 sich nicht wieder herstellen kann, sie können Fehler aufweisen, welche einen großen zusätzlichen Fehlerkorrekturaufwand darstellen, und/oder dergleichen.
  • Bei einer Ausführungsform weist die Computerplattform 100 einen oder mehrere Mechanismen zum Überschreiben einiger oder aller Informationen an adressierbaren Orten 122a, ..., 122n auf, – z. B. als Teil eines Übergangs aus einem derartigen Leistungszustand – wobei das Schreiben eventuell degradierte Informationen im Speicher mit Informationen ersetzt, welche bekanntermaßen gültig sind (hier als „bekannt gültige Informationen” bezeichnet).
  • Zur Kürze wird Überschreiben eventuell ungültiger Informationen in einem Speicher mit bekannt gültigen Informationen hier als „Speichervalidierung” bezeichnet. Obwohl der Begriff „Speicherreinigung” ersatzweise ein derartiges Schreiben beschreibt, wurde dieser Begriff auch in der Vergangenheit verwendet, um Verfahren zu bezeichnen, welche Informationen lesen und Fehler korrigieren, welche in den gelesenen Informationen detektiert werden. Im Gegensatz dazu erfordern bestimmte hier diskutierte Ausführungsformen kein tatsächliches Lesen der Informationen, welche überschrieben werden sollen, oder die Bewertung oder Korrektur von Fehlern in derartig gelesenen Informationen.
  • Bei einer Ausführungsform weist die Computerplattform 100 ein Speichervalidierungsmittel 115 auf, welches Logik zum Durchführen einer Speichervalidierung für einige oder alle adressierbaren Orte 122a, ..., 122n aufweist. Das Speichervalidierungsmittel 115 kann sich außerhalb der Verarbeitungseinheit 105 befinden. Zum Zweck der Darstellung und nicht einer Begrenzung kann sich das Speichervalidierungsmittel 115 innerhalb der Speichersteuerung 110 befinden. Bei bestimmten Ausführungsformen können sich das Speichervalidierungsmittel 115 und/oder die Speichersteuerung 110 innerhalb eines integrierten Schaltkreis-(IC, Integrated Circuit)-Paketes oder einer anderen Komponentenvorrichtung der Computerplattform 100 befinden, – z. B. einer Systemchip-(SoC, System-on-Chip)-Vorrichtung – welche die Verarbeitungseinheit 105 aufweist. Bei einer derartigen Vorrichtung kann das Speichervalidierungsmittel 115 von einem oder mehreren Prozessorkernen der Verarbeitungseinheit 105 distinkt sein, – z. B. distinkt von allen Prozessorkernen einer derartigen Komponentenvorrichtung – welche einen Hochfahrprozess, einen Host-OS-Prozess oder einen anderen Initialisierungsprozess durchführen sollen, welcher die Computerplattform 100 beim Überwechseln aus einem niedrigen Leistungszustand unterstützt. Es versteht sich, dass beliebige von verschiedenen Architekturen das Speichervalidierungsmittel 115 gemäß verschiedenen Ausführungsformen mit der Verarbeitungseinheit 105 koppeln können.
  • Bei einer Ausführungsform weist das Speichervalidierungsmittel 115 beliebige von verschiedenen Kombinationen aus Hardware, Software und/oder Firmware auf, um mehrere Schreibvorgänge jeweils auf einen jeweiligen Ort von adressierbaren Orten 122a, ..., 122n durchzuführen. Beispielsweise kann die Speichervalidierung 115 eine Ablaufsteuereinheit oder eine andere Hardware-Engine aufweisen, um mehrere Schreibbefehle zum Schreiben auf jeweilige Orte des Speichers 120 zu erzeugen. Ersatzweise oder zusätzlich kann das Speichervalidierungsmittel 115 einen Co-Prozessor, eine Mikrosteuerung oder ein anderes Mittel aufweisen, um derartige Schreibbefehle zu erzeugen. Bei einer Ausführungsform weist das Speichervalidierungsmittel 115 ein DFX-(Design for X, wobei X ein integriertes Design, eine integrierte Prüfung, Validierung oder andere Funktionalität ist)-Modul auf, welches zum Implementieren einer Speichervalidierung festgeschaltet ist, welche vom Prozessorbetrieb entkoppelt ist.
  • Die Speichervalidierungsoperationen durch das Speichervalidierungsmittel 115 können als Reaktion auf ein Signal erfolgen, – z. B. eine Meldung aus der Verarbeitungseinheit 105 – welche einen Übergang der Computerplattform 100 aus einem Leistungszustand angibt, bei welchem die Degradation der Daten an adressierbaren Orten 122a, ..., 122n möglich ist. Eine Detektion des Signals kann erfolgen nach, während oder sogar vor Erfolgen des Übergangs. Bei einer Ausführungsform kann ein Leistungszustandsübergang zum Aktivieren eines oder mehrerer Mechanismen zum Unterhalten der Datenintegrität an adressierbaren Orten 122a, ..., 122n und (gegebenenfalls) an Fehlerkorrekturorten 124a, ..., 124n eine Komponente eines größeren Plattform-weiten Leistungszustandsübergangs sein.
  • Bei einer Ausführungsform können die Speichervalidierungsoperationen durch das Speichervalidierungsmittel 115 ein Durchführen eines frühesten Schreibvorgangs auf adressierbare Orte 122a, ..., 122n nach dem Übergang aus einem derartigen Leistungszustand aufweisen.
  • Das Erzeugen derartiger Schreibbefehle durch das Speichervalidierungsmittel 115 kann von der Verarbeitungseinheit 105 nach einem oder mehreren Gesichtspunkten unabhängig sein. Insbesondere können Operationen durch das Speichervalidierungsmittel 115 zum Implementieren einer Speichervalidierung von einer gleichzeitigen Operation der Verarbeitungseinheit 105 entkoppelt sein. Zum Zweck der Darstellung und nicht einer Begrenzung kann das Speichervalidierungsmittel 115 bestimmen, dass eine Speichervalidierung für adressierbare Orte 122a, ..., 122n durchgeführt werden muss, wobei das Bestimmen von der Verarbeitungseinheit 105 unabhängig ist, welche dem Speichervalidierungsmittel 115 jede – oder bei einer Ausführungsform alle – der bestimmten adressierbaren Orte spezifiziert, für welche eine Speichervalidierung durchgeführt werden muss. Beispielsweise kann das Speichervalidierungsmittel 115 mehrere Speicheradressen erzeugen oder auf andere Weise bestimmen, für welche eine Speichervalidierung durchgeführt werden muss, wobei ein derartiges Erzeugen/Bestimmen unabhängig ist von allen spezifischen Adressierungsinformationen, welche seit dem fraglichen Leistungszustandsübergang durch die Verarbeitungseinheit 105 kommuniziert wurden. Ersatzweise oder zusätzlich kann das Speichervalidierungsmittel 115 einen oder mehrere Werte erzeugen oder auf andere Weise bestimmen, welche auf adressierbare Orte 122a, ..., 122n geschrieben werden sollen, wobei das Erzeugen/Bestimmen eines oder mehrerer derartiger Werte von der Verarbeitungseinheit 105 unabhängig ist, welche dem Speichervalidierungsmittel 115 alle derartigen Werte spezifiziert – z. B. mindestens seit dem fraglichen Leistungszustandsübergang.
  • Bei bestimmten Ausführungsformen kann das Speichervalidierungsmittel 115 eine Speichervalidierung als Reaktion auf eine Kommunikation aus der Verarbeitungseinheit 105 nur dort durchführen, wo alle derartigen Kommunikationen generisch sind auf alle der adressierbaren Orte 122a, ..., 122n. Beispielsweise kann eine Speichervalidierung von allen derartigen Kommunikationen unabhängig sein, welche Informationen (Adressen, Daten, Befehle und/oder dergleichen) bereitstellen, welche spezifisch sind für einen bestimmten der adressierbaren Orte 122a, ..., 122n.
  • Eine Speichervalidierung kann bei einer Vorbereitung für ein Laden der Software-Befehle und/oder der Software-Zustandsinformationen auf adressierbare Orte 122a, ..., 122n erfolgen. Bei einer Ausführungsform schreibt ein Speichervalidierungsprozess Platzhalterinformationen auf adressierbare Orte 122a, ..., 122n – z. B. wo derartige Platzhalterinformationen nicht selber Code entsprechen, welcher durch die Verarbeitungseinheit 105 ausgeführt werden soll. Das Schreiben derartiger Platzhalterinformationen kann die Wahrscheinlichkeit reduzieren, dass Bits an adressierbaren Orten 122a, ..., 122n sich in einem logisch unbestimmten Zustand befinden. Beispielsweise kann Schreiben derartiger Platzhalterinformationen eine logische „1” oder eine logische „0” auf ein Bit setzen, welches zuvor einen Ladungspegel zwischen einem Schwellenpegel für einen logischen Wert von „1” und einem Schwellenpegel für einen logischen Wert von „0” aufwies. Ersatzweise oder zusätzlich kann das Schreiben derartiger Platzhalterinformationen ein Schreiben von Fehlerkorrekturinformationen aufweisen, welches anderen Platzhalterinformationen, welche durch die Speichervalidierung geschrieben werden, entsprechen und dafür korrekt sind. Dementsprechend kann von Informationen, welche in den Speicher 120 geschrieben werden, gesagt werden, dass sie bekannt gültig sind, zumindest insofern, als dass solche Informationen klare boolesche logische Zustände repräsentieren. Bei bestimmten Ausführungsformen weisen bekannt gültige Informationen solche Informationen auf, welche Fehlerkorrekturinformationen aufweisen oder entsprechen, welche für andere bekannt gültige Informationen akkurat sind.
  • Bei einer Ausführungsform wird eine Speichervalidierung in Vorbereitung für ein frühestes Laden von Software-Befehlen, Zuständen usw. auf adressierbare Orte 122a, ..., 122n seit dem Übergang aus dem Leistungszustand durchgeführt, bei welchem eine Datendegradation in dem Speicher 120 möglich ist. Beispielsweise kann Code für einen BIOS-Code 130 der Computerplattform 100 nach einer Speichervalidierung in den Speicher 120 geladen werden. Bei einer Ausführungsform ist das BIOS 130 in einem nicht flüchtigen Speicher der Computerplattform 100 gespeichert, wie beispielsweise in einem elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM, Electrically Erasable Programmable Read-Only Memory) oder einem anderen Nur-Lese-Speicher, einem NAND-Flash oder einer anderen Flash-Vorrichtung und/oder dergleichen. Bei einer Ausführungsform kann eine beliebige von verschiedener zusätzlicher oder alternativer Software nach einer Speichervalidierung geladen werden, was insbesondere eine oder mehrere Software aus Hochfahr-Software, EFI oder anderer Firmware-Schnittstellen-Software, Betriebssystem usw. umfasst.
  • Zusätzlich zu den oben stehend diskutierten Merkmalen ist die Computerplattform 100 zusätzliche Elemente aufweisend gezeigt, welche nachfolgend diskutiert werden und welche Speichervalidierungsmechanismen und/oder Verfahren bestimmter Ausführungsformen nicht einschränken. Durchschnittsfachleute verstehen aus der Beschreibung hier, dass die Computerplattform 100 beliebige von verschiedenen derartigen zusätzlichen Elementen (nachfolgend diskutiert) gemäß verschiedenen Ausführungsformen aufweisen kann.
  • Die Computerplattform 100 kann beliebige von verschiedenen Vorrichtungen zum Austauschen von Informationen mit der Verarbeitungseinheit 105 und/oder dem Speicher 120 aufweisen. Zum Zweck der Darstellung und nicht einer Begrenzung kann die Computerplattform 100 eine E/A-Steuervorrichtung 125 aufweisen, welche an die Speichersteuerung 110 angeschlossen, wo das BIOS 130 (oder verschiedene andere derartige Software) in den Speicher 120 über die E/A-Steuervorrichtung 125 und die Speichersteuerung 110 geladen werden kann. Ersatzweise oder zusätzlich kann die E/A-Steuervorrichtung 125 mit einer oder mehreren anderen Komponenten der Computerplattform 100 mit der Verarbeitungseinheit 105 und/oder dem Speicher 120 gekoppelt sein. Zum Zweck der Darstellung und nicht einer Begrenzung kann die E/A-Steuervorrichtung 125 einen Eingang in und/oder einen Ausgang aus einem Datenspeicher 135 steuern – z. B. einem oder mehreren Datenspeichern aus einem Halbleiterlaufwerk (SSD, Solid State Drive), einem Festplattenlaufwerk (HDD, Hard Disk Drive) und/oder dergleichen. Der Datenspeicher 135 kann ein oder mehrere Speicher aus NAND-Flash-Speichermedien, NOR-Flash-Speichermedien, magnetoresistiver Direktzugriffsspeichermedien, Nanodraht-Speichermedien, Phasenwechsel-Speichermedien und/oder dergleichen aufweisen. Bei einer alternativen Ausführungsform kann das BIOS 130 (oder andere derartige Software) in dem Datenspeicher 135 gespeichert sein.
  • Die E/A-Steuervorrichtung 125 kann einen Eingang in und/oder einen Ausgang aus einer Netzwerkschnittstelle steuern, wie beispielsweise einer drahtlosen Schnittstelle 140. Die drahtlose Schnittstelle 140 kann beliebige von verschiedenen Kombinationen aus Schaltungslogik aufweisen, um einen oder mehrere drahtlose Kanäle zu betreiben – z. B. zur Kommunikation zwischen der Computerplattform 100 und einem Netzwerk (nicht gezeigt), welches daran angeschlossen ist. Zum Zweck der Darstellung und nicht einer Begrenzung kann die drahtlose Schnittstelle 140 eine Netzwerkkommunikation gemäß einer IEEE 802.11 WLAN-Norm des Institute of Electrical und Electronics Engineers (IEEE), einer IEEE 802.16 drahtlosen Breitbandnorm und/oder dergleichen aufweisen. Die drahtlose Schnittstelle 140 kann eine oder mehrere Antennen (nicht gezeigt) zum Implementieren einer derartigen drahtlosen Kommunikation aufweisen oder damit gekoppelt sein.
  • Ersatzweise oder zusätzlich kann die E/A-Steuervorrichtung 125 einen Eingang in und/oder einen Ausgang aus einer oder mehreren anderen Eingang/Ausgang-Vorrichtungen 145 steuern – z. B. für eine Interaktion durch einen lokalen Benutzer der Computerplattform 100. Zum Zweck der Darstellung und nicht einer Begrenzung können eine oder mehrere andere Eingang/Ausgang-Vorrichtungen 145 eine oder mehrere Vorrichtungen wie eine Maus, Tastatur, Lautsprecher, Monitor, Touch Pad, Tastbildschirm und/oder dergleichen aufweisen. Ersatzweise oder zusätzlich kann die E/A-Steuervorrichtung 125 einen Eingang in und/oder einen Ausgang aus einer Netzwerksteuervorrichtung 150 (wie beispielsweise einer Netzwerkschnittstellenkarte) zur Kommunikation über eine drahtgestützte Verbindung mit einem Netzwerk, einen seriellen Erweiterungsport 155, welcher eine Kommunikation mit einem universellen seriellen Bus (USB) unterstützt, oder eine andere periphere Vorrichtung und/oder dergleichen steuern.
  • 2A und 2C illustrieren verschiedene jeweilige Architekturen 200a, 200b, 200c zum Bereitstellen einer Speichervalidierung gemäß verschiedenen Ausführungsformen. 2A zeigen eine Architektur 200a, bei welcher ein Prozessor 205 über eine Speichersteuerung 210, bei welcher ein Speichervalidierungsmittel 215 der Architektur 200a von der Speichersteuerung 210 extern ist, an einen Speicher 220 angeschlossen ist. Bei der Architektur 200a ist die Speichersteuerung 210 an den Prozessor 205, den Speicher 220 und das Speichervalidierungsmittel 215 jeweils über getrennte jeweilige Kommunikationswege angeschlossen. Bei einer Ausführungsform können die verschiedenen Funktionalitäten des Prozessors 205, des Speichers 220, der Speichersteuerung 210 und des Speichervalidierungsmittels 215 jeweils den verschiedenen Funktionalitäten des Prozessors 105, des Speichers 120, der Speichersteuerung 110 und des Speichervalidierungsmittels 115 entsprechen.
  • 2B zeigt eine Architektur 200b, bei welcher ein Prozessor 235 über eine Speichersteuerung 240, bei welcher ein Speichervalidierungsmittel 245 der Architektur 200b von der Speichersteuerung 240 extern ist, an einen Speicher 250 angeschlossen ist. Bei der Architektur 200b ist das Speichervalidierungsmittel 245 zwischen der Speichersteuerung 240 und dem Prozessor 235 angeschlossen. Bei einer Ausführungsform können die verschiedenen Funktionalitäten des Prozessors 235, des Speichers 250, der Speichersteuerung 240 und des Speichervalidierungsmittels 245 jeweils den verschiedenen Funktionalitäten des Prozessors 105, des Speichers 120, der Speichersteuerung 110 und des Speichervalidierungsmittels 115 entsprechen.
  • 2C zeigt eine Architektur 200c, bei welcher ein Prozessor 265 über eine Speichersteuerung 270, bei welcher ein Speichervalidierungsmittel 275 der Architektur 200c von der Speichersteuerung 270 extern ist, an einen Speicher 280 angeschlossen ist. Bei der Architektur 200c ist das Speichervalidierungsmittel 275 zwischen der Speichersteuerung 270 und dem Speicher 280 angeschlossen. Bei einer Ausführungsform können die verschiedenen Funktionalitäten des Prozessors 265, des Speichers 280, der Speichersteuerung 270 und des Speichervalidierungsmittels 275 jeweils den verschiedenen Funktionalitäten des Prozessors 105, des Speichers 120, der Speichersteuerung 110 und des Speichervalidierungsmittels 115 entsprechen.
  • Wie bei dem Speichervalidierungsmittel 115 kann jedes der Speichervalidierungsmittel 215, 245, 275 in eine Komponentenvorrichtung – z. B. SoC-Hardware oder ein anderes derartiges IC-Paket – zusammen mit einer der entsprechenden Speichersteuervorrichtungen 210, 245, 270 und/oder einem der entsprechenden Prozessoren 205, 235, 265 einbezogen sein. In einem derartigen Fall kann das Speichervalidierungsmittel von einigen oder allen Prozessorkernen der Komponentenvorrichtung distinkt sein – z. B. distinkt von einem Kern, welcher zum Durchführen eines Hochfahr- oder Host-OS-Prozesses zur Plattforminitialisierung zur Unterstützung eines Leistungszustandsübergangs dient.
  • 3 illustriert bestimmte Elemente eines Speichervalidierungsmittels 300 gemäß einer Ausführungsform zum Überschreiben eventuell ungültiger Informationen in einem Speicher mit bekannt gültigen Informationen. Bei einer Ausführungsform weist das Speichervalidierungsmittel 300 einige oder alle Merkmale der Speichervalidierung 115 auf. Beispielsweise kann das Speichervalidierungsmittel 300 ein oder mehrere Speichervalidierungs-Schreibvorgänge in einem System durchführen, welches einige oder alle Merkmale der Computerplattform 100 aufweist.
  • Bestimmte Merkmale des beispielhaften Speichervalidierungsmittels 300 werden hier in Bezug auf ein Durchführen einer Speichervalidierung des Speichers 120 diskutiert – z. B. durch Schreiben bekannt gültiger Informationen auf einen oder mehrere der mehreren adressierbaren Orte 122a, ..., 122n (und bei bestimmten Ausführungsformen auf jeweilige Fehlerkorrekturorte 124a, ..., 124n). Durchschnittsfachleute erkennen aus der vorliegenden Offenbarung, dass eine derartige Diskussion ausgedehnt werden kann, damit sie auf beliebige von verschiedenen aus einer oder mehreren zusätzlichen oder alternativen Speichervorrichtungen einer Computerplattform gemäß verschiedenen Ausführungsformen zutrifft.
  • Das Speichervalidierungsmittel 300 kann eine Steuerungslogik 320 aufweisen, – z. B. eine Ablaufsteuereinheit oder andere Schaltungslogik – um festzustellen, ob und/oder wie Speichervalidierungs-Schreibvorgänge auf den Speicher 120 durchgeführt werden müssen. Zum Zweck der Darstellung und nicht einer Begrenzung kann die Steuerungslogik 320 eine Meldung detektieren. welche dem Speichervalidierungsmittel 300 bereitgestellt wird, wobei das Signal einen Übergang der Computerplattform aus einem Leistungszustand angibt, während welchem es Informationen in dem Speicher 120 möglich war, zu degradieren. Ein derartiges Signal kann beispielsweise über eine erste Schnittstelle 340 des Speichervalidierungsmittels 300 bereitgestellt werden – z. B. wo das Signal unmittelbar oder indirekt aus der Verarbeitungseinheit 105 gesendet wird.
  • Zusätzlich oder ersatzweise kann das Speichervalidierungsmittel 300 eine Speicherschreiblogik 330 aufweisen, welche an die Steuerungslogik 320 angeschlossen ist. Als Reaktion auf ein Detektieren einer Angabe des Leistungszustandsübergangs kann die Steuerungslogik 320 die Speicherschreiblogik 330 des Speichervalidierungsmittels 300 anweisen, verschiedene Schreibbefehle zu kommunizieren. Bei einer Ausführungsform weist die Speicherschreiblogik 330 eine Schaltungslogik auf, um Schreibbefehle zu erzeugen, – z. B. zum Senden über eine Schnittstelle 350 des Speichervalidierungsmittels – wobei die Schreibbefehle dem Speicher 120 das Speichern von bekannt gültigen Informationen auf jeweiligen der mehreren adressierbaren Orte 122a, ..., 122n verschiedenartig angeben. Das bestimmte Format derartiger Schreibbefehle kann gemäß beliebiger von verschiedenen herkömmlichen Formaten geschehen und ist nicht auf bestimmte Ausführungsformen begrenzt. Die Schnittstelle 340 und die Schnittstelle 350 können die gleiche Schnittstelle sein, obwohl bestimmte Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind. Wie in 1 gezeigt, kann sich das Speichervalidierungsmittel 300 bei einer Ausführungsform innerhalb einer Speichersteuerungseinheit befinden, wodurch es eine Speicherschreiblogik und andere relevante Logik der Speichersteuerung einsetzen kann, um seine Validierungsaktivitäten ohne Notwendigkeit für eine Logikreplikation durchzuführen. Dementsprechend können einige der Merkmale des Speichervalidierungsmittels 300 – z. B. die Speicherschreiblogik 330, die erste Schnittstelle 340 und/oder die zweite Schnittstelle 350 – mit anderer Logik einer derartigen Speichersteuerung gemeinsam genutzt werden.
  • Bei einer Ausführungsform sind mehrere Schreibbefehle, welche durch die Speicherschreiblogik 330 getrennt gesendet werden, eine Reaktion auf das gleiche detektierte Signal, welches der Steuerungslogik 320 den Leistungszustandsübergang angibt. Derartige mehrere Schreibvorgänge können beispielsweise ein frühestes Schreiben auf die mehreren adressierbaren Orte 122a, ..., 122n aufweisen, welches nach dem angegebenen Übergang aus dem Leistungszustand erfolgt.
  • Das Speichervalidierungsmittel 300 kann Logik aufweisen und/oder damit gekoppelt sein, um Informationen zu erzeugen, welche in die Schreibbefehle aufgenommen werden sollen, welche durch die Speicherschreiblogik 330 gesendet werden. Zum Zweck der Darstellung und nicht einer Begrenzung kann das Speichervalidierungsmittel 300 eine Informationsbestimmungslogik 370 aufweisen oder damit gekoppelt sein, welche einen Zufallszahlengenerator oder andere Logik zum Erzeugen von Informationen umfasst, – z. B. einen voreingestellten Wert oder andere Platzhalterinformationen – wobei ein Schreiben von diesen einen oder mehrere der Vielzahl adressierbarer Orte 122a, ..., 122n und/oder einen der einen oder mehrere der Vielzahl Fehlerkorrekturorte 124a, ..., 124n auf einen bekannt gültigen Zustand bringen soll. Bei einer Ausführungsform kann das Speichervalidierungsmittel 300 weiterhin Logik aufweisen oder damit gekoppelt sein, – z. B. in der Informationsbestimmungslogik 370 – um Fehlerkorrekturwerte für Informationen zu erzeugen, welche auf die mehreren adressierbaren Orte 122a, ..., 122n geschrieben werden. Zum Zweck der Darstellung und nicht einer Begrenzung kann das Speichervalidierungsmittel 300 Logik aufweisen oder darauf Zugriff aufweisen, um Paritäts-, Hash- oder andere Operationen auf Informationen durchzuführen, welche mit der Informationsbestimmungslogik 370 erzeugt werden.
  • Schreibbefehle, welche durch die Speicherschreiblogik 330 gesendet werden, können einen Befehl zum Schreiben eines gegebenen Wertes aufweisen, um einen adressierbaren Ort im Speicher auf einen bekannt gültigen Zustand zu bringen, bei welchem bei einer Ausführungsform dieser Befehl (oder ein anderer Befehl, welcher durch die Speicherschreiblogik 330 gesendet wird) weiterhin Fehlerkorrekturinformationen, welche für diesen gegebenen Wert akkurat sind, auf den Speicher 120 schreibt.
  • Ersatzweise oder zusätzlich kann das Speichervalidierungsmittel 300 eine Adressbestimmungslogik 360 aufweisen oder damit gekoppelt sein, welche einen Schaltkomplex oder eine andere Logik umfasst, um der Speicherschreiblogik 330 jeweilige Adressen für verschiedene der mehreren adressierbaren Orte 122a, ..., 122n bereitzustellen. Die Speicherschreiblogik 330 kann Informationen, welche von einer Informationserzeugungslogik 370 bereitgestellt werden, mit jeweiligen der Adressen verschiedenartig kombinieren, welche durch die Adressbestimmungslogik 360 bereitgestellt werden, um mehrere Schreibbefehle zu erzeugen. Die Speicherschreiblogik 330 kann nachfolgend derartige Schreibbefehle an den Speicher 120 kommunizieren – z. B. um jeweilige der mehreren adressierbaren Orte 122a, ..., 122n jeweils auf einen bekannt gültigen Zustand zu bringen. Dementsprechend, obwohl Erzeugen der Schreibbefehlsinformationen – und der Schreibbefehle, welche derartige Schreibbefehlsinformationen aufweisen – als Reaktion auf die Steuerungslogik 320 erfolgen kann, welche den Leistungszustandsübergang detektiert, kann ein derartiges reagierendes Erzeugen selbst unabhängig von jeder Kommunikation derartiger Schreibbefehlsinformationen durch den Prozessor der Computerplattform implementiert werden. In zumindest diesem Sinne kann gesagt werden, dass eine Speichervalidierung von Prozessoroperationen entkoppelt ist.
  • Das Speichervalidierungsmittel 300 kann ein oder mehrere Register 310 aufweisen oder Zugriff darauf aufweisen, um ein Implementieren einiger oder aller oben stehend beschriebener Speichervalidierungsfunktionalität zu unterstützen. Zum Zweck der Darstellung und nicht einer Begrenzung können ein oder mehrere Register 310 ein Register aufweisen, welches festgeschaltet ist, um als ein Kennzeichen für den Leistungszustandsübergang zu arbeiten. Bei einer Ausführungsform kann der Prozessor, eine Leistungsverwaltungseinheit oder ein anderes Mittel der Computerplattform einen Wert auf ein derartiges Kennzeichenregister zu dem Zweck schreiben, den Übergang der Plattform von einem bestimmten niedrigen Leistungszustand anzugeben. Die Steuerungslogik 320 kann beispielsweise automatisch eine Speichervalidierungssequenz als Reaktion auf ein derartiges Schreiben auf das Kennzeichenregister auslösen, wobei die Speichervalidierungssequenz einige oder alle Speicher einer Speichervorrichtung aus einem eventuell ungültigen Zustand in einen bekannt gültigen Zustand bringt. Bei einer Ausführungsform kann ein derartiges Kennzeichenregister automatisch auf einen Standardwert zurückgesetzt werden, nachdem die Steuerungslogik 320 das Schreiben auf das Kennzeichenregister detektiert. Ein Zurücksetzen des Kennzeichenregisters kann das Speichervalidierungsmittel 300 zum Detektieren eines nachfolgenden Übergangs aus einem Leistungszustand vorbereiten, bei welchem es Informationen in dem Speicher möglich ist, zu degradieren.
  • Ersatzweise oder zusätzlich können ein oder mehrere Register 310 Referenzinformationen aufweisen, mit welchen die Adressbestimmungslogik 360 Adressen erzeugt, welche der Speicherschreiblogik 330 bereitgestellt werden sollen. Zum Zweck der Darstellung und nicht einer Begrenzung können das eine oder die mehreren Register 310 Informationen aufweisen, welche eine oder mehrere Speichervorrichtungen, einen oder mehrere Speicherblöcke (z. B. Speicherseiten usw.), eine Größe eines adressierbaren Ortes, eine erste Adresse und eine letzte Adresse eines Speicherblocks, eine erste Adresse und eine Größe eines Speicherblocks und/oder dergleichen identifizieren oder auf andere Weise beschreiben. Bei einer Ausführungsform können einige oder alle derartige Referenzinformationen einem oder mehreren Registern 310 vor dem Leistungszustandsübergang bereitgestellt werden, welcher durch die Steuerungslogik 320 detektiert wird. Bei einer alternativen Ausführungsform können derartige Referenzinformationen einem oder mehreren Registern 310 nach dem Leistungszustandsübergang bereitgestellt werden – z. B. nach dem Einschalten eines Systems oder wenn das System einen Tiefschlafzustand verlässt, bei welchem alle Register 310 zuvor aufgrund des Entfernens des Stroms von ihnen während des vorhergehenden niedrigen Leistungszustands gelöscht wurden. Der Prozessor kann fortfahren, ein oder mehrere Register 310 zu rekonfigurieren, bevor er einen Befehl erteilt, eine Speichervalidierung durchzuführen – z. B. durch Setzen eines „Prüfung beginnen”-Kennzeichens in einem oder mehreren Registern 310. Bei einer derartigen alternativen Ausführungsform erzeugt die Speichervalidierungseinheit 300 dennoch individuelle Schreibbefehle zum Implementieren einer Speichervalidierung ohne die Hilfe des Prozessors, nachdem das „Prüfung beginnen”-Kennzeichen gesetzt wurde.
  • Die Adressbestimmungslogik 360 kann derartige Informationen in einem oder mehreren Registern 310 parsen oder auf andere Weise verarbeiten, um beispielsweise mehrere Adressen in einem Adressbereich, jede Adresse für einen verschiedenen Ort in einer oder mehreren Speichervorrichtungen, abzuleiten. Zusätzlich können ein oder mehrere Register 310 Referenzinformationen aufweisen, mit welchen die Informationsbestimmungslogik 370 Datenwerte erzeugt, welche der Speicherschreiblogik 330 bereitgestellt werden sollen. Zum Zweck der Darstellung und nicht einer Begrenzung können das eine oder die mehreren Register 310 Informationen aufweisen, welche einen oder mehrere Datenwerte, eine oder mehrere Sequenzen von Datenwerten, eine oder mehrere Regeln oder Spezifikationen zum Erzeugen von Datenwerten und/oder dergleichen identifizieren oder auf andere Weise beschreiben. Beispielsweise können die Datenwerte, welche der Speicherschreiblogik 330 bereitgestellt werden, auf der Grundlage von Speicheradressen erzeugt werden – z. B. unter Verwendung eines funktionalen Abbildens oder Hashings einer Speicheradresse durch Aufwärtszählen ausgehend von einem Anfangswert und/oder dergleichen. Zusätzlich können ein oder mehrere Register 310 Kennzeichen und Referenzinformationen aufweisen, mit welchen die Verifizierungslogik 380 des Speichervalidierungsmittels 300 gegebenenfalls Datenwerte, welche durch die Speicherschreiblogik 330 in den Speicher geschrieben werden, zurücklesen und validieren kann. Zum Zweck der Darstellung und nicht einer Begrenzung kann ein Benutzer gegebenenfalls einen Kennzeichenwert in den Registern 310 setzen, um zu ermöglichen, dass die Verifizierungslogik 380 zurückliest und verifiziert, dass alle Datenwerte, welche durch die Speicherschreiblogik 330 in den Speicher 120 geschrieben werden, einschließlich ihrer entsprechenden Fehlerkorrekturwerte korrekt und konsistent sind. Bei bestimmten Ausführungsformen weist das Speichervalidierungsmittel 300 nicht die Funktionalität der Verifizierungslogik 380 auf.
  • Bei einer Ausführungsform kann das Speichervalidierungsmittel 300 gegebenenfalls durch einen Benutzer aktiviert oder deaktiviert werden, – z. B. durch ein Setzen eines Kennzeichens in einem oder mehreren Registern 310 – um zurückzulesen und zu verifizieren, dass die Daten durch einen Speichervalidierungs-Schreibvorgang korrekt zum Speicher geschrieben wurden. Eine derartige Speicherverifizierung kann beispielsweise verwendet werden, um eine Speicherintegrität nach einem Überwechseln aus einem niedrigen Leistungszustand zu prüfen – d. h. um sicherzustellen, dass ein Speicherort sich noch in einem guten Betriebszustand befindet. Beispielsweise kann eine Speichervalidierung ein Durchführen von Datenschreibvorgängen in einem deterministischen (nicht zufälligen) Modus aufweisen, – z. B. durch Zugreifen auf Informationen, welche einen deterministischen Prozess zum Bestimmen von Adress- und/oder Dateninformationen beschreiben – wobei derartige Daten unter Verwendung eines vordefinierten Algorithmus verifiziert werden können. Zum Zweck der Darstellung und nicht einer Begrenzung kann jeder von mehreren Adressorten mit einem jeweiligen Datenwert beschrieben werden, welcher einer funktionalen Abbildung dieser Speicheradresse entspricht – z. B. in einem einfachen Fall, bei welchem ein Wert 0x0 auf den Speicherort 0x0 geschrieben wird, ein Wert 0x4 auf den Speicherort 0x4 geschrieben wird, ..., ein Wert 0xN auf den Speicherort 0xN geschrieben wird usw. Während einer nachfolgenden Speicherverifizierungstufe können die erwarteten Datenwerte durch das Speichervalidierungsmittel 300 unter Verwendung des gleichen funktionalen Abbildungsalgorithmus für jede Adresse der mehreren Adressorte erneut berechnet werden und nachfolgend mit tatsächlichen Werten verglichen werden, welche aus dem Speicher gelesen werden.
  • Bei einer Ausführungsform weist das Speichervalidierungsmittel 300 eine Schaltungslogik auf, – z. B. in der Steuerungslogik 320 – um einen Prozessor, wie beispielsweise dem der Verarbeitungseinheit 105, zu unterbrechen oder ihm auf andere Weise zu signalisieren, dass die Speichervalidierung abgeschlossen ist. Vor einer derartigen Unterbrechung können Speichervalidierungsoperationen durch das Speichervalidierungsmittel 300 parallel mit entkoppelten Operationen des Prozessors stattfinden, welche keinen Zugriff auf den Speicher erfordern. Ein derartiges Unterbrechungssignal kann beispielsweise dem Prozessor ermöglichen, andere Verarbeitungsaufgaben parallel zu der Speichervalidierung durchzuführen, während er darauf wartet, dass die Speichervalidierung abgeschlossen wird – z. B. ohne dass der Prozessor ständig das Speichervalidierungsmittel 300 nach seinem Endstatus abfragen muss. Bei einer Ausführungsform kann ein Benutzer in der Lage sein, das Speichervalidierungsmittel 300 selektiv zu konfigurieren, um eine derartige Unterbrechung bereitzustellen, nachdem alle Speichervalidierungs-Schreibvorgänge (und gegebenenfalls alle Speicherverifizierungen) abgeschlossen sind.
  • 4 ist ein Ablaufdiagramm, welches bestimmte Elemente eines Verfahrens 400 zum Bereitstellen einer Speichervalidierung gemäß einer Ausführungsform illustriert. Das Verfahren 400 kann beispielsweise an einem Mittel durchgeführt werden, welches einige oder alle der Merkmale des Speichervalidierungsmittels 300 aufweist – z. B. an einem Mittel einer Computerplattform, welches von einem Prozessor dieser Computerplattform getrennt ist. Bei einer Ausführungsform stellt das Verfahren 400 eine Speichervalidierung in einem System bereit, wie beispielsweise der Computerplattform 100.
  • Das Verfahren 400 kann bei 410 das Speichervalidierungsmittel aufweisen, welches ein Signal detektiert, welches einen Übergang der Computerplattform aus einem ersten Leistungszustand angibt, bei welchem es Daten in einer Speichervorrichtung der Computerplattform möglich ist, während des ersten Leistungszustands zu degradieren. Das detektierte Signal kann beispielsweise direkt oder indirekt durch eine externe Logik einer Speichersteuerung, durch den Prozessor, durch eine Leistungsverwaltungseinheit und/oder durch ein anderes Mittel der Computerplattform bereitgestellt werden.
  • Als Reaktion auf das detektierte Signal kann das Verfahren 400 bei 420 mehrere Schreibvorgänge auf mehrere adressierbare Orte der Speichervorrichtung durchführen. Die mehreren Schreibvorgänge bei 420 können beispielsweise jede und alle eventuell ungültigen Informationen an mehreren adressierbaren Orten einer oder mehrerer Speichervorrichtungen überschreiben. Beispielsweise können die mehreren Schreibvorgänge bei 420 Speicherzellen überschreiben, welche sich zuvor eventuell in einem unbestimmten logischen Zustand befanden. Bei bestimmten Ausführungsformen können die mehreren Schreibvorgänge bei 420 weiterhin einen Fehlerkorrekturwert schreiben, welcher anderen Informationen entspricht und für diese akkurat ist, welche auch von den mehreren Schreibvorgängen bei 420 in den Speicher geschrieben werden.
  • Jeder der mehreren Schreibvorgänge kann bei 420 beispielsweise als Reaktion auf das bei 410 detektierte Signal erfolgen. Beispielsweise kann das Signal, welches bei 410 detektiert wird, bewirken, dass das Mittel automatisch mehrere Schreibbefehle erzeugt, jeder Schreibbefehl für einen jeweiligen der mehreren Schreibvorgänge. Eine Erzeugung von derartigen mehreren Schreibbefehlen kann umfassen, dass das Mittel Schreibbefehlsinformationen erzeugt oder auf andere Weise bestimmt, welche verschiedenartig in jeweilige der mehreren Schreibbefehle aufgenommen werden sollen.
  • Bei einer Ausführungsform können ein Erzeugen oder auf andere Weise Bestimmen derartiger Schreibbefehlsinformationen in einer oder mehrfacher Hinsicht von zumindest bestimmten Kommunikationsarten aus dem Prozessor unabhängig sein. Zum Zweck der Darstellung und nicht einer Begrenzung kann das Mittel derartige Schreibbefehlsinformationen unabhängig von jeder Kommunikation aus dem Prozessor bestimmen, – z. B. zumindest von jeder Kommunikation, welche dem angegebenen Leistungszustandsübergang nachfolgt – welche bestimmte Informationen angeben, welche geschrieben werden sollen, um eine Speichervalidierung eines adressierbaren Ortes im Speicher sicherzustellen. Ersatzweise oder zusätzlich kann das Mittel derartige Schreibbefehlsinformationen unabhängig von jeder Kommunikation aus dem Prozessor bestimmen, – z. B. zumindest von jeder Kommunikation, welche dem angegebenen Leistungszustandsübergang nachfolgt – welche eine Adresse eines Ortes im Speicher angeben, an welchen Informationen zur Speichervalidierung geschrieben werden sollen. Bei einer Ausführungsform können Schreibbefehlsinformationen auf der Grundlage von Referenzinformationen bestimmt werden, welche in einer Ablage gespeichert sind, – wie beispielsweise das eine oder die mehreren Register 310 – auf welche Steuerungslogik des Mittels unabhängig von dem Prozessor der Computerplattform zugreifen kann. Bei einer Ausführungsform können einige oder alle derartige Referenzinformationen vor dem Leistungszustandsübergang, welcher bei 410 detektiert wird, der Ablage bereitgestellt werden.
  • Bei einer Ausführungsform können die mehreren Schreibvorgänge bei 420 einen frühesten Schreibvorgang an die mehreren adressierbaren Orte aufweisen. Zum Zweck der Darstellung und nicht einer Begrenzung können die mehreren Schreibvorgänge bei 420 durchgeführt werden, um den Speicher für ein nachfolgendes Laden eines Codes aus Firmware-Schnittstellencode, ROM-Auswahlcode, Hochfahrcode, Betriebssystemscode und/oder dergleichen zu initialisieren.
  • Für einen oder mehrere der mehreren Schreibvorgänge bei 420 kann das Speichervalidierungsmittel darauf verzichten, die dadurch geschriebenen Informationen zurückzulesen – z. B. wo derartige Zurückleseoperationen auf andere Weise durchgeführt werden, um den Erfolg derartiger Schreibvorgänge zu validieren. Beispielsweise kann das Speichervalidierungsmittel bei einem der mehreren Schreibvorgänge bei 420 eine Angabe aufweisen, dass der Speicher eine reziproke Kommunikation zum Implementieren eines derartigen Zurücklesens vermeiden soll. Ersatzweise oder zusätzlich kann das Speichervalidierungsmittel bestimmen, auf ein Senden einer Meldung zu verzichten, welche eine derartige reziproke Kommunikation zum Implementieren eines Zurücklesens explizit anfordert.
  • Durchschnittsfachleute erkennen aus der Beschreibung hier, dass bestimmte Ausführungsformen verschiedenartig ein reziprokes Verfahren für das des Verfahrens 400 aufweisen, bei welchem ein derartiges reziprokes Verfahren durch ein Mittel durchgeführt wird, – z. B. die Zentraleinheit – um das Signal, welches durch das Verfahren 400 bei 410 detektiert wird, an das Speicherverwaltungsmittel zu senden. Ein derartiges reziprokes Verfahren kann beispielsweise von Software-Befehlen durchgeführt werden, welche durch den Prozessor ausgeführt werden. Elemente der 5 und 6, welche nachfolgend diskutiert werden, illustrieren Merkmale von zwei derartigen reziproken Verfahren. Es versteht sich, dass beliebige von verschiedenen anderen Verfahren gemäß verschiedenen Ausführungsformen durchgeführt werden können – z. B. durch beliebige von verschiedenen anderen Plattformmitteln.
  • 5 ist ein Ablaufdiagramm, welches ein Verfahren 500 zum Laden von Software-Befehlen in einen validierten Speicher gemäß einer Ausführungsform illustriert. Das Verfahren 500 kann beispielsweise von einem System mit einigen oder allen Merkmalen der Computerplattform 100 durchgeführt werden.
  • Bei einer Ausführungsform wird das Verfahren 500 als Teil eines Hochfahr-, Reaktivierungs- oder anderen Prozesses der Computerplattform durchgeführt, welcher ein Überwechseln eines Speichers aus einem bestimmten Leistungszustand aufweist. Während eines derartigen Leistungszustands kann es Informationen, welche in einem flüchtigen Speicher der Computerplattform gespeichert sind, möglich sein, zu degradieren. Zum Zweck der Darstellung und nicht einer Begrenzung kann ein derartiger Leistungszustand einen inaktiven Auffrischmechanismus aufweisen, welcher sonst die Ladungspegel in den Speicherzellen einer oder mehrerer Speichervorrichtungen unterhalten kann. Ersatzweise oder zusätzlich kann ein derartiger Leistungszustand inaktive Fehlerdetektions- und/oder Fehlerkorrekturmechanismen aufweisen, welche sonst sicherstellen, dass Paritätswerte, Hash-Werte und/oder andere Fehlerkorrekturwerte für entsprechende Informationen, welche im Speicher gespeichert sind, aktuell gehalten werden.
  • Das Verfahren 500 kann bei 510 einen Prozessor der Plattform aufweisen, – z. B. in der Verarbeitungseinheit 105 – welcher einen ersten Befehl nach einem Einschaltereignis abruft. Das Verfahren 500 kann zusätzliche Operationen (nicht gezeigt) vor dem Abrufen 510 aufweisen, wie beispielsweise eine oder mehrere Prozessorinitialisierungsoperationen, um den Prozessor aus dem Rücksetzzustand zu bringen, sicherzustellen, dass die Stromschienen stabil sind, einen oder mehrere Register des Prozessors zu konfigurieren und/oder dergleichen.
  • Das Abrufen bei 510 kann beispielsweise für die erste Codezeile sein, welche der Prozessor als Reaktion auf ein RÜCKSETZereignis abruft, wie beispielsweise einen Benutzer, welcher eine „Zurücksetzen”-Taste oder eine andere derartige Taste drückt, um einen Leistungsübergang auszulösen. Zum Zweck der Darstellung und nicht einer Begrenzung kann der erste Befehl bei 510 aus einer vordefinierten Adresse (z. B. 0xFFFF0) eines EEPROM, Flash-Laufwerks oder einer anderen nicht flüchtigen Speichervorrichtung der Computerplattform abgerufen werden. Beispielsweise kann der Prozessor fest verdrahtet oder auf andere Weise konfiguriert sein, um den ersten Befehl standardmäßig aus einem Speicherort mit der vordefinierten Adresse abzurufen. Bei einer Ausführungsform definiert der erste Prozessorbefehl bei 510 einen Sprung zu der Software, welche durch den Prozessor ausgeführt werden soll, oder bestimmt ihn auf andere Weise. Bestimmte Ausführungsformen sind nicht auf den bestimmten Software-Typ – z. B. Firmware-Schnittstellencode, OS-Code, entfernter Hochfahrcode oder andere Befehle – beschränkt, welcher durch den Prozessor ausgeführt werden soll.
  • Auf der Grundlage des ersten Prozessorbefehls kann das Verfahren 500 bei 520 einen Sprung auf eine Anfangsadresse der Software implementieren. Bestimmte Ausführungsformen sind jedoch in dieser Hinsicht nicht beschränkt. Beispielsweise kann die Anfangsadresse einer derartigen Software bei einer anderen Ausführungsform in dem Befehl gespeichert sein, welcher bei 510 abgerufen wird. Der Prozessor kann zumindest anfänglich Befehle für derartige Software aus einem nicht flüchtigen Speicher abrufen – z. B. bevor einige adressierbare Orte in einer Speichervorrichtung der Computerplattform in einen bekannt gültigen Zustand gebracht werden.
  • Dem Springen auf die Software-Anfangsadresse bei 520 nachfolgend, können eine oder mehrere Operationen 515 des Verfahrens 500 durchgeführt werden – z. B. als Reaktion auf das Ausführen von Befehlen derartiger Software durch den Prozessor. Die nachfolgenden Operationen 515 können ein Durchführen von Initialisierungsoperationen 530 für eine oder mehrere Chipsatzkomponenten – z. B. andere als eine Speichervorrichtung – der Computerplattform aufweisen. Zusätzlich oder ersatzweise können nachfolgende Operationen 515 bei 540 ein Durchführen einer oder mehrerer Software-Funktionen aufweisen, welche nicht den Speicher betreffen. Merkmale der Operationen 515 sind bloß beispielhaft und begrenzen bestimmte Ausführungsformen nicht.
  • Das Verfahren 500 kann weiterhin bei 550 ein Durchführen einer Speicherinitialisierung bei einer Vorbereitung des Überwechselns eines oder mehrerer adressierbarer Speicherorte aus einem eventuell ungültigen Zustand in einen bekannt gültigen Zustand aufweisen. Die Speicherinitialisierung 550 kann beispielsweise ein Bestimmen aufweisen, dass die Kommunikation zwischen einem Speichervalidierungsmittel und einer Speichervorrichtung aktiviert ist, dass eine Stromzufuhr an das Speichervalidierungsmittel und/oder die Speichervorrichtung stabil ist, und sicherstellen, dass alle andere Anforderungen zum Beginnen von Lese- und/oder Schreibvorgängen auf die Speichervorrichtung erfüllt sind.
  • Nach der Initialisierung bei 550 kann das Verfahren 500 bei 560 dem Speichervalidierungsmittel eine Angabe eines Übergangs auf einen Leistungszustand signalisieren, welcher die Integrität der Informationen erhält, welche in einer Speichervorrichtung gespeichert sind. Als Reaktion beginnt das Speichervalidierungsmittel Speichervalidierungsoperationen – z. B. gemäß einiger oder aller Merkmale des Verfahrens 400. Herkömmliche Systemeinschaltsequenzen verlassen sich darauf, dass ein Plattformprozessor Schreibbefehle erzeugt und kommuniziert, um eine Speichervalidierung durchzuführen. Jedoch nimmt ein derartiger Ansatz Prozessorzyklen in Anspruch, um eine derartige Speichervalidierung zu implementieren. Bevor Informationen aus dem Prozessor die Speichervorrichtung erreichen können, müssen sie ferner vielleicht durch den eigenen Cache-Speicher des Prozessors und/oder durch einen oder mehrere zwischengeschaltete Kommunikationsbusse gehen. Ferner muss eine Speichersteuerungseinheit oft zuerst die Schreibbefehle des Prozessors abfangen, bevor sie auf die Speichervorrichtung selbst schreibt. Im Gegensatz dazu kann ein Speichervalidierungsmodul einen vergleichsweise kürzeren Kommunikationsweg zu der Speichervorrichtung aufweisen und kann Prozessorzyklen für einen oder mehrere andere Initialisierungsprozesse freisetzen.
  • Nachdem eine Speichervalidierung begonnen wurde, kann das Verfahren 500 bei 570 eine Prüfung auf einen Abschluss derartiger Speichervalidierungsoperationen durchführen. Die Prüfung bei 570 kann als Reaktion auf ein Prüfungsergebnis, welches angibt, dass die Speichervalidierung bis jetzt nicht abgeschlossen ist, wiederholt werden. Bei einer alternativen Ausführungsform kann ein Signal oder eine Unterbrechung durch das Speichervalidierungsmittel bereitgestellt werden, ohne dass ein Software-Prozess einen Abschluss der Speichervalidierungsoperationen abfragen muss. Nach dem Detektieren einer Angabe, dass die Speichervalidierung abgeschlossen wurde, durch die Prüfung 570, kann das Verfahren 500 bei 580 einen oder mehrere Software-Befehle in den Speicher kopieren – z. B. an Orte, welche aus einem eventuell ungültigen Zustand auf einen bekannt gültigen Zustand übergewechselt sind.
  • Nachdem sie bei 580 in den Speicher kopiert wurden, sind die Software-Befehle – z. B. Firmware-Schnittstellencode, OS-Code, Hochfahrcode und/oder dergleichen – für einen viel schnelleren Zugriff durch den Prozessor verfügbar als im Vergleich zu dem Prozessor, welcher derartige Befehle aus einem nicht flüchtigen Speicher abruft.
  • 6 ist ein Ablaufdiagramm, welches ein Verfahren 600 zum Laden von Software-Befehlen in einen validierten Speicher gemäß einer Ausführungsform illustriert. Das Verfahren 600 kann beispielsweise von einem System mit einigen oder allen Merkmalen der Computerplattform 100 durchgeführt werden.
  • Bei einer Ausführungsform wird das Verfahren 600 als Teil eines Hochfahr-, Reaktivierungs- oder anderen Prozesses durchgeführt, welcher ein Überwechseln eines Speichers aus einem bestimmten Leistungszustand aufweist. Während eines derartigen Leistungszustands kann es Informationen, welche in einem flüchtigen Speicher der Computerplattform gespeichert sind, möglich sein, zu degradieren.
  • Das Verfahren 600 kann bei 605 einen Prozessor der Plattform aufweisen, – z. B. in der Verarbeitungseinheit 105 – welcher einen ersten Befehl nach einem Einschaltereignis abruft. Das Verfahren 600 kann zusätzliche Operationen (nicht gezeigt) vor dem Abrufen 605 aufweisen, wie beispielsweise eine oder mehrere Prozessorinitialisierungsoperationen, um den Prozessor aus dem Rücksetzzustand zu bringen, sicherzustellen, dass die Stromschienen stabil sind, einen oder mehrere Register des Prozessors zu konfigurieren und/oder dergleichen.
  • Das Abrufen bei 605 kann beispielsweise für die erste Codezeile sein, welcher der Prozessor als Reaktion auf ein RÜCKSETZereignis abruft, wie beispielsweise ein Benutzer, welcher eine „Zurücksetzen”-Taste oder eine andere derartige Taste drückt, um einen Leistungsübergang auszulösen. Auf der Grundlage des ersten Prozessorbefehls kann das Verfahren 600 bei 610 einen Sprung auf eine Anfangsadresse der Software implementieren. Bestimmte Ausführungsformen sind jedoch in dieser Hinsicht nicht beschränkt. Beispielsweise kann die Anfangsadresse einer derartigen Software bei einer anderen Ausführungsform in dem Befehl gespeichert sein, welcher bei 605 abgerufen wird. Der Prozessor kann zumindest anfänglich einige Befehle für derartige Software aus einem nicht flüchtigen Speicher abrufen – z. B. bevor einige adressierbare Orte in einer Speichervorrichtung der Computerplattform in einen bekannt gültigen Zustand gebracht werden.
  • Dem Springen auf die Software-Anfangsadresse 610 nachfolgend, kann das Verfahren 600 bei 615 eine Speicherinitialisierung als Vorbereitung für ein Überwechseln eines oder mehrerer adressierbarer Speicherorte aus einem eventuell ungültigen Zustand in einem bekannt gültigen Zustand durchführen. Bei einer Ausführungsform wird eine Speicherinitialisierung 615 vor anderen Initialisierungsoperationen begonnen – z. B. vor einer Initialisierung von Chipsatz-Komponenten (beispielsweise von anderen Komponenten als die fragliche Speichervorrichtung). Die Speicherinitialisierung 615 kann beispielsweise ein Bestimmen aufweisen, dass die Kommunikation zwischen einem Speichervalidierungsmittel und einer Speichervorrichtung aktiviert ist, dass eine Stromzufuhr an das Speichervalidierungsmittel und/oder die Speichervorrichtung stabil ist, und sicherstellen, dass alle andere Bedingungen zum Beginnen von Schreibvorgängen auf die Speichervorrichtung erfüllt sind. Nach der Initialisierung bei 615 kann das Verfahren 600 bei 620 dem Speichervalidierungsmittel eine Angabe eines Übergangs auf einen Leistungszustand signalisieren, welcher die Integrität der Informationen erhält, welche in einer Speichervorrichtung gespeichert sind. Als Reaktion kann das Speichervalidierungsmittel (MVA) bei 650 Speichervalidierungsoperationen durchführen – z. B. gemäß einiger oder aller Merkmale des Verfahrens 400.
  • Das Leistungsvermögen der Speichervalidierungsoperationen bei 650 kann beispielsweise von Operationen des Prozessors entkoppelt sein, welche auf die Signalisierung des Speichervalidierungsmittels bei 620 nachfolgen. Zum Zweck der Darstellung und nicht einer Begrenzung kann das Verfahren 600 eine oder mehrere Operationen 625 aufweisen, welche von dem Prozessor durchgeführt werden – z. B. als Reaktion auf den Prozessor, welcher Anweisungen ausführt, welche er aus einem nicht flüchtigen Speicher abfragt. Die Operationen 625 können beispielsweise ein Durchführen von Initialisierungsoperationen 630 für eine oder mehrere Chipsatzkomponenten der Computerplattform aufweisen – z. B. andere Komponenten als die Speichervorrichtung, welche bei 650 validiert wird. Die Initialisierungsoperationen 630 können beispielsweise einen Host-Prozessor umfassen, welcher eine Konfiguration einer USB-Steuervorrichtung, einer PCI-(Peripheral Component Interconnect)- und/oder PCIe-Steuervorrichtung, einer SATA-(Serial Advanced Technology Attachment)-Steuervorrichtung, einer Netzwerksteuervorrichtung und/oder dergleichen einstellt oder auf andere Weise bestimmt. Zusätzlich oder ersatzweise können nachfolgende Operationen 625 bei 635 ein Durchführen einer oder mehrerer Software-Funktionen aufweisen, welche nicht den Speicher betreffen. Die Operationen 625 sind bloß beispielhaft und begrenzen bestimmte Ausführungsformen nicht.
  • Nachdem eine Speichervalidierung durch das Speichervalidierungsmittel begonnen ist, kann das Verfahren 600 bei 640 ein Ende für derartige Speichervalidierungsoperationen bestimmen. Das Bestimmen bei 640 kann beispielsweise ein wiederholtes Prüfen auf eine Angabe aufweisen, dass die Speichervalidierung abgeschlossen ist. Bei einer Ausführungsform basiert das Bestimmen bei 640 darauf, dass das Speichervalidierungsmittel bei 660 den Abschluss der Speichervalidierung an andere Logik der Speichersteuerung und/oder an einen Prozess signalisiert, welcher auf dem Prozessor ausgeführt wird.
  • Nach dem Bestimmen bei 640 kann das Verfahren 600 bei 645 eine oder mehrere Software-Anweisungen an Speicherorte kopieren – z. B. an Orte, welche durch die Speichervalidierung aus einem eventuell ungültigen Zustand in einen bekannt gültigen Zustand übergewechselt sind. Nachdem sie bei 645 in den Speicher kopiert wurden, sind die Software-Befehle – z. B. Firmware-Schnittstellencode, OS-Code, Hochfahrcode und/oder dergleichen – für einen viel schnelleren Zugriff durch den Prozessor verfügbar als im Vergleich zu dem Prozessor, welcher derartige Befehle aus einem nicht flüchtigen Speicher abruft.
  • Hier sind Verfahren und Architekturen für einen Zugriff auf Computerspeicher beschrieben. In der oben stehenden Beschreibung werden zum Zwecke der Erklärung zahlreiche spezifische Einzelheiten dargestellt, um ein gründliches Verständnis bestimmter Ausführungsformen bereitzustellen. Durchschnittsfachleuten ist jedoch offenkundig, dass bestimmte Ausführungsformen ohne diese spezifischen Einzelheiten in die Praxis umgesetzt werden können. Bei anderen Instanzen werden Strukturen und Vorrichtungen als Blockdiagramm gezeigt, um ein Verschleiern der Beschreibung zu vermeiden.
  • Der Verweis in der Beschreibung auf „eine Ausführungsform” bedeutet, dass mindestens eine Ausführungsform der Erfindung ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft aufweist, welche im Zusammenhang mit der Ausführungsform beschrieben wird. Das Auftreten der Phrase „bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung verweist nicht notwendigerweise immer auf die gleiche Ausführungsform.
  • Einige Abschnitte der ausführlichen Beschreibung hier werden in Bezug auf Algorithmen und symbolische Repräsentationen von Operationen auf Datenbits innerhalb eines Computerspeichers dargestellt. Diese algorithmischen Beschreibungen und Repräsentationen sind das Mittel, welches von Durchschnittsfachleuten der Computertechnik verwendet wird, um die Substanz ihrer Arbeiten anderen Durchschnittsfachleuten am wirksamsten zu vermitteln. Ein Algorithmus ist hier und im Allgemeinen als eine selbst konsistente Sequenz von Schritten gedacht, welche zu einem erwünschten Ergebnis führen. Die Schritte erfordern physikalische Manipulationen von physikalischen Quantitäten. Gewöhnlich, obwohl nicht notwendigerweise, weisen diese Quantitäten die Form elektrischer oder magnetischer Signale auf, welche gespeichert, übermittelt, kombiniert, verglichen und auf andere Weise manipuliert werden können. Es hat sich zuweilen, hauptsächlich aus Gründen der allgemeinen Verwendung, als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen oder dergleichen zu bezeichnen.
  • Es sollte jedoch bedacht werden, dass alle diese und ähnliche Begriffe den geeigneten physikalischen Quantitäten zugeordnet werden müssen und bloß zweckmäßige Etiketten sind, welche für diese Quantitäten verwendet werden. Außer es wird ausdrücklich anders lautend vermerkt, wie es aus der Beschreibung hier offenkundig ist, ist es anerkannt, dass überall in der Beschreibung der Einsatz von Begriffen, wie beispielsweise „Verarbeiten” oder „Errechnen” oder „Berechnen” oder „Bestimmen” oder „Anzeigen” oder dergleichen, die Aktion und Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung bezeichnet, welche Daten, welche innerhalb der Register und Speicher des Computersystems durch physikalische (elektronische) Quantitäten repräsentiert sind, zu anderen Daten manipuliert und transformiert, welche genauso als physikalische Quantitäten innerhalb der Speicher oder Register des Computersystems oder innerhalb anderer derartiger Informationsspeicher-, -Übertragungs- oder -Anzeigevorrichtungen repräsentiert werden.
  • Bestimmte Ausführungsformen betreffen auch eine Vorrichtung zum Durchführen der hier beschriebenen Operationen. Diese Vorrichtung kann für die erforderlichen Zwecke gesondert aufgebaut werden, oder sie kann einen Universalcomputer umfassen, welcher von einem Computerprogramm, welches in dem Computer gespeichert ist, selektiv aktiviert oder neu konfiguriert wird. Ein derartiges Computerprogramm kann auf einem computerlesbaren Speichermedium gespeichert sein, wie beispielsweise insbesondere auf allen Plattentypen einschließlich Disketten, optischen Festplatten, CD-ROMs und magneto-optischen Festplatten, Nur-Lesespeichern (ROMs), Direktzugriffsspeichern (RAMs), wie beispielsweise dynamischen Direktzugriffsspeichern (DRAM), EPROMs, EEPROMs, magnetischen oder optischen Karten oder auf allen Medientypen, welche zum Speichern elektronischer Anweisungen geeignet sind und an einen Computersystembus angeschlossen sind.
  • Die hier dargestellten Algorithmen und Anzeigen an sich betreffen keinen bestimmten Computer oder andere Vorrichtung. Verschiedene Universalsysteme können mit Programmen gemäß den hier beschriebenen Lehren verwendet werden, oder es kann sich als zweckmäßig erweisen, eine spezialisiertere Vorrichtung zu konstruieren, um die erforderlichen Verfahrensschritte durchzuführen. Die erforderliche Struktur für verschiedene dieser Systeme ist aus der Beschreibung hier ersichtlich. Zusätzlich sind bestimmte Ausführungsformen nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es ist anerkannt, dass verschiedene Programmiersprachen verwendet werden können, um die Lehren derartiger Ausführungsformen, wie hier beschriebenen, zu implementieren.
  • Neben dem, was hier beschrieben ist, können verschiedene Modifikationen an den offenbarten Ausführungsformen und ihren Implementierungen ausgeführt werden, ohne ihren Schutzumfang zu verlassen. Deshalb müssen die Darstellungen und Beispiele hier in einem beispielhaften und nicht in einem einschränkenden Sinn verstanden werden. Der Schutzumfang der Erfindung muss allein unter Bezugnahme auf die nachfolgenden Ansprüche bemessen werden.

Claims (20)

  1. Vorrichtung, Folgendes umfassend: ein Speichervalidierungsmittel zum Betrieb in einer Computerplattform, wobei das Speichervalidierungsmittel an einen Prozessor der Computerplattform angeschlossen ist, das Speichervalidierungsmittel Folgendes aufweisend: Schreiblogik, um auf eine Speichervorrichtung der Computerplattform zuzugreifen; und Steuerungslogik, um ein Signal zu detektieren, welches an das Speichervalidierungsmittel gesendet wurde, wobei das Signal einen Übergang der Computerplattform aus einem ersten Leistungszustand angibt, bei welchem es Daten in der Speichervorrichtung der Computerplattform möglich ist, zu degradieren, während sich die Computerplattform in dem ersten Leistungszustand befindet, die Steuerungslogik weiterhin bewirkt, dass die Schreiblogik mehrere Schreibvorgänge jeweils auf einen jeweiligen von mehreren adressierbaren Orten der Speichervorrichtung und jeden der mehreren Schreibvorgänge als Reaktion auf das detektierte Signal durchführt, wobei die mehreren Schreibvorgänge einen frühesten Schreibvorgang auf die mehreren adressierbaren Orte dem Übergang aus dem ersten Leistungszustand nachfolgend aufweisen.
  2. Vorrichtung nach Anspruch 1, wobei die Vorrichtung eine Speichersteuerung aufweist und wobei das Speichervalidierungsmittel sich in der Speichersteuerung befindet.
  3. Vorrichtung nach Anspruch 1, wobei die Schreiblogik zum Durchführen der mehreren Schreibvorgänge Folgendes umfasst: die Schreiblogik zum Erzeugen mehrerer Schreibbefehle, wobei das Speichervalidierungsmittel Befehlsinformationen bestimmt, um sie in jeweilige der Schreibbefehle aufzunehmen, wobei eine Bestimmung der Befehlsinformationen von einem Betrieb des Prozessors entkoppelt ist.
  4. Vorrichtung nach Anspruch 3, wobei das Speichervalidierungsmittel zum Bestimmen der Befehlsinformationen umfasst, dass das Speichervalidierungsmittel einen Wert bestimmt, welcher auf einen Ort der Speichervorrichtung geschrieben werden soll, wobei das Speichervalidierungsmittel zum Bestimmen des Wertes unabhängig von dem Prozessor ist, welcher dem Speichervalidierungsmittel nach dem Leistungszustandsübergang den Wert spezifiziert.
  5. Vorrichtung nach Anspruch 4, wobei das Speichervalidierungsmittel zum Bestimmen des Wertes eines des Folgenden aufweist: einen Zufallszahlengenerator zum Bereitstellen des Wertes; und das Speichervalidierungsmittel zum Zugreifen auf Informationen, welche einen deterministischen Prozess zum Erzeugen des Wertes beschreiben.
  6. Vorrichtung nach Anspruch 4, wobei das Speichervalidierungsmittel zum Bestimmen der Befehlsinformationen weiterhin umfasst, dass das Speichervalidierungsmittel einen Fehlerkorrekturwert entsprechend des Wertes bestimmt.
  7. Vorrichtung nach Anspruch 3, wobei das Speichervalidierungsmittel zum Bestimmen der Befehlsinformationen umfasst, dass das Speichervalidierungsmittel eine Adresse eines Ortes des Speichers bestimmt, wobei eine Bestimmung der Adresse unabhängig von dem Prozessor ist, welcher dem Speichervalidierungsmittel nach dem Leistungszustandsübergang die Adresse spezifiziert.
  8. Verfahren, Folgendes umfassend: Detektieren an einem Speichervalidierungsmittel einer Computerplattform eines Signals, welches an das Speichervalidierungsmittel gesendet wurde, wobei das Speichervalidierungsmittel an einen Prozessor der Computerplattform angeschlossen ist, wobei das Signal einen Übergang der Computerplattform aus einem ersten Leistungszustand angibt, bei welchem es Daten in einer Speichervorrichtung der Computerplattform möglich ist, zu degradieren, während sich die Computerplattform in dem ersten Leistungszustand befindet; und Durchführen mit dem Speichervalidierungsmittel mehrerer Schreibvorgänge jeweils auf einen jeweiligen von mehreren adressierbaren Orten der Speichervorrichtung und jeden der mehreren Schreibvorgänge als Reaktion auf das detektierte Signal, wobei die mehreren Schreibvorgänge einen frühesten Schreibvorgang auf die mehreren adressierbaren Orte dem Übergang aus dem ersten Leistungszustand nachfolgend aufweisen.
  9. Verfahren nach Anspruch 8, wobei Durchführen der mehreren Schreibvorgänge Folgendes umfasst: Erzeugen mehrerer Schreibbefehle, umfassend ein Bestimmen von Befehlsinformationen, um sie in jeweilige der Schreibbefehle aufzunehmen, wobei ein Bestimmen der Befehlsinformationen von einem Betrieb des Prozessors entkoppelt ist.
  10. Verfahren nach Anspruch 9, wobei ein Bestimmen der Befehlsinformationen ein Bestimmen eines Wertes umfasst, welcher auf einen Ort der Speichervorrichtung geschrieben werden soll, wobei ein Bestimmen des Wertes unabhängig von dem Prozessor ist, welcher dem Speichervalidierungsmittel nach dem Leistungszustandsübergang den Wert spezifiziert.
  11. Verfahren nach Anspruch 10, Bestimmen des Wertes einen der folgenden Schritte umfassend: Bereitstellen des Wertes durch einen Zufallszahlengenerator, und Zugreifen auf Informationen, welche einen deterministischen Prozess zum Erzeugen des Wertes beschreiben.
  12. Verfahren nach Anspruch 10, wobei ein Bestimmen der Befehlsinformationen weiterhin ein Bestimmen eines Fehlerkorrekturwertes entsprechend des Wertes umfasst.
  13. Verfahren nach Anspruch 9, wobei ein Bestimmen der Befehlsinformationen ein Bestimmen einer Adresse eines Ortes des Speichers aufweist, wobei ein Bestimmen der Adresse unabhängig von dem Prozessor ist, welcher dem Speichervalidierungsmittel nach dem Leistungszustandsübergang die Adresse spezifiziert.
  14. Verfahren nach Anspruch 8, wobei die mehreren Schreibvorgänge vor einem Laden des Codes der Firmware-Schnittstelle oder des Hochfahrcodes in die Speichervorrichtung nach dem Leistungszustandsübergang stattfinden.
  15. Computersystem, Folgendes umfassend: einen Prozessor zum Durchführen eines oder mehrerer Initialisierungsprozesse zum Unterstützen eines Übergangs aus einem ersten Leistungszustand durch das Computersystem; ein Speichervalidierungsmittel, welches an den Prozessor angeschlossen ist, das Speichervalidierungsmittel Folgendes aufweisend: Schreiblogik, um auf eine Speichervorrichtung der Computerplattform zuzugreifen; Steuerungslogik, um ein Signal zu detektieren, welches aus dem Prozessor an das Speichervalidierungsmittel gesendet wurde, wobei das Signal den Übergang aus dem ersten Leistungszustand durch die Computerplattform angibt, bei welchem es Daten in der Speichervorrichtung der Computerplattform möglich ist, zu degradieren, während sich die Computerplattform in dem ersten Leistungszustand befindet, die Steuerungslogik weiterhin bewirkt, dass die Schreiblogik mehrere Schreibvorgänge jeweils auf einen jeweiligen von mehreren adressierbaren Orten der Speichervorrichtung und jeden der mehreren Schreibvorgänge als Reaktion auf das detektierte Signal durchführt, wobei die mehreren Schreibvorgänge einen frühesten Schreibvorgang auf die mehreren adressierbaren Orte dem Übergang aus dem ersten Leistungszustand nachfolgend aufweisen; und eine drahtlose Netzwerkschnittstelle, welche eine oder mehrere Antennen umfasst, um eine Kommunikation zwischen dem Computersystem und einem Netzwerk auszutauschen.
  16. Computersystem nach Anspruch 15, weiterhin umfassend eine Speichersteuerung, und wobei das Speichervalidierungsmittel sich in der Speichersteuerung befindet.
  17. Computersystem nach Anspruch 15, wobei die Schreiblogik zum Durchführen der mehreren Schreibvorgänge Folgendes umfasst: die Schreiblogik zum Erzeugen mehrerer Schreibbefehle, wobei das Speichervalidierungsmittel Befehlsinformationen bestimmt, um sie in jeweilige der Schreibbefehle aufzunehmen, wobei eine Bestimmung der Befehlsinformationen von einem Betrieb des Prozessors entkoppelt ist.
  18. Computersystem nach Anspruch 17, wobei das Speichervalidierungsmittel zum Bestimmen der Befehlsinformationen umfasst, dass das Speichervalidierungsmittel einen Wert bestimmt, welcher auf einen Ort der Speichervorrichtung geschrieben werden soll, wobei das Speichervalidierungsmittel zum Bestimmen des Wertes unabhängig von dem Prozessor ist, welcher dem Speichervalidierungsmittel nach dem Leistungszustandsübergang den Wert spezifiziert.
  19. Computersystem nach Anspruch 18, wobei das Speichervalidierungsmittel zum Bestimmen des Wertes eines des Folgenden aufweist: einen Zufallszahlengenerator zum Bereitstellen des Wertes; und das Speichervalidierungsmittel zum Zugreifen auf Informationen, welche einen deterministischen Prozess zum Erzeugen des Wertes beschreiben.
  20. Computersystem nach Anspruch 17, wobei das Speichervalidierungsmittel zum Bestimmen der Befehlsinformationen umfasst, dass das Speichervalidierungsmittel eine Adresse eines Ortes des Speichers bestimmt, wobei eine Bestimmung der Adresse unabhängig von dem Prozessor ist, welcher dem Speichervalidierungsmittel nach dem Leistungszustandsübergang die Adresse spezifiziert.
DE112011105864.0T 2011-11-17 2011-11-17 Verfahren, Vorrichtung und System zur Speichervalidierung Pending DE112011105864T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/061248 WO2013074107A1 (en) 2011-11-17 2011-11-17 Method, apparatus and system for memory validation

Publications (1)

Publication Number Publication Date
DE112011105864T5 true DE112011105864T5 (de) 2014-08-07

Family

ID=48430010

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105864.0T Pending DE112011105864T5 (de) 2011-11-17 2011-11-17 Verfahren, Vorrichtung und System zur Speichervalidierung

Country Status (4)

Country Link
US (1) US9037812B2 (de)
CN (1) CN103930878B (de)
DE (1) DE112011105864T5 (de)
WO (1) WO2013074107A1 (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2738771A1 (de) * 2012-12-03 2014-06-04 Kone Corporation Vorrichtung und Verfahren zum Prüfen eines Speichers durch eine programmierbare Schaltung in einem sicherheitskritischen System
US9021426B2 (en) * 2012-12-04 2015-04-28 International Business Machines Corporation Streamlining hardware initialization code
US9251022B2 (en) * 2013-03-01 2016-02-02 International Business Machines Corporation System level architecture verification for transaction execution in a multi-processing environment
US9208105B2 (en) 2013-05-30 2015-12-08 Dell Products, Lp System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support
EP2884369B1 (de) * 2013-12-16 2018-02-07 Stichting IMEC Nederland Speichersteuerungssystem für einen nichtflüchtigen Speicher und Steuerungsverfahren
US9595352B2 (en) 2014-03-17 2017-03-14 Seagate Technology Llc Manufacturer self-test for solid-state drives
KR102277666B1 (ko) * 2014-06-30 2021-07-15 삼성전자 주식회사 영상처리장치 및 그 제어방법
US20160091957A1 (en) * 2014-09-26 2016-03-31 Suketu R. Partiwala Power management for memory accesses in a system-on-chip
US10163479B2 (en) 2015-08-14 2018-12-25 Spin Transfer Technologies, Inc. Method and apparatus for bipolar memory write-verify
CN105259150B (zh) * 2015-11-02 2019-01-18 深圳市锦瑞生物科技有限公司 一种荧光分析仪定标系统
US10192601B2 (en) * 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
US10192602B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Smart cache design to prevent overflow for a memory device with a dynamic redundancy register
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10366774B2 (en) 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
CN108121842B (zh) * 2016-11-30 2021-04-27 深圳市中兴微电子技术有限公司 多处理器系统芯片的低功耗工作方式的验证方法和装置
CN107329872A (zh) * 2017-07-05 2017-11-07 西安微电子技术研究所 一种协处理器的应用验证板
US10656994B2 (en) 2017-10-24 2020-05-19 Spin Memory, Inc. Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques
US10481976B2 (en) 2017-10-24 2019-11-19 Spin Memory, Inc. Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers
US10529439B2 (en) 2017-10-24 2020-01-07 Spin Memory, Inc. On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects
US10811594B2 (en) 2017-12-28 2020-10-20 Spin Memory, Inc. Process for hard mask development for MRAM pillar formation using photolithography
US10395712B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Memory array with horizontal source line and sacrificial bitline per virtual source
US10424726B2 (en) 2017-12-28 2019-09-24 Spin Memory, Inc. Process for improving photoresist pillar adhesion during MRAM fabrication
US10891997B2 (en) 2017-12-28 2021-01-12 Spin Memory, Inc. Memory array with horizontal source line and a virtual source line
US10360962B1 (en) 2017-12-28 2019-07-23 Spin Memory, Inc. Memory array with individually trimmable sense amplifiers
US10395711B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Perpendicular source and bit lines for an MRAM array
US10546624B2 (en) 2017-12-29 2020-01-28 Spin Memory, Inc. Multi-port random access memory
US10840436B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture
US10367139B2 (en) 2017-12-29 2019-07-30 Spin Memory, Inc. Methods of manufacturing magnetic tunnel junction devices
US10784439B2 (en) 2017-12-29 2020-09-22 Spin Memory, Inc. Precessional spin current magnetic tunnel junction devices and methods of manufacture
US10840439B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Magnetic tunnel junction (MTJ) fabrication methods and systems
US10424723B2 (en) 2017-12-29 2019-09-24 Spin Memory, Inc. Magnetic tunnel junction devices including an optimization layer
US10886330B2 (en) 2017-12-29 2021-01-05 Spin Memory, Inc. Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch
US10438995B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Devices including magnetic tunnel junctions integrated with selectors
US10438996B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Methods of fabricating magnetic tunnel junctions integrated with selectors
US11042644B2 (en) * 2018-02-01 2021-06-22 Quixant Plc Method and system for security verification in a booting process with a multi-core processor
US10446744B2 (en) 2018-03-08 2019-10-15 Spin Memory, Inc. Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same
US10784437B2 (en) 2018-03-23 2020-09-22 Spin Memory, Inc. Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US10529915B2 (en) 2018-03-23 2020-01-07 Spin Memory, Inc. Bit line structures for three-dimensional arrays with magnetic tunnel junction devices including an annular free magnetic layer and a planar reference magnetic layer
US11107978B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US11107974B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer
US10411185B1 (en) 2018-05-30 2019-09-10 Spin Memory, Inc. Process for creating a high density magnetic tunnel junction array test platform
US10559338B2 (en) 2018-07-06 2020-02-11 Spin Memory, Inc. Multi-bit cell read-out techniques
US10593396B2 (en) 2018-07-06 2020-03-17 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10600478B2 (en) 2018-07-06 2020-03-24 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10692569B2 (en) 2018-07-06 2020-06-23 Spin Memory, Inc. Read-out techniques for multi-bit cells
US10699761B2 (en) 2018-09-18 2020-06-30 Spin Memory, Inc. Word line decoder memory architecture
US11621293B2 (en) 2018-10-01 2023-04-04 Integrated Silicon Solution, (Cayman) Inc. Multi terminal device stack systems and methods
CN109460330A (zh) * 2018-10-23 2019-03-12 江苏华存电子科技有限公司 一种存储设备可程式计算机循环通断电自动测试系统
US11107979B2 (en) 2018-12-28 2021-08-31 Spin Memory, Inc. Patterned silicide structures and methods of manufacture
CN110767257A (zh) * 2019-10-31 2020-02-07 江苏华存电子科技有限公司 一种面向微处理器平台的存储器验证系统
CN112464498B (zh) * 2020-12-24 2021-11-09 芯天下技术股份有限公司 一种存储器的真实建模验证方法、装置、存储介质和终端
CN113961419B (zh) * 2021-09-24 2022-09-23 北京百度网讯科技有限公司 存储器验证方法、装置、电子设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970010634B1 (ko) * 1994-10-25 1997-06-28 삼성전자 주식회사 네트워크 하이버네이션 시스템
US20040143696A1 (en) 2003-01-21 2004-07-22 Francis Hsieh Data storage system for fast booting of computer
KR100574989B1 (ko) * 2004-11-04 2006-05-02 삼성전자주식회사 데이터 스트로브 버스라인의 효율을 향상시키는메모리장치 및 이를 구비하는 메모리 시스템, 및 데이터스트로브 신호 제어방법
US20070136523A1 (en) * 2005-12-08 2007-06-14 Bonella Randy M Advanced dynamic disk memory module special operations
JP2008171306A (ja) * 2007-01-15 2008-07-24 Ricoh Co Ltd 電子装置およびプログラム
GB2446658B (en) * 2007-02-19 2011-06-08 Advanced Risc Mach Ltd Hibernating a processing apparatus for processing secure data
US8250350B2 (en) * 2008-08-26 2012-08-21 Texas Digital And Multimedia Systems Computer system with non-volatile write-protected memory based operating system and secure system architecture
JP5578811B2 (ja) * 2009-06-30 2014-08-27 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US9152501B2 (en) * 2012-12-19 2015-10-06 International Business Machines Corporation Write performance in fault-tolerant clustered storage systems

Also Published As

Publication number Publication date
US9037812B2 (en) 2015-05-19
WO2013074107A1 (en) 2013-05-23
CN103930878B (zh) 2016-09-21
CN103930878A (zh) 2014-07-16
US20130275691A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
DE112011105864T5 (de) Verfahren, Vorrichtung und System zur Speichervalidierung
US10866797B2 (en) Data storage device and method for reducing firmware update time and data processing system including the device
US9354978B2 (en) System and method for recovering from a configuration error
CN110032405B (zh) 系统开机码存储器管理方法、存储器装置与应用其的电子系统
DE102018105427A1 (de) Beibehalten von Daten bei einer Stromabschaltung
DE102020133738A1 (de) Firmware-update-techniken
US8812828B2 (en) Methods and apparatuses for recovering usage of trusted platform module
US8990486B2 (en) Hardware and file system agnostic mechanism for achieving capsule support
US20200004721A1 (en) Core mapping
US20120042307A1 (en) System and method for creating memory interface of computing device
US20160231935A1 (en) Memory Configuration Operations for a Computing Device
US20150347151A1 (en) System and method for booting from a non-volatile memory
US10324867B2 (en) Systems and devices having a scalable basic input/output system (BIOS) footprint and associated methods
EP3698251B1 (de) Fehlerbehebung in nichtflüchtigen speicherpartitionen
US20140149732A1 (en) System and method for initializing processor cores in a multiprocessor system
US20200104063A1 (en) Memory controller systems with nonvolatile memory for storing operating parameters
US10642678B1 (en) PCI/PCIe-non-compliance-vulnerability detection apparatus and method
US9639425B1 (en) Signature-based sleep recovery operation flow
WO2019217112A1 (en) Fault tolerant device upgrade
DE102021120076A1 (de) Validierung von dram-inhalten unter verwendung einer internendatensignatur
TWI514281B (zh) 具spi介面的sata儲存裝置、應用該sata儲存裝置之開機方法及基本輸入輸出系統程式碼更新方法
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
DE102013200795A1 (de) Initialisierung von GPU unter Benutzung einer ROM-basierten Initialisierungs-Einheit und programmierbarer Mikro-Steuerung
US10911259B1 (en) Server with master-slave architecture and method for reading and writing information thereof
DE112021001848T5 (de) Mehrere pinkonfigurationen von speichervorrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MAUCHER BOERJES JENKINS, DE

Representative=s name: MAUCHER JENKINS, DE

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012000000

Ipc: G06F0009445000

Effective date: 20140703