DE102017103347B4 - PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY - Google Patents

PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY Download PDF

Info

Publication number
DE102017103347B4
DE102017103347B4 DE102017103347.5A DE102017103347A DE102017103347B4 DE 102017103347 B4 DE102017103347 B4 DE 102017103347B4 DE 102017103347 A DE102017103347 A DE 102017103347A DE 102017103347 B4 DE102017103347 B4 DE 102017103347B4
Authority
DE
Germany
Prior art keywords
values
value
memory cells
memory cell
memory
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
DE102017103347.5A
Other languages
German (de)
Other versions
DE102017103347A1 (en
Inventor
Thomas Kern
Michael Gössel
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 DE102017103347.5A priority Critical patent/DE102017103347B4/en
Priority to TW107100236A priority patent/TWI664639B/en
Priority to KR1020180018601A priority patent/KR102079196B1/en
Priority to JP2018024702A priority patent/JP6602904B2/en
Publication of DE102017103347A1 publication Critical patent/DE102017103347A1/en
Application granted granted Critical
Publication of DE102017103347B4 publication Critical patent/DE102017103347B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/225Auxiliary circuits
    • G11C11/2273Reading or sensing circuits or methods
    • 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/5642Sensing 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/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/5657Digital 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 ferroelectric storage elements
    • 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/004Reading or sensing circuits or methods
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • 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
    • 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/5678Digital 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 amorphous/crystalline phase transition storage elements
    • 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/5685Digital 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 storage elements comprising metal oxide memory material, e.g. perovskites
    • 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/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • 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/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • 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/0009RRAM elements whose operation depends upon chemical change
    • G11C13/0011RRAM elements whose operation depends upon chemical change comprising conductive bridging RAM [CBRAM] or programming metallization cells [PMCs]
    • 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/004Reading or sensing circuits or methods
    • G11C2013/0054Read is performed on a reference element, e.g. cell, and the reference sensed value is used to compare the sensed value of the selected cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/563Multilevel memory reading aspects

Abstract

Verfahren zum Lesen von Speicherzellen aus einem Speicher,- bei dem physikalische Werte aus einer Anzahl von n Speicherzellen bestimmt werden, wobei n mindestens drei ist, wobei die physikalischen Werte Zeitpunkte sind,- bei dem die physikalischen Werte zumindest teilweise untereinander verglichen werden,- bei dem anhand der verglichenen physikalischen Werte den n Speicherzellen K unterschiedliche digitale Speicherzellenwerte zugeordnet werden,- bei dem den so erhaltenen digitalen Speicherzellenwerten ein Codewort eines n1-, ..., nK-aus-n-Codes zugeordnet wird,- bei dem die physikalischen Werte zumindest teilweise untereinander verglichen werden, so dass eine Reihenfolge zumindest eines Teils der physikalischen Werte bestimmt wird,- bei dem anhand der Reihenfolge den n Speicherzellen die K unterschiedlichen digitalen Speicherzellenwerte zugeordnet werden.Method for reading memory cells from a memory,- in which physical values are determined from a number of n memory cells, where n is at least three, the physical values being points in time,- in which the physical values are at least partially compared with one another,- in which the n memory cells are assigned K different digital memory cell values on the basis of the compared physical values,- in which the digital memory cell values obtained in this way are assigned a code word of an n1, ..., nK-of-n code,- in which the physical values are at least partially among one another are compared, so that an order of at least some of the physical values is determined, in which the K different digital memory cell values are assigned to the n memory cells on the basis of the order.

Description

Es sind verschiedene Ansätze bekannt, Daten (z.B. binäre Daten) in Speicherzellen eines Speichers abzuspeichern und aus den Speicherzellen des Speichers zur weiteren Verarbeitung auszulesen.Various approaches are known for storing data (e.g. binary data) in memory cells of a memory and reading them out from the memory cells of the memory for further processing.

DE 10 2014 112 947 A1 betrifft das Schätzen von Schwellwerten für Zustandsebenen bei Speicherzellen. DE 10 2014 112 947 A1 relates to estimating threshold values for state levels in memory cells.

US 2011/0296274 A1 bezieht sich auf die Speicherung von Daten in Festkörperspeichern. Mehrstufige Speicherzellen können genutzt werden, um einen Zellenrang zu bestimmen. US 2011/0296274 A1 refers to the storage of data in solid state memory. Multi-level memory cells can be used to determine cell rank.

US 2013/0176780 A1 betrifft die Erkennung von Fehlern von aus Speicherzellen eines Flash-Speichers ausgelesenen Daten. Für die Fehlererkennung werden Fehlerkorrelationen zwischen mehreren Bits, die innerhalb eines verschiebbaren Fensters fallen, bestimmt. US2013/0176780A1 relates to the detection of errors in data read from memory cells of a flash memory. For error detection, error correlations between multiple bits falling within a sliding window are determined.

Die Aufgabe der Erfindung besteht darin, den Umgang mit dem Speicher zu verbessern und insbesondere die Speicherung und/oder das Auslesen effizienter zu gestalten.The object of the invention consists in improving the handling of the memory and, in particular, in making the storage and/or reading out more efficient.

Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.This object is solved according to the features of the independent claims. Preferred embodiments can be found in particular in the dependent claims.

Zur Lösung der Aufgabe wird ein Verfahren angegeben zum Lesen von Speicherzellen aus einem Speicher,

  • - bei dem physikalische Werte aus einer Anzahl von n Speicherzellen bestimmt werden, wobei n mindestens drei ist, wobei die physikalischen Werte Zeitpunkte sind,
  • - bei dem die physikalischen Werte zumindest teilweise untereinander verglichen werden,
  • - bei dem anhand der verglichenen physikalischen Werte den n Speicherzellen K unterschiedliche digitale Speicherzellenwerte zugeordnet werden,
  • - bei dem den so erhaltenen digitalen Speicherzellenwerten ein Codewort eines n1-, ..., nK-aus-n-Codes zugeordnet wird,
  • - bei dem die physikalischen Werte zumindest teilweise untereinander verglichen werden, so dass eine Reihenfolge zumindest eines Teils der physikalischen Werte bestimmt wird,
  • - bei dem anhand der Reihenfolge den n Speicherzellen die K unterschiedlichen digitalen Speicherzellenwerte zugeordnet werden.
To solve the task, a method is specified for reading memory cells from a memory,
  • - in which physical values are determined from a number of n memory cells, where n is at least three, the physical values being points in time,
  • - in which the physical values are at least partially compared with each other,
  • - in which, on the basis of the compared physical values, the n memory cells are assigned K different digital memory cell values,
  • - in which a code word of an n 1 -, ..., n K -out of n code is assigned to the digital memory cell values obtained in this way,
  • - in which the physical values are at least partially compared with one another, so that a sequence of at least some of the physical values is determined,
  • - in which the K different digital memory cell values are assigned to the n memory cells based on the sequence.

Hierbei gelten insbesondere: n ≥ 3, n1 ≥ 1 bis nK ≥ 1, K ≥ 2 und m ≥ 1.The following applies in particular: n ≥ 3, n 1 ≥ 1 to n K ≥ 1, K ≥ 2 and m ≥ 1.

Die Anzahl der Speicherzellenwerte beträgt n, wobei nur K unterschiedliche digitale Werte auftreten.The number of memory cell values is n, with only K different digital values occurring.

Weiterhin gilt: n1 +... + nK = n.The following also applies: n 1 +... + n K = n.

Der Vergleich der physikalischen Werte kann einen Vergleich analoger Werte umfassen.The comparison of the physical values can include a comparison of analog values.

Der Vergleich kann auf den physikalischen Werten selbst erfolgen oder auf den physikalischen Werten basieren. Insbesondere können aus den physikalischen Werten abgeleitete Werte verglichen werden. Insoweit sind durch den hier genannten Vergleich der physikalischen Werte auch Vergleiche abgedeckt, die sich auf Werte beziehen, die aus den physikalischen Werten abgeleitet werden können.The comparison can be based on the physical values themselves or based on the physical values. In particular, values derived from the physical values can be compared. In this respect, the comparison of the physical values mentioned here also covers comparisons that relate to values that can be derived from the physical values.

Dadurch, dass die Zuordnung digitaler Werte zu physikalischen Werten darauf basiert, dass die aus einer Anzahl von n Speicherzellen bestimmten physikalischen Werte untereinander verglichen werden, kommt es nur selten zu einer fehlerhaften Zuordnung der digitalen Werte. Eine solche fehlerhafte Zuordnung der digitalen Werte kann nur erfolgen, wenn zu vergleichende physikalische Werte in einem Überlappungsbereich der Häufigkeitsverteilungen ihrer Werte liegen und sich beim Vergleich ihre Reihenfolge ändert.Due to the fact that the assignment of digital values to physical values is based on the physical values determined from a number of n memory cells being compared with one another, incorrect assignment of the digital values only rarely occurs. Such an erroneous assignment of the digital values can only occur if the physical values to be compared lie in an overlapping area of the frequency distributions of their values and their order changes during the comparison.

Hierbei wird für n1 erste Speicherzellen in der Reihenfolge ein erster digitaler Speicherzellenwert bestimmt und für nK letzte Speicherzellen in der Reihenfolge ein K-ter digitaler Speicherzellenwert bestimmt.In this case, a first digital memory cell value is determined for n 1 first memory cells in the sequence and a Kth digital memory cell value is determined for n K last memory cells in the sequence.

Insbesondere kann in Abhängigkeit von der Position der physikalischen Werte der Reihenfolge ein digitaler Speicherzellenwert zugeordnet werden.In particular, a digital memory cell value can be assigned depending on the position of the physical values of the sequence.

Wird für n1 erste Speicherzellen in der Reihenfolge ein erster digitaler Speicherzellenwert bestimmt und ist n1 ≥ 2, dann kann es nicht notwendig sein, eine Reihenfolge der ersten n1 Speicherzellen zu bestimmen. Es kann in diesem Fall ausreichend sein, festzustellen, dass eine Speicherzelle zu den ersten n1 Speicherzellen gehört, ohne bestimmen zu müssen, an welcher Position in der Reihenfolge der ersten n1 Speicherzellen eine Speicherzelle positioniert ist. Allen n1 ersten Speicherzellen kann beispielsweise der gleiche digitale Wert 1 zugeordnet werden.If a first digital memory cell value is determined for n 1 first memory cells in the order and n 1 ≧2, then it may not be necessary to determine an order of the first n 1 memory cells. In this case, it may be sufficient to determine that a memory cell belongs to the first n 1 memory cells without having to determine at which position in the order of the first n 1 memory cells a memory cell is positioned. For example, the same digital value 1 can be assigned to all n 1 first memory cells.

Entsprechende Aussagen gelten für weitere Speicherzellen bis zu den nK K-ten Speicherzellen. Es kann ausreichend sein, eine teilweise bestimmte Reihenfolge oder eine Reihenfolge für eine Teilmenge der Speicherzellenwerte zu bestimmen.Corresponding statements apply to further memory cells up to the n K K-th memory cells. It may be sufficient to determine a partially determined order or an order for a subset of the memory cell values.

Es ist eine Weiterbildung, dass die physikalischen Werte bestimmt werden, indem die n Speicherzellen ausgelesen werden.In one development, the physical values are determined by reading out the n memory cells.

Es ist eine Weiterbildung, dass alle physikalischen Werte untereinander verglichen werden.It is a further development that all physical values are compared with one another.

Es ist eine Weiterbildung, dass K = 2 ist, so dass der n1-, ..., nK-aus-n-Code ein n1-, n2-aus-n-Code ist, wobei n1 erste Speicherzellenwerte untereinander den gleichen ersten Wert und n2 zweite Speicherzellenwerte untereinander den gleichen zweiten Wert aufweisen, wobei der erste Wert von dem zweiten Wert verschieden ist.It is a refinement that K=2, so that the n 1 ,...,n K -of-n code is an n 1 -,n 2 -of-n code, where n 1 first memory cell values have the same first value among one another and n 2 second memory cell values have the same second value among one another, the first value being different from the second value.

Der n1-, n2-aus-n-Code kann auch als n1-aus-n-Code bezeichnet werden. Hierbei gilt n2 = n - n1.The n 1 -, n 2 -of-n code can also be referred to as n 1 -of-n code. Here n 2 = n - n 1 applies.

Es ist eine Weiterbildung, dass K = 3 ist, so dass der n1-, ..., nK-aus-n-Code ein n1-, n2-, n3-aus-n-Code ist, wobei n1 erste Speicherzellenwerte untereinander den gleichen ersten Wert, n2 zweite Speicherzellenwerte untereinander den gleichen zweiten Wert und n3 dritte Speicherzellenwerte untereinander den gleichen dritten Wert aufweisen, wobei der erste Wert, der zweite Wert und der dritte Wert jeweils voneinander verschieden sind.It is a refinement that K=3, so that the n 1 ,...,n K -of-n code is an n 1 -,n 2 -,n 3 -of-n code, where n 1 first memory cell values have the same first value among each other, n 2 second memory cell values have the same second value among each other and n 3 third memory cell values have the same third value among each other, the first value, the second value and the third value being different from one another.

Es ist eine Weiterbildung, dass K > 3 gilt.It is a further development that K>3 applies.

In diesem Beispiel können mehr als drei Werte pro Speicherzelle, d.h. mehr als drei digitale Speicherzellenwerte, bestimmt werden.In this example, more than three values per memory cell, i.e. more than three digital memory cell values, can be determined.

Es ist eine Weiterbildung, dass die aus den Speicherzellen bestimmten Speicherzellenwerte durch eine eindeutig umkehrbare Transformation bestimmt werden.In a development, the memory cell values determined from the memory cells are determined by a uniquely reversible transformation.

Die Anzahl n der Speicherzellenwerte ist hierbei vorzugsweise kleiner als zweimal die Anzahl der in den Speicherzellen gespeicherten Bits.In this case, the number n of memory cell values is preferably less than twice the number of bits stored in the memory cells.

Es ist eine Weiterbildung, dass die physikalischen Werte Zeitpunkte sind.It is a further development that the physical values are points in time.

Es ist eine Weiterbildung, dass jeweils ein Zeitpunkt mittels einer zeitlichen Integration des physikalischen Wertes der Speicherzelle bestimmt wird.In one development, a point in time is determined in each case by means of a time integration of the physical value of the memory cell.

Es ist eine Weiterbildung, dass der physikalische Wert ein Lesestrom einer Speicherzelle ist.In one development, the physical value is a read current of a memory cell.

Es ist eine Weiterbildung, dass falls die erhaltenen digitalen Speicherzellenwerte ein Codewort eines n1-, ..., nK-aus-n-Codes darstellen, mittels einer Rücktransformation aus dem Codewort eine Anzahl von m Bits bestimmt werden.In a further development, if the digital memory cell values obtained represent a code word of an n 1 -, . . . , n K -out of n code, a number of m bits are determined from the code word by means of an inverse transformation.

Es ist eine Weiterbildung, dass eine Fehlererkennung und/oder Fehlerkorrektur der m Bits mittels eines Fehlercodes durchgeführt wird.In a further development, error detection and/or error correction of the m bits is carried out using an error code.

Es ist eine Weiterbildung, dass die Fehlererkennung und/oder Fehlerkorrektur basierend auf Prüfbits durchgeführt wird, wobei die Prüfbits entsprechend dem Fehlercode aus den Datenbits bestimmt werden.In a further development, the error detection and/or error correction is carried out based on check bits, the check bits being determined from the data bits in accordance with the error code.

Es ist eine Weiterbildung, dass die Fehlererkennung und/oder Fehlerkorrektur basierend auf Prüfbits durchgeführt wird, wobei die Prüfbits entsprechend dem Fehlercode aus den Speicherzellenwerten bestimmt werden.In one development, the error detection and/or error correction is performed on the basis of check bits, the check bits being determined from the memory cell values in accordance with the error code.

Es ist eine Weiterbildung, dass der Fehlercode ein Bytefehler-korrigierender und/oder ein Bytefehler-erkennender Code ist.In one development, the error code is a byte error-correcting and/or a byte error-detecting code.

Es ist eine Weiterbildung, dass ein Byte m Bits umfasst, wenn eine Fehlerkorrektur von Datenbits erfolgt und bei dem ein Byte n Bits umfasst, wenn eine Fehlerkorrektur von Speicherzellen erfolgt.In one development, a byte comprises m bits when error correction of data bits takes place and in which a byte comprises n bits when error correction of memory cells takes place.

Es ist eine Weiterbildung, dass der Fehlercode ein Bitfehler-korrigierender und/oder ein Bitfehler-erkennender Code ist.In one development, the error code is a bit error-correcting and/or bit error-detecting code.

Es ist eine Weiterbildung, dass zur Bestimmung der digitalen Speicherzellenwerte mindestens ein Referenzwert verwendet wird.In a development, at least one reference value is used to determine the digital memory cell values.

Es ist eine Weiterbildung, dass der Speicher mindestens einen der folgenden Speichertypen umfasst:

  • - einen Cache-Speicher,
  • - ein Register oder ein Register-Array,
  • - einen Flash-Speicher,
  • - ein MRAM,
  • - ein SRAM,
  • - ein RE-RAM,
  • - ein PC-RAM,
  • - ein FE-RAM,
  • - ein CB-RAM,
  • - einen Multibit-Speicher,
  • - einen Multilevel-Speicher.
In a further development, the memory comprises at least one of the following memory types:
  • - a cache memory,
  • - a register or a register array,
  • - a flash memory,
  • - an MRAM,
  • - a SRAM,
  • - a RE RAM,
  • - a PC RAM,
  • - a FE RAM,
  • - a CB RAM,
  • - a multibit memory,
  • - a multilevel memory.

Weiterhin wird eine Vorrichtung vorgeschlagen zum Verarbeiten von Speicherzellen aus einem Speicher, bei dem die Vorrichtung eine Verarbeitungseinheit aufweist, die eingerichtet ist,

  • - physikalische Werte aus einer Anzahl von n Speicherzellen zu bestimmen, wobei n mindestens drei ist, wobei die physikalischen Werte Zeitpunkte sind,
  • - die physikalischen Werte zumindest teilweise untereinander zu vergleichen,
  • - anhand der verglichenen physikalischen Werte den n Speicherzellen K unterschiedliche digitale Speicherzellenwerte zuzuordnen,
  • - den so erhaltenen digitalen Speicherzellenwerten ein Codewort eines n1-, ..., nK-aus-n-Codes zuzuordnen,
  • - die physikalischen Werte zumindest teilweise untereinander zu vergleichen und so eine Reihenfolge der physikalischen Werte zu bestimmen,
  • - anhand der Reihenfolge der physikalischen Werte den n Speicherzellen die K unterschiedlichen digitalen Speicherzellenwerte zuzuordnen.
Furthermore, a device is proposed for processing memory cells from a memory, in which the device has a processing unit that is set up
  • - to determine physical values from a number of n memory cells, where n is at least three, the physical values being points in time,
  • - compare the physical values at least partially with each other,
  • - assign different digital memory cell values to the n memory cells K on the basis of the compared physical values,
  • - to assign a code word of an n 1 -, ..., n K -out of n code to the digital memory cell values obtained in this way,
  • - compare the physical values at least partially with each other and thus determine a sequence of the physical values,
  • - to assign the K different digital memory cell values to the n memory cells on the basis of the sequence of the physical values.

Die hier genannte Verarbeitungseinheit kann insbesondere als eine Prozessoreinheit und/oder eine zumindest teilweise festverdrahtete oder logische Schaltungsanordnung ausgeführt sein, die beispielsweise derart eingerichtet ist, dass das Verfahren wie hierin beschrieben durchführbar ist. Besagte Verarbeitungseinheit kann jede Art von Prozessor oder Rechner oder Computer mit entsprechend notwendiger Peripherie (Speicher, Ein-/Ausgabe-Schnittstellen, Ein-Ausgabe-Geräte, etc.) sein oder umfassen.The processing unit mentioned here can in particular be embodied as a processor unit and/or an at least partially hardwired or logical circuit arrangement which is set up, for example, in such a way that the method can be carried out as described herein. Said processing unit can be or comprise any type of processor or calculator or computer with the necessary peripherals (memory, input/output interfaces, input/output devices, etc.).

Die vorstehenden Erläuterungen betreffend das Verfahren gelten für die Vorrichtung entsprechend. Die Vorrichtung kann in einer Komponente oder verteilt in mehreren Komponenten ausgeführt sein.The above explanations regarding the method apply accordingly to the device. The device can be embodied in one component or distributed in several components.

Auch wird die oben genannte Aufgabe gelöst mittels eines Systems umfassend mindestens eine der hier beschriebenen Vorrichtungen.The above-mentioned object is also achieved by means of a system comprising at least one of the devices described here.

Auch wird ein Computerprogrammprodukt vorgeschlagen, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, die Schritte des hier beschriebenen Verfahrens durchzuführen.A computer program product is also proposed which can be loaded directly into a memory of a digital computer, comprising program code parts which are suitable for carrying out the steps of the method described here.

Es wird ein computerlesbares Speichermedium angegeben umfassend von einem Computer ausführbare Anweisungen, die dazu geeignet sind, dass der Computer die Schritte des hier beschriebenen Verfahrens durchführt.A computer-readable storage medium is provided comprising computer-executable instructions suitable for the computer to perform the steps of the method described herein.

Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden nachfolgend beschrieben im Zusammenhang mit einer schematischen Beschreibung von Ausführungsbeispielen, die im Zusammenhang mit den Zeichnungen näher erläutert werden. Dabei können zur Übersichtlichkeit gleiche oder gleichwirkende Elemente mit gleichen Bezugszeichen versehen sein.The properties, features and advantages of this invention described above and the manner in which they are achieved are described below in connection with a schematic description of exemplary embodiments which are explained in more detail in connection with the drawings. For the sake of clarity, elements that are the same or have the same effect can be provided with the same reference symbols.

Es zeigen:

  • 1a eine Häufigkeitsverteilung für ausgelesene physikalische Werte, wobei ein Referenzwert zwischen den Häufigkeitsverteilungen dargestellt ist;
  • 1b eine Häufigkeitsverteilung für ausgelesene physikalische Werte, wobei sich im Gegensatz zu 1a die Häufigkeitsverteilungen überlappen;
  • 2a ein Schaubild umfassend mehrere physikalische Werte, die aus den Speicherzellen ausgelesen wurden;
  • 2b ein Schaubild mit mehreren Zeitpunkten, wobei je ein Zeitpunkt einem der in 2a dargestellten physikalischen Werte entspricht;
  • 3 ein Diagramm, das die Häufigkeitsverteilungen von physikalischen Werten WG einer Speicherzelle veranschaulicht.
  • 4 ein Diagramm, das Häufigkeitsverteilungen von aus dem Speicher gelesenen Werten veranschaulicht;
  • 5 ein Diagramm, das vier Häufigkeitsverteilungen von aus dem Speicher gelesenen Werten 0, 1, 2 und 3 veranschaulicht, wobei es für die vier Häufigkeitsverteilungen drei Überlappungsbereiche gibt;
  • 6 einen Speicher mit vier Speicherzellen, wobei aus den Speicherzellen physikalische Werte ausgelesen und unter Verwendung von mehreren Vergleichern paarweise verglichen werden;
  • 7 eine Schaltungsanordnung anhand derer aus den von der Vergleichern aus der Schaltung gemäß 6 die entsprechenden Belegungen der Speicherzellen bestimmt werden mittels mehrerer Logikgatter;
  • 8 ein schematisches Diagramm, bei dem Datenbits transformiert, in Speicherzellen eines Speichers gespeichert, die Speicherzellen gelesen und mittels einer inversen Transformation in Datenbits zurück transformiert werden;
  • 9 ein schematisches Schaubild, bei dem mehrere Gruppen von Datenbits transformiert, gespeichert und nach dem Lesen in Datenbits zurück transformiert werden;
  • 10 eine beispielhafte Schaltungsanordnung, die eine Fehlererkennung oder eine kombinierte Fehlererkennung mit Fehlerkorrektur ermöglicht, wobei die Datenbits durch eine Transformationsschaltung in Speicherbits transformiert werden, die in Speicherzellen eines Speichers gespeichert werden;
  • 11 eine alternative Schaltungsanordnung, die eine Fehlerkorrektur oder eine Fehlererkennung ggf. mit Fehlerkorrektur ermöglicht;
  • 12 ein weiteres Beispiel einer Variante der in 11 angedeuteten Schaltungsanordnung mit Rücktransformation und Bestimmung gegebenenfalls korrigierter Datenbits;
  • 13 eine beispielhafte Schaltungsanordnung umfassend mehrere Logikgatter zur Bestimmung eines Hold-Signals für mehrere Latches;
  • 14 eine beispielhafte Schaltungsanordnung zur Bestimmung der ersten drei schnellsten Nullen beim Auslesen von sechs Speicherzellen, wobei zur Ansteuerung mehrerer Latches das mittels der Schaltungsanordnung aus 13 erzeugte Hold-Signal genutzt wird;
  • 15 eine schematische Anordnung zur Veranschaulichung wie Datenbits mittels einer Transformationsschaltung transformiert und als Speicherzellenwerte in Speicherzellen eines Speichers gespeichert werden;
  • 16 eine schematische Umsetzung der Anordnung von 15, wobei in 16 beispielhaft n = k = 6, K = 3 und n1 = n2 = n3 = 2 gelten;
  • 17 eine schematische Anordnung zur Transformation von vier Datenbits x1, x2, x3, x4 in vier Speicherzellenwerte z1, z2, z3, z4.
Show it:
  • 1a a frequency distribution for read physical values, wherein a reference value is shown between the frequency distributions;
  • 1b a frequency distribution for physical values read out, in contrast to 1a the frequency distributions overlap;
  • 2a a chart including a plurality of physical values read from the memory cells;
  • 2 B a diagram with several points in time, each point in time corresponding to one of the in 2a corresponds to the physical values shown;
  • 3 a diagram that illustrates the frequency distributions of physical values W G of a memory cell.
  • 4 a diagram illustrating frequency distributions of values read from the memory;
  • 5 a diagram illustrating four frequency distributions of values 0, 1, 2 and 3 read from the memory, where there are three areas of overlap for the four frequency distributions;
  • 6 a memory with four memory cells, physical values being read from the memory cells and compared in pairs using a plurality of comparators;
  • 7 a circuit arrangement based on those from the comparators from the circuit according to FIG 6 the corresponding assignments of the memory cells are determined using a plurality of logic gates;
  • 8th a schematic diagram in which data bits are transformed, stored in memory cells of a memory, the memory cells are read and transformed back into data bits by means of an inverse transformation;
  • 9 a schematic diagram in which several groups of data bits are transformed, stored and transformed back into data bits after reading;
  • 10 an exemplary circuit arrangement that enables error detection or combined error detection with error correction, the data bits being transformed by a transformation circuit into memory bits, which are stored in memory cells of a memory;
  • 11 an alternative circuit arrangement that enables error correction or error detection, if necessary with error correction;
  • 12 Another example of a variant of the in 11 indicated circuit arrangement with inverse transformation and determination of possibly corrected data bits;
  • 13 an exemplary circuit arrangement comprising a plurality of logic gates for determining a hold signal for a plurality of latches;
  • 14 an exemplary circuit arrangement for determining the first three fastest zeros when reading six memory cells, with the circuit arrangement being used to control a plurality of latches 13 generated hold signal is used;
  • 15 a schematic arrangement to illustrate how data bits are transformed by means of a transformation circuit and stored as memory cell values in memory cells of a memory;
  • 16 a schematic implementation of the arrangement of 15 , where in 16 by way of example, n=k=6, K=3 and n1 = n2 = n3 =2;
  • 17 a schematic arrangement for the transformation of four data bits x 1 , x 2 , x 3 , x 4 into four memory cell values z 1 , z 2 , z 3 , z 4 .

Eine Speicherzelle kann unterschiedliche physikalische Werte oder Zustände annehmen, die verschiedenen digitalen Werten entsprechen.A memory cell can assume different physical values or states corresponding to different digital values.

Mit WG wird ein Wert einer physikalischen Größe G einer Speicherzelle S und mit WD wird ein digitaler Wert der Speicherzelle S bezeichnet.A value of a physical quantity G of a memory cell S is denoted by W G and a digital value of the memory cell S is denoted by W D .

Der digitale Wert WD kann binär sein und somit einen von zwei Werten, die mit 0 und 1 bezeichnet sein können, annehmen. Ein digitaler Wert ist insbesondere ein Wert aus einer endlichen Anzahl von Werten.The digital value W D can be binary and thus can assume one of two values, which can be denoted by 0 and 1. A digital value is in particular one of a finite number of values.

Auch ist es möglich, dass der digitale Wert WD mehr als zwei verschiedene Werte annehmen kann. Beispielsweise kann ein digitaler Wert drei verschiedene Werte annehmen; in diesem Fall können diese unterschiedlichen digitalen Werte mit 0, 1, 2 bezeichnet sein. Allgemein kann ein digitaler Wert K mit K ≥ 2 unterschiedliche Werte annehmen. Diese K unterschiedlichen Werte können mit 0,1, ..., K - 1 bezeichnet werden. Ein Speicher, der Speicherzellen aufweist, die mehr als zwei digitale Speicherzellenwerte speichern können, wird hier auch als mehrwertige Speicher oder Multi-Level-Speicher bezeichnet. Die zugehörigen Speicherzellen können als mehrwertige oder Multi-Level-Speicherzellen bezeichnet werden.It is also possible that the digital value W D can assume more than two different values. For example, a digital value can take on three different values; in this case these different digital values can be denoted by 0,1,2. In general, a digital value K with K≧2 can assume different values. These K different values can be denoted by 0,1,...,K-1. A memory that has memory cells that can store more than two digital memory cell values is also referred to herein as a multi-valued memory or multi-level memory. The associated memory cells can be referred to as multi-valued or multi-level memory cells.

Entsprechend kann ein Speicher mit Speicherzellen, die zwei digitale Werte speichern, als binärer Speicher und die entsprechenden Speicherzellen können als binäre Speicherzellen bezeichnet werden.Correspondingly, a memory with memory cells that store two digital values can be referred to as a binary memory and the corresponding memory cells can be referred to as binary memory cells.

Ein aus der Speicherzelle S ausgelesener physikalischer Wert wird mit WA bezeichnet.A physical value read from the memory cell S is denoted by W A .

Beispielsweise kann der physikalische Wert oder Zustand einer Speicherzelle ein elektrischer Widerstandswert sein. Entsprechend können binär zwei Widerstandswerte unterschieden werden: Beispielsweise kann ein größerer Widerstandswert dem digitalen Wert 0 und ein kleinerer Widerstandswert dem digitalen Wert 1 entsprechen. In einem anderen Beispiel kann der größere Widerstandswert dem digitalen Wert 1 und der kleinere Widerstandswert dem digitalen Wert 0 entsprechen.For example, the physical value or state of a memory cell can be an electrical resistance value. Accordingly, two resistance values can be differentiated in binary: For example, a larger resistance value can correspond to the digital value 0 and a smaller resistance value to the digital value 1. In another example, the larger resistance value can correspond to the digital value 1 and the smaller resistance value can correspond to the digital value 0.

Werden mehr als zwei digitale Werte in einer Speicherzelle gespeichert, kann entsprechend eine Staffelung (in Richtung der größeren oder kleineren Widerstandswerte) erfolgen: Beispielsweise kann ein größter Widerstandswert dem digitalen Wert 0, ein zweitgrößter Widerstandswert dem digitalen Wert 1, ein drittgrößter Widerstandswert dem digitalen Wert 2, etc. und schließlich ein kleinster Widerstandswert dem digitalen Wert K - 1 zugeordnet werden (hierbei sind wieder K digitale Werte in der Speicherzelle S speicherbar).If more than two digital values are stored in a memory cell, they can be scaled accordingly (in the direction of the larger or smaller resistance values): For example, a largest resistance value can have the digital value 0, a second-largest resistance value the digital value 1, and a third-largest resistance value the digital value 2, etc. and finally a smallest resistance value can be assigned to the digital value K−1 (here again K digital values can be stored in the memory cell S).

Beim Auslesen einer Speicherzelle S wird ein analoger physikalischer Wert WA bestimmt, der von dem physikalischen Wert WG abhängt, der beim Einschreiben bzw. Speichern des digitalen Werts WD erzeugt wurde.When a memory cell S is read, an analog physical value W A is determined, which depends on the physical value W G that was generated when the digital value W D was written or stored.

Aus dem ausgelesenen physikalischen Wert WA kann im fehlerfreien Fall der entsprechende digitale Wert WD bestimmt werden.If there are no errors, the corresponding digital value W D can be determined from the physical value W A that has been read out.

Entsprechen unterschiedliche elektrische Widerstandswerte unterschiedlichen Zuständen der Speicherzelle S, wie das beispielsweise bei einem MRAM der Fall ist, dann ist der gespeicherte physikalische Wert WG ein Widerstandswert und der gelesene physikalische Wert WA kann ein Strom oder eine Spannung sein.If different electrical resistance values correspond to different states of the memory cell S, as is the case with an MRAM, for example, then the stored physical value W G is a resistance value and the physical value W A read can be a current or a voltage.

Beispielsweise kann beim Auslesen von Speicherzellen mindestens ein Referenzwert R genutzt werden, der für alle oder für mehrere ausgelesene Speicherzellen gleich ist. Optional kann der (mindestens eine) Referenzwert (auch oder teilweise) extern zur Verfügung gestellt werden. Der aus einer Speicherzelle ausgelesene Wert WA kann mit dem Referenzwert R verglichen werden.For example, when reading out memory cells, at least one reference value R can be used, which is the same for all or for a plurality of memory cells read out. Optionally, the (at least one) reference value can (also or partially) be made available externally. The value W A read from a memory cell can be compared with the reference value R.

Nachfolgend wird beispielhaft insbesondere auf binäre Speicherzellen abgestellt, die zwei unterschiedliche digitale Werte 0 und 1 speichern können. Entsprechend können aber auch Speicherzellen vorgesehen sein, die jeweils mehr als zwei digitale Werte speichern können.In the following, by way of example, reference is made in particular to binary memory cells which can store two different digital values 0 and 1. Correspondingly, however, memory cells can also be provided which can each store more than two digital values.

Entspricht ein größerer Widerstandswert dem binären Wert 0 und ein kleinerer Widerstandswert dem binären Wert 1, dann entspricht ein kleinerer ausgelesener Wert WA eines Stroms dem digitalen Wert 0 und ein größerer ausgelesener Wert WA des Stroms dem digitalen Wert 1.If a larger resistance value corresponds to the binary value 0 and a smaller resistance value to the binary value 1, then a smaller read value WA of a current corresponds to the digital value 0 and a larger read value WA of the current corresponds to the digital value 1.

Entsprechend ist es eine Option, dass beim Lesen einer Speicherzelle eine Spannung als ausgelesener Wert WA bestimmt wird, deren Höhe davon abhängt, ob zuvor in die Speicherzelle der binäre Wert 0 oder der binäre Wert 1 geschrieben wurde.Accordingly, it is an option that when a memory cell is read, a voltage is determined as the value W A read out, the level of which depends on whether the binary value 0 or the binary value 1 was previously written into the memory cell.

Wird der digitale Wert WD durch einen Vergleich des ausgelesenen Werts WA mit einem einzigen entsprechenden Referenzwert R bestimmt, kann für den digitalen Wert WD gelten: W D = { 0 für W A < R 1 für W A > R

Figure DE102017103347B4_0001
If the digital value W D is determined by comparing the read value W A with a single corresponding reference value R, the digital value W D can be: W D = { 0 for W A < R 1 for W A > R
Figure DE102017103347B4_0001

Wird in mehrere Speicherzellen ein digitaler Wert 0 geschrieben, so nehmen die beschriebenen Speicherzellen beispielsweise auf Grund von statistischen Schwankungen (z.B. Prozessschwankungen in der Fertigung) unterschiedliche physikalische Werte WG an, die alle im fehlerfreien Fall dem digitalen Wert WD = 0 entsprechen und die durch eine Häufigkeitsverteilung beschrieben werden können. Entsprechend nehmen auch die ausgelesenen Werte WA unterschiedliche Werte gemäß einer Häufigkeitsverteilung an.If a digital value 0 is written to several memory cells, the memory cells written to assume different physical values W G , for example due to statistical fluctuations (e.g. process fluctuations in production), which all correspond to the digital value W D = 0 in the error-free case and the can be described by a frequency distribution. Correspondingly, the values W A that are read out also assume different values according to a frequency distribution.

Sinngemäß gilt diese Aussage für Speicherzellen, in die ein digitaler Wert 1 oder auch ein anderer Wert geschrieben wird: Wird in mehrere Speicherzellen der digitale Wert 1 geschrieben, so nehmen die beschriebenen Speicherzellen beispielsweise auf Grund von statistischen Schwankungen (z.B. Prozessschwankungen in der Fertigung) unterschiedliche physikalische Werte WG an, die alle im fehlerfreien Fall dem digitalen Wert WD = 1 entsprechen und die durch eine Häufigkeitsverteilung beschrieben werden können. Entsprechend nehmen auch die ausgelesenen Werte WA unterschiedliche Werte gemäß einer Häufigkeitsverteilung an.This statement applies analogously to memory cells in which a digital value 1 or another value is written: If the digital value 1 is written to several memory cells, the memory cells written take on different values, for example due to statistical fluctuations (e.g. process fluctuations in production). physical values W G , which all correspond to the digital value W D =1 in the error-free case and which can be described by a frequency distribution. Correspondingly, the values W A that are read out also assume different values according to a frequency distribution.

Ist es möglich, in einer Speicherzelle mehr als ein Bit zu speichern, so gelten diese Aussagen entsprechend für alle digitalen Werte, die in jeder der Speicherzellen gespeichert werden können.If it is possible to store more than one bit in a memory cell, then these statements apply accordingly to all digital values that can be stored in each of the memory cells.

1a zeigt beispielhaft eine Häufigkeitsverteilung 101 für die ausgelesenen Werte WA(1), die dem digitalen Wert 1 entsprechen und eine Häufigkeitsverteilung 102 für die ausgelesenen Werte WA(0), die dem digitalen Wert 0 entsprechen. Auf der x-Achse sind die unterschiedlichen ausgelesenen Werten WA und auf der y-Achse die Häufigkeiten der ausgelesenen Werte WA dargestellt. Weiterhin ist ein Referenzwert R zwischen den Häufigkeitsverteilungen 101 und 102 dargestellt. 1a FIG. 1 shows, by way of example, a frequency distribution 101 for the values W A (1) read out, which correspond to the digital value 1, and a frequency distribution 102 for the values W A (0) read out, which correspond to the digital value 0. The different values WA read out are shown on the x-axis and the frequencies of the values WA read out are shown on the y-axis. A reference value R between the frequency distributions 101 and 102 is also shown.

In dem in 1a dargestellten Beispiel gibt es keine Überlappung zwischen den Häufigkeitsverteilungen 101 und 102. Somit gibt es keine fehlerhafte Zuordnung der binären Werte 0 und 1. Mit anderen Worten ist anhand des Referenzwerts R eine eindeutige und fehlerfreie Zuordnung des ausgelesenen Werts WA zu dem jeweiligen binären Wert 0 oder 1 möglich, falls kein Lesefehler auftritt.in the in 1a In the example shown, there is no overlap between the frequency distributions 101 and 102. There is therefore no erroneous assignment of the binary values 0 and 1. In other words, using the reference value R, there is a clear and error-free assignment of the read value W A to the respective binary value 0 or 1 possible if no read error occurs.

In diesem Beispiel wird vereinfacht davon ausgegangen, dass es auch durch Einwirkung von Strahlung oder Erwärmung zu keinen fehlerhaften Zuordnungen kommt.In this example, it is assumed in simplified form that there are no incorrect assignments due to the effects of radiation or heating.

1b zeigt beispielhaft eine Häufigkeitsverteilung 103 für die ausgelesenen Werte WA(1), die dem digitalen Wert 1 entsprechen und eine Häufigkeitsverteilung 104 für die ausgelesenen Werte WA(0), die dem digitalen Wert 0 entsprechen. Wieder ist ein Referenzwert R zwischen den Häufigkeitsverteilungen 103 und 104 dargestellt. 1b FIG. 1 shows an example of a frequency distribution 103 for the read values W A (1), which correspond to the digital value 1, and a frequency distribution 104 for the read values W A (0), which correspond to the digital value 0. A reference value R between the frequency distributions 103 and 104 is again shown.

Im Gegensatz zu den in 1a dargestellten Häufigkeitsverteilungen 101 und 102 überlappen sich die Häufigkeitsverteilungen 103 und 104. Eine derartige Überlappung kann beispielsweise bei MRAM-Speicherzellen auftreten. In 1b ist ein Überlappungsbereich 105 gezeigt; dieser wird auch mit [0,1]A bezeichnet.In contrast to the in 1a In the frequency distributions 101 and 102 illustrated, the frequency distributions 103 and 104 overlap. Such an overlap can occur, for example, in the case of MRAM memory cells. In 1b an overlap area 105 is shown; this is also denoted by [0,1] A.

Wird einem ausgelesenen Wert WA der binäre Wert 0 zugeordnet, wenn WA < R gilt und wird dem Wert WA der binäre Wert 1 zugeordnet wenn WA ≥ R gilt, so kann diese Zuordnung fehlerhaft sein, falls der ausgelesene Wert WA in dem Überlappungsbereich 105 liegt.If a read value WA is assigned the binary value 0 if WA < R and if the value WA is assigned the binary value 1 if WA ≥ R, this assignment may be incorrect if the read value WA is in the overlap area 105 lies.

Weiterhin können Fehler auftreten, die auf einer Einwirkung durch Strahlung oder Wärme oder auf permanenten Fehlern von Speicherzellen beruhen.Furthermore, errors can occur which are based on the effects of radiation or heat or on permanent errors in memory cells.

Somit kann aufgrund des Überlappungsbereichs 105 unter Verwendung des Referenzwertes R mit relevanter Wahrscheinlichkeit eine fehlerhafte Zuordnung erfolgen: Liegt ein ausgelesener Wert WA, der einem binären Wert 0 entspricht, in dem Überlappungsbereich 105, kann in etwa der Hälfte der Fälle WA > R gelten, was zu einer fehlerhaften Zuordnung führt. Entsprechend gilt: Liegt ein ausgelesener Wert WA, der einem binären Wert 1 entspricht, in dem Überlappungsbereich 105, kann in etwa der Hälfte der Fälle WA < R gelten, was ebenfalls zu einer fehlerhaften Zuordnung führt.Thus, due to the overlapping area 105 using the reference value R, an erroneous assignment can occur with a relevant probability: if a read value WA that corresponds to a binary value 0 is in the overlapping area 105, W A >R can apply in about half of the cases , which leads to an incorrect assignment. Correspondingly, the following applies: If a read value W A , which corresponds to a binary value 1, is in the overlapping area 105, W A <R can apply in about half of the cases, which also leads to an erroneous assignment.

Daher kann es für ausgelesene Werte WA, wenn sie in dem Überlappungsbereich 105 liegen, zu einer fehlerhaften Zuordnung eines zugehörigen digitalen Wertes kommen. Ein Bereich 106 zeigt einen Anteil der ausgelesenen Werte WA, die fehlerhaft dem binären Wert 1 zugeordnet werden, obwohl es sich um binäre Werte 0 handelt. Damit ist die Häufigkeit, dass ein fehlerhafter digitaler Wert zugeordnet wird, wesentlich durch die Häufigkeit bestimmt, dass der ausgelesene Wert WA in dem Überlappungsbereich 105 liegt. Dies ist insbesondere für große Überlappungsbereiche, wie sie beispielsweise bei modernen Technologien auftreten können, von Nachteil.Therefore, for values W A that have been read out, if they lie in the overlapping area 105, an associated digital value can be assigned incorrectly. An area 106 shows a portion of the values W A read out which are erroneously assigned to the binary value 1, although binary values 0 are involved. The frequency with which an erroneous digital value is assigned is therefore essentially determined by the frequency with which the value W A that has been read lies in the overlapping area 105 . This is disadvantageous in particular for large overlapping areas, such as can occur with modern technologies, for example.

Ein digitaler binärer Wert x, der die Werte 0 und 1 annehmen kann, kann unter Verwendung von zwei Speicherzellen S1 und S2 gespeichert werden. Beispielsweise kann für x = 0 ein Wert 0 in die Speicherzelle S1 und ein Wert 1 in die Speicherzelle S2 und für x = 1 ein Wert 1 in die Speicherzelle S1 und ein Wert 0 in die Speicherzelle S2 geschrieben (gespeichert) werden. Entsprechend kann umgekehrt für x = 0 ein Wert 1 in die Speicherzelle S1 und ein Wert 0 in die Speicherzelle S2 und für x = 1 ein Wert 0 in die Speicherzelle S1 und ein Wert 1 in die Speicherzelle S2 geschrieben werden.A digital binary value x, which can take the values 0 and 1, can be stored using two memory cells S 1 and S 2 . For example, for x=0 a value 0 can be written (stored) in memory cell S1 and a value 1 in memory cell S2 and for x=1 a value 1 can be written in memory cell S1 and a value 0 in memory cell S2 . Conversely, for x=0 a value 1 can be written into memory cell S1 and a value 0 into memory cell S2 and for x=1 a value 0 can be written into memory cell S1 and a value 1 into memory cell S2 .

Die aus den beiden Speicherzellen S1 und S2 ausgelesenen (physikalischen) Werte können beispielsweise mittels eines Komparators miteinander verglichen werden, um im fehlerfreien Fall zu bestimmen, ob der Wert 0 oder der Wert 1 gespeichert wurde.The (physical) values read from the two memory cells S 1 and S 2 can be compared with one another, for example by means of a comparator, in order to determine, if there are no errors, whether the value 0 or the value 1 was stored.

Beispielsweise wird aus der Speicherzelle S1 der physikalische Wert W A 1

Figure DE102017103347B4_0002
und aus der Speicherzelle S2 der physikalische Wert W A 2
Figure DE102017103347B4_0003
gelesen. Gilt W A 1 < W A 2 ,
Figure DE102017103347B4_0004
kann das bedeuten, dass der binäre Wert x = 0 in den beiden Speicherzellen S1 und S2 gespeichert wurde. Gilt W A 1 > W A 2 ,
Figure DE102017103347B4_0005
kann das bedeuten, dass der binäre Wert x = 1 in den beiden Speicherzellen S1 und S2 gespeichert wurde.For example, the storage cell S 1 becomes the physical value W A 1
Figure DE102017103347B4_0002
and from the storage cell S 2 the physical value W A 2
Figure DE102017103347B4_0003
had read. Is applicable W A 1 < W A 2 ,
Figure DE102017103347B4_0004
this can mean that the binary value x = 0 was stored in the two memory cells S1 and S2 . Is applicable W A 1 > W A 2 ,
Figure DE102017103347B4_0005
this can mean that the binary value x = 1 was stored in the two memory cells S 1 and S 2 .

In diesem Beispiel werden die in den Speicherzellen S1 und S2 gespeicherten ausgelesenen Werte W A 1  und  W A 2

Figure DE102017103347B4_0006
miteinander und nicht mit einem Referenzwert verglichen. Dadurch kann die Wahrscheinlichkeit für das Auftreten eines Fehlers durch gegenseitigen Vergleich der ausgelesenen Werte deutlich reduziert werden.In this example, the read values stored in memory cells S 1 and S 2 become W A 1 and W A 2
Figure DE102017103347B4_0006
compared with each other and not with a reference value. As a result, the probability of an error occurring can be significantly reduced by mutual comparison of the values read out.

Ein Fehler kann nur auftreten, wenn sowohl der ausgelesene Wert W A 1

Figure DE102017103347B4_0007
der Zelle S1 als auch der ausgelesene Wert W A 2
Figure DE102017103347B4_0008
der Zelle S2 in dem Überlappungsbereich der Verteilungen WA(0) und WA(1) liegen. Dies wird wesentlich seltener der Fall sein, als dass nur einer der beiden ausgelesenen Werte in dem Überlappungsbereich liegt.An error can only occur if both the read value W A 1
Figure DE102017103347B4_0007
of cell S 1 as well as the read value W A 2
Figure DE102017103347B4_0008
of cell S 2 lie in the overlap region of the distributions W A (0) and W A (1). This will be the case much more rarely than only one of the two values read out being in the overlapping area.

Wird hingegen der aus einer Speicherzelle ausgelesene Wert mit einem Referenzwert verglichen, kann ein Fehler bereits dann auftreten, wenn dieser eine ausgelesene Wert in dem Überlappungsbereich der entsprechenden Verteilungen liegt.If, on the other hand, the value read from a memory cell is compared with a reference value, an error can already occur if this one value that has been read lies in the overlapping area of the corresponding distributions.

Hierbei ist es von Nachteil, dass pro zu speicherndem Bit zwei Speicherzellen, also für die Speicherung von n Bits 2 - n Speicherzellen erforderlich sind.The disadvantage here is that two memory cells are required for each bit to be stored, ie 2−n memory cells are required for the storage of n bits.

Ein Vorteil der hier vorgestellten Beispiele besteht darin, dass ermöglicht wird, digitale Werte mit hoher Zuverlässigkeit unter Verwendung möglichst weniger Speicherzellen zu speichern. Ein weiterer Vorteil ist es, dass zusätzlich beim Speichern ein Fehlercode verwendet werden kann, so dass Lesefehler zumindest teilweise erkannt und/oder korrigiert werden können.An advantage of the examples presented here is that it makes it possible to store digital values with high reliability using as few memory cells as possible. A further advantage is that an error code can also be used when storing, so that reading errors can be at least partially recognized and/or corrected.

Transformation von Datenbits in SpeicherzellenwerteTransformation of data bits into memory cell values

Beispielsweise werden 2k mögliche Belegungen von k Bits in n Speicherzellenwerte transformiert. Die Speicherzellenwerte werden in n Speicherzellen, beispielsweise in Speicherzellen eines adressierbaren Speichers, gespeichert.For example, 2 k possible assignments of k bits are transformed into n memory cell values. The memory cell values are stored in n memory cells, for example in memory cells of an addressable memory.

Die in n Speicherzellen gespeicherten n Speicherzellenwerte können aus den n Speicherzellen ausgelesen werden, und die ausgelesenen n Speicherzellenwerte können in die k Datenbits zurücktransformiert werden, wenn kein Fehler vorliegt. The n memory cell values stored in n memory cells can be read out from the n memory cells, and the read out n memory cell values can be transformed back into the k data bits when there is no error.

Die Speicherzellenwerte können binäre Werte (z.B. die Werte 0 und 1) sein. In diesem Fall werden in den Speicherzellen des Speichers binäre Werte gespeichert. Diese Speicherzellen können dann als binäre Speicherzellen bezeichnet werden.The memory cell values can be binary values (e.g. the values 0 and 1). In this case, binary values are stored in the memory cells of the memory. These memory cells can then be referred to as binary memory cells.

Es ist auch möglich, dass jeder der Speicherzellenwerte K verschiedene Werte annehmen kann. Im Unterschied zu den binären Speicherzellenwerten, kann hier jeder Speicherzellenwert mehr als zwei Werte annehmen. Es gilt also: K > 2, wobei die K Speicherzellenwerte 0,1, ... , K - 1 sind. Sind beispielsweise dreiwertige Speicherzellen vorgesehen, die entsprechend dreiwertige Speicherzellenwerte speichern können, so kann jedem Speicherzellenwert einer der Werte 0, 1 oder 2 zugeordnet sein.It is also possible that each of the memory cell values K can assume different values. In contrast to the binary memory cell values, each memory cell value can have more than two values. Thus: K > 2, where the K memory cell values are 0,1,...,K-1. If, for example, three-valued memory cells are provided which can store correspondingly three-valued memory cell values, one of the values 0, 1 or 2 can be assigned to each memory cell value.

Es ist auch möglich, dass i Speicherzellen unterschiedliche Ki-wertige Werte (binär oder mehrwertig, d.h. Ki ≥ 2) speichern können. Beispielsweise können mindestens zwei Speicherzellen vorgesehen sein, von denen die eine Speicherzelle K1-wertige Werte und die andere K2-wertige Werte speichert, wobei K1 ≠ K2.It is also possible that i memory cells can store different K i -valued values (binary or multi-valued, ie K i ≧2). For example, at least two memory cells can be provided, of which one memory cell stores K 1 -values and the other K 2 -values, where K 1 ≠K 2 .

Binäre SpeicherzellenwerteBinary memory cell values

Zunächst wird der Fall betrachtet, dass die Speicherzellenwerte binär sind.First, the case where the memory cell values are binary is considered.

Es sollen k Datenbits x1, ... , xk in n Speicherzellenwerte z1, ... , zn transformiert und in n Speicherzellen gespeichert werden.k data bits x 1 , . . . , x k are to be transformed into n memory cell values z 1 , . . . , z n and stored in n memory cells.

Die möglichen 2k Belegungen der k Datenbits xi,...,xk werden beispielsweise durch eine kombinatorische Schaltung (auch bezeichnet als Transformationsschaltung) in Speicherzellenwerte transformiert. Die Transformationsschaltung stellt hierzu eine Transformation bereit, die eine Abbildung der 2k Belegungen der k Datenbits in n Speicherzellenwerte durchführt.The possible 2 k assignments of the k data bits x i , . For this purpose, the transformation circuit provides a transformation that maps the 2 k assignments of the k data bits into n memory cell values.

Die Transformation ist so realisiert, dass die Speicherzellenwerte, in die die Datenbits transformiert werden, Codewörter eines n1-aus-n-Codes sind. Ein Codewort des n1-aus-n-Codes weist n1 erste binäre Werte und n2 = n - n1 zweite binäre Werte auf. Haben die ersten binären Werte den Wert 1 und haben die zweiten binären Werte den Wert 0, so weist ein Codewort des n1-aus-n-Codes eine Anzahl von n1 Einsen und eine Anzahl von n2 = n - n1 Nullen auf.The transformation is implemented in such a way that the memory cell values into which the data bits are transformed are code words of an n 1 -of-n code. A code word of the n 1 -of-n code has n 1 first binary values and n 2 = n - n 1 second binary values. If the first binary values have the value 1 and the second binary values have the value 0, then a code word of the n 1 out of n code has a number of n 1 ones and a number of n 2 =n−n 1 zeros .

Entsprechend ist es möglich, dass die ersten binären Werte den Wert 0 und die zweiten binären Werte den Wert 1 aufweisen.Accordingly, it is possible for the first binary values to have the value 0 and the second binary values to have the value 1.

Die Speicherung der Datenbits als Codewörter des n1-aus-n-Codes ist vorteilhaft, da beispielsweise beim Auslesen der in den Speicherzellen gespeicherten Codewörtern des n1-aus-n-Codes eine höhere Zuverlässigkeit erreicht werden kann als bei uncodiert gespeicherten Datenbits.Storing the data bits as code words of the n 1 -out of n code is advantageous since, for example, when reading out the code words of the n 1 -out of n code stored in the memory cells, greater reliability can be achieved than with data bits stored uncoded.

Der n1-aus-n-Code kann auch als ein n1-,n2-aus-n-Code bezeichnet werden, wobei n1 die Anzahl der ersten binären Werte und n2 die Anzahl der zweiten binären Werte bezeichnet. Dabei ist hier n2 = n - n1. Durch diese Bezeichnung ist ersichtlich, dass zwei verschiedene (hier binäre) Werte 0 und 1 in jedem Codewort vorhanden sind.The n 1 -of-n code can also be referred to as an n 1 -,n 2 -of-n code, where n 1 denotes the number of first binary values and n 2 denotes the number of second binary values. Here n 2 = n - n 1 . This designation shows that there are two different (here binary) values 0 and 1 in each code word.

Es gelten: n 1 < n

Figure DE102017103347B4_0009
n 2 = n n 1 < n
Figure DE102017103347B4_0010
n 1 + n 2 = n
Figure DE102017103347B4_0011
n 1 1
Figure DE102017103347B4_0012
n 2 1.
Figure DE102017103347B4_0013
The following apply: n 1 < n
Figure DE102017103347B4_0009
n 2 = n n 1 < n
Figure DE102017103347B4_0010
n 1 + n 2 = n
Figure DE102017103347B4_0011
n 1 1
Figure DE102017103347B4_0012
n 2 1.
Figure DE102017103347B4_0013

Beispielsweise kann die Anzahl n der Speicherzellenwerte größer oder gleich 3 sein.For example, the number n of memory cell values can be greater than or equal to 3.

Ist die Anzahl der Speicherzellenwerte gleich 2 (d.h. ist n = 2), so sind die Codewörter des entsprechenden 1-aus-2-Codes 10 und 01. Beispielsweise kann der binäre Wert 0 als 10 und der binäre Wert 1 als 01 codiert sein. Hierbei ist es von Nachteil, dass n = 2 Speicherzellen erforderlich sind, um die Information eines einzelnen Bits zu speichern.If the number of memory cell values is 2 (i.e. if n=2), then the code words of the corresponding 1-of-2 code are 10 and 01. For example, the binary value 0 can be encoded as 10 and the binary value 1 as 01. The disadvantage here is that n=2 memory cells are required to store the information of an individual bit.

Es gibt, wie vorstehend erläutert wurde, 2k verschiedene Belegungen der k Datenbits. Außerdem gibt es ( n n 1 )

Figure DE102017103347B4_0014
verschiedene Codewörter eines n1-aus-n-Codes.As explained above, there are 2 k different assignments of the k data bits. There is also ( n n 1 )
Figure DE102017103347B4_0014
different code words of an n 1 -out of n code.

Die Transformation der 2k Belegungen der k Datenbits in die ( n n 1 )

Figure DE102017103347B4_0015
Codewörter des n1-aus-n-Codes kann eindeutig umkehrbar erfolgen, so dass auch anhand eines der Codewörter auf die entsprechende Belegung der Datenbits eindeutig rückgeschlossen werden kann, wenn eine Belegung der Datenbits einem der Codewörter zugeordnet ist.The transformation of the 2 k assignments of the k data bits into the ( n n 1 )
Figure DE102017103347B4_0015
Code words of the n 1 -of-n code can be uniquely reversible, so that one of the code words can also be used to unambiguously infer the corresponding occupancy of the data bits if an occupancy of the data bits is assigned to one of the code words.

Es gibt mindestens so viele verschiedene Codewörter wie Belegungen der Datenbits, d.h. ist die Bedingung 2 k ( n n 1 )

Figure DE102017103347B4_0016
erfüllt, dann ist eine umkehrbar eindeutige Transformation aller Belegungen der k Datenbits in Codewörter des n1-aus-n-Codes möglich.There are at least as many different code words as there are data bit assignments, ie is the condition 2 k ( n n 1 )
Figure DE102017103347B4_0016
is met, then a reversible, unique transformation of all assignments of the k data bits into code words of the n 1 -of-n code is possible.

Es ist auch möglich, dass je nach Anwendungsfall nicht alle der 2k möglichen Belegungen der k Datenbits auftreten. Ist dies der Fall und gibt ein Wert Anz < 2k die Anzahl der tatsächlich auftretenden Belegungen an, ist nur erforderlich, dass die Bedingung A n z ( n n 1 )

Figure DE102017103347B4_0017
erfüllt ist, um umkehrbar eindeutig den tatsächlich auftretenden Belegungen Codewörter zuzuordnen.It is also possible that, depending on the application, not all of the 2 k possible assignments of the k data bits occur. If this is the case and a value Anz < 2 k indicates the number of allocations that actually occur, all that is required is that the condition A n e.g ( n n 1 )
Figure DE102017103347B4_0017
is fulfilled in order to reversibly and uniquely assign code words to the assignments that actually occur.

Damit können vorteilhaft weniger als 2 - k Speicherzellen zum Abspeichern von k Datenbits verwendet werden.In this way, advantageously less than 2−k memory cells can be used for storing k data bits.

Binäre Speicherzellenwerte: BeispieleBinary memory cell values: examples

Beispielhaft wird von k = 4 Datenbits ausgegangen, für die es 2k = 24 = 16 verschiedene Belegungen gibt. Sind beispielsweise n = 6 Speicherzellen (n ist die Anzahl der Speicherzellenwerte, wobei jeder Speicherzellenwert in einer Speicherzelle gespeichert werden soll) vorgesehen und gilt n1 = 3, dann gibt es ( n n 1 ) = ( 6 3 ) = 6 5 4 3 2 1 = 20

Figure DE102017103347B4_0018
verschiedene Codewörter eines 3-aus-6-Codes, wobei jedes der Codewörter drei Einsen und drei Nullen aufweist. Somit ist es möglich, die unterschiedlichen 16 Belegungen der 4 Datenbits in 16 ausgewählte Codewörter (der insgesamt 20 Codewörter) des 3-aus-6-Codes zu transformieren und in 6 Speicherzellen des Speichers zu speichern.As an example, k=4 data bits are assumed for which there are 2 k =2 4 =16 different allocations. For example, if there are n=6 memory cells (n is the number of memory cell values, where each memory cell value is to be stored in a memory cell) and n 1 =3, then there is ( n n 1 ) = ( 6 3 ) = 6 5 4 3 2 1 = 20
Figure DE102017103347B4_0018
different codewords of a 3-of-6 code, each of the codewords having three 1's and three 0's. It is thus possible to transform the different 16 assignments of the 4 data bits into 16 selected code words (of the 20 code words in total) of the 3-out-of-6 code and to store them in 6 memory cells of the memory.

Für n = 6 Speicherzellenwerte und n1 = 2 ergäben sich nur ( n n 1 ) = ( 6 2 ) = 6 5 4 2 1 = 15

Figure DE102017103347B4_0019
verschiedene Codewörter eines 2-aus-6-Codes, bei dem jedes Codewort genau zwei Einsen und vier Nullen aufweist. Eine umkehrbar eindeutige Transformation der 24 = 16 Belegungen der 4 Datenbits in Codewörter des 2-aus-6-Codes ist damit nicht möglich.For n=6 memory cell values and n 1 =2, only ( n n 1 ) = ( 6 2 ) = 6 5 4 2 1 = 15
Figure DE102017103347B4_0019
different code words of a 2-of-6 code, where each code word has exactly two 1's and four 0's. A reversibly unambiguous transformation of the 2 4 =16 assignments of the 4 data bits into code words of the 2-out-of-6 code is therefore not possible.

Ist der Wert Anz der tatsächlich aufgetretenen Belegungen beispielsweise kleiner oder gleich 15, kann auch dieser 2-aus-6-Code verwendet werden.If the number of occupancies that actually occurred is, for example, less than or equal to 15, this 2-out-of-6 code can also be used.

Binäre Speicherzellenwerte: Gruppierung der DatenbitsBinary memory cell values: grouping of data bits

Nachfolgend wird erläutert, dass N Datenbits in Speicherzellenwerte transformiert werden, wobei N = M · k gelten soll und M größer als 1 ist. Somit können M Gruppen aus jeweils k Datenbits gebildet werden, wobei die jeweils 2k Belegungen jeder Gruppe von k Datenbits in 2k Codewörter eines ( n n 1 )

Figure DE102017103347B4_0020
Codes umkehrbar eindeutig transformiert werden.It is explained below that N data bits are transformed into memory cell values, where N=M*k should apply and M is greater than 1. M groups of k data bits each can thus be formed, with the respective 2 k assignments of each group of k data bits in 2 k code words of one ( n n 1 )
Figure DE102017103347B4_0020
Codes can be uniquely transformed in an invertible manner.

Werden die Belegungen von M Gruppen von jeweils k Datenbits in Codewörter eines jeweils gleichen n1-aus-n-Codes transformiert, ergeben sich M · n Speicherzellenwerte, die entsprechend in M · n Speicherzellen gespeichert werden können.If the occupancies of M groups of k data bits each are transformed into code words of a respectively identical n 1 out of n code, this results in M×n memory cell values which can be stored correspondingly in M×n memory cells.

Beispielhaft ist hier der Fall beschrieben, dass die M Gruppen jeweils k Datenbits umfassen. Alternativ ist es möglich, dass eine erste Gruppe von Datenbits k1 Datenbits aufweist, eine zweite Gruppe von Datenbits k2 Datenbits aufweist, usw. bis eine M-te Gruppe km Datenbits aufweist. Die Anzahl der Datenbits pro Gruppe k1, k2, ... , km kann untereinander zumindest teilweise unterschiedlich sein. Somit gilt N = k 1 + k 2 + + k M ,

Figure DE102017103347B4_0021
wobei

  • - die ersten k1 Datenbits in Codewörter eines ersten n 1 1 aus n 1 Codes ,
    Figure DE102017103347B4_0022
  • - die zweiten k2 Datenbits in Codewörter eines zweiten n 1 2 aus n 2 Codes ,
    Figure DE102017103347B4_0023
    ...
  • - die M-ten kM Datenbits in Codewörter eines M-ten n 1 M aus n M Codes
    Figure DE102017103347B4_0024
transformiert werden können. Dabei können die einzelnen Codes zumindest teilweise voneinander verschieden sein. Optional können unterschiedliche Codes auch dann verwendet werden, wenn die Anzahl der Datenbits pro Gruppe gleich ist.The case in which the M groups each comprise k data bits is described here as an example. Alternatively, it is possible for a first group of data bits to have k 1 data bits, a second group of data bits to have k 2 data bits, etc. until an Mth group has k m data bits. The number of data bits per group k 1 , k 2 , . . . , km can at least partially differ from one another. Thus applies N = k 1 + k 2 + ... + k M ,
Figure DE102017103347B4_0021
whereby
  • - the first k 1 data bits in code words of a first n 1 1 out of n 1 codes ,
    Figure DE102017103347B4_0022
  • - the second k 2 data bits into code words of a second n 1 2 out of n 2 codes ,
    Figure DE102017103347B4_0023
    ...
  • - the Mth k M data bits in codewords of an Mth n 1 M out of n M codes
    Figure DE102017103347B4_0024
can be transformed. The individual codes can be at least partially different from one another. Optionally, different codes can also be used if the number of data bits per group is the same.

Ist beispielsweise die Zahl der Datenbits k = 3, ergeben sich 2k = 8 mögliche Belegungen der 3 Datenbits. Mit n = 5 Speicherzellenwerten kann sowohl ein 2-aus-5-Code als auch ein 3-aus-5-Code verwendet werden, da diese beiden Codes jeweils 10 Codewörter und damit mehr Codewörter als mögliche Belegungen bereitstellen. So kann beispielsweise für eine erste Gruppe von 3 Datenbits der 2-aus-5-Code und für eine zweite Gruppe von 3 Datenbits der 3-aus-5-Code verwendet werden.For example, if the number of data bits k=3, there are 2 k =8 possible allocations of the 3 data bits. With n=5 memory cell values, both a 2-of-5 code and a 3-of-5 code can be used, since these two codes each have 10 code words and therefore more code words than possible bele provide services. For example, the 2-of-5 code can be used for a first group of 3 data bits and the 3-of-5 code can be used for a second group of 3 data bits.

Wie ausgeführt ist es eine Option, dass die Gruppen von Datenbits nicht alle die gleiche Anzahl k Datenbits aufweisen. Beispielhaft sollen 23 Datenbits in Speicherzellenwerte transformiert werden: Aus den 23 Datenbits können 5 Gruppen mit jeweils 4 Datenbits und eine Gruppe mit 3 Datenbits gebildet werden. Die 24 = 16 möglichen Belegungen der jeweiligen Gruppe mit 4 Datenbits können beispielsweise in Codewörter eines 3-aus-6-Codes, der 20 verschiedene Codewörter aufweist, transformiert werden. Die verbleibende Gruppe mit 3 Datenbits hat 23 = 8 mögliche Belegungen. Diese 3 Datenbits können beispielsweise in Codewörter eines 3-aus-5-Codes transformiert werden, der 10 Codewörter aufweist. Hierdurch ist eine Speicherzelle weniger erforderlich als wenn die 23 = 8 möglichen Belegungen der 3 Datenbits auch in Codewörter des 3-aus-6-Codes transformiert werden würden. Es ist beispielsweise auch möglich, die Gruppe von 3 Datenbits durch ein konstantes Bit, z.B. ein Bit mit dem Wert 0 zu ergänzen, so dass sich 4 Datenbits ergeben, so dass alle Gruppen die gleiche Zahl Datenbits aufweisen und somit die gleiche Transformation verwendet werden kann. Dies kann den Aufwand beim Schaltungsentwurf reduzieren.As explained, it is an option that the groups of data bits do not all have the same number k of data bits. For example, 23 data bits are to be transformed into memory cell values: 5 groups each with 4 data bits and one group with 3 data bits can be formed from the 23 data bits. The 2 4 =16 possible assignments of the respective group with 4 data bits can be transformed, for example, into code words of a 3-out-of-6 code, which has 20 different code words. The remaining group with 3 data bits has 2 3 = 8 possible assignments. For example, these 3 data bits can be transformed into code words of a 3-of-5 code having 10 code words. As a result, one memory cell less is required than if the 2 3 =8 possible assignments of the 3 data bits were also transformed into code words of the 3-out-of-6 code. It is also possible, for example, to supplement the group of 3 data bits with a constant bit, eg a bit with the value 0, resulting in 4 data bits, so that all groups have the same number of data bits and the same transformation can therefore be used . This can reduce circuit design effort.

Mehrwertige SpeicherzellenwerteMultivalued memory cell values

Es soll nun der Fall betrachtet werden, dass Speicherzellenwerte mehr als zwei unterschiedliche Werte annehmen können und dass entsprechend die Speicherzellen mehrwertige Speicherzellenwerte speichern können.The case should now be considered in which memory cell values can assume more than two different values and that accordingly the memory cells can store multi-valued memory cell values.

Eine Speicherzelle soll K unterschiedliche Speicherzellenwerte speichern können, wobei K > 2 ist (K = 2 wäre der Sonderfall der binären Speicherzellenwerte). Die unterschiedlichen Speicherzellenwerte pro Speicherzelle können mit 0,1, ... , K - 1 bezeichnet sein.A memory cell should be able to store K different memory cell values, where K > 2 (K=2 would be the special case of binary memory cell values). The different memory cell values per memory cell can be denoted by 0, 1, . . . , K-1.

Es sollen wieder k Datenbits gespeichert werden. Die 2k unterschiedlichen Belegungen der k Datenbits können umkehrbar eindeutig in n Speicherzellenwerte transformiert werden. Diese n Speicherzellenwerte weisen

  • - n1 erste Werte,
  • - n2 zweite Werte, ...
  • - nK K-te Werte
auf. Beispielsweise können
  • - die ersten Werte mit 0,
  • - die zweiten Werte mit 1, ...
  • - die K-ten Werte mit K - 1

bezeichnet sein.Again k data bits are to be stored. The 2 k different assignments of the k data bits can be uniquely transformed into n memory cell values in a reversible manner. These n memory cell values have
  • - n 1 first values,
  • - n 2 second values, ...
  • - n K Kth values
on. For example, can
  • - the first values with 0,
  • - the second values with 1, ...
  • - the Kth values with K - 1

be designated.

Die n Speicherzellenwerte können auch als ein n-Tupel von Speicherzellenwerten bezeichnet werden. Das n-Tupel von n mehrwertigen (hier K-wertigen) Speicherzellenwerten, die n1 erste Werte, n2 zweite Werte, ....,nK K-te Werte aufweisen, kann als ein Codewort eines n 1 , n 2 , , n K aus n Codes

Figure DE102017103347B4_0025
bezeichnet werden.The n memory cell values can also be referred to as an n-tuple of memory cell values. The n-tuple of n multi-value (here K-value) memory cell values, which have n 1 first values, n 2 second values, ...., n K K-th values, can be used as a code word of a n 1 , n 2 , ... , n K out of n codes
Figure DE102017103347B4_0025
be designated.

Der n1 -, n2-, ... , nx - aus - n - Code weist die folgende Zahl an Codewörtern auf: ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n 2 n K 1 n K ) .

Figure DE102017103347B4_0026
The n 1 -, n 2 -, ... , n x - out - n - code has the following number of code words: ( n n 1 ) ( n n 1 n 2 ) ... ( n n 1 n 2 ... n K 1 n K ) .
Figure DE102017103347B4_0026

Die 2k Belegungen der k Datenbits sollen nun umkehrbar eindeutig in 2k dieser Codewörter des n1 -, n2-, ... , nK-aus-n-Codes transformiert werden. Dies ist möglich, wenn die Bedingung 2 k ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n 2 n K 1 n K ) .

Figure DE102017103347B4_0027
beziehungsweise wenn die Bedingung A n z ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n 2 n K 1 n K ) ,
Figure DE102017103347B4_0028
erfüllt ist, sofern der Wert Anz (mit Anz < 2k) die Anzahl der tatsächlich auftretenden Belegungen der k Bits ist, wie dies in Bezug auf die binäre Speicherzellenwerte vorstehend beschrieben wurde.The 2 k occupancies of the k data bits are now to be transformed unambiguously into 2 k of these code words of the n 1 -, n 2 -, . . . , n K -out of n codes. This is possible if the condition 2 k ( n n 1 ) ( n n 1 n 2 ) ... ( n n 1 n 2 ... n K 1 n K ) .
Figure DE102017103347B4_0027
respectively if the condition A n e.g ( n n 1 ) ( n n 1 n 2 ) ... ( n n 1 n 2 ... n K 1 n K ) ,
Figure DE102017103347B4_0028
is satisfied if the value Anz (with Anz<2 k ) is the number of occupancies of the k bits that actually occur, as was described above in relation to the binary memory cell values.

Mehrwertige Speicherzellenwerte: BeispieleMultivalued memory cell values: examples

Es sollen k = 6 Datenbits gespeichert werden. Somit gibt es 2k = 26 = 64 mögliche Belegungen der 6 Datenbits. Die Datenbits sind, wie beschrieben, binäre Werte und werden zur Speicherung in den mehrwertigen Speicherzellen vorab einer Transformation unterzogen.k = 6 data bits are to be stored. Thus there are 2 k = 2 6 = 64 possible assignments of the 6 data bits. As described, the data bits are binary values and are previously subjected to a transformation for storage in the multi-value memory cells.

Beispielsweise werden 3-wertige Speicherzellenwerte (K = 3) betrachtet. Somit kann jede Speicherzelle drei unterschiedliche Werte speichern. Insgesamt sind n = 6 Speicherzellenwerte (und damit 6 Speicherzellen) gegeben und es sei n1 = n2 = n3 = 2 angenommen. Es gibt somit ( 6 2 ) ( 4 2 ) ( 2 2 ) = 90

Figure DE102017103347B4_0029
verschiedene Codewörter des hier beispielhaft verwendeten 2-,2-,2-aus-6-Codes. Diese 90 Codewörter reichen aus, um die 26 = 64 möglichen Belegungen der 6 Datenbits abzubilden.For example, 3-valued memory cell values (K=3) are considered. Thus each memory cell can store three different values. A total of n=6 memory cell values (and thus 6 memory cells) are given and n 1 = n 2 = n 3 = 2 is assumed. So there is ( 6 2 ) ( 4 2 ) ( 2 2 ) = 90
Figure DE102017103347B4_0029
different code words of the 2, 2, 2 out of 6 code used here as an example. These 90 code words are sufficient to map the 2 6 = 64 possible assignments of the 6 data bits.

Die mehrwertigen Speicherzellen erlauben eine effizientere Nutzung gegenüber den binären Speicherzellen, da pro Speicherzelle mehr als zwei Werte gespeichert werden können. Somit reicht eine geringe Menge an physikalischen Speicherzellen aus: Im vorliegenden Beispiel können mit nur 6 dreiwertigen Speicherzellen 90 Codewörter des 2-,2-,2-aus-6-Codes gebildet werden, wohingegen mit 6 binären Speicherzellen nur 20 Codewörter eines 3-aus-6-Codes gebildet werden können.The multi-value memory cells allow more efficient use compared to the binary memory cells since more than two values can be stored per memory cell. A small number of physical memory cells is therefore sufficient: In the present example, 90 code words of the 2, 2, 2-out-of-6 code can be formed with only 6 three-value memory cells, whereas only 20 code words of a 3-out code can be formed with 6 binary memory cells -6 codes can be formed.

In jedem Codewort des hier beispielhaft angenommenen 2-,2-,2-aus-6-Codes kommt je zweimal einer der Werte 0, 1 und 2 vor. Beispiele für Codewörter sind: 001122, 101220, 021210.In each code word of the 2, 2, 2 out of 6 code assumed here as an example, one of the values 0, 1 and 2 occurs twice. Examples of code words are: 001122, 101220, 021210.

In einem anderen Beispiel wird für 3-wertige Speicherzellenwerte (K = 3) ein 1-, 1-,1-aus-3-Code verwendet. Dieser weist für n = 3 Speicherzellen ( 3 1 ) ( 2 1 ) ( 1 1 ) = 6

Figure DE102017103347B4_0030
Codewörter 012, 021, 102, 120, 201 und 210 auf. Sollen k = 2 Datenbits gespeichert werden, dann können 22 = 4 unterschiedliche Belegungen in den 3 Speicherzellen als Codewörter des 1-,1-,1-aus-3-Codes gespeichert werden.In another example, a 1, 1, 1 of 3 code is used for 3-valued memory cell values (K=3). This has n=3 memory cells ( 3 1 ) ( 2 1 ) ( 1 1 ) = 6
Figure DE102017103347B4_0030
code words 012, 021, 102, 120, 201 and 210. If k=2 data bits are to be stored, then 2 2 =4 different allocations can be stored in the 3 memory cells as code words of the 1, 1, 1 out of 3 code.

In einem weiteren Beispiel werden vierwertige Speicherzellenwerte K = 4 betrachtet. Jede Speicherzelle kann beispielsweise einen der Werte 0, 1, 2 oder 3 speichern. Insgesamt gibt es in diesem Beispiel n = 6 Speicherzellen und es wird n1 = n2 = 2 und n3 = n4 = 1 angenommen. Somit gibt es ( 6 2 ) ( 4 2 ) ( 2 1 ) ( 1 1 ) = 15 6 2 1 = 180

Figure DE102017103347B4_0031
verschiedene Codewörter eines 2-,2-,1-,1-aus-6-Codes. Mit diesen 180 Codewörtern können 7 Datenbits mit 27 = 128 möglichen Belegungen in den 6 vierwertigen Speicherzellen gespeichert werden.In a further example, four-valued memory cell values K=4 are considered. Each memory cell can store one of the values 0, 1, 2 or 3, for example. There are a total of n=6 memory cells in this example and n 1 =n 2 =2 and n 3 =n 4 =1 are assumed. Thus there is ( 6 2 ) ( 4 2 ) ( 2 1 ) ( 1 1 ) = 15 6 2 1 = 180
Figure DE102017103347B4_0031
different code words of a 2,2,1,1 out of 6 code. With these 180 code words, 7 data bits with 2 7 = 128 possible assignments can be stored in the 6 four-value memory cells.

Beispiele für Codewörter des hier verwendeten 2-,2-,1-,1-aus-6-Codes sind: 001123, 101320, 031210. Jedes der Codewörter weist jeweils zwei Nullen, zwei Einsen eine Zwei und eine Drei auf.Examples of code words of the 2, 2, 1, 1 out of 6 code used here are: 001123, 101320, 031210. Each of the code words has two zeros, two ones, a two and a three.

Mehrwertige Speicherzellenwerte: Gruppierung der DatenbitsMulti-valued memory cell values: grouping of data bits

Wieder wird der Fall betrachtet, dass N Datenbits in Speicherzellenwerte transformiert werden, wobei N = M · k gelten soll und M größer als 1 ist. Somit können M Gruppen aus jeweils k Datenbits gebildet werden, wobei die jeweils 2k Belegungen jeder Gruppe von k Datenbits in 2k Codewörter eines n1 -, n2-, ... , nx-aus-n-Codes umkehrbar eindeutig transformiert werden.Again consider the case where N data bits are transformed into memory cell values, where N=M*k and M is greater than 1. Thus, M groups of k data bits each can be formed, with the respective 2 k assignments of each group of k data bits being reversibly uniquely transformed into 2 k code words of an n 1 -, n 2 -, . . . , n x -out of n code become.

Werden die Belegungen von M Gruppen von jeweils k Datenbits in Codewörter des n1 -, n2-, ... , nK-aus-n-Codes transformiert, ergeben sich M · n K-wertige Speicherzellenwerte, die entsprechend in M . n K-wertigen Speicherzellen gespeichert werden.If the occupancies of M groups of k data bits each are transformed into code words of the n 1 -, n 2 -, ... , n K -out of n code, this results in M · n K-valued memory cell values, which are correspondingly stored in M . n K-value memory cells are stored.

Es kann vorteilhaft sein, die Belegungen aller Gruppen von k Datenbits durch die gleiche Transformation in Speicherzellenwerte zu transformieren. Dann kann beispielsweise eine Transformationsschaltung mehrfach eingesetzt werden. Es ist aber auch möglich, die k Datenbits der verschiedenen Gruppen mit unterschiedlichen Transformationen in Speicherzellenwerte zu transformieren.It can be advantageous to transform the assignments of all groups of k data bits into memory cell values by the same transformation. Then, for example, a transformation circuit can be used multiple times. However, it is also possible to transform the k data bits of the various groups into memory cell values using different transformations.

Schreiben und Lesen von DatenbitsWriting and reading data bits

Die k zu speichernden Bits werden auch als Datenbits bezeichnet. Diese Datenbits können beispielsweise Informationsbits und Prüfbits eines separierbaren fehlererkennenden und/oder fehlerkorrigierenden Codes aufweisen. Dabei können in einem separierbaren Code Informationsbits durch Prüfbits ergänzt sein. Es ist auch möglich, dass die Datenbits Bits eines nicht separierbaren Codes sind, bei dem die Bits eines Codewortes nicht in Informationsbits und Prüfbits unterteilt sind. Weiterhin ist es eine Option, dass die Datenbits Informationsbits und Adressenbits und/oder aus Adressenbits abgeleitete Bits und/oder Bits eines Passwortes umfassen.The k bits to be stored are also referred to as data bits. These data bits can have, for example, information bits and check bits of a separable error-detecting and/or error-correcting code. Information bits can be supplemented by check bits in a separable code. It is also possible that the data bits are bits of an inseparable code in which the bits of a code word are not divided into information bits and check bits. It is also an option that the data bits include information bits and address bits and/or bits derived from address bits and/or bits of a password.

Die Bezeichnung „Datenbits“ dient beispielhaft dazu, die in den Speicher zu speichernden Bits zu bezeichnen. Hierbei kann es sich um Programmcode, Bilddaten, Messdaten oder sonstige Nutzdaten (Payload) handeln, die in Speicherzellenwerte transformiert werden und in Speicherzellen gespeichert werden. Die Speicherzellenwerte können dabei mehrwertig oder binär sein.The term "data bits" is used, for example, to denote the bits to be stored in memory. This can be program code, image data, measurement data or other useful data (payload) that are transformed into memory cell values and stored in memory cells. The memory cell values can be multi-valued or binary.

Beim Auslesen der Speicherzellen werden die in den Speicherzellen gespeicherten digitalen Speicherzellenwerte unter Verwendung eines Vergleichs von aus den n Speicherzellen ausgegebenen physikalischen Werten bestimmt. Alternativ kann es sich auch um Werte handeln, die aus den ausgegebenen physikalischen Werten abgeleitet werden.When reading the memory cells, the digital memory cell values stored in the memory cells are determined using a comparison of physical values output from the n memory cells. Alternatively, they can also be values that are derived from the physical values that are output.

Sind die n Speicherzellen binär, wird die Folge von k zu speichernden Bits in eine Folge von n binären Speicherzellenwerten transformiert, die n1 erste binäre Werte und n2 zweite binäre Werte aufweist. Werden die ersten binären Werte mit 1 und die zweiten binären Werte mit 0 bezeichnet, so wird eine Folge von k zu speichernden Bits in ein Codewort eines n1-aus-n Codes transformiert und es gilt n2 = n - n1.If the n memory cells are binary, the sequence of k bits to be stored is transformed into a sequence of n binary memory cell values having n 1 first binary values and n 2 second binary values. If the first binary values are denoted by 1 and the second binary values by 0, then a sequence of k bits to be stored is transformed into a code word of an n 1 -of-n code and n 2 =n - n 1 applies.

Bei gegebenem n und n1 ist k so bestimmt, dass 2 k ( n n 1 )

Figure DE102017103347B4_0032
gilt.Given n and n 1, k is determined such that 2 k ( n n 1 )
Figure DE102017103347B4_0032
is applicable.

Sind die Speicherzellen nicht binär und dient eine Speicherzelle zur Speicherung von K-wertigen digitalen Speicherzellenwerten, so wird eine Folge von k Bits in eine Folge von n K-wertigen Speicherzellenwerten transformiert, die in den n Speicherzellen gespeichert werden. Die Folge von n Speicherzellenwerten ist so bestimmt, dass sie eine vorbestimmte erste Anzahl n1 von ersten, untereinander gleichen ersten Speicherzellenwerten, eine vorbestimmte zweite Anzahl n2 von zweiten, untereinander gleichen zweiten Speicherzellenwerten, etc. bis zu einer vorbestimmten K-ten Anzahl nK von K-ten, untereinander gleichen K-ten Speicherzellenwerten aufweist.If the memory cells are not binary and a memory cell is used to store K-value digital memory cell values, then a sequence of k bits is transformed into a sequence of n K-value memory cell values, which are stored in the n memory cells. The sequence of n memory cell values is determined such that it comprises a predetermined first number n 1 of first, mutually identical first memory cell values, a predetermined second number n 2 of second, mutually identical second memory cell values, etc. up to a predetermined K-th number n K of Kth mutually identical Kth memory cell values.

Dabei gilt 1 n 1 ,1 n 2 , ,1 n K

Figure DE102017103347B4_0033
und n 1 + n 2 + + n K = n .
Figure DE102017103347B4_0034
applies 1 n 1 ,1 n 2 , ... ,1 n K
Figure DE102017103347B4_0033
and n 1 + n 2 + ... + n K = n .
Figure DE102017103347B4_0034

Ferner ist k so bestimmt, dass 2 k ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n K 1 n K )

Figure DE102017103347B4_0035
gilt.Furthermore, k is determined in such a way that 2 k ( n n 1 ) ( n n 1 n 2 ) ... ( n n 1 ... n K 1 n K )
Figure DE102017103347B4_0035
is applicable.

Eine Folge von n K-wertigen Speicherzellenwerten, die eine vorbestimmte erste Anzahl n1 von ersten, untereinander gleichen ersten Speicherzellenwerten, eine vorbestimmte zweite Anzahl n2 von zweiten, untereinander gleichen zweiten Speicherzellenwerten, etc. bis zu einer vorbestimmten K-ten Anzahl nK von K-ten, untereinander gleichen K-ten Speicherzellenwerten aufweist, kann als ein Codewort eines (n1-, n2-,..., nK-aus-n)-Codes bezeichnet werden.A sequence of n K-value memory cell values comprising a predetermined first number n 1 of first, mutually identical first memory cell values, a predetermined second number n 2 of second, mutually identical second memory cell values, etc. up to a predetermined K-th number n K of K-th mutually identical K-th memory cell values can be referred to as a code word of an (n 1 -, n 2 -,..., n K -of-n) code.

Die Anzahl nK der untereinander gleichen K-ten Speicherzellenwerte ist zu n K = n n 1 n 2 n K 1

Figure DE102017103347B4_0036
bestimmt.The number n K of mutually identical Kth memory cell values is increased n K = n n 1 n 2 ... n K 1
Figure DE102017103347B4_0036
certainly.

Beim Auslesen der Speicherzellen werden die in den Speicherzellen einer Gruppe von n Speicherzellen gespeicherten digitalen Daten mittels eines Vergleichs von aus Speicherzellen der Gruppe ausgelesenen physikalischen Werten bestimmt. Alternativ werden die in den Speicherzellen einer Gruppe von n Speicherzellen gespeicherten digitalen Daten mittels eines Vergleichs unter Verwendung von ausgelesenen physikalischen Werten oder abgeleiteten Eigenschaften bestimmt.When the memory cells are read, the digital data stored in the memory cells of a group of n memory cells are determined by comparing physical values read from memory cells of the group. Alternatively, the digital data stored in the memory cells of a group of n memory cells are determined by means of a comparison using physical values read out or derived properties.

Auch kann als Eigenschaft ein zeitliches Verhalten von aus unterschiedlichen Speicherzellen ausgelesenen physikalischen Werten betrachtet und für einen Vergleich (mit)berücksichtigt werden.A temporal behavior of physical values read from different memory cells can also be considered as a property and (also) taken into account for a comparison.

Zu einem Zeitpunkt τ nimmt ein aus einer Speicherzelle Si ausgelesener Wert einen analogen Wert W A i ( τ )

Figure DE102017103347B4_0037
an. Beispielsweise ist der in der Speicherzelle Si gespeicherte Wert W G i
Figure DE102017103347B4_0038
ein elektrischer Widerstandswert und der aus der Speicherzelle Si zum Zeitpunkt τ erhaltene physikalische Wert W A i ( τ )
Figure DE102017103347B4_0039
ist ein Lesestrom (eine Stromstärke).At a time τ, a value read from a memory cell S i takes an analog value W A i ( τ )
Figure DE102017103347B4_0037
at. For example, the value stored in memory cell S is i W G i
Figure DE102017103347B4_0038
an electrical resistance value and the physical value obtained from the memory cell Si at time τ W A i ( τ )
Figure DE102017103347B4_0039
is a reading current (an amount of current).

Ist der Widerstand W G i

Figure DE102017103347B4_0040
der Speicherzelle Si kleiner als ein Widerstandswert W G j
Figure DE102017103347B4_0041
einer anderen Speicherzelle Sj, ist der Lesestrom W A i ( τ )
Figure DE102017103347B4_0042
größer als ein Lesestrom W A j ( τ )
Figure DE102017103347B4_0043
der anderen Speicherzelle Sj, sofern eine vorgegebene (gleiche) Lesespannung zum Auslesen beider Speicherzellen verwendet wird.Is the resistance W G i
Figure DE102017103347B4_0040
of the memory cell S i is less than a resistance value W G j
Figure DE102017103347B4_0041
another memory cell S j , is the read current W A i ( τ )
Figure DE102017103347B4_0042
larger than a read current W A j ( τ )
Figure DE102017103347B4_0043
the other memory cell S j , provided that a predetermined (same) reading voltage is used to read both memory cells.

Wird der Lesestrom W A i ( τ )

Figure DE102017103347B4_0044
der Speicherzelle Si unter Verwendung einer Kapazität C über die Zeit integriert, so ist zu einem Zeitpunkt ti ein vorgegebener Schwellwert Sw erreicht. Der aus der Speicherzelle Si erhaltene physikalische Wert ist hier beispielhaft der Lesestrom W A i .
Figure DE102017103347B4_0045
Der aus dem ausgelesenen physikalischen Wert bestimmte abgeleitete Wert ist beispielhaft der Zeitpunkt ti, zu dem das Zeitintegral über den Lesestrom den vorgegebenen Schwellwert Sw erreicht.Will the reading stream W A i ( τ )
Figure DE102017103347B4_0044
of the memory cell S i using a capacitance C over time, a predetermined threshold value Sw is reached at a point in time t i . The physical value obtained from the memory cell Si is the read current here, for example W A i .
Figure DE102017103347B4_0045
The derived value determined from the physical value read is, for example, the point in time t i at which the time integral over the read current reaches the predetermined threshold value Sw.

Wird der Lesestrom W A j ( τ )

Figure DE102017103347B4_0046
der Speicherzelle Sj unter Verwendung der Kapazität C über die Zeit integriert, so ist zu einem Zeitpunkt tj der vorgegebene Schwellwert Sw erreicht.Will the reading stream W A j ( τ )
Figure DE102017103347B4_0046
of the memory cell S j using the capacitance C over time, the predetermined threshold value Sw is reached at a point in time t j .

Da für die Leseströme der Speicherzellen Si und Sj W A i ( τ ) > W A j ( τ )

Figure DE102017103347B4_0047
gilt, gilt auch ti < tj und der Schwellwert Sw wird für die Speicherzelle Si früher erreicht als für die Speicherzelle Sj.Since for the read currents of the memory cells S i and S j W A i ( τ ) > W A j ( τ )
Figure DE102017103347B4_0047
applies, t i <t j also applies and the threshold value Sw is reached earlier for the memory cell S i than for the memory cell S j .

Somit kann für die Speicherzellen Si und Sj verglichen werden, ob das Integral des Lesestromes der Speicherzelle Si den Schwellwert Sw früher erreicht als das Integral des Lesestromes der Speicherzelle Sj. Dies ist dann der Fall, wenn (bei gleicher Spannung) der Widerstandswert W G i

Figure DE102017103347B4_0048
kleiner ist als der Widerstandswert W G j .
Figure DE102017103347B4_0049
It can thus be compared for the memory cells S i and S j whether the integral of the read current of the memory cell S i reaches the threshold value Sw earlier than the integral of the read current of the memory cell S j . This is the case if (at the same voltage) the resistance value W G i
Figure DE102017103347B4_0048
is less than the resistance value W G j .
Figure DE102017103347B4_0049

Somit ist es eine Option, eine Ordnung (oder „Reihenfolge“) der Speicherzellen Si und Sj auf Grund der in ihnen gespeicherten physikalischen Werte W G i

Figure DE102017103347B4_0050
und W G j
Figure DE102017103347B4_0051
oder ihrer Zustände zu bestimmen. Durch die Zeitpunkte ti und tj, zu denen der Schwellwert Sw erreicht wird, können die Speicherzellen entsprechend ihrer Widerstände W G i  und  W G j
Figure DE102017103347B4_0052
sortiert werden, d.h. zuerst die Speicherzelle Si, dann die Speicherzelle Sj (oder umgekehrt).Thus, it is an option, an ordering (or "sequence") of the memory cells Si and Sj based on the physical values stored in them W G i
Figure DE102017103347B4_0050
and W G j
Figure DE102017103347B4_0051
or to determine their states. Due to the points in time t i and t j at which the threshold value Sw is reached, the memory cells can, according to their resistances W G i and W G j
Figure DE102017103347B4_0052
are sorted, ie first the memory cell S i , then the memory cell S j (or vice versa).

Dieser Ansatz kann zur Sortierung aller Speicherzellen einer Gruppe von n Speicherzellen genutzt werden.This approach can be used to sort all memory cells in a group of n memory cells.

Werden beispielsweise erste n1 Speicherzellen mit einer binären 0 und zweite n2 Speicherzellen mit einer binären 1 beschrieben, ist im fehlerfreien Fall der elektrische Widerstand der ersten n1 Speicherzellen kleiner als der elektrische Widerstand der zweiten n2 Speicherzellen, so dass der Lesestrom der ersten n1 Speicherzellen größer als der Lesestrom der zweiten n2 Speicherzellen ist. Beispielsweise gilt hierbei: n1 + n2 = n.If, for example, a binary 0 is written to the first n 1 memory cells and a binary 1 to the second n 2 memory cells, the electrical resistance of the first n 1 memory cells is lower than the electrical resistance of the second n 2 memory cells if there are no errors, so that the read current of the first n 1 memory cells is greater than the read current of the second n 2 memory cells. For example, the following applies here: n 1 + n 2 = n.

Entsprechend liegen die Zeitpunkte t 1 1 , t 2 1 , , t n 1 1 ,

Figure DE102017103347B4_0053
zu denen für die ersten n1 Speicherzellen der Schwellwert Sw erreicht wird vor den Zeitpunkten t 1 2 , t 2 2 , , t n 2 2 ,
Figure DE102017103347B4_0054
zu denen für die zweiten n2 Speicherzellen der Schwellwert Sw erreicht wird.The times are accordingly t 1 1 , t 2 1 , ... , t n 1 1 ,
Figure DE102017103347B4_0053
at which the threshold value Sw is reached for the first n 1 memory cells before the times t 1 2 , t 2 2 , ... , t n 2 2 ,
Figure DE102017103347B4_0054
at which the threshold value Sw is reached for the second n 2 memory cells.

So können die Speicherzellen entsprechend der Zeitpunkte, zu denen der Schwellwert Sw erreicht wird, geordnet werden. Beispielsweise kann dem frühesten (ersten) Zeitpunkt die erste Speicherzelle und dem spätesten (letzten) Zeitpunkt die n-te Speicherzelle zugeordnet sein. In diesem Beispiel wären dann die ersten n1 Speicherzellen gerade die Speicherzellen, in die ein binärer Wert 0 geschrieben wurde, und die n2 restlichen Speicherzellen die Speicherzellen, in die ein binärer Wert 1 geschrieben wurde.In this way, the memory cells can be ordered according to the points in time at which the threshold value Sw is reached. For example, the first memory cell can be assigned to the earliest (first) point in time and the nth memory cell can be assigned to the latest (last) point in time. In this example, the first n 1 memory cells would then just be the memory cells into which a binary 0 value was written, and the n 2 remaining memory cells would be the memory cells into which a binary 1 value was written.

Beispielsweise gibt das Integral v i ( t ) = 1 C 0 t W A i d τ = t C W A i

Figure DE102017103347B4_0055
eine Spannung vi(t) zu einem Zeitpunkt t an in Abhängigkeit der jeweiligen Leseströme W A i
Figure DE102017103347B4_0056
(mit i = 1,... ,n) für die n Speicherzellen S1 bis Sn.For example, there is the integral v i ( t ) = 1 C 0 t W A i i.e τ = t C W A i
Figure DE102017103347B4_0055
a voltage v i (t) at a time t on depending on the respective read currents W A i
Figure DE102017103347B4_0056
(with i = 1,...,n) for the n memory cells S 1 to S n .

Diese Spannung vi(t) kann mit dem Schwellwert Sw verglichen werden. Somit können die Zeitpunkte bestimmt werden, an denen das vorstehende Integral den Schwellwert Sw erreicht. Die erhaltenen Zeitpunkte können miteinander verglichen werden. Damit ist es möglich, zu bestimmen, ob der Zustand der Speicherzelle einem binären Wert 0 oder 1 entspricht.This voltage v i (t) can be compared to the threshold value Sw. Thus, the points in time at which the above integral reaches the threshold value Sw can be determined. The times obtained can be compared with one another. It is thus possible to determine whether the state of the memory cell corresponds to a binary value of 0 or 1.

Der Zeitpunkt ti kann dadurch bestimmt sein, dass v i ( t ) < S w  für  t < t i

Figure DE102017103347B4_0057
und v i ( t ) > S w  für  t > t i
Figure DE102017103347B4_0058
gilt, wobei hierbei beispielhaft der Lesestrom als konstant über die Zeit angenommen wird.The time t i can be determined by the fact that v i ( t ) < S w for t < t i
Figure DE102017103347B4_0057
and v i ( t ) > S w for t > t i
Figure DE102017103347B4_0058
applies, in which case the read current is assumed to be constant over time, for example.

Über den Lesestrom bzw. das Zeitintegral des Lesestromes können die Widerstandswerte oder die Zustände der Speicherzellen miteinander verglichen werden. Schwankungen in den Widerstandswerten innerhalb der ersten n1 Zellen wirken sich auf die Zuordnung des binären Wertes 0 zu diesen Speicherzellen vorteilhaft nicht aus, solange diese Widerstandswerte nicht größer als ein Widerstandswert der zweiten n2 Speicherzellen sind. Entsprechend wirken sich Schwankungen in den Widerstandswerten innerhalb der zweiten n2 Zellen auf die Zuordnung des binären Wertes 1 zu diesen Speicherzellen vorteilhaft nicht aus, solange deren Widerstandswerte nicht kleiner als ein Widerstandswert der ersten n1 Speicherzellen sind.The resistance values or the states of the memory cells can be compared with one another via the read current or the time integral of the read current. Fluctuations in the resistance values within the first n 1 cells advantageously do not affect the assignment of the binary value 0 to these memory cells as long as these resistance values are not greater than a resistance value of the second n 2 memory cells are. Accordingly, fluctuations in the resistance values within the second n 2 cells advantageously do not affect the assignment of the binary value 1 to these memory cells as long as their resistance values are not less than a resistance value of the first n 1 memory cells.

Teilgruppen von Speicherzellensubgroups of memory cells

Beispielsweise kann es auch nicht erforderlich sein, eine Reihenfolge der n1 Speicherzellen mit gleichen ersten digitalen Werten oder eine Reihenfolge der n2 Speicherzellen mit gleichen zweiten digitalen Werten einer Gruppe von n Speicherzellen zu bestimmen. Die n1 Speicherzellen mit den ersten digitalen Werten bilden eine erste Teilgruppe und die n2 Speicherzellen mit den zweiten digitalen Werten bilden eine zweite Teilgruppe. Jede der Teilgruppen entspricht einem Teil der Gruppe von n Speicherzellen. Nachfolgend wird ein Beispiel für derartige Teilgruppen näher erläutert.For example, it may also not be necessary to determine an order of the n 1 memory cells with the same first digital values or an order of the n 2 memory cells with the same second digital values of a group of n memory cells. The n 1 memory cells with the first digital values form a first subgroup and the n 2 memory cells with the second digital values form a second subgroup. Each of the subgroups corresponds to a part of the group of n memory cells. An example of such subgroups is explained in more detail below.

Beispielsweise werden 2 Teilgruppen betrachtet, wobei für die Anzahl die Speicherzellen n1 und n2 der Teilgruppen gilt: n 1 + n 2 = n .

Figure DE102017103347B4_0059
In die n1 Speicherzellen der ersten Teilgruppe wird jeweils ein erster digitaler Wert geschrieben und in die n2 Speicherzellen der zweiten Teilgruppe wird jeweils ein zweiter digitaler Wert geschrieben, der von dem ersten digitalen Wert verschieden ist.For example, 2 subgroups are considered, where the number of memory cells n 1 and n 2 of the subgroups applies: n 1 + n 2 = n .
Figure DE102017103347B4_0059
A first digital value is written to each of the n 1 memory cells of the first subgroup, and a second digital value that differs from the first digital value is written to each of the n 2 memory cells of the second subgroup.

Beim Auslesen der physikalische Werte aus den Speicherzellen kann es vorteilhaft sein, keine Reihenfolge zwischen den n1 Speicherzellen der ersten Teilgruppe zu bestimmen, da in diese der gleiche digitale Wert geschrieben wurde.When reading out the physical values from the memory cells, it can be advantageous not to determine an order between the n 1 memory cells of the first subgroup, since the same digital value was written into them.

Beispielsweise werden n = 6 Speicherzellen S1,..., S6 betrachtet. Bei den Speicherzellen S1, S2, S3 handelt es sich um die n1 = 3 Speicherzellen der ersten Teilgruppe und bei den Speicherzellen S4, S5, S6 handelt es sich um die n2 = 3 Speicherzellen der zweiten Teilgruppe. Die Speicherzellen der ersten Teilgruppe werden mit dem Wert 0 und die Speicherzellen der zweiten Teilgruppe werden mit dem Wert 1 beschrieben.For example, n=6 memory cells S 1 , . . . , S 6 are considered. The memory cells S 1 , S 2 , S 3 are the n 1 = 3 memory cells of the first subgroup and the memory cells S 4 , S 5 , S 6 are the n 2 = 3 memory cells of the second subgroup. The memory cells of the first subgroup are written with the value 0 and the memory cells of the second subgroup are written with the value 1.

2a zeigt ein Schaubild umfassend mehrere physikalische Werte W A 1 ,   W A 2 ,   W A 3 ,   W A 4 ,   W A 5  und  W A 6 ,

Figure DE102017103347B4_0060
 
Figure DE102017103347B4_0061
die aus den Speicherzellen S1 bis S6 ausgelesen wurden. Bei dem physikalischen Wert WA handelt es sich beispielsweise um einen Lesestrom. 2a shows a diagram comprising several physical values W A 1 , W A 2 , W A 3 , W A 4 , W A 5 and W A 6 ,
Figure DE102017103347B4_0060
Figure DE102017103347B4_0061
which have been read from the memory cells S 1 to S 6 . The physical value W A is a read current, for example.

2b zeigt ein Schaubild mit mehreren Zeitpunkten t1 bis t6, wobei je ein Zeitpunkt tm einem der physikalischen Werte W A m

Figure DE102017103347B4_0062
entspricht mit m = 1,... , 6. 2 B shows a diagram with several points in time t 1 to t 6 , each point in time t m corresponding to one of the physical values W A m
Figure DE102017103347B4_0062
corresponds with m = 1,... , 6.

Somit können durch eine zeitliche Integration der entsprechenden Leseströme Zeitpunkte t1, t2, t3, t4, t5 und t6 bestimmt werden, zu denen das Zeitintegral des jeweiligen Lesestroms einen vorgegebenen Schwellwert erreicht. Beispielsweise gilt gemäß 2b: t 5 > t 4 > t 6 > t 2 > t 3 > t 1 .

Figure DE102017103347B4_0063
Time integration of the corresponding read currents can thus be used to determine times t 1 , t 2 , t 3 , t 4 , t 5 and t 6 at which the time integral of the respective read current reaches a predetermined threshold value. For example, according to 2 B : t 5 > t 4 > t 6 > t 2 > t 3 > t 1 .
Figure DE102017103347B4_0063

Die Zuordnung der in den Speicherzellen S1 bis S6 gespeicherten digitalen Werte 0 oder 1 kann erfolgen, indem bestimmt wird, dass für i = 4,5,6 und für j = 1, 2, 3 t i > t j .

Figure DE102017103347B4_0064
gilt. Insbesondere ist es ein Vorteil, dass kein Unterschied zwischen den Zeitpunkten t4, t5, t6 und den Zeitpunkten t1, t2, t3 bestimmt werden muss.The assignment of the digital values 0 or 1 stored in the memory cells S 1 to S 6 can be done by determining that for i = 4,5,6 and for j = 1, 2, 3 t i > t j .
Figure DE102017103347B4_0064
is applicable. In particular, it is an advantage that no difference between the times t 4 , t 5 , t 6 and the times t 1 , t 2 , t 3 has to be determined.

So ist es möglich, den n1 ersten Speicherzellen, deren Zeitintegral über den Lesestrom den Schwellwert Sw erreicht, einen ersten digitalen Wert und den n2 übrigen Speicherzellen einen zweiten digitalen Wert zuzuweisen. In diesem Fall kann es ausreichen festzustellen, ob eine der Speicherzellen zu den n1 ersten Speicherzellen gehört.It is thus possible to assign a first digital value to the n 1 first memory cells whose time integral via the read current reaches the threshold value Sw, and to assign a second digital value to the n 2 remaining memory cells. In this case it may be sufficient to determine whether one of the memory cells belongs to the n 1 first memory cells.

Es ist auch möglich, Verknüpfungen von analogen Signalen von Speicherzellen zu bilden und basierend auf diesen Verknüpfungen zu bestimmen, ob Speicherzellen ein erster digitaler Wert oder ein anderer digitaler Wert zugeordnet wird.It is also possible to form links from analog signals from memory cells and, based on these links, to determine whether memory cells are assigned a first digital value or another digital value.

Für eine Gruppe von n Speicherzellen und n1 erste Speicherzellen ergeben sich ( n n 1 )

Figure DE102017103347B4_0065
unterschiedliche Möglichkeiten die n Speicherzellen mit n1 Nullen und n2 = n - n1 Einsen zu beschreiben. Somit sind in den n Speicherzellen ( n n 1 )
Figure DE102017103347B4_0066
verschiedene Belegungen (auch bezeichnet als Zustände) möglich, so dass k Datenbits (auch bezeichnet als ein k-Bit-Byte) in den n Speicherzellen gespeichert werden können, wenn 2 k ( n n 1 )
Figure DE102017103347B4_0067
gilt. Ist n eine gerade Zahl, so ergibt sich für n1 = n/2 die größte Anzahl möglicher Zustände.For a group of n memory cells and n 1 first memory cells result ( n n 1 )
Figure DE102017103347B4_0065
different possibilities to describe the n memory cells with n 1 zeros and n 2 = n - n 1 ones. Thus, in the n memory cells ( n n 1 )
Figure DE102017103347B4_0066
different assignments (also referred to as states) are possible, so that k data bits (also referred to as a k-bit byte) can be stored in the n memory cells if 2 k ( n n 1 )
Figure DE102017103347B4_0067
is applicable. If n is an even number, then n 1 = n/2 results in the largest number of possible states.

Beispielsweise seien n = 6 Speicherzellen gegeben mit jeweils n1 = n2 = 3 ersten und zweiten Speicherzellen. Die n = 6 Speicherzellen bilden eine Gruppe von Speicherzellen S1 bis S6, in denen ein Codewort eines 3-aus-6-Codes gespeichert werden kann.For example, let n=6 memory cells be given, each with n 1 =n 2 =3 first and second memory cells. The n=6 memory cells form a group of memory cells S 1 to S 6 in which a code word of a 3-of-6 code can be stored.

Es soll zunächst der Fall beschrieben werden, dass kein Fehler auftritt. Beim Auslesen der Speicherzellen werden die Zeitpunkte t1 bis t6 verglichen, zu denen der Wert des Integrals über die Leseströme W A 1 ( τ )  bis  W A 6 ( τ )

Figure DE102017103347B4_0068
den Schwellwert Sw erreicht.First, the case where no error occurs will be described. When reading the memory cells, the times t 1 to t 6 are compared, at which the value of the integral over the read currents W A 1 ( τ ) until W A 6 ( τ )
Figure DE102017103347B4_0068
reaches the threshold value Sw.

Gilt beispielsweise t 1 < t 3 < t 4 < t 2 < t 5 < t 6 ,

Figure DE102017103347B4_0069
ergibt sich die Reihenfolge der Speicherzellen zu S 1 ,   S 3 ,   S 4 ,   S 2 ,   S 5 ,   S 6 .
Figure DE102017103347B4_0070
Valid for example t 1 < t 3 < t 4 < t 2 < t 5 < t 6 ,
Figure DE102017103347B4_0069
results in the order of the memory cells S 1 , S 3 , S 4 , S 2 , S 5 , S 6 .
Figure DE102017103347B4_0070

In den Speicherzellen S1 bis S6 wird beispielsweise das Codewort 101100 des 3-aus-6 Codes gespeichert und aus diesen Speicherzellen ausgelesen. Für die ersten drei Speicherzellen S1, S3 und S4 der geordneten Speicherzellen wird der Wert 1 und für die folgenden drei Speicherzellen S2, S5 und S6 der geordneten Speicherzellen wird der Wert 0 als ausgelesener Wert bestimmt.The code word 101100 of the 3-of-6 code, for example, is stored in the memory cells S 1 to S 6 and read from these memory cells. The value 1 is determined as the read value for the first three memory cells S 1 , S 3 and S 4 of the ordered memory cells and the value 0 is determined for the following three memory cells S 2 , S 5 and S 6 of the ordered memory cells.

Gilt hingegen beispielsweise t 3 ' < t 4 ' < t 1 ' < t 2 ' < t 6 ' < t 5 ' ,

Figure DE102017103347B4_0071
so folgt hieraus die Reihenfolge der Speicherzellen zu S 3 ,   S 4 ,   S 1 ,   S 2 ,   S 6 ,   S 5 .
Figure DE102017103347B4_0072
However, for example t 3 ' < t 4 ' < t 1 ' < t 2 ' < t 6 ' < t 5 ' ,
Figure DE102017103347B4_0071
so the order of the memory cells follows from this S 3 , S 4 , S 1 , S 2 , S 6 , S 5 .
Figure DE102017103347B4_0072

Somit wird aus den Speicherzellen S1 bis S6 das gleiche Codewort 101100 des 3-aus-6 Codes ausgelesen. Eine Vertauschung der Reihenfolge innerhalb der Speicherzellen S1, S3 und S4, die den binären Wert 1 speichern oder eine Vertauschung der Reihenfolge innerhalb der Speicherzellen S2, S5 und S6, die den binären Wert 0 speichern, wirkt sich nicht auf das ausgelesene Codewort des 3-aus-6-Codes aus.Thus, the same code word 101100 of the 3-of-6 code is read from the memory cells S 1 to S 6 . Reversing the order within the memory cells S 1 , S 3 and S 4 storing the binary value 1 or reversing the order within the memory cells S 2 , S 5 and S 6 storing the binary value 0 has no effect read out the code word of the 3-of-6 code.

Diese Eigenschaft ist vorteilhaft, da sich kleinere Schwankungen in den ausgelesenen physikalischen Werten, die den gleichen digitalen Werten entsprechen, beim Auslesen nicht auf die zugeordneten digitalen Werte auswirken.This property is advantageous because smaller fluctuations in the physical values read out, which correspond to the same digital values, do not affect the associated digital values when they are read out.

In diesem Beispiel sind die Speicherzellen S1, S3 und S4 zur Speicherung des Wertes 1 vorgesehen. In diese Speicherzellen wurden die Werte W G 1 ,   W G 3 ,   W G 4

Figure DE102017103347B4_0073
geschrieben, die jeweils den binären Wert 1 repräsentieren sollen. Untereinander unterscheiden sich diese Werte W G 1 ,   W G 3 ,   W G 4
Figure DE102017103347B4_0074
wenig, sie können aber insbesondere durch zufällige Einflüsse leicht variieren.In this example, the memory cells S 1 , S 3 and S 4 are provided for storing the value 1. The values were stored in these memory cells W G 1 , W G 3 , W G 4
Figure DE102017103347B4_0073
written, each of which should represent the binary value 1. These values differ from each other W G 1 , W G 3 , W G 4
Figure DE102017103347B4_0074
little, but they can vary slightly, particularly due to random influences.

Entsprechend sind die Speicherzellen S2, S5 und S6 zur Speicherung des Wertes 0 vorgesehen. In diese Speicherzellen wurden die Werte W G 2 ,   W G 5  und  W G 6

Figure DE102017103347B4_0075
geschrieben, die jeweils den binären Wert 0 repräsentieren. Untereinander unterscheiden sich diese Werte W G 2 ,   W G 5  und  W G 6
Figure DE102017103347B4_0076
wenig, sie können aber ebenfalls aufgrund von zufälligen Einflüssen leicht variieren.Correspondingly, the storage cells S 2 , S 5 and S 6 are provided for storing the value 0. The values were stored in these memory cells W G 2 , W G 5 and W G 6
Figure DE102017103347B4_0075
written, each representing the binary value 0. These values differ from each other W G 2 , W G 5 and W G 6
Figure DE102017103347B4_0076
little, but they can also vary slightly due to random influences.

Ist beispielsweise anstelle von t 1 < t 3 < t 4 < t 2 < t 5 < t 6

Figure DE102017103347B4_0077
eine zeitliche Ordnung t 1 ' < t 3 ' < t 2 ' < t 4 ' < t 5 ' < t 6 '
Figure DE102017103347B4_0078
bestimmt worden, sind die Speicherzellen wie folgt geordnet S 1 ,   S 3 ,   S 2 ,   S 4 ,   S 5 ,   S 6
Figure DE102017103347B4_0079
und es wird aus den Speicherzellen S1 bis S6 das Codewort 111000 des 3-aus-6 Codes ausgelesen, das sich von dem fehlerfreien Codewort 101100 dadurch unterscheidet, dass die zeitlich erste Speicherzelle S2, der in der Reihenfolge der Speicherzellen im fehlerfreien Fall der Wert 0 zugeordnet und die zeitlich letzte Speicherzelle S4, der im fehlerfreien Fall in der Reihenfolge der Speicherzellen der Wert 1 zugeordnet ist, vertauscht sind.For example, instead of t 1 < t 3 < t 4 < t 2 < t 5 < t 6
Figure DE102017103347B4_0077
a temporal order t 1 ' < t 3 ' < t 2 ' < t 4 ' < t 5 ' < t 6 '
Figure DE102017103347B4_0078
has been determined, the memory cells are ordered as follows S 1 , S 3 , S 2 , S 4 , S 5 , S 6
Figure DE102017103347B4_0079
and the code word 111000 of the 3-out-of-6 code is read from the memory cells S 1 to S 6 , which differs from the error-free code word 101100 in that the first memory cell S 2 in time, which is in the order of the memory cells in the error-free case assigned the value 0 and the temporally last memory cell S 4 , to which the value 1 is assigned in the error-free case in the sequence of the memory cells, are swapped over.

Beispiel: 3-wertige SpeicherzellenExample: 3-value memory cells

Nachfolgend wird beispielhaft ein Szenario betrachtet, bei dem pro Speicherzelle drei verschiedene digitale Werte 0, 1 und 2 gespeichert werden können.A scenario is considered below by way of example, in which three different digital values 0, 1 and 2 can be stored per memory cell.

3 zeigt ein Diagramm, das Häufigkeitsverteilungen von physikalischen Werten WG einer Speicherzelle veranschaulicht. 3 FIG. 12 shows a diagram illustrating frequency distributions of physical values W G of a memory cell.

3 zeigt eine Häufigkeitsverteilung 301 für gespeicherte Werte 0, eine Häufigkeitsverteilung 302 für gespeicherte Werte 1 und eine Häufigkeitsverteilung 303 für gespeicherte Werte 2. Die Häufigkeitsverteilung 301 wird auch mit WG(0), die Häufigkeitsverteilung 302 wird auch mit WG(1) und die Häufigkeitsverteilung 303 wird auch mit WG(2) bezeichnet. 3 shows a frequency distribution 301 for stored values 0, a frequency distribution 302 for stored values 1 and a frequency distribution 303 for stored values 2. Frequency distribution 301 is also denoted by W G (0), frequency distribution 302 is also denoted by W G (1) and the Frequency distribution 303 is also denoted by W G (2).

Die Häufigkeitsverteilungen 301 und 302 weisen einen Überlappungsbereich 304 auf und die Häufigkeitsverteilungen 302 und 303 weisen einen Überlappungsbereich 305 auf.Frequency distributions 301 and 302 have an overlap area 304 and frequency distributions 302 and 303 have an overlap area 305 .

Gemäß einem Ausführungsbeispiel kann der physikalische Wert ein Widerstandswert sein.According to an embodiment, the physical value can be a resistance value.

4 zeigt beispielhaft eine Häufigkeitsverteilung 401 für die aus dem Speicher gelesenen Werte 2, eine Häufigkeitsverteilung 402 für die aus dem Speicher gelesenen Werte 1 und eine Häufigkeitsverteilung 403 für die aus dem Speicher gelesenen Werte 0. Die Häufigkeitsverteilung 401 wird auch mit WA(2), die Häufigkeitsverteilung 402 wird auch mit WA(1) und die Häufigkeitsverteilung 403 wird auch mit WA(0) bezeichnet. 4 shows an example of a frequency distribution 401 for the value 2 read from the memory, a frequency distribution 402 for the value 1 read from the memory and a frequency distribution 403 for the value 0 read from the memory. The frequency distribution 401 is also denoted by W A (2), the frequency distribution 402 is also denoted by W A (1) and the frequency distribution 403 is also denoted by W A (0).

Die Häufigkeitsverteilungen 401 und 402 weisen einen Überlappungsbereich 404 auf und die Häufigkeitsverteilungen 402 und 403 weisen einen Überlappungsbereich 405 auf.Frequency distributions 401 and 402 have an overlap area 404 and frequency distributions 402 and 403 have an overlap area 405 .

Gemäß einem Ausführungsbeispiel kann der ausgelesene physikalische Wert eine Stromstärke sein.According to one embodiment, the physical value read may be a current strength.

Wird eine Stromstärke W A i ( τ )

Figure DE102017103347B4_0080
des Lesestroms der Speicherzelle Si über die Zeit t integriert, dann wird ein vorgegebener Schwellwert Sw zu einem Zeitpunkt ti erreicht.becomes an amperage W A i ( τ )
Figure DE102017103347B4_0080
of the read current of the memory cell S i is integrated over time t, then a predefined threshold value Sw is reached at a time t i .

Wird eine Stromstärke W A j ( τ )

Figure DE102017103347B4_0081
des Lesestromes der Speicherzelle Sj über die Zeit t integriert, dann wird der vorgegebene Schwellwert Sw zu einem Zeitpunkt tj erreicht.becomes an amperage W A j ( τ )
Figure DE102017103347B4_0081
of the read current of the memory cell S j is integrated over time t, then the predefined threshold value Sw is reached at a point in time t j .

Wird in die Speicherzelle Si der digitale Wert 2 geschrieben, so weist die Speicherzelle Si einen relativ großen Widerstandswert ( W G i )

Figure DE102017103347B4_0082
auf und beim Auslesen dieser Speicherzelle Si ist der Lesestrom W A i
Figure DE102017103347B4_0083
relativ gering. Dementsprechend ist der Zeitpunkt ti zu dem das Zeitintegral des Lesestroms den vorgegebenen Schwellwert Sw erreicht, groß.If the digital value 2 is written into the memory cell S i , then the memory cell S i has a relatively high resistance value ( W G i )
Figure DE102017103347B4_0082
on and when reading this memory cell S i is the read current W A i
Figure DE102017103347B4_0083
relatively low. Accordingly, the point in time t i at which the time integral of the read current reaches the predetermined threshold value Sw is large.

Wird in die Speicherzelle Sj der digitale Wert 1 geschrieben, so weist die Speicherzelle Sj einen Widerstandswert W G j

Figure DE102017103347B4_0084
auf, der geringer ist als der Widerstandswert W G i
Figure DE102017103347B4_0085
der Speicherzelle Si. Entsprechend ist der Lesestrom W A j
Figure DE102017103347B4_0086
beim Auslesen der Speicherzelle Sj größer als der Lesestrom W A i
Figure DE102017103347B4_0087
beim Auslesen der Speicherzelle Si. Somit liegt der Zeitpunkt tj, zu dem das Zeitintegral des Lesestroms den vorgegebenen Schwellwert Sw erreicht, vor dem Zeitpunkt ti, d.h. es gilt tj < ti.If the digital value 1 is written into the memory cell S j , then the memory cell S j has a resistance value W G j
Figure DE102017103347B4_0084
which is less than the resistance value W G i
Figure DE102017103347B4_0085
of the memory cell S i . The read current is corresponding W A j
Figure DE102017103347B4_0086
when reading the memory cell S j greater than the read current W A i
Figure DE102017103347B4_0087
when reading the memory cell S i . The point in time t j at which the time integral of the read current reaches the predetermined threshold value Sw therefore lies before the point in time t i , ie t j <t i applies.

Wird in die Speicherzelle Sk der digitale Wert 0 geschrieben, dann weist die Speicherzelle Sk einen Widerstandswert W G k

Figure DE102017103347B4_0088
WG auf, der sowohl geringer als der Widerstandswert WG der Speicherzelle Si als auch geringer als der Widerstandswert W G j
Figure DE102017103347B4_0089
der Speicherzelle Sj ist. Entsprechend ist der Lesestrom W A k
Figure DE102017103347B4_0090
der Speicherzelle Sk größer als der Lesestrom W A j
Figure DE102017103347B4_0091
oder der Lesestrom W A i
Figure DE102017103347B4_0092
der Speicherzellen Sj, Si. Somit liegt der Zeitpunkt tk, zu dem das Zeitintegral des Lesestroms den vorgegebenen Schwellwert Sw erreicht, vor den Zeitpunkten ti und tj, d.h. es gilt tk < tj < ti.If the digital value 0 is written into the memory cell S k , then the memory cell S k has a resistance value W G k
Figure DE102017103347B4_0088
W G which is both less than the resistance value W G of the memory cell S i and less than the resistance value W G j
Figure DE102017103347B4_0089
of memory cell S j . The read current is corresponding W A k
Figure DE102017103347B4_0090
of the memory cell S k is greater than the read current W A j
Figure DE102017103347B4_0091
or the reading stream W A i
Figure DE102017103347B4_0092
of the memory cells S j , S i . The point in time t k at which the time integral of the read current reaches the predetermined threshold value Sw therefore lies before the points in time t i and t j , ie t k <t j <t i applies.

Ist in eine Speicherzelle Si der gleiche digitale Wert geschrieben worden wie in eine Speicherzelle Si, kann der Widerstandswert W G i

Figure DE102017103347B4_0093
der Speicherzelle Si größer oder kleiner sein als der Widerstandswert W G j
Figure DE102017103347B4_0094
der Speicherzelle Sj.If the same digital value has been written into a memory cell S i as into a memory cell S i , the resistance value can W G i
Figure DE102017103347B4_0093
of the memory cell S i can be larger or smaller than the resistance value W G j
Figure DE102017103347B4_0094
of the memory cell S j .

Ebenso ist es möglich, dass der Lesestrom W A i

Figure DE102017103347B4_0095
der Speicherzelle Si größer oder kleiner ist als der Lesestrom W A j
Figure DE102017103347B4_0096
der Speicherzelle Sj.It is also possible that the read current W A i
Figure DE102017103347B4_0095
of the memory cell S i is larger or smaller than the reading current W A j
Figure DE102017103347B4_0096
of the memory cell S j .

Weiterhin ist es möglich, dass der Zeitpunkt ti, zu dem das Zeitintegral über den Lesestrom der Speicherzelle Si den vorgegebenen Schwellwert Sw erreicht, vor oder nach dem Zeitpunkt tj liegt, zu dem das Zeitintegral über den Lesestrom der Speicherzelle Sj den vorgegebenen Schwellwert Sw erreicht.Furthermore, it is possible that the point in time t i at which the time integral over the read current of the memory cell S i reaches the predetermined threshold value Sw is before or after the point in time t j at which the time integral over the read current of the memory cell S j reaches the predetermined Threshold Sw reached.

In diesem Fall bleibt also unbestimmt, ob ti < tj oder ti < tj gilt. Der Wert „unbestimmt“ wird hier auch durch das Symbol „—“ beschrieben.In this case it remains undetermined whether t i < t j or t i < t j . The value "undetermined" is also described here by the symbol "—".

BeispielExample

Beispielhaft wird eine Gruppe von n = 6 Speicherzellen S1 bis S6 betrachtet. Es gibt hierbei drei Teilgruppen mit jeweils zwei Speicherzellen, d.h. n1 = n2 = n3 = 2, wobei

  • - in n1 = 2 ersten Speicherzellen der digitale Speicherzellenwert 2,
  • - in n2 = 2 zweiten Speicherzellen der digitale Speicherzellenwert 1 und
  • - in n3 = 2 dritten Speicherzellen der digitale Speicherzellenwert 0

gespeichert wird. Es gibt somit ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n 2 n 3 ) = ( 6 2 ) ( 4 2 ) ( 2 2 ) = 15 6 1 = 90
Figure DE102017103347B4_0097
A group of n=6 memory cells S 1 to S 6 is considered as an example. There are three subgroups, each with two memory cells, ie n 1 =n 2 =n 3 =2, where
  • - in n 1 = 2 first memory cells the digital memory cell value 2,
  • - in n 2 = 2 second memory cells the digital memory cell value 1 and
  • - in n 3 = 2 third memory cells the digital memory cell value 0

is saved. So there is ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n 2 n 3 ) = ( 6 2 ) ( 4 2 ) ( 2 2 ) = 15 6 1 = 90
Figure DE102017103347B4_0097

Möglichkeiten, zwei Zweien, zwei Einsen und zwei Nullen auf 6 Positionen zu verteilen und in 6 Speicherzellen mit drei digitalen (ternären) Speicherzellenwerten zu speichern.Ways to distribute two twos, two ones and two zeros to 6 positions and store them in 6 memory cells with three digital (ternary) memory cell values.

Im Unterschied dazu gibt es für n = 6 und n1 = n2 = 3 nur ( n n 1 ) ( n n 1 n 1 ) = ( 6 3 ) ( 3 3 ) = 20

Figure DE102017103347B4_0098
In contrast, for n = 6 and n 1 = n 2 = 3 only ( n n 1 ) ( n n 1 n 1 ) = ( 6 3 ) ( 3 3 ) = 20
Figure DE102017103347B4_0098

Möglichkeiten, drei Einsen und drei Nullen auf 6 Positionen zu verteilen und in 6 Speicherzellen mit binären Speicherzellenwerten zu speichern, sodass durch Verwendung der drei ternären digitalen Werte 0, 1 und 2 gegenüber der Verwendung lediglich binärer Speicherzellenwerte 0 und 1 erheblich mehr Informationen in einer Gruppe von n Speicherzellen speicherbar ist.Possibilities to distribute three ones and three zeros in 6 positions and store them in 6 memory cells with binary memory cell values, so that by using the three ternary digital values 0, 1 and 2 compared to using only binary memory cell values 0 and 1 there is considerably more information in a group can be stored by n memory cells.

So können in diesem Beispiel, in dem jede der Speicherzellen den Wert 0, 1 oder 2 annehmen kann, eine Anzahl von k = 6 Datenbits (mit 26 = 64 möglichen Belegungen) in n = 6 digitale Speicherzellenwerte transformiert und in n = 6 Speicherzellen gespeichert werden. Die 6 Speicherzellenwerte weisen jeweils

  • - n1 = 2 erste digitale Werte 2,
  • - n2 = 2 zweite digitale Werte 1 und
  • - n3 = 2 dritte digitale Werte 0 auf.
In this example, in which each of the memory cells can assume the value 0, 1 or 2, a number of k=6 data bits (with 2 6 =64 possible assignments) can be transformed into n=6 digital memory cell values and into n=6 memory cells get saved. The 6 memory cell values each have
  • - n 1 = 2 first digital values 2,
  • - n 2 = 2 second digital values 1 and
  • - n 3 = 2 third digital values 0 on.

Die 6 Speicherzellenwerte bilden ein Codewort eines 2 ,2 ,2 aus 6 Codes ,

Figure DE102017103347B4_0099
bei dem jedes Codewort zwei erste digitale Werte, zwei zweite digitale Werte und zwei dritte digitale Werte aufweist.The 6 memory cell values form a code word of a 2 ,2 ,2 out of 6 codes ,
Figure DE102017103347B4_0099
in which each code word has two first digital values, two second digital values and two third digital values.

Der Code hat ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n 2 n 3 ) = 15 6 1 = 90

Figure DE102017103347B4_0100
Codewörter.The code has ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n 2 n 3 ) = 15 6 1 = 90
Figure DE102017103347B4_0100
code words.

Mit k = 6 Bits sind 2k = 26 = 64 Binärwörter der Länge 6 in 64 der Codewörter des 2-,2-,2-aus-n-Codes umkehrbar eindeutig transformierbar.With k=6 bits, 2k = 26 =64 binary words of length 6 can be uniquely transformed into 64 of the code words of the 2, 2, 2 out of n code.

15 zeigt eine schematische Anordnung zur Veranschaulichung wie k Datenbits x1 bis xk mittels einer Transformationsschaltung 1501 transformiert und als n Speicherzellenwerte in n Speicherzellen eines Speichers 1502 gespeichert werden. Hierbei sei beispielhaft k ≥ 2 und n ≥ 3 angenommen. An dem Eingang der Transformationsschaltung 1501 liegen die k Datenbits x1 bis xk an. 15 shows a schematic arrangement to illustrate how k data bits x 1 to x k are transformed by means of a transformation circuit 1501 and stored as n memory cell values in n memory cells of a memory 1502. Here k≧2 and n≧3 is assumed as an example. The k data bits x 1 to x k are present at the input of the transformation circuit 1501 .

Die n Speicherzellenwerte werden von der Transformationsschaltung 1501 an Dateneingängen der Speicherzellen des Speichers 1502 bereitgestellt. Diese n Speicherzellenwerte bilden ein Codewort eines n 1 , n 2 , , n K aus n Codes .

Figure DE102017103347B4_0101
The n memory cell values are provided by the transformation circuit 1501 at data inputs of the memory cells of the memory 1502. These n memory cell values form a code word of a n 1 , n 2 , ... , n K out of n codes .
Figure DE102017103347B4_0101

Bei den Speicherzellenwerte handelt es sich beispielhaft um K-wertige digitale Werte.The memory cell values are, for example, K-value digital values.

16 zeigt eine schematische Umsetzung der Anordnung von 15, wobei in 16 beispielhaft n = k = 6, K = 3 und n1 = n2 = n3 = 2 gelten. Gemäß dem in 16 gezeigten Beispiel werden 6 Datenbits x1 bis x6 mittels einer Transformationsschaltung 1601 in 6 dreiwertige Speicherzellenwerte transformiert und in einem Speicher 1602 gespeichert. Die 6 Speicherzellenwerte weisen zwei Werte 2, zwei Werte 1 und zwei Werte 0 auf und bilden (im fehlerfreien Fall) ein Codewort eines 2-,2-,2-aus-6-Codes. Dabei ist jede der Speicherzellen in der Lage, dreiwertige (K = 3) Speicherzellenwerte zu speichern. 16 shows a schematic implementation of the arrangement of 15 , where in 16 for example n = k = 6, K = 3 and n 1 = n 2 = n 3 = 2 apply. According to the 16 In the example shown, 6 data bits x 1 to x 6 are transformed into 6 three-valued memory cell values by a transformation circuit 1601 and stored in a memory 1602 . The 6 memory cell values have two 2 values, two 1 values and two 0 values and form (in the error-free case) a code word of a 2, 2, 2 out of 6 code. In this case, each of the memory cells is capable of storing three-valued (K=3) memory cell values.

Für die Speicherzellen S1 bis S6 werden beim Auslesen wie beschrieben die Zeitpunkte t1 bis t6 bestimmt, wann das Zeitintegral des Lesestromes den vorgegebenen Schwellwert Sw erreicht (oder überschreitet). Gilt beispielsweise t i 1 < t i 2 < t i 3 < t i 4 < t i 5 < t i 6 ,

Figure DE102017103347B4_0102
dann können die Speicherzellen S1 bis S6 in der Reihenfolge S i 1 , S i 2 , S i 3 , S i 4 , S i 5 , S i 6
Figure DE102017103347B4_0103
geordnet werden. Dabei ist die Menge der Werte i1, ... , i6 gleich der Menge der Werte 1,...,6. Gilt beispielsweise z1 = 5, i2 = 4, i3 = 2, i4 = 1, i5 = 6 und i6 = 3, so ergibt sich t 5 < t 4 < t 2 < t 1 < t 6 < t 3
Figure DE102017103347B4_0104
und damit die Reihenfolge der Speicherzellen zu S 5 , S 4 , S 2 , S 1 , S 6 , S 3 .
Figure DE102017103347B4_0105
As described, the times t 1 to t 6 are determined for the memory cells S 1 to S 6 during reading, when the time integral of the read current reaches (or exceeds) the predetermined threshold value Sw. Valid for example t i 1 < t i 2 < t i 3 < t i 4 < t i 5 < t i 6 ,
Figure DE102017103347B4_0102
then the memory cells S 1 to S 6 in order S i 1 , S i 2 , S i 3 , S i 4 , S i 5 , S i 6
Figure DE102017103347B4_0103
to be sorted. The set of values i 1 ,..., i 6 is equal to the set of values 1,...,6. For example, if z 1 = 5, i 2 = 4, i 3 = 2, i 4 = 1, i 5 = 6 and i 6 = 3, the result is t 5 < t 4 < t 2 < t 1 < t 6 < t 3
Figure DE102017103347B4_0104
and thus the order of the memory cells S 5 , S 4 , S 2 , S 1 , S 6 , S 3 .
Figure DE102017103347B4_0105

Es kann festgelegt sein, dass den ersten beiden Speicherzellen Si1 und Si2 in der Reihenfolge der Speicherzellen der digitale Speicherzellenwert 0, den folgenden beiden Speicherzellen Si3 und Si4 in der Reihenfolge der digitale Speicherzellenwert 1 und den weiteren beiden Speicherzellen Si5 und Si6 in der Reihenfolge der digitale Speicherzellenwert 2 zugeordnet ist.It can be specified that the first two memory cells S i 1 and S i 2 in the sequence of the memory cells the digital memory cell value 0, the following two memory cells S i 3 and S i 4 in the order of the digital memory cell value 1 and the other two memory cells S i 5 and S i 6 in which order the digital memory cell value 2 is assigned.

Es kann auch festgelegt sein, dass den ersten beiden Speicherzellen Si1 und Si2 der digitale Speicherzellenwert 2, den folgenden beiden Speicherzellen Si3 und Si4 der digitale Speicherzellenwert 1 und den weiteren beiden Speicherzellen Si5 und S16 der digitale Speicherzellenwert 0 zugeordnet ist. Entsprechend sind auch weitere Zuordnungsvarianten möglich.It can also be specified that the first two memory cells S i 1 and S i 2 the digital memory cell value 2, the following two memory cells S i 3 and S i 4 the digital memory cell value 1 and the other two memory cells S i 5 and S 1 6 the digital memory cell value 0 is assigned. Correspondingly, further assignment variants are also possible.

Eine fehlerhafte Zuordnung von digitalen Werten erfolgt nur

  • - wenn sowohl der Lesestrom W A i 2
    Figure DE102017103347B4_0106
    der Speicherzelle Si2 als auch der Lesestrom W A i 3
    Figure DE102017103347B4_0107
    der Speicherzelle Zelle Si3 in einem Überlappungsbereich liegen, in dem sowohl ein Lesestrom für den Wert 0 als auch für den Wert 1 vorkommt oder
  • - wenn sowohl der Lesestrom W A i 4
    Figure DE102017103347B4_0108
    der Speicherzelle Si4 als auch der Lesestrom W A i 5
    Figure DE102017103347B4_0109
    der Speicherzelle S i 5
    Figure DE102017103347B4_0110
    Si5 in einem Überlappungsbereich liegen, in dem sowohl ein Lesestrom für den Wert 1 als auch ein Lesestrom für den Wert 2 vorkommt.
An incorrect assignment of digital values only occurs
  • - if both the reading current W A i 2
    Figure DE102017103347B4_0106
    of the memory cell S i 2 as well as the read stream W A i 3
    Figure DE102017103347B4_0107
    of the memory cell cell S i 3 lie in an overlapping area in which both a read current for the value 0 and for the value 1 occurs or
  • - if both the reading current W A i 4
    Figure DE102017103347B4_0108
    of the memory cell S i4 as well as the read current W A i 5
    Figure DE102017103347B4_0109
    the storage cell S i 5
    Figure DE102017103347B4_0110
    S i5 lie in an overlap region in which both a read current for the value 1 and a read current for the value 2 occur.

Somit ist vorteilhaft eine fehlerfreie Zuordnung von digitalen Werten mit hoher Wahrscheinlichkeit auch für mehrwertige digitale Speicher gegeben, weil bezogen auf die 6 Speicherzellen nur für einen kleinen Teil der Speicherzellen eine fehlerhafte Zuordnung möglich ist und weil hierfür gleichzeitig die Leseströme von jeweils zwei Speicherzellen in einem Überlappungsbereich liegen müssen.Thus, there is advantageously an error-free assignment of digital values with a high degree of probability, even for multi-value digital memories, because, based on the 6 memory cells, an incorrect assignment is only possible for a small part of the memory cells and because for this purpose the read currents of two memory cells in each case are in an overlapping area at the same time have to lie.

Somit ist es von Vorteil, dass beim Auslesen der gespeicherten Speicherzellenwerte Lesefehler nur selten auftreten. Es können beim Auslesen die ausgelesenen physikalischen Werte oder die aus den ausgelesenen physikalischen Werten bestimmten Werte verschiedener Speicherzellen miteinander verglichen werden, was im Ergebnis dann einer wirksamen Reduzierung der Lesefehler entsprechen kann. Ein fehlerhaftes Resultat eines Vergleichs kann nur dann auftreten, wenn die beiden zu vergleichenden Werte gleichzeitig in einem Überlappungsbereich liegen.It is therefore advantageous that read errors only rarely occur when the stored memory cell values are read out. When reading out, the physical values read out or the values of different memory cells determined from the physical values read out can be compared with one another, which as a result can then correspond to an effective reduction in the read errors. An erroneous result of a comparison can only occur if the two values to be compared are in an overlapping area at the same time.

Es ist auch möglich, die als K-wertige Speicherzellenwerte in n Speicherzellen gespeicherten Werte unter Verwendung von Referenzwerten auszulesen, wenn in entsprechenden n Speicherzellen gespeicherte Codewörter einen (n1-, n2-, ..., nK-aus-n)-Code bilden.It is also possible to read out the values stored as K-value memory cell values in n memory cells using reference values if code words stored in corresponding n memory cells have a (n 1 -, n 2 -, ..., n K -out of n) -form code.

Beispiel: Vierwertige SpeicherzellenwerteExample: Four-valued memory cell values

17 zeigt eine schematische Anordnung zur Transformation von vier Datenbits x1, x2, x3, x4 in vier Speicherzellenwerte z1, z2, z3, z4. 17 shows a schematic arrangement for the transformation of four data bits x 1 , x 2 , x 3 , x 4 into four memory cell values z 1 , z 2 , z 3 , z 4 .

Die vier Datenbits x1, x2, x3, x4 liegen am Eingang einer Transformationsschaltung 1701 an. Diese vier Datenbits werden anhand der Transformationsschaltung 1701 in die vier Speicherzellenwerte z1, z2, z3, z4 transformiert und in Speicherzellen S1, S2, S3, S4 eines Speichers 1702 gespeichert.The four data bits x 1 , x 2 , x 3 , x 4 are present at the input of a transformation circuit 1701 . These four data bits are transformed into the four memory cell values z 1 , z 2 , z 3 , z 4 using the transformation circuit 1701 and stored in memory cells S 1 , S 2 , S 3 , S 4 of a memory 1702 .

Der Speicher 1702 umfasst in diesem Beispiel die Gruppe aus den n = 4 Speicherzellen S1, S2, S3, S4, wobei in jeder der Speicherzellen beispielhaft vier unterschiedliche Werte 0, 1, 2, 3 und 4 gespeichert werden können. Damit gibt es eine Speicherzelle pro Teilgruppe, d.h. es gilt n1 = n2 = n3 = n4 = 1.In this example, the memory 1702 comprises the group of the n=4 memory cells S 1 , S 2 , S 3 , S 4 , four different values 0, 1, 2, 3 and 4 being able to be stored in each of the memory cells, for example. There is thus one memory cell per subgroup, ie n 1 = n 2 = n 3 = n 4 = 1.

Im fehlerfreien Fall bilden die Speicherzellenwerte z1, z2, z3, z4 ein Codewort eines 1-,1-,1-,1-aus-4-Codes mit 4 · 3 · 2 · 1 = 24 möglichen Codewörtern. In der Gruppe mit n = 4 Speicherzellen können somit 24 unterschiedliche digitale Werte gespeichert werden.In the error-free case, the memory cell values z 1 , z 2 , z 3 , z 4 form a code word of a 1, 1, 1, 1 out of 4 code with 4×3×2×1=24 possible code words. 24 different digital values can thus be stored in the group with n=4 memory cells.

5 zeigt beispielhaft eine Häufigkeitsverteilung 501 für die aus dem Speicher 1702 gelesenen Werte 3, eine Häufigkeitsverteilung 502 für die aus dem Speicher 1702 gelesenen Werte 2, eine Häufigkeitsverteilung 503 für die aus dem Speicher 1702 gelesenen Werte 1 und eine Häufigkeitsverteilung 504 für die aus dem Speicher 1702 gelesenen Werte 0. Die Häufigkeitsverteilung 501 wird auch mit WA(3), die Häufigkeitsverteilung 502 wird auch mit WA(2), die Häufigkeitsverteilung 503 wird auch mit WA(1) und die Häufigkeitsverteilung 504 wird auch mit WA(0) bezeichnet. 5 shows an example of a frequency distribution 501 for the values 3 read from the memory 1702, a frequency distribution 502 for the values 2 read from the memory 1702, a frequency distribution 503 for the values 1 read from the memory 1702 and a frequency distribution 504 for the values 1 read from the memory 1702 read values 0. Frequency distribution 501 is also denoted by W A (3), frequency distribution 502 is also denoted by W A (2), frequency distribution 503 is also denoted by W A (1) and frequency distribution 504 is also denoted by W A (0 ) designated.

Jeder der Werte 0, 1, 2, 3 und 4 kann in einer der mehreren vierwertigen Speicherzellen des Speichers 1702 gespeichert werden.Each of the values 0, 1, 2, 3, and 4 can be stored in one of the plurality of quad-valued memory cells of memory 1702.

Beispielhaft kann es sich bei dem aus dem Speicher 1702 ausgelesenen Wert um eine Stromstärke (einen Lesestrom) handeln, wobei sich abhängig von der Höhe dieser Stromstärke einer der Werte 0, 1, 2, 3 oder 4 ergibt.For example, the value read from the memory 1702 can be a current (a read current), with one of the values 0, 1, 2, 3 or 4 resulting depending on the magnitude of this current.

Die Häufigkeitsverteilungen 501 und 502 weisen einen Überlappungsbereich 505, die Häufigkeitsverteilungen 502 und 503 weisen einen Überlappungsbereich 506 und die Häufigkeitsverteilungen 503 und 504 weisen einen Überlappungsbereich 507 auf.Frequency distributions 501 and 502 have an overlap area 505, frequency distributions 502 and 503 have an overlap area 506, and frequency distributions 503 and 504 have an overlap area 507.

Wird die Stromstärke WA(τ)i des Lesestroms der Speicherzelle Si über die Zeit t integriert, dann wird der vorgegebene Schwellwert Sw zu einem bestimmten Zeitpunkt ti erreicht.If the current strength W A (τ) i of the read current of the memory cell S i is integrated over time t, then the predefined threshold value Sw is reached at a specific point in time t i .

Wird die Stromstärke WA(τ)j des Lesestroms der Speicherzelle Sj über die Zeit t integriert, dann wird der vorgegebene Schwellwert Sw zu einem bestimmten Zeitpunkt tj erreicht.If the current strength W A (τ) j of the read current of the memory cell S j is integrated over time t, then the predefined threshold value Sw is reached at a specific point in time t j .

Ist beispielsweise in der Speicherzelle Si der Wert 3 gespeichert und ist in der Speicherzelle Sj einer der digitalen Werte 0, 1 oder 2 gespeichert, dann gilt tj < ti da der Lesestrom W A i

Figure DE102017103347B4_0111
der Speicherzelle Si kleiner ist als der Lesestrom W A j
Figure DE102017103347B4_0112
der Speicherzelle Sj.If, for example, the value 3 is stored in the memory cell S i and one of the digital values 0, 1 or 2 is stored in the memory cell S j , then t j <t i da the read current applies W A i
Figure DE102017103347B4_0111
of the memory cell S i is smaller than the read current W A j
Figure DE102017103347B4_0112
of the memory cell S j .

Ist beispielsweise in der Speicherzelle Si der Wert 1 gespeichert und ist in der Speicherzelle Sj einer der Werte 3 oder 2 gespeichert, dann gilt tj > ti da der Lesestrom W A i

Figure DE102017103347B4_0113
der Speicherzelle Si größer ist als der Lesestrom W A j
Figure DE102017103347B4_0114
der Speicherzelle Sj.If, for example, the value 1 is stored in the memory cell S i and one of the values 3 or 2 is stored in the memory cell S j , then t j >t i da the read current applies W A i
Figure DE102017103347B4_0113
of the memory cell S i is greater than the read current W A j
Figure DE102017103347B4_0114
of the memory cell S j .

Gilt beispielsweise t1 < t3 < t2 < t4, ergibt sich als Reihenfolge der Speicherzellen: S1, S3, S2, S4. Der Speicherzelle S1 kann der Wert 0, der Speicherzelle S3 der Wert 1, der Speicherzelle S2 der Wert 2 und der Speicherzelle S4 der Wert 3 zugeordnet werden.For example, if t 1 <t 3 <t 2 <t 4 , the sequence of the memory cells is: S 1 , S 3 , S 2 , S 4 . The value 0 can be assigned to the memory cell S 1 , the value 1 to the memory cell S 3 , the value 2 to the memory cell S 2 and the value 3 to the memory cell S 4 .

Am Eingang der Transformationsschaltung 1701 liegen die vier Datenbits x1, x2, x3, x4 an, und am Ausgang der Transformationsschaltung 1701 werden die Speicherzellenwerte z1, z2, z3, z4 ausgegeben. Diese in der Transformationsschaltung 1701 durchgeführte Transformation kann beispielsweise gemäß Tabelle 1 bestimmt sein. Tabelle 1 Zeile x 1 x 2 x 3 x 4 z 1 z 2 z 3 z 4 1 0 0 0 0 3 2 1 0 2 0 0 0 1 3 2 0 1 3 0 0 1 0 3 1 2 0 4 0 0 1 1 3 1 0 2 5 0 1 0 0 3 0 1 2 6 0 1 0 1 3 0 2 1 7 0 1 1 0 2 3 1 0 8 0 1 1 1 2 3 0 1 9 1 0 0 0 2 1 3 0 10 1 0 0 1 2 1 0 3 11 1 0 1 0 2 0 3 1 12 1 0 1 1 2 0 1 3 13 1 1 0 0 1 3 2 0 14 1 1 0 1 1 3 0 2 15 1 1 1 0 1 2 3 0 16 1 1 1 1 1 2 0 3 The four data bits x 1 , x 2 , x 3 , x 4 are present at the input of the transformation circuit 1701, and the memory cell values z 1 , z 2 , z 3 , z 4 are output at the output of the transformation circuit 1701. This transformation performed in the transformation circuit 1701 can be determined according to Table 1, for example. Table 1 Line × 1 x2 _ × 3 x 4 z 1 z 2 z 3 z 4 1 0 0 0 0 3 2 1 0 2 0 0 0 1 3 2 0 1 3 0 0 1 0 3 1 2 0 4 0 0 1 1 3 1 0 2 5 0 1 0 0 3 0 1 2 6 0 1 0 1 3 0 2 1 7 0 1 1 0 2 3 1 0 8th 0 1 1 1 2 3 0 1 9 1 0 0 0 2 1 3 0 10 1 0 0 1 2 1 0 3 11 1 0 1 0 2 0 3 1 12 1 0 1 1 2 0 1 3 13 1 1 0 0 1 3 2 0 14 1 1 0 1 1 3 0 2 15 1 1 1 0 1 2 3 0 16 1 1 1 1 1 2 0 3

Die vier Datenbits x1, x2, x3, x4 können 16 verschiedene binäre Werte 0000, ... ,1111 annehmen, die allesamt in der vorstehenden Tabelle 1 gezeigt sind. Jede Zeile entspricht dabei einer von der Transformationsschaltung 1701 durchführbaren Transformation von Datenbits xi in ein Codewort zi des 1-,1-,1-,1-aus-4-Codes.The four data bits x 1 , x 2 , x 3 , x 4 can take on 16 different binary values 0000,...,1111, all of which are shown in Table 1 above. In this case, each row corresponds to a transformation, which can be carried out by the transformation circuit 1701, of data bits x i into a code word z i of the 1, 1, 1, 1 out of 4 code.

Beispielsweise zeigt die dritte Zeile der Tabelle 1, dass den Datenbits 0010 das Codewort 3120 zugeordnet ist.For example, the third row of Table 1 shows that the code word 3120 is assigned to the data bits 0010.

Wie bereits ausgeführt wurde, gibt es 24 verschiedene Codewörter des 1-,1-,1-,1-aus-4-Codes. Diesen 24 Codewörtern stehen 16 verschiedene Werte für x1, x2, x3, x4 gegenüber. Gemäß der Tabelle 1 werden nur 16 der 24 möglichen Codewörter verwendet.As already stated, there are 24 different code words of the 1,1,1,1 out of 4 code. These 24 code words face 16 different values for x 1 , x 2 , x 3 , x 4 . According to Table 1, only 16 of the 24 possible code words are used.

Werden beim Auslesen der Speicherzellen S1, S2, S3, S4 vier Speicherzellenwerte z1, z2, z3, z4 bestimmt, die im fehlerfreien Fall ein Codewort des 1-,1-,1-,1-aus-4-Codes bilden, dann werden diese Speicherzellenwerte gemäß Tabelle 1 in die entsprechenden Datenbits x1, x2, x3, x4 transformiert.If, when reading out the memory cells S 1 , S 2 , S 3 , S 4 , four memory cell values z 1 , z 2 , z 3 , z 4 are determined which, in the error-free case, contain a code word of 1-,1-,1-,1-out -4 codes, then these memory cell values are transformed according to Table 1 into the corresponding data bits x 1 , x 2 , x 3 , x 4 .

Eine mögliche Rücktransformation ist in Tabelle 2 gezeigt. Tabelle 2 Zeile z 1 z 2 z 3 z 4 x 1 x 2 x 3 x 4 1 3 2 1 0 0 0 0 0 2 3 2 0 1 0 0 0 1 3 3 1 2 0 0 0 1 0 4 3 1 0 2 0 0 1 1 5 3 0 1 2 0 1 0 0 6 3 0 2 1 0 1 0 1 7 2 3 1 0 0 1 1 0 8 2 3 0 1 0 1 1 1 9 2 1 3 0 1 0 0 0 10 2 1 0 3 1 0 0 1 11 2 0 3 1 1 0 1 0 12 2 0 1 3 1 0 1 1 13 1 3 2 0 1 1 0 0 14 1 3 0 2 1 1 0 1 15 1 2 3 0 1 1 1 0 16 1 2 0 3 1 1 1 1 17 1 0 3 2 - - - - 18 1 0 2 3 - - - - 19 0 3 2 1 - - - - 20 0 3 1 2 - - - - 21 0 2 3 1 - - - - 22 0 2 1 3 - - - - 23 0 1 3 2 - - - - 24 0 1 2 3 - - - - A possible inverse transformation is shown in Table 2. Table 2 Line z 1 z 2 z 3 z 4 × 1 x2 _ × 3 x 4 1 3 2 1 0 0 0 0 0 2 3 2 0 1 0 0 0 1 3 3 1 2 0 0 0 1 0 4 3 1 0 2 0 0 1 1 5 3 0 1 2 0 1 0 0 6 3 0 2 1 0 1 0 1 7 2 3 1 0 0 1 1 0 8th 2 3 0 1 0 1 1 1 9 2 1 3 0 1 0 0 0 10 2 1 0 3 1 0 0 1 11 2 0 3 1 1 0 1 0 12 2 0 1 3 1 0 1 1 13 1 3 2 0 1 1 0 0 14 1 3 0 2 1 1 0 1 15 1 2 3 0 1 1 1 0 16 1 2 0 3 1 1 1 1 17 1 0 3 2 - - - - 18 1 0 2 3 - - - - 19 0 3 2 1 - - - - 20 0 3 1 2 - - - - 21 0 2 3 1 - - - - 22 0 2 1 3 - - - - 23 0 1 3 2 - - - - 24 0 1 2 3 - - - -

In der Tabelle 2 sind den 24 Codewörtern die 16 möglichen Belegungen der Datenbits zugeordnet, wobei für einen Teil der Codewörter (Zeilen 17 bis 24 in Tabelle 2) keine Datenbits existieren bzw. die Datenbits für diese Codewörter unbestimmt sind. Die Tabelle 2 zeigt somit die inverse Transformation zu Tabelle 1.In Table 2, the 24 code words are assigned the 16 possible assignments of the data bits, with some of the code words (lines 17 to 24 in Table 2) having no data bits or the data bits for these code words being undefined. Table 2 thus shows the inverse transformation of Table 1.

Beispielsweise zeigt Zeile 5 der Tabelle 1, dass den Datenbits 0100 das Codewort 3012 zugeordnet ist. Entsprechend zeigt Zeile 5 der Tabelle 2, dass dem Codewort 3012 die Datenbits 0100 zugeordnet sind.For example, row 5 of Table 1 shows that data bits 0100 are assigned the code word 3012. Correspondingly, line 5 of Table 2 shows that code word 3012 is assigned data bits 0100.

Für die Zeilen 17 bis 24 der Tabelle 2 sind die Datenbits unbestimmt. Bei einer Synthese einer inversen Transformationsschaltung können unbestimmte Datenbits als sogenannte „don't care“-Werte zur Schaltungsoptimierung verwendet werden. For rows 17 through 24 of Table 2, the data bits are undetermined. In a synthesis of an inverse transformation circuit, undetermined data bits can be used as so-called "don't care" values for circuit optimization.

Auch können die unbestimmten Datenbits auf einen beliebigen Wert, z.B. auf 0 gesetzt werden.The indefinite data bits can also be set to any value, e.g. to 0.

Beispiel: 11 Datenbits in 8 SpeicherzellenExample: 11 data bits in 8 memory cells

Beispielhaft können k = 11 Datenbits x1, ... , x11 in 8 Speicherzellen mit den Speicherzellenwerten z1, ... , z8 transformiert werden. Die Speicherzellenwerte sind Codewörter eines 2-,2-,2-,2-aus-8-Codes. Jeder Speicherzellenwert ist vierwertig (K = 4), d.h. pro Speicherzelle kann einer von vier verschiedenen Werten gespeichert werden.For example, k=11 data bits x 1 , . . . , x 11 can be transformed into 8 memory cells with memory cell values z 1 , . . . , z 8 . The memory cell values are code words of a 2, 2, 2, 2 out of 8 code. Each memory cell value has four values (K=4), ie one of four different values can be stored per memory cell.

Durch die 11 Datenbits können 211 = 2048 verschiedene Werte dargestellt werden. Der 2-,2-,2-,2-aus-8-Code umfasst ( 8 2 ) ( 6 2 ) ( 4 2 ) ( 2 2 ) = 28 15 6 1 = 2520

Figure DE102017103347B4_0115
The 11 data bits can represent 2 11 = 2048 different values. The 2,2,2,2 out of 8 code includes ( 8th 2 ) ( 6 2 ) ( 4 2 ) ( 2 2 ) = 28 15 6 1 = 2520
Figure DE102017103347B4_0115

Codewörter. Diese 2520 Codewörter reichen aus, um alle 2048 binären Werte in Codewörter des 2-,2-,2-,2-aus-8-Codes zu transformieren.code words. These 2520 code words are enough to transform all 2048 binary values into code words of the 2,2,2,2 out of 8 code.

Beispiel: 9 Datenbits in 7 SpeicherzellenExample: 9 data bits in 7 memory cells

Auch können k = 9 Datenbits x1, ... , x9 in n = 7 Speicherzellen mit den Speicherzellenwerten z1, ... , z7 transformiert werden. Die Die Speicherzellenwerte sind Codewörter eines 2-,2-,2-,1-aus-7-Codes. Jeder Speicherzellenwert ist beispielhaft vierwertig (K = 4).Also, k=9 data bits x 1 ,...,x 9 can be transformed into n=7 memory cells with memory cell values z 1 ,...,z 7 . The memory cell values are codewords of a 2,2,2,1 of 7 code. Each memory cell value is, for example, four-valued (K=4).

Durch die 9 Datenbits können 29 = 512 unterschiedliche Werte dargestellt werden. Der 2-,2-,2-,1-aus-7-Code umfasst ( 7 2 ) ( 5 2 ) ( 3 2 ) ( 1 1 ) = 21 10 3 1 = 630

Figure DE102017103347B4_0116
The 9 data bits can represent 2 9 = 512 different values. The 2,2,2,1 of 7 code includes ( 7 2 ) ( 5 2 ) ( 3 2 ) ( 1 1 ) = 21 10 3 1 = 630
Figure DE102017103347B4_0116

Codewörter. Diese 630 Codewörter reichen aus, um alle 512 binären Werte in Codewörter des 2-,2-,2-,2-aus-7-Codes zu transformieren.code words. These 630 code words are enough to transform all 512 binary values into code words of the 2,2,2,2 out of 7 code.

Vorteilhaft ist beispielsweise, dass beim Auslesen und Bestimmen von digitalen Speicherzellenwerten, die Codewörter eines n 1 , , n K aus n Codes

Figure DE102017103347B4_0117
bilden, kein Referenzwert erforderlich ist. Das Bestimmen der ausgelesenen digitalen Speicherzellenwerte kann unter Verwendung eines gegenseitigen Vergleichs der aus Speicherzellen ausgelesenen physikalischen Werte oder eines Vergleichs von aus ausgelesenen physikalischen Werten abgeleiteten Werten erfolgen, wodurch die Wahrscheinlichkeit von Lesefehlern auch dann gering ist, wenn die Häufigkeitsverteilungen für die verschiedenen Speicherzellenwerte Überlappungsbereiche aufweisen.It is advantageous, for example, that when reading out and determining digital memory cell values, the code words of a n 1 , ... , n K out of n codes
Figure DE102017103347B4_0117
form, no reference value is required. The digital memory cell values read can be determined using a mutual comparison of the physical values read from memory cells or a comparison of values derived from physical values read out, which means that the probability of reading errors is low even if the frequency distributions for the different memory cell values have overlapping areas.

Auslesen des Speichers mittels VergleicherReading out the memory using a comparator

6 zeigt einen Speicher 601 umfassend n = 4 Speicherzellen S1, S2, S3 und S4. An den Ausgängen der Speicherzellen werden die Werte W A 1 ,   W A 2 ,   W A 3  und W A 4

Figure DE102017103347B4_0118
ausgelesen und unter Verwendung von ( 4 2 ) = 6
Figure DE102017103347B4_0119
Vergleichern 602 bis 607 paarweise verglichen. Ein Vergleicher kann z.B. als ein Komparator ausgeführt sein. 6 Figure 12 shows a memory 601 comprising n=4 memory cells S 1 , S 2 , S 3 and S 4 . At the outputs of the memory cells, the values W A 1 , W A 2 , W A 3 and w A 4
Figure DE102017103347B4_0118
read and using ( 4 2 ) = 6
Figure DE102017103347B4_0119
Comparators 602 to 607 compared in pairs. A comparator can be implemented as a comparator, for example.

Der Vergleicher 602 vergleicht die ausgelesenen Werte W A 1  und  W A 2

Figure DE102017103347B4_0120
der Speicherzellen S1 und S2. Der Vergleicher 602 ist so konfiguriert, dass er an seinem Ausgang einen binären Wert y12 = 1 ausgibt, falls für die ausgelesenen Werte W A 1 > W A 2
Figure DE102017103347B4_0121
gilt, und den binären Wert y12 = 0 ausgibt, falls für die ausgelesenen Werte W A 1 < W A 2
Figure DE102017103347B4_0122
gilt.The comparator 602 compares the read values W A 1 and W A 2
Figure DE102017103347B4_0120
of memory cells S 1 and S 2 . The comparator 602 is configured to provide a binary value y 12 =1 at its output if for the values read W A 1 > W A 2
Figure DE102017103347B4_0121
applies, and outputs the binary value y 12 =0 if for the values read out W A 1 < W A 2
Figure DE102017103347B4_0122
is applicable.

Der Vergleicher 603 vergleicht die ausgelesenen Werte W A 1  und  W A 3

Figure DE102017103347B4_0123
der Speicherzellen S1 und S3. Der Vergleicher 603 ist so konfiguriert, dass er an seinem Ausgang einen binären Wert y13 = 1 ausgibt, falls für die ausgelesenen Werte W A 1 > W A 3
Figure DE102017103347B4_0124
gilt, und den binären Wert y13 = 0 ausgibt, falls für die ausgelesenen Werte W A 1 < W A 3
Figure DE102017103347B4_0125
gilt.The comparator 603 compares the read values W A 1 and W A 3
Figure DE102017103347B4_0123
of memory cells S 1 and S 3 . The comparator 603 is configured to provide a binary value y 13 =1 at its output if for the values read W A 1 > W A 3
Figure DE102017103347B4_0124
applies, and outputs the binary value y 13 =0 if for the values read out W A 1 < W A 3
Figure DE102017103347B4_0125
is applicable.

Der Vergleicher 604 vergleicht die ausgelesenen Werte W A 1  und  W A 4

Figure DE102017103347B4_0126
der Speicherzellen S1 und S4. Der Vergleicher 604 ist so konfiguriert, dass er an seinem Ausgang einen binären Wert y14 = 1 ausgibt, falls für die ausgelesenen Werte W A 1 > W A 4
Figure DE102017103347B4_0127
gilt, und den binären Wert y14 = 0 ausgibt, falls für die ausgelesenen Werte W A 1 < W A 4
Figure DE102017103347B4_0128
gilt.The comparator 604 compares the read values W A 1 and W A 4
Figure DE102017103347B4_0126
of memory cells S 1 and S 4 . The comparator 604 is configured to provide a binary value y 14 =1 at its output if for the values read W A 1 > W A 4
Figure DE102017103347B4_0127
applies, and outputs the binary value y 14 =0 if for the values read out W A 1 < W A 4
Figure DE102017103347B4_0128
is applicable.

Der Vergleicher 605 vergleicht die ausgelesenen Werte W A 2  und  W A 3

Figure DE102017103347B4_0129
der Speicherzellen S2 und S3. Der Vergleicher 605 ist so konfiguriert, dass er an seinem Ausgang einen binären Wert y23 = 1 ausgibt, falls für die ausgelesenen Werte W A 2 > W A 3
Figure DE102017103347B4_0130
gilt, und den binären Wert y23 = 0 ausgibt, falls für die ausgelesenen Werte W A 2 < W A 3
Figure DE102017103347B4_0131
gilt.The comparator 605 compares the read values W A 2 and W A 3
Figure DE102017103347B4_0129
of memory cells S 2 and S 3 . The comparator 605 is configured to provide a binary value y 23 =1 at its output if for the values read W A 2 > W A 3
Figure DE102017103347B4_0130
applies, and outputs the binary value y 23 =0 if for the values read out W A 2 < W A 3
Figure DE102017103347B4_0131
is applicable.

Der Vergleicher 606 vergleicht die ausgelesenen Werte W A 2  und  W A 4

Figure DE102017103347B4_0132
der Speicherzellen S2 und S4. Der Vergleicher 606 ist so konfiguriert, dass er an seinem Ausgang einen binären Wert y24 = 1 ausgibt, falls für die ausgelesenen Werte W A 2 > W A 4
Figure DE102017103347B4_0133
gilt, und den binären Wert y24 = 0 ausgibt, falls für die ausgelesenen Werte W A 2 < W A 4
Figure DE102017103347B4_0134
gilt.The comparator 606 compares the read values W A 2 and W A 4
Figure DE102017103347B4_0132
of memory cells S 2 and S 4 . The comparator 606 is configured to provide a binary value y 24 =1 at its output if for the values read W A 2 > W A 4
Figure DE102017103347B4_0133
applies, and outputs the binary value y 24 =0 if for the values read out W A 2 < W A 4
Figure DE102017103347B4_0134
is applicable.

Der Vergleicher 607 vergleicht die ausgelesenen Werte W A 3  und  W A 4

Figure DE102017103347B4_0135
der Speicherzellen S3 und S4. Der Vergleicher 607 ist so konfiguriert, dass er an seinem Ausgang einen binären Wert y34 = 1 ausgibt, falls für die ausgelesenen Werte W A 3 > W A 4
Figure DE102017103347B4_0136
gilt, und den binären Wert y34 = 0 ausgibt, falls für die ausgelesenen Werte W A 3 < W A 4
Figure DE102017103347B4_0137
gilt.The comparator 607 compares the read values W A 3 and W A 4
Figure DE102017103347B4_0135
of memory cells S 3 and S 4 . The comparator 607 is configured to provide a binary value y 34 =1 at its output if for the values read W A 3 > W A 4
Figure DE102017103347B4_0136
applies, and outputs the binary value y 34 =0 if for the values read out W A 3 < W A 4
Figure DE102017103347B4_0137
is applicable.

Haben zwei Teilgruppen eine Größe von n1 = n2 = 2, dann können in der Gruppe mit n = 4 Speicherzellen S1 bis S4 ( n n 1 ) ( n n 1 n 2 ) = ( 4 2 ) ( 4 2 2 ) = 6 1 = 6

Figure DE102017103347B4_0138
If two subgroups have a size of n 1 = n 2 = 2, then in the group with n = 4 memory cells S 1 to S 4 ( n n 1 ) ( n n 1 n 2 ) = ( 4 2 ) ( 4 2 2 ) = 6 1 = 6
Figure DE102017103347B4_0138

Belegungen gespeichert werden.assignments are saved.

Für diese 6 Belegungen zeigt Tabelle 3 die Ausgabewerte y12, y13, y14, y23, y24, y34 der 6 Vergleicher 602 bis 607. Tabelle 3 S 1 S 2 S 3 S 4 y 12 y 13 y 14 y 23 y 24 y 34 Funktion 1 1 0 0 - 1 1 1 1 - y 13 Λ y 14 Λ y 23 Λy 24 1 0 1 0 1 - 1 0 - 1 y 12 Λ y 14 Λ y 23 Λ y 34 1 0 0 1 1 1 - - 0 0 y 12 Λ y 13 Λ y 24 Λ y 34 0 1 1 0 0 0 - - 1 1 y 12 Λ y 13 Λ y 24 Λ yy 34 0 1 0 1 0 - 0 1 - 0 y 12 Λ y 14 Λ y 23 Λ y 34 0 0 1 1 - 0 0 0 0 - y 13 Λ y 14 Λ y 23 Λ y 24 Table 3 shows the output values y 12 , y 13 , y 14 , y 23 , y 24 , y 34 of the 6 comparators 602 to 607 for these 6 assignments. Table 3 p 1 S 2 p3 _ p4 _ y 12 y 13 y 14 y 23 y 24 y 34 function 1 1 0 0 - 1 1 1 1 - y 13 Λ y 14 Λ y 23 Λ y 24 1 0 1 0 1 - 1 0 - 1 y 12Λ y 14Λ y 23Λy 34 _ 1 0 0 1 1 1 - - 0 0 y 12Λ y 13Λ y 24 Λ y 34 0 1 1 0 0 0 - - 1 1 y 12Λ y 13Λy 24Λyyy 34 _ _ 0 1 0 1 0 - 0 1 - 0 y 12Λ y 14Λ and 23Λ y 34 0 0 1 1 - 0 0 0 0 - y 13 Λ y 14 Λ y 23 Λ y 24

Beispielsweise beschreibt die erste Zeile von Tabelle 3, dass die Speicherzellen S1 bis S4 mit den binären Werten 1100 belegt sind. Die Vergleicher 602 bis 607 geben daraufhin die binären Werte y13 = y14 = y23 = y24 = 1 aus. Da die Speicherzellen S1 und S2 beide mit dem binären Wert 1 belegt sind, werden von dem Vergleicher 602 die Werte W A 1  und  W A 2

Figure DE102017103347B4_0139
miteinander verglichen, die beide einem gespeicherten binären Wert 1 zugeordnet sind. Es ist in diesem Fall nicht vorhersehbar, ob W A 1 < W A 2
Figure DE102017103347B4_0140
oder W A 1 > W A 2
Figure DE102017103347B4_0141
gilt, so dass der Ausgabewert y12 des Vergleichers 602 unbestimmt ist. Auch ist der Ausgang y34 des Vergleichers 607 unbestimmt, da die Werte W A 3
Figure DE102017103347B4_0142
und W A 4
Figure DE102017103347B4_0143
der Speicherzellen S3 und S4 beide den binären Wert 0 aufweisen.For example, the first row of Table 3 describes that the memory cells S 1 to S 4 are occupied with the binary values 1100. The comparators 602 to 607 then output the binary values y 13 =y 14 =y 23 =y 24 =1. Since the memory cells S 1 and S 2 are both occupied with the binary value 1, the values from the comparator 602 are W A 1 and W A 2
Figure DE102017103347B4_0139
compared with each other, both associated with a stored binary value 1. In this case, it is not foreseeable whether W A 1 < W A 2
Figure DE102017103347B4_0140
or W A 1 > W A 2
Figure DE102017103347B4_0141
holds, so that the output value y 12 of the comparator 602 is undetermined. The output y 34 of the comparator 607 is also undetermined since the values W A 3
Figure DE102017103347B4_0142
and W A 4
Figure DE102017103347B4_0143
of memory cells S 3 and S 4 both have the binary value 0.

Somit sind in Tabelle 3 die Ausgabewerte eines Vergleichers unbestimmt, wenn die zu vergleichenden Ausgabewerte der zugeordneten Speicherzellen gleiche Werte aufweisen.Thus, in Table 3, the output values of a comparator are undetermined if the output values of the associated memory cells to be compared have the same values.

In der Spalte „Funktion“ sind den Zeilen der Tabelle 3 Boolesche Ausdrücke als je eine Konjunktion von negierten oder nicht-negierten Ausgabewerten der entsprechenden Vergleicher zugeordnet: Ist der Ausgabewert yij gleich 1, so erscheint der Ausgabewert in der Konjunktion; ist der Ausgabewert yij hingegen 0, so erscheint der negierte Ausgabewert y ij in der Konjunktion. Ist der Ausgabewert unbestimmt („-“), so erscheint er nicht in der Konjunktion. Dies reduziert insbesondere den Aufwand für die schaltungstechnische Umsetzung.In the “Function” column, Boolean expressions are assigned to the rows of Table 3 as a conjunction of negated or non-negated output values of the corresponding comparators: If the output value y ij is equal to 1, the output value appears in the conjunction; if, on the other hand, the output value y ij is 0, the negated output value appears y ij in the conjunction. If the output value is indefinite ("-"), it does not appear in the conjunction. In particular, this reduces the outlay for the implementation of the circuitry.

Für jede der 6 Belegungen der Speicherzellen S1 bis S4 mit Bits eines 2-aus-4 Codes nimmt genau eine der 6 Konjunktionen den Wert 1 an: So entspricht beispielsweise die Belegung 1001 der Speicherzellen gemäß der dritten Zeile in Tabelle 3 der Konjuktion y 12 y 13 y ¯ 24 y ¯ 34 = 1 1 1 1 = 1.

Figure DE102017103347B4_0144
Exactly one of the 6 conjunctions assumes the value 1 for each of the 6 allocations of the memory cells S 1 to S 4 with bits of a 2-out-of-4 code: For example, the allocation 1001 of the memory cells according to the third row in Table 3 corresponds to the conjunction y 12 y 13 y ¯ 24 y ¯ 34 = 1 1 1 1 = 1.
Figure DE102017103347B4_0144

Die Vergleicher 602, 603, 606 und 607 geben die Werte y12 = 1, y13 = 1, y24 = 0 und y34 = 0 aus. Alle übrigen in Tabelle 3 gezeigten Konjunktionen haben in diesen Fall den Wert 0.The comparators 602, 603, 606 and 607 output the values y12 =1, y13 =1, y24 =0 and y34 =0. All other conjunctions shown in Table 3 have the value 0 in this case.

Somit wird dadurch, dass die Konjunktion y12 Λ y13 Λ y 24 Λ y 34 den Wert 1 hat, eindeutig bestimmt, dass aus den Speicherzellen S1 bis S4 die Belegung 1001 ausgelesen wurden.Thus, by making the conjunction y 12 Λ y 13 Λ y 24 Λ y 34 has the value 1, clearly determines that the occupancy 1001 was read from the memory cells S 1 to S 4 .

Bestimmung der Belegung der SpeicherzellenDetermination of the occupancy of the memory cells

7 zeigt eine Schaltungsanordnung anhand derer aus den Werten y12, y13, y14, y23, y24 und y34 der Vergleicher 602 bis 607 die entsprechenden Belegungen der Speicherzellen S1 bis S4 bestimmt werden. Hierzu werden beispielhaft sechs UND-Gatter 701 bis 706 mit jeweils vier Eingängen und vier ODER-Gatter 708 bis 711 mit jeweils drei Eingängen verwendet. 7 FIG. 1 shows a circuit arrangement by means of which the values y 12 , y 13 , y 14 , y 23 , y 24 and y 34 of the comparators 602 to 607 are used to determine the corresponding assignments of the memory cells S 1 to S 4 . Six AND gates 701 to 706, each with four inputs, and four OR gates 708 to 711, each with three inputs, are used for this purpose.

Die Werte y13, y14, y23 und y24 werden an die Eingänge des UND-Gatters 701 geführt. Die Werte y12, y14, y23 und y24 werden an die Eingänge des UND-Gatters 702 geführt. Die Werte y12, y13, y 24 und y 34 werden an die Eingänge des UND-Gatters 703 geführt. Die Werte y 12, y13, y24 und y34 werden an die Eingänge des UND-Gatters 704 geführt. Die Werte y 12, y14, y23 und y 34 werden an die Eingänge des UND-Gatters 705 geführt. Die Werte y13, y14, y 23 und y 24 werden an die Eingänge des UND-Gatters 706 geführt.The values y 13 , y 14 , y 23 and y 24 are applied to the inputs of AND gate 701 . The values y 12 , y 14 , y 23 and y 24 are applied to the inputs of AND gate 702 . The values y 12 , y 13 , y 24 and y 34 are fed to the inputs of the AND gate 703. The values y 12 , y 13 , y 24 and y 34 are fed to the inputs of AND gate 704 . The values y 12 , y14 , y23 and y 34 are fed to the inputs of the AND gate 705. The values y 13 , y 14 , y 23 and y 24 are fed to the inputs of AND gate 706.

Weiterhin werden die Ausgänge der UND-Gatter 701 bis 706 wie folgt mit den Eingängen der ODER-Gatter 708 bis 711 verbunden: Der Ausgang des UND-Gatters 701 wird mit je einem der Eingänge der ODER-Gatter 708 und 709 verbunden. Der Ausgang des UND-Gatters 702 wird mit je einem der Eingänge der ODER-Gatter 708 und 710 verbunden. Der Ausgang des UND-Gatters 703 wird mit je einem der Eingänge der ODER-Gatter 708 und 711 verbunden. Der Ausgang des UND-Gatters 704 wird mit je einem der Eingänge der ODER-Gatter 709 und 710 verbunden. Der Ausgang des UND-Gatters 705 wird mit je einem der Eingänge der ODER-Gatter 709 und 711 verbunden. Der Ausgang des UND-Gatters 706 wird mit je einem der Eingänge der ODER-Gatter 710 und 711 verbunden.Furthermore, the outputs of the AND gates 701 to 706 are connected to the inputs of the OR gates 708 to 711 as follows: The output of the AND gate 701 is connected to one of the inputs of the OR gates 708 and 709, respectively. The output of AND gate 702 is connected to one of the inputs of OR gates 708 and 710, respectively. The output of AND gate 703 is connected to one of the inputs of OR gates 708 and 711, respectively. The output of AND gate 704 is connected to one of the inputs of OR gates 709 and 710, respectively. The output of AND gate 705 is connected to one of the inputs of OR gates 709 and 711, respectively. The output of AND gate 706 is connected to one of the inputs of OR gates 710 and 711, respectively.

An dem Ausgang des ODER-Gatters 708 wird die Belegung der Speicherzelle S1, an dem Ausgang des ODER-Gatters 709 wird die Belegung der Speicherzelle S2, an dem Ausgang des ODER-Gatters 710 wird die Belegung der Speicherzelle S3 und an dem Ausgang des ODER-Gatters 711 wird die Belegung der Speicherzelle S4 bereitgestellt.At the output of the OR gate 708 is the occupancy of the memory cell S 1 , at the output of the OR gate 709 is the occupancy of the memory cell S 2 , at the output of the OR gate 710 is the occupancy of the memory cell S 3 and at the The assignment of the memory cell S 4 is provided at the output of the OR gate 711 .

Somit visualisiert die Schaltungsanordnung gemäß 7 die vorstehende Tabelle 3 wie folgt: An den Ausgängen der UND-Gatter 701 bis 706 sind die Funktionen der Tabelle 3 abgebildet, wobei das UND-Gatter 701 der Funktion der ersten Zeile und das UND-Gatter 706 der Funktion der letzten Zeile der Tabelle 3 entspricht. Die Belegung der Speicherzelle Si gemäß 7 ergibt sich aus der Spalte der Speicherzelle Si wie folgt: In derjenigen Zeile der Tabelle, in der diese Spalte den Wert 1 hat, besteht eine logische ODER-Verknüpfung zu der Funktion (Konjunktion). Beispielsweise hat die Speicherzelle S1 in den ersten drei Zeilen der Tabelle 3 den Wert 1, d.h. es besteht eine ODER-Verknüpfung mit den Ausgängen den UND-Gatter 701, 702 und 703, die für die Konjunktionen der ersten drei Zeilen der Tabelle 3 stehen. Dies gilt für die anderen Speicherzellen entsprechend.The circuit arrangement thus visualizes according to FIG 7 Table 3 above as follows: The functions of Table 3 are mapped to the outputs of AND gates 701 to 706, with AND gate 701 corresponding to the function of the first row and AND gate 706 corresponding to the function of the last row of Table 3 is equivalent to. The occupancy of the memory cell S i according to 7 results from the column of the memory cell S i as follows: In that row of the table in which this column has the value 1, there is a logical OR link to the function (conjunction). For example, the memory cell S 1 in the first three rows of Table 3 has the value 1, ie there is an OR link with the outputs of AND gates 701, 702 and 703, which stand for the conjunctions of the first three rows of Table 3 . This applies correspondingly to the other memory cells.

Beispiel: Dreiwertige SpeicherzellenExample: Trivalent memory cells

Nachfolgend wird ein Beispiel mit dreiwertigen Speicherzellen betrachtet, d.h. jede der Speicherzellen kann einen der Werte 0, 1 oder 2 annehmen, wobei beispielhaft 2 > 1 > 0 gelten soll.An example with three-value memory cells is considered below, i.e. each of the memory cells can assume one of the values 0, 1 or 2, with 2 > 1 > 0 as an example.

Es wird der Fall betrachtet, dass die Gruppe n = 6 Speicherzellen aufweist und die Teilgruppen n1 = n2 = n3 = 2 Speicherzellen aufweisen. Somit kann pro Gruppe von 6 Speicherzellen zweimal der Wert 2, zweimal der Wert 1 und zweimal der Wert 0 gepeichert werden. Es gibt damit ( 6 2 ) ( 4 2 ) ( 2 2 ) = 15 6 1 = 90

Figure DE102017103347B4_0145
The case is considered in which the group has n=6 memory cells and the subgroups have n 1 =n 2 =n 3 =2 memory cells. Thus, the value 2 can be stored twice, the value 1 twice and the value 0 twice per group of 6 memory cells. There is with ( 6 2 ) ( 4 2 ) ( 2 2 ) = 15 6 1 = 90
Figure DE102017103347B4_0145

Möglichkeiten, eine Gruppe von 6 Speicherzellen S1 bis S6 mit zwei Zweien, zwei Einsen und zwei Nullen zu belegen.Possibilities of assigning two twos, two ones and two zeros to a group of 6 memory cells S 1 to S 6 .

Wird beim Auslesen von Daten aus den Speicherzellen der ausgelesene Wert aller Speicherzellen paarweise verglichen, so werden 15 Vergleicher VGLij genutzt, um alle physikalischen Ausgabewerte der Speicherzellen S1 bis S6 zu vergleichen, wobei i, j = 1... 6 Indizes sind, die je eine der Speicherzellen bezeichnen. Somit vergleicht der Vergleicher VGLij die Speicherzelle Si mit der Speicherzelle Sj. Die 15 Vergleicher sind demnach: V G L 12 ,   V G L 13 ,   V G L 14 ,   V G L 15 ,   V G L 16 ,

Figure DE102017103347B4_0146
V G L 23 ,   V G L 24 ,   V G L 25 ,   V G L 26 ,
Figure DE102017103347B4_0147
V G L 34 ,   V G L 35 ,   V G L 36 ,
Figure DE102017103347B4_0148
V G L 45 ,   V G L 46 ,
Figure DE102017103347B4_0149
und V G L 56 .
Figure DE102017103347B4_0150
If the read value of all memory cells is compared in pairs when reading data from the memory cells, then 15 comparators VGL ij are used to compare all physical output values of the memory cells S 1 to S 6 , with i, j = 1... 6 indices , each of which designates one of the memory cells. Thus, the comparator VGL ij compares the memory cell S i with the memory cell S j . The 15 comparators are therefore: V G L 12 , V G L 13 , V G L 14 , V G L 15 , V G L 16 ,
Figure DE102017103347B4_0146
V G L 23 , V G L 24 , V G L 25 , V G L 26 ,
Figure DE102017103347B4_0147
V G L 34 , V G L 35 , V G L 36 ,
Figure DE102017103347B4_0148
V G L 45 , V G L 46 ,
Figure DE102017103347B4_0149
and V G L 56 .
Figure DE102017103347B4_0150

Ein binärer Ausgabewert des Vergleichers VGLij wird mit yij bezeichnet, so dass es entsprechend die folgenden 15 binären Ausgabewerte gibt: y 12 ,   y 13 ,   y 14 ,   y 15 ,   y 16 ,

Figure DE102017103347B4_0151
y 23 ,   y 24 ,   y 25 ,   y 26 ,
Figure DE102017103347B4_0152
y 34 ,   y 35 ,   y 36 ,
Figure DE102017103347B4_0153
y 45 ,   y 46
Figure DE102017103347B4_0154
und y 56 .
Figure DE102017103347B4_0155
A binary output value of the comparator VGL ij is denoted by y ij , so that there are the following 15 binary output values: y 12 , y 13 , y 14 , y 15 , y 16 ,
Figure DE102017103347B4_0151
y 23 , y 24 , y 25 , y 26 ,
Figure DE102017103347B4_0152
y 34 , y 35 , y 36 ,
Figure DE102017103347B4_0153
y 45 , y 46
Figure DE102017103347B4_0154
and y 56 .
Figure DE102017103347B4_0155

Für die Belegung 221100 der Speicherzellen S1 bis S6 zeigt Tabelle 4 die Ausgabewerte dieser 15 Vergleicher.

Figure DE102017103347B4_0156
Table 4 shows the output values of these 15 comparators for the assignment 221100 of the memory cells S 1 to S 6 .
Figure DE102017103347B4_0156

Es ergibt sich folgende Konjunktion: y 13 y 14 y 15 y 16 y 23 y 24 y 25 y 26 y 35 y 36 y 45 y 46 .

Figure DE102017103347B4_0157

y13 The following conjunction results: y 13 y 14 y 15 y 16 y 23 y 24 y 25 y 26 y 35 y 36 y 45 y 46 .
Figure DE102017103347B4_0157

y 13

Diese Konjunktion weist 12 Werte der 15 Vergleicher auf. Es sind dies diejenigen Werte, die nicht unbestimmt sind.This conjunction has 12 values of the 15 comparators. These are the values that are not indeterminate.

Grundsätzlich gilt: Ein Wert 1 kennzeichnet einen nicht-invertierten oder nicht-negierten Wert yij und ein Wert 0 kennzeichnet einen invertierten oder negierten Wert y ij des jeweiligen Vergleichers.In principle, the following applies: A value of 1 indicates a non-inverted or non-negated value y ij and a value of 0 indicates an inverted or negated value y ij of the respective comparator.

Für die Belegung 212100 der Speicherzellen S1 bis S6 zeigt Tabelle 5 die Ausgabewerte der 15 Vergleicher.

Figure DE102017103347B4_0158
Table 5 shows the output values of the 15 comparators for the assignment 212100 of the memory cells S 1 to S 6 .
Figure DE102017103347B4_0158

Es ergibt sich folgende Konjunktion: y 12 y 14 y 15 y 16 y ¯ 23 y 25 y 26 y 35 y 36 y 45 y 46 .

Figure DE102017103347B4_0159
The following conjunction results: y 12 y 14 y 15 y 16 y ¯ 23 y 25 y 26 y 35 y 36 y 45 y 46 .
Figure DE102017103347B4_0159

Die Konjunktion weist 12 Ausgabewerte der 15 Vergleicher auf.The conjunction has 12 output values from the 15 comparators.

Für die Belegung 001122 der Speicherzellen S1 bis S6 zeigt Tabelle 6 die Ausgabewerte der 15 Vergleicher.

Figure DE102017103347B4_0160
Table 6 shows the output values of the 15 comparators for the assignment 001122 of the memory cells S1 to S6 .
Figure DE102017103347B4_0160

Es ergibt sich folgende Konjunktion: y ¯ 13 y ¯ 14 y ¯ 15 y ¯ 16 y ¯ 23 y ¯ 24 y ¯ 25 y ¯ 26 y ¯ 35 y ¯ 36 y ¯ 45 y ¯ 46 .

Figure DE102017103347B4_0161
The following conjunction results: y ¯ 13 y ¯ 14 y ¯ 15 y ¯ 16 y ¯ 23 y ¯ 24 y ¯ 25 y ¯ 26 y ¯ 35 y ¯ 36 y ¯ 45 y ¯ 46 .
Figure DE102017103347B4_0161

Die Konjunktion weist 12 Ausgabewerte der 15 Vergleicher auf.The conjunction has 12 output values from the 15 comparators.

Für die verbleibenden Belegungen der Speicherzellen mit jeweils zwei Zweien, zwei Einsen und zwei Nullen ergeben sich die zugehörigen Konjunktionen entsprechend. Jeweils 12 der 15 Ausgabewerte (invertiert oder nicht), die nicht unbestimmt sind, bilden die entsprechenden Konjunktionen. Diese Konjunktionen nehmen den Wert 1 genau dann an, wenn in den Speicherzellen S1 bis S6 die ihnen entsprechenden Belegungen gespeichert sind und die aus den Speicherzellen ausgelesenen Werte W A 1  bis  W A 6

Figure DE102017103347B4_0162
in den Vergleichern VGLij paarweise verglichen werden.The associated conjunctions result accordingly for the remaining assignments of the memory cells with two twos, two ones and two zeros. 12 of the 15 output values (inverted or not) that are not indefinite form the corresponding conjunctions. These conjunctions assume the value 1 precisely when the allocations corresponding to them and the values read from the memory cells are stored in the memory cells S 1 to S 6 W A 1 until W A 6
Figure DE102017103347B4_0162
be compared in pairs in the comparators VGL ij .

Beispiel: Transformation und Inverse TransformationExample: Transformation and Inverse Transformation

8 zeigt ein Ausführungsbeispiel, bei dem m Datenbits in Speicherzellen S1 bis Sn eines Speichers 803 gespeichert werden. Gezeigt ist eine Gruppe von n Speicherzellen S1 bis Sn, wobei

  • - in n1 Speicherzellen n1 erste Werte,
  • - in n2 Speicherzellen n2 zweite Werte, ⋮
  • - in nK Speicherzellen nK K-te Werte
gespeichert werden. Mit anderen Worten, es gibt eine Anzahl von K Teilgruppen. In jeder Teilgruppe wird eine bestimmte Anzahl gleicher Werte gespeichert. In unterschiedlichen Teilgruppe werden unterschiedliche Werte gespeichert. 8th FIG. 12 shows an embodiment in which m data bits are stored in memory cells S 1 to S n of a memory 803. FIG. A group of n memory cells S 1 to S n is shown, where
  • - in n 1 memory cells n 1 first values,
  • - in n 2 memory cells n 2 second values, ⋮
  • - in n K memory cells n K Kth values
get saved. In other words, there are K number of subgroups. A certain number of identical values are stored in each subgroup. Different values are stored in different subgroups.

Die m Datenbits, die in der Gruppe aus n Speicherzellen gespeichert werden, können auch als m-Bit-Byte oder einfach als Byte bezeichnet werden. Als Variable für die Anzahl der Datenbits werden die Buchstaben m oder k verwendet.The m bits of data stored in the group of n memory cells may also be referred to as an m-bit byte or simply a byte. The letters m or k are used as variables for the number of data bits.

Dabei gilt 2 m N

Figure DE102017103347B4_0163
mit ( n n 1 ) ( n n 1 n 2 ) ( n n 1 n K 1 n K ) = N .
Figure DE102017103347B4_0164
und m < n. Hierbei bezeichnet N die Anzahl der Möglichkeiten, die Gruppe von n Speicherzellen mit n1 ersten Werten, n2 zweiten Werten, usw. bis nK K-ten Werten zu belegen.applies 2 m N
Figure DE102017103347B4_0163
with ( n n 1 ) ( n n 1 n 2 ) ... ( n n 1 ... n K 1 n K ) = N .
Figure DE102017103347B4_0164
and m<n. In this case, N designates the number of possibilities for occupying the group of n memory cells with n 1 first values, n 2 second values, etc. up to n K K th values.

Eine Transformationsschaltung 801 führt eine Transformation TS(m,n) durch, die 2m Datenbits der Wortbreite m in 2m der N Werte z1, z2, ...,zn transformiert, wobei

  • - eine Anzahl n1 der Werte von z1, z2, ..., zn gleich 0 sind,
  • - eine Anzahl n2 der Werte von z1, z2, ..., zn gleich 1 sind, ... ⋮
  • - eine Anzahl nK der Werte von z1, z2, ... ,zn gleich K - 1 sind.
A transformation circuit 801 performs a transformation T S (m,n) which transforms 2 m data bits of word length m into 2 m of the N values z 1 , z 2 , ..., z n , where
  • - a number n 1 of the values of z 1 , z 2 , ..., z n are equal to 0,
  • - a number n 2 of the values of z 1 , z 2 , ..., z n are equal to 1, ... ⋮
  • - a number n K of the values of z 1 , z 2 , ... , z n are equal to K-1.

Werden nicht alle 2m der Datenbits der Wortbreite m benötigt, ist es möglich, nur die benötigten Datenbits zu transformieren und in den Speicherzellen zu speichern.If not all 2 m of the data bits of word length m are required, it is possible to transform only the required data bits and store them in the memory cells.

Die Transformationsschaltung 801 ist beispielsweise so konfiguriert, dass sie die Transformation T (m, n) von Bitwerten x1, ... , xm der Wortbreite m in Werte z1, ..., zn der Wortbreite n abbildet, die in den Speicherzellen S1 bis Sn gespeichert werden sollen, wobei

  • - n1 der Werte von z1,... ,zn den Wert 0,
  • - n2 der Werte von z1,... ,zn den Wert 1, ... ⋮
  • - nK der Werte von z1,... , zn den Wert (K - 1)
aufweisen.The transformation circuit 801 is configured, for example, to map the transformation T(m,n) of bit values x 1 ,...,x m of word width m into values z 1 ,...,z n of word width n contained in the memory cells S 1 to S n are to be stored, where
  • - n 1 of the values of z 1 ,... ,z n the value 0,
  • - n 2 of the values of z 1 ,... ,z n the value 1, ... ⋮
  • - n K of the values of z 1 ,... , z n the value (K - 1)
exhibit.

Die m Bits x1,...,xm können beispielsweise als Datenbits bezeichnet werden. Insbesondere ist es möglich, solche Datenbits zu unterscheiden von Werten, die in die Speicherzellen des Speichers geschrieben werden. Handelt es sich bei den Bits x1 bis xm beispielsweise um Bits eines Codewortes eines Fehlercodes zur Fehlererkennung oder Fehlerkorrektur, können diese Bits auch mindestens ein Prüfbit des Fehlercodes umfassen oder nur Prüfbits des Fehlercodes sein.The m bits x 1 ,...,x m can be referred to as data bits, for example. In particular, it is possible to distinguish such data bits from values that are written into the memory cells of the memory. If the bits x 1 to x m are, for example, bits of a code word of an error code for error detection or error correction, these bits can also include at least one check bit of the error code or just be check bits of the error code.

Die Speicherzellen S1 bis Sn werden ausgelesen und die ausgelesenen Werte z 1 '

Figure DE102017103347B4_0165
bis z n '
Figure DE102017103347B4_0166
werden mittels einer Transformationsschaltung 802, die eine Transformation T S 1 ( n , m )
Figure DE102017103347B4_0167
bereitstellt, in Datenbits x 1 '  bis  x m '
Figure DE102017103347B4_0168
tranformiert, wobei im fehlerfreien Fall gilt: x 1 ' , , x m ' = x 1 , , x m .
Figure DE102017103347B4_0169
The memory cells S 1 to S n are read out and the values read out e.g 1 '
Figure DE102017103347B4_0165
until e.g n '
Figure DE102017103347B4_0166
are made by a transform circuit 802 performing a transform T S 1 ( n , m )
Figure DE102017103347B4_0167
provides, in data bits x 1 ' until x m '
Figure DE102017103347B4_0168
transformed, whereby in the error-free case the following applies: x 1 ' , ... , x m ' = x 1 , ... , x m .
Figure DE102017103347B4_0169

Die Transformationsschaltung 801 und die Transformationsschaltung 802 sind vorzugsweise derart eingerichtet, dass für die Transformation T (m, n) und die hierzu inverse Transformation T-1 (n, m) gilt: T 1 ( n , m ) { T ( m , n ) [ x 1 , , x m ] } = x 1 , , x m .

Figure DE102017103347B4_0170
The transformation circuit 801 and the transformation circuit 802 are preferably set up in such a way that the following applies to the transformation T (m, n) and the inverse transformation T −1 (n, m): T 1 ( n , m ) { T ( m , n ) [ x 1 , ... , x m ] } = x 1 , ... , x m .
Figure DE102017103347B4_0170

Werden die Bits x1 bis xm als m-Bit-Byte bezeichnet, so wird ein m-Bit-Byte als ein Wort z1 bis zn in n Speicherzellen des Speichers gespeichert, wobei eine vorbestimmte Anzahl von n1 ersten Speicherzellen einen ersten Wert, eine vorbestimmte Anzahl von n2 zweiten Speicherzellen einen zweiten Wert, usw. und eine vorbestimmte Anzahl nK von K-ten Speicherzellen einen K-ten Wert speichern.If the bits x 1 to x m are referred to as m-bit bytes, an m-bit byte is stored as a word z 1 to z n in n memory cells of the memory, with a predetermined number of n 1 first memory cells having a first value, a predetermined number of n 2 second memory cells store a second value, etc. and a predetermined number n K of K th memory cells store a K th value.

Beispiel: Mit K = 2 speichern n1 erste Speicherzellen einen ersten Wert 0 und n2 zweite Speicherzellen speichern einen zweiten Wert 1. In den Speicherzellen S1 bis Sn werden dann Codewörter eines n2-aus-n-Codes gespeichert.Example: With K=2, n 1 first memory cells store a first value 0 and n 2 second memory cells store a second value 1. Code words of an n 2 -of-n code are then stored in the memory cells S 1 to S n .

Weiteres Beispiel: Können in jeder der Speicherzellen S1 bis Sn vier Werte gespeichert werden, ist es möglich in n1 Speicherzellen den ersten Wert, in n2 Speicherzellen den zweiten Wert, in n3 Speicherzellen den dritten Wert und in n4 Speicherzellen den vierten Wert zu speichern. Dabei gilt: n1 + n2 + n3 + n4 = n.Another example: If four values can be stored in each of the memory cells S 1 to S n , it is possible to store the first value in n 1 memory cells, the second value in n 2 memory cells, the third value in n 3 memory cells and the third value in n 4 memory cells store fourth value. Where: n 1 + n 2 + n 3 + n 4 = n.

Wie beschrieben, ist es möglich, physikalische Eigenschaften (z.B. physikalische Werte) von verschiedenen gelesenen Speicherzellen miteinander zu vergleichen. Dadurch können Fehlerwahrscheinlichkeiten zumindest teilweise reduziert werden. Nur wenn beide der beim Auslesen paarweise verglichenen Werte gleichzeitig in dem Überlappungsbereich von Häufigkeitsverteilungen der physikalischen Werte liegen, kann ein Fehler auftreten und nicht bereits dann, wenn nur ein einzelner Wert in so einem Überlappungsbereich liegt.As described, it is possible to compare physical properties (e.g. physical values) of different read memory cells with one another. As a result, error probabilities can be at least partially reduced. An error can only occur if both of the values compared in pairs during reading out are simultaneously in the overlapping area of frequency distributions of the physical values, and not when only a single value is in such an overlapping area.

Beispiel: Fig.9Example: Fig.9

9 zeigt ein Beispiel einer Speicherung von m-Bit-Bytes in jeweils n Speicherzellen, wobei m = 4, n = 6 und n1 = n2 = 3 gelten. In n1 = 3 Speicherzellen wird ein erster digitaler Wert 0 und in n2 = 3 zweiten Speicherzellen wird ein zweiter digitaler Wert 1 gespeichert. Das 4-Bit-Byte wird in 6 Speicherzellen als ein 6-Bit-Wort eines 3-aus-6-Codes gespeichert. 9 Figure 12 shows an example of storing m-bit bytes in n memory cells each, where m=4, n=6 and n 1 =n 2 =3. A first digital value 0 is stored in n 1 =3 memory cells and a second digital value 1 is stored in n 2 =3 second memory cells. The 4-bit byte is stored in 6 memory cells as a 6-bit word of a 3-of-6 code.

9 zeigt die Speicherung von drei 4-Bit-Bytes in jeweils 6 Speicherzellen eines Speichers 901, wobei die Speicherzellen beispielhaft digitale binäre Werte speichern können. Es werden 4-Bit-Bytes x1, x2, x3, x4 mittels einer Transformationsschaltung 902 in binäre Werte z1 bis z6 transformiert, die in Speicherzellen S1 bis S6 des Speichers 901 gespeichert werden. Weiterhin werden 4-Bit-Bytes x3, x6, x7, x8 mittels einer Transformationsschaltung 903 in binäre Werte z7 bis z12 transformiert, die in Speicherzellen S7 bis S12 des Speichers 901 gespeichert werden. Auch werden 4-Bit-Bytes x9, x10, x11, x12 mittels einer Transformationsschaltung 904 in binäre Werte z13 bis z18 transformiert, die in Speicherzellen S13 bis S18 des Speichers 901 gespeichert werden. 9 shows the storage of three 4-bit bytes in 6 memory cells each of a memory 901, the memory cells being able to store digital binary values by way of example. A transformation circuit 902 transforms 4-bit bytes x 1 , x 2 , x 3 , x 4 into binary values z 1 to z 6 , which are stored in memory cells S 1 to S 6 of memory 901 . Furthermore, 4-bit bytes x 3 , x 6 , x 7 , x 8 are transformed by a transformation circuit 903 into binary values z 7 to z 12 , which are stored in memory cells S 7 to S 12 of memory 901 . Also, 4-bit bytes x 9 , x 10 , x 11 , x 12 are transformed by a transformation circuit 904 into binary values z 13 to z 18 , which are stored in memory cells S 13 to S 18 of memory 901 .

Jede der Transformationsschaltungen 902 bis 904 führt eine Transformation T(4,6) durch. Die Transformation T(4, 6) kann in Form einer Tabelle beschrieben sein, die jedem der 16 möglichen 4-Bit-Werte ein unterschiedliches Codewort eines 3-aus-6-Codes zuordnet. Ein Beispiel ist in Tabelle 7 gezeigt. Tabelle 7 x 1 x 2 x 3 x 4 z 1 z 2 z 3 z 4 z 5 z 6 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 Each of the transform circuits 902 through 904 performs a transform T(4,6). The transformation T(4,6) can be described in the form of a table that associates a different codeword of a 3-of-6 code with each of the 16 possible 4-bit values. An example is shown in Table 7. Table 7 × 1 x2 _ × 3 x 4 z 1 z 2 z 3 z 4 z 5 z 6 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1

Eine solche Tabelle kann beispielsweise in Form einer kombinatorischen (logischen) Schaltung oder in Form eines Nurlesespeichers realisiert sein.Such a table can be implemented, for example, in the form of a combinatorial (logical) circuit or in the form of a read-only memory.

Sind die Werte oder die Speicherzellenwerte, die in den Speicherzellen gespeichert werden, binäre Werte, so können diese Werte auch als Speicherbits bezeichnet werden.If the values or the memory cell values that are stored in the memory cells are binary values, then these values can also be referred to as memory bits.

In dem beschriebenen Beispiel führt die Invertierung der Datenbits zu einer Invertierung der Speicherbits.In the example described, the inversion of the data bits results in an inversion of the memory bits.

Optional können verschiedene 4-Bit-Bytes mit funktional gleicher Transformation bzw. einer gleichwirkenden Transformationsschaltung in Speicherwerte, insbesondere Speicherbits, transformiert werden. Ebenso ist es möglich, verschiedene 4-Bit-Bytes mit funktional unterschiedlichen Transformationen oder Transformationsschaltungen in Speicherbits oder allgemein in Speicherwerte zu transformieren. Beispielsweise können zumindest zwei der Transformationsschaltungen 902 bis 904 unterschiedliche Transformationen implementieren. Entsprechend stellen dann die Transformationsschaltungen 905 bis 907 die passenden inverse Transformationen bereit.Optionally, different 4-bit bytes can be transformed into storage values, in particular storage bits, with a functionally identical transformation or a transformation circuit having the same effect. It is also possible to transform different 4-bit bytes into memory bits or generally into memory values with functionally different transformations or transformation circuits. For example, at least two of the transformation circuits 902-904 may implement different transformations. Correspondingly, the transformation circuits 905 to 907 then provide the appropriate inverse transformations.

Beispielsweise können Transformationen vorgesehen sein, bei denen eine Invertierung des 4-Bit-Bytes x zu einer Invertierung der digitalen Werte z führt.For example, transformations can be provided in which an inversion of the 4-bit byte x leads to an inversion of the digital values z.

Beim Auslesen aus dem Speicher 901 werden Speicherbits z 1 ' ,   z 2 ' ,   z 3 ' ,   z 4 ' ,   z 5 ' ,   z 6 '

Figure DE102017103347B4_0171
gelesen und durch die Transformationsschaltung 905 in 4-Bit Bytes x 1 ' ,   x 2 ' ,   x 3 ' ,   x 4 '
Figure DE102017103347B4_0172
x1, transformiert. Entsprechend werden Speicherbits z 7 ' ,   z 8 ' ,   z 9 ' ,   z 10 ' ,   z 11 ' ,   z 12 '
Figure DE102017103347B4_0173
z2, gelesen und durch die Transformationsschaltung 906 in 4-Bit Bytes x 5 ' ,   x 6 ' ,   x 7 ' ,   x 8 '
Figure DE102017103347B4_0174
x3, transformiert. Auch werden Speicherbits z 13 ' ,   z 14 ' ,   z 15 ' ,   z 16 ' ,   z 17 ' ,   z 18 '
Figure DE102017103347B4_0175
gelesen und durch die Transformationsschaltung 907 in 4-Bit Bytes x 9 ' ,   x 10 ' ,   x 11 ' ,   x 12 '
Figure DE102017103347B4_0176
transformiert.When read from memory 901, memory bits e.g 1 ' , e.g 2 ' , e.g 3 ' , e.g 4 ' , e.g 5 ' , e.g 6 '
Figure DE102017103347B4_0171
read and converted to 4-bit bytes by transform circuit 905 x 1 ' , x 2 ' , x 3 ' , x 4 '
Figure DE102017103347B4_0172
x 1 , transformed. Accordingly, memory bits e.g 7 ' , e.g 8th ' , e.g 9 ' , e.g 10 ' , e.g 11 ' , e.g 12 '
Figure DE102017103347B4_0173
z 2 , read and transformed by transform circuit 906 into 4-bit bytes x 5 ' , x 6 ' , x 7 ' , x 8th '
Figure DE102017103347B4_0174
x 3 , transformed. Also, memory bits e.g 13 ' , e.g 14 ' , e.g 15 ' , e.g 16 ' , e.g 17 ' , e.g 18 '
Figure DE102017103347B4_0175
read and converted to 4-bit bytes by transform circuit 907 x 9 ' , x 10 ' , x 11 ' , x 12 '
Figure DE102017103347B4_0176
transformed.

Jede der Transformationsschaltungen 905, 906 und 907 realisiert eine Transformation T S 1 ( 6,4 ) ,

Figure DE102017103347B4_0177
die eine inverse Transformation der in Tabelle 7 gezeigten Transformation ist, wonach jeweils n = 6 Zustandsbits z ( i n ) '
Figure DE102017103347B4_0178
(i = 1...3 und n = 1...6) in jeweils m = 4 Datenbits x ( i m ) '
Figure DE102017103347B4_0179
(i = 1...3 und m = 1... 4) transformiert werden.Each of the transform circuits 905, 906 and 907 realizes a transform T S 1 ( 6.4 ) ,
Figure DE102017103347B4_0177
which is an inverse transform of the transform shown in Table 7, where each n = 6 state bits e.g ( i n ) '
Figure DE102017103347B4_0178
(i = 1...3 and n = 1...6) in m = 4 data bits each x ( i m ) '
Figure DE102017103347B4_0179
(i = 1...3 and m = 1...4).

Aufgrund von Fehlern können sich die aus dem Speicher 901 ausgelesenen Speicherbits z ( i n ) '

Figure DE102017103347B4_0180
von den ursprünglich gespeicherten Bits z(i·n) unterscheiden. Somit können sich auch die gelesenen Datenbits x i m '
Figure DE102017103347B4_0181
von den geschriebenen Datenbits xi·m unterscheiden.The memory bits read from the memory 901 may differ due to errors e.g ( i n ) '
Figure DE102017103347B4_0180
differ from the originally stored bits z( i·n ). This means that the data bits read can also change x i m '
Figure DE102017103347B4_0181
differ from the written data bits x i·m .

Ist kein Fehler aufgetreten, dann gilt für die ersten 4 Datenbits x1 bis x4, die ersten 6 transformierten Bits z1 bis z6, die ersten 6 rückzutransformierenden Bits z 1 '  bis  z 6 '

Figure DE102017103347B4_0182
und die ersten 4 sich hieraus ergebenden Datenbits x 1 '  bis  x 4 ' :
Figure DE102017103347B4_0183
z 1 ,   z 2 ,   z 3 ,   z 4 ,   z 5 ,   z 6 = z 1 ' ,   z 2 ' ,   z 3 ' ,   z 4 ' ,   z 5 ' ,   z 6 '
Figure DE102017103347B4_0184
x 1 ,   x 2 ,   x 3 ,   x 4 = x 1 ' ,   x 2 ' ,   x 3 ' ,   x 4 ' .
Figure DE102017103347B4_0185
If no error has occurred, then the first 4 data bits x 1 to x 4 , the first 6 transformed bits z 1 to z 6 , the first 6 bits to be transformed back apply e.g 1 ' until e.g 6 '
Figure DE102017103347B4_0182
and the first 4 resulting data bits x 1 ' until x 4 ' :
Figure DE102017103347B4_0183
e.g 1 , e.g 2 , e.g 3 , e.g 4 , e.g 5 , e.g 6 = e.g 1 ' , e.g 2 ' , e.g 3 ' , e.g 4 ' , e.g 5 ' , e.g 6 '
Figure DE102017103347B4_0184
x 1 , x 2 , x 3 , x 4 = x 1 ' , x 2 ' , x 3 ' , x 4 ' .
Figure DE102017103347B4_0185

Für die zweiten 4 Datenbits und die dritten 4 Datenbits gilt dies entsprechend.This applies accordingly to the second 4 data bits and the third 4 data bits.

Der Vollständigkeit halber ist eine Tabelle 8 gezeigt, die eine Transformation T S 1 ( 6,4 )

Figure DE102017103347B4_0186
veranschaulicht. Hierbei handelt es sich um die inverse Abbildung der in der Tabelle 7 gezeigten Zuordnungen. Tabelle 8 z 1 '
Figure DE102017103347B4_0187
z 2 '
Figure DE102017103347B4_0188
z 3 '
Figure DE102017103347B4_0189
z 4 '
Figure DE102017103347B4_0190
z 5 '
Figure DE102017103347B4_0191
z 6 '
Figure DE102017103347B4_0192
x 1 '
Figure DE102017103347B4_0193
x 2 '
Figure DE102017103347B4_0194
x 3 '
Figure DE102017103347B4_0195
x 4 '
Figure DE102017103347B4_0196
1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0
For the sake of completeness, a table 8 is shown showing a transformation T S 1 ( 6.4 )
Figure DE102017103347B4_0186
illustrated. This is the inverse mapping of the mappings shown in Table 7. Table 8 e.g 1 '
Figure DE102017103347B4_0187
e.g 2 '
Figure DE102017103347B4_0188
e.g 3 '
Figure DE102017103347B4_0189
e.g 4 '
Figure DE102017103347B4_0190
e.g 5 '
Figure DE102017103347B4_0191
e.g 6 '
Figure DE102017103347B4_0192
x 1 '
Figure DE102017103347B4_0193
x 2 '
Figure DE102017103347B4_0194
x 3 '
Figure DE102017103347B4_0195
x 4 '
Figure DE102017103347B4_0196
1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 0 0

Für nicht in der Tabelle 8 aufgeführte Werte der Speicherbits z 1 '  bis  z 6 '

Figure DE102017103347B4_0197
können zugehörige beliebige Werte der Datenbits x 1 '  bis  x 4 '
Figure DE102017103347B4_0198
x1 für die Synthese der inversen Transformationsschaltung 905 vorgegeben werden. Es ist beispielsweise möglich, solche beliebigen Werte als unbestimmte Werte, die auch als „Don't-care“ Werte bezeichnet werden, bei der Optimierung durch ein Synthesetool festlegen zu lassen. Auch ist es eine Option, diese Werte zu 0 zu setzen.For memory bit values not listed in Table 8 e.g 1 ' until e.g 6 '
Figure DE102017103347B4_0197
can associated arbitrary values of the data bits x 1 ' until x 4 '
Figure DE102017103347B4_0198
x 1 for the synthesis of the inverse transform circuit 905 are given. It is possible, for example, to have such arbitrary values specified as indeterminate values, which are also referred to as "don't care" values, during the optimization by a synthesis tool. It is also an option to set these values to 0.

Fehlererkennung und/oder FehlerkorrekturError detection and/or error correction

Sind fehlerhaften Speicherbits durch die inverse Transformationsschaltung 905 fehlerhafte Datenbits zugeordnet, dann kann ein fehlerhaftes 4-Bit-Byte durch einen Fehlercode erkannt und/oder korrigiert werden. Dies wird nachfolgend beispielhaft erläutert.If erroneous memory bits are associated with erroneous data bits by the inverse transformation circuit 905, then an erroneous 4-bit byte can be recognized and/or corrected by an error code. This is explained below by way of example.

10 zeigt eine beispielhafte Schaltungsanordnung, die eine Fehlererkennung oder eine kombinierte Fehlererkennung mit Fehlerkorrektur ermöglicht, wobei die Datenbits durch eine Transformationsschaltung in Speicherbits transformiert werden, die in Speicherzellen eines Speichers gespeichert werden. 10 shows an exemplary circuit arrangement that enables error detection or combined error detection with error correction, the data bits being transformed by a transformation circuit into memory bits, which are stored in memory cells of a memory.

Datenbits x liegen am Eingang eines Coders 1001 an, an dessen Ausgang entsprechend einem Fehlercode C1 codierte Bits y = Cod(x) bereitgestellt werden.Data bits x are present at the input of a coder 1001, at the output of which bits y=Cod(x) coded according to an error code C 1 are provided.

Es ist möglich, dass der Fehlercode C1 ein Bytefehler korrigierender und/oder erkennender Code, beispielsweise ein Reed-Solomon Code, ist. Es ist auch möglich, dass der Fehlercode C1 ein Bitfehler korrigierender und/oder erkennender Code, beispielsweise ein BCH-Code, ein Hsiao-Code, ein Hamming-Code, ein Low-Density-Parity-Code oder ein anderer Code ist.It is possible that the error code C 1 is a byte error correcting and/or detecting code, for example a Reed-Solomon code. It is also possible that the error code C 1 is a code that corrects and/or detects bit errors, for example a BCH code, a Hsiao code, a Hamming code, a low-density parity code or another code.

Die am Ausgang des Coders 1001 ausgegebenen Bits (oder Bytes) y = Cod(x) werden mittels einer Transformationsschaltung 1002 in digitale Werte z(y) transformiert, die in Speicherzellen eines Speichers 1003 geschrieben werden. Die Transformationsschaltung 1002 stellt eine Transformation TS bereit.The bits (or bytes) y=Cod(x) output at the output of the coder 1001 are transformed into digital values z(y) by means of a transformation circuit 1002, which values are written into memory cells of a memory 1003. The transformation circuit 1002 provides a transformation T S .

In einer Gruppe von jeweils n Speicherzellen werden n1 erste Werte in n1 ersten Speicherzellen, n2 zweite Werte in n2 zweiten Speicherzellen, usw. bis nK K-te Werte in nK K-ten Speicherzellen gespeichert. Dabei gilt: n1 + n2 + ... + nK = n.In a group of n memory cells each, n 1 first values are stored in n 1 first memory cells, n 2 second values in n 2 second memory cells, etc. up to n K K th values in n K K th memory cells. The following applies: n 1 + n 2 + ... + n K = n.

In einem nächsten Schritt werden Werte z'(y) aus den entsprechenden Speicherzellen des Speichers 1003 ausgelesen. Es ist möglich, dass sich die Werte z'(y) aufgrund von mindestens einem Fehler von den eingeschriebenen Werten z(y) unterscheiden. Ist kein Fehler aufgetreten, gilt z(y) = z'(y).In a next step, values z′(y) are read from the corresponding memory cells of memory 1003 . It is possible that the values z'(y) differ from the written values z(y) due to at least one error. If no error has occurred, z(y) = z'(y) applies.

Die aus dem Speicher 1003 ausgelesenen Werte z'(y) werden durch eine inverse Transformationsschaltung 1004, die eine Transformation T S 1

Figure DE102017103347B4_0199
bereitstellt, in binäre Werte y' transformiert.The z'(y) values read from the memory 1003 are transformed by an inverse transform circuit 1004, which performs a transform T S 1
Figure DE102017103347B4_0199
provides, transformed into binary values y'.

Ist kein Fehler aufgetreten, gilt y ' = y = C o d ( x ) .

Figure DE102017103347B4_0200
Ist ein Fehler aufgetreten, gilt y ' y = C o d ( x ) .
Figure DE102017103347B4_0201
If no error has occurred, y ' = y = C O i.e ( x ) .
Figure DE102017103347B4_0200
If an error has occurred, y ' y = C O i.e ( x ) .
Figure DE102017103347B4_0201

Ein Korrekturwertbildner 1005 bildet entsprechend dem Fehlercode C1 einen Korrekturwert e entsprechender Wortbreite, wobei die Komponenten des Korrekturwerts e mit den Werten y' in einer XOR-Schaltung 1007 komponentenweise XORverknüpft werden. Die XOR-Schaltung ist eine Schaltung die eine Exklusiv-Oder-Verknüpfung der Eingangssignale durchführt und das Ergebnis dieser Verknüpfung am Ausgang bereitstellt. Die XOR-Schaltung liefert am Ausgang dann den logischen Wert 1, wenn die Signale an den Eingängen gleich sind. Sind die Signale an den Eingängen unterschiedlich, liefert die XOR-Schaltung am Ausgang den logischen Wert 0.A correction value generator 1005 forms a correction value e of corresponding word length in accordance with the error code C 1 , the components of the correction value e being XORed with the values y′ in an XOR circuit 1007 component by component. The XOR circuit is a circuit that performs an exclusive OR operation on the input signals and provides the result of this operation at the output. The XOR circuit supplies the logical value 1 at the output if the signals at the inputs are the same. If the signals at the inputs are different, the XOR circuit supplies the logical value 0 at the output.

Am Ausgang der XOR-Schaltung 1007 wird ein korrigierter Wert ycor bereitgestellt. Ist ein durch den Code C1 mittels des Korrekturwertbildners 1005 korrigierbarer Fehler aufgetreten, sind die korrigierten Bits gleich den codierten Bits, d.h. y c o r = y = C o d ( x ) .

Figure DE102017103347B4_0202
A corrected value y cor is provided at the output of the XOR circuit 1007 . If an error that can be corrected by the code C 1 using the correction value generator 1005 has occurred, the corrected bits are equal to the coded bits, ie y c O right = y = C O i.e ( x ) .
Figure DE102017103347B4_0202

Weiterhin ist eine Fehlererkennungsschaltung 1006 gezeigt, anhand derer bestimmbar ist, ob ein Fehler und/oder ein bestimmter Typ eines Fehlers, der unter Verwendung des Fehlercodes C1 erkennbar ist, vorliegt. Der Fehlererkennungsschaltung 1006 wird der Wert y' zugeführt und die Fehlererkennungsschaltung 1006 gibt eine Fehlerinformation 1008 aus.Furthermore, an error detection circuit 1006 is shown, which can be used to determine whether an error and/or a specific type of error that can be identified using the error code C 1 is present. The error detection circuit 1006 is supplied with the value y′ and the error detection circuit 1006 outputs error information 1008 .

Ist der Fehlercode beispielsweise ein 1-Bytefehler korrigierender und 2-Bytefehler erkennender Code, dann kann die Fehlererkennungsschaltung 1006 verschiedene Fehlerinformationen 1008 ausgeben, je nachdem, ob kein Fehler, ein 1-Bytefehler oder ein 2-Bytefehler aufgetreten ist. Beispielsweise kann die Fehlerinformation 1008 als eine Bitfolge 00, 01 oder 10 (in diesem Beispiel also eine Bitfolge mit zwei Bits) codiert sein.If the error code is, for example, a 1-byte error-correcting code and 2-byte error-detecting code, then the error detection circuit 1006 can output different error information 1008 depending on whether no error, a 1-byte error or a 2-byte error has occurred. For example, the error information 1008 can be encoded as a bit sequence 00, 01 or 10 (ie a bit sequence with two bits in this example).

Optional können die Fehlererkennungsschaltung 1006 und die Korrekturwertbildner 1005 gemeinsam oder teilweise gemeinsam realisiert sein.Optionally, the error detection circuit 1006 and the correction value generator 1005 can be implemented jointly or partially jointly.

Ist der Fehlercode C1 ein separierbarer Code, bei dem die Datenbits bei der Codierung durch den Coder 1001 nicht verändert werden, dann sind, wenn kein Fehler aufgetreten ist oder wenn ein durch den Fehlercode C1 korrigierbarer Fehler aufgetreten ist, von der XOR-Schaltung 1006 ausgegebene Bits gleich den entsprechenden Datenbits, die in den Coder 1001 eingegeben wurden und die nach ihrer Transformation durch die Transformationsschaltung 1002 in dem Speicher 1003 gespeichert wurden.If the error code C 1 is a separable code in which the data bits are not changed during coding by the encoder 1001, then if no error has occurred or if an error which can be corrected by the error code C 1 has occurred, from the XOR circuit 1006 bits output equal to the corresponding data bits input to encoder 1001 and stored in memory 1003 after being transformed by transform circuit 1002.

11 zeigt eine alternative Schaltungsanordnung, die eine Fehlerkorrektur oder eine Fehlererkennung ggf. mit Fehlerkorrektur ermöglicht. 11 shows an alternative circuit arrangement that enables error correction or error detection, possibly with error correction.

Datenbits x liegen am Eingang einer Transformationsschaltung 1101 an und werden in Werte z(x) transformiert. Die Werte z(x) der Transformationsschaltung 1101 liegen am Eingang eines Coders 1102 an, der derart eingerichtet ist, dass an seinem Ausgang unter Verwendung eines Fehlercodes C2 codierte Daten Cod(z(x)) bereitgestellt werden.Data bits x are present at the input of a transformation circuit 1101 and are transformed into values z(x). The values z(x) of the transformation circuit 1101 are present at the input of a coder 1102, which is set up in such a way that data Cod(z(x)) coded using an error code C 2 are provided at its output.

Der Coder 1102 kann eine Kodierfunktion und eine Prüfbit-Transformierfunktion bereitstellen.The encoder 1102 can provide an encoding function and a check bit transforming function.

Beispielhaft soll angenommen werden, dass der Fehlercode C2 ein separierbarer Code ist, so dass die Werte z(x), die am Eingang des Coders 1102 anliegen, in den von dem Coder bestimmten Ausgabedaten Cod(z(x)) unverändert enthalten und um Prüfbits entsprechend dem Fehlercode C2 ergänzt sind.As an example, it should be assumed that the error code C 2 is a separable code, so that the values z(x) that are present at the input of the coder 1102 contain unchanged in the output data Cod(z(x)) determined by the coder and um Check bits corresponding to error code C 2 have been added.

Der Coder 1102 ist in diesem Beispiel so ausgestaltet, dass er die an seinem Eingang anliegenden Werte z(x) unverändert an seinem Ausgang (hierbei kann der Eingang als auch der Ausgang jeweils mehrere Leitungen aufweisen, wobei jede Leitung einem Bit zugeordnet ist) ausgibt und zusätzlich Prüfbits entsprechend dem Fehlercode C2 aus den Bits z(x) bildet und diese Prüfbits vor der Speicherung in einen Speicher 1103 noch transformiert.In this example, the coder 1102 is designed in such a way that it outputs the values z(x) present at its input unchanged at its output (in this case, the input and the output can each have a plurality of lines, with each line being assigned to a bit) and additionally forms check bits corresponding to the error code C 2 from the bits z(x) and transforms these check bits before storing them in a memory 1103.

Die Werte z(x) bilden beispielsweise Gruppen von n Bits, die aus Codewörtern eines n1-aus-n-Codes bestehen. Die von dem Coder 1102 bereitgestellten transformierten Prüfbits können dabei ebenfalls n1-aus-n-Codewörter sein oder solche umfassen.For example, the values z(x) form groups of n bits consisting of code words of an n 1 -of-n code. The transformed check bits provided by the coder 1102 can likewise be or include n 1 out of n code words.

Es ist beispielsweise möglich, dass die durch den Fehlercode C2 aus den Bits z(x) bestimmten Prüfbits durch den Coder 1102 als Bits bereitgestellt werden, bei denen jeweils zwei Bits zueinander komplementär sind. Dabei wird jedes Prüfbit in zwei Bits transformiert und in zwei Speicherzellen gespeichert. Beispielsweise kann ein Prüfbit 1 in die Bits 10 und ein Prüfbit 0 in die Bits 01 transformiert und in jeweils zwei Speicherzellen gespeichert werden.It is possible, for example, for the check bits determined from the bits z(x) by the error code C 2 to be provided by the coder 1102 as bits in which two bits are complementary to one another. Each check bit is transformed into two bits and stored in two memory cells. For example, a check bit 1 can be transformed into bits 10 and a check bit 0 can be transformed into bits 01 and stored in two memory cells each.

Auch andere Transformationen der Prüfbits in Speicherzellenwerte sind möglich. So ist es beispielsweise denkbar, die Prüfbits verdreifacht oder doppelt und/oder in anderer Weise fehlertolerant in den Speicher 1103 zu schreiben.Other transformations of the check bits into memory cell values are also possible. It is thus conceivable, for example, to write the check bits into the memory 1103 in triplicate or twice and/or in some other way in an error-tolerant manner.

In einer Gruppe von jeweils n Speicherzellen des Speichers 1103 werden n1 erste Werte in einer ersten Anzahl von n1 ersten Speicherzellen, n2 zweite Werte in einer zweiten Anzahl von n2 zweiten Speicherzellen, usw. bis nK K-te Werte in einer vorbestimmten K-ten Anzahl von nK K-ten Speicherzellen gespeichert. Dabei gilt: n1 +n2 +... +nK = n.In a group of n memory cells of the memory 1103, n 1 first values in a first number of n 1 first memory cells become n 2 second values in a second number of n 2 second memories cells, etc. up to n KK th values are stored in a predetermined K th number of n KK th memory cells. The following applies: n 1 +n 2 +... +n K = n.

In der in 10 gezeigten Schaltungsanordnung erfolgt die Fehlerverarbeitung unter Verwendung der Datenbits. Im Gegensatz dazu erfolgt in der in 11 gezeigten Schaltungsanordnung die Fehlerverarbeitung anhand der Speicherzellenwerte, die aus den Datenbits durch die Transformationsschaltung 1101 bestimmt sind. Die Speicherzellenwerte sind beispielsweise Speicherbits. Unter Fehlerverarbeitung sei hierbei Fehlererkennung und/oder Fehlerkorrektur verstanden.in the in 10 In the circuit arrangement shown, the error processing is carried out using the data bits. In contrast, in the in 11 circuit arrangement shown, the error processing based on the memory cell values, which are determined from the data bits by the transformation circuit 1101. The memory cell values are memory bits, for example. Error processing is understood here as error detection and/or error correction.

12 zeigt ein weiteres Beispiel einer Variante der in 11 gezeigten Schaltungsanordnung. 12 shows another example of a variant of the in 11 circuit arrangement shown.

Datenbits x liegen am Eingang einer Transformationsschaltung 1201 an und werden in Codewörter [3 - aus - 6]1 transformiert, wobei jeweils 4 Bits der Datenbits in ein 3-aus-6-Codewort transformiert werden. Diese 3-aus-6-Codewörter [3 - aus - 6]1 werden am Ausgang der Transformationsschaltung 1201 bereitgestellt. Jedem der 16 4-Bit-Werte ist durch die Transformationsschaltung 1201 umkehrbar eindeutig ein Codewort des 3-aus-6-Codes zugeordnet.Data bits x are present at the input of a transformation circuit 1201 and are transformed into code words [3-of-6] 1 , with each 4 bits of the data bits being transformed into a 3-of-6 code word. These 3-of-6 codewords [3 - out - 6] 1 are provided at the output of transform circuit 1201 . A code word of the 3-of-6 code is reversibly assigned to each of the 16 4-bit values by the transformation circuit 1201 .

Der Ausgang der Transformationsschaltung 1201 ist mit dem Eingang eines Prüfbitbildners 1202 verbunden, der Prüfbits Pr für die Bits der 3-aus-6-Codewörter entsprechend einem Fehlercode bestimmt und an seinem Ausgang bereitstellt.The output of the transformation circuit 1201 is connected to the input of a check bit generator 1202 which determines check bits Pr for the bits of the 3-out-of-6 code words corresponding to an error code and makes them available at its output.

Beispielsweise erzeugt der Prüfbitbildner 1202 Prüfbits eines BCH-Codes. Die Bits, die von der Transformationsschaltung 1201 ausgegeben werden und die Prüfbits, die von dem Prüfbitbildner 1202 ausgegeben werden, bilden dann im fehlerfreien Fall ein Codewort des BCH-Codes.For example, the check bit generator 1202 generates check bits of a BCH code. The bits that are output by the transformation circuit 1201 and the check bits that are output by the check bit generator 1202 then form a code word of the BCH code if there are no errors.

Entsprechend kann anstatt des BCH-Codes auch ein anderer Fehlercode eingesetzt werden. Auch können mehrere Fehlercodes in Kombination miteinander verwendet werden.Accordingly, another error code can also be used instead of the BCH code. Several error codes can also be used in combination with one another.

Der Ausgang der Transformationsschaltung 1201 ist ebenfalls mit dem Eingang eines Speichers 1204 verbunden, so dass die aus den Datenbits mittels der Transformationsschaltung 1201 erhaltenen 3-aus-6-Codewörter (auch ohne Prüfbits) in dem Speicher 1204 speicherbar sind.The output of the transformation circuit 1201 is also connected to the input of a memory 1204, so that the 3-out-of-6 code words obtained from the data bits by means of the transformation circuit 1201 (also without check bits) can be stored in the memory 1204.

Der Ausgang des Prüfbitbildners 1202 ist mit dem Eingang eines Prüfbittransformierers 1203 verbunden, der die bereitgestellten Prüfbits in 3-aus-6-Codewörter [3 - aus - 6]2 transformiert und an seinem Ausgang bereitstellt.The output of the check bit generator 1202 is connected to the input of a check bit transformer 1203, which transforms the check bits provided into 3-of-6 code words [3-of-6] 2 and makes them available at its output.

Der Ausgang des Prüfbittransformierers 1203 ist mit dem Eingang des Speichers 1204 verbunden. Beispielsweise können hierfür separate Dateneingänge des Speichers genutzt werden. Somit können die 3-aus-6-Codewörter [3 - aus - 6]2, die basierend auf den Prüfbits Pr von dem Prüfbittransformierer 1203 generiert wurden, in dem Speicher 1204 gespeichert werden.The output of check bit transformer 1203 is connected to the input of memory 1204 . For example, separate data inputs of the memory can be used for this. Thus, the 3-of-6 codewords [3-of-6] 2 generated by the check bit transformer 1203 based on the check bits Pr can be stored in the memory 1204. FIG.

Im fehlerfreien Fall werden in dem Speicher 1204 solche Bits gespeichert, die 3-aus-6-Codewörtern sind. Diese Bits werden auch als Speicherzellenwerte bezeichnet.In the error-free case, those bits are stored in the memory 1204 which are 3-of-6 code words. These bits are also referred to as memory cell values.

Aus den Datenbits x werden durch die Transformationsschaltung 1201 Codewörter [3 - aus - 6]1 des 3-aus-6-Codes gebildet, die in den Speicher 1204 geschrieben werden. Diese Codewörter [3 - aus - 6]1 bilden Speicherzellenwerte für Speicherzellen des Speichers 1204.From the data bits x, the transformation circuit 1201 forms code words [3-of-6] 1 of the 3-of-6 code, which are written into the memory 1204. These code words [3 - out - 6] 1 form memory cell values for memory cells of memory 1204.

Aus den Bits der Codewörter [3 - aus - 6]1 werden durch einen Prüfbitbildner 1202 entsprechend dem verwendeten Fehlercode Prüfbits Pr bestimmt und an seinem Ausgang ausgegeben. Der Prüfbittransformierer 1203 transformiert die Prüfbits Pr in Codewörter [3 - aus - 612 des 3-aus-6-Codes. Diese Codewörter [3 - aus - 6]2 bilden Speicherzellenwerte für Speicherzellen des Speichers 1204, die aus den Prüfbits Pr gebildet wurden.From the bits of the code words [3-out-6] 1 , check bits Pr are determined by a check bit generator 1202 according to the error code used and are output at its output. The check bit transformer 1203 transforms the check bits Pr into codewords [3-of-61 2 of the 3-of-6 code. These code words [3 - out - 6] 2 form memory cell values for memory cells of the memory 1204, which were formed from the check bits Pr.

In dem Speicher 1204 werden also die Codewörter [3 - aus - 6]1 und die Codewörter [3 - aus - 6]2 gespeichert. Beim Speichern oder beim Lesen können Bitfehler auftreten, anhand derer die Codewörter [3 - aus - 6]1 und die Codewörter [3 - aus - 6]2 in fehlerhafte Bits verfälscht werden.Thus, in the memory 1204, the code words [3 - out - 6] 1 and the code words [3 - out - 6] 2 are stored. Bit errors can occur during storage or reading, which falsify code words [3 - off - 6] 1 and code words [3 - off - 6] 2 into erroneous bits.

Beim Lesen werden Bits [ 3 a u s 6 ] 1 ' ,

Figure DE102017103347B4_0203
die den Datenbits zugeordnet sind und Bits [ 3 a u s 6 ] 2 ' ,
Figure DE102017103347B4_0204
die den Prüfbits der transformierten Datenbits zugeordnet sind, aus dem Speicher 1204 ausgegeben. Die Bits [ 3 a u s 6 ] 1 '
Figure DE102017103347B4_0205
als auch die Bits [ 3 a u s 6 ] 2 '
Figure DE102017103347B4_0206
können Bitfehler enthalten. Im fehlerfreien Fall gilt: [ 3 a u s 6 ] 1 ' = [ 3 a u s 6 ] 1
Figure DE102017103347B4_0207
[ 3 a u s 6 ] 2 ' = [ 3 a u s 6 ] 2 .
Figure DE102017103347B4_0208
When reading, bits [ 3 a and s 6 ] 1 ' ,
Figure DE102017103347B4_0203
associated with the data bits and bits [ 3 a and s 6 ] 2 ' ,
Figure DE102017103347B4_0204
associated with the check bits of the transformed data bits are output from memory 1204. the bits [ 3 a and s 6 ] 1 '
Figure DE102017103347B4_0205
as well as the bits [ 3 a and s 6 ] 2 '
Figure DE102017103347B4_0206
may contain bit errors. In the error-free case: [ 3 a and s 6 ] 1 ' = [ 3 a and s 6 ] 1
Figure DE102017103347B4_0207
[ 3 a and s 6 ] 2 ' = [ 3 a and s 6 ] 2 .
Figure DE102017103347B4_0208

Der Ausgang des Speichers 1204, an dem die Bits [ 3 a u s 6 ] 2 '

Figure DE102017103347B4_0209
ausgegeben werden, ist mit dem Eingang eines inversen Prüfbittransformierers 1205 verbunden, der basierend auf den Bits [ 3 a u s 6 ] 2 '
Figure DE102017103347B4_0210
eventuell fehlerhaften Prüfbits Pr' bestimmt und sie an seinem Ausgang bereitstellt. Der inverse Prüfbittransformierer 1205 implementiert eine inverse Transformation zu der Transformation, die der Prüfbittransformierer 1203 umsetzt.The output of memory 1204, where the bits [ 3 a and s 6 ] 2 '
Figure DE102017103347B4_0209
is connected to the input of a check bit inverse transformer 1205 which is calculated based on the bits [ 3 a and s 6 ] 2 '
Figure DE102017103347B4_0210
any faulty check bits Pr' and makes them available at its output. Inverse check bit transformer 1205 implements an inverse transform to the transform that check bit transformer 1203 implements.

Im fehlerfreien Fall gibt der inverse Prüfbittransformierer 1205 an seinem Ausgang die gleichen Prüfbits Pr aus, die von dem Prüfbitbildner 1202 gebildet wurden.If there are no errors, the inverse check bit transformer 1205 outputs the same check bits Pr that were formed by the check bit generator 1202 at its output.

Die eventuell fehlerhaften Prüfbits Pr' sind die Prüfbits der Bits [ 3 a u s 6 ] 1 ' ,

Figure DE102017103347B4_0211
die den Datenbits entsprechen. Somit können diese eventuell fehlerhaften Prüfbits Pr' zur Fehlerkorrektur der eventueller Bitfehler der Bits [ 3 a u s 6 ] 1 '
Figure DE102017103347B4_0212
entsprechend dem verwendeten 3-aus-6-Codes genutzt werden.The possibly erroneous check bits Pr' are the check bits of the bits [ 3 a and s 6 ] 1 ' ,
Figure DE102017103347B4_0211
corresponding to the data bits. Thus, these possibly erroneous check bits Pr' can be used for error correction of the possible bit errors of the bits [ 3 a and s 6 ] 1 '
Figure DE102017103347B4_0212
according to the 3-of-6 code used.

Der Ausgang des Speichers 1204 und der Ausgang des inversen Prüfbittransformierers 1205 ist jeweils mit einem Eingang eines Korrektors 1206 verbunden. Der Korrektor 1206 korrigiert die Bits [ 3 a u s 6 ] 1 '

Figure DE102017103347B4_0213
in korrigierte Bits [ 3 a u s 6 ] 1 c o r
Figure DE102017103347B4_0214
entsprechend dem verwendeten Fehlercode.The output of the memory 1204 and the output of the inverse check bit transformer 1205 are each connected to an input of a corrector 1206 . Corrector 1206 corrects the bits [ 3 a and s 6 ] 1 '
Figure DE102017103347B4_0213
into corrected bits [ 3 a and s 6 ] 1 c O right
Figure DE102017103347B4_0214
according to the error code used.

Sind eventuell aufgetretene Fehler durch den verwendeten Fehlercode korrigierbar, gilt: [ 3 a u s 6 ] 1 c o r = [ 3 a u s 6 ] 1 .

Figure DE102017103347B4_0215
If any errors that have occurred can be corrected by the error code used, the following applies: [ 3 a and s 6 ] 1 c O right = [ 3 a and s 6 ] 1 .
Figure DE102017103347B4_0215

An dem Ausgang des Korrektors 1206 werden diese Bits [ 3 a u s 6 ] 1 c o r

Figure DE102017103347B4_0216
bereitgestellt. Der Ausgang des Korrektors 1206 ist mit dem Eingang einer inversen Transformationsschaltung 1207 verbunden, die eine Transformation durchführt, die invers zu der von der Transformationsschaltung 1201 durchgeführten Transformation ist. An dem Ausgang der inversen Transformationsschaltung 1207 werden die Datenbits xcor bereitgestellt. Dabei handelt es sich ggf. um korrigierte Datenbits oder - falls kein Fehler aufgetreten ist - um die Datenbits x.At the output of the corrector 1206 these bits [ 3 a and s 6 ] 1 c O right
Figure DE102017103347B4_0216
provided. The output of the corrector 1206 is connected to the input of an inverse transform circuit 1207 which performs a transform which is the inverse of the transform performed by the transform circuit 1201 . The data bits x cor are provided at the output of the inverse transformation circuit 1207 . These may be corrected data bits or - if no error has occurred - the data bits x.

Liegt kein Fehler vor oder ist ein aufgetretener Fehler durch den Fehlercode C korrigierbar, gilt x c o r = x .

Figure DE102017103347B4_0217
If there is no error or if an error that has occurred can be corrected by error code C, the following applies x c O right = x .
Figure DE102017103347B4_0217

Die beschriebene Schaltungsanordnung ist ein Ausführungsbeispiel, bei dem die Fehlerkorrektur von Speicherzellenwerten durch einen Fehlercode erfolgt. Die binären Speicherzellenwerte sind in diesem Ausführungsbeipiel Codewörter eines 3-aus-6-Codes. Der 3-aus-6-Code dient zur Bildung von Speicherzellenwerten. Die Fehlerkorrektur der Speicherzellenwerte kann mit einem Fehlercode, beispielsweise einem Hamming-Code, einem Hsiao-Code, einem BCH-Code oder einem anderen Code erfolgen.The circuit arrangement described is an exemplary embodiment in which the error correction of memory cell values takes place using an error code. In this exemplary embodiment, the binary memory cell values are code words of a 3-of-6 code. The 3-of-6 code is used to form memory cell values. The memory cell values can be error-corrected using an error code, for example a Hamming code, a Hsiao code, a BCH code or another code.

Somit werden Datenbits in Speicherzellenwerte transformiert und für die Bits der Speicherzellenwerte werden Prüfbits eines Fehlercodes bestimmt. Diese Prüfbits werden nun ebenfalls in Speicherzellenwerte transformiert. Die Speicherzellenwerte der transformierten Bits und der transformierten Prüfbits werden in dem Speicher gespeichert. Bei Auslesen aus dem Speicher werden dann zunächst die Speicherzellenwerte, die den Prüfbits entsprechen, in Prüfbits zurück transformiert. Die Speicherzellenwerte, die den Datenbits entsprechen, werden unter Verwendung der zurück transformierten Prüfbits und unter Verwendung des Fehlercodes in einem üblichen Korrektor in korrigierte Speicherzellenwerte korrigiert. Die korrigierten Speicherzellenwerte, die den Datenbits entsprechen, können dann durch eine inverse Transformation in korrigierte Datenbits zurück transformiert werden.Thus, data bits are transformed into memory cell values and check bits of an error code are determined for the bits of the memory cell values. These check bits are now also transformed into memory cell values. The memory cell values of the transformed bits and the transformed check bits are stored in memory. When reading from the memory, the memory cell values that correspond to the check bits are then first transformed back into check bits. The memory cell values corresponding to the data bits are corrected to corrected memory cell values in a conventional corrector using the retransformed check bits and using the error code. The corrected memory cell values, which correspond to the data bits, can then be transformed back into corrected data bits by an inverse transformation.

Neben dem beschriebenen Speicherzellenwerten und dem beschriebenen 3-aus-6-Code können auch andere Speicherzellenwerte, beispielsweise Codewörter eines 4-aus-8-Codes, entsprechend verwendet werden.In addition to the described memory cell values and the described 3-out-of-6 code, other memory cell values, for example code words of a 4-out-of-8 code, can also be used accordingly.

Im Unterschied zu dem in 12 beschriebenen Ausführungsbeipiel erfolgt in dem in 10 beschriebenen Ausführungsbeispiel eine Fehlerkorrektur der Datenbits. Aus den Datenbits werden Prüfbits eines Fehlercodes bestimmt. Die Datenbits und die so bestimmten Prüfbits werden gemeinsam in Speicherzellenwerte transformiert und in dem Speicher gespeichert. Bei Auslesen aus dem Speicher werden eventuell fehlerhafte Speicherzellenwerte zunächst in eventuell fehlerhafte Datenbits und eventuell fehlerhafte Prüfbits zurück transformiert und die eventuell fehlerhaften Datenbits werden unter Verwendung des verwendeten Fehlercodes korrigiert.In contrast to the in 12 The exemplary embodiment described takes place in the 10 described embodiment, an error correction of the data bits. Check bits of an error code are determined from the data bits. The data bits and the check bits so determined are transformed together into memory cell values and stored in the memory. When reading out from the memory, any incorrect memory cell values are first transformed back into possibly incorrect data bits and possibly incorrect check bits, and the possibly incorrect data bits are corrected using the error code used.

Beispiel: 3-aus-6-CodeExample: 3 out of 6 code

Nachfolgend wird beispielhaft eine Gruppe von n = 6 Speicherzellen angenommen mit zwei Teilgruppen je n1 = n2 = 3 Speicherzellen. Somit können in den n = 6 Speicherzellen 3-aus-6-Codewörter mit jeweils dreimal dem binären Wert 0 und dreimal dem binären Wert 1 gespeichert werden.A group of n=6 memory cells is assumed below by way of example, with two subgroups each having n 1 =n 2 =3 memory cells. Thus, 3-out-of-6 code words, each with three times the binary value 0 and three times the binary value 1, can be stored in the n=6 memory cells.

Es gibt ( 6 3 ) = 20

Figure DE102017103347B4_0218
verschiedene Codewörter mit drei Nullen und drei Einsen, so dass es 20 unterschiedliche Werte gibt, die als 3-aus-6-Codewörter in 6 Speicherzellen gespeichert werden können. Da 24 = 16 < 20 gilt, können in den 6 Speicherzellen 4 Datenbits gespeichert werden.There are ( 6 3 ) = 20
Figure DE102017103347B4_0218
different codewords with three zeros and three ones, so there are 20 different values that can be stored as 3 out of 6 codewords in 6 memory cells. Since 2 4 = 16 < 20, 4 bits of data can be stored in the 6 memory cells.

Eine mögliche Zuordnung von in 6 Speicherzellen S1 bis S6 als 3-aus-6-Codeworte gespeicherte binäre 4-Bit-Werte zeigt Tabelle 9. Die letzte Spalte der Tabelle 9 ist mit „4-Bit“ überschrieben; dort werden die 4-Bit-Werte bitweise von 0 bis 16 (vergleiche vorletzte Spalte) hochgezählt. Zu jedem 4-Bit-Wert gibt es genau ein Codewort des hier beispielhaft verwendeten 3-aus-6-Codes. Dabei zeichnet sich der 3-aus-6 Code dadurch aus, dass in jedem Codewort genau dreimal der Wert 1 (oder der Wert 0) vorkommt. Für die n = 6 Speicherzellen gibt es 20 - 16 = 4 Codewörter, die „übrig“ sind, d.h. keinen zugeordneten 4-Bit-Wert haben. Hier in dem Beispiel der Tabelle 9 sind das die letzten vier Zeilen der Tabelle, bei denen in der Spalte „4-Bit“ viermal das Symbol „-“ steht.Table 9 shows a possible assignment of binary 4-bit values stored in 6 memory cells S 1 to S 6 as 3-of-6 code words. The last column of Table 9 is titled “4-bit”; there the 4-bit values are incremented bit-by-bit from 0 to 16 (compare the penultimate column). For each 4-bit value there is exactly one code word of the 3-out-of-6 code used here as an example. The 3-out-of-6 code is characterized by the fact that the value 1 (or the value 0) occurs exactly three times in each code word. For the n = 6 memory cells there are 20 - 16 = 4 code words that are "left over", ie have no associated 4-bit value. Here in the example in Table 9, these are the last four rows of the table, in which the “4-Bit” column contains the symbol “-” four times.

Detektion des schnellsten LesestromsDetection of the fastest read current

13 zeigt eine beispielhafte Schaltungsanordnung umfassend vier NICHT-ODER-Gatter 1301 bis 1304 mit je drei Eingängen, zwei NICHT-ODER-Gatter 1305, 1306 mit je zwei Eingängen und ein NICHT-UND-Gatter 1307 mit einer Vielzahl von Eingängen. 13 shows an exemplary circuit arrangement comprising four NOR gates 1301 to 1304 each with three inputs, two NOR gates 1305, 1306 each with two inputs and one NAND gate 1307 with a large number of inputs.

Diese Schaltungsanordnung ermöglicht es diejenigen drei Speicherzellen zu bestimmen, deren Zeitintegral über den Lesestrom am schnellsten den vorbestimmten Schwellwert Sw erreicht.This circuit configuration makes it possible to determine those three memory cells whose time integral over the read current reaches the predetermined threshold value Sw the fastest.

Es gibt ( 6 3 ) = 20

Figure DE102017103347B4_0219
verschiedene Möglichkeiten, drei der 6 Speicherzellen S1 bis S6 mit drei Nullen und drei Einsen zu belegen.There are ( 6 3 ) = 20
Figure DE102017103347B4_0219
different ways to assign three of the 6 memory cells S 1 to S 6 with three zeros and three ones.

Es werden jeweils die drei Ausgänge der Speicherzellen, die in den ersten 16 Zeilen der Tabelle 9 mit 0 belegt sind, mit den Eingängen eines NICHT-ODER-Gatters Tabelle 9 S 1 S 2 S 3 S 4 S 5 SS 6 Wert 4-Bit 1 1 1 0 0 0 0 0000 1 1 0 1 0 0 1 0001 1 0 1 1 0 0 2 0010 0 1 1 1 0 0 3 0011 1 1 0 0 1 0 4 0100 1 0 1 0 1 0 5 0101 0 1 1 0 1 0 6 0110 1 0 0 1 1 0 7 0111 0 1 0 1 1 0 8 1000 0 0 1 1 1 0 9 1001 1 1 0 0 0 1 10 1010 1 0 1 0 0 1 11 1011 0 1 1 0 0 1 12 1100 1 0 0 1 0 1 13 1101 0 1 0 1 0 1 14 1110 0 0 1 1 0 1 15 1111 1 0 0 0 1 1 16 ---- 0 1 0 0 1 1 17 ---- 0 0 1 0 1 1 18 ---- 0 0 0 1 1 1 19 ---- verbunden. Der Ausgang eines NICHT-ODER-Gatters ist nur dann 1, wenn alle seine Eingänge 0 sind.The three outputs of the memory cells, which are assigned 0 in the first 16 rows of Table 9, are connected to the inputs of a NOR gate Table 9 p 1 S 2 p3 _ p4 _ p 5 S S 6 Value 4 bit 1 1 1 0 0 0 0 0000 1 1 0 1 0 0 1 0001 1 0 1 1 0 0 2 0010 0 1 1 1 0 0 3 0011 1 1 0 0 1 0 4 0100 1 0 1 0 1 0 5 0101 0 1 1 0 1 0 6 0110 1 0 0 1 1 0 7 0111 0 1 0 1 1 0 8th 1000 0 0 1 1 1 0 9 1001 1 1 0 0 0 1 10 1010 1 0 1 0 0 1 11 1011 0 1 1 0 0 1 12 1100 1 0 0 1 0 1 13 1101 0 1 0 1 0 1 14 1110 0 0 1 1 0 1 15 1111 1 0 0 0 1 1 16 ---- 0 1 0 0 1 1 17 ---- 0 0 1 0 1 1 18 ---- 0 0 0 1 1 1 19 ---- tied together. The output of a NOR gate is 1 only if all of its inputs are 0.

Die drei Ausgänge der Speicherzellen S4, S5 und S6, die entsprechend der ersten Zeile der Tabelle 9 den Wert 0 aufweisen, werden an die drei Eingänge des NICHT-ODER-Gatters 1301 geführt. Die drei Ausgänge der Speicherzellen S3, S5 und S6, die entsprechend der zweiten Zeile der Tabelle 9 den Wert 0 aufweisen, werden an die drei Eingänge des NICHT-ODER-Gatters 1302 geführt. Die drei Ausgänge der Speicherzellen S1, S3 und S5, die entsprechend der Zeile 14 der Tabelle 9 den Wert 0 aufweisen, werden an die drei Eingänge des NICHT-ODER-Gatters 1303 geführt. Die drei Ausgänge der Speicherzellen S1, S2 und S5, die entsprechend der Zeile 15 der Tabelle 9 den Wert 0 aufweisen, werden an die drei Eingänge des NICHT-ODER-Gatters 1304 geführt.The three outputs of the memory cells S 4 , S 5 and S 6 , which have the value 0 according to the first row of Table 9, are routed to the three inputs of the NOR gate 1301 . The three outputs of the memory cells S 3 , S 5 and S 6 which have the value 0 according to the second row of Table 9 are fed to the three inputs of the NOR gate 1302 . The three outputs of the memory cells S 1 , S 3 and S 5 , which have the value 0 according to row 14 of Table 9, are fed to the three inputs of the NOR gate 1303 . The three outputs of the memory cells S 1 , S 2 and S 5 which have the value 0 according to row 15 of Table 9 are fed to the three inputs of the NOR gate 1304 .

Dieser Ansatz wird entsprechend auch auf die Zeilen 3 bis 13 angewandt, wonach pro Zeile ein eigenes NICHT-ODER-Gatter vorgesehen ist, dessen drei Eingänge mit denjenigen Speicherzellen der Zeile verbunden sind, die den Wert 0 aufweisen. This approach is also applied correspondingly to rows 3 to 13, according to which a separate NOR gate is provided for each row, the three inputs of which are connected to those memory cells of the row which have the value 0.

Es liegt nur an dem Ausgang desjenigen NICHT-ODER-Gatters 1301 bis 1304 der Wert 1 an, dessen Eingänge alle den Wert 0 aufweisen. Mit anderen Worten liefert nur dasjenige NICHT-ODER-Gatter 1301 bis 1304 an seinem Ausgang den Wert 1, das mit dem zugehörigen Codewort gemäß der Tabelle 9 verknüpft ist. Da die Kombinationen der Verbindungen der Eingänge mit Speicherzellen an allen der NICHT-ODER-Gatter 1301 bis 1304 unterschiedlich sind (jedes Codewort enthält eine unterschiedliche Anordnung von drei Nullen), liegt zu einer Zeit nur einmal der Wert 1 an den Ausgängen der NICHT-ODER-Gatter 1301 bis 1304 an.The value 1 is present only at the output of that NOR gate 1301 to 1304 whose inputs all have the value 0. In other words, only that NOR gate 1301 to 1304 supplies the value 1 at its output which is linked to the associated code word according to Table 9. Since the combinations of connections of the inputs to memory cells on all of the NOR gates 1301 to 1304 are different (each code word contains a different arrangement of three zeros), the value 1 is present only once at the outputs of the NOR gates 1301 through 1304.

Die NICHT-ODER-Gatter 1305 und 1306 veranschaulichen beispielhaft eine zweite Ebene der Verknüpfung von Logiksignalen in 13: Der Ausgang des NICHT-ODER-Gatters 1301 und der Ausgang des NICHT-ODER-Gatters 1302 sind mit den Eingängen des NICHT-ODER-Gatters 1305 verbunden. Der Ausgang des NICHT-ODER-Gatters 1303 und der Ausgang des NICHT-ODER-Gatters 1304 sind mit den Eingängen des NICHT-ODER-Gatters 1306 verbunden. Somit sind jeweils zwei der Ausgänge der NICHT-ODER-Gatter 1301 bis 1304 mit den Eingängen eines NICHT-ODER-Gatters dieser zweiten Ebene verbunden.The NOR gates 1305 and 1306 exemplify a second level of linking of logic signals in 13 : The output of NOR gate 1301 and the output of NOR gate 1302 are connected to the inputs of NOR gate 1305 . The output of NOR gate 1303 and the output of NOR gate 1304 are connected to the inputs of NOR gate 1306 . Thus, in each case two of the outputs of the NOR gates 1301 to 1304 are connected to the inputs of a NOR gate of this second level.

Die Ausgänge der NICHT-ODER-Gatter 1305 bis 1306 der zweiten Ebene sind mit je einem Eingang des NICHT-UND-Gatters 1307 verbunden. Am Ausgang des NICHT-UND-Gatters 1307 wird ein Signal 1308 bereitgestellt.The outputs of the second level NOR gates 1305 to 1306 are connected to one input of the NAND gate 1307 each. At the output of the NAND gate 1307 a signal 1308 is provided.

Das NICHT-UND-Gatter liefert an seinem Ausgang nur dann den Wert 0, wenn alle seine Eingänge den Wert 1 aufweisen. Sobald einer der Eingänge den Wert 0 aufweist, hat das Signal 1308 den Wert 1. Wie vorstehend ausgeführt wurde, kann bei Auftreten von drei Nullen in den Speicherzellen nur eines der NICHT-ODER-Gatter 1301 bis 1304 an seinem Ausgang von dem Wert 0 auf den Wert 1 wechseln. Entsprechend wechselt das an den Ausgang des betroffenen NICHT-ODER-Gatters 1301 bis 1304 angeschlossene NICHT-ODER-Gatter 1305 bis 1306 von dem Wert 1 auf den Wert 0. Dieser Wert 0 bewirkt, dass das Signal 1308 auf den Wert 1 wechselt.The NAND gate only supplies the value 0 at its output if all of its inputs have the value 1. As soon as one of the inputs has the value 0, the signal 1308 has the value 1. As stated above, if there are three zeros in the memory cells, only one of the NOT- OR gates 1301 to 1304 change from the value 0 to the value 1 at its output. Correspondingly, the NOR gate 1305 to 1306 connected to the output of the affected NOR gate 1301 to 1304 changes from the value 1 to the value 0. This value 0 causes the signal 1308 to change to the value 1.

In dem in 13 gezeigten Beispiel gibt es 16 verschiedene Möglichkeiten, drei Nullen auf 6 Speicherzellen zu verteilen (vergleiche Tabelle 9). Entsprechend gibt es 16 NICHT-ODER-Gatter 1301 bis 1304. Die Ausgänge jeweils zwei dieser NICHT-ODER-Gatter werden an die Eingänge eines der NICHT-ODER-Gatter 1305 bis 1306 der zweiten Ebene geführt. Somit gibt es 8 NICHT-ODER-Gatter 1305 bis 1306 der zweiten Ebene und das NICHT-UND-Gatter 1307 weist entsprechend acht Eingänge auf.in the in 13 In the example shown, there are 16 different ways of distributing three zeros to 6 memory cells (compare Table 9). Correspondingly, there are 16 NOR gates 1301-1304. The outputs of every two of these NOR gates are fed to the inputs of one of the second level NOR gates 1305-1306. Thus, there are 8 second level NOR gates 1305-1306 and the NAND gate 1307 has 8 inputs accordingly.

Das Signal 1308 am Ausgang des NICHT-UND-Gatters 1307 kann zeitlich abgetastet („gesampelt“) werden.The signal 1308 at the output of the NAND gate 1307 can be sampled in time.

Wird beim Abtasten das erste Mal der Wert 1 für das Signal 1308 bestimmt, so kann das Signal 1308 als ein „hold-Signal“ für 6 Latches verwendet werden, die den jeweiligen Speicherelementen S1 bis S6 nachgeschaltet sind. Dies wird im Hinblick auf 14 näher erläutert.If the value 1 is determined for the signal 1308 for the first time during sampling, then the signal 1308 can be used as a “hold signal” for 6 latches, which are connected downstream of the respective storage elements S 1 to S 6 . This is in terms of 14 explained in more detail.

14 zeigt eine beispielhafte Schaltungsanordnung umfassend sechs Signalverstärker (auch bezeichnet als Sense-Verstärker oder Sense-Amplifier) 1401 bis 1406. Wie bereits vorstehend erläutert wurde, werden physikalische Werte W A i

Figure DE102017103347B4_0220
(hier mit i = 1...6) aus (hier beispielhaft 6) Speicherzellen des Speichers ausgelesen. Je einer der ausgelesenen physikalischen Werte W A i
Figure DE102017103347B4_0221
wird einem der Signalverstärker 1401 bis 1406 zugeführt. Bei dem physikalischen Wert W A i
Figure DE102017103347B4_0222
kann es sich um einen Lesestrom handeln. 14 shows an exemplary circuit arrangement comprising six signal amplifiers (also referred to as sense amplifiers or sense amplifiers) 1401 to 1406. As already explained above, physical values W A i
Figure DE102017103347B4_0220
(here with i=1 . . . 6) read from (here for example 6) memory cells of the memory. One of the physical values read out W A i
Figure DE102017103347B4_0221
is supplied to one of the signal amplifiers 1401 to 1406. At the physical value W A i
Figure DE102017103347B4_0222
it can be a read stream.

Der Signalverstärker 1401 bestimmt ein Zeitintegral des physikalischen Werts W A 1 .

Figure DE102017103347B4_0223
Ist das Zeitintegral zu einem Zeitpunkt t kleiner als ein Schwellwert Sw, dann liegt zum Zeitpunkt t am Ausgang des Signalverstärkers 1401 der digitale Wert 1 an. Ist das Zeitintegral zu dem Zeitpunkt t größer als der Schwellwert Sw, dann liegt am Ausgang des Signalverstärkers 1401 der digitale Wert 0 an. Der Ausgang des Signalverstärkers 1401 ist mit dem ersten Eingang eines Latches 1407 verbunden, an dessen zweitem Eingang ein Hold-Signal 1413 anliegt. Ist der Wert des Hold-Signales gleich 0, dann ist das Latch 1407 transparent geschaltet, d.h. der an dem Ausgang des Signalverstärkers 1401 bereitgestellte binäre Wert liegt an dem ersten Eingang einer Logikschaltung 1414 an. Ist der Wert des Hold-Signals gleich 1, dann ist das Latch 1407 eingefroren, d.h. der zu diesem Zeitpunkt an dem ersten Eingang des Latches 1407 anliegende Wert bleibt solange auch an dem Ausgang des Latches 1407 bestehen wie der Wert des Hold-Signals gleich 1 ist.The signal amplifier 1401 determines a time integral of the physical value W A 1 .
Figure DE102017103347B4_0223
If the time integral is less than a threshold value Sw at a time t, then the digital value 1 is present at the output of the signal amplifier 1401 at the time t. If the time integral at time t is greater than the threshold value Sw, then the digital value 0 is present at the output of the signal amplifier 1401 . The output of the signal amplifier 1401 is connected to the first input of a latch 1407, at the second input of which a hold signal 1413 is present. If the value of the hold signal is equal to 0, then the latch 1407 is switched to be transparent, ie the binary value provided at the output of the signal amplifier 1401 is present at the first input of a logic circuit 1414 . If the value of the hold signal is 1, then latch 1407 is frozen, i.e. the value present at the first input of latch 1407 at this point in time also remains at the output of latch 1407 for as long as the value of the hold signal is 1 is.

Zur Funktion des Latches, das auch als Auffangregister oder zustandsgesteuertes Flipflop bezeichnet wird, sei beispielsweise auf „de.wikipedia.org/wiki/Latch“ verwiesen.For the function of the latch, which is also referred to as a catch register or state-controlled flip-flop, see “de.wikipedia.org/wiki/Latch”, for example.

Die Logikschaltung 1414 bestimmt die ersten drei Nullen, d.h. die schnellsten drei Nullen, die an den Ausgängen der Latches 1407 bis 1412 auftreten uns setzt dann das Hold-Signal 1413 auf den Wert 1.The logic circuit 1414 determines the first three zeros, i.e. the fastest three zeros, which appear at the outputs of the latches 1407 to 1412 and then sets the hold signal 1413 to the value 1.

Entsprechend gelten: Der Signalverstärker 1402 bestimmt ein Zeitintegral des physikalischen Werts W A 2 .

Figure DE102017103347B4_0224
Ist das Zeitintegral zu dem Zeitpunkt t kleiner als derAccordingly, the following apply: The signal amplifier 1402 determines a time integral of the physical value W A 2 .
Figure DE102017103347B4_0224
If the time integral at time t is less than

Schwellwert Sw, dann liegt zu dem Zeitpunkt t am Ausgang des Signalverstärkers 1402 der digitale Wert 1 an. Ist das Zeitintegral zu dem Zeitpunkt t größer als der Schwellwert Sw, dann liegt am Ausgang des Signalverstärkers 1402 der digitale Wert 0 an. Der Ausgang des Signalverstärkers 1402 ist mit dem ersten Eingang eines Latches 1408 verbunden, an dessen zweitem Eingang das Hold-Signal 1413 anliegt. Der Ausgang des Latches 1408 ist mit dem zweiten Eingang der Logikschaltung 1414 verbunden. Der Signalverstärker 1403 bestimmt ein Zeitintegral des physikalischen Werts W A 3 .

Figure DE102017103347B4_0225
Ist das Zeitintegral zu dem Zeitpunkt t kleiner als der Schwellwert Sw, dann liegt zu dem Zeitpunkt t am Ausgang des Signalverstärkers 1403 der digitale Wert 1 an. Ist das Zeitintegral zu dem Zeitpunkt t größer als der Schwellwert Sw, dann liegt am Ausgang des Signalverstärkers 1403 der digitale Wert 0 an. Der Ausgang des Signalverstärkers 1403 ist mit dem ersten Eingang eines Latches 1409 verbunden, an dessen zweitem Eingang das Hold-Signal 1413 anliegt. Der Ausgang des Latches 1409 ist mit dem dritten Eingang der Logikschaltung 1414 verbunden. Der Signalverstärker 1404 bestimmt ein Zeitintegral des physikalischen Werts W A 4 .
Figure DE102017103347B4_0226
Ist das Zeitintegral zu dem Zeitpunkt t kleiner als der Schwellwert Sw, dann liegt zu dem Zeitpunkt t am Ausgang des Signalverstärkers 1404 der digitale Wert 1 an. Ist das Zeitintegral zu dem Zeitpunkt t größer als der Schwellwert Sw, dann liegt am Ausgang des Signalverstärkers 1404 der digitale Wert 0 an. Der Ausgang des Signalverstärkers 1404 ist mit dem ersten Eingang eines Latches 1410 verbunden, an dessen zweitem Eingang das Hold-Signal 1413 anliegt. Der Ausgang des Latches 1410 ist mit dem vierten Eingang der Logikschaltung 1414 verbunden. Der Signalverstärker 1405 bestimmt ein Zeitintegral des physikalischen Werts W A 5 .
Figure DE102017103347B4_0227
Ist das Zeitintegral zu dem Zeitpunkt t kleiner als der Schwellwert Sw, dann liegt zu dem Zeitpunkt t am Ausgang des Signalverstärkers 1405 der digitale Wert 1 an. Ist das Zeitintegral zu dem Zeitpunkt t größer als der Schwellwert Sw, dann liegt am Ausgang des Signalverstärkers 1405 der digitale Wert 0 an. Der Ausgang des Signalverstärkers 1405 ist mit dem ersten Eingang eines Latches 1411 verbunden, an dessen zweitem Eingang das Hold-Signal 1413 anliegt. Der Ausgang des Latches 1411 ist mit dem fünften Eingang der Logikschaltung 1414 verbunden. Der Signalverstärker 1406 bestimmt ein Zeitintegral des physikalischen Werts W A 6 .
Figure DE102017103347B4_0228
Ist das Zeitintegral zu dem Zeitpunkt t kleiner als der Schwellwert Sw, dann liegt zu dem Zeitpunkt t am Ausgang des Signalverstärkers 1406 der digitale Wert 1 an. Ist das Zeitintegral zu dem Zeitpunkt t größer als der Schwellwert Sw, dann liegt am Ausgang des Signalverstärkers 1406 der digitale Wert 0 an. Der Ausgang des Signalverstärkers 1406 ist mit dem ersten Eingang eines Latches 1412 verbunden, an dessen zweitem Eingang das Hold-Signal 1413 anliegt. Der Ausgang des Latches 1412 ist mit dem sechsten Eingang der Logikschaltung 1414 verbunden.threshold value Sw, then the digital value 1 is present at the time t at the output of the signal amplifier 1402 . If the time integral at time t is greater than the threshold value Sw, then the digital value 0 is present at the output of the signal amplifier 1402 . The output of the signal amplifier 1402 is connected to the first input of a latch 1408, at the second input of which the hold signal 1413 is present. The output of latch 1408 is connected to the second input of logic circuit 1414 . The signal amplifier 1403 determines a time integral of the physical value W A 3 .
Figure DE102017103347B4_0225
If the time integral at time t is less than the threshold value Sw, then the digital value 1 is present at the output of the signal amplifier 1403 at time t. If the time integral at time t is greater than the threshold value Sw, then the digital value 0 is present at the output of the signal amplifier 1403 . The output of the signal amplifier 1403 is connected to the first input of a latch 1409, at the second input of which the hold signal 1413 is present. The output of latch 1409 is connected to the third input of logic circuit 1414 . The signal amplifier 1404 determines a time integral of the physical value W A 4 .
Figure DE102017103347B4_0226
If the time integral at time t is less than the threshold value Sw, then the digital value 1 is present at the output of the signal amplifier 1404 at time t. If the time integral at time t is greater than the threshold value Sw, then the digital value 0 is present at the output of the signal amplifier 1404 . The output of the signal amplifier 1404 is connected to the first input of a latch 1410, at the second input of which the hold signal 1413 is present. The output of latch 1410 is connected to the fourth input of logic circuit 1414 . The signal amplifier 1405 determines a time integral of the physical value W A 5 .
Figure DE102017103347B4_0227
If the time integral at time t is less than the threshold value Sw, then the digital value 1 is present at the output of the signal amplifier 1405 at time t. If the time integral at time t is greater than the threshold value Sw, then the digital value 0 is present at the output of the signal amplifier 1405 . The output of the signal amplifier 1405 is connected to the first input of a latch 1411, at the second input of which the hold signal 1413 is present. The output of latch 1411 is connected to the fifth input of logic circuit 1414 . The signal amplifier 1406 determines a time integral of the physical value W A 6 .
Figure DE102017103347B4_0228
If the time integral at time t is less than the threshold value Sw, then the digital value 1 is present at the output of the signal amplifier 1406 at time t. If the time integral at time t is greater than the threshold value Sw, then the digital value 0 is present at the output of the signal amplifier 1406 . The output of the signal amplifier 1406 is connected to the first input of a latch 1412, at the second input of which the hold signal 1413 is present. The output of latch 1412 is connected to the sixth input of logic circuit 1414 .

Beispielhaft zeigt ein Diagramm 1415 einen Lesestrom über der Zeit für Signalverstärker 1401. Hiernach erreicht der Lesestrom an dem Signalverstärker 1401 zu einem Zeitpunkt t1 den Schwellwert Sw. Entsprechend sind in 14 auch Diagramme 1416 bis 1420 für die Signalverstärker 1402 bis 1406 gezeigt, wonach ein Zeitpunkt ti angibt, wann der i-te Signalverstärker 1401 bis 1406 den Schwellwert Sw erreicht.By way of example, a diagram 1415 shows a read current over time for signal amplifier 1401. The read current at signal amplifier 1401 then reaches the threshold value Sw at a point in time t 1 . Accordingly, in 14 also shows diagrams 1416 to 1420 for the signal amplifiers 1402 to 1406, according to which a point in time t i indicates when the i-th signal amplifier 1401 to 1406 reaches the threshold value Sw.

Solange das Integral des Lesestroms bis zu dem Zeitpunkt ti kleiner als der Schwellwert Sw ist, gibt der jeweilige Signalverstärker den Wert 1 aus; ist das Integral des Lesestroms ab dem Zeitpunkt ti größer als der Schwellwert Sw, gibt der jeweilige Signalverstärker den Wert 0 aus.As long as the integral of the read current is less than the threshold value Sw up to the point in time t i , the respective signal amplifier outputs the value 1; If the integral of the read current from time t i is greater than the threshold value Sw, the respective signal amplifier outputs the value 0.

In dem in 14 gezeigten Beispiel wird zu einem Zeitpunkt t die physikalischen Werte W A 1  bis  W A 6

Figure DE102017103347B4_0229
bestimmt, wobei t größer ist als t1, t3 und t5 und wobei t kleiner ist als t2, t4 und t6. Damit liegt zum Zeitpunkt t an den Ausgängen der Signalverstärker 1401, 1403 und 1405 jeweils der Wert 0 an, während an den Ausgängen der Signalverstärker 1402, 1404 und 1406 noch der Wert 1 anliegt. Die Logikschaltung 1414 erkennt diese ersten drei Nullen und setzt das Hold-Signal 1413 von 0 auf 1, daraufhin werden die Latches 1407 bis 1412 „eingefroren“.in the in 14 example shown is at a time t the physical values W A 1 until W A 6
Figure DE102017103347B4_0229
where t is greater than t 1 , t 3 and t 5 and where t is less than t 2 , t 4 and t 6 . The value 0 is thus present at the time t at the outputs of the signal amplifiers 1401, 1403 and 1405, while the value 1 is still present at the outputs of the signal amplifiers 1402, 1404 and 1406. The logic circuit 1414 recognizes these first three zeros and sets the hold signal 1413 from 0 to 1, after which the latches 1407 to 1412 are “frozen”.

Die Logikschaltung 1414 kann beispielsweise durch die in 13 dargestellte Schaltungsanordnung realisiert sein.The logic circuit 1414 can be implemented, for example, by the in 13 circuit arrangement shown can be implemented.

Claims (21)

Verfahren zum Lesen von Speicherzellen aus einem Speicher, - bei dem physikalische Werte aus einer Anzahl von n Speicherzellen bestimmt werden, wobei n mindestens drei ist, wobei die physikalischen Werte Zeitpunkte sind, - bei dem die physikalischen Werte zumindest teilweise untereinander verglichen werden, - bei dem anhand der verglichenen physikalischen Werte den n Speicherzellen K unterschiedliche digitale Speicherzellenwerte zugeordnet werden, - bei dem den so erhaltenen digitalen Speicherzellenwerten ein Codewort eines n1-, ..., nK-aus-n-Codes zugeordnet wird, - bei dem die physikalischen Werte zumindest teilweise untereinander verglichen werden, so dass eine Reihenfolge zumindest eines Teils der physikalischen Werte bestimmt wird, - bei dem anhand der Reihenfolge den n Speicherzellen die K unterschiedlichen digitalen Speicherzellenwerte zugeordnet werden.Method for reading memory cells from a memory, - in which physical values are determined from a number of n memory cells, where n is at least three, the physical values being points in time, - in which the physical values are at least partially compared with one another, - in in which the n memory cells K are assigned different digital memory cell values on the basis of the compared physical values, - in which the digital memory cell values obtained in this way are assigned a code word of an n 1 -, ..., n K -out of n code, - in which the physical values are at least partially compared with one another, so that an order of at least some of the physical values is determined, - in which the K different digital memory cell values are assigned to the n memory cells on the basis of the order. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die physikalischen Werte bestimmt werden, indem die n Speicherzellen ausgelesen werden.Method according to one of the preceding claims, in which the physical values are determined by reading out the n memory cells. Verfahren nach einem der vorhergehenden Ansprüche, bei dem alle physikalischen Werte untereinander verglichen werden.Method according to one of the preceding claims, in which all physical values are compared with one another. Verfahren nach einem der vorhergehenden Ansprüche, bei dem K = 2 ist, so dass der n1-, ..., nK-aus-n-Code ein n1-, n2-aus-n-Code ist, wobei n1 erste Speicherzellenwerte untereinander den gleichen ersten Wert und n2 zweite Speicherzellenwerte untereinander den gleichen zweiten Wert aufweisen, wobei der erste Wert von dem zweiten Wert verschieden ist.A method according to any one of the preceding claims, wherein K = 2 such that the n 1 , ..., n K -of-n code is an n 1 -,n 2 -of-n code, where n 1 first memory cell values have the same first value among one another and n 2 second memory cell values have the same second value among one another, the first value being different from the second value. Verfahren nach einem der Ansprüche 1 bis 3, bei dem K = 3 ist, so dass der n1-, ..., nK-aus-n-Code ein n1-, n2-, n3-aus-n-Code ist, wobei n1 erste Speicherzellenwerte untereinander den gleichen ersten Wert, n2 zweite Speicherzellenwerte untereinander den gleichen zweiten Wert und n3 dritte Speicherzellenwerte untereinander den gleichen dritten Wert aufweisen, wobei der erste Wert, der zweite Wert und der dritte Wert jeweils voneinander verschieden sind.Procedure according to one of Claims 1 until 3 , where K = 3 such that the n 1 -,...,n K -of-n code is an n 1 -,n 2 -,n 3 -of-n code, where n 1 first Memory cell values have the same first value among one another, n 2 second memory cell values have the same second value among one another and n 3 third memory cell values have the same third value among one another, the first value, the second value and the third value each being different from one another. Verfahren nach einem der Ansprüche 1 bis 3, bei dem K > 3 gilt.Procedure according to one of Claims 1 until 3 , where K > 3 holds. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die aus den Speicherzellen bestimmten Speicherzellenwerte durch eine eindeutig umkehrbare Transformation bestimmt werden.Method according to one of the preceding claims, in which the memory cell values determined from the memory cells are determined by a uniquely reversible transformation. Verfahren nach einem der vorhergehenden Ansprüche, bei dem jeweils ein Zeitpunkt mittels einer zeitlichen Integration des physikalischen Wertes der Speicherzelle bestimmt wird.Method according to one of the preceding claims, in which a point in time is determined in each case by means of a time integration of the physical value of the memory cell. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der physikalische Wert ein Lesestrom einer Speicherzelle ist.Method according to one of the preceding claims, in which the physical value is a read current of a memory cell. Verfahren nach einem der vorhergehenden Ansprüche, bei dem falls die erhaltenen digitalen Speicherzellenwerte ein Codewort eines n1-, ..., nKaus-n-Codes darstellen, mittels einer Rücktransformation aus dem Codewort eine Anzahl von m Bits bestimmt werden.Method according to one of the preceding claims, in which, if the digital memory cell values obtained represent a code word of an n 1 -, ..., n K out of n code, a number of m bits are determined from the code word by means of an inverse transformation. Verfahren nach Anspruch 10, bei dem eine Fehlererkennung und/oder Fehlerkorrektur der m Bits mittels eines Fehlercodes durchgeführt wird.procedure after claim 10 , in which error detection and/or error correction of the m bits is carried out using an error code. Verfahren nach Anspruch 10, bei dem die Fehlererkennung und/oder Fehlerkorrektur basierend auf Prüfbits durchgeführt wird, wobei die Prüfbits entsprechend dem Fehlercode aus den Datenbits bestimmt werden.procedure after claim 10 , in which the error detection and/or error correction is carried out based on check bits, the check bits being determined from the data bits according to the error code. Verfahren nach Anspruch 10, bei dem die Fehlererkennung und/oder Fehlerkorrektur basierend auf Prüfbits durchgeführt wird, wobei die Prüfbits entsprechend dem Fehlercode aus den Speicherzellenwerten bestimmt werden.procedure after claim 10 , in which the error detection and/or error correction is performed based on check bits, the check bits being determined from the memory cell values in accordance with the error code. Verfahren nach einem der Ansprüche 11 bis 13, bei dem der Fehlercode ein Bytefehler-korrigierender und/oder ein Bytefehler-erkennender Code ist.Procedure according to one of Claims 11 until 13 , in which the error code is a byte error-correcting and/or a byte error-detecting code. Verfahren nach Anspruch 14, bei dem ein Byte m Bits umfasst, wenn eine Fehlerkorrektur von Datenbits erfolgt und bei dem ein Byte n Bits umfasst, wenn eine Fehlerkorrektur von Speicherzellen erfolgt.procedure after Claim 14 in which a byte comprises m bits when error correction of data bits is performed and in which a byte comprises n bits when error correction of memory cells is performed. Verfahren nach einem der Ansprüche 11 bis 15, bei dem der Fehlercode ein Bitfehler-korrigierender und/oder ein Bitfehler-erkennender Code ist.Procedure according to one of Claims 11 until 15 , in which the error code is a bit error-correcting and/or a bit error-detecting code. Verfahren nach einem der vorhergehenden Ansprüche, bei dem zur Bestimmung der digitalen Speicherzellenwerte mindestens ein Referenzwert verwendet wird.Method according to one of the preceding claims, in which at least one reference value is used to determine the digital memory cell values. Verfahren nach einem der vorhergehenden Ansprüche, bei dem bei dem der Speicher mindestens einen der folgenden Speichertypen umfasst: - einen Cache-Speicher, - ein Register oder ein Register-Array, - einen Flash-Speicher, - ein MRAM, - ein SRAM, - ein RE-RAM, - ein PC-RAM, - ein FE-RAM, - ein CB-RAM, - einen Multibit-Speicher, - einen Multilevel-Speicher.Method according to one of the preceding claims, in which the memory comprises at least one of the following memory types: - a cache memory, - a register or a register array, - a flash memory, - an MRAM, - a SRAM, - a RE RAM, - a PC RAM, - a FE RAM, - a CB RAM, - a multibit memory, - a multilevel memory. Vorrichtung zum Verarbeiten von Speicherzellen aus einem Speicher, bei dem die Vorrichtung eine Verarbeitungseinheit aufweist, die eingerichtet ist - physikalische Werte aus einer Anzahl von n Speicherzellen zu bestimmen, wobei n mindestens drei ist, wobei die physikalischen Werte Zeitpunkte sind, - die physikalischen Werte zumindest teilweise untereinander zu vergleichen, - anhand der verglichenen physikalischen Werte den n Speicherzellen K unterschiedliche digitale Speicherzellenwerte zuzuordnen, - den so erhaltenen digitalen Speicherzellenwerten ein Codewort eines n1-, ..., nK-aus-n-Codes zuzuordnen. - die physikalischen Werte zumindest teilweise untereinander zu vergleichen und so eine Reihenfolge der physikalischen Werte zu bestimmen, - anhand der Reihenfolge der physikalischen Werte den n Speicherzellen die K unterschiedlichen digitalen Speicherzellenwerte zuzuordnen.Device for processing memory cells from a memory, in which the device has a processing unit that is set up - to determine physical values from a number of n memory cells, where n is at least three, with the physical values being points in time, - to compare the physical values at least partially with one another, - to assign K different digital memory cell values to the n memory cells on the basis of the compared physical values, - to assign a code word of an n 1 -, ..., n K -out of n code to the digital memory cell values obtained in this way. - compare the physical values at least partially with one another and thus determine a sequence of the physical values, - assign the K different digital memory cell values to the n memory cells on the basis of the sequence of the physical values. Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 18 durchzuführen.Computer program product that can be loaded directly into a memory of a digital computer, comprising program code parts that are suitable for carrying out the steps of the method according to one of Claims 1 until 18 to perform. Computerlesbares Speichermedium umfassend von einem Computer ausführbare Anweisungen, die dazu geeignet sind, dass der Computer die Schritte des Verfahrens nach einem der Ansprüche 1 bis 18 durchführt.Computer-readable storage medium comprising computer-executable instructions suitable for the computer to carry out the steps of the method according to any one of Claims 1 until 18 performs.
DE102017103347.5A 2017-02-17 2017-02-17 PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY Active DE102017103347B4 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102017103347.5A DE102017103347B4 (en) 2017-02-17 2017-02-17 PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY
TW107100236A TWI664639B (en) 2017-02-17 2018-01-03 Memory Cell Data Processing
KR1020180018601A KR102079196B1 (en) 2017-02-17 2018-02-14 Processing data in memory cells of a memory
JP2018024702A JP6602904B2 (en) 2017-02-17 2018-02-15 Processing data in memory cells of memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017103347.5A DE102017103347B4 (en) 2017-02-17 2017-02-17 PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY

Publications (2)

Publication Number Publication Date
DE102017103347A1 DE102017103347A1 (en) 2018-08-23
DE102017103347B4 true DE102017103347B4 (en) 2023-07-20

Family

ID=63046077

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017103347.5A Active DE102017103347B4 (en) 2017-02-17 2017-02-17 PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY

Country Status (4)

Country Link
JP (1) JP6602904B2 (en)
KR (1) KR102079196B1 (en)
DE (1) DE102017103347B4 (en)
TW (1) TWI664639B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018124296A1 (en) * 2018-10-02 2020-04-02 Infineon Technologies Ag COMPENSATION OF READING ERRORS
US10963185B2 (en) 2018-11-20 2021-03-30 Micron Technology, Inc. Memory sub-system for performing wear-leveling adjustments based on memory component endurance estimations
CN111352754B (en) * 2018-12-21 2023-09-15 中国石油天然气集团有限公司 Error detection and correction method for data storage and data storage device
US10884663B2 (en) 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cells
US10884664B2 (en) 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cell
DE102019107139A1 (en) 2019-03-20 2020-09-24 Infineon Technologies Ag TRANSFORMATION OF BINARY SIGNALS READ FROM A MEMORY

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110296274A1 (en) 2010-05-31 2011-12-01 International Business Machines Corporation Data encoding in solid-state storage devices
US20130176780A1 (en) 2011-01-04 2013-07-11 Lsi Corporation Detection and decoding in flash memories with error correlations for a plurality of bits within a sliding window
DE102014112947A1 (en) 2013-09-26 2015-03-26 International Business Machines Corporation Estimate State Cell Levels on Memory Cells

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0225118A (en) * 1988-07-14 1990-01-26 Matsushita Electric Ind Co Ltd Code converter and decoder
JP3213434B2 (en) * 1993-03-25 2001-10-02 新日本製鐵株式会社 Nonvolatile semiconductor memory device
JP3866674B2 (en) * 1993-12-28 2007-01-10 株式会社東芝 Storage system
JP4099844B2 (en) * 1998-01-21 2008-06-11 ソニー株式会社 Memory device
CN103208309B (en) * 2006-05-12 2016-03-09 苹果公司 Distortion estimation in memory device and elimination
KR100879560B1 (en) 2006-12-04 2009-01-22 삼성전자주식회사 Method for data training using error detection code and system adapted to the same
US8335977B2 (en) * 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
US8880783B2 (en) * 2011-07-05 2014-11-04 Kandou Labs SA Differential vector storage for non-volatile memory
US8427875B2 (en) 2010-12-07 2013-04-23 Silicon Motion Inc. Method and memory controller for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory
US8732560B2 (en) * 2012-05-08 2014-05-20 Infineon Technologies Ag Method and device for correction of ternary stored binary data
US8996951B2 (en) * 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
KR101545512B1 (en) * 2012-12-26 2015-08-24 성균관대학교산학협력단 Semiconductor memory apparatus, verify read method and system
US9196320B2 (en) * 2013-12-13 2015-11-24 Infineon Technologies Ag Method, apparatus and device for data processing
DE102015215401B4 (en) * 2015-08-12 2020-10-01 Infineon Technologies Ag Storage device and method for correcting a stored bit sequence

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110296274A1 (en) 2010-05-31 2011-12-01 International Business Machines Corporation Data encoding in solid-state storage devices
US20130176780A1 (en) 2011-01-04 2013-07-11 Lsi Corporation Detection and decoding in flash memories with error correlations for a plurality of bits within a sliding window
DE102014112947A1 (en) 2013-09-26 2015-03-26 International Business Machines Corporation Estimate State Cell Levels on Memory Cells

Also Published As

Publication number Publication date
TWI664639B (en) 2019-07-01
JP6602904B2 (en) 2019-11-06
DE102017103347A1 (en) 2018-08-23
TW201832232A (en) 2018-09-01
JP2018133087A (en) 2018-08-23
KR102079196B1 (en) 2020-02-21
KR20180095468A (en) 2018-08-27

Similar Documents

Publication Publication Date Title
DE102017103347B4 (en) PROCESSING OF DATA IN MEMORY CELLS OF A MEMORY
DE69932962T2 (en) Coding method and memory arrangement
DE102015201384B4 (en) Apparatus and method for improving data storage by data inversion
DE2060643C3 (en) Circuit arrangement for correcting individual errors
DE112011100371T5 (en) Method, apparatus and computer program product for decoding a codeword
DE102013007692A1 (en) Method and device for correcting ternary stored binary data
DE102015113414B4 (en) Error correction using WOM codes
DE102017130591B4 (en) Method and device for error correction coding based on data compression
DE102011085602A1 (en) Apparatus and method for correcting at least one bit error in a coded bit sequence
DE112011101852B4 (en) Decode LDPC code
DE102018105434A1 (en) Method and system for scanning erased flash memory pages with cross-reference to related applications
DE102005022107B9 (en) Apparatus and method for determining a position of a bit error in a bit string
DE102018131613A1 (en) Error detection by group error
DE102013222136B4 (en) Circuit and method for multi-bit correction
DE102014215252A1 (en) EFFECTIVE ERROR CORRECTION OF MULTI-BIT ERRORS
DE102020110787B3 (en) CIRCUIT AND PROCEDURE FOR ENCODING OR DECODING A DATA WORD
DE102019113970B4 (en) DETECTION OF ADDRESSING ERRORS
DE102013219088B9 (en) Circuit arrangement and method for realizing check bit compaction for cross-parity codes
DE102016104012A1 (en) Processing a data word
DE102013016694B4 (en) Coding and decoding of redundant bits to make adjustments for memory cells with sticking errors
DE102010041680A1 (en) Apparatus and method for determining a position of a 1-bit error in a coded bit sequence, apparatus and method for correcting a 1-bit error in a coded bit sequence, and a decoder and method for decoding a defective coded bit sequence
DE102018126685B3 (en) Processing of data
DE102017107431B4 (en) Methods and devices for error correction coding based on high rate generalized concatenated codes
DE102016115272A1 (en) MEMORY WITH DIFFERENT RELIABILITIES
DE102019126175B4 (en) DETECTION OF ERRORS IN MULTI-VALUE MEMORIES

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