DE102017124313B4 - Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs - Google Patents

Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs Download PDF

Info

Publication number
DE102017124313B4
DE102017124313B4 DE102017124313.5A DE102017124313A DE102017124313B4 DE 102017124313 B4 DE102017124313 B4 DE 102017124313B4 DE 102017124313 A DE102017124313 A DE 102017124313A DE 102017124313 B4 DE102017124313 B4 DE 102017124313B4
Authority
DE
Germany
Prior art keywords
memory cells
memory
group
access
word
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.)
Active
Application number
DE102017124313.5A
Other languages
English (en)
Other versions
DE102017124313A1 (de
Inventor
Joel Hatsch
Bernd Meyer
Jan Otterstedt
Steffen Sonnekalb
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102017124313.5A priority Critical patent/DE102017124313B4/de
Priority to US16/156,046 priority patent/US10628084B2/en
Priority to CN201811208846.9A priority patent/CN109686389B/zh
Publication of DE102017124313A1 publication Critical patent/DE102017124313A1/de
Application granted granted Critical
Publication of DE102017124313B4 publication Critical patent/DE102017124313B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors

Abstract

Speicheranordnung (300) aufweisend:
ein Speicherzellenfeld mit Spalten (302) und Zeilen (303) von beschreibbaren Speicherzellen (301);
eine Speichersteuereinrichtung (304), die eingerichtet ist,
einen Zugriff auf eine erste Gruppe von Speicherzellen (301) einer Zeile (303) von Speicherzellen (301) zu veranlassen; und
zusammen mit dem Zugriff auf die erste Gruppe von Speicherzellen (301) einen Lesezugriff auf eine zweite Gruppe von Speicherzellen (301) der Zeile (303) von Speicherzellen (301) zu veranlassen;
eine Verifizierungsschaltung (305), die eingerichtet ist, zu überprüfen, ob der Zugriff auf die erste Gruppe von Speicherzellen (301) auf die korrekte Zeile (303) von Speicherzellen (301) durchgeführt wurde, basierend darauf, ob bei dem Lesezugriff auf die zweiten Gruppe von Speicherzellen (301) gelesenen Werte mit zuvor von der zweiten Gruppe von Speicherzellen (301) gespeicherten Werten übereinstimmen.

Description

  • Ausführungsbeispiele betreffen allgemein eine Speicheranordnung und ein Verfahren zum Verifizieren eines Speicherzugriffs.
  • Elektronische Geräte müssen in einer Vielzahl von Anwendungen gegen Angriffe geschützt sein. Typische Beispiele sind Sicherheits-ICs, Hardware Roots of Trust (z.B. Trusted Platform Module), Chipkarten, die geheime Daten (z.B. Schlüssel oder Passwörter) oder Daten, die vor Manipulation geschützt werden sollen (z.B. Guthaben auf einer Guthabenkarte), verarbeiten und speichern oder auch Steuergeräte, beispielsweise in einem Fahrzeug, deren korrekte Funktion wichtig für die Sicherheit eines Benutzers ist. Ein möglicher Angriffspunkt eines elektronischen Geräts ist sein Speicher, durch dessen Manipulation ein Angreifer geheime Daten in Erfahrung bringen oder die korrekte Funktion des elektronischen Geräts beeinträchtigen kann. Deshalb sind effiziente Mechanismen zum Schutz von elektronischen Speichern wünschenswert.
  • Es wird auf die Druckschriften US20050237814A1 und US20120311396A1 verwiesen.
  • Gemäß einer Ausführungsform wird eine Speicheranordnung bereitgestellt, die ein Speicherzellenfeld mit Spalten und Zeilen von beschreibbaren Speicherzellen, eine Speichersteuereinrichtung, die eingerichtet ist, einen Zugriff auf eine erste Gruppe von Speicherzellen einer Zeile von Speicherzellen zu veranlassen und zusammen mit dem Zugriff auf die erste Gruppe von Speicherzellen einen Lesezugriff auf eine zweite Gruppe von Speicherzellen der Zeile von Speicherzellen zu veranlassen, und eine Verifizierungsschaltung aufweist, die eingerichtet ist, zu überprüfen, ob der Zugriff auf die erste Gruppe von Speicherzellen auf die korrekte Zeile von Speicherzellen durchgeführt wurde, basierend darauf, ob bei dem Lesezugriff auf die zweiten Gruppe von Speicherzellen gelesenen Werte mit zuvor von der zweiten Gruppe von Speicherzellen gespeicherten Werten übereinstimmen.
  • Gemäß einer weiteren Ausführungsform wird ein Verfahren zum Verifizieren eines Speicherzugriffs gemäß der oben beschriebenen Speicheranordnung bereitgestellt.
  • Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
    • 1 zeigt ein Speicherzellenfeld.
    • 2 zeigt eine Speicheranordnung gemäß einer Ausführungsform.
    • 3 zeigt eine Speicheranordnung gemäß einer Ausführungsform.
    • 4 zeigt ein Flussdiagramm, das ein Verfahren zum Verifizieren eines Speicherzugriffs veranschaulicht.
  • Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen. Im Rahmen dieser Beschreibung werden die Begriffe „verbunden“, „angeschlossen“ sowie „gekoppelt“ verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung.
  • Elektronische Speicher weisen typischerweise ein Gitter (zweidimensionales Feld oder Array oder Matrix) von Speicherzellen auf, wobei die Zeilen durch Wortleitungen und die Spalten durch Bitleitungen adressiert werden.
  • 1 zeigt ein Speicherzellenfeld 100.
  • Das Speicherzellenfeld weist eine Vielzahl von Speicherzellen 101 auf, die in Form einer Matrix mit Spalten 102 von Speicherzellen und Zeilen 103 von Speicherzellen angeordnet sind.
  • Jeder Spalte 102 von Speicherzellen ist eine Bitleitung 104 zugeordnet und jeder Zeile 103 von Speicherzellen ist eine Wortleitung 105 zugeordnet.
  • Durch Aktivierung einer Wortleitung 105 können alle (oder ein Teil der) Speicherzellen der über diese Wortleitung adressierten Zeile 103 (d.h. der dieser Wortleitung zugeordneten Zeile 103) mittels der Bitleitungen 104 gleichzeitig ausgelesen oder geschrieben werden.
  • Die kleinste, einzeln adressierbare Menge von Speicherzellen 101 einer Zeile 103 (und damit einer Wortleitung 105) bildet ein Speicherwort. Die Länge eines Speicherworts entspricht üblicherweise der Breite eines an den Speicher angeschlossenen Datenbusses, z.B. 8 bit, also z.B. acht Speicherzellen.
  • Weil Felder (Arrays) aus Speicherzellen einerseits durch ihre Größe sehr leicht im Layout einer integrierten Schaltung erkennbar und andererseits durch ihren regelmäßigen regulären Aufbau leicht analysierbar und manipulierbar sind, ist es für integrierte Schaltungen für Sicherheitsanwendungen (Security-Anwendungen) erforderlich, im Betrieb verifizieren zu können, dass Daten in die richtigen, adressierten Speicherzellen geschrieben werden und dass sich der Zustand der Speicherzellen auch tatsächlich geändert hat.
  • Das einfache Zurücklesen geschriebener Daten kann bestimmte sporadische Fehler eines Speicherzellenfelds erkennen. Diese Herangehensweise ist aber weder in der Lage, persistente Fehler der Schaltung noch aktive Angriffe (zum Beispiel durch einen Forcing-Angriff mittels Probing-Nadeln oder durch einen Laser) sicher zu erkennen.
  • Für Safety-Anwendungen (zum Beispiel im Automotive-Bereich) können Speicherzellenfelder mit Codierungen der Adressen der Wortleitungen erweitert werden, um sporadische transiente Fehladressierungen von Wortleitungen oder permanente Defekte im Speicherzellenfeld erkennen zu können. Dazu können vorberechnete Bitmuster permanent in das Speicherzellenfeld eingefügt werden. Das kann beispielsweise durch Techniken wie Einfügen von ROM-Zellen oder durch geeignete Veränderung der verwendeten Speicherzellen erfolgen (beispielsweise fehlende Kontakte oder fehlende Transistoren einzelner Speicherzellen). Diese Techniken ermöglichen zwar das Erkennen von Fehlfunktionen mit einer vorgegebenen Redundanz, sind aber typischerweise nicht dazu geeignet, Schutz vor aktiven Angriffen zu bieten. Außerdem sind die typischerweise aus Effizienzgründen dafür verwendeten linearen Codes nicht mit den bitweisen logischen UND oder logischen ODER Verknüpfungen durch mehrere aktivierte Wortleitungen verträglich. Lineare Codes sind üblicherweise als Vektorräume über einem endlichen Körper definiert und behalten ihre Eigenschaften nur bezüglich der Verknüpfungsabbildungen in diesem Vektorraum. Ein invasiver Angreifer kann diese Unverträglichkeit der Verknüpfungsabbildungen in den Teilen des Zellenfeldes, welche die Adressen der Wortleitungen codieren, gezielt ausnutzen, um die fehlererkennenden Eigenschaften des verwendeten Codes durch gleichzeitiges Aktivieren mehrerer Wortleitungen zu umgehen. Wenn die ausgelesenen Daten keine weiteren redundanten Informationen zur Überprüfung ihrer Gültigkeit enthalten, ist ein solcher Angriff nicht erkennbar.
  • Um für Security-Anwendungen ein ausreichend hohes Schutzniveau erreichen zu können, ist außerdem ein kleinteiliges Verschachteln (Interleaving) zwischen den zusätzlichen ROM-Zellen und den Speicherzellen wünschenswert. Auf diese Weise kann erreicht werden, dass ein potentieller Angreifer viele Stellen des Zellenfeldes manipulieren muss (zum Beispiel durch Nadeln oder Laser), um mit einem Angriff erfolgreich zu sein. Wenn die ROM-Zellen einfach an ein Ende einer Speicherzellenzeile angefügt werden, gibt es nur eine Stelle der betroffenen Wortleitung, die für einen Angriff manipuliert werden muss (nämlich am Übergang zwischen RAM-Zellen zu ROM-Zellen). Ein häufiger Wechsel zwischen RAM- und ROM-Zellen verursacht aber einen erheblichen zusätzlichen Flächenaufwand, weil in den Full-Custom-Macros für das Speicherzellenfeld typischerweise Mindestabstände zwischen den verschiedenen Zelltypen eingehalten werden müssen oder auch Schutz-Strukturen (engl. guard structures) vorgesehen werden müssen.
  • Im Folgenden werden einfache und effiziente Herangehensweisen zur verifizierbaren Modifikation von Speicherwörtern für Security- und Safety-Anwendungen beschrieben, die beispielsweise zur Implementierung eines Schutzmechanismus zur Absicherung eines elektronischen Speichers wie beispielsweise eines RAM (Random Access Memory)-Speichers, eines RRAM (Resistive RAM)-Speichers, eines FeRAM (Ferroelectric RAM)-Speichers oder eines Speichers von einem anderen Typ in einer elektronischen integrierten Schaltung, beispielsweise einer Chipkarte (mit beliebigem Formfaktor), einem Steuergerät (z.B. verbunden mit einem Mikrocontroller), z.B. in einem Fahrzeug etc. verwendet werden können.
  • Gemäß einer Ausführungsform ermöglicht die Hardware einer Speichersteuereinrichtung (z.B. eines RAM-Controllers), dass nur ein Teil der Speicherzellen eines Speicherworts geschrieben und dadurch modifiziert wird (im Folgenden als „Teilweises Schreiben“ oder engl. „Partial Write“ bezeichnet). Ein Speicherwort entspricht beispielsweise einem Teil der Speicherzellen einer Speicherzellenzeile 103. Ein typisches Beispiel ist ein 32-Bit-Speicher mit einer Wortlänge (und z.B. entsprechender Breite des Datenbusses, mit dem der Speicher verbunden ist) von 8 Bit, so dass jede Speicherzellenzeile 103 vier Worte speichert. Dabei sind die Bits typischerweise derart angeordnet, dass die ersten vier Speicherzellen 101 der Speicherzellenzeile 103 das erste Bit des ersten, des zweiten, des dritten und des vierten Worts speichern, die zweiten vier Speicherzellen 101 der Speicherzellenzeile 103 das zweite Bit des ersten, des zweiten, des dritten und des vierten Worts speichern usw. Dadurch kann die Verdrahtung verhältnismäßig gering gehalten werden. Der Zugriff auf die einzelnen Worten erfolgt typischerweise über Multiplexer 204, 205 beim Lesen bzw. Demultiplexer beim Schreiben. Dies ist in 2 dargestellt.
  • 2 zeigt eine Speicheranordnung 200 gemäß einer Ausführungsform.
  • Die Speicheranordnung 200 weist ein Speicherzellenfeld mit einer Vielzahl von Speicherzellen 201 auf, die in Form einer Matrix mit Spalten 202 von Speicherzellen und Zeilen 203 von Speicherzellen angeordnet sind, wie es mit Bezug auf 1 beschrieben ist.
  • Jeder Zeile 203 von Speicherzellen ist eine Wortleitung zugeordnet, die mit den Speicherzellen der Zeile verbunden ist.
  • Jeder Spalte 202 von Speicherzellen sind eine erste Bitleitung und eine zweite Bitleitung (komplementäre Bitleitung) zugeordnet, die mit den Speicherzellen der Spalte verbunden sind.
  • Das Speicherzellenfeld speichert in jeder Zeile 203 vier Worte (Wort 0 bis Wort 3), wobei in 2 die Speicherzellen dargestellt sind, die das i-te Bit der vier Worte und das i+1-te Bit der vier Worte speichern. Die Bits der Worte sind dabei derart auf die Zeile 203 verteilt, dass die acht in 2 dargestellten Speicherzellen einer Zeile von links nach rechts speichern: i-tes Bit Wort 0, i-tes Bit Wort 1, i-tes Bit Wort 2, i-tes Bit Wort 3, i+1-tes Bit Wort 0, i+1-tes Bit Wort 1, i+1-tes Bit Wort 2, i+1-tes Bit Wort 3.
  • Für das i-te Bit der Worte ist ein erster MUX/DEMUX (Multiplexer/Demultiplexer) 204 vorgesehen und für das i+1-te Bit der Worte ist ein zweiter MUX/DEMUX 205 vorgesehen.
  • Der erste MUX/DEMUX 204 ist mit den Bitleitungen verbunden, die mit den Speicherzellen verbunden sind, die das i-te Bit eines der Speicherworte speichern und der zweite MUX/DEMUX 205 ist mit den Bitleitungen verbunden, die mit den Speicherzellen verbunden sind, die das i+1-te Bit eines der Speicherworte speichern.
  • Beide MUX/DEMUX 204, 205 können als Multiplexer oder Demultiplexer arbeiten und weisen jeweils einen Dateneingang zum Empfangen eines zu speichernden Bits und einen Datenausgang zum Ausgeben eines gelesenen Bits auf. Außerdem weisen beide MUX/DEMUX 204, 205 jeweils einen Eingang zum Auswählen des Worts auf, das in der adressierten Zeile 203 gelesen oder geschrieben werden soll.
  • Eine Steuereinrichtung 207 steuert Zugriffe auf den Speicher durch geeignete Ansteuerung der Wortleitungen und der MUX/DEMUX 204, 205. Gemäß einem Ausführungsbeispiel unterstützt die Steuereinrichtung 207 insbesondere einen Partial-Write-Zugriff, d.h. einen Schreibezugriff auf ein Speicherwort, das einen Teil des Speicherworts unverändert lässt (z.B. nur Bit i beschreibt aber Bit i+1 unverändert lässt).
  • Die Speicheranordnung 200 ist beispielsweise Teil eines RAM-Speichers. Entsprechend sind die Speicherzellen 201 beispielsweise RAM-Speicherzellen und die Speichersteuereinrichtung 207 ist beispielsweise ein RAM-Controller.
  • Die Inhalte der bei einem Partial-Write-Zugriff nicht modifizierten Speicherzellen 201 eines Speicherworts werden gemäß einer Ausführungsform als Referenzmuster (Referenzdaten oder Referenzwerte) verwendet, um sicherzustellen, dass der Zustand des korrekten Speicherwortes (d.h. mit der korrekten Adresse) geändert wurde.
  • Beispielsweise weist die Speicheranordnung 200 eine Detektionsschaltung 206 (allgemein eine Prüfinstanz) auf, die das Referenzmuster kennt. Das Referenzmuster besteht aus den Inhalten von bei dem Partial-Write-Zugriff nicht-modifizierten Speicherzellen eines Speicherworts. Der Inhalt jeder solchen nicht-modifizierten Speicherzelle wird im Folgenden auch als Referenzwert bezeichnet.
  • Die Detektionsschaltung 206 empfängt die Inhalte von Speicherzellen des Speicherworts, die bei dem Partial-Write-Zugriff nicht geschrieben wurden (und korrekterweise das Referenzmuster speichern müssten) und die bei dem Partial-Write-Zugriff geänderten Daten des Speicherworts. Dabei werden die Inhalte der bei dem Partial-Write-Zugriff nicht geschriebenen Speicherzellen des Speicherworts und die Inhalte der bei dem Partial-Write-Zugriff geänderten Speicherzellen des Speicherworts durch einen Lesezugriff auf das Speicher-Array gemeinsam ausgelesen. Beispielsweise kann die Detektionsschaltung 206 bei der Speichersteuereinrichtung 207 einen entsprechenden Lesezugriff anfordern. Es kann aus Effizienzgründen auch auf Rücklesen (Reread) von geschriebenen Werten verzichtet und statt dessen ein Schreibzugriff durchgeführt werden. Bei dem Schreibzugriff werden implizit die nichtgeschriebenen Werte ausgelesen und mit einem a priori bekannten Referenzmuster (z.B. aus einem früheren Lesezugriff) verglichen. In diesem Fall bleibt die Prüfung auf die nichtgeschriebenen Stellen beschränkt.
  • Jede Abweichung des ausgelesenen Zustands vom erwarteten Zustand wird von der Detektionsschaltung 206 als Angriff bzw. Fehlfunktion (bei einer Safety-Anwendung) gewertet. Beispielsweise vergleicht die Detektionsschaltung 206 den Inhalt der bei dem Partial-Write-Zugriff nicht beschriebenen Speicherzellen mit dem Referenzmuster und gibt ein Alarmsignal aus, wenn diese nicht übereinstimmen. Außerdem kann in einer Ausführungsform, in der ein Rücklesen durchgeführt wird, die Detektionsschaltung 206 den gelesen Inhalt, der bei dem Lesezugriff auf die beschriebenen Speicherzellen gelesenen wurde, mit den geschriebenen Werten vergleichen, um sicherzustellen, dass der Lesezugriff auf die korrekte Speicherzeile durchgeführt wurde.
  • Gemäß einer Ausführungsform werden somit bereits vorhandene Speicherinhalte als Referenzmuster zur Verifikation (d.h. zur Überprüfung, ob ein Schreibvorgang korrekt ausgeführt wurde) verwendet. Insbesondere müssen keine zusätzlichen Speicherzellen zur Speicherung von Referenzwerten vorgesehen werden. Dies ermöglicht eine flächengünstige Realisierung.
  • Beispielsweise können verschlüsselte Speicherinhalte als Referenzmuster verwendet werden. Durch die statistischen Eigenschaften einer typischen Speicherverschlüsselung sind die in diesem Fall als Referenzmuster verwendeten Ciphertexte im Allgemeinen zufällig und gleichverteilt und nur schwer vorhersagbar. Dadurch ergibt sich eine hohe Wahrscheinlichkeit, dass durch einen Angreifer durchgeführte Manipulationen erkannt werden können. Außerdem wird die Reproduzierbarkeit von Angriffen erschwert.
  • Gemäß einer Ausführungsform wird nur eine Sorte von Speicherzellen verwendet. Das heißt, dass die Speicherzellen, die jeweils einen Referenzwert (und somit zusammen das Referenzmuster) speichern und die Speicherzellen, die bei dem Partial-Write-Zugriff beschrieben werden, vom selben Typ sind. Beispielsweise sind alle der Speicherzellen flüchtige Speicherzellen (und nicht etwa ein Teil RAM-Speicherzellen und die anderen ROM-Speicherzellen). Zum Beispiel sind alle Speicherzellen RAM-Speicherzellen und können auch alle vom selben RAM-Typ sein, z.B. sind alle Speicherzellen SRAM-Speicherzellen oder alle Speicherzellen sind DRAM-Speicherzellen oder alle Speicherzellen sind RRAM-Speicherzellen oder alle Speicherzellen sind FeRAM-Speicherzellen.
  • Die Speicherzellen sind beispielsweise alle derart von demselben Typ, dass zwischen einer Speicherzelle, die bei dem Partial-Write-Zugriff beschrieben wird und einer Speicherzelle, die einen Referenzwert speichert, kein besonderer Abstand eingehalten werden muss, d.h. kein größerer Abstand erforderlich ist als zwischen zwei Speicherzellen, die bei dem Partial-Write-Zugriff beschrieben werden oder als zwischen zwei Speicherzellen, die Referenzwerte speichern.
  • Dadurch kann ein hoher Grad von Verschachtelung (engl. Interleaving) von beim Partial-Write-Zugriff nicht geschriebenen Speicherzellen und beim Partial-Write-Zugriff geschriebenen Speicherzellen erreicht werden, ohne einen kostspieligen Flächennachteil durch eventuelle Abstände oder Schutz-Strukturen (engl. guard structures) zwischen verschiedenen Speicherzelltypen in Kauf nehmen zu müssen. Durch einen hohen Grad von Verschachtelung können Angriffe, die auf gezielter invasiver Manipulation einer Wortleitung basieren, deutlich erschwert werden.
  • Die Speicheranordnung 200 (und insbesondere die Speichersteuereinrichtung 207) kann es ermöglichen, gleichzeitig eine Gruppe von Speicherzellen einer Speicherzellenzeile 203 zu lesen und gleichzeitig eine andere Gruppe der Speicherzellenzeile 203 zu schreiben. In einer solchen Ausführungsform kann bei geeigneter Wahl der Referenzwerte (Prüfbits) ein separater Lesezugriff (Reread-Schritt) zum Auslesen eines modifizierten Speicherworts entfallen: In einem einzigen Partial-Write-Zugriff werden die zu modifizierenden Speicherzellen des Speicherworts geschrieben und die Speicherzellen, die die Referenzwerte speichern, gelesen. Anschließend kann die Detektionsschaltung 206 die korrekte Durchführung des Schreibvorganges direkt verifizieren (durch Vergleich des bekannten erwarteten Referenzmusters mit dem gelesenen Referenzmuster).
  • Gemäß verschiedenen Ausführungsformen wird der Partial-Write-Zugriff derart implementiert, dass auf die bei dem Partial-Write-Zugriff nicht zu modifizierenden Speicherzellen kein Schreibvorgang ausgeführt wird. Beispielsweise wird eine Implementierung vermieden, bei der, wie bei einem Lese-Ändern-Schreiben-Zugriff (engl. Read-Modify-Write) üblich, alle Speicherzellen des betroffenen Wortes geschrieben werden, wobei Teile, die sich nicht ändern sollen, vorher ausgelesen werden und identisch wieder geschrieben werden, da eine solche Implementierung den Schreibvorgang und das Lesen der Referenzwerte in zwei Speicherzugriffe trennt. Eine solche Trennung würde es nämlich ermöglichen, dass der Lesevorgang und der Schreibvorgang durch einen invasiven Angriff auf verschiedene Speicherwörter abgebildet werden (beispielsweise durch Manipulation der verwendeten Adressen) und dann nicht mehr sichergestellt werden könnte, dass das gelesene Speicherwort auch das geschriebene Speicherwort ist.
  • Eine mögliche Anwendung einer Kombination eines Partial-Write-Zugriffs (auf einen Teil eines Speicherworts) mit (gleichzeitigem oder anschließendem) Lesezugriff auf (mindestens) einen anderen Teil des Speicherworts ist der Fall, wenn zwei Teilwörter A und B eines Speicherworts beschrieben werden sollen. Dann kann der aktuelle Wert des Teilworts B (vor dem Schreiben) bei der Änderung des Teilworts A als Referenzwert zur Überprüfung des korrekten Schreibvorganges verwendet werden und umgekehrt. Dazu werden Speicherzellen der Teilwörter A und B beispielsweise auf geeignete Weise verschachtelt, damit einerseits ein Partial-Write-Zugriff auf die beiden Speicherwörter möglich ist und andererseits in einem einzigen Speicherzugriff modifizierte Speicherzellen und unveränderte Prüfzellen gemeinsam ausgelesen werden können. In dem Beispiel von 2 könnte beispielsweise Bit i von einem der vier Worte Teil des ersten Teilworts A sein und Bit i+1 des Worts könnte Teil des zweiten Teilworts B sein.
  • In einem weiteren Ausführungsbeispiel werden die Inhalte der beim Partial-Write-Zugriff nicht beschriebenen Speicherzellen und der beim Partial-Write-Zugriff beschriebenen Speicherzellen, welche zu mehreren verschiedenen Speicherwörtern einer Speicherzellenzeile gehören können, in komprimierter Form an die Prüfinstanz übertragen. Das kann beispielsweise dadurch erreicht werden, dass die Inhalte der betroffenen Speicherwörter durch eine geeignete Funktionsabbildung auf ein einzelnes Wort reduziert werden und nur das Ergebnis der Funktionsauswertung an die Prüfinstanz gesendet wird. Dabei kann die Berechnung der Funktionsabbildung durch die Hardware des RAM-Controllers ausgeführt werden. Die zu berechnende Funktion kann derart gewählt werden, dass sie bestimmte geeignete Eigenschaften hat: Zum Beispiel wird sie derart gewählt, dass das Ergebnis der Funktionsauswertung von allen für die Prüfung relevanten Speicherzellen (beim Partial-Write-Zugriff beschriebene und beim Partial-Write-Zugriff nicht beschriebene Speicherzellen) abhängt und derart, dass die Funktionsabbildung die Redundanz der Fehlererkennung durch die Prüfinstanz nicht unter ein geforderte Minimum der Integritätsschutzmaßnahme absenkt.
  • In einem Ausführungsbeispiel werden eindeutige Referenzdaten zur Verwendung als Referenzwerte durch eine geeignete Initialisierung vorab in die Speicherzellen geschrieben. Dabei können im Anschluss an die Initialisierung die geschriebenen Referenzdaten einmal vollständig gelesen und geprüft werden, um sicherzustellen, dass alle geschriebenen Referenzdaten unterschiedlich sind und nicht etwa ein Angreifer während der Initialisierung Kopien von Einträgen erstellt hat.
  • In einem Ausführungsbeispiel wird die oben beschriebene Vorgehensweise zur Implementierung eines Zerstörendes-Lesen-(Destructive Read)-Mechanismus verwendet: Beim zerstörenden Lesen eines RAMs wird ein Datenblock aus dem RAM in einen Cache transferiert und der Datenblock wird dabei im RAM in einen ungültigen Zustand versetzt. Auf diese Weise wird erreicht, dass keine impliziten Kopien von Datenblöcken angelegt werden, welche später eventuell für Angriffe in Replay-Attacken missbraucht werden können. Ein Datenblock ist dabei ein logisch zusammenhängender Bereich von möglicherweise mehreren Speicherwörtern, deren Integrität mittels zusätzlicher Redundanzinformationen gegen Manipulationen geschützt ist. Zerstörendes Lesen kann beispielsweise dadurch implementiert werden, dass der RAM-Controller die Redundanzinformationen des Datenblocks während des Lesens der Daten des Datenblocks in den Cache (Data-Fetch) auf verifizierbare Weise durch einen Partial-Write-Zugriff verändert. Der Cache kann parallel aus den eingelagerten Datenwörtern des Datenblocks die Redundanzinformation erneut berechnen, ebenfalls die Änderungen durch den Partial-Write anwenden und diesen erwarteten Wert mit der aus dem RAM gelesenen transformierten Redundanzinformation vergleichen. Stimmen beide Versionen der transformierten Redundanzinformation überein, so ist damit verifiziert, dass die Kopie des Datenblocks im RAM auf korrekte Weise in einen ungültigen Zustand versetzt wurde. Der Partial-Write-Mechanismus stellt dabei sicher, dass der richtige Datenblock im RAM in einen ungültigen Zustand verändert wurde.
  • Ein Partial-Write-Zugriff kann beispielsweise mittels Vorladen (Precharging) der Bitleitungen implementiert werden. Beim Lesen von Daten aus den Speicherzellen werden die Bitleitungen durch Precharging auf einen undefinierten Wert (z.B. weder 0 noch 1) gebracht. Wird nun eine Wortleitung aktiviert und damit beispielsweise die Transistoren, welche die Speicherzellen der zugehörigen Zeile mit den Bitleitungen verbinden, geöffnet, so bestimmt der aktuelle Wert der Speicherzellen den Wert auf den Bitleitungen. Haben die Bitleitungen bereits einen festen logischen Wert und wird kein Precharging durchgeführt, so wird der aktuelle Wert der Bitleitungen nach dem Öffnen der Transistoren der Wortleitung durch die Speicherzelle übernommen und die Speicherzelle wird beschrieben.
  • Ein Partial-Write-Zugriff kann nun folgendermaßen implementiert werden: Bei Speicherzellen, die gelesen werden sollen, wird ein Precharging der Bitleitungen durchgeführt. Bei Zellen, die geschrieben werden sollen, werden die Bitleitungen auf den zu schreibenden Wert gesetzt. Werden nun die Transistoren, welche die Speicherzellen mit den Bitleitungen verbinden, geöffnet so werden in Abhängigkeit davon, ob die jeweiligen Bitleitungen vorgeladen sind oder auf einem festen zu schreibenden Wert gesetzt sind, simultan Speicherzellen ausgelesen und geschrieben. Dies kann als selektives Precharging angesehen werden.
  • Vor der Durchführung des Schreibvorgangs bei einem Partial-Write-Zugriff kann außerdem der vorherige Wert der implizit zu lesenden Bits auf den Bitleitungen invertiert werden. Auf diese Weise kann vermieden werden, dass eventuell noch in den Bitleitungen gespeicherte Werte aus einem vorherigen Lesezugriff durch einen Angriff auf den Precharging-Schritt (Unterdrücken des Vorladens der implizit zu lesenden Bitleitungen) als neue Werte für einen Schreibvorgang auf eine andere (falsche) Adresse verwendet werden können. Ein solcher Angriff würde den impliziten Lesezugriff bei einem Partial-Write unterdrücken und in einen Schreibzugriff umwandeln.
  • Zusammenfassend wird gemäß verschiedenen Ausführungsformen eine Speicheranordnung bereitgestellt, wie Sie in 3 dargestellt ist.
  • 3 zeigt eine Speicheranordnung 300 gemäß einer Ausführungsform.
  • Die Speicheranordnung 300 weist ein Speicherzellenfeld mit Spalten 302 und Zeilen 303 von beschreibbaren Speicherzellen 301 auf.
  • Die Speicheranordnung 300 weist ferner eine Speichersteuereinrichtung 304 auf, die eingerichtet ist, einen Zugriff auf eine erste Gruppe von Speicherzellen 301 einer Zeile 303 von Speicherzellen zu veranlassen und zusammen mit dem Zugriff auf die erste Gruppe von Speicherzellen 301 einen Lesezugriff auf eine zweite Gruppe von Speicherzellen 301 der Zeile 303 von Speicherzellen zu veranlassen.
  • Die Speicheranordnung 300 weist ferner eine Verifizierungsschaltung 305 auf, die eingerichtet ist, zu überprüfen, ob der Zugriff auf die erste Gruppe von Speicherzellen 301 auf die korrekte Zeile 303 von Speicherzellen durchgeführt wurde, basierend darauf, ob bei dem Lesezugriff auf die zweiten Gruppe von Speicherzellen 301 gelesenen Werte mit zuvor von der zweiten Gruppe von Speicherzellen 301 gespeicherten Werten übereinstimmen.
  • Gemäß einer Ausführungsform werden gleichzeitig mit dem Schreiben oder Lesen von ersten Speicherzellen einer Zeile zweite Speicherzellen der Zeile ausgelesen und die ausgelesenen Inhalte mit erwarteten Inhalten der zweiten Speicherzellen verglichen, um zu überprüfen, ob die Zugriffe auf die ersten Speicherzellen und zweiten Speicherzellen auf die korrekte Zeile durchgeführt wurden.
  • Die Verifizierungsschaltung kann ihrerseits die von den Speicherzellen 301 gespeicherten Werte als Referenz speichern, beispielsweise wenn diese als Referenz in die zweiten Speicherzellen geschrieben werden, damit sie im Anschluss die gelesenen Werte mit der Referenz vergleich kann.
  • Das Veranlassen eines Zugriffs weist beispielsweise das Erzeugen und Senden eines Aktivierungssignals für eine jeweilige Wortleitung, das Erzeugen und Senden eines Vorladesignals und oder das Erzeugen und Senden eines Ansteuersignals für ein oder mehrere Multiplexer/Demultiplexer (MUX/DEMUX) auf. Das Veranlassen eines Zugriffs auf eine Speicherzellenzeile muss nicht notwendigerweise das Durchführen des Zugriffs auf die Speicherzellenzeile zur Folge haben, weil, z.B. aufgrund eines Angriffs, beispielsweise die falsche Wortleitung aktiviert wurde. Deshalb kann das Überprüfen der Verifizierungsschaltung als Überprüfung angesehen werden, ob ein Zugriff derart durchgeführt wurde, wie er veranlasst wurde.
  • Gemäß verschiedenen Ausführungsformen wird ein Prüfverfahren durchgeführt, das auf einer Kombination von einem Partial-Write-Zugriff und einem Lesezugriff auf von dem Partial-Write-Zugriff unverändert gelassenen Bits basiert. Der Lesezugriff kann Teil eines Reread-Zugriffs auf bei dem Partial-Write-Zugriff geschriebenen Bits (und auf die von dem Partial-Write-Zugriff unverändert gelassenen Bits) sein. Die von dem Partial-Write-Zugriff unverändert gelassenen Bits werden als Referenzmuster zur impliziten Verifikation des Schreibvorganges und der Adresse des geschriebenen Speicherworts verwendet.
  • Dazu muss der Prüfinstanz (d.h. der Verifizierungsschaltung 305 in dem Beispiel von 3) das Referenzmuster bekannt sein. Beim Partial-Write-Zugriff geänderte und beim Partial-Write-Zugriff unverändert gelassene Speicherzellen werden beispielsweise bei einem Reread-Zugriff gleichzeitig mittels eines einzelnen Speicherzugriffs gelesen. Wenn beim Partial-Write-Zugriff geänderte und beim Partial-Write-Zugriff unverändert gelassene Speicherzellen getrennt ausgelesen werden, ist zwischenzeitlich wieder ein Angriff auf die jeweilige Adresse der dabei ausgelesenen Speicherzellen möglich.
  • Durch kleinteiliges Verschachteln (Interleaving) von beim Partial-Write-Zugriff geänderten und beim Partial-Write-Zugriff unverändert gelassenen Speicherzellen entlang der Zeile von Speicherzellen kann ein Angriff basierend auf einem invasiven Angriff auf die Wortleitungen der Speicherzellenanordnung deutlich erschwert werden.
  • Gemäß einer Ausführungsform ist der Zugriff auf die erste Gruppe von Speicherzellen ein Lesezugriff. Beispielsweise kann die Speichersteuereinrichtung eingerichtet sein, vor dem Lesezugriff auf die erste Gruppe von Speicherzellen einen Schreibzugriff auf die erste Gruppe von Speicherzellen durchzuführen, d.h. der Zugriff auf die erste Gruppe von Speicherzellen kann ein Rücklesen (Reread) von zuvor geschriebenen Daten sein. Die Verifizierungsschaltung kann eingerichtet sein, zu überprüfen, ob der Schreibzugriff auf die erste Gruppe von Speicherzellen auf die korrekte Zeile von Speicherzellen durchgeführt wurde, zusätzlich basierend darauf, ob bei dem Lesezugriff auf die erste Gruppe von Speicherzellen gelesenen Werte mit den bei dem Schreibzugriff geschriebenen Werten übereinstimmen.
  • Die Speichersteuereinrichtung kann als Referenz oder Referenzmuster die zweite Gruppe von Speicherzellen mit einem die zweite Gruppe von Speicherzellen identifizierenden Muster vorinitialisieren, z.B. mit der Speicheradresse selbst, eventuell verbunden mit einem anschließendem Rücklesen aller Initialisierungswerte, um später beim Lesen wie auch Schreiben (mittels teilweisem Schreiben) die korrekte Speicherposition verifizieren zu können.
  • 4 zeigt ein Flussdiagramm 400, das ein Verfahren zum Verifizieren eines Speicherzugriffs veranschaulicht.
  • In 401 wird ein Zugriff auf eine erste Gruppe von Speicherzellen einer Zeile von Speicherzellen eines Speicherzellenfelds veranlasst.
  • In 402 wird zusammen mit dem Zugriff auf die erste Gruppe von Speicherzellen ein Lesezugriff auf eine zweite Gruppe von Speicherzellen der Zeile von Speicherzellen veranlasst.
  • In 403 wird überprüft, ob der Zugriff auf die erste Gruppe von Speicherzellen auf die korrekte Zeile von Speicherzellen durchgeführt wurde, basierend darauf, ob bei dem Lesezugriff auf die zweiten Gruppe von Speicherzellen gelesenen Werte mit zuvor von der zweiten Gruppe von Speicherzellen gespeicherten Werten übereinstimmen.
  • Im Folgenden werden zusammenfassend einige Ausführungsbeispiele angegeben.
    • Ausführungsbeispiel 1 ist eine Speicheranordnung, wie sie in 3 dargestellt ist.
    • Ausführungsbeispiel 2 ist eine Speicheranordnung gemäß Ausführungsbeispiel 1, wobei der Zugriff auf die erste Gruppe von Speicherzellen ein Schreibzugriff ist.
    • Ausführungsbeispiel 3 ist eine Speicheranordnung gemäß Ausführungsbeispiel 1, wobei die erste Gruppe von Speicherzellen und die zweite Gruppe von Speicherzellen Teil eines Speicherworts des Speicherzellenfeldes sind.
    • Ausführungsbeispiel 4 ist eine Speicheranordnung gemäß Ausführungsbeispiel 3, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen ein Teilweises-Schreiben-Zugriff auf das Speicherwort ist.
    • Ausführungsbeispiel 5 ist eine Speicheranordnung gemäß Ausführungsbeispiel 3 oder 4, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen ein Invalidieren des Speicherworts ist.
    • Ausführungsbeispiel 6 ist eine Speicheranordnung gemäß Ausführungsbeispiel 5, wobei das Speicherwort eine Redundanzinformation aufweist und das Invalidieren eine Modifikation des Speicherworts aufweist, sodass die Redundanzinfo für das Speicherwort ungültig ist.
    • Ausführungsbeispiel 7 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 3 bis 6, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen ein Invalidieren einer Redundanzinformation des Speicherworts ist, der in der ersten Gruppe von Speicherzellen gespeichert ist.
    • Ausführungsbeispiel 8 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 3 bis 7, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen ein Invalidieren eines Fehlerkorrekturcodes oder eines Fehlererkennungscodes des Speicherworts ist, der in der ersten Gruppe von Speicherzellen gespeichert ist.
    • Ausführungsbeispiel 9 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 8, wobei das Speicherzellenfeld Bitleitungen und Wortleitungen aufweist, wobei jeder Spalte von Speicherzellen einer Bitleitung und jede Zeile von Speicherzellen einer Wortleitung zugeordnet sind und wobei die Speichersteuereinrichtung eingerichtet ist, den Zugriff auf die erste Gruppe von Speicherzellen und den Lesezugriff auf die zweite Gruppe von Speicherzellen zusammen zu veranlassen durch Aktivieren einer Wortleitung, die der Zeile von Speicherzellen, zu der die erste Gruppe von Speicherzellen und die zweite Gruppe von Speicherzellen gehören, zugeordnet ist.
    • Ausführungsbeispiel 10 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 9, wobei die Speichersteuereinrichtung eingerichtet ist, den Zugriff auf die erste Gruppe von Speicherzellen und den Lesezugriff auf die zweite Gruppe von Speicherzellen für dieselbe Aktivierung einer Wortleitung zu veranlassen.
    • Ausführungsbeispiel 11 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 10, wobei die Speicherzellen der ersten Gruppe von Speicherzellen und die Speicherzellen der zweiten Gruppe von Speicherzellen sich entlang der Zeile von Speicherzellen sich zumindest teilweise abwechseln.
    • Ausführungsbeispiel 12 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 11, wobei die Verifizierungsschaltung einen Speicher aufweist, der eingerichtet ist, die von der zweiten Gruppe von Speicherzellen gespeicherten Werten zu speichern.
    • Ausführungsbeispiel 13 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 12, wobei die Speichersteuereinrichtung eingerichtet ist, die zweite Gruppe von Speicherzellen mit einem die zweite Gruppe von Speicherzellen identifizierenden Muster vorzuinitialisieren.
    • Ausführungsbeispiel 14 ist ein Verfahren zum Verifizieren eines Speicherzugriffs, wie es in 4 dargestellt ist.
    • Ausführungsbeispiel 15 ist ein Verfahren gemäß Ausführungsbeispiel 14, wobei der Zugriff auf die erste Gruppe von Speicherzellen ein Schreibzugriff ist.
    • Ausführungsbeispiel 16 ist ein Verfahren gemäß Ausführungsbeispiel 14, wobei die erste Gruppe von Speicherzellen und die zweite Gruppe von Speicherzellen Teil eines Speicherworts des Speicherzellenfeldes sind.
    • Ausführungsbeispiel 17 ist ein Verfahren gemäß Ausführungsbeispiel 16, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen ein Teilweises-Schreiben-Zugriff auf das Speicherwort ist.
    • Ausführungsbeispiel 18 ist ein Verfahren gemäß Ausführungsbeispiel 16 oder 17, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen ein Invalidieren des Speicherworts ist.
    • Ausführungsbeispiel 19 ist ein Verfahren gemäß Ausführungsbeispiel 18, wobei das Speicherwort eine Redundanzinformation aufweist und das Invalidieren eine Modifikation des Speicherworts aufweist, sodass die Redundanzinfo für das Speicherwort ungültig ist.
    • Ausführungsbeispiel 20 ist ein Verfahren gemäß einem der Ausführungsbeispiele 16 bis 19, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen ein Invalidieren einer Redundanzinformation des Speicherworts ist, der in der ersten Gruppe von Speicherzellen gespeichert ist.
    • Ausführungsbeispiel 21 ist ein Verfahren gemäß einem der Ausführungsbeispiele 16 bis 20, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen ein Invalidieren eines Fehlerkorrekturcodes oder eines Fehlererkennungscodes des Speicherworts ist, der in der ersten Gruppe von Speicherzellen gespeichert ist.
    • Ausführungsbeispiel 22 ist ein Verfahren gemäß einem der Ausführungsbeispiele 14 bis 21, wobei das Speicherzellenfeld Bitleitungen und Wortleitungen aufweist, wobei jeder Spalte von Speicherzellen einer Bitleitung und jede Zeile von Speicherzellen einer Wortleitung zugeordnet sind und wobei der Zugriff auf die erste Gruppe von Speicherzellen und der Lesezugriff auf die zweite Gruppe von Speicherzellen zusammen veranlasst werden durch Aktivieren einer Wortleitung, die der Zeile von Speicherzellen, zu der die erste Gruppe von Speicherzellen und die zweite Gruppe von Speicherzellen gehören, zugeordnet ist.
    • Ausführungsbeispiel 23 ist ein Verfahren gemäß einem der Ausführungsbeispiele 14 bis 22, wobei der Zugriff auf die erste Gruppe von Speicherzellen und der Lesezugriff auf die zweite Gruppe von Speicherzellen für dieselbe Aktivierung einer Wortleitung veranlasst werden.
    • Ausführungsbeispiel 24 ist ein Verfahren gemäß einem der Ausführungsbeispiele 14 bis 23, wobei die Speicherzellen der ersten Gruppe von Speicherzellen und die Speicherzellen der zweiten Gruppe von Speicherzellen sich entlang der Zeile von Speicherzellen sich zumindest teilweise abwechseln.
    • Ausführungsbeispiel 25 ist ein Verfahren gemäß einem der Ausführungsbeispiele 14 bis 24, wobei das Überprüfen von einer Verifizierungsschaltung durchgeführt wird, die einen Speicher aufweist, der die von der zweiten Gruppe von Speicherzellen gespeicherten Werte speichert.
    • Ausführungsbeispiel 26 ist ein Verfahren gemäß einem der Ausführungsbeispiele 14 bis 25, wobei die zweite Gruppe von Speicherzellen mit einem die zweite Gruppe von Speicherzellen identifizierenden Muster vorinitialisiert wird.
  • Es sollte beachtet werden, dass alle oben genannten Ausführungsbeispiele beliebig miteinander kombiniert werden können.
  • Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.

Claims (14)

  1. Speicheranordnung (300) aufweisend: ein Speicherzellenfeld mit Spalten (302) und Zeilen (303) von beschreibbaren Speicherzellen (301); eine Speichersteuereinrichtung (304), die eingerichtet ist, einen Zugriff auf eine erste Gruppe von Speicherzellen (301) einer Zeile (303) von Speicherzellen (301) zu veranlassen; und zusammen mit dem Zugriff auf die erste Gruppe von Speicherzellen (301) einen Lesezugriff auf eine zweite Gruppe von Speicherzellen (301) der Zeile (303) von Speicherzellen (301) zu veranlassen; eine Verifizierungsschaltung (305), die eingerichtet ist, zu überprüfen, ob der Zugriff auf die erste Gruppe von Speicherzellen (301) auf die korrekte Zeile (303) von Speicherzellen (301) durchgeführt wurde, basierend darauf, ob bei dem Lesezugriff auf die zweiten Gruppe von Speicherzellen (301) gelesenen Werte mit zuvor von der zweiten Gruppe von Speicherzellen (301) gespeicherten Werten übereinstimmen.
  2. Speicheranordnung (300) gemäß Anspruch 1, wobei der Zugriff auf die erste Gruppe von Speicherzellen (301) ein Schreibzugriff ist.
  3. Speicheranordnung (300) gemäß Anspruch 1, wobei die erste Gruppe von Speicherzellen (301) und die zweite Gruppe von Speicherzellen (301) Teil eines Speicherworts des Speicherzellenfeldes sind.
  4. Speicheranordnung (300) gemäß Anspruch 3, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen (301) ein Teilweises-Schreiben-Zugriff auf das Speicherwort ist.
  5. Speicheranordnung (300) gemäß Anspruch 3 oder 4, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen (301) ein Invalidieren des Speicherworts ist.
  6. Speicheranordnung (300) gemäß Anspruch 5, wobei das Speicherwort eine Redundanzinformation aufweist und das Invalidieren eine Modifikation des Speicherworts aufweist, sodass die Redundanzinfo für das Speicherwort ungültig ist.
  7. Speicheranordnung (300) gemäß einem der Ansprüche 3 bis 6, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen (301) ein Invalidieren einer Redundanzinformation des Speicherworts ist, der in der ersten Gruppe von Speicherzellen (301) gespeichert ist.
  8. Speicheranordnung (300) gemäß einem der Ansprüche 3 bis 7, wobei der Schreibzugriff auf die erste Gruppe von Speicherzellen (301) ein Invalidieren eines Fehlerkorrekturcodes oder eines Fehlererkennungscodes des Speicherworts ist, der in der ersten Gruppe von Speicherzellen (301) gespeichert ist.
  9. Speicheranordnung (300) gemäß einem der Ansprüche 1 bis 8, wobei das Speicherzellenfeld Bitleitungen und Wortleitungen aufweist, wobei jeder Spalte (302) von Speicherzellen (301) einer Bitleitung und jede Zeile (303) von Speicherzellen (301) einer Wortleitung zugeordnet sind und wobei die Speichersteuereinrichtung (304) eingerichtet ist, den Zugriff auf die erste Gruppe von Speicherzellen (301) und den Lesezugriff auf die zweite Gruppe von Speicherzellen (301) zusammen zu veranlassen durch Aktivieren einer Wortleitung, die der Zeile (303) von Speicherzellen (301), zu der die erste Gruppe von Speicherzellen (301) und die zweite Gruppe von Speicherzellen (301) gehören, zugeordnet ist.
  10. Speicheranordnung (300) gemäß einem der Ansprüche 1 bis 9, wobei die Speichersteuereinrichtung (304) eingerichtet ist, den Zugriff auf die erste Gruppe von Speicherzellen (301) und den Lesezugriff auf die zweite Gruppe von Speicherzellen (301) für dieselbe Aktivierung einer Wortleitung zu veranlassen.
  11. Speicheranordnung (300) gemäß einem der Ansprüche 1 bis 10, wobei die Speicherzellen (301) der ersten Gruppe von Speicherzellen (301) und die Speicherzellen (301) der zweiten Gruppe von Speicherzellen (301) sich entlang der Zeile (303) von Speicherzellen (301) sich zumindest teilweise abwechseln.
  12. Speicheranordnung (300) gemäß einem der Ansprüche 1 bis 11, wobei die Verifizierungsschaltung (305) einen Speicher aufweist, der eingerichtet ist, die von der zweiten Gruppe von Speicherzellen (301) gespeicherte Werten zu speichern.
  13. Speicheranordnung (300) gemäß einem der Ansprüche 1 bis 12, wobei die Speichersteuereinrichtung (304) eingerichtet ist, die zweite Gruppe von Speicherzellen (301) mit einem die zweite Gruppe von Speicherzellen (301) identifizierenden Muster vorzuinitialisieren.
  14. Verfahren zum Verifizieren eines Speicherzugriffs aufweisend: Veranlassen eines Zugriffs auf eine erste Gruppe von Speicherzellen einer Zeile (303) von Speicherzellen (301) eines Speicherzellenfelds; Zusammen mit dem Zugriff auf die erste Gruppe von Speicherzellen (301) Veranlassen eines Lesezugriffs auf eine zweite Gruppe von Speicherzellen (301) der Zeile von Speicherzellen (301); und Überprüfen, ob der Zugriff auf die erste Gruppe von Speicherzellen (301) auf die korrekte Zeile (303) von Speicherzellen (301) durchgeführt wurde, basierend darauf, ob bei dem Lesezugriff auf die zweiten Gruppe von Speicherzellen (301) gelesenen Werte mit zuvor von der zweiten Gruppe von Speicherzellen (301) gespeicherten Werten übereinstimmen.
DE102017124313.5A 2017-10-18 2017-10-18 Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs Active DE102017124313B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102017124313.5A DE102017124313B4 (de) 2017-10-18 2017-10-18 Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs
US16/156,046 US10628084B2 (en) 2017-10-18 2018-10-10 Verifying memory access
CN201811208846.9A CN109686389B (zh) 2017-10-18 2018-10-17 存储器装置和用于验证存储器访问的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017124313.5A DE102017124313B4 (de) 2017-10-18 2017-10-18 Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs

Publications (2)

Publication Number Publication Date
DE102017124313A1 DE102017124313A1 (de) 2019-04-18
DE102017124313B4 true DE102017124313B4 (de) 2021-03-18

Family

ID=65910151

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017124313.5A Active DE102017124313B4 (de) 2017-10-18 2017-10-18 Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs

Country Status (3)

Country Link
US (1) US10628084B2 (de)
CN (1) CN109686389B (de)
DE (1) DE102017124313B4 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10449811B2 (en) 2015-06-15 2019-10-22 Infineon Technologies Ag Tire monitoring system and method
DE102021201580A1 (de) 2021-02-18 2022-08-18 Infineon Technologies Ag Speichervorrichtung und Verfahren zum Ändern von Speicherzellen einer Speichervorrichtung
CN113961419B (zh) * 2021-09-24 2022-09-23 北京百度网讯科技有限公司 存储器验证方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050237814A1 (en) * 2004-04-23 2005-10-27 Sandisk Corporation Non-volatile memory and control with improved partial page program capability
US20120311396A1 (en) * 2011-05-31 2012-12-06 Everspin Technologies, Inc. Mram field disturb detection and recovery

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020835B2 (en) * 2000-10-19 2006-03-28 Oracle International Corporation Enhancements to data integrity verification mechanism
ITRM20030039A1 (it) * 2003-01-30 2004-07-31 Micron Technology Inc Sblocco di registro di protezione per chip.
KR100885912B1 (ko) * 2007-01-23 2009-02-26 삼성전자주식회사 기입된 데이터 값에 기초하여 데이터를 선택적으로검증하는 데이터 검증 방법 및 반도체 메모리 장치
JP2010113765A (ja) * 2008-11-06 2010-05-20 Elpida Memory Inc 半導体記憶装置
US8560899B2 (en) * 2010-07-30 2013-10-15 Infineon Technologies Ag Safe memory storage by internal operation verification
US8589761B2 (en) * 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
US9007843B2 (en) * 2011-12-02 2015-04-14 Cypress Semiconductor Corporation Internal data compare for memory verification
US20170123721A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. System and method for utilization of a data buffer by command completion in parts

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050237814A1 (en) * 2004-04-23 2005-10-27 Sandisk Corporation Non-volatile memory and control with improved partial page program capability
US20120311396A1 (en) * 2011-05-31 2012-12-06 Everspin Technologies, Inc. Mram field disturb detection and recovery

Also Published As

Publication number Publication date
US20190114111A1 (en) 2019-04-18
CN109686389B (zh) 2023-08-15
US10628084B2 (en) 2020-04-21
DE102017124313A1 (de) 2019-04-18
CN109686389A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
DE102017124313B4 (de) Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE10110469A1 (de) Integrierter Speicher und Verfahren zum Testen und Reparieren desselben
DE102013222321A1 (de) Elektronisches Gerät mit einer Vielzahl von Speicherzellen und mit physikalisch unklonbarer Funktion
DE60103397T2 (de) Gesicherter eeprom-speicher mit fehlerkorrekturschaltung
DE10206689B4 (de) Integrierter Speicher und Verfahren zum Betrieb eines integrierten Speichers
DE102019102573A1 (de) Speichercontroller, speichersystem und verfahren zum verwenden einer speichervorrichtung
DE102004020875B4 (de) Verfahren und Vorrichtung zum Maskieren bekannter Ausfälle während Speichertestauslesungen
EP0902924B1 (de) Redundanzspeichervorrichtung mit rom-speicherzellen
DE10256487B4 (de) Integrierter Speicher und Verfahren zum Testen eines integrierten Speichers
DE60212332T2 (de) Selbstreparatur-Methode für nicht flüchtige Speicher mit einer Architektur zur Fehlervermeidung sowie nicht flüchtiger Speicher
WO2001029843A2 (de) Verfahren zur identifizierung einer integrierten schaltung
DE112007003117T5 (de) Neue Implementierung der Spaltenredundanz für einen Flash-Speicher mit einem hohen Schreibparallelismus
DE10331068A1 (de) Verfahren zum Auslesen von Fehlerinformationen aus einem integrierten Baustein und integrierter Speicherbaustein
DE102016123689B4 (de) Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung
EP1085523B1 (de) Integrierter Speicher mit Speicherzellen und Referenzzellen
DE102007029371A1 (de) Verfahren zum Verbergen defekter Speicherzellen und Halbleiterspeicher
DE19924153B4 (de) Schaltungsanordnung zur Reparatur eines Halbleiterspeichers
DE102017116280B4 (de) Speicheranordnung
EP1102168B1 (de) Integrierter Speicher mit Speicherzellen und Referenzzellen
DE10127194B4 (de) Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen
EP1141834B1 (de) Integrierter speicher mit redundanz
DE102017124805B4 (de) Speicheranordnung und verfahren zum zwischenspeichern von speicherinhalten
DE102016100630B4 (de) Speichervorrichtung und Verfahren zum Testen einer Speichervorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative