DE102017116280B4 - Speicheranordnung - Google Patents

Speicheranordnung Download PDF

Info

Publication number
DE102017116280B4
DE102017116280B4 DE102017116280.1A DE102017116280A DE102017116280B4 DE 102017116280 B4 DE102017116280 B4 DE 102017116280B4 DE 102017116280 A DE102017116280 A DE 102017116280A DE 102017116280 B4 DE102017116280 B4 DE 102017116280B4
Authority
DE
Germany
Prior art keywords
memory cells
bit
column
memory
columns
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
DE102017116280.1A
Other languages
English (en)
Other versions
DE102017116280A1 (de
Inventor
Wieland Fischer
Bernd Meyer
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 DE102017116280.1A priority Critical patent/DE102017116280B4/de
Priority to CN201810789754.8A priority patent/CN109285576A/zh
Priority to US16/040,075 priority patent/US10546866B2/en
Publication of DE102017116280A1 publication Critical patent/DE102017116280A1/de
Application granted granted Critical
Publication of DE102017116280B4 publication Critical patent/DE102017116280B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/30Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
    • H10B41/35Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region with a cell select transistor, e.g. NAND
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0059Security or protection circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0441Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing multiple floating gate devices, e.g. separate read-and-write FAMOS transistors with connected floating gates
    • G11C16/0458Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing multiple floating gate devices, e.g. separate read-and-write FAMOS transistors with connected floating gates comprising two or more independent floating gates which store independent data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0466Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
    • G11C16/0475Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS] comprising two or more independent storage sites which store independent data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/702Masking faults in memories by using spares or by reconfiguring by replacing auxiliary circuits, e.g. spare voltage generators, decoders or sense amplifiers, to be used instead of defective ones

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

Speicheranordnung (500) aufweisend:ein Speicherzellenfeld mit Spalten (502, 503) und Zeilen (504) von Speicherzellen (501),Bitleitungen (505) und Wortleitungen (506), wobei jede Spalte einer Bitleitung (505) und jede Zeile (504) einer Wortleitung (506) zugeordnet ist;wobei die Spalten (502, 503) von Speicherzellen Spalten von Speicherzellen von einem ersten Spalten-Typ (502) aufweisen, die eingerichtet sind, Nutzdaten zu speichern, und Spalten von Speicherzellen von einem zweiten Spalten-Typ (503) aufweisen, die eingerichtet sind, vorgegebene Überprüfungsdaten zu speichern; wobei die Speicherzellen mindestens der Spalten von Speicherzellen vom zweiten Spalten-Typ (503) derart eingerichtet und mit den Bitleitungen (505) verbunden sind, dass die Speicherzellen einer Spalte von Speicherzellen bei einem Lesezugriff die der Spalte zugeordnete Bitleitung (505) auf einen Wert setzen, der einer logischen Kombination der Werte entspricht, die von den Speicherzellen der Spalte gespeichert werden, die zu Zeilen (504) von Speicherzellen gehören, die bei dem Lesezugriff adressiert werden; undeine Detektionsschaltung (507), die eingerichtet ist, bei einem Lesezugriff zu detektieren, ob eine Bitleitung (505), die einer Spalte von Speicherzellen von dem zweiten Spalten-Typ (503) zugeordnet ist, auf einen Wert gesetzt wird, der der logischen Kombination von Werten entspricht, die von Speicherzellen der Spalte von Speicherzellen von dem zweiten Spalten-Typ (503) gespeichert werden und deren Werte zu unterschiedlichen Zeilen (504) von Speicherzellen gehören,wobei die Detektionsschaltung (507) eingerichtet ist, zu detektieren, ob ein Bitmuster, auf das die Bitleitungen (505), die den Spalten von Speicherzellen vom zweiten Spalten-Typ (503) zugeordnet sind, auf ein resultierendes Bitmuster gesetzt werden, das der logischen Kombination von Bitmustern unterschiedlicher Zeilen (504) von Speicherzellen entspricht, wobei die vorgegebenen Bitmuster jeweils ein vorgegebenes Hamming-Gewicht haben und die Detektionsschaltung (507)eingerichtet ist, basierend auf dem Hamming-Gewicht des resultierenden Bitmusters zu überprüfen, ob das resultierende Bitmuster der logischen Kombination von Bitmustern unterschiedlicher Zeilen (504) von Speicherzellen entspricht.

Description

  • Ausführungsbeispiele betreffen allgemein Speicheranordnungen.
  • Elektronische Geräte müssen in einer Vielzahl von Anwendungen gegen Angriffe geschützt sein. Ein typisches Beispiel sind 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.
  • Die Druckschrift US 7539588 B2 beschreibt einen Speicher (z.B. einen Flash-Speicher oder einen magnetischen RAM-Speicher), der mit einem Test-Speicherbereich zum Speichern von Testinformation versehen ist. Eine Veränderung der gespeicherten Testinformation durch einen Umgebungsparameter wird detektiert und ein Indikatorsignal wird ausgegeben, wodurch eine Datenverarbeitung angehalten wird.
  • In der Druckschrift US 2012/0327699 A1 ist ein Speicher beschrieben, bei dem ermittelt wird, ob eine Bitleitung denselben logischen Zustand wie eine dazu komplementäre Bitleitung hat. Ist dies der Fall, wird ein Fehlerindikator ausgegeben, der anzeigt, dass mehrere Wortleitungen gleichzeitig aktiviert wurden.
  • Gemäß einer Ausführungsform wird eine Speicheranordnung bereitgestellt, die ein Speicherzellenfeld mit Spalten und Zeilen von Speicherzellen, Bitleitungen und Wortleitungen aufweist, wobei jede Spalte einer Bitleitung und jede Zeile einer Wortleitung zugeordnet ist, wobei die Spalten von Speicherzellen Spalten von Speicherzellen von einem ersten Spalten-Typ aufweisen, die eingerichtet sind, Nutzdaten zu speichern, und Spalten von Speicherzellen von einem zweiten Spalten-Typ aufweisen, die eingerichtet sind, vorgegebene Überprüfungsdaten zu speichern. Die Speicherzellen mindestens der Spalten von Speicherzellen vom zweiten Spalten-Typ sind derart eingerichtet und mit den Bitleitungen verbunden, dass die Speicherzellen einer Spalte von Speicherzellen bei einem Lesezugriff die der Spalte zugeordnete Bitleitung auf einen Wert setzen, der einer logischen Kombination der Werte entspricht, die von den Speicherzellen der Spalte gespeichert werden, die zu Zeilen von Speicherzellen gehören, die bei dem Lesezugriff adressiert werden. Die Speicheranordnung weist eine Detektionsschaltung auf, die eingerichtet ist, bei einem Lesezugriff zu detektieren, ob eine Bitleitung, die einer Spalte von Speicherzellen vom zweiten Spalten-Typ zugeordnet ist, auf einen Wert gesetzt wird, der der logischen Kombination von Werten entspricht, die von Speicherzellen der Spalte von Speicherzellen vom zweiten Spalten-Typ gespeichert werden und deren Werte zu unterschiedlichen Zeilen von Speicherzellen gehören. Die Detektionsschaltung ist eingerichtet, zu detektieren, ob ein Bitmuster, auf das die Bitleitungen, die den Spalten von Speicherzellen vom zweiten Spalten-Typ zugeordnet sind, auf ein resultierendes Bitmuster gesetzt werden, das der logischen Kombination von Bitmustern unterschiedlicher Zeilen von Speicherzellen entspricht, wobei die vorgegebenen Bitmuster jeweils ein vorgegebenes Hamming-Gewicht haben und die Detektionsschaltung eingerichtet ist, basierend auf dem Hamming-Gewicht des resultierenden Bitmusters zu überprüfen, ob zu das resultierende Bitmuster der logischen Kombination von Bitmustern unterschiedlicher Zeilen von Speicherzellen entspricht.
  • 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 zwei Speicherzellen, die derselben Bitleitung zugeordnet sind und mit der Bitleitung mittels eines jeweiligen Pull-Down-Transistors verbunden sind.
    • 3 zeigt eine Erweiterung eines Speicherzellenfelds mit Speicherzellen zum Speichern von Überprüfungsdaten, die auf einer gleichzeitigen Aktivierung von mehreren Wortleitungen basieren.
    • 4 zeigt ein Beispiel für zwei Speicherzellenzeilen, die jeweils ein vorberechnetes Bitmuster speichern.
    • 5 zeigt eine Speicheranordnung.
  • 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.
  • Um eine möglichst platzsparende Bauweise eines Speichers zu ermöglichen, können alle durch eine gegebene Bitleitung adressierbaren Speicherzellen (d.h. alle Speicherzellen, die einer Bitleitung zugeordnet sind, d.h. mit der Bitleitung verbunden sind) durch eine spezielle Schaltungstechnik („open drain“ oder „wired-or“) mit der Bitleitung verbunden sein. Ein Beispiel für eine solche Schaltungstechnik ist in 2 gezeigt.
  • 2 zeigt zwei Speicherzellen 201, 202, die derselben Bitleitung 203 zugeordnet sind und mit der Bitleitung 203 mittels eines jeweiligen Pull-Down-Transistors 204, 205 verbunden sind.
  • Jeder der Speicherzellen 201, 202 ist außerdem mit einer jeweiligen Wortleitung 206, 207 verbunden.
  • In diesem Beispiel wird beispielsweise bei einem Lesezugriff die Bitleitung 203 auf einen hohen Pegel vorgeladen (mit einem sogenannten „precharge“), eine der Wortleitungen 206, 207 aktiviert und die der aktivierten Wortleitung 206, 207 zugeordnete Speicherzelle 201, 202 zieht je nachdem, ob sie eine 1 oder eine 0 speichert, die Bitleitung 203 nach unten (auf einen niedrigen Pegel) oder nicht.
  • Entspricht eine gespeicherte 0 beispielsweise einer Aktivierung des jeweiligen Pull-Down-Transistors 204, 205, so zieht die Speicherzelle 201, 202 die Bitleitung 203 auf den niedrigen Pegel, wenn sie eine 0 speichert, was dann als Ausgabe einer 0 auf die Bitleitung 203 interpretiert wird.
  • Werden nun beide Wortleitungen 206, 207 aktiviert, so reicht es, wenn eine der beiden Speicherzellen 201, 202 eine 0 speichert, um die Bitleitung 203 nach unten zu ziehen. Umgekehrt bleibt die Bitleitung 203 nur dann auf dem hohen Pegel, wenn beide Speicherzellen 201, 202 eine 1 speichern. Somit wird bei gleichzeitiger Aktivierung mehrerer Wortleitungen die Bitleitung 203 auf eine logische Kombination, in diesem Beispiel eine UND-Kombination, der gespeicherten Werte gesetzt (denn die Bitleitung bleibt nur dann auf der 1, wenn beide Speicherzellen 201, 202 eine 1 speichern).
  • Je nachdem, welchen Spannungspegeln eine gespeicherte 1 und eine gespeicherte 0 zugeordnet sind und ob anstatt des Pull-down-Transistors 204, 205 ein Pull-up-Transistor verwendet wird oder nicht, kann sich auch eine ODER-Kombination der von den Speicherzellen 201, 202 gespeicherten Werte als Wert ergeben, auf den die Bitleitung 203 gesetzt und der von der Bitleitung 203 ausgegeben wird.
  • Eine Anbindung von Speicherzellen an eine Bitleitung mittels einer Schaltungstechnik, wie sie mit Bezug auf 2 beschrieben ist, erlaubt das Einsparen von Transistoren und stellt für den normalen Betrieb eines Speicher-Arrays keine funktionale Einschränkung dar. Für einen Angreifer ergeben sich aufgrund der Tatsache, dass bei der gleichzeitigen Adressierung von mehreren Wortleitungen eine logische Kombination von Speicherinhalten an eine Bitleitung ausgegeben wird, aber Möglichkeiten, um bestimmte Attacken auszuführen:
    • • Wenn ein Angreifer während eines Lesezugriffs auf den Speicher durch einen invasiven Angriff mehrere Wortleitungen des Speicherzellenfelds gleichzeitig aktiviert (zum Beispiel durch einen Forcing-Angriff mittels Probing-Nadeln oder durch Laser), dann bewirkt diese Schaltungstechnik implizit, dass an einer Bitleitung eine logische Verknüpfung aller gleichzeitig aktivierten Speicherzellen, die dieser Bitleitung zugeordnet sind, ausgelesen wird. Wie oben erläutert ist je nach Schaltungstechnik und Aufbau des Speicherzellenfelds das Ergebnis dieser impliziten Berechnung die logische UND-Kombination oder die logische ODER-Kombination der gleichzeitig aktivierten (d.h. mittels der Wortleitungen adressierten) Speicherzellen, die dieser Bitleitung zugeordnet sind.
    • • Ähnlich kann ein Angreifer, wenn er während eines Schreibzugriffs mehrere Wortleitungen des Speicherzellenfelds gleichzeitig aktiviert, unerwünschte Kopien der zu speichernden Daten an weiteren, ungenutzten Stellen im Speicherzellenfeld anlegen. Eine solche Kopie kann der Angreifer dann zu einem späteren Zeitpunkt bei einem Lesezugriff durch Aktivieren geeigneter Wortleitungen wieder einspielen und auf diese Weise einen falschen Systemzustand erzeugen (und damit sogenannte „Cloning“- und „Replay“-Angriffe durchführen). Auf diese Weise kann ein Angreifer verhindern, dass beispielsweise Zähler, welche einen Geldwert repräsentieren oder Brute-Force Angriffe auf PINs und Passwörter erkennen sollen, ablaufen und einen Sicherheitsalarm auslösen.
  • Für Sicherheits-Anwendungen können Speicherzellenfelder um Codierungen der Adressen von Wortleitungen erweitert werden, um sporadische transiente Fehladressierungen von Wortleitungen oder permanente Defekte im Zellenfeld erkennen zu können. Dazu werden beispielsweise vorberechnete Bitmuster permanent in das Zellen-Array eingefügt. Das kann beispielsweise durch Techniken wie bei ROM-Speicherzellen 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 geeignet, um Schutz vor aktiven Angreifern zu bieten. Außerdem sind die typischerweise aus Effizienzgründen 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.
  • Weil Felder (auch als „Arrays“ bezeichnet) 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 erforderlich, im Betrieb verifizieren zu können, dass Daten aus den richtigen, von der Anwendung adressierten Speicherzellen eines Speicherzellenfelds ausgelesen oder in die richtigen, adressierten Speicherzellen geschrieben werden. Neben der Überprüfung der physikalischen Adresse der tatsächlich zum Lesen oder Schreiben verwendeten Speicherzellen gehört hierzu insbesondere auch ein Mechanismus, um sich gegen Angriffe durch gleichzeitiges Aktivieren mehrerer Wortleitungen in einem Speicherzellenfelds zu schützen.
  • Im Folgenden wird ein solcher Mechanismus beschrieben, der gemäß einem Ausführungsbeispiel auf speziellen Datenmustern basiert, welche zum Beispiel als feste (z.B. ROM-) Muster an die Wortleitungen eines Speicher-Arrays angehängt werden können und über zusätzliche Bitleitungen auslesbar sind. Diese Datenmuster ermöglichen es, einen Angriff, welcher mehrere Wortleitungen gleichzeitig aktiviert, mit einer vorgegebenen Redundanz der Alarmleitungen zur Signalisierung des erkannten Angriffs sicher zu detektieren.
  • 3 zeigt eine Erweiterung eines Speicherzellenfelds mit Speicherzellen zum Speichern von Überprüfungsdaten, z.B. Codewörtern oder Datenmuster, zum Schutz gegen Angriffe, die auf einer gleichzeitigen Aktivierung von mehreren Wortleitungen basieren.
  • Ähnlich dem Speicherzellenfeld 100 von 1 weist das Speicherzellenfeld 300 eine Vielzahl von Speicherzellen 301 auf, die in Form einer Matrix mit Spalten 302, 303 von Speicherzellen und Zeilen 304 von Speicherzellen angeordnet sind, wobei in diesem Beispiel das Speicherzellenfeld 300 erste Spalten 302 von Speicherzellen (auch bezeichnet als Spalten von einem ersten Spalten-Typ) zum Speichern von Nutzdaten (d.h. beispielsweise „normale“ Speicherzellen, die normal genutzt werden können, beispielsweise von einem Prozessor einer elektronischen Vorrichtung, z.B. einer Chipkarte oder eines Steuergeräts, zum Speichern von Daten beschrieben werden können) und zweite Spalten 303 von Speicherzellen (auch bezeichnet als Spalten von einem zweiten Spalten-Typ) zum Speichern von Überprüfungsdaten aufweist. Jeder Spalte 302, 303 von Speicherzellen ist eine Bitleitung 305 zugeordnet und jeder Zeile 304 von Speicherzellen ist eine Wortleitung 306 zugeordnet.
  • Die zweiten Spalten 303 können als Erweiterung des Speicherzellenfelds, bestehend aus den ersten Spalten 302, angesehen werden. In anderen Worten werden gemäß einer Ausführungsform die Wortleitungen eines Speicherzellenfeldes verlängert und weitere Speicherzellen und zugehörige Bitleitungen hinzugefügt. Auf diese Weise können mittels der zusätzlichen Speicherzellen, d.h. der Speicherzellen der zweiten Spalten 303, vorberechnete Bitmuster (beispielsweise permanent) in das Speicherzellenfeld eingefügt werden.
  • Diese vorberechneten Bitmuster lassen sich mittels der weiteren Bitleitungen (d.h. den zweiten Spalten 303 zugeordneten Bitleitungen 305) ausgelesen werden. Die Speicherzellen der zweiten Spalten 303 sind derart eingerichtet und mit den zugeordneten Bitleitungen verbunden, dass bei gleichzeitiger Aktivierung mehrerer Wortleitungen 306 diese Bitleitungen den gleichen bitweisen logischen UND- oder ODER-Verknüpfungen aller aktivierten Speicherzellen unterliegen wie die übrigen Bereiche des Speicherzellenfelds, d.h. wie die Bitleitungen, die den ersten Spalten 302 von Speicherzellen zugeordnet sind.
  • In den folgenden Beispielen wird angenommen, dass Speicherzellen simultan aktivierter Wortleitungen, die derselben Bitleitung zugeordnet sind, die Bitleitung auf die logische ODER-Verknüpfung der von ihnen gespeicherten Bits setzen, sie lassen sich aber analog für eine logische UND-Verknüpfung verwenden.
  • Gemäß einer Ausführungsform speichern die Speicherzellen der zweiten Spalten 303 vorberechnete Bitmuster, wobei alle Speicherzellen einer Zeile 304, die zu den zweiten Spalten 303 gehören, ein vorberechnetes Bitmuster speichern, d.h. zu jeder Speicherzellenzeile 304 ein vorberechnetes Bitmuster gehört, und wobei gilt:
    1. A) Alle vorberechneten Bitmuster haben dasselbe Hamming-Gewicht w > 0, um im fehlerfreien Fall eine möglichst effiziente Erkennung zu ermöglichen.
    2. B) Werden zwei oder mehrere Wortleitungen gleichzeitig aktiviert, dann hat das Hamming-Gewicht des resultierenden Musters, welches sich aus der bitweisen logischen ODER Verknüpfung der Bitmuster ergibt, die zu den Zeilen von Speicherzellen gehören, die den aktivierten Wortleitungen zugeordnet sind mindestens w + d wobei d > 0 eine vorgegebene Konstante für die Redundanz der Erkennung der gleichzeitigen Aktivierung mehrerer Wortleitungen ist.
  • 4 zeigt ein Beispiel für zwei Speicherzellenzeilen 401, 402, die jeweils ein vorberechnetes Bitmuster speichern.
  • Jede Speicherzellenzeile 401, 402, weist erste Speicherzellen 403, die zu ersten Speicherzellenspalten zum Speichern von Nutzdaten und zweite Speicherzellen 404 zum Speichern von Überprüfungsdaten, in diesem Fall vorberechneten Bitmuster von 6 Bit Länge, auf.
  • In diesem Beispiel speichert die erste Speicherzellenzeile 401 das Bitmuster 000111 und die zweite Speicherzellenzeile 402 speichert das Bitmuster 001011.
  • Gemäß A) haben beide Bitmuster das gleiche Hamming-Gewicht w=3.
  • Gemäß B) hat das resultierende Bitmuster, das sich aus einer ODER-Kombination der beiden Bitmuster ergibt, ein Gewicht, das größer ist als 3, nämlich 4 (das Gewicht von 001111, der bitweisen ODER-Kombination von 000111 und 001011).
  • Aufgrund von A) und B) kann eine Detektionsschaltung 307, die mit den Bitleitungen, die den zweiten Spalten zugeordnet ist, verbunden ist, zum Detektieren eines Angriffs, der auf einer gleichzeitigen Aktivierung von mehreren Wortleitungen basiert, wie folgt vorgehen: Sie bestimmt in dem resultierenden Bitmuster, das von den Bitleitungen, die den zweiten Spalten 303 zugeordnet sind, ausgegeben wird, die Anzahl x der Bits mit dem Wert 1 und vergleich diese Anzahl mit dem Hamming-Gewicht w der ursprünglichen vorberechneten Bitmuster. Ist x > w, so zeigt dies die gleichzeitige Aktivierung mehrerer Wortleitungen an.
  • Liefern beispielsweise die sechs Bitleitungen, die mit den zweiten Speicherzellen 404 des Beispiels von 4 verbunden sind, das Muster 001111, so kann die Detektionsschaltung 307 feststellen, dass das Gewicht des resultierenden Musters größer ist als das Gewicht der vorberechneten Bitmuster (4 > 3) und kann entsprechend reagieren, z.B. ein Alarmsignal über eine Alarmsignal-Ausgangsleitung 308 der Detektionsschaltung 307 ausgeben, beispielsweise an einen Prozessor der jeweiligen elektronischen Vorrichtung oder auch an eine Rücksetz-Schaltung, die das elektronische Gerät bei einem Alarm zurücksetzt (und z.B. insbesondere den Speicher löscht).
  • Der Wert d kann als Redundanz für die Erkennung einer gleichzeitigen Aktivierung mehrerer Wortleitungen angesehen werden. Ein Angreifer müsste das resultierende Muster an d Stellen manipulieren, um eine gleichzeitige Aktivierung mehrerer Wortleitungen zu erreichen, ohne dass dies detektiert wird. Um insgesamt eine gewünschte Redundanz d zu erreichen (d.h. des Gesamtsystems aus Speicher und Detektionsschaltung), kann beispielsweise die Detektionsschaltung (und eine jeweilige Alarmsignal-Ausgangsleitung 308) insgesamt d-mal vorgesehen sein. Damit gibt es auch auf Ebene der Detektionsschaltungen eine d-fache Redundanz. Dadurch muss ein Angreifer d Detektionsschaltungen manipulieren, um eine gleichzeitige Aktivierung mehrerer Wortleitungen zu erreichen, ohne dass dies detektiert wird.
  • Eine Detektion basierend auf vorberechneten Bitmustern mit bestimmtem Gewicht und der Ermittlung des Gewichts eines resultierenden (Ausgabe-)Bitmusters wie oben beschrieben kann mittels einer einfachen Dekodierung des resultierenden Bitmusters (Ermittlung seines Gewichts) realisiert werden. So kann die Detektionsschaltung 307 durch eine einfache Schaltung zur Unterscheidung, ob eine einzelne Wortleitung oder mehrere Wortleitungen gleichzeitig aktiviert wurden, realisiert werden. Diese Schaltung muss lediglich das Hamming-Gewicht des aus den zweiten Spalten 303 des Speicherzellenfeldes ausgelesenen Bitmusters bestimmen und mit einem vorgegebenen Referenzwert (dem Hamming-Gewicht w) vergleichen und abhängig von dem Vergleichsergebnis ein Alarmsignal ausgeben. Eine gewünschte d-fache Redundanz der Hardware der Detektionsschaltung kann durch d-fache Replikation der Schaltung erzielt werden.
  • Geeignete Bitmuster zur Markierung der zusätzlichen Zellen im Speicherfeld können auf einfache Weise aus linearen Codes gewonnen werden. Im Folgenden wird ein generisches Konstruktionsverfahren zum Erzeugen von geeigneten Bitmustern mit den gewünschten Eigenschaften A) und B) beschrieben. Die folgenden Beispiele gehen davon aus, dass die logische Kombination eine ODER-Kombination ist. Es lassen sich aber auf analoge Weise Bitmuster für eine logische UND-Verknüpfung bestimmen, bei denen das Hamming-Gewicht des resultierenden Bitmusters bei simultaner Aktivierung mehrerer Wortleitungen entsprechend gegenüber dem Hamming-Gewicht der vorberechneten Bitmuster reduziert ist.
  • Das im Folgenden beschriebene Konstruktionsverfahren belegt einerseits die Existenz geeigneter Bitmuster, die A) und B) erfüllen und liefert andererseits eine obere Schranke für die Länge geeigneter Bitmuster zur Markierung von Wortleitungen.
  • Sei ein linearer (n, k, d)-Code über GF2 (endlicher Körper mit zwei Elementen) der Länge n, der Dimension k und Redundanz d gegeben. Dann existiert eine (2n, k, d)-Bitmustermenge von 2k Bitmustern der Länge 2n zur Markierung von Wortleitungen, so dass eine gleichzeitige Aktivierung mehrerer Wortleitungen mit d-facher Redundanz erkennbar ist: Wenn x = (xn, ..., x1) ein Codewort des linearen Codes ist, dann ist ein zugehöriges Bitmuster y gegeben durch y = (yn, ..., y1) wobei gilt yi = 01, falls xi = 0 und yi = 10, falls xi = 1 für 1 ≤ i ≤ n.
  • Wird jede Zeile eines Speicherzellenfelds mit einem auf diese Weise generierten Bitmuster y markiert, dann haben alle Markierungsbitmuster y nach Konstruktion das Hamming-Gewicht HW(y) = n. Die Eigenschaften des verwendeten linearen Codes stellen außerdem sicher, dass sich zwei unterschiedliche Bitmuster an mindestens d Bit-Paaren yi unterscheiden. Werden nun mindestens zwei Wortleitungen gleichzeitig aktiviert, so werden an mindestens d Stellen Bit-Paare „01“ und „10“ durch die logische ODER Verknüpfung zu „11“ Mustern verändert. Dadurch steigt das Hamming-Gewicht des resultierenden Bitmusters um mindestens den geforderten Betrag d.
  • Unter der Annahme, dass Markierungsmuster der Länge n genau e-mal das Bit 1 und (n-e)-mal das Bit 0 enthalten, gilt umgekehrt, dass es zu jedem Markierungsmuster y mit Redundanz d zur Erkennung von mehreren aktivierten Wortleitungen eine Umgebung aus mindestens U(n, e, d)-Mustern mit e-mal 1 und (n-e)-mal 0 gibt, welche nicht als Markierungsmuster verwendet werden können, weil sie sich in weniger als d Stellen vom Markierungsmuster y unterscheiden. Damit lassen sich untere Schranken für die Länge n eines erfindungsgemäßen Markierungsmusters bestimmen.
  • Ein Beispiel für Bitmuster zur Markierung von Wortleitungen ergibt sich, wenn die Menge aller Bitfolgen mit einer festen Anzahl an Bits mit dem Wert 1 betrachtet wird. So ergeben beispielsweise 16 beliebige Elemente der Menge M = { 000111 001011,   001110,  001110 , 010011 , 010101 , 010110 , 011001 , 011010 , 011100 , 100011 , 100101 , 100110 , 101001 , 101010 , 101100 ,110010 ,110100 , 111000 }
    Figure DE102017116280B4_0001
    jeweils ein (6, 4, 1)-Markierungsmuster. Jeweils zwei Muster unterscheiden sich an mindestens einer Position. Allgemein gilt, dass solche Bitmuster die Ungleichung 2 k ( n n / 2 )
    Figure DE102017116280B4_0002
    erfüllen müssen.
  • In einem weiteren Ausführungsbeispiel werden die 16 Elemente aus der Menge M so ausgewählt, dass eine möglichst einfache Dekodierung der Adresse der markierten Wortleitung erreicht wird, d.h. jeder Wortleitung auf einfache Weise eindeutig ein Bitmuster zugeordnet ist, welches auf effiziente Weise die Rekonstruktion der Adresse der aktivierten Wortleitung aus dem Wert des zugeordneten Markierungsmusters aus M ermöglicht: Die Menge M enthält beispielsweise die 14 Muster 000111, 001011, 001101, 010011, 010101, 011001, 011100, 100011, 100101, 101001, 101100, 110001, 110100, 111000, deren obere 4 Bits ihre Ordnungsnummer in Binärdarstellung für die Reihenfolge, in der sie angegeben sind, darstellt. Für 16 Bitmuster können für das 0-te Bitmuster und 15-te Bitmuster zwei beliebige Muster aus den verbleibenden 6 Elementen der Menge M ausgewählt werden. Ein Decoder für die Adresse einer Wortleitung muss dann nur noch die Spezialfälle für 0 und 15 erkennen. In allen anderen Fällen gibt er die oberen 4 Bits des Bitmusters aus. Die Markierungsmuster bilden in diesem Fall ebenfalls ein (6, 4, 1) Muster zur Erkennung simultaner Aktivierung mehrerer Wortleitungen, welches zusätzlich eine einfache Bestimmung der Adresse einer Wortleitung aus dem zugeordneten Bitmuster ermöglicht.
  • In einem weiteren Ausführungsbeispiel wird die Redundanz gegen invasive Fehlerangriffe durch die Replizierung von Markierungsbitmustern erhöht. Werden beispielsweise 4-Tupel von Bitmustern aus M betrachtet mit der Eigenschaft, dass sich jeweils zwei 4-Tupel an mindestens drei der vier Bitmuster aus M unterscheiden, so können auf diese Weise 272 Bitmuster der Länge 24 gefunden werden. Diese Bitmuster bilden daher eine (24, 8, 3)-Bitmustermenge. Die oben beschriebene Konstruktionsmethode liefert für einen linearen (12, 8, 3)-Code über GF2 ebenfalls ein Markierungsmuster der Länge 24 als obere Schranke.
  • Durch Replizieren von Bitmarkierungsmustern können die Techniken zur effizienten Dekodierung der Adresse mit den Eigenschaften zur Erkennung von mehreren simultan aktivierten Wortleitungen kombiniert werden.
  • Zusammenfassend wird gemäß verschiedenen Ausführungsformen eine Speicheranordnung bereitgestellt, wie sie in 5 dargestellt ist.
  • 5 zeigt eine Speicheranordnung 500.
  • Die Speicheranordnung 500 weist ein Speicherzellenfeld mit Spalten 502, 503 und Zeilen 504 von Speicherzellen 501, Bitleitungen 505 und Wortleitungen 506 auf, wobei jede Spalte 502, 503 einer Bitleitung 505 und jede Zeile 504 einer Wortleitung 506 zugeordnet sind.
  • Die Spalten 502, 503 von Speicherzellen weisen Spalten von Speicherzellen von einem ersten Spalten-Typ 502 auf, die eingerichtet sind, Nutzdaten zu speichern, und weisen Spalten von Speicherzellen von einem zweiten Spalten-Typ 503 auf, die eingerichtet sind, vorgegebene Überprüfungsdaten zu speichern.
  • Die Speicherzellen mindestens der Spalten von Speicherzellen vom zweiten Spalten-Typ 503 sind derart eingerichtet und mit den Bitleitungen 505 verbunden, dass die Speicherzellen 501 einer Spalte 502, 503 von Speicherzellen bei einem Lesezugriff die der Spalte 503 zugeordnete Bitleitung auf einen Wert setzen, der einer logischen Kombination der Werte entspricht, die von den Speicherzellen 501 der Spalte 503 gespeichert werden, die zu Zeilen von Speicherzellen gehören, die bei dem Lesezugriff adressiert werden.
  • Die Speicheranordnung weist ferner eine Detektionsschaltung 507 auf, die eingerichtet ist, bei einem Lesezugriff zu detektieren, ob eine Bitleitung 505, die einer Spalte von Speicherzellen vom zweiten Spalten-Typ 503 zugeordnet ist, auf einen Wert gesetzt wird, der der logischen Kombination von Werten entspricht, die von Speicherzellen der Spalte von Speicherzellen vom zweiten Spalten-Typ 503 gespeichert werden und deren Werte zu unterschiedlicher Zeilen von Speicherzellen gehören.
  • In anderen Worten werden gemäß verschiedenen Ausführungsformen in einem Speicherzellenfeld, dessen Speicherzellen derart ausgestaltet und an Bitleitungen angebunden sind, dass bei der gleichzeitigen Aktivierung von mehreren Wortleitungen, d.h. dem gleichzeitigen Adressieren von Speicherzellen unterschiedlicher Zeilen, an jeder Bitleitung eine logische Kombination der Inhalte der adressierten Speicherzellen, die mit dieser Bitleitung verbunden sind, ausgegeben werden, Speicherzellen mit Überprüfungsinformation vorgesehen. Anhand der vorab bekannten Überprüfungsinformation kann eine Detektionsschaltung überprüfen, ob bei einem Lese- oder Schreibzugriff mehrere Wortleitungen gleichzeitig aktiviert wurden.
  • Die logische Kombination ist beispielsweise eine (bitweise) UND-Kombination (d.h. UND-Verknüpfung) oder eine (bitweise) ODER-Kombination (d.h. ODER-Verknüpfung). Gemäß verschiedenen Ausführungsbeispielen wird anschaulich die Monotonie der logischen Verknüpfungen UND bzw. ODER genutzt, um durch die bitweise Verknüpfung von vorberechneten Mustern, welche gemäß einer Ausführungsform eindeutig den Wortleitungen eines Speicher-Arrays zugeordnet sind, eine Änderung des Hamming-Gewichtes des resultierenden Bitmusters zu erzielen. Dabei steigt bei einer mehrfachen Aktivierung von Wortleitungen durch die logische ODER Verknüpfung der jeweiligen Bitmuster das Hamming-Gewicht des Ergebnisses mindestens um den Wert d. Bei einer logischen UND Verknüpfung fällt es mindestens um den Wert d.
  • Die vorgegebenen Überprüfungsdaten werden beispielsweise in einer sicheren Umgebung in den Speicherzellen der Spalten von Speicherzellen vom zweiten Spalten-Typ gespeichert. Beispielsweise können die Überprüfungsdaten bei einem Herstellungsprozess in den Speicherzellen der Spalten von Speicherzellen vom zweiten Spalten-Typ nicht-flüchtig und eventuell sogar unüberschreibbar gespeichert werden.
  • Die Speicheranordnung bietet einen Schutzmechanismus für elektronische Speicher und kann zur Absicherung verschiedener Typen von elektronischer Speichern verwendet werden. Beispielsweise können die Speicherzellen RAM(Random Access Memory)-Speicherzellen, Flash-Speicherzellen, RRAM(Resistive RAM)-Speicherzellen und FeRAM(Ferroelectric)-Speicherzellen sein.
  • Die Speicheranordnung kann beispielsweise Teil eines Speichers sein, der weitere Speicherkomponenten wie einen Adressdecoder etc. aufweist. Der Speicher kann in einer elektronischen Vorrichtung angeordnet sein, beispielsweise einer Chipkarte (mit beliebigem Formfaktor), einem Steuergerät (z.B. verbunden mit einem Mikrocontroller), z.B. in einem Fahrzeug etc.
  • Im Folgenden werden zusammenfassend einige Ausführungsbeispiele angegeben.
  • Ausführungsbeispiel 1 ist eine Speicheranordnung, wie sie in 5 gezeigt ist.
  • Ausführungsbeispiel 2 ist eine Speicheranordnung gemäß Ausführungsbeispiel 1, wobei die Detektionsschaltung eine Alarmleitung aufweist und eingerichtet ist, ein Alarmsignal über die Alarmleitung auszugeben, wenn eine oder mehrere Bitleitungen, die jeweils einer Spalte von Speicherzellen vom zweiten Spalten-Typ zugeordnet sind, bei dem Lesezugriff auf einen Wert gesetzt werden, der der logischen Kombination von Werten entspricht, die von Speicherzellen der Spalte von Speicherzellen vom zweiten Spalten-Typ gespeichert werden, und deren Werte zu unterschiedlicher Zeilen von Speicherzellen gehören.
  • Ausführungsbeispiel 3 ist eine Speicheranordnung gemäß Ausführungsbeispiel 1 oder 2, wobei die Überprüfungsdaten für jede Zeile von Speicherzellen ein vorgegebenes Bitmuster aufweisen, wobei die Speicherzellen der Spalten von Speicherzellen vom zweiten Spalten-Typ der Zeile von Speicherzellen eingerichtet sind, das vorgegebene Bitmuster zu speichern.
  • Ausführungsbeispiel 4 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 3, wobei die Detektionsschaltung eingerichtet ist, zu detektieren, ob ein Bitmuster, auf das die Bitleitungen, die den Spalten von Speicherzellen vom zweiten Spalten-Typ zugeordnet sind, auf ein resultierendes Bitmuster gesetzt werden, das der logischen Kombination von Bitmustern unterschiedlicher Zeilen von Speicherzellen entspricht.
  • Ausführungsbeispiel 5 ist eine Speicheranordnung gemäß Ausführungsbeispiel 4, wobei die Detektionsschaltung eine Alarmleitung aufweist und eingerichtet ist, ein Alarmsignal über die Alarmleitung auszugeben, wenn das resultierende Bitmuster der logischen Kombination von Bitmustern unterschiedlicher Zeilen von Speicherzellen entspricht.
  • Ausführungsbeispiel 6 ist eine Speicheranordnung gemäß Ausführungsbeispiel 4 oder 5, wobei die vorgegebenen Bitmuster jeweils ein vorgegebenes Hamming-Gewicht haben und die Detektionsschaltung eingerichtet ist, basierend auf dem Hamming-Gewicht des resultierenden Bitmusters zu überprüfen, ob zu das resultierende Bitmuster der logischen Kombination von Bitmustern unterschiedlicher Zeilen von Speicherzellen entspricht.
  • Ausführungsbeispiel 7 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 4 bis 6, wobei sich die vorgegebenen Bitmuster zweier unterschiedlicher Zeilen in mindestens einer Anzahl von Stellen unterscheiden, die einem vorgegebenen Redundanzwert entspricht.
  • Ausführungsbeispiel 8 ist eine Speicheranordnung gemäß Ausführungsbeispiel 7, wobei die Speicheranordnung die Detektionsschaltung so oft wie der vorgegebene Redundanzwert aufweist.
  • Ausführungsbeispiel 9 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 8, wobei die Speicherzellen der Spalten von Speicherzellen vom zweiten Spalten-Typ nichtflüchtige Speicherzellen sind.
  • Ausführungsbeispiel 10 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 9, wobei die Speicherzellen der Spalten von Speicherzellen vom zweiten Spalten-Typ Nur-Lese-Speicherzellen sind.
  • Ausführungsbeispiel 11 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 10, wobei die Speicherzellen der Spalten von Speicherzellen vom ersten Spalten-Typ flüchtige Speicherzellen sind.
  • Ausführungsbeispiel 12 ist eine Speicheranordnung gemäß einem der Ausführungsbeispiele 1 bis 11, wobei die Detektionsschaltung eingerichtet ist, basierend auf einer Information über eine Zuordnung von Überprüfungsdaten zu Zeilen von Speicherzellen zu ermitteln, welche ein oder mehrere Wortleitungen bei dem Lesezugriff aktiviert wurden.
  • 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 (10)

  1. Speicheranordnung (500) aufweisend: ein Speicherzellenfeld mit Spalten (502, 503) und Zeilen (504) von Speicherzellen (501), Bitleitungen (505) und Wortleitungen (506), wobei jede Spalte einer Bitleitung (505) und jede Zeile (504) einer Wortleitung (506) zugeordnet ist; wobei die Spalten (502, 503) von Speicherzellen Spalten von Speicherzellen von einem ersten Spalten-Typ (502) aufweisen, die eingerichtet sind, Nutzdaten zu speichern, und Spalten von Speicherzellen von einem zweiten Spalten-Typ (503) aufweisen, die eingerichtet sind, vorgegebene Überprüfungsdaten zu speichern; wobei die Speicherzellen mindestens der Spalten von Speicherzellen vom zweiten Spalten-Typ (503) derart eingerichtet und mit den Bitleitungen (505) verbunden sind, dass die Speicherzellen einer Spalte von Speicherzellen bei einem Lesezugriff die der Spalte zugeordnete Bitleitung (505) auf einen Wert setzen, der einer logischen Kombination der Werte entspricht, die von den Speicherzellen der Spalte gespeichert werden, die zu Zeilen (504) von Speicherzellen gehören, die bei dem Lesezugriff adressiert werden; und eine Detektionsschaltung (507), die eingerichtet ist, bei einem Lesezugriff zu detektieren, ob eine Bitleitung (505), die einer Spalte von Speicherzellen von dem zweiten Spalten-Typ (503) zugeordnet ist, auf einen Wert gesetzt wird, der der logischen Kombination von Werten entspricht, die von Speicherzellen der Spalte von Speicherzellen von dem zweiten Spalten-Typ (503) gespeichert werden und deren Werte zu unterschiedlichen Zeilen (504) von Speicherzellen gehören, wobei die Detektionsschaltung (507) eingerichtet ist, zu detektieren, ob ein Bitmuster, auf das die Bitleitungen (505), die den Spalten von Speicherzellen vom zweiten Spalten-Typ (503) zugeordnet sind, auf ein resultierendes Bitmuster gesetzt werden, das der logischen Kombination von Bitmustern unterschiedlicher Zeilen (504) von Speicherzellen entspricht, wobei die vorgegebenen Bitmuster jeweils ein vorgegebenes Hamming-Gewicht haben und die Detektionsschaltung (507)eingerichtet ist, basierend auf dem Hamming-Gewicht des resultierenden Bitmusters zu überprüfen, ob das resultierende Bitmuster der logischen Kombination von Bitmustern unterschiedlicher Zeilen (504) von Speicherzellen entspricht.
  2. Speicheranordnung (500) gemäß Anspruch 1, wobei die Detektionsschaltung (507) eine Alarmleitung aufweist und eingerichtet ist, ein Alarmsignal über die Alarmleitung auszugeben, wenn eine oder mehrere Bitleitungen (505), die jeweils einer Spalte von Speicherzellen vom zweiten Spalten-Typ (503) zugeordnet sind, bei dem Lesezugriff auf einen Wert gesetzt werden, der der logischen Kombination von Werten entspricht, die von Speicherzellen der Spalte von Speicherzellen vom zweiten Spalten-Typ (503) gespeichert werden, und deren Werte zu unterschiedlicher Zeilen (504) von Speicherzellen gehören.
  3. Speicheranordnung (500) gemäß Anspruch 1 oder 2, wobei die Überprüfungsdaten für jede Zeile (504) von Speicherzellen ein vorgegebenes Bitmuster aufweisen, wobei die Speicherzellen der Spalten von Speicherzellen vom zweiten Spalten-Typ (503) der Zeile (504) von Speicherzellen eingerichtet sind, das vorgegebene Bitmuster zu speichern.
  4. Speicheranordnung (500) gemäß Anspruch 1, wobei die Detektionsschaltung (507) eine Alarmleitung aufweist und eingerichtet ist, ein Alarmsignal über die Alarmleitung auszugeben, wenn das resultierende Bitmuster der logischen Kombination von Bitmustern unterschiedlicher Zeilen (504) von Speicherzellen entspricht.
  5. Speicheranordnung (500) gemäß einem der Ansprüche 1 bis 4, wobei sich die vorgegebenen Bitmuster zweier unterschiedlicher Zeilen (504) in mindestens einer Anzahl von Stellen unterscheiden, die einem vorgegebenen Redundanzwert entspricht.
  6. Speicheranordnung (500) gemäß Anspruch 5, wobei die Speicheranordnung die Detektionsschaltung (507) so oft wie der vorgegebene Redundanzwert aufweist.
  7. Speicheranordnung (500) gemäß einem der Ansprüche 1 bis 6, wobei die Speicherzellen der Spalten von Speicherzellen vom zweiten Spalten-Typ (503) nichtflüchtige Speicherzellen sind.
  8. Speicheranordnung (500) gemäß einem der Ansprüche 1 bis 7, wobei die Speicherzellen der Spalten von Speicherzellen vom zweiten Spalten-Typ (503) Nur-Lese-Speicherzellen sind.
  9. Speicheranordnung (500) gemäß einem der Ansprüche 1 bis 8, wobei die Speicherzellen der Spalten von Speicherzellen vom ersten Spalten-Typ (502) flüchtige Speicherzellen sind.
  10. Speicheranordnung (500) gemäß einem der Ansprüche 1 bis 9, wobei die Detektionsschaltung (507) eingerichtet ist, basierend auf einer Information über eine Zuordnung von Überprüfungsdaten zu Zeilen (504) von Speicherzellen zu ermitteln, welche ein oder mehrere Wortleitungen (506) bei dem Lesezugriff aktiviert wurden.
DE102017116280.1A 2017-07-19 2017-07-19 Speicheranordnung Active DE102017116280B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102017116280.1A DE102017116280B4 (de) 2017-07-19 2017-07-19 Speicheranordnung
CN201810789754.8A CN109285576A (zh) 2017-07-19 2018-07-18 存储器装置
US16/040,075 US10546866B2 (en) 2017-07-19 2018-07-19 Memory arrangement and detection circuit for data protection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017116280.1A DE102017116280B4 (de) 2017-07-19 2017-07-19 Speicheranordnung

Publications (2)

Publication Number Publication Date
DE102017116280A1 DE102017116280A1 (de) 2019-01-24
DE102017116280B4 true DE102017116280B4 (de) 2024-02-22

Family

ID=64951328

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017116280.1A Active DE102017116280B4 (de) 2017-07-19 2017-07-19 Speicheranordnung

Country Status (3)

Country Link
US (1) US10546866B2 (de)
CN (1) CN109285576A (de)
DE (1) DE102017116280B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539588B2 (en) 2002-06-28 2009-05-26 Nxp B.V. Data carrier with detection means for detecting a change made of information stored with storing means
US20120327699A1 (en) 2011-06-27 2012-12-27 Ravindraraj Ramaraju Word line fault detection

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541076A (en) * 1982-05-13 1985-09-10 Storage Technology Corporation Dual port CMOS random access memory
JP3668673B2 (ja) * 2000-06-09 2005-07-06 株式会社日立コミュニケーションテクノロジー エラー訂正符号の構成方法、復号方法、伝送装置、ネットワーク
JP2003077294A (ja) * 2001-08-31 2003-03-14 Mitsubishi Electric Corp メモリ回路
US6879518B1 (en) * 2003-11-21 2005-04-12 Atmel Corporation Embedded memory with security row lock protection
US7546510B2 (en) * 2003-12-30 2009-06-09 Sandisk Il Ltd. Compact high-speed single-bit error-correction circuit
FR2982406A1 (fr) * 2011-11-07 2013-05-10 St Microelectronics Rousset Memoire securisee qui evite la degradation de donnees
US9490031B2 (en) * 2014-02-26 2016-11-08 Freescale Semiconductor, Inc. High-speed address fault detection using split address ROM
JP2015179960A (ja) * 2014-03-19 2015-10-08 ソニー株式会社 データ処理装置、及び、データ処理方法
CN105304143B (zh) * 2014-07-21 2018-10-02 群联电子股份有限公司 解码方法、存储器控制电路单元及存储器存储装置
US9673840B2 (en) * 2014-12-08 2017-06-06 SK Hynix Inc. Turbo product codes for NAND flash

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539588B2 (en) 2002-06-28 2009-05-26 Nxp B.V. Data carrier with detection means for detecting a change made of information stored with storing means
US20120327699A1 (en) 2011-06-27 2012-12-27 Ravindraraj Ramaraju Word line fault detection

Also Published As

Publication number Publication date
US10546866B2 (en) 2020-01-28
CN109285576A (zh) 2019-01-29
US20190027485A1 (en) 2019-01-24
DE102017116280A1 (de) 2019-01-24

Similar Documents

Publication Publication Date Title
DE102013222321B4 (de) Elektronisches Gerät mit einer Vielzahl von Speicherzellen und mit physikalisch unklonbarer Funktion
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE60103397T2 (de) Gesicherter eeprom-speicher mit fehlerkorrekturschaltung
DE2328869A1 (de) Verfahren zur pruefung eines digitalen speichersystems sowie zur durchfuehrung dieses verfahrens dienendes selbstpruefendes digitales speichersystem
DE102013215055A1 (de) Schaltungsanordnung und Verfahren mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE10338032B4 (de) Prozessor mit elektronischen Sicherungen zum Speichern von Geheimdaten
DE112014000311B4 (de) Absichern der Inhalte einer Speichereinheit
DE3318101A1 (de) Schaltungsanordung mit einem speicher und einer zugriffskontrolleinheit
DE102019102573A1 (de) Speichercontroller, speichersystem und verfahren zum verwenden einer speichervorrichtung
DE102017124313B4 (de) Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers
DE102017116280B4 (de) Speicheranordnung
DE102016123689B4 (de) Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung
EP1022659A2 (de) Schaltungsanordnung zur elektonischen Datenverarbeitung
DE102016107285A1 (de) Verfahren zur verwendung einer speichervorrichtung, speichervorrichtung und speichervorrichtungsanordnung
DE102005016051B4 (de) Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers
EP1085523B1 (de) Integrierter Speicher mit Speicherzellen und Referenzzellen
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102017124805B4 (de) Speicheranordnung und verfahren zum zwischenspeichern von speicherinhalten
DE102005033473B4 (de) Speicheranordnung und Verfahren zum Betrieb einer Speicheranordnung
DE102016122828B4 (de) Speicherschaltkreis und Verfahren zum Betreiben eines Speicherschaltkreises
DE102010006876B4 (de) Verfahren und Vorrichtung zur Kodierung von Daten
EP0505603B1 (de) Verfahren zum Testen eines Datenspeichers und zugehörigen Schutzspeichers und Anordnung zur Durchführung des Verfahrens
EP1639466B1 (de) Verfahren und vorrichtung zur fehlererkennung für einen cachespeicher und entsprechender cachespeicher
EP2002446B1 (de) Verfahren zum betreiben einer speichereinrichtung mit markierung von als fehlerhaft erkannten speicherblöcken

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division