DE112014000311T5 - Absichern der Inhalte einer Speichereinheit - Google Patents

Absichern der Inhalte einer Speichereinheit Download PDF

Info

Publication number
DE112014000311T5
DE112014000311T5 DE112014000311.5T DE112014000311T DE112014000311T5 DE 112014000311 T5 DE112014000311 T5 DE 112014000311T5 DE 112014000311 T DE112014000311 T DE 112014000311T DE 112014000311 T5 DE112014000311 T5 DE 112014000311T5
Authority
DE
Germany
Prior art keywords
version value
row
memory
data
group version
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.)
Granted
Application number
DE112014000311.5T
Other languages
English (en)
Other versions
DE112014000311B4 (de
Inventor
Michele M. Franceschini
Ashish Jagmohan
Charles A. Kilmer
Kyuhyoun Kim
Luis A. Lastras-Montano
Warren E. Maule
Hillery C. Hunter
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112014000311T5 publication Critical patent/DE112014000311T5/de
Application granted granted Critical
Publication of DE112014000311B4 publication Critical patent/DE112014000311B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

Eine Datenspeichereinheit (100) beinhaltet einen Datenspeicherabschnitt (105) eines Speichers zum Speichern von in die Speichereinheit geschriebenen Daten. Ein Gruppenversionsdatenspeicher (101) speichert einen Gruppenversionswert (102) und ist dem Datenspeicherabschnitt des Speichers zugehörig, wobei die Speichereinheit so eingerichtet ist, dass bei Änderung des Gruppenversionswertes sämtliche vorher in den Datenspeicherabschnitt des Speichers geschriebenen Daten unlesbar werden.

Description

  • TECHNISCHES ANWENDUNGSGEBIET
  • Diese Offenbarung betrifft allgemein das Absichern von Datenverarbeitung und konkret das Absichern der Inhalte von Speichereinheiten.
  • HINTERGRUND
  • Zum Schützen von Informationen kann die Fähigkeit zum schnellen Verhindern von Zugriff auf gespeicherte Daten nützlich sein. Cloud-Computing nutzende Personen möchten zum Beispiel möglicherweise in der Lage sein, einen Hauptspeicher einer Cloud-Maschine zu löschen. Ein anderes Beispiel ist das physische Zugreifen auf gemeinsam genutzte physische Ressourcen wie zum Beispiel Server. Dynamische Direktzugriffsspeicher-(DRAM-)Einheiten können ihre Inhalte ohne Strom oder ohne Auffrischung eine Zeit lang beibehalten. Nicht berechtigte Parteien mit physischem Zugriff können bekannte Wege wie Kaltstartattacken zum Ausnutzen von DRAM-Einheiten nutzen. Ebenso können dauerhafte Speichertechnologien wie zum Beispiel Phasenwechselspeicher sehr langsam beim Schreiben oder Löschen sein und dabei Sicherheitsbedenken wie den Diebstahl eines nichtflüchtigen DIMM (Dual Inline Memory Module) aufwerfen. Der mühsame Prozess des Löschens durch Überschreiben des gesamten Hauptspeichers mit irgendeinem Muster ist möglicherweise nicht schnell genug zum Verhindern eines Zugreifens auf die Daten.
  • KURZDARSTELLUNG
  • Eine Speichereinheit kann mit einer Funktion zum schnellen Löschen zum Absichern der Inhalte der Speichereinheit ausgestattet sein. Die Funktion zum schnellen Löschen kann unmittelbar beim Ausgeben eines Befehls den Zugriff auf in der Speichereinheit gespeicherte Daten wirksam dauerhaft deaktivieren und dadurch sämtliche vorher in die Speichereinheit geschriebenen Daten unlesbar machen. Die Funktion zum schnellen Löschen kann das Verwenden der Speichereinheit für neue Schreibvorgänge und zum sofortigen Lesen der neu geschriebenen Daten, sobald der Löschbefehl empfangen und ausgeführt wurde, ermöglichen. Die Funktion zum schnellen Löschen kann einen physischen Löschprozess von nicht neu geschriebenen Daten ohne Änderung von anderen Aspekten des schnellen Löschens beginnen. Aspekte können mit einem oder mehreren Bits pro Zeile in einer Speichereinheit erreicht werden.
  • Eine Speichereinheit kann mit einer Funktion zum schnellen Löschen zum Absichern der Inhalte der Speichereinheit ausgestattet sein. Die Funktion zum schnellen Löschen kann unmittelbar beim Ausgeben eines Befehls den Zugriff auf in der Speichereinheit gespeicherte Daten wirksam dauerhaft deaktivieren und dadurch sämtliche vorher in die Speichereinheit geschriebenen Daten unlesbar machen. Die Funktion zum schnellen Löschen kann das Verwenden der Speichereinheit für neue Schreibvorgänge und zum sofortigen Lesen der neu geschriebenen Daten, sobald der Löschbefehl empfangen und ausgeführt wurde, ermöglichen. Die Funktion zum schnellen Löschen kann einen physischen Löschprozess von nicht neu geschriebenen Daten ohne Änderung von anderen Aspekten des schnellen Löschens beginnen. Aspekte können mit einem oder mehreren Bits pro Zeile in einer Speichereinheit erreicht werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt schematisch eine Speichereinheit mit einer Funktion zum Unlesbarmachen von in die Speichereinheit geschriebenen Daten;
  • 2 zeigt schematisch eine Speichereinheit mit einer Funktion zum schnellen Löschen zum Absichern der Inhalte einer Speichereinheit;
  • 3 zeigt schematisch Aspekte einer Speichereinheit mit einer Funktion zum schnellen Löschen;
  • 4 zeigt schematisch eine mehrere DRAM-Chips beinhaltende Speichereinheit, die so gestaltet ist, dass sie vor einem Löschbefehl geschriebene Daten unlesbar macht; und
  • 5 ist ein Ablaufplan, der eine Operation einer Sicherheitssteuereinheit veranschaulicht, welche die Inhalte einer Speichereinheit gemäß einer Ausführungsform absichert.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Zum Schützen von Informationen kann die Fähigkeit zum schnellen Verhindern von Zugriff auf gespeicherte Daten nützlich sein. Cloud-Computing nutzende Personen möchten zum Beispiel möglicherweise in der Lage sein, einen Hauptspeicher einer Cloud-Maschine zu löschen. Ein anderes Beispiel ist das physische Zugreifen auf gemeinsam genutzte physische Ressourcen wie zum Beispiel Server. Dynamische Direktzugriffsspeicher-(DRAM-)Einheiten können ihre Inhalte ohne Strom oder ohne Auffrischung eine Zeit lang beibehalten. Wenn eine Person, ob berechtigt oder nicht berechtigt, die DRAM-Einheit physisch steuern kann, kann die Person die Inhalte der DRAM-Einheit unabhängig von anderen Faktoren (z. B. Strom) lesen. Ebenso können dauerhafte Speichertechnologien wie zum Beispiel Phasenwechselspeicher sehr langsam beim Schreiben oder Löschen sein und dabei Sicherheitsbedenken wie den Diebstahl von nichtflüchtigen DIMMs aufwerfen. Der mühsame Prozess des Löschens durch Überschreiben des gesamten Hauptspeichers mit irgendeinem Muster ist möglicherweise nicht schnell genug zum Verhindern des Zugriffs auf die Daten. Andere Möglichkeiten wie zum Beispiel eine Selbstzerstörung der Schnittstelle zum Absichern der gespeicherten Daten können die Daten oder die Speichereinheit vollständig unbrauchbar machen. Ein Aspekt zum schnellen Löschen einer Speichereinheit kann beim Absichern der Inhalte der Speichereinheit nützlich sein.
  • Eine Speichereinheit kann mit einer Funktion zum schnellen Löschen zum Absichern der Inhalte der Speichereinheit ausgestattet sein. Die Funktion zum schnellen Löschen kann unmittelbar beim Ausgeben eines Befehls den Zugriff auf in der Speichereinheit gespeicherte Daten wirksam dauerhaft deaktivieren. Die Funktion zum schnellen Löschen kann das Verwenden der Speichereinheit für neue Schreibvorgänge und zum sofortigen Lesen der neu geschriebenen Daten, sobald der Löschbefehl empfangen und ausgeführt wurde, ermöglichen. Hierdurch kann das Starten eines neuen Betriebssystems ohne Verzögerung ermöglicht werden. Die Funktion zum schnellen Löschen kann einen physischen Löschprozess von nicht neu geschriebenen Daten ohne Änderung von anderen Aspekten des schnellen Löschens beginnen. Aspekte können mit einem oder mehreren Bits pro Zeile in einer Speichereinheit erreicht werden.
  • 1 zeigt schematisch eine Speichereinheit 100 mit einer Funktion zum Unlesbarmachen von in die Speichereinheit 100 geschriebenen Daten. Die Speichereinheit 100 kann einen Gruppenversionsdatenspeicher 101 beinhalten. Der Gruppenversionsdatenspeicher kann einen logischen Wert beinhalten, der redundant in drei oder mehr Speicherzellen 104 gespeichert ist und bei dem es sich um ein Bit oder eine Sammlung von Bits handeln kann. Bei dem logischen Wert kann es sich um einen Gruppenversionswert 102 handeln. Es kann ein Wahlblock 106 vorhanden sein, der so gestaltet sein kann, dass er eine Mehrheitswahlfunktion durchführen kann, um einer Einzelereignisabweichung wie zum Beispiel einer Einzelbitabweichung 103 Rechnung zu tragen. Bei der Einzelbitabweichung kann es sich um ein fehlerhaftes Bit handeln oder es kann eine Folge von ionisierender Strahlung sein. Es kann erwartet werden, dass ein Fehlerkorrekturcode und Bereinigungen ein derartiges Auftreten in regelmäßigen Abständen korrigieren. Der regelmäßige Abstand ist möglicherweise nicht in sämtlichen Fällen ausreichend kurz. Der Wahlblock 106 kann die logischen Werte 104 analysieren, um zu ermitteln, welcher der Werte die Mehrheit hat. In 1 enthalten zum Beispiel mindestens zwei der drei Bits logische Werte von „1”. Der Wahlblock 106 kann den Wert „1” als Gruppenversionswert festlegen. Der Wahlblock 106 kann auch eine Operation zum Korrigieren des Wertes der Einzelbitabweichung 103 durchführen, wobei in diesem Beispiel der Wert durch eine Operation wie zum Beispiel ein Schreiben von einer „0” in eine „1” geändert wird. Letztendlich kann der Gruppenversionswert 102 dazu verwendet werden, das Unlesbarmachen von in die Speichereinheit 100 geschriebenen Daten zu unterstützen.
  • Die Speichereinheit 100 kann einen Datenspeicherabschnitt wie zum Beispiel ein Matrixfeld 105 beinhalten. Das Matrixfeld 105 kann eine Vielzahl von Zeilen 110 von Speicherzellen oder Bits zum Speichern von in die Speichereinheit 100 geschriebenen Daten beinhalten. Üblicherweise beinhalten Matrixfelder Hunderte von Zeilen 110, die in 1 als R1 bis Rn dargestellt sind. Das Matrixfeld 105 kann eine Vielzahl von Spalten 120 von Speicherzellen oder Bits zum Speichern von in die Speichereinheit 100 geschriebenen Daten beinhalten. Üblicherweise beinhalten Matrixfelder Hunderte von Spalten 120, die in 1 als C1 bis Cm dargestellt sind. Eine bestimmte Zeile 111 kann einen Zeilenversionswert 112 für die bestimmte Zeile 111 beinhalten. Der Zeilenversionswert 112 kann sich in einer bestimmten Spalte 121 befinden. In einer Ausführungsform wie dem Gruppenversionsspeicher 101, der mehrere Bits wie oben beschrieben redundant gespeichert hat, werden mehrere Spalten verwendet. Die bestimmte Spalte 121 kann Zeilenversionswerte 112 für jede Zeile des Matrixfelds 105 beinhalten. In Ausführungsformen kann der Zeilenversionswert 112 mit Daten in Speicherzellen in einer Teilmenge einer Zeile wie zum Beispiel einem bestimmten Byte korrelieren und in seiner Wirkung ein Zeilenversionswert 112 für das bestimmte Datenbyte sein. In dem Fall, in dem der Zeilenversionswert 112 mit Daten in einer Teilmenge einer Zeile korreliert, kann die bestimmte Zeile 111 mehrere Zeilenversionswerte beinhalten, wobei jeder Zeilenversionswert 112 zum Beispiel dem bestimmten Byte zugehörig ist. Die Zeilenversionswerte 112 können in einer oder mehreren Spalten wie zum Beispiel C1, C2 und C3 gespeichert sein. In Ausführungsformen kann das Matrixfeld 105 den Gruppenversionsdatenspeicher 101 und den Gruppenversionswert 102 beinhalten. Letztendlich kann der Zeilenversionswert 112 dazu verwendet werden, das Unlesbarmachen von vorher in die Speichereinheit 100 geschriebenen Daten zu unterstützen.
  • 2 zeigt schematisch eine Speichereinheit 200 mit einer Funktion zum schnellen Löschen zum Absichern der Inhalte der Speichereinheit 200. Ein schnelles Löschen kann Sicherheit durch eine logische Operation erreichen, die den Datenzugriff deaktivieren kann, aber möglicherweise nicht unbedingt ein physisches Löschen beinhaltet. Die Speichereinheit 200 kann mit einer Speichersteuereinheit 280 verbunden sein, die mit einem Host 270 verbunden ist. In einigen Ausführungsformen kann es sich bei dem Host 270 um einen Prozessor handeln. Eine Lese-, Schreib- oder Löschanforderung für die Speichereinheit 200 kann über die Speichersteuereinheit 280 von dem Host 270 stammen. Die Speichereinheit 200 kann einen Datenpuffer 297 beinhalten, der Daten speichern kann, die möglicherweise gelesen oder möglicherweise geschrieben werden. Die Speichereinheit 200 kann einen Adressdecoder 298 beinhalten, der eine Adresse zum Auswählen eines Speicherplatzes empfangen kann, z. B. Angeben einer bestimmten Zeile und einer oder mehrerer Spalten in der bestimmten Zeile. Die Speichereinheit 200 kann einen Befehlsdecoder 299 beinhalten, der eine Lese-, eine Schreib- oder eine Löschanweisung aktivieren kann.
  • Die Speichereinheit 200 kann Aspekte beinhalten, die gleichartig oder gleich wie bei der Speichereinheit 100 sind. Die Speichereinheit 200 kann einen Gruppenversionsdatenspeicher 201 beinhalten. Bei dem Gruppenversionsdatenspeicher 201 kann es sich um ein Register mit einer kritischen Ladung handeln, die ausreichend groß ist, so dass das Register unempfindlich gegen ionisierende Strahlung ist. Der Gruppenversionsdatenspeicher 201 kann einen Gruppenversionswert 202 beinhalten, der gleichartig wie der Gruppenversionswert 102 ist. Die Speichereinheit 200 kann einen Datenspeicherabschnitt wie zum Beispiel ein Matrixfeld 205 beinhalten, das gleichartig wie das Matrixfeld 105 ist. Ähnlich wie der Zeilenversionswert 112 kann das Matrixfeld 205 einen Zeilenversionswert 212 für eine bestimmte Zeile oder eine bestimmte Teilmenge von Daten wie zum Beispiel ein Byte beinhalten.
  • Die Speichereinheit 200 kann eine Sicherheitssteuereinheit 220 beinhalten, die so konfiguriert sein kann, dass sie mit anderen Aspekten der Speichereinheit 200 während einer Lese-, Schreib- oder Löschanforderung zusammenwirkt. Die Sicherheitssteuereinheit 220 kann so konfiguriert sein, dass sie spezifisch für ein Lesen, ein Schreiben oder ein Löschen funktioniert. In einer Ausführungsform darf die Sicherheitssteuereinheit 220 während eines Lesens von einer bestimmten Zeile des Matrixfeldes 205 den Gruppenversionswert 202 mit dem Zeilenversionswert 212 für die bestimmte Zeile vergleichen. Wenn der Gruppenversionswert 202 mit dem Zeilenversionswert 212 für die bestimmte Zeile übereinstimmt, dürfen Daten aus der bestimmten Zeile ausgegeben werden. Die Daten aus der bestimmten Zeile dürfen an den Datenpuffer 297 und letztendlich an die Speichersteuereinheit 280 und den Host 270 ausgegeben werden. Somit wurde eine Sicherheitsentscheidung ausgegeben, welche die Daten als von der bestimmten Zeile lesbar bestimmt hat. Wenn der Gruppenversionswert 202 nicht mit dem Zeilenversionswert 212 für die bestimmte Zeile übereinstimmt, dürfen Daten nicht aus der bestimmten Zeile ausgegeben werden. Somit wurde eine Sicherheitsentscheidung ausgegeben, welche die Daten als von der bestimmten Zeile unlesbar bestimmt hat. Wenn die Inhalte als unlesbar bestimmt werden, können die Speichersteuereinheit 280 und der Host 270 eine Signalverweigerung, ein bekanntes Muster oder ein zufälliges Muster empfangen. Es werden andere Möglichkeiten zum Ausgeben von Daten als Reaktion auf eine Leseanforderung in Betracht gezogen.
  • In einer Ausführungsform darf die Sicherheitssteuereinheit 220 während eines Löschens für eine bestimmte Zeile des Matrixfeldes 205 den Gruppenversionswert 202 auf einen neuen Gruppenversionswert abändern. Der Gruppenversionsdatenspeicher 201 darf den neuen Gruppenversionswert speichern und den vorhergehenden Gruppenversionswert 202 nicht mehr speichern. Bei dem logischen Wert des neuen Gruppenversionswertes darf es sich nicht um den logischen Wert des vorhergehenden Gruppenversionswertes 202 handeln. Das Löschen kann ferner ein physisches Löschen der Inhalte von Adressen (Daten) der bestimmten Zeile des Matrixfeldes 205 aufweisen, bei denen der Zeilenversionswert der bestimmten Zeile nicht mit dem neuen Gruppenversionswert übereinstimmt. Die Sicherheitssteuereinheit 220 darf keine andere Löschanforderung bearbeiten, bis das physische Löschen abgeschlossen ist. Es kann ein Aspekt des schnellen Löschens der Offenbarung vorliegen, der vor dem Löschbefehl geschriebene Inhalte des Matrixfeldes 205 unlesbar macht, obwohl das physische Löschen möglicherweise noch nicht abgeschlossen ist. Ein Lesen von einer bestimmten Zeile darf nicht gestattet werden, wenn der Zeilenversionswert 212 für die bestimmte Zeile nicht mit dem Gruppenversionswert 202 übereinstimmt, bei dem es sich um den neuen Gruppenversionswert nach einer Löschanforderung handeln kann. Selbst wenn das physische Löschen möglicherweise noch nicht abgeschlossen ist, können somit nicht übereinstimmende logische Werte des Gruppenversionswertes 202 und des Zeilenversionswertes 212 ein Lesen von vor der Löschanforderung gespeicherten Daten verweigern. In Ausführungsformen darf der physische Speicher nicht gelöscht werden, wenn der neue Gruppenversionswert mit dem Zeilenversionswert 212 übereinstimmt. Wenn der neue Gruppenversionswert nicht mit dem Zeilenversionswert 212 übereinstimmt, oder in Ausführungsformen, in denen bei einer Löschanforderung kein Vergleich durchgeführt wird, darf ein physisches Löschen der bestimmten Zeile beginnen. Es werden andere Möglichkeiten in Betracht gezogen.
  • In einer Ausführungsform darf die Sicherheitssteuereinheit 220 während eines Schreibens in eine bestimmte Zeile des Matrixfeldes 205 den Gruppenversionswert 202 in den Zeilenversionswert 212 kopieren. Der Host 270 darf in die bestimmte Zeile zu schreibende Daten über die Speichersteuereinheit 280 an den Datenpuffer 297 senden. Die Sicherheitssteuereinheit 220 darf die in die bestimmte Zeile zu schreibenden Daten schreiben. Das Schreiben der Daten darf von dem Datenpuffer 297 zu dem Matrixfeld 205 stattfinden. Andere Werte in der bestimmten Zeile dürfen zum Beispiel dann bleiben, wenn es sich bei den zu schreibenden Daten lediglich um eine Teilmenge einer Zeile handelt. Die Sicherheitssteuereinheit 220 darf die anderen Werte in der bestimmten Zeile in Speicherzellen löschen, in die keine Daten zu schreiben sind. Ein derartiges Löschen der anderen Werte darf stattfinden, wenn die Sicherheitssteuereinheit 220 feststellt, dass sich der Zeilenversionswert 212 von dem aktuellen Gruppenversionswert 202 unterscheidet. Das Löschen der anderen Werte in der bestimmten Zeile verhindert das Schreiben in die Teilmenge der Zeile und das Vorhandensein einer Lesefähigkeit für andere Daten in der bestimmten Zeile, da der neue eingeschriebene Zeilenversionswert 212 jetzt gleich ist wie der Gruppenversionswert 202. Das Löschen der anderen Werte kann durch Schreiben eines bekannten Musters stattfinden. Das bekannte Muster darf vor dem Schreiben der in das Matrixfeld 205 zu schreibenden Daten in den Datenpuffer 297 geschrieben werden.
  • In einer Ausführungsform darf der Datenpuffer 297 während eines Schreibens in eine bestimmte Zeile des Matrixfeldes 205 auf die Inhalte der bestimmten Zeile zugreifen. Die Sicherheitssteuereinheit 220 darf den Gruppenversionswert 202 mit dem Zeilenversionswert 212 für die bestimmte Zeile vergleichen. Wenn der Gruppenversionswert 202 nicht mit dem Zeilenversionswert 212 übereinstimmt, dürfen die Inhalte der bestimmten Zeile in dem Datenpuffer 297 gelöscht werden. Die Sicherheitssteuereinheit 220 darf den Gruppenversionswert 202 in den Zeilenversionswert 212 kopieren und die zu schreibenden Daten in den Datenpuffer 297 schreiben. Die Inhalte des Datenpuffers 297 dürfen in die bestimmte Zeile des Matrixfeldes 205 geschrieben werden. In einer Ausführungsform darf eine Schreibanforderung für eine bestimmte Zeile unmittelbar nach einer Löschanforderung gestattet werden. Selbst wenn das physische Löschen möglicherweise noch nicht abgeschlossen ist, darf somit der logische Wert des Gruppenversionswertes 202 in den Zeilenversionswert 212 kopiert werden, um ein Schreiben von Daten in die bestimmte Zeile zu ermöglichen. Da der Rest der bestimmten Zeile jedoch gelöscht wurde, geben nachfolgende Lesevorgänge von der bestimmten Zeile keine von einem vorhergehenden Schreiben mit dem vorhergehenden Gruppenversionswert geschriebenen Daten aus.
  • In Ausführungsformen kann der Zeilenversionswert 212 mit Daten in Speicherzellen in einer Teilmenge einer Zeile wie zum Beispiel einem bestimmten Byte korrelieren und in seiner Wirkung ein Zeilenversionswert 212 für das bestimmte Datenbyte sein. In dem Fall, in dem der Zeilenversionswert 212 mit Daten in einer Teilmenge einer Zeile korreliert, kann eine bestimmte Zeile des Matrixfeldes 205 mehrere Zeilenversionswerte beinhalten, wobei jeder Zeilenversionswert 212 zum Beispiel dem bestimmten Byte zugehörig ist. Zum Schreiben in das bestimmte Byte in der bestimmten Zeile dürfen Daten in das bestimmte Byte geschrieben werden, und andere Bits in der bestimmten Zeile dürfen gelöscht werden. Falls Daten nicht gelöscht werden, können sie durch die fehlende Übereinstimmung des Gruppenversionswertes 202 und des Zeilenversionswertes 212 für vor dem Löschbefehl geschriebene Bytes unlesbar gemacht werden. Eine Möglichkeit beinhaltet das Zugreifen auf die bestimmte Zeile in einem Zeilenpuffer. Wenn der Zeilenversionswert 212 für das bestimmte Byte nicht mit dem Gruppenversionswert 202 übereinstimmt, darf das bestimmte Byte gelöscht werden. Das Löschen darf für jedes Bit in der bestimmten Zeile stattfinden, wenn der jedem Bit zugehörige Zeilenversionswert 212, möglicherweise zum Beispiel durch ein Byte zugehörig, nicht mit dem Gruppenversionswert 202 übereinstimmt. Der Gruppenversionswert 202 darf für das bestimmte Byte in der bestimmten Zeile in den Zeilenversionswert 212 kopiert werden. Die in das bestimmte Byte in der bestimmten Zeile zu schreibenden Daten dürfen in den Zeilenpuffer geschrieben werden. Das eigentliche Schreiben in das bestimmte Byte in der bestimmten Zeile darf von dem Zeilenpuffer in das bestimmte Byte in der bestimmten Zeile in dem Matrixfeld 205 stattfinden. Es werden andere Möglichkeiten zum Schreiben von Daten in Betracht gezogen.
  • 3 zeigt schematisch Aspekte einer Speichereinheit mit einer Funktion zum schnellen Löschen. 3 stellt beispielhafte Aspekte der Speichereinheit bereit und zeigt mögliche Aspekte einer Sicherheitssteuereinheit, eines Adressdecoders, eines Befehlsdecoders oder eines Datenpuffers, die oben erwähnt werden. Das Matrixfeld 105 und der Gruppenversionswert 102 aus 1 werden gezeigt, um beim Darstellen der Wechselwirkung der verschiedenen möglichen Aspekte zu helfen. Wenn sich Zeilenversionswerte in Spalte C1 für jede Zeile des Matrixfelds 105 befinden, kann ein Abtastungszwischenspeicher 350 zum Erfassen des Zeilenversionswertes für eine bestimmte Zeile des Matrixfelds 105 vorhanden sein. Während einer Leseanforderung von der bestimmten Zeile darf der Gruppenversionswert 102 mit einem Wert des Abtastungszwischenspeichers 350 für die bestimmte Zeile verglichen werden. Während einer Schreibanforderung für die bestimmte Zeile darf der Gruppenversionswert 102 in den Zeilenversionswert für die bestimmte Zeile kopiert werden, und somit kann der Wert des Abtastungszwischenspeichers 350 mit dem Gruppenversionswert 102 übereinstimmen. Ein Spaltenpuffer 360 darf auf Daten 370 zugreifen oder auf eine Folge von Bits des Matrixfelds 105 zugreifen. Eine Spaltenauswahleinheit 365 darf eine geeignete Spaltenadresse des Matrixfelds 105 zum Zugreifen auswählen. Ein Zeilendecoder 380 darf eine geeignete Zeilenadresse des Matrixfelds 105 zum Zugreifen auswählen. Ein Schreibbefehl 390 darf somit zum Beispiel erfolgreich abgeschlossen werden. Wenn das XOR-Gatter 318 während eines Lesens feststellt, dass sich der Gruppenversionswert 102 von dem Zeilenversionswert (in dem Abtastungszwischenspeicher 350) für eine aufgerufene Zeile unterscheidet, dürfen NOR-Gatter 319 unabhängig von Daten in Daten 370 „0”en ausgeben. 3 stellt einen möglichen Weg zum Entwickeln von Aspekten einer Speichereinheit mit einer Funktion zum schnellen Löschen dar, wobei andere Möglichkeiten in Betracht gezogen werden.
  • 4 zeigt schematisch eine mehrere DRAM-Chips beinhaltende Speichereinheit, die so gestaltet ist, dass sie vor einem Löschbefehl geschriebene Daten unlesbar macht. Bei der Speichereinheit 400 kann es sich um ein DIMM (Dual Inline Memory Module) handeln. Die Speichereinheit kann einen Pufferchip 410 beinhalten. Die Speichereinheit 400 kann mit einer Speichersteuereinheit 480 verbunden sein, die mit einem Host 470 verbunden ist. In einigen Ausführungsformen kann es sich bei dem Host 470 um einen Prozessor handeln. Eine Lese-, Schreib- oder Löschanforderung für die Speichereinheit 400 kann über die Speichersteuereinheit 480, die in 4 als in dem Host 470 beinhaltet gezeigt ist, von dem Host 470 stammen. Befehls-, Adress- und Datensignale 490 können sich zwischen der Speichersteuereinheit 480 und der den Pufferchip 410 beinhaltenden Speichereinheit 400 hin- und herbewegen.
  • Die Speichereinheit 400 kann mindestens einen dynamischen Direktzugriffsspeicher(DRAM-)Chip 440 beinhalten. Falls es sich bei der Speichereinheit 400 um ein DIMM handelt, können wie in 4 gezeigt viele DRAM-Chips 440 beinhaltet sein. Aspekte des Pufferchips 410 können gleichartig wie die der Speichereinheiten 100, 200 in 1 bis 2 sein. Dem Pufferchip kann die Art der verwendeten DRAM-Chips 440 bekannt sein, darunter die Anzahl von Zeilen und die Anzahl von Spalten. Der Pufferchip kann auch eine Funktion zum Personalisieren der Zeilendecodierung für die DRAM-Chips 440 aufweisen. Der Pufferchip kann eine Sicherheitssteuereinheit beinhalten, die gleichartig ist wie die Sicherheitssteuereinheit 220 in 2. Der Pufferchip 410 kann einen Gruppenversionswert 402 beinhalten. Der Gruppenversionswert kann in einem Gruppenversionsdatenspeicher gespeichert werden, der gleichartig wie die Gruppenversionsdatenspeicher 101, 102 in 1 bis 2 ist. Der Pufferchip 410 kann einen Zeilenversionswert 412 beinhalten. Für jede Zeile des Pufferchips 410 kann ein Zeilenversionswert 412 vorhanden sein. Der Zeilenversionswert 412 für jede Zeile des Pufferchips 410 kann als Zeilenversionswert für eine Zeile auf jedem DRAM-Chip 440 dienen. Wenn der DRAM-Chip 440 zum Beispiel „n” Zeilen beinhaltet, kann der Pufferchip 410 „n” Zeilen mit einem Zeilenversionswert 412 für jede der „n” Zeilen beinhalten. Somit kann das DIMM 400 „n” Zeilen aufweisen, wenn der Pufferchip 410 „n” Zeilenversionswerte 412 aufweist. In Ausführungsformen kann der Pufferchip 410 einen Zeilenversionswert 412 für jede Zeile jedes DRAM-Chips 440 oder für eine Teilmenge jedes DRAM-Chips 440 wie zum Beispiel ein Byte beinhalten.
  • Eine Lese-, Schreib- oder Löschanforderung für die Speichereinheit 400 kann über die Speichersteuereinheit 480 von dem Host 470 stammen. Zugehörige Befehls-, Adress- und Datensignale 490 für einen bestimmten DRAM-Chip 440 können sich zwischen der Speichersteuereinheit 480 und dem Pufferchip 410 hin- und herbewegen. In einer Ausführungsform darf die Sicherheitssteuereinheit während eines Lesens von einer bestimmten Zeile des bestimmten DRAM-Chips 440 den Gruppenversionswert 402 mit dem der bestimmten Zeile des DRAM-Chips 440 zugehörigen Zeilenversionswert 412 vergleichen. Wenn der Gruppenversionswert 402 mit dem der bestimmten Zeile des DRAM-Chips 440 zugehörigen Zeilenversionswert 412 übereinstimmt, dürfen Daten aus der bestimmten Zeile des bestimmten DRAM-Chips 440 ausgegeben werden. Wenn der Gruppenversionswert 402 nicht mit dem der bestimmten Zeile des DRAM-Chips 440 zugehörigen Zeilenversionswert 412 übereinstimmt, dürfen keine Daten aus der bestimmten Zeile des bestimmten DRAM-Chips 440 ausgegeben werden.
  • In einer Ausführungsform darf die Sicherheitssteuereinheit während eines Löschens für eine bestimmte Zeile des bestimmten DRAM-Chips 440 den Gruppenversionswert 402 auf einen neuen Gruppenversionswert abändern. Der logische Wert des neuen Gruppenversionswertes darf nicht der logische Wert des vorhergehenden Gruppenversionswertes 402 sein. Bei dem Löschen kann es sich um ein physisches Löschen der Inhalte von Adressen (Daten) der bestimmten Zeile des bestimmten DRAM-Chips 440 handeln, wenn der der bestimmten Zeile des bestimmten DRAM-Chips 440 zugehörige Zeilenversionswert 412 nicht mit dem neuen Gruppenversionswert übereinstimmt. Die Sicherheitssteuereinheit darf keine andere Löschanforderung bearbeiten, bis das physische Löschen abgeschlossen ist. Es kann ein Aspekt des schnellen Löschens der Offenbarung vorliegen, der Inhalte des bestimmten DRAM-Chips 440 unlesbar macht, obwohl das physische Löschen möglicherweise noch nicht abgeschlossen ist. Ein Lesen von einer bestimmten Zeile des bestimmten DRAM-Chips 440 darf nicht gestattet werden, wenn der der bestimmten Zeile des bestimmten DRAM-Chips 440 zugehörige Zeilenversionswert 412 nicht mit dem Gruppenversionswert 402 übereinstimmt, bei dem es sich um den neuen Gruppenversionswert nach einer Löschanforderung handeln kann.
  • In einer Ausführungsform darf die Sicherheitssteuereinheit während eines Schreibens in eine bestimmte Zeile des bestimmten DRAM-Chips 440 den Gruppenversionswert 402 in den der bestimmten Zeile des bestimmten DRAM-Chips 440 zugehörigen Zeilenversionswert 412 kopieren. Die Sicherheitssteuereinheit darf die in die bestimmte Zeile des bestimmten DRAM-Chips 440 zu schreibenden Daten schreiben. Die Sicherheitssteuereinheit darf die anderen Werte in der bestimmten Zeile des DIMM in Speicherzellen löschen, in die keine Daten zu schreiben sind, die aber dem Zeilenversionswert 412 zugehörig ist. Ein derartiges Löschen der anderen Werte darf stattfinden, wenn die Sicherheitssteuereinheit feststellt, dass sich der Zeilenversionswert 412 von dem aktuellen Gruppenversionswert 202 unterscheidet. Das Löschen der anderen Werte in der bestimmten Zeile des DIMM kann verhindern, dass nach dem Schreiben in den bestimmten DRAM-Chip 440 eine Lesefähigkeit für andere DRAM Chips in der bestimmten Zeile vorhanden ist. Das Löschen der anderen Werte kann durch Schreiben eines bekannten Musters stattfinden. Es werden andere Möglichkeiten in Betracht gezogen, darunter andere Wege des Handhabens von Lese-, Schreib- oder Löschanforderungen in dem Kontext von Speichereinheiten wie zum Beispiel DIMMs.
  • 5 ist ein Ablaufplan, der eine Operation einer Sicherheitssteuereinheit veranschaulicht, welche die Inhalte einer Speichereinheit gemäß einer Ausführungsform absichert. Die Operation 500 beginnt mit dem Empfangen eines Befehls in Block 501. Block 502 ermittelt, ob es sich bei dem Befehl um eine Leseanforderung, eine Schreibanforderung oder eine Löschanforderung handelt.
  • Wenn es sich bei dem Befehl um eine Leseanforderung handelt, können in Block 511 ein Gruppenversionswert und ein Zeilenversionswert verglichen werden. Der Gruppenversionswert und der Zeilenversionswert können gleiche logische Werte wie zum Beispiel „0” oder „1” aufweisen. Das Vergleichen kann geschehen, ohne den Gruppenversionswert oder den Zeilenversionswert zu ändern. Das Vergleichen kann zu einer Übereinstimmung oder einer Nichtübereinstimmung führen. Eine Übereinstimmung kann gleiche Werte beschreiben. Eine Nichtübereinstimmung kann ungleiche Werte beschreiben. Es werden andere Ausführungsformen mit unterschiedlichen Wegen zum Durchführen des Vergleichens in Betracht gezogen. Das Durchführen des Vergleichens kann als Anwenden einer Bewertungslogik beschrieben werden. Das Erzielen eines Ergebnisses einer Übereinstimmung oder einer Nichtübereinstimmung kann als das Treffen einer Sicherheitsentscheidung beschrieben werden. Wenn das Vergleichen des Gruppenversionswertes mit dem Zeilenversionswert einer bestimmten Zeile eine Übereinstimmung ergibt, dürfen in Block 514 Daten aus der bestimmten Zeile ausgegeben werden. Die Daten können als lesbar bestimmte Inhalte angesehen werden. Die Leseanforderung kann mit den Daten erfüllt werden. Inhalte dürfen zum Beispiel einem die Anforderung stellenden Host bereitgestellt werden. Wenn das Vergleichen des Gruppenversionswertes mit dem Zeilenversionswert einer bestimmten Zeile eine Nichtübereinstimmung ergibt, dürfen in Block 516 keine Daten aus der bestimmten Zeile ausgegeben werden. Die Daten können als unlesbar bestimmte Inhalte angesehen werden. Wenn die Inhalte als unlesbar bestimmt werden, kann eine Signalverweigerung bereitgestellt werden, ein bekanntes Muster wie lauter „0”en bereitgestellt werden oder ein zufälliges Muster bereitgestellt werden. Lesevorgänge dürfen normal stattfinden, wenn der Gruppenversionswert mit dem Zeilenversionswert für jede Zeile übereinstimmt.
  • Wenn es sich bei dem Befehl um eine Löschanforderung handelt, kann in Block 531 ein Gruppenversionswert auf einen neuen Gruppenversionswert abgeändert werden. Die Inhalte von Adressen (Daten), die vor dem Löschbefehl geschrieben wurden, können unlesbar sein. In Block 536 darf ein Löschen initiiert werden. Bei dem Löschen kann es sich um ein physisches Löschen der Daten handeln, bei denen der Zeilenversionswert einer bestimmten Zeile in Block 536 nicht mit dem neuen Gruppenversionswert übereinstimmt. Es darf keine neue Löschanforderung angenommen werden, bis das physische Löschen in Block 536 abgeschlossen wurde. Wenn der neue Gruppenversionswert mit dem Zeilenversionswert einer bestimmten Zeile übereinstimmt, dürfen die Inhalte von Adressen nicht aus der bestimmten Zeile gelöscht werden und können lesbar oder schreibbar sein. In Ausführungsformen darf vor dem Abschließen des physischen Löschens eine Leseanforderung oder eine Schreibanforderung gestattet werden. In Ausführungsformen darf während des Stattfindens eines Löschens in einer ersten Zeile ein Lesen in einer zweiten Zeile stattfinden, selbst wenn Daten in der ersten Zeile nicht physisch gelöscht wurden, wenn der Zeilenversionswert für die zweite Zeile mit dem Gruppenversionswert übereinstimmt. In Ausführungsformen darf während des Stattfindens eines Löschens kein anderer Löschbefehl gestattet werden, bis jedes von dem ersten Löschbefehl betroffene Datenbit entweder physisch gelöscht oder überschrieben wurde. In Ausführungsformen können der Gruppenversionswert und ein Zeilenversionswert verglichen werden und zu einer Übereinstimmung oder einer Nichtübereinstimmung führen. Das Vergleichen kann geschehen, ohne irgendeinen Zeilenversionswert zu ändern. Es werden andere Möglichkeiten wie das Beginnen mit dem Löschen sämtlicher Zeilen beim Ändern des Gruppenversionswertes in Betracht gezogen.
  • Wenn es sich bei dem Befehl um eine Schreibanforderung handelt, kann in Block 521 ein Gruppenversionswert in den Zeilenversionswert kopiert werden. Der Gruppenversionswert kann dann mit dem Zeilenversionswert übereinstimmen. In Block 522 dürfen Daten geschrieben werden. Während einer Schreibanforderung für eine bestimmte Zeile dürfen in die bestimmte Zeile geschriebene Daten nicht in die gesamte Zeile geschrieben werden. Wenn eine Zeile zum Beispiel 100 Werte speichernde Bits aufweist, dürfen in einigen Fällen lediglich 25 Bits geschrieben werden. In diesem Fall dürfen die übrigen 75 Bits gelöscht werden. Das Löschen darf stattfinden, wenn die Schreibanforderung den Zeilenversionswert geändert hat, das heißt, wenn der Gruppenversionswert vor dem Kopieren des Gruppenversionswertes in den Zeilenversionswert nicht gleich dem Zeilenversionswert war. In Ausführungsformen darf das Löschen nicht stattfinden, wenn die Schreibanforderung den Zeilenversionswert nicht geändert hat, das heißt, wenn der Gruppenversionswert vor der Schreibanforderung gleich dem Zeilenversionswert war. Wenn ein Zeilenversionswert ein Byte oder einen anderen Datenblock darstellt, kann das Byte gleichermaßen seinen eigenen Versionswert aufweisen, und die anderen Daten in der Zeile müssen möglicherweise nicht gelöscht werden. In dem Beispiel kann das Löschen das Setzen jedes der nicht geschriebenen 75 Bits auf eine „0”, „1” oder auf ein vorbestimmtes Muster von „0”en und „1”en darstellen. Somit darf der Rest der Zeile nun in Block 523 gelöscht werden. Nachdem die Schreibanforderung erfüllt wurde, dürfen die Inhalte der Zeile lesbar sein. Schreibvorgänge dürfen immer gestattet werden. Unter Standardbetriebsbedingungen finden Schreibvorgänge normal statt, wenn der Gruppenversionswert mit dem Zeilenversionswert für jede Zeile übereinstimmt.
  • In Ausführungsformen kann es einem Host gestattet werden, zu lesen, zu schreiben oder zu löschen. Dem Host darf es nicht gestattet werden, einen Gruppenversionswert zu setzen. Dem Host darf es nicht gestattet werden, ein Element oder einen Zeilenversionswert zu setzen. Aspekte der Offenbarung können es gestatten, dass dies indirekt geschieht, aber nicht direkt als Folge einer Aktion durch den Host.

Claims (27)

  1. Speichereinheit, aufweisend: einen Datenspeicherabschnitt (105) eines Speichers zum Speichern von in die Speichereinheit geschriebenen Daten; einen Gruppenversionsdatenspeicher (101) zum Speichern eines Gruppenversionswertes (102) und der dem Datenspeicherabschnitt des Speichers zugehörig ist; und wobei die Speichereinheit so eingerichtet ist, dass sämtliche vorher in den Datenspeicherabschnitt des Speichers geschriebenen Daten unlesbar werden, wenn sich der Gruppenversionswert ändert.
  2. Speichereinheit nach Anspruch 1, ferner aufweisend einen Zeilenversionswert (112), wobei, wenn sich der Gruppenversionswert von dem Zeilenversionswert unterscheidet, Daten mit dem unterschiedlichen Zeilenversionswert unlesbar werden.
  3. Speichereinheit nach Anspruch 1, wobei unlesbar werdende Daten physisch gelöscht werden.
  4. Speichereinheit nach Anspruch 1, ferner aufweisend einen Zeilenversionswert (112), wobei, wenn der Gruppenversionswert mit dem Zeilenversionswert übereinstimmt, dem Zeilenversionswert zugehörige Daten lesbar sind.
  5. Speichereinheit, aufweisend: eine oder mehrere Zeilen (110) mit einer Vielzahl von Speicherzellen; ein erstes Speicherelement zum Speichern eines Gruppenversionswertes (202); ein zweites Speicherelement zum Speichern eines Zeilenversionswertes (212) für eine Zeile der einen oder mehreren Zeilen; und eine Sicherheitssteuereinheit (220), wobei die Sicherheitssteuereinheit so konfiguriert ist, dass sie während eines Lesens von einer bestimmten Zeile den Gruppenversionswert mit dem Zeilenversionswert für die bestimmte Zeile vergleicht, und Daten aus der bestimmten Zeile ausgibt, wenn der Gruppenversionswert mit dem Zeilenversionswert für die bestimmte Zeile übereinstimmt, und keine Daten aus der bestimmten Zeile ausgibt, wenn der Gruppenversionswert nicht mit dem Zeilenversionswert für die bestimmte Zeile übereinstimmt; wobei die Sicherheitssteuereinheit ferner so konfiguriert ist, dass sie beim Empfangen eines Löschbefehls den Gruppenversionswert auf einen neuen Gruppenversionswert abändert; und die Sicherheitssteuereinheit ferner so konfiguriert ist, dass sie während eines Schreibens von Daten in eine bestimmte Zeile den Gruppenversionswert in den Zeilenversionswert kopiert und die zu schreibenden Daten schreibt.
  6. Speichereinheit nach Anspruch 5, ferner aufweisend, dass die Sicherheitssteuereinheit (220) ferner so konfiguriert ist, dass sie beim Empfangen eines Löschbefehls ein Löschen beginnt, wenn der Zeilenversionswert nicht mit dem neuen Gruppenversionswert übereinstimmt.
  7. Speichereinheit nach Anspruch 5, ferner aufweisend, dass die Sicherheitssteuereinheit (220) ferner so konfiguriert ist, dass sie während eines Schreibens von Daten in eine bestimmte Zeile andere Werte in der Zeile löscht, wenn der ursprüngliche Zeilenversionswert nicht mit dem Gruppenversionswert übereinstimmt.
  8. Speichereinheit nach Anspruch 5, wobei die Sicherheitssteuereinheit (220) der Speichereinheit so gestaltet ist, dass sie von einem Host entweder eine Leseanforderung, eine Schreibanforderung oder eine Löschanforderung empfängt.
  9. Speichereinheit nach Anspruch 5, wobei die Sicherheitssteuereinheit (220) so gestaltet ist, dass sie eine Mehrheitswahlfunktion durchführt, wobei der Gruppenversionswert einen logischen Wert aufweist, der in drei oder mehr Speicherzellen redundant gespeichert ist, wodurch einer Einzelereignisabweichung Rechnung getragen wird.
  10. Speichereinheit nach Anspruch 5, wobei der Gruppenversionswert (202) in einem Register mit einer kritischen Ladung, die unempfindlich gegen ionisierende Strahlung Ist, gespeichert wird.
  11. Verfahren zum Absichern der Inhalte einer Speichereinheit, aufweisend: Empfangen (501) entweder einer Leseanforderung, einer Schreibanforderung oder einer Löschanforderung; während eines Lesens von einer bestimmten Zeile, Vergleichen (511) eines Gruppenversionswertes in einem Speicher mit einem Zeilenversionswert in einem Speicher für die bestimmte Zeile, und Ausgeben von Daten aus der bestimmten Zeile, wenn der Gruppenversionswert mit dem Zeilenversionswert für die bestimmte Zeile übereinstimmt, und Nichtausgeben von Daten aus der bestimmten Zeile, wenn der Gruppenversionswert nicht mit dem Zeilenversionswert für die bestimmte Zeile übereinstimmt; beim Empfangen eines Löschbefehls, Abändern (531) des Gruppenversionswertes auf einen neuen Gruppenversionswert; und während eines Schreibens in eine bestimmte Zeile, Kopieren (521) des Gruppenversionswertes in den Zeilenversionswert und Schreiben der zu schreibenden Daten.
  12. Verfahren nach Anspruch 11, ferner aufweisend das Beginnen (536) eines Löschens beim Empfangen eines Löschbefehls, wenn der Zeilenversionswert nicht mit dem neuen Gruppenversionswert übereinstimmt.
  13. Verfahren nach Anspruch 11, wobei ein Löschen das physische Löschen (536) von Daten beinhaltet, für die der Gruppenversionswert nicht mit dem neuen Gruppenversionswert übereinstimmt.
  14. Verfahren nach Anspruch 11, ferner aufweisend während eines Schreibens von Daten in eine bestimmte Zeile das Löschen (523) anderer Werte in der Zeile, wenn der ursprüngliche Zeilenversionswert nicht mit dem Gruppenversionswert übereinstimmt.
  15. Verfahren nach Anspruch 11, ferner aufweisend während eines Löschens das Gestatten entweder einer Leseanforderung oder einer Schreibanforderung vor Abschluss des Löschens, wobei das Gestatten einer Leseanforderung das Empfangen einer Leseanforderung, das Vergleichen (511) eines Gruppenversionswertes mit einem Zeilenversionswert für die bestimmte Zeile und das Ausgeben von Daten (514) aus der bestimmten Zeile, wenn der Gruppenversionswert mit dem Zeilenversionswert für die bestimmte Zeile übereinstimmt, und das Nichtausgeben von Daten (516) aus der bestimmten Zeile beinhaltet, wenn der Gruppenversionswert nicht mit dem Zeilenversionswert für die bestimmte Zeile übereinstimmt.
  16. Verfahren nach Anspruch 11, ferner aufweisend während eines Löschens das Nichtgestatten eines anderen Löschbefehls, bis jedes von dem ersten Löschbefehl betroffene Datenbit entweder physisch gelöscht oder überschrieben wurde.
  17. Verfahren nach Anspruch 11, wobei festgelegt wird, Inhalte der Speichereinheit nicht zu löschen, wenn der Gruppenversionswert in dem Speicher mit dem Zeilenversionswert in dem Speicher übereinstimmt.
  18. Verfahren zum Absichern der Inhalte einer Speichereinheit, aufweisend: Empfangen (501) einer Zugriffsanforderung, wobei das Zugreifen ein Lesen, ein Schreiben oder ein Löschen beinhaltet; Zuweisen eines Wertes in einem Speicher, bei dem es sich um einen Gruppenversionswert (202) der Speichereinheit handelt; Zuweisen eines Wertes in einem Speicher, bei dem es sich um einen Zeilenversionswert (212) für eine Zeile der Speichereinheit handelt; und Erfüllen der Zugriffsanforderung, wobei auf Inhalte zugegriffen wird oder zugängliche Inhalte der Speichereinheit bereitgestellt werden.
  19. Verfahren nach Anspruch 18, wobei es sich bei der Zugriffsanforderung um eine Leseanforderung handelt, aufweisend: Empfangen einer Leseanforderung; Beibehalten des Gruppenversionswertes in dem Speicher; Beibehalten des Zeilenversionswertes in dem Speicher; Anwenden einer Bewertungslogik, die eine Sicherheitsentscheidung für Inhalte der Speichereinheit trifft; und Erfüllen der Leseanforderung mit Inhalten der Speichereinheit, die durch die Sicherheitsentscheidung als lesbar bestimmt wurden.
  20. Verfahren nach Anspruch 19, wobei Inhalte der Speichereinheit bereitgestellt werden, wenn der Gruppenversionswert in dem Speicher mit dem Zeilenversionswert in dem Speicher übereinstimmt.
  21. Verfahren nach Anspruch 18, wobei es sich bei der Zugriffsanforderung um eine Löschanforderung handelt, aufweisend: Empfangen einer Löschanforderung; Ändern des Gruppenversionswertes in dem Speicher; Beibehalten des Zeilenversionswertes in dem Speicher; Anwenden einer Bewertungslogik, die eine Sicherheitsentscheidung für Inhalte der Speichereinheit trifft; und Erfüllen der Löschanforderung durch Löschen von zumindest einem Teil der Inhalte der Speichereinheit.
  22. Verfahren nach Anspruch 21, wobei das Löschen von Inhalten der Speichereinheit das physische Löschen von Inhalten von Adressen und das Setzen des Zeilenversionswertes in dem Speicher derart, dass er mit dem Gruppenversionswert in dem Speicher übereinstimmt, beinhaltet.
  23. Verfahren nach Anspruch 21, ferner aufweisend das Gestatten einer Leseanforderung oder einer Schreibanforderung vor dem Abschließen des Löschens von Inhalten der Speichereinheit.
  24. Verfahren nach Anspruch 19, wobei das Gestatten einer Leseanforderung das Empfangen einer Leseanforderung, das Anwenden einer Bewertungslogik, die eine Sicherheitsentscheidung für Inhalte der Speichereinheit trifft, und das Erfüllen der Leseanforderung mit Inhalten der Speichereinheit, die durch die Sicherheitsentscheidung als lesbar bestimmt wurden, beinhaltet.
  25. Verfahren nach Anspruch 21, wobei festgelegt wird, Inhalte der Speichereinheit nicht zu löschen, wenn der Gruppenversionswert in dem Speicher mit dem Zeilenversionswert in dem Speicher übereinstimmt.
  26. Verfahren nach Anspruch 18, wobei es sich bei der Zugriffsanforderung um eine Schreibanforderung handelt, aufweisend: Empfangen einer Schreibanforderung; Beibehalten des Gruppenversionswertes in dem Speicher; Kopieren des Gruppenversionswertes in dem Speicher in den Zeilenversionswert in dem Speicher; und Erfüllen der Schreibanforderung durch Schreiben von Inhalten der Speichereinheit.
  27. Verfahren nach Anspruch 18, ferner aufweisend das Anwenden einer Mehrheitswahlfunktion, wobei in drei oder mehr Speicherzellen gespeicherte logische Werte verglichen werden und der Gruppenversionswert beruhend darauf ermittelt wird, welcher logische Wert am häufigsten auftaucht.
DE112014000311.5T 2013-02-04 2014-01-30 Absichern der Inhalte einer Speichereinheit Active DE112014000311B4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/758,442 2013-02-04
US13/758,442 US9146882B2 (en) 2013-02-04 2013-02-04 Securing the contents of a memory device
US13/792,720 US9146883B2 (en) 2013-02-04 2013-03-11 Securing the contents of a memory device
US13/792,720 2013-03-11
PCT/US2014/013860 WO2014120929A1 (en) 2013-02-04 2014-01-30 Securing the contents of a memory device

Publications (2)

Publication Number Publication Date
DE112014000311T5 true DE112014000311T5 (de) 2015-09-10
DE112014000311B4 DE112014000311B4 (de) 2021-10-07

Family

ID=51260324

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014000311.5T Active DE112014000311B4 (de) 2013-02-04 2014-01-30 Absichern der Inhalte einer Speichereinheit

Country Status (5)

Country Link
US (2) US9146882B2 (de)
JP (1) JP6399523B2 (de)
CN (1) CN104969293B (de)
DE (1) DE112014000311B4 (de)
WO (1) WO2014120929A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014120215A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Adaptive granularity row-buffer cache
US9514789B2 (en) * 2013-06-27 2016-12-06 Steven Bress Systems and methods for safely moving short term memory devices while preserving, protecting and examining their digital data
EP2884417B1 (de) * 2013-12-10 2019-09-04 Wincor Nixdorf International GmbH Verfahren zur Abwehr von Cold-Boot Angriffen auf einen Computer in einem Selbstbedienungs-Terminal
US10186310B2 (en) * 2015-10-31 2019-01-22 Goran Krilic DIMM DRAM memory chips quick optical data erasure after power cycling
KR20180097218A (ko) * 2017-02-23 2018-08-31 에스케이하이닉스 주식회사 비휘발성 메모리 장치, 데이터 저장 장치 및 그것의 동작 방법
CN108830114B (zh) * 2018-05-23 2020-07-07 广东高云半导体科技股份有限公司 非易失性存储器的数据处理方法与装置、存储介质
US11600316B2 (en) 2020-05-28 2023-03-07 Rambus Inc. DRAM security erase
CN113948138A (zh) 2020-07-17 2022-01-18 西部数据技术公司 3d nand中出于数据安全目的的即时且永久的自毁方法
US20230061037A1 (en) * 2021-09-01 2023-03-02 Micron Technology, Inc. Apparatus with power-based data protection mechanism and methods for operating the same

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03235290A (ja) * 1990-02-09 1991-10-21 Mitsubishi Electric Corp 階層的な行選択線を有する半導体記憶装置
US5327383A (en) * 1992-04-21 1994-07-05 Intel Corporation Method and circuitry for erasing a nonvolatile semiconductor memory incorporating row redundancy
US6035401A (en) * 1997-02-03 2000-03-07 Intel Corporation Block locking apparatus for flash memory
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US6122639A (en) * 1997-12-23 2000-09-19 Cisco Technology, Inc. Network device information collection and change detection
WO1999063542A1 (en) * 1998-06-05 1999-12-09 Lockheed Martin Corporation Radiation hardened six transistor random access memory and memory device
US6529917B1 (en) * 2000-08-14 2003-03-04 Divine Technology Ventures System and method of synchronizing replicated data
US6834331B1 (en) * 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
JP2003203012A (ja) * 2001-10-30 2003-07-18 Matsushita Electric Ind Co Ltd マイクロコンピュータ装置
JP2004341768A (ja) * 2003-05-15 2004-12-02 Fujitsu Ltd 磁気ディスク装置、暗号処理方法及びプログラム
JP4228784B2 (ja) * 2003-05-30 2009-02-25 富士ゼロックス株式会社 画像処理装置、画像処理方法、画像処理プログラム
US7398390B2 (en) * 2003-08-08 2008-07-08 Hewlett-Packard Development Company, L.P. Method and system for securing a computer system
US6879518B1 (en) 2003-11-21 2005-04-12 Atmel Corporation Embedded memory with security row lock protection
JP2005209074A (ja) 2004-01-26 2005-08-04 Denso Corp 更新検出装置、及び更新検出プログラム
US7215135B2 (en) * 2004-12-02 2007-05-08 Honeywell International Inc. Single event upset hardened circuitry without sensitivity to overshoot and/or undershoot conditions
JP2007008020A (ja) 2005-06-30 2007-01-18 Toshiba Corp 記録媒体保持機構およびこの記録媒体保持機構を備えた画像形成装置
JP2007109148A (ja) 2005-10-17 2007-04-26 Hitachi Ulsi Systems Co Ltd 外部記憶装置
JP2007148644A (ja) 2005-11-25 2007-06-14 Sharp Corp データ記憶装置、icカード及びデータ記憶方法
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
JP2007188138A (ja) * 2006-01-11 2007-07-26 Toshiba Corp マイクロコンピュータおよびそのセキュリティ制御方法
JP4228395B2 (ja) * 2006-07-25 2009-02-25 セイコーエプソン株式会社 強誘電体メモリ装置、強誘電体メモリ装置の駆動方法、電子機器および電子機器の駆動方法
US7551470B2 (en) * 2006-10-19 2009-06-23 International Business Machines Corporation Non volatile memory RAD-hard (NVM-rh) system
JP5028967B2 (ja) 2006-11-15 2012-09-19 富士通セミコンダクター株式会社 半導体記憶装置および半導体記憶装置の制御方法
US20100115175A9 (en) 2006-12-18 2010-05-06 Zhiqing Zhuang Method of managing a large array of non-volatile memories
JP2008204582A (ja) * 2007-02-22 2008-09-04 Elpida Memory Inc 不揮発性ram
US20090144557A1 (en) 2007-07-26 2009-06-04 Hyblue, Inc. Recoverable secure data store system and method
JP5049733B2 (ja) 2007-10-17 2012-10-17 株式会社東芝 情報処理システム
KR100930074B1 (ko) 2007-11-20 2009-12-08 경북대학교 산학협력단 비휘발성 기능을 갖는 단일 트랜지스터 플로팅 바디dram 셀 소자
KR101638764B1 (ko) * 2008-12-19 2016-07-22 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 균일한 판독 대기시간을 위한 중복 데이터 저장
US8826035B2 (en) 2009-12-23 2014-09-02 Intel Corporation Cumulative integrity check value (ICV) processor based memory content protection
JP2011203927A (ja) 2010-03-25 2011-10-13 Panasonic Corp 情報処理装置
US20120151223A1 (en) 2010-09-20 2012-06-14 Conde Marques Ricardo Nuno De Pinho Coelho Method for securing a computing device with a trusted platform module-tpm
KR20130008300A (ko) * 2011-07-12 2013-01-22 삼성전자주식회사 오버 프로그램을 이용하여 소거 동작을 수행하는 플래시 메모리 장치 및 그 동작방법

Also Published As

Publication number Publication date
US9146883B2 (en) 2015-09-29
US9146882B2 (en) 2015-09-29
WO2014120929A1 (en) 2014-08-07
CN104969293B (zh) 2018-03-27
US20140223117A1 (en) 2014-08-07
CN104969293A (zh) 2015-10-07
US20140223120A1 (en) 2014-08-07
JP6399523B2 (ja) 2018-10-03
DE112014000311B4 (de) 2021-10-07
JP2016509731A (ja) 2016-03-31

Similar Documents

Publication Publication Date Title
DE112014000311T5 (de) Absichern der Inhalte einer Speichereinheit
DE102011085988B4 (de) Verfahren und Vorrichtungen zum Beeinflussen eines Betriebszustands eines Mehrfachpegelzelle-Speichers
DE60319407T2 (de) Verfolgen der am häufigsten gelöschten blöcke eines nichtflüchtigen speichersystems
DE69233228T2 (de) Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C. Speicherkarte mit solchem Datenverwaltungssystem
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE102007058418A1 (de) Fehlerkorrektur in Speicherbauteilen
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE102021115374A1 (de) Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus
DE602005003778T2 (de) Verfahren und Vorrichtung zum Wiederbeschreiben eines Sektors mit Bootloader-Software in einem sektor-löschbaren nichtflüchtigen Halbleiterspeicher
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE102015010906A1 (de) Verfahren und Einrichtung zum Erzeugen von Inhaltsleere über Mülldaten, wenn Verschlüsselungsparameter geändert werden
DE102018123961A1 (de) Gruppen-leseaktualisierung
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
DE102015209502A1 (de) Markierungsprogrammierung in nichtflüchtigen Speichern
DE102020200513A1 (de) Speichereinrichtung und verfahren zum betreiben derselben
DE102017120826A1 (de) Verfahren und Vorrichtung zum Überwachen von Speicher unter Verwendung einer Hintergrundmedienabtastung
DE102021006246A1 (de) Doppelt verschachtelte Programmierung einer Speichervorrichtung in einem Speicher-Untersystem
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
DE112020005001T5 (de) Qlc-programmierverfahren mit zurückspeichern von feindaten
DE1499742B2 (de) Verfahren und schaltungsanordnung zum schutz von speicherzellen gegen unerwuenschte zugriffe
DE102017124313A1 (de) Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs
DE60029270T2 (de) Dynamische Rekonfiguration des Cache-Speichers eines Mikrokontrollers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G11B0007260000

Ipc: G06F0012140000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final