DE102016123689A1 - Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung - Google Patents

Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung Download PDF

Info

Publication number
DE102016123689A1
DE102016123689A1 DE102016123689.6A DE102016123689A DE102016123689A1 DE 102016123689 A1 DE102016123689 A1 DE 102016123689A1 DE 102016123689 A DE102016123689 A DE 102016123689A DE 102016123689 A1 DE102016123689 A1 DE 102016123689A1
Authority
DE
Germany
Prior art keywords
word
overlay
data
wordline
memory circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102016123689.6A
Other languages
English (en)
Other versions
DE102016123689B4 (de
Inventor
Jan Otterstedt
Christian Peters
Steffen Sonnekalb
Robin Boch
Gerd Dirscherl
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 DE102016123689.6A priority Critical patent/DE102016123689B4/de
Priority to CN201711248677.7A priority patent/CN108172252B/zh
Priority to US15/831,439 priority patent/US10497408B2/en
Publication of DE102016123689A1 publication Critical patent/DE102016123689A1/de
Priority to US16/666,425 priority patent/US10937469B2/en
Application granted granted Critical
Publication of DE102016123689B4 publication Critical patent/DE102016123689B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Address circuits; Decoders; Word-line control circuits
    • 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/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • 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
    • 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
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/34Accessing multiple bits simultaneously
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • 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
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • G11C2029/2602Concurrent test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)

Abstract

In verschiedenen Ausführungsformen wird eine Speicherschaltung bereitgestellt. Die Speicherschaltung kann umfassen: mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind, mehrere Wortleitungen, wobei jede Wortleitung mit mehreren Wortabschnitten der mehreren Speicherzellen gekoppelt ist, wobei jeder Wortabschnitt dazu ausgelegt ist, ein Datenwort zu speichern, und mindestens eine Überlagerungswortleitung, die mit mehreren Überlagerungsabschnitten gekoppelt ist, wobei jeder Überlagerungsabschnitt mehrere Überlagerungsspeicherzellen umfasst, wobei jeder der mehreren Überlagerungsabschnitte ein Überlagerungswort umfasst, wobei die Speicherschaltung dazu ausgelegt ist, für jede der mehreren Wortleitungen aus jedem der Wortabschnitte gleichzeitig mit einem Überlagerungsabschnitt der mehreren Überlagerungsabschnitten zu lesen, wodurch als Ausgabe der Leseoperation ein Ergebnis einer an dem Datenwort und dem Überlagerungswort ausgeführten Logikoperation bereitgestellt wird.

Description

  • Technisches Gebiet
  • Verschiedene Ausführungsformen beziehen sich im Allgemeinen auf eine Speicherschaltung und ein Verfahren zum Betreiben einer Speicherschaltung.
  • Hintergrund
  • In einer typischen grundlegenden Anordnung können Speicherzellen in der Art einer Matrix angeordnet sein, wobei die Speicherzellen in einer Richtung mit gemeinsamen Wortleitungen verbunden sein können und in einer orthogonalen Richtung mit gemeinsamen Bitleitungen verbunden sein können. Weitere Hierarchien können auf dieser Anordnung basieren, aber dies ist hier wohl irrelevant.
  • Herkömmlicherweise kann eine „Lösch“-Operation alle Speicherzellen beeinflussen, die mit mindestens einer Wortleitung verbunden sind, wobei sie alle auf einen Wert gesetzt werden, der einen ungeschriebenen Zustand definiert, z. B. auf „1“, eine „Schreib“-Operation kann einige Speicherzellen beeinflussen, die mit einer Wortleitung verbunden sind, wobei sie alle auf einen Wert gesetzt werden, der einen geschriebenen Zustand definiert, z. B. auf „0“, wobei die spezifischen zu schreibenden Speicherzellen über die Bitleitungen ausgewählt werden können, und eine „Lese“-Operation kann einige Speicherzellen auslesen, die mit einer Wortleitung verbunden sind, was zu Daten führt, die aus „1“ und „0“ bestehen, wobei die spezifischen zu lesenden Speicherzellen über die Bitleitungen ausgewählt werden können.
  • Für alle diese Operationen kann eine Adresse definieren, welche Wortleitung und (mit Ausnahme der Löschoperation) welche Bitleitungen eingesetzt werden sollen.
  • Für einen Betrieb eines hochsicheren Speichers kann es wesentlich sein, zuverlässig verifizieren zu können, dass die Speicheroperationen wie Löschen, Schreiben und Lesen tatsächlich an den beabsichtigten Speicherzellen durchgeführt werden oder worden sind, und zwar sogar in dem Fall, in dem ein Angreifer physischen Zugriff auf den Chip hat.
  • Es kann schwierig sein, dies zu erreichen, wenn man davon ausgehen muss, dass der Angreifer nicht nur die Lösch-, Schreib- und/oder Leseoperationen manipulieren kann, sondern auch die Verifizierungsoperation selbst manipulieren kann.
  • Dieses Ziel kann zum Teil durch eine adressabhängige Datenverschlüsselung erreicht werden. Allerdings können nicht alle relevanten Fälle dadurch abgedeckt werden.
  • Zusammenfassung
  • In verschiedenen Ausführungsformen wird eine Speicherschaltung bereitgestellt. Die Speicherschaltung kann umfassen: mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind, mehrere Wortleitungen, wobei jede Wortleitung mit mehreren Wortabschnitten der mehreren Speicherzellen gekoppelt ist, wobei jeder Wortabschnitt dazu ausgelegt ist, ein Datenwort zu speichern, und mindestens eine Überlagerungswortleitung, die mit mehreren Überlagerungsabschnitten gekoppelt ist, wobei jeder Überlagerungsabschnitt eine mehrere Überlagerungsspeicherzellen umfasst, wobei jeder der mehreren Überlagerungsabschnitte ein Überlagerungswort umfasst, wobei die Speicherschaltung dazu ausgelegt ist, für jede der mehreren Wortleitungen aus jedem der Wortabschnitte gleichzeitig mit einem Überlagerungsabschnitt der mehreren Überlagerungsabschnitte zu lesen, um dadurch als Ausgabe der Leseoperation ein Ergebnis einer an dem Datenwort und dem Überlagerungswort ausgeführten Logikoperation bereitzustellen.
  • Figurenliste
  • In den Zeichnungen beziehen sich in den verschiedenen Ansichten gleiche Bezugszeichen im Allgemeinen auf die gleichen Teile. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu. Stattdessen wird im Allgemeinen Wert darauf gelegt, die Prinzipien der Erfindung zu veranschaulichen. In der folgenden Beschreibung werden verschiedene Ausführungsformen der Erfindung unter Bezugnahme auf die folgenden Zeichnungen beschrieben, wobei:
    • 1A und 1B schematische Zeichnungen einer Speicherschaltung gemäß verschiedenen Ausführungsformen zeigen;
    • 2 eine Darstellung eines Verfahrens zum Betreiben einer Speicherschaltung gemäß verschiedenen Ausführungsformen zeigt;
    • 3 beispielhafte Überlagerungswortleitungsdaten zur Verwendung in einer Speicherschaltung und in einem Verfahren zum Betreiben der Speicherschaltung gemäß verschiedenen Ausführungsformen zeigt;
    • 4 ein Ablaufdiagramm eines Verfahrens zum Betreiben einer Speicherschaltung gemäß verschiedenen Ausführungsformen zeigt;
    • 5 eine Darstellung eines Verfahrens zum Betreiben einer Speicherschaltung gemäß verschiedenen Ausführungsformen zeigt; und
    • 6 ein Ablaufdiagramm eines Verfahrens zum Betreiben einer Speicherschaltung gemäß verschiedenen Ausführungsformen zeigt.
  • Beschreibung
  • Die folgende genaue Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Veranschaulichung spezifische Einzelheiten und Ausführungsformen zeigen, in denen die Erfindung ausgeführt sein kann.
  • Das Wort „beispielhaft“ wird hierin im Sinne von „als Beispiel oder Veranschaulichung dienend“ verwendet. Jegliche Ausführungsform oder jeglicher Entwurf, der hierin als „beispielhaft“ beschrieben ist, soll nicht notwendigerweise als bevorzugt oder vorteilhaft gegenüber anderen Ausführungsformen oder Entwürfen betrachtet werden.
  • Das Wort „über“, das in Bezug auf ein abgeschiedenes Material verwendet wird, das „über“ einer Seite oder Oberfläche ausgebildet ist, kann hierin in dem Sinn verwendet werden, dass das abgeschiedene Material „direkt auf‟, z. B. in direktem Kontakt mit, der implizierten Seite oder Oberfläche ausgebildet sein kann. Das Wort „über“, das in Bezug auf ein abgeschiedenes Material verwendet wird, das „über“ einer Seite oder Oberfläche ausgebildet ist, kann hierin in dem Sinn verwendet werden, dass das abgeschiedene Material „indirekt auf‟ der implizierten Seite oder Oberfläche ausgebildet sein kann, wobei eine oder mehrere zusätzliche Schichten zwischen der implizierten Seite oder Oberfläche und dem abgeschiedenen Material angeordnet sind.
  • Hierbei kann für verschiedene Elemente (z. B. Speicherzellen, Wortleitungen, Bitleitungen, Markierungsbitleitungen usw.), die mehrmals auftreten können, ein gemeinsames Grundbezugszeichen verwendet werden, auf das beispielsweise in den Figuren und der Beschreibung davon eine Zahl zur Identifizierung einzelner Elemente der mehreren Elemente folgt. Auch in einem Fall, in dem nur die individuelle Identifizierung verwendet wird, ist das identifizierte Element als Repräsentant des Grundelements zu verstehen.
  • In verschiedenen Ausführungsformen können ein Entwurf und ein Betrieb eines hochsicheren nichtflüchtigen Speichers (NVM) bereitgestellt werden. Beispielsweise können eine Speicherschaltung und ein Verfahren zum Betreiben einer Speicherschaltung bereitgestellt werden.
  • In verschiedenen Ausführungsformen kann eine Speicherschaltung mit einer zusätzlichen Fähigkeit zum, beispielsweise gleichzeitigen, Durchführen einer Leseoperation aus zwei Wortleitungen in der Speicheranordnung bereitgestellt sein (dieser Prozess kann als „überlagertes Lesen“ bezeichnet werden), wodurch beispielsweise ein Datenwort in jeder Wortleitung adressiert wird. Das, beispielsweise gleichzeitige, Lesen kann ein Ergebnis einer implizit ausgeführten logischen Operation der beiden adressierten Datenworte ergeben.
  • In verschiedenen Ausführungsformen können mehrere Schreiboperationen an demselben Abschnitt einer Wortleitung in der Speicheranordnung durchgeführt werden (dieser Prozess kann als „überlagertes Schreiben“ bezeichnet werden), wobei ein Datenwort, das während einer ersten Schreiboperation geschrieben wird, als ein existierendes Wort oder ein Grundwort bezeichnet werden kann, und ein Datenwort, das während einer zweiten oder weiteren Schreiboperation geschrieben wird, als neues Datenwort oder einfach als Datenwort bezeichnet werden kann. Das Schreiben kann zum Speichern eines Ergebnisses einer implizit ausgeführten logischen Operation des existierenden Datenworts und des neuen Datenworts führen.
  • In verschiedenen Ausführungsformen können für das überlagerte Schreiben speziell eingeschränkte Zufallswerte verwendet werden, die besondere Eigenschaften aufweisen können und die durch Überschreiben erweitert werden können, so dass sie wiederum einige andere spezielle Eigenschaften aufweisen können.
  • Jedes der Merkmale der oben beschriebenen Ausführungsformen (überlagertes Lesen, überlagertes Schreiben und überlagertes Schreiben unter Verwendung der eingeschränkten Zufallswerte) kann an sich seine Vorteile haben und kann bereits einen relevanten Teil des Problems lösen (in der Lage sein, zuverlässig zu verifizieren, ob Speicheroperationen wie Löschen, Schreiben und Lesen an den beabsichtigten Speicherzellen tatsächlich durchgeführt werden oder worden sind), aber in Kombination, z. B. in Kombination aller drei Merkmale oder in Kombination von nur zwei der drei Merkmale, können sie extrem mächtig sein, um die Sicherheit zu verbessern.
  • In verschiedenen Ausführungsformen kann das überlagerte Lesen verwendet werden, um zu verifizieren, dass einige Daten aus den beabsichtigten Bitleitungen gelesen werden.
  • In verschiedenen Ausführungsformen kann eine korrekte Ausführung einer Leseoperation verifiziert werden, indem nicht nur die adressierte Wortleitung auf normale Weise ausgelesen wird (was ein angefordertes Datenwort ergeben kann), sondern zusätzlich das gleiche Wort ausgelesen wird, aber jetzt überlagert mit einem entsprechenden Überlagerungswort einer Überlagerungswortleitung. Das Überlagerungswort kann dazu ausgelegt sein, eine Identifizierung der Wortleitung zu ermöglichen, beispielsweise durch Einbeziehen eines Adresscodes. Das überlagerte Lesen kann durchgeführt werden, indem das Datenwort und das Überlagerungswort gleichzeitig gelesen werden, wodurch inhärent eine logische Operation an paarweisen Bits des Datenworts bzw. des Überlagerungsworts durchgeführt wird. Die logische Operation kann von einer Gestaltung, z. B. einem Typ, der Speicherschaltung abhängen und kann beispielsweise eine UND-, ODER-, NUND-, NODER-, XODER- oder XNODER-Operation sein. Unter Verwendung des bekannten Überlagerungsworts, des allein gelesenen Datenworts und des überlager gelesenen Datenworts kann geprüft werden, ob das Anwenden der Logikoperation auf das Paar des Datenworts und des Überlagerungsworts in dem überlagert gelesenen Wort resultiert. Wenn diese Bedingung nicht erfüllt ist, kann ein anderer (oder kein) Satz von Bitleitungen (die einer Wortadresse innerhalb der Wortleitung entsprechen können) durch die Leseoperation anvisiert worden sein als beabsichtigt.
  • In verschiedenen Ausführungsformen kann es möglich sein, die Worte auf der Überlagerungswortleitung WLol wie in jeder normalen Speicherzelle zu schreiben. Somit kann eine Wortposition (die einer Wortadresse entsprechen kann) absichtlich als ungültig markiert werden, indem die entsprechende Position auf WLol auf einen Wert geschrieben wird, der ungültig ist, z. B. auf alle „0‟', so dass die oben beschriebene Überprüfung (wenn das Anwenden der Logikoperation auf das Paar des Datenworts und des Überlagerungsworts in dem überlagerungsgelesenen Wort resultiert) mit sehr hoher Wahrscheinlichkeit fehlschlägt, bis die Wortleitung WLol gelöscht wird und erneut initialisiert wird.
  • In verschiedenen Ausführungsformen können mehr als eine Überlagerungswortleitung WLol, z. B. mit unterschiedlichen Codes, verwendet werden. Dadurch können mehrere Kombinationen der Überlagerungswortleitungen mit der ausgewählten Wortleitung während des überlagerten Lesens bereitgestellt werden, so dass ein noch höheres Datensicherheitsniveau erreicht werden kann.
  • In verschiedenen Ausführungsformen können zwei komplementär codierte Wortleitungen verwendet werden, wobei beispielsweise Werte einer der beiden komplementären Wortleitungen inverse Werte von Werten der anderen Wortleitung sind. In einem solchen Fall kann eine perfekte Invalidierung erreicht werden, indem die jeweilige Position auf beiden komplementär kodierten Wortleitungen auf alle „0“ geschrieben wird.
  • In verschiedenen Ausführungsformen kann ein Verfahren zum sicheren Überschreiben von Daten bereitgestellt sein. Das Verfahren kann als überlagertes Schreiben bezeichnet werden. In verschiedenen Ausführungsformen kann nach dem Schreiben noch geprüft werden, ob die korrekten Daten überschrieben wurden (und nicht irgendwelche anderen Daten oder überhaupt keine Daten). In verschiedenen Ausführungsformen kann ein bereits existierendes Datenwort (mit anderen Worten ein bereits in einem Speicher gespeichertes Datenwort) mit mindestens einem vordefinierten Muster (auch als Prüfwort oder Überlagerungswort bezeichnet) überschrieben werden. Die Schreiboperation kann implizit eine logische Operation (z. B. bitweise) an dem Datenwort und dem Überlagerungswort ausführen, was ein überlagertes Wort ergibt. Die logische Operation kann von einer Gestaltung, z. B. einem Typ, der Speicherschaltung abhängen und kann beispielsweise eine UND- oder eine ODER-Verknüpfung sein.
  • In verschiedenen Ausführungsformen kann das überlagerte Schreiben verwendet werden, um zu verifizieren, dass tatsächlich die beabsichtigten Daten überschrieben wurden. In verschiedenen Ausführungsformen kann ein Durchführen eines Leseprozesses nach dem Überschreiben ein überlagertes Wort (des Datenworts, das mit dem Überlagerungswort überlagert ist) ergeben. In Kombination mit dem, z. B. bekannten, Überlagerungswort und dem, z. B. bekannten, Datenwort kann geprüft werden, ob das Anwenden der Logikoperation auf das Paar des Datenworts und des Überlagerungsworts zu dem überlagerten Wort führt. Wenn diese Bedingung nicht erfüllt ist, kann ein anderer (oder kein) Teil des Speichers als beabsichtigt war durch die Schreiboperation anvisiert worden sein, was bedeuten kann, dass das Datenwort weiterhin verfügbar sein kann, anstatt überschrieben zu sein.
  • In verschiedenen Ausführungsformen kann das Überlagerungswort eine gleiche Anzahl von „1“ und „0“ enthalten, so dass die Logik UND die Hälfte der Bits in einem Wort beeinflussen kann.
  • In verschiedenen Ausführungsformen können das Datenwort und/oder das Überlagerungswort als eingeschränkte Zufallswerte ausgebildet werden, wobei die zufälligen Werte beispielsweise in Bezug auf eine Anzahl von geschriebenen Bits eingeschränkt sein können, beispielsweise um eine definierte Anzahl von „0“ zu enthalten. Für das Überlagerungswort können die geschriebenen Bits dazu ausgelegt sein, ungeschriebenen Bits des Datenworts zu entsprechen. Auf diese Weise kann in verschiedenen Ausführungsformen eine Anzahl von geschriebenen Bits des überlagerten Worts einer Summe der geschriebenen Bits des Datenworts und der geschriebenen Bits des Überlagerungsworts entsprechen. Dies kann es ermöglichen, zu verifizieren, ob eine Anzahl von geschriebenen Bits eines gelesenen Worts, z. B. des überlagerten Worts, das aus einer Leseoperation resultiert, der Summe der geschriebenen Bits des Datenworts und des Überlagerungsworts entspricht, auch wenn beide Worte mit Ausnahme dieser Einschränkung zufällig sind.
  • 1A und 1B zeigen schematische Zeichnungen einer Speicherschaltung 100 gemäß verschiedenen Ausführungsformen, 2 zeigt eine Darstellung eines Verfahrens zum Betreiben einer Speicherschaltung gemäß verschiedenen Ausführungsformen, und 3 zeigt beispielhafte Überlagerungswortleitungsdaten zur Verwendung in einer Speicherschaltung 100 und in einem Verfahren zum Betreiben der Speicherschaltung gemäß verschiedenen Ausführungsformen.
  • Die Speicherschaltung 100 kann in verschiedenen Ausführungsformen mehrere elektrisch programmierbare Speicherzellen 102 umfassen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehreren Zeilen und mehreren Spalten angeordnet sind, wobei die Speicherzellenanordnung jeweils eine beliebige geeignete Anzahl von Speicherzellen, Zeilen und Spalten aufweisen kann. Die Speicherzellen 102 können so ausgebildet sein, wie es im Stand der Technik bekannt ist. Zum Beispiel kann jede Speicherzelle 102 mindestens einen Transistor mit einer Source, einem Drain und einem Gate umfassen. Die beispielhafte Speicherschaltung 100, die in 1A gezeigt ist und auf einer HS3P-Speicheranordnung basieren kann, kann beispielsweise zwei Transistoren pro Speicherzelle enthalten. Speicherschaltungen anderer beispielhafter Ausführungsformen, z. B. eine Speicheranordnung einer 1T-UCP-Speicheranordnung (nicht gezeigt), können beispielsweise einen Transistor pro Speicherzelle enthalten.
  • Die Speicherschaltung 100 kann in verschiedenen Ausführungsformen ferner mehrere Wortleitungen 114 umfassen. Jede der Wortleitungen 114 kann beispielsweise wie in der Technik bekannt mit mehreren Wortabschnitten der mehreren Speicherzellen 102 gekoppelt sein, wobei jeder Wortabschnitt dazu ausgelegt sein kann, ein Datenwort zu speichern. Zum Beispiel kann zur Kopplung jede Wortleitung 114 elektrisch mit einem Gateanschluss jeder der jeweiligen einen oder mehreren Speicherzellen 102 verbunden sein, mit denen die Wortleitung 114 gekoppelt sein kann.
  • Die Speicherschaltung 100 kann in verschiedenen Ausführungsformen ferner mindestens eine Überlagerungswortleitung 114o umfassen, die mit mehreren Überlagerungsabschnitten gekoppelt ist, wobei jeder Überlagerungsabschnitt mehrere Überlagerungsspeicherzellen 102o umfasst, wobei jeder der mehreren Überlagerungsabschnitte ein Überlagerungswort enthalten kann.
  • In der in 1A und 1B gezeigten Ausführungsform ist eine HS3P-Speicherschaltung als repräsentatives Beispiel dargestellt. In der HS3P-Speicherschaltungsanordnung kann jede Wortleitung 114 der mehreren Wortleitungen 114 einen Auswahlgateabschnitt 114_SG, WL-SG und einen Steuergateabschnitt 114_CG, WL-CG umfassen. Die verschiedenen Ausführungsformen sind jedoch nicht auf diese Konfiguration beschränkt. Beispielsweise kann jede Wortleitung 114 der mehreren Wortleitungen 114 nur einen einzelnen Abschnitt, z. B. Steuergateabschnitt, umfassen oder kann mehr als zwei Abschnitte umfassen.
  • Die Speicherzellen 102 können in verschiedenen Ausführungsformen dazu ausgelegt sein, mindestens zwei verschiedene Zustände anzunehmen. Die Speicherzellen 102 können beispielsweise auf zwei, drei, vier oder mehr verschiedene Zustände (auch als Pegel bezeichnet) gesetzt werden und/oder zwischen diesen umgeschaltet werden. In den folgenden Beispielen werden Zweipegel-Speicherzellen beschrieben und die beiden Pegel werden als 1 bzw. 0 bezeichnet, aber die beschriebenen Prinzipien sind auch auf Speicherzellen mit drei, vier oder mehr Pegeln anwendbar.
  • In verschiedenen Ausführungsformen kann die Speicherschaltung 100 dazu ausgelegt sein, einen normalen Leseprozess durchzuführen, der in 1A visualisiert ist.
  • In verschiedenen Ausführungsformen kann der in 1A gezeigte normale Prozess wie in dem Stand der Technik bekannt durchgeführt werden. Zum Beispiel können zum Lesen aus zwei Speicherzellen 102_1, 102_2, die sich auf einer Wortleitung 114_1 und auf zwei verschiedenen Bitleitungen 110_3, 110_5 befinden, die (einzelne) Wortleitung 114 der mehreren Wortleitungen 114 und die zwei Bitleitungen 110_3, 110_5 beispielsweise durch Anlegen einer Spannung aktiviert werden. In 1A ist dies durch Setzen einer Spannung beider Abschnitte 114_SG1, 114_CG1 der Wortleitung 114_1 auf 3,5 V und durch Setzen einer Vorladung der Bitleitungen 110_3, 110_5 auf 0,8 V angezeigt (die spezifischen Spannungen können beispielhaft sein). Wenn ein Wert einer Speicherzelle 102 als D[102] ausgedrückt wird, kann die Ausgabe z. B. der aus dem dargestellten Leseprozess resultierenden Lesedaten als {D[102_1], D[102_2]} geschrieben werden.
  • In verschiedenen Ausführungsformen kann die Speicherschaltung 100 dazu ausgelegt sein, für jede der mehreren Wortleitungen 114 aus jedem der Wortabschnitte gleichzeitig mit einem Überlagerungsabschnitt der mehreren Überlagerungsabschnitte zu lesen, wodurch als eine Ausgabe der Leseoperation ein Ergebnis einer Logikoperation, z. B. UND, ODER, NUND, NODER, XODER oder XNODER, die an dem Datenwort und dem Überlagerungswort ausgeführt werden kann, geleifert wird. Dies kann als ein überlagerter Leseprozess oder als überlagertes Lesen bezeichnet werden und ist in 1B visualisiert.
  • In verschiedenen Ausführungsformen kann bei dem überlagerten Leseprozess zum Lesen, z. B. zum Lesen eines Bitwerts, aus zwei Speicherzellen 102_1, 102_2, die sich auf einer Wortleitung 114_1 befinden, und zum Überlagern von diesen während des Lesens mit Signalen, z. B. Bitwerten, aus Überlagerungsspeicherzellen 102o (in 1B sind die einzelnen Überlagerungszellen mit 102o_1 bzw. 102o_2 markiert, wobei ein Signal aus der Speicherzelle 102_1 durch das Signal aus der Überlagerungszelle 102o_1 überlagert werden soll und ein Signal aus der Speicherzelle 102_2 durch das Signal aus der Überlagerungszelle 102o_2 überlagert werden soll), die Wortleitung 114_3 (einschließlich 114_SG3 und 114_CG3) zusätzlich zum Aktivieren der Wortleitung 114_1 und der Bitleitungen 110_3 110_5 wie oben beschrieben beispielsweise durch Setzen ihrer Spannung, z. B. auf einen beispielhaften Wert von 3,5 V, aktiviert werden.
  • Dadurch kann ein Ausgangssignal, z. B. eine Ausgangsspannung, aus dem Leseprozess, z. B. ein Signal, das an einen Leseverstärker (nicht gezeigt), z. B. an mehrere Leseverstärker, geliefert wird, ein überlagertes Signal der beiden Speicherzellen sein, die auf derselben Bitleitung 110 angeordnet sind. Wie in 1B gezeigt kann die Bitleitung 110_3 ein überlagertes Signal der Speicherzelle 102_1 und der Überlagerungsspeicherzelle 102o_1 bereitstellen und die Bitleitung 110_5 kann ein überlagertes Signal der Speicherzelle 102_2 und der Überlagerungsspeicherzelle 102o_2 bereitstellen, die, z. B. durch den Leseverstärker, in einen Ausgangsbitwert umgewandelt werden können.
  • In verschiedenen Ausführungsformen kann der Ausgangsbitwert ein Ergebnis einer an dem Bitwert der Speicherzelle 102 und der Überlagerungsspeicherzelle 102o ausgeführten Logikoperation sein. Eine Art der logischen Operation, z. B. ob eine ODER-Operation oder eine UND-Operation beispielsweise inhärent ausgeführt wird, kann von einer Konfiguration der Speicherschaltung abhängen. In der beispielhaften HS3P-Speicherschaltung kann eine ODER-Operation durchgeführt werden (beide ausgewählten (Überlagerungs-)Speicherzellen 102, 102o können in der Lage sein, die Bitleitung nach unten zu ziehen, wobei eine leitende Zelle ausreichend ist, um in einem „gelöschten“ Signal zu resultieren (in der HS3P-Speicherschaltung kann einem gelöschten Bit ein Wert von „1“ zugewiesen sein und einem geschriebenen Bit kann ein Wert von „0“ zugewiesen sein), wodurch die Konfiguration der Speicheranordnung von 1A eingerichtet werden kann, um eine ODER-Operation durchzuführen).
  • In verschiedenen Ausführungsformen (nicht gezeigt) kann die Speicherschaltung dazu ausgelegt sein, eine UND-Operation auszuführen, z. B. in Speicherschaltungen mit einer NUND-Struktur, wie sie z. B. typischerweise in eigenständigen Speichervorrichtungen wie Speichersticks und Festkörpervorrichtungen (SSDs) verwendet werden.
  • In verschiedenen Ausführungsformen kann das erneute Zuweisen von gelöscht/geschrieben zu den entgegengesetzten logischen Werten „0“/„1“ (z. B. „0“ zu gelöscht und „1“ zu geschrieben) ebenfalls zu einer anderen logischen Operation führen.
  • Zum Beispiel kann das überlagerte Signal, das für/von der Bitleitung 110_3 bereitgestellt wird, den Werten der Speicherzelle 102_1 und der Überlagerungsspeicherzelle 102o_1 entsprechen, die durch eine ODER-Operation kombiniert werden, und das überlagerte Signal, das für/von der Bitleitung 110_5 bereitgestellt wird, kann den Werten der Speicherzelle 102_2 und der Überlagerungsspeicherzelle 102o_2 entsprechen, die durch eine ODER-Operation kombiniert werden. Die gelesenen Werte, z. B. die gelesenen Daten, z. B. die gelesenen Bits, dieses Beispiels können ausgedrückt werden als {D[102_1] ODER D[102o_1]; D[102_2] ODER D[102o_2]}.
  • In verschiedenen Ausführungsformen kann eine korrekte Ausführung einer Leseoperation verifiziert werden, indem nicht nur die adressierte Wortleitung 114 (114_1 in 1A und 1B) auf normale Weise wie beispielsweise in 1A gezeigt ausgelesen wird, was ein angefordertes Datenwort D ergeben kann, das mehrere Bits enthalten kann, sondern indem zusätzlich das gleiche Wort, das mit mindestens einem entsprechenden Überlagerungswort A mindestens einer Überlagerungswortleitung 114, 114o überlagert ist (in 1B kann die Wortleitung 114_3 als Überlagerungswortleitung 114o verwendet werden), ausgelesen wird, wobei das Überlagerungswort A mehrere Bits, beispielsweise eine Anzahl von Bits, die gleich der Anzahl der Bits des Datenworts sein kann, enthalten kann, und wobei das überlagerte Lesen als gelesenes Ergebnis das überlagerte Wort Dol liefern kann.
  • In verschiedenen Ausführungsformen können die Daten, d. h. das überlagerte Wort Dol, das durch diese Leseoperation erzeugt wird, durch eine Logikoperation definiert werden, die z. B. bitweise an den Datenbits (Bits des Datenworts D und des entsprechenden Überlagerungsworts A) auf den Wortleitungen 114_1, 114o durchgeführt wird, die mit denselben Bitleitungen (110_3 für das Datenwort, das das Bit in der Speicherzelle 102_1 enthält, und das entsprechende Überlagerungswort, das das Bit in der Überlagerungsspeicherzelle 102o_1 enthält; 110_5 für das Datenwort, das das Bit in der Speicherzelle 102_2 enthält, und das entsprechende Überlagerungswort, das das Bit in der Überlagerungsspeicherzelle 102o_2 enthält) und somit derselben Leseschaltung, typischerweise einem Leseverstärker, verbunden sind.
  • In verschiedenen Ausführungsformen kann die Logikoperation eine ODER-Operation oder eine UND-Operation sein, abhängig von einer Konfiguration der Speicheranordnung 100.
  • Die Logikoperation kann in verschiedenen Ausführungsformen implizit durch die parallele Aktivierung der Speicherzellen (d. h. der Speicherzelle 102 und der Überlagerungsspeicherzelle 102o) und nicht durch ein dediziertes Logikgatter durchgeführt werden.
  • 2 zeigt in dem Feld 200a eine Anwendung der Logikoperation, in diesem Fall der UND-Operation, auf das Datenwort D und das Überlagerungswort A, was in dem überlagerten Wort Dol resultiert, und in dem Feld 200b eine Anwendung der Logikoperation, in diesem Fall der ODER-Operation, auf das Datenwort D und das Überlagerungswort A, was in dem überlagerten Wort Dol resultiert.
  • In verschiedenen Ausführungsformen kann die Speicherschaltung 100 einen Schalter (nicht gezeigt) enthalten. Der Schalter kann dazu ausgelegt sein, zwischen dem normalen Lesemodus und dem oben beschriebenen Überlagerungslesemodus umzuschalten.
  • In verschiedenen Ausführungsformen kann eine korrekte Ausführung einer Leseoperation verifiziert werden, indem sowohl das normale Lesen als auch das überlagerte Lesen (unter Verwendung des Überlagerungsworts A) des Datenworts, z. B. wie oben beschrieben, ausgeführt wird, was das Datenwort D und das überlagerte Datenwort Dol ergibt. Unter Verwendung des bekannten Überlagerungsworts A, des gelesenen Datenworts D und des überlagerten Datenworts Dol kann geprüft werden, ob das Anwenden der Logikoperation auf das Paar des Datenworts D und des Überlagerungsworts A zu dem überlagerten Wort Dol führt. Mit anderen Worten kann geprüft werden, ob D ODER A = Dol wahr ist (für andere Speicherschaltungskonfigurationen kann die geeignete Logikoperation und somit die Überprüfung anders sein, z. B. kann geprüft werden, ob D UND A = Dol ist). Wenn diese Bedingung nicht erfüllt ist, kann ein anderer (oder kein) Satz von Bitleitungen 110 (die einer Wortadresse innerhalb der Wortleitung 114 entsprechen können) als beabsichtigt durch den Leseprozess anvisiert worden sein.
  • In verschiedenen Ausführungsformen kann das Überlagerungswort A dazu ausgelegt sein, eine Identifizierung der Bitleitung(en) 110 und/oder der Wortleitung 114, die das Überlagerungswort A adressiert, zu ermöglichen.
  • In verschiedenen Ausführungsformen kann eine Verifizierung, ob der beabsichtigte Wortabschnitt gelesen wurde, unter Verwendung des überlagerten Lesens des zugeordneten Überlagerungsabschnitts ermöglicht werden.
  • In verschiedenen Ausführungsformen kann ein Adresscode in dem (den) Überlagerungswort(en) A enthalten sein, z. B. in dem (den) Überlagerungsabschnitt(en) gespeichert sein. Beispielsweise kann der in dem (den) Überlagerungsabschnitt(en) gespeicherte Adresscode eine Position des jeweiligen Überlagerungsabschnitts innerhalb der Wortleitung 114 angeben und/oder der in dem (den) Überlagerungsabschnitt(en) kann die Wortleitung 114 der mehreren Wortleitungen 114 angeben und/oder der in dem (den) Überlagerungsabschnitt(en) gespeicherte Adresscode kann die Überlagerungswortleitung 114o der mehreren Überlagerungswortleitungen 114o angeben.
  • In verschiedenen Ausführungsformen kann die mindestens eine Überlagerungswortleitung 114o eine Überlagerungswortleitung 114o umfassen, die mehreren Wortleitungen 114 zugeordnet sein kann. Eine solche Überlagerungswortleitung 114o kann auch als gemeinsame Überlagerungswortleitung 114o bezeichnet werden. In einer solchen Ausführungsform kann dann, wenn eine Leseoperation eines Datenworts D, das in einer der mehreren Wortleitungen 114 gespeichert ist, verifiziert werden soll, das Datenwort D normal gelesen und mit dem Überlagerungswort A überlagert gelesen werden, was in dem überlagerten Datenwort Dol resultiert, so dass die Überprüfung wie oben beschrieben durchgeführt werden kann. Das Überlagerungswort A kann in verschiedenen Ausführungsformen (für ein Beispiel siehe 3) dazu ausgelegt sein, eine Überprüfung zu ermöglichen, ob D (und A) aus einem korrekten Wortabschnitt (innerhalb der Wortleitung 114) gelesen wurde(n). Beispielsweise können die mehreren Überlagerungsworte A, die in der mehreren Wortabschnitten der Wortleitung 114 gespeichert sind, einen Code bilden. Der Code kann beispielsweise dazu ausgelegt sein, eine Adresse des Wortabschnitts innerhalb der Wortleitung 114 anzugeben. Um eine solche Überprüfung zu ermöglichen, kann die gleiche Überlagerungswortleitung 114o für eine Mehrzahl von Wortleitungen 114 verwendet werden, z. B. für die mehreren Wortleitungen 114 oder für eine Teilmenge der mehreren Wortleitungen 114.
  • In verschiedenen Ausführungsformen kann in einem Fall, in dem eine Überlagerungswortleitung 114o für die mehreren Wortleitungen 114 bereitgestellt ist, immer dann, wenn die Speicherschaltung 100 dazu ausgelegt ist, ein überlagertes Lesen einer der mehreren Wortleitungen 114 bereitzustellen, die Überlagerungswortleitung 114o gleichzeitig mit der Wortleitung 114 aktiviert werden..
  • In verschiedenen Ausführungsformen kann die mindestens eine Überlagerungswortleitung 114o mehrere Überlagerungswortleitungen 114o umfassen, die mehreren Wortleitungen 114 zugeordnet sein können. In einer solchen Ausführungsform kann dann, wenn eine Leseoperation eines Datenworts D, das in mehreren Wortleitungen 114 gespeichert ist, verifiziert werden soll, das Datenwort D normal gelesen werden und mit dem Überlagerungswort A überlagert gelesen werden, was in dem überlagerten Datenwort Dol resultiert, so dass die Überprüfung wie oben beschrieben durchgeführt werden kann. Das Überlagerungswort A kann in verschiedenen Ausführungsformen (für ein Beispiel siehe 3) dazu ausgelegt sein, eine Überprüfung zu ermöglichen, ob D (und A) aus einem korrekten, z. B. dem adressierte, Wortabschnitt (innerhalb der Wortleitung 114) gelesen wurde(n), und möglicherweise auch eine Überprüfung zu ermöglichen, ob D aus einer korrekten Wortleitung 114 gelesen wurde. In einem solchen Fall kann jede der Wortleitungen 114 mindestens eine zugeordnete Überlagerungswortleitung 114o aufweisen, die nur der Wortleitung 114 zugeordnet sein kann, für deren Verifizierung sie ausgelegt ist.
  • In verschiedenen Ausführungsformen kann in einem Fall, in dem die mehreren Überlagerungswortleitungen 114o für die mehreren Wortleitungen 114 bereitgestellt sind, immer dann, wenn die Speicherschaltung 100 dazu ausgelegt ist, ein überlagertes Lesen einer der mehreren Wortleitungen 114 bereitzustellen, zumindest deren eine zugeordnete Überlagerungswortleitung 114o, die nicht irgendeiner anderen der mehreren Wortleitungen 114 zugeordnet sein kann, gleichzeitig mit der Wortleitung 114 aktiviert werden.
  • In verschiedenen Ausführungsformen können weitere Überlagerungswortleitungen 114o der mehreren Überlagerungswortleitungen 114o gleichzeitig mit der Wortleitung 114 aktiviert werden. Beispielsweise kann für jede der Wortleitungen 114 ihre eine zugeordnete Überlagerungswortleitung 114o, die keiner anderen der mehreren Wortleitungen 114 zugeordnet sein kann (die beispielsweise dazu ausgelegt sein kann, die korrekte Wortleitung 114 zu verifizieren), gleichzeitig mit der Wortleitung 114 aktiviert werden und zusätzlich eine gemeinsame Überlagerungswortleitung der mehreren Überlagerungswortleitungen 114o aktiviert werden, wobei die gemeinsame Überlagerungswortleitung beispielsweise wie oben beschrieben dazu ausgelegt sein kann, die korrekte Wortposition innerhalb der Wortleitung 114 zu verifizieren.
  • In verschiedenen Ausführungsformen können unter Verwendung von mehr als einer Überlagerungswortleitung 114o mehrere Kombinationen ausgewählter Überlagerungswortleitungen 114o während eines überlagerten Lesens möglich sein, so dass ein noch höheres Datensicherheitsniveau erreicht werden kann. Die Verwendung von zwei komplementär kodierten Überlagerungswortleitungen 114o_1 und 114o_2 (d. h. mit Bitwerten für die Überlagerungswortleitung 114_o1 = inv (Bitwerte für die Überlagerungswortleitung 114_o2)) kann vorteilhaft sein.
  • In verschiedenen Ausführungsformen können andere Codes, die den Wortabschnitt und/oder die Wortleitungsadresse vielleicht nicht enthalten, als der Code der mehreren Überlagerungsworte A verwendet werden.
  • In verschiedenen Ausführungsformen kann ein Fehlerkorrekturcode in den Überlagerungsworten A und/oder den Datenworten D verwendet werden.
  • In verschiedenen Ausführungsformen kann, da Worte auf der Überlagerungswortleitung 114o wie bei jeder normalen Speicherzelle 102 geschrieben werden können, ein Wortabschnitt (und das jeweilige Datenwort D, das darin gespeichert ist), z. B. absichtlich, ungültig gemacht werden, z. B. durch Setzen von mindestens einem der Bits des zugehörigen Überlagerungsworts A auf einen ungültigen Wert (z. B. auf alle „0“), mit anderen Worten auf einen Wert, der bei Verifizierung durch Überprüfen, ob D ODER A = Dol wahr ist bzw. on D UND A = Dol ist, mit sehr hoher Wahrscheinlichkeit in „falsch“ resultieren kann oder mit anderen Worten zu einem Fehlschlag führen kann. Dadurch kann das Datenwort D ungültig gemacht werden, ohne dass es notwendig ist, das Datenwort D z. B. durch Ausführen einer Löschoperation an dem jeweiligen Wortabschnitt zu löschen. Eine Schreiboperation zum Setzen, z. B. Ändern, eines oder mehrerer der Datenbits des Datenworts D auf einen „falschen“ Wert kann schneller sein als die Löschoperation.
  • In verschiedenen Ausführungsformen kann, z. B. in einem Fall, in dem wie oben beschrieben die beiden komplementär codierten Überlagerungswortleitungen 114o_1, 114o_2 verwendet werden, eine perfekte Invalidierung beispielsweise ein Schreiben der jeweiligen Position auf beiden Überlagerungswortleitungen 114o_1, 114o_2 auf alle „0“ umfassen oder daraus bestehen.
  • In verschiedenen Ausführungsformen kann ein überlagertes Lesen verwendet werden, um zu verifizieren, dass einige Daten aus beabsichtigten Bitleitungen gelesen werden, z. B. aus Wortleitungsabschnitten, die den beabsichtigten Bitleitungen 110 zugeordnet sind.
  • 3 zeigt beispielhafte Überlagerungswortleitungsdaten, z. B. Überlagerungsworte A, die in verschiedenen Ausführungsformen zum Verifizieren verwendet werden können, dass einige Daten aus beabsichtigten Bitleitungen gelesen werden, z. B. aus Wortleitungsabschnitten, die den beabsichtigten Bitleitungen 110 zugeordnet sind.
  • In verschiedenen Ausführungsformen kann eine Überlagerungswortleitung (zumindest teilweise) mit Datenworten gefüllt sein, die die Wortadresse eindeutig codieren können.
  • In der beispielhaften Darstellung von 3 kann die Überlagerungswortleitung mehrere (hier: acht) Wortleitungsabschnitte mit Adressen 0 bis 7 enthalten. In jedem der Wortleitungsabschnitte kann eines der mehreren Überlagerungsworte A gespeichert sein. Jedes der Überlagerungsworte A kann midestens einen Adressteil addrw enthalten, der die jeweilige Adresse des Wortleitungsabschnitts codieren kann. Mit anderen Worten kann addrw den Teil einer Adresse bezeichnen, der das Wort innerhalb einer Wortleitung auswählen kann. Beispielsweise kann in den Überlagerungsworten A des Beispiels von 3 mit sechs Bits der Adressteil der Überlagerungsworte drei Bits haben. Der Adressteil addrw des Wortleitungsabschnitts mit der Adresse 0 kann die Bits 000 enthalten, der Wortleitungsabschnitt mit der Adresse 1 kann die Bits 001 enthalten, der Wortleitungsabschnitt mit der Adresse 2 die Bits 010 enthalten usw.
  • Somit kann in einem Fall einer positiven Verifizierung des Vergleichs eines Ergebnisses der Logikoperation, die an dem Datenwort D und dem entsprechenden Überlagerungswort A ausgeführt wird, mit einem Ergebnis des überlagerten Lesens von D und A gleichzeitig die Wortabschnittadresse bestätigt werden, aus der das Datenwort (und das Überlagerungswort) gelesen wurde(n).
  • In verschiedenen Ausführungsformen kann das Überlagerungswort A einen Nicht-(addrw)-Abschnitt enthalten.
  • In verschiedenen Ausführungsformen kann der Code vorzugsweise, beispielsweise aus Sicherheitsgründen, Überlagerungsworte A mit einer gleichen Anzahl von „1“ und „0“ enthalten, so dass das logische ODER eine Hälfte der Bits in einem Wort beeinflussen kann, während die Codes ansonsten so verschieden wie möglich sein können.
  • In anderen verschiedenen Ausführungsformen können ein oder mehrere Codes in Bitfolgen eingebettet sein, um einen minimalen Abstand von Wortmarkierungscodes zu erhöhen. Beispielsweise kann ein nichtlinearer (14, 4, 6)-Code aufgebaut werden (in dem alle Codeworte ein Hamming-Gewicht von 7 haben können), indem ein linearer (7, 4, 3)-Code eingebettet wird. In einem Fall, in dem der (7, 4, 3)-Code durch Zeilen {0×0b, 0×15, 0×26, 0×47} einer Generatormatrix gegeben ist und [m3, ..., m0] zu codierende Nachrichtenbits bezeichnen, kann der resultierende Code aus Verknüpfungen der Bitfolgen „01“ und „10“ bestehen, wobei „01“ ein „0“-Bit und „10“ ein „1“-Bit des 7-Bit-Codeworts, das aus dem linearen (7, 4, 3)-Code resultiert, codieren kann. Daher sind die ersten Codeworte 0×1555, 0×159A, 0×1666, 0×16A9, 0×1969, 0×19A6, ...
  • In verschiedenen Ausführungsformen kann ein Schutz von Daten durch überlagertes Lesen auf einer hohen Wahrscheinlichkeit beruhen, dass das gelesene Dol = D ODER A verschieden von D oder A ist, weil ansonsten die Prüfung bestanden werden kann, obwohl die Daten von einer falschen Stelle gelesen wurden.
  • Infolgedessen kann es wünschenswert sein, eine zumindest im Wesentlichen gleiche Anzahl von „1“ und „0“ in dem Überlagerungswort A, aber ähnlich auch in dem Datenwort D, zu haben. Für das Überlagerungswort A kann dies leicht erreicht werden, da es eine Eigenschaft der gewählten Codierung sein kann.
  • In verschiedenen Ausführungsformen kann für das Datenwort D im Fall der Verwendung von verschlüsselten Daten diese Eigenschaft mit hoher Wahrscheinlichkeit automatisch erreicht werden. Für reine Daten kann eine geeignete Codierung verwendet werden, wenn die gespeicherten Daten nicht bereits „zufällig“ sind.
  • Als ein erläuterndes Beispiel kann das Folgende betrachtet werden:
  • Wenn A = alle-1 → Dol = A, und wenn A = alle-0 → Dol = D. In diesen Fällen können D bzw. D und Dol von einer falschen Adresse stammen. Eine ähnliche Situation kann für D = alle-1 und für D = alle-0 gelten.
  • In verschiedenen Ausführungsformen können die Bits von A auf der Überlagerungswortleitung 114o (mit einer Codierung, die für jedes Wort anders sein kann) unter Verwendung, zumindest für einen Teil der Bits, von Markierungsbits realisiert werden, wobei die Markierungsbits durch Setzen der entsprechenden Speicherzellen auf einen permanenten Datenwert gebildet werden können.
  • In verschiedenen Ausführungsformen kann dies durch überlagertes Lesen ermöglichen, die physische Position von gelesenen Ddaten auf einer Bitleitung zu authentifizieren, ohne Gefahr zu laufen, zufällig wesentliche Daten auf der Überlagerungswortleitung 114o zu verlieren (z. B. zu löschen).
  • In verschiedenen Ausführungsformen kann das oben beschriebene überlagerte Lesen mit einem sogenannten verschachtelten Lesen kombiniert werden, das, beispielsweise gleichzeitiges, Lesen aus mehreren Positionen innerhalb einer gegebenen Wortleitung umfassen kann. Zum Anwenden des verschachtelten Lesens können eine oder mehrere der mehreren Wortleitungen und/oder der mehreren Überlagerungswortleitungen einer oder mehreren Markierungsspeicherzellen mehrerer elektrisch programmierbarer nichtflüchtiger Markierungsspeicherzellen zugeordnet sein. Eine oder mehrere der Markierungsspeicherzellen können sich in einem bekannten Speicherzustand befinden und die mehreren Markierungsspeicherzellen können einen Code bilden, der dazu ausgelegt ist, die zugeordnete Wortleitung der jeweiligen einen oder mehreren Markierungsspeicherzellen in dem bekannten Speicherzustand zu identifizieren. Die Speicherschaltung kann dazu ausgelegt sein, für jede der Wortleitungen mindestens eine Speicherzelle, z. B. die der Wortleitung oder der Überlagerungswortleitung zugeordnete Speicherzelle, gleichzeitig mit mindestens einer Markierungsspeicherzelle der einen oder der mehreren Markierungsspeicherzellen zu lesen. Das verschachtelte Lesen kann ein Lesen mindestens einer Speicherzelle der einen oder der mehreren Speicherzellen, die mit der Wortleitung (und/oder der Überlagerungswortleitung) gekoppelt sind, gleichzeitig mit mindestens einer Markierungsspeicherzelle der einen oder der mehreren Markierungsspeicherzellen, die der Wortleitung (und/oder der Überlagerungswortleitung) zugeordnet sind, umfassen. Durch Lesen von Daten aus der Wortleitung (und/oder der Überlagerungswortleitung) gleichzeitig mit den Markierungsspeicherzellen, die eine Identifikation der Wortleitung codieren, kann überprüft werden, aus welcher Wortleitung die Daten gelesen wurden. Zumindest einige der Markierungsspeicherzellen können in verschiedenen Ausführungsformen in einem unveränderbaren Speicherzustand sein, der beispielsweise durch Einstellen (z. B. Entfernen oder Nichtbilden) einer physischen Verbindung von einer zugeordneten Markierungsquellenleitung und/oder von einer zugeordneten Markierungsbitleitung zu der einen oder den mehreren Markierungsspeicherzellen erreicht werden kann. 4 zeigt ein Ablaufdiagramm 400 eines Verfahrens zum Betreiben einer Speicherschaltung gemäß verschiedenen Ausführungsformen.
  • In verschiedenen Ausführungsformen kann die Speicherschaltung bereitgestellt werden (in 410). Die Speicherschaltung kann umfassen: mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind, mehrere Wortleitungen, wobei jede Wortleitung mit einer Vielzahl von Wortabschnitten der mehreren Speicherzellen gekoppelt ist, wobei jeder Wortabschnitt dazu ausgelegt ist, ein Datenwort zu speichern, und mindestens eine Überlagerungswortleitung, die mit mehreren Überlagerungsabschnitten gekoppelt ist, wobei jeder Überlagerungsabschnitt mehrere Überlagerungsspeicherzellen umfasst, wobei jeder der mehreren Überlagerungsabschnitte ein Überlagerungswort umfasst, wobei die Speicherschaltung dazu ausgelegt ist, für jede der mehreren Wortleitungen aus jedem der Wortabschnitte gleichzeitig mit einem Überlagerungsabschnitt der mehreren Überlagerungsabschnitte zu lesen, wodurch als Ausgabe der Leseoperation ein Ergebnis einer an dem Datenwort und dem Überlagerungswort ausgeführten Logikoperation bereitgestellt wird.
  • In verschiedenen Ausführungsformen kann das Verfahren ein Lesen mindestens eines der Datenworte gleichzeitig mit dem zugeordneten Überlagerungswort umfassen, wodurch als Ausgabe der Leseoperation ein Ergebnis einer an dem Datenwort ausgeführten Logikoperation bereitgestellt wird (in 420).
  • 5 zeigt eine Darstellung eines Verfahrens zum Betreiben einer Speicherschaltung gemäß verschiedenen Ausführungsformen.
  • In verschiedenen Ausführungsformen kann die Speicherschaltung mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind, und mehrere Wortleitungen, wobei jede Wortleistung mit mindestens einer Speicherzelle der mehreren Speicherzellen gekoppelt ist, umfassen.
  • Die Speicherschaltung kann im Allgemeinen ähnlich oder identisch zu der Speicherschaltung 100 von 1A und/oder von 1B sein. Die Speicherschaltung gemäß verschiedenen Ausführungsformen kann dazu ausgelegt sein, wie nachstehend beschrieben ein überlagertes Schreiben zu ermöglichen ermöglicht, anstatt oder zusätzlich dazu, dazu ausgelegt zu sein, wie oben beschrieben ein überlagertes Lesen zu ermöglichen.
  • In verschiedenen Ausführungsformen kann das Verfahren zum Betreiben einer Speicherschaltung ermöglichen, Daten sicher zu überschreiben, da danach immer noch geprüft werden kann, dass die korrekten Daten überschrieben wurden (und nicht irgendwelche anderen Daten oder überhaupt keine Daten).
  • In verschiedenen Ausführungsformen kann das Verfahren ein Überschreiben eines bereits existierenden Datenworts D, das auch als ein Grundwort D bezeichnet werden kann, das eine Folge bekannter Bits in einem Abschnitt einer Wortleitung der mehreren Wortleitungen mit mindestens einem vordefinierten Muster P enthalten kann, das auch als Datenwort P bezeichnet werden kann, das eine Folge von Datenbits enthalten kann, auf den Abschnitt einer Wortleitung, mit anderen Worten, auf denselben Abschnitt der Wortleitung wie das exisitierende Datenwort D, umfassen. Der Schreibprozess kann als überlagertes Schreiben bezeichnet werden. Das überlagerte Schreiben des bereits vorhandenen Datenworts D mit mindestens einem vorgegebenen Muster P kann das Überlagerungsschreib-Datenwort Dow ergeben. Das Schreiben kann ein Kombinieren der Folge von Datenbits mit der Folge von bekannten Bits durch eine bitweise Logikoperation, z. B. eine logische bitweise UND-Operation oder eine logische bitweise ODER-Operation, umfassen. Das Überlagerungsschreib-Datenwort Dow kann auch als modifiziertes Datenwort Dow bezeichnet werden.
  • Das Überlagerungsschreib-Datenwort Dow, das durch die Schreiboperation geliefert wird, kann in verschiedenen Ausführungsformen durch eine Logikoperation, z. B. ein logisches UND, ODER, NUND, NODER, XODER oder XNODER, definiert sein, die, beispielsweise bitweise, an Datenbits des bereits auf der Wortleitung 114 vorhandenen Datenworts D und den Datenbits des prädedefinierten Musters P durchgeführt werden kann.
  • In verschiedenen Ausführungsformen kann die Logikoperation implizit durch ein zusätzliches Schreiben der Speicherzellen 102 und nicht durch ein dediziertes Logikgatter durchgeführt werden.
  • In verschiedenen Ausführungsformen kann ein Schreibprozess lediglich in der Lage sein, eine oder mehrere der Speicherzellen 102 in eine Richtung, aber nicht in die andere, umzuschalten.
  • In einer beispielhaften Ausführungsform eines HS3P-Speichers (z. B. wie in 1A gezeigt mit gelöscht = „1“ und geschrieben = „0“) kann das existierende Datenwort D mit dem Muster P überschrieben werden, wie es z. B. in dem Feld 500a von 5 gezeigt ist. Das Lesen kann nun Dow = D UND P ergeben, wobei UND die bitweise logische UND-Operation angeben kann.
  • In verschiedenen Ausführungsformen kann durch Prüfen von Dow gegen D und P (Verwenden eines Leseprozesses nach dem überlagerten Schreibprozess, Durchführen einer logischen bitweisen UND-Operation oder einer logischen bitweisen ODER-Operation, die der implizit während des überlagerten Schreibprozesses ausgeführten logischen Operation entsprechen kann, an dem Datenwort P und dem Grundwort D, wodurch ein Testwort gebildet wird, und Vergleichen des modifizierten Datenworts Dow mit dem Testwort) das überlagerte Schreiben verwendet werden, um zu verifizieren, dass tatsächlich die beabsichtigten Daten überschrieben wurden. In einem Fall, in dem die korrekten Daten überschrieben sind, sollte Dow = D UND P halten. Wenn diese Bedingung nicht erfüllt ist, könnte ein anderes (oder kein) Wort überschrieben worden sein und die ursprünglichen Daten (das Grundwort) D können immer noch verfügbar sein.
  • In 5 ist in dem Feld 500a ein beispielhaftes Überschreiben gezeigt, das eine implizite AND-Operation des bereits in der Speicheranordnung und dem vordefinierten Muster P gespeicherten Datenworts D repräsentieren kann.
  • Die implizite Logikoperation, die durch das Überschreiben durchgeführt werden kann, kann von einer Konfiguration der Speicherschaltung abhängen. In verschiedenen Ausführungsformen kann die Logikoperation beispielsweise eine ODER-Operation sein, die in dem Feld 500b von 5 gezeigt ist.
  • In verschiedenen Ausführungsformen kann das Muster P vordefiniert sein und kann aus Sicherheitsgründen vorzugsweise aus einer gleichen Anzahl von „1“ und „0“ bestehen, so dass das logische UND während des überlagerten Schreibens die Hälfte der Bits in dem Datenwort D beeinflussen kann. Ein Schutz von Daten durch das Überlagerungsschreiben kann auf der hohen Wahrscheinlichkeit beruhen, dass das Überlagerungsschreib-Wort Dow = D UND P, das für die Verifikation gelesen werden kann, dass die überlagerte Schreiboperation das korrekte Datenwort D anvisierte, von D und P verschieden ist, da ansonsten die Überprüfung bestanden werden kann, obwohl die falschen Daten überschrieben wurden.
  • Als Ergebnis kann es wünschenswert sein, eine zumindest im Wesentlichen gleiche Anzahl von „1“ und „0“ im vordefinierten Muster P, aber ähnlich auch in dem Datenwort D, zu haben. Für das vordefinierte Muster P kann dies auch leicht erreicht werden, da dies eine Eigenschaft des gewählten Musters sein kann.
  • In verschiedenen Ausführungsformen kann für das Datenwort D in einem Fall der Verwendung von verschlüsselten Daten diese Eigenschaft automatisch mit hoher Wahrscheinlichkeit erreicht werden. Für reine Daten kann eine geeignete Codierung verwendet werden, wenn die gespeicherten Daten nicht bereits „zufällig“ sind.
  • Als ein anschauliches Beispiel kann das Folgende betrachtet werden:
  • Wenn P = alle-0 → Dow = P , und wenn P = alle-1 → Dow = D. In dem ersten Fall kann Dow nicht mehr von D abhängen, so dass es unmöglich ist, zu überprüfen, ob es D war, das überschrieben wurde. In dem zweiten Fall kann D vielleicht nicht überschrieben worden sein und D kann somit noch existieren. Eine ähnliche Situation kann für D = alle-1 und für D = alle-0 gelten.
  • In verschiedenen Ausführungsformen kann es ratsam sein, den beschriebenen Prozess mehrmals mit unterschiedlichen Werten für P zu iterieren, um allmählich und nachprüfbar die Menge an Informationen, die von D übrig sind, zu reduzieren.
  • Teilweise aufbauend auf dem Prinzip des überlagerten Schreibens kann ein eingeschränktes Codieren von Zufallswerten in verschiedenen Ausführungsformen durchgeführt werden. Die Zufallswerte können z. B. als Schlüssel für kryptographische Berechnungen verwendet werden.
  • In verschiedenen Ausführungsformen kann die eingeschränkte Zufallswertkodierung eine spezielle Einschränkung von Zufallswerten verwenden, um eine definierte Anzahl von „0“ zu enthalten.
  • Ausgehend von einem gelöschten Wort (d. h. alle-1) der Breite n, das einem Wortleitungsabschnitt einer Wortleitung 114 der Speicheranordnung entsprechen kann, wird ein Zufallswert P1 (zum Verständnis eines zugrundeliegenden überlagerten Schreibprozesses kann P1 als dem Grundwort D entsprechend betrachtet werden), der genau r1 geschriebene Bits enthalten kann, in den Wortleitungsabschnitt (bzw. das Wort) der Breite n geschrieben werden. n-r1 Bits in dem Wortleitungsabschnitt können gelöscht bleiben. Dies kann dazu führen, dass R1 = P1 in dem Wortleitungsabschnitt (bzw. in dem Wort) gespeichert wird. Dadurch kann eine Anzahl möglicher Werte von R1 auf (n über rl) von insgesamt 2" möglichen Werten eingeschränkt werden.
  • In verschiedenen Ausführungsformen kann es vorteilhaft sein, dass diese Eigenschaft überprüft werden kann, wenn der Zufallswert R1 erneut ausgelesen wird. Dies kann es für einen Angreifer schwierig oder unmöglich machen, R1 durch Erzwingen eines Lesens an einem anderen Wort zu ersetzen. Ohne die eingeschränkte Codierung müsste jeder andere Wert akzeptiert werden, da jeder Wert ein möglicher zufälliger Wert wäre.
  • In verschiedenen Ausführungsformen resultiert ein überlagertes Schreiben dieses Worts (das genau r1 geschriebene Bits enthält) mit einem Wert P2, der zusätzliche r2 geschriebene Bits enthält (d. h. mit r2 geschriebenen Bits, die in Bitpositionen sein können, die nicht bereits durch die r1 existierenden Bits belegt sind), in einem neuen Wort mit einem zufälligen Wert R2 = R1 UND P2 mit exakt r1 + r2 geschriebenen Bits. N-r1-r2 Bits können gelöscht bleiben.
  • In verschiedenen Ausführungsformen kann dies wiederum die Anzahl der möglichen Zufallswerte auf (n über (rl + r2)) aus insgesamt 2" möglichen Werten einschränken. Es kann jedoch weiterhin vorteilhaft sein, dass diese Eigenschaft überprüft werden kann, wenn der Zufallswert R2 wieder ausgelesen wird.
  • In verschiedenen Ausführungsformen kann in einem Fall, in dem r1+r2 = n/2 ist, der Wert (n über (rl + r2)) maximiert sein, d. h. die Anzahl möglicher zufälliger Werte kann maximiert sein, d. h. eine Zufälligkeit von R2 kann maximiert sein.
  • Zum Beispiel ist für n = 64 (n über (n/2))/2n = 9,93 %, was bedeutet, dass 9,93 % aller möglichen 64-Bit-Zufallswerte gültig codiert werden können. Dies kann aber auch bedeuten, dass ein Angreifer die Überprüfung in 9,93 % aller Fälle mit einem ersetzten uneingeschränkten zufälligen Wert bestehen kann.
  • Durch geeignetes Definieren von r1 und r1 + r2 kann ein Kompromiss zwischen der Zufälligkeit der Werte R1 und R2 und einer Erfolgsquote eines Angreifers unter Verwendung eines ersetzten uneingeschränkten Zufallswerts gefunden werden und R1 und R2 können unterschiedliche Eigenschaften in Bezug auf Zufälligkeit und Schutzniveau aufweisen.
  • In verschiedenen Ausführungsformen kann der Prozess des überlagerten Schreibens iterativ mit zusätzlichen Ps wiederholt werden, z. B. P3, P4 usw.
  • Das überlagerte Schreiben von NVM-Daten, z. B. wie oben beschrieben, kann in verschiedenen Ausführungsformen auch ermöglichen, den Wert R (z. B. R1, R2 usw.) sicher zu überschreiben: Das Datenwort R kann mit einem vordefinierten Muster P überschrieben werden, z. B. wie oben beschrieben. In verschiedenen Ausführungsformen kann anschließend verifiziert werden, ob die korrekten Daten überschrieben wurden.
  • In verschiedenen Ausführungsformen kann das Wort R überschrieben werden und damit sein Inhalt ungültig gemacht werden, indem R auf einen Wert geschrieben wird, der ungültig ist, z. B. auf alle-„0“, so dass die oben beschriebene Überprüfung der Einschränkungs-Codierung sicher fehlschlagen kann.
  • 6 zeigt ein Ablaufdiagramm 600 eines Verfahrens zum Betreiben einer Speicherschaltung gemäß verschiedenen Ausführungsformen.
  • In verschiedenen Ausführungsformen kann die Speicherschaltung umfassen: mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind, mehrere Wortleitungen, wobei jede Wortleitung mit mehreren Wortabschnitten der mehreren Speicherzellen gekoppelt ist, wobei jeder Wortabschnitt dazu ausgelegt ist, ein Datenwort zu speichern, und mindestens eine Überlagerungswortleitung, die mit mehreren Überlagerungsabschnitten gekoppelt ist, wobei jeder Überlagerungsabschnitt mehrere Überlagerungsspeicherzellen umfasst, wobei jeder der mehreren Überlagerungsabschnitte ein Überlagerungswort umfasst, wobei die Speicherschaltung dazu ausgelegt ist, für jede der mehreren Wortleitungen aus jedem der Wortabschnitte gleichzeitig mit einem Überlagerungsabschnitt der mehreren Überlagerungsabschnitte zu lesen, wodurch als Ausgabe der Leseoperation ein Ergebnis einer an dem Datenwort und dem Überlagerungswort ausgeführten Logikoperation bereitgestellt wird.
  • In verschiedenen Ausführungsformen kann das Verfahren ein Speichern eines Grundworts, das aus einer Folge von bekannten Bits besteht, in einem Abschnitt einer Wortleitung der mehreren Wortleitungen (in 610) und ein Schreiben eines Datenworts, das eine Folge von Datenbits umfasst, auf den Abschnitt einer Wortleitung umfassen, wobei das Schreiben ein Kombinieren der Folge von Datenbits mit der Folge von bekannten Bits durch eine logische bitweise UND-Operation oder eine logische bitweise ODER-Operation umfassen kann, wodurch ein modifiziertes Datenwort gebildet wird (in 620).
  • In verschiedenen Ausführungsformen können das überlagerte Lesen, das überlagerte Schreiben und die eingeschränkte Zufallswertkodierung, z. B. wie oben beschrieben, in irgendeiner Art von NVM, z. B. in RRAM, CBRAM, PCRAM, MRAM, Flash-Speicher (wie UCP, HS3P, Nanokristallen, MONOS, ETOX, SST, SONOS, DiNOR), EEPROM und dergleichen angewendet werden.
  • In verschiedenen Ausführungsformen können das überlagerte Lesen, das überlagerte Schreiben und die eingeschränkte Zufallswertkodierung, z. B. wie oben beschrieben, in anderen Arten von Speichern, z. B. in RAM- (SRAM-, DRAM-) Speichervorrichtungen angewendet werden.
  • In verschiedenen Ausführungsformen kann das überlagerte Lesen in ROM-Speichervorrichtungen angewendet werden.
  • In verschiedenen Ausführungsformen können das überlagerte Lesen, das überlagerte Schreiben und die eingeschränkte Zufallswertkodierung, z. B. wie oben beschrieben, in SSD-, eingebetteten NVM-, eigenständigen (Speicherstick) und anderen Speichervorrichtungen angewendet werden.
  • In verschiedenen Ausführungsformen wird eine Speicherschaltung bereitgestellt. Die Speicherschaltung kann umfassen: mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind, mehrere Wortleitungen, wobei jede Wortleitung mit mehreren Wortabschnitten der mehreren Speicherzellen gekoppelt ist, wobei jeder Wortabschnitt dazu ausgelegt ist, ein Datenwort zu speichern, und mindestens eine Überlagerungswortleitung, die mit mehreren Überlagerungsabschnitten gekoppelt ist, wobei jeder Überlagerungsabschnitt mehrere Überlagerungsspeicherzellen umfasst, wobei jeder der mehreren Überlagerungsabschnitte ein Überlagerungswort umfasst, wobei die Speicherschaltung dazu ausgelegt ist, für jede der mehreren Wortleitungen aus jedem der Wortabschnitte gleichzeitig mit einem Überlagerungsabschnitt der mehreren Überlagerungsabschnitte zu lesen, wodurch als Ausgabe der Leseoperation ein Ergebnis einer an dem Datenwort und dem Überlagerungswort ausgeführten Logikoperation bereitgestellt wird.
  • In verschiedenen Ausführungsformen kann die mindestens eine Überlagerungswortleitung mindestens einer zugeordneten Wortleitung der mehreren Wortleitungen zugeordnet sein, wobei jeder Überlagerungsabschnitt einem Wortabschnitt der mindestens einen zugeordneten Wortleitung zugeordnet ist, und wobei die mehreren Überlagerungsworte einen Code bilden, der dazu ausgelegt ist, den zugeordneten Wortabschnitt zu identifizieren.
  • In verschiedenen Ausführungsformen kann die Speicherschaltung ferner einen Schalter umfassen, der dazu ausgelegt ist, zwischen dem überlagerten Lesen der Wortleitung und einem Lesen der Wortleitung ohne die Überlagerung durch die mindestens eine Überlagerungswortleitung umzuschalten.
  • In verschiedenen Ausführungsformen kann die Logikoperation, die an dem Datenwort und dem Überlagerungswort ausgeführt wird, eine bitweise ODER-Operation oder eine bitweise UND-Operation sein.
  • In verschiedenen Ausführungsformen kann die mindestens eine zugeordnete Wortleitung mehrere zugeordnete Wortleitungen umfassen.
  • In verschiedenen Ausführungsformen kann die mindestens eine Überlagerungswortleitung eine Überlagerungswortleitung umfassen.
  • In verschiedenen Ausführungsformen kann die mindestens eine Überlagerungswortleitung mehrere Überlagerungswortleitungen umfassen.
  • In verschiedenen Ausführungsformen kann jede der mehreren Überlagerungswortleitungen einen unterschiedlichen Code enthalten.
  • In verschiedenen Ausführungsformen wird ein Verfahren zum Betreiben der Speicherschaltung gemäß verschiedenen Ausführungsformen bereitgestellt. Das Verfahren kann ein Lesen mindestens eines der Datenworte gleichzeitig mit dem zugeordneten Überlagerungswort umfassen, wodurch als Ausgabe der Leseoperation ein Ergebnis einer an dem Datenwort und dem Überlagerungswort ausgeführten Logikoperation bereitgestellt wird.
  • In verschiedenen Ausführungsformen kann das Verfahren ferner ein Lesen des mindestens einen der Datenworte ohne Überlagerung durch das Überlagerungswort umfassen.
  • In verschiedenen Ausführungsformen kann das Verfahren ferner ein Durchführen der Logikoperation an dem gelesenen Datenwort ohne die Überlagerung und dem Überlagerungswort umfassen, wodurch ein Testwort gebildet wird.
  • In verschiedenen Ausführungsformen kann das Verfahren ferner ein Vergleichen des Testworts mit dem Ergebnis des überlagerten Lesens umfassen.
  • In verschiedenen Ausführungsformen wird ein Verfahren zum Betreiben einer Speicherschaltung bereitgestellt, wobei die Speicherschaltung umfasst: mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind, und mehrere Wortleitungen, wobei jede Wortleitung mit mindestens einer Speicherzelle der mehreren Speicherzellen gekoppelt ist, wobei das Verfahren umfasst: Speichern eines aus einer Folge von bekannten Bits bestehenden Grundworts in einem Abschnitt einer Wortleitung der mehreren Wortleitungen, Schreiben eines Datenworts, das eine Folge von Datenbits umfasst, in den Abschnitt einer Wortleitung, wobei das Schreiben ein Kombinieren der Folge von Datenbits mit der Folge von bekannten Bits durch eine logische bitweise UND-Operation oder eine logische bitweise ODER umfassen kann, wodurch ein modifiziertes Datenwort gebildet wird.
  • In verschiedenen Ausführungsformen kann das Verfahren ferner umfassen: Lesen des modifizierten Datenworts, Ausführen einer logischen bitweisen UND-Operation oder einer logischen bitweisen ODER-Operation an dem Datenwort und dem Grundwort, um dadurch ein Testwort zu bilden, und Vergleichen des modifizierten Datenworts mit dem Testwort.
  • In verschiedenen Ausführungsformen kann die Folge bekannter Bits des Grundworts n Bits umfassen, wobei ungefähr n/2 Bits in einem ersten Bitzustand sein können und die verbleibenden Bits der Folge bekannter Bits in einem zweiten Bitzustand sein können.
  • In verschiedenen Ausführungsformen kann das Grundwort ein Zufallswort mit einer vordefinierten Anzahl von Nullen umfassen.
  • In verschiedenen Ausführungsformen kann das Verfahren ferner ein Invertieren mindestens eines Bits des modifizierten Datenworts umfassen, wodurch das modifizierte Datenwort ungültig gemacht wird.
  • Verschiedene Aspekte der Offenbarung sind für Vorrichtungen bereitgestellt und verschiedene Aspekte der Offenbarung sind für Verfahren bereitgestellt. Es versteht sich, dass grundlegende Eigenschaften der Vorrichtungen auch für die Verfahren gelten und umgekehrt. Daher kann der Kürze halber eine doppelte Beschreibung solcher Eigenschaften weggelassen worden sein.
  • Obwohl die Erfindung insbesondere unter Bezugnahme auf spezifische Ausführungsformen gezeigt und beschrieben worden ist, sollten Fachleute verstehen, dass verschiedene Änderungen in Form und Einzelheiten vorgenommen werden können, ohne von dem Gedanken und Schutzbereich der Erfindung abzuweichen, wie sie durch die beigefügten Ansprüche definiert sind. Der Schutzbereich der Erfindung wird daher durch die beigefügten Ansprüche angegeben und alle Änderungen, die unter die Bedeutung und den Äquivalenzbereich der Ansprüche fallen, sollen daher eingeschlossen sein.

Claims (17)

  1. Speicherschaltung, die Folgendes umfasst: mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind; mehrere Wortleitungen, wobei jede Wortleitung mit mehreren Wortabschnitten der mehreren Speicherzellen gekoppelt ist, wobei jeder Wortabschnitt dazu ausgelegt ist, ein Datenwort zu speichern; und mindestens eine Überlagerungswortleitung, die mit mehreren Überlagerungsabschnitten gekoppelt ist, wobei jeder Überlagerungsabschnitt mehrere Überlagerungsspeicherzellen umfasst, wobei jeder der mehreren Überlagerungsabschnitte ein Überlagerungswort umfasst; wobei die Speicherschaltung dazu ausgelegt ist, für jede der mehreren Wortleitungen aus jedem der Wortabschnitte gleichzeitig mit einem Überlagerungsabschnitt der mehreren Überlagerungsabschnitte zu lesen, wodurch als Ausgabe der Leseoperation ein Ergebnis einer an dem Datenwort und dem Überlagerungswort ausgeführten Logikoperation bereitgestellt wird.
  2. Speicherschaltung nach Anspruch 1, wobei die mindestens eine Überlagerungswortleitung mindestens einer zugeordneten Wortleitung der mehreren Wortleitungen zugeordnet ist, wobei jeder Überlagerungsabschnitt einem Wortabschnitt der mindestens einen zugeordneten Wortleitung zugeordnet ist und wobei jeder der mehreren Überlagerungsabschnitte ein Überlagerungswort umfasst, wobei die mehreren Überlagerungsworte einen Code bilden, der dazu ausgelegt ist, den zugeordneten Wortabschnitt zu identifizieren.
  3. Speicherschaltung nach Anspruch 1 oder 2, die ferner Folgendes umfasst: einen Schalter, der dazu ausgelegt ist, zwischen dem überlagerten Lesen der Wortleitung und einem Lesen der Wortleitung ohne die Überlagerung durch die mindestens eine Überlagerungswortleitung umzuschalten.
  4. Speicherschaltung nach einem der Ansprüche 1 bis 3, wobei die Logikoperation, die an dem Datenwort und dem Überlagerungswort durchgeführt wird, eine der Folgenden ist: eine bitweise ODER-Operation und eine bitweise UND-Operation.
  5. Speicherschaltung nach einem der Ansprüche 1 bis 4, wobei die mindestens eine zugeordnete Wortleitung mehrere zugeordnete Wortleitungen umfasst.
  6. Speicherschaltung nach einem der Ansprüche 1 bis 5, wobei die mindestens eine Überlagerungswortleitung eine Überlagerungswortleitung umfasst.
  7. Speicherschaltung nach einem der Ansprüche 1 bis 5, wobei die mindestens eine Überlagerungswortleitung mehrere Überlagerungswortleitungen umfasst.
  8. Speicherschaltung nach Anspruch 7, wobei jede der mehreren Überlagerungswortleitungen einen anderen Code umfasst.
  9. Verfahren zum Betreiben der Speicherschaltung nach einem der Ansprüche 1 bis 8, das Folgendes umfasst: Lesen mindestens eines der Datenworte gleichzeitig mit dem zugeordneten Überlagerungswort; dadurch Bereitstellen eines Ergebnisses einer an dem Datenwort und dem Überlagerungswort ausgeführten Logikoperation als Ausgabe der Leseoperation.
  10. Verfahren nach Anspruch 9, das ferner Folgendes umfasst: Lesen des mindestens einen der Datenworte ohne Überlagerung durch das Überlagerungswort.
  11. Verfahren nach Anspruch 10, das ferner Folgendes umfasst: Durchführen der Logikoperation an dem Datenwort, das ohne die Überlagerung gelesen wird, und dem Überlagerungswort, wodurch ein Testwort gebildet wird.
  12. Verfahren nach Anspruch 11, das ferner Folgendes umfasst: Vergleichen des Testworts mit dem Ergebnis des überlagerten Lesens.
  13. Verfahren zum Betreiben einer Speicherschaltung, wobei die Speicherschaltung umfasst: mehrere elektrisch programmierbare Speicherzellen, die in einer elektrisch programmierbaren nichtflüchtigen Speicherzellenanordnung entlang mehrerer Zeilen und mehrerer Spalten angeordnet sind, und mehrere Wortleitungen, wobei jede Wortleitung mit mindestens einer Speicherzelle der mehreren Speicherzellen gekoppelt ist, wobei das Verfahren Folgendes umfasst: Speichern eines aus einer Folge von bekannten Bits bestehenden Grundworts in einem Abschnitt einer Wortleitung der mehreren Wortleitungen; und Schreiben eines Datenworts, das eine Folge von Datenbits umfasst, in den Abschnitt einer Wortleitung, wobei das Schreiben ein Kombinieren der Folge von Datenbits mit der Folge von bekannten Bits durch eine der folgenden Operationen, nämlich eine logische bitweise UND-Operation und eine logische bitweise ODER-Operation, umfasst, wodurch ein modifiziertes Datenwort gebildet wird.
  14. Verfahren nach Anspruch 13, das ferner Folgendes umfasst: Lesen des modifizierten Datenworts; Durchführen einer logischen bitweisen UND-Operation oder einer logischen bitweisen ODER-Operation an dem Datenwort und dem Grundwort, wodurch ein Testwort gebildet wird; und Vergleichen des modifizierten Datenworts mit dem Testwort.
  15. Verfahren nach Anspruch 13 oder 14, wobei die Folge bekannter Bits des Grundworts n Bits umfasst, wobei ungefähr n/2 Bits in einem ersten Bitzustand sind und die verbleibenden Bits der Folge bekannter Bits in einem zweiten Bitzustand sind.
  16. Verfahren nach einem der Ansprüche 13 bis 15, wobei das Grundwort ein Zufallswort mit einer vordefinierten Anzahl von Nullen umfasst.
  17. Verfahren nach einem der Ansprüche 13 bis 16, das ferner Folgendes umfasst: Invertieren mindestens eines Bits des modifizierten Datenworts, wodurch das modifizierte Datenwort ungültig gemacht wird.
DE102016123689.6A 2016-12-07 2016-12-07 Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung Active DE102016123689B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102016123689.6A DE102016123689B4 (de) 2016-12-07 2016-12-07 Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung
CN201711248677.7A CN108172252B (zh) 2016-12-07 2017-12-01 存储电路和操作存储电路的方法
US15/831,439 US10497408B2 (en) 2016-12-07 2017-12-05 Memory circuit including overlay memory cells and method of operating thereof
US16/666,425 US10937469B2 (en) 2016-12-07 2019-10-29 Memory circuit and method of operating a memory circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016123689.6A DE102016123689B4 (de) 2016-12-07 2016-12-07 Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung

Publications (2)

Publication Number Publication Date
DE102016123689A1 true DE102016123689A1 (de) 2018-06-07
DE102016123689B4 DE102016123689B4 (de) 2022-02-24

Family

ID=62164091

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016123689.6A Active DE102016123689B4 (de) 2016-12-07 2016-12-07 Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung

Country Status (3)

Country Link
US (2) US10497408B2 (de)
CN (1) CN108172252B (de)
DE (1) DE102016123689B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970046B2 (en) * 2019-02-22 2021-04-06 International Business Machines Corporation Random number generator compatible with complementary metal-oxide semiconductor technology
CN111158972B (zh) * 2019-12-05 2020-08-25 连连银通电子支付有限公司 一种开关状态确定方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6768685B1 (en) * 2001-11-16 2004-07-27 Mtrix Semiconductor, Inc. Integrated circuit memory array with fast test mode utilizing multiple word line selection and method therefor
US20110185259A1 (en) * 2010-01-25 2011-07-28 Samsung Electronics Co., Ltd. Overwritable nonvolatile memory device and related data write method

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62120700A (ja) * 1985-11-20 1987-06-01 Fujitsu Ltd 半導体記憶装置
US5959911A (en) * 1997-09-29 1999-09-28 Siemens Aktiengesellschaft Apparatus and method for implementing a bank interlock scheme and related test mode for multibank memory devices
TWI289750B (en) * 2004-01-05 2007-11-11 Sony Corp Data storage apparatus, and data storage controlling apparatus and method
KR100648289B1 (ko) * 2005-07-25 2006-11-23 삼성전자주식회사 프로그램 속도를 향상시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법
KR101361131B1 (ko) * 2008-04-11 2014-02-13 삼성전자주식회사 공유되는 로우 디코더를 갖는 플래쉬 메모리 장치
US9146743B2 (en) * 2012-07-11 2015-09-29 International Business Machines Corporation Generalized bit manipulation instructions for a computer processor
JP2014063555A (ja) * 2012-09-24 2014-04-10 Toshiba Corp 不揮発性半導体記憶装置、及びその制御方法
KR20140139849A (ko) * 2013-05-28 2014-12-08 에스케이하이닉스 주식회사 메모리 및 이를 포함 하는 메모리 시스템
KR20150002002A (ko) * 2013-06-28 2015-01-07 에스케이하이닉스 주식회사 반도체 메모리 장치
TWI527039B (zh) * 2013-08-02 2016-03-21 Toshiba Kk Semiconductor memory device and data reading method
CN106158017B (zh) * 2016-06-20 2019-05-17 北京大学 阻变运算存储设备
JP6781373B2 (ja) * 2016-10-05 2020-11-04 富士通株式会社 検索プログラム、検索方法、および検索装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6768685B1 (en) * 2001-11-16 2004-07-27 Mtrix Semiconductor, Inc. Integrated circuit memory array with fast test mode utilizing multiple word line selection and method therefor
US20110185259A1 (en) * 2010-01-25 2011-07-28 Samsung Electronics Co., Ltd. Overwritable nonvolatile memory device and related data write method

Also Published As

Publication number Publication date
US20180158534A1 (en) 2018-06-07
DE102016123689B4 (de) 2022-02-24
US10937469B2 (en) 2021-03-02
CN108172252A (zh) 2018-06-15
US10497408B2 (en) 2019-12-03
CN108172252B (zh) 2021-08-03
US20200066312A1 (en) 2020-02-27

Similar Documents

Publication Publication Date Title
DE602004002947T2 (de) NAND Flash Speicher mit Speicherredundanz
DE102005045031B4 (de) Programmierverfahren und Programmierwiederaufnahmeverfahren für ein nichtflüchtiges Speicherbauelement
DE102019123709A1 (de) Verwendung verschachtelter schreibvorgänge zur trennung von die-ebenen
DE69024169T2 (de) Gerät und Verfahren zur Fehlerbehandlung in einem Halbleiterspeicher
DE602006001026T2 (de) Integriertes Schaltgerät, Flash-Speicherarray, nichtflüchtige Speichervorrichtung und Betriebsverfahren
DE102011085988B4 (de) Verfahren und Vorrichtungen zum Beeinflussen eines Betriebszustands eines Mehrfachpegelzelle-Speichers
DE102008005338B4 (de) Integrierter Schaltkreis mit einer Speicherzellenanordnung und Verfahren zum Lesen eines Speicherzellenzustands unter Verwendung einer Mehrzahl von Teil-Leseoperationen
DE102006001492B4 (de) Halbleiterspeicheranordnung und Verfahren zum Betreiben einer Halbleiterspeicheranordnung
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
DE60213620T2 (de) Nichtflüchtiger speicher mit blocklöschung
DE69500143T2 (de) Schaltung zum Wählen von Redundanzspeicherbauelementen und diese enthaltende FLASH EEPROM
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE60103397T2 (de) Gesicherter eeprom-speicher mit fehlerkorrekturschaltung
DE102018105988A1 (de) Physikalische sichere löschung von solid-state-laufwerken
DE112020000143T5 (de) Ssd-system, das einschaltzyklus-basierten read-scrub verwendet
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE112020005001T5 (de) Qlc-programmierverfahren mit zurückspeichern von feindaten
DE69324694T2 (de) Doppelreihige Adressendekodierung- und Auswahlschaltung für eine elektrisch löschbare und programmierbare nichtflüchtige Speicheranordnung mit Redundanz, insbesondere für Flash-EEPROM Anordnungen
DE102015209502A1 (de) Markierungsprogrammierung in nichtflüchtigen Speichern
DE102016123689B4 (de) Speicherschaltung und Verfahren zum Betreiben einer Speicherschaltung
DE69426818T2 (de) Fehlertolerantes Speichergerät, insbesondere des Typs "flash EEPROM"
DE60212332T2 (de) Selbstreparatur-Methode für nicht flüchtige Speicher mit einer Architektur zur Fehlervermeidung sowie nicht flüchtiger Speicher
DE112008001409T5 (de) Nichtflüchtiger Speicher mit hoher Zuverlässigkeit
DE602004009078T2 (de) Speicherordnung

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