DE102019113970B4 - Erkennung von adressfehlern - Google Patents

Erkennung von adressfehlern Download PDF

Info

Publication number
DE102019113970B4
DE102019113970B4 DE102019113970.8A DE102019113970A DE102019113970B4 DE 102019113970 B4 DE102019113970 B4 DE 102019113970B4 DE 102019113970 A DE102019113970 A DE 102019113970A DE 102019113970 B4 DE102019113970 B4 DE 102019113970B4
Authority
DE
Germany
Prior art keywords
error
address
code
matrix
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
DE102019113970.8A
Other languages
English (en)
Other versions
DE102019113970A1 (de
Inventor
Thomas Kern
Christian Badack
Michael Gössel
Klaus Oberländer
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 DE102019113970.8A priority Critical patent/DE102019113970B4/de
Priority to US16/881,473 priority patent/US11650877B2/en
Publication of DE102019113970A1 publication Critical patent/DE102019113970A1/de
Application granted granted Critical
Publication of DE102019113970B4 publication Critical patent/DE102019113970B4/de
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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1174Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren zur Erkennung eines Adressfehlers beim Lesen einer Bitfolge aus einem Speicher,- bei dem geprüft wird, ob die Bitfolge in Verbindung mit der anliegenden Leseadresse ein Codewort eines Fehlercodes ist,- bei dem, falls die Bitfolge in Verbindung mit der anliegenden Leseadresse kein Codewort des Fehlercodes ist, ein Adressfehler dann erkannt wird, sofern der Fehlercode einen durch ihn korrigierbaren Fehler nicht korrigiert,- bei dem mittels des Fehlercodes ein Speicherzellenfehler in der Bitfolge erkannt und/oder korrigiert wird,- bei dem der Speicherzellenfehler mittels eines ersten Fehlersyndroms erkannt und/oder korrigiert wird,- bei dem der Adressfehler mittels eines zweiten Fehlersyndroms erkannt wird, wobei das erste Fehlersyndrom von dem zweiten Fehlersyndrom unterschiedlich ist.

Description

  • Eine zuverlässige Speicherung von Daten in adressierbaren Speichern ist generell von großem Interesse. Durch die Verkleinerung der Speicherstrukturen und durch die Entwicklung neuartiger Speicherzellen, bspw. von MRAM-Zellen, RRAM-Zellen und anderen Speicherzellen, die insbesondere für bestimmte Anwendungen verhältnismäßig hohe Fehlerraten aufweisen, ist es erforderlich, Fehler zu erkennen und zu korrigieren. Dies betrifft sowohl Bitfehler, die erkannt und korrigiert werden sollen, Speicherzellenfehler, die (mit möglichst hoher Wahrscheinlichkeit) erkannt werden sollen und Adressfehler, die ebenfalls (mit möglichst hoher Wahrscheinlichkeit) erkannt werden sollen.
  • Zur Fehlerkorrektur von Bitfehlern können Fehler-korrigierende Codes, wie beispielsweise Hamming-Codes, Hsiao-Codes oder BCH-Codes verwendet werden (siehe z.B. [1]).
  • Aus DE 26 55 653 A1 ist eine Lösung zur Erkennung der richtigen Zuordnung von Adresse und Speicherwort in einem Datenspeicher mittels Prüfbits bekannt.
  • Aus US 8,812,935 B2 ist bekannt, eine Daten-ECC zur Erkennung von Adressfehlern einzusetzen.
  • Als Speicherzellenfehler werden insbesondere solche Fehler bezeichnet, bei denen alle betrachteten Speicherzellen einen bestimmten Wert annehmen, beispielsweise den Wert 0 oder den Wert 1. Nehmen alle Speicherzellen den Wert 0 an, liegt ein sogenannter „All-0“-Speicherzellenfehler vor. Nehmen alle Speicherzellen den Wert 1 an, liegt ein sogenannter „All-1‟-Speicherzellenfehler vor. Ein Speicherzellenfehler kann auch dann vorliegen, wenn verschiedene Speicherzellen verschiedene Werte annehmen beispielsweise aufeinanderfolgende 01-Paare. Auch andere fehlerhafte Speicherzellenbelegungen sind möglich.
  • Ein Speicherzellenfehler φ kann beispielsweise durch binäre Werte φ1 bis φn in n Speicherzellen beschrieben werden. Der All-0-Speicherzellenfehler entspricht φ 1 = 0,   φ 2 = 0, , φ n = 0
    Figure DE102019113970B4_0001
    und der All-1-Speicherzellenfehler entspricht φ 1 = 1,   φ 2 = 1, , φ n = 1.
    Figure DE102019113970B4_0002
  • In Bezug auf eine Erkennung eines Adressfehlers ist aus US 8,560,899 B2 bekannt, unter Verwendung von angeregten Wortleitungen und angeregten Bitleitungen eine aktive Speicheradresse beispielsweise unter Verwendung eines ROMs zu bestimmen und mit der tatsächlich angelegten Speicheradresse zu vergleichen.
  • Es besteht somit die Aufgabe, bestehende Lösungen zu verbessern und insbesondere für beliebige Fehlercodes auch Adressfehler zu erkennen.
  • Als ein Fehlercode wird insbesondere ein Fehler-erkennender und/oder Fehler-korrigierender Code bezeichnet.
  • Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Zur Lösung der Aufgabe wird ein Verfahren angegeben zur Erkennung eines Adressfehlers beim Lesen einer Bitfolge aus einem Speicher,
    • - bei dem geprüft wird, ob die Bitfolge in Verbindung mit der anliegenden Leseadresse ein Codewort eines Fehlercodes ist,
    • - bei dem, falls die Bitfolge in Verbindung mit der anliegenden Leseadresse kein Codewort des Fehlercodes ist, ein Adressfehler dann erkannt wird, sofern der Fehlercode einen durch ihn korrigierbaren Fehler nicht korrigiert.
  • Hierbei sei angemerkt, dass der eine durch den Fehlercode korrigierbare Fehler ein beliebiger zu korrigierender Fehler sein kann.
  • Weiterhin sein angemerkt, dass der Begriff Codewort eine gültige Belegung von Bits gemäß einem vorgegebenen Code bezeichnet. Damit erfüllt das Codewort die Eigenschaften des Codes.
  • Der Code (auch bezeichnet als Fehlercode) kann ein Fehler-erkennender und/oder ein Fehler-korrigierender Code sein.
  • Der Speicher kann einen der folgenden Speicher umfassen: Floating-Gate-Zellen, PCRAM, RRAM, MRAM, MONOS-Bauelemente, Nano-Kristall-Zellen, ROM.
  • Es ist eine Weiterbildung, dass der durch den Fehlercode zu korrigierende Fehler eine Teilmenge der durch den Fehlercode korrigierbarer Fehler ist.
  • Es ist eine Weiterbildung, dass kein Adressfehler erkannt wird, falls die Bitfolge in Verbindung mit der anliegenden Leseadresse ein Codewort des Fehlercodes ist.
  • Es ist eine Weiterbildung, dass mittels des Fehlercodes ein Speicherzellenfehler in der Bitfolge erkannt und/oder korrigiert wird.
  • Es ist eine Weiterbildung, dass der Speicherzellenfehler mittels eines ersten Fehlersyndroms erkannt und/oder korrigiert wird.
  • Es ist eine Weiterbildung, dass der Adressfehler mittels eines zweiten Fehlersyndroms erkannt wird, wobei das erste Fehlersyndrom von dem zweiten Fehlersyndrom unterschiedlich ist.
  • Es ist eine Weiterbildung, dass vor dem Lesen der Bitfolge aus dem Speicher folgende Schritte durchgeführt werden:
    • - Speichern einer Bitfolge v unter einer Adresse a in den Speicher, wobei die Bitfolge v und ein mittels einer Transformation f transformierter Adresswert f(a) ein Codewort des Fehlercodes darstellen,
    • - Zuordnen der verwendeten Speicheradresse a zu dem transformierten Adresswert f(a) = A1,...,Am, wobei der transformierte Adresswert f(a) verschieden von einem Fehlersyndrom des Speicherzellenfehlers und verschieden von Werten ist, die sich aus Bitfehlern zugeordneten Fehlersyndromen ergeben.
  • Es ist eine Weiterbildung, dass nicht alle Adressen des Speichers verwendet werden.
  • Es ist eine Weiterbildung, dass der Speicher Speicherzellen aufweist, in denen n-komponentige Bitfolgen abspeicherbar sind, wobei N verschiedene Bitfehler b1 bis bN korrigierbar sind, die eine Bitfolge v = v1,...,vn in Bitfolgen v(b1),v(b2), ...,v(bN) verfälschen, wobei ein Speicherzellenfehler φ1, bei dem n Speicherzellen die Werte φ 1 1 , , φ n 1 = φ 1
    Figure DE102019113970B4_0003
    beim Auslesen aus den Speicherzellen ergeben, erkannt wird,
    • - wobei die Bitfolge v, die unter einer Adresse a in den Speicher geschrieben wird, so bestimmt ist, dass im fehlerfreien Fall [v, f(a)] ein Codewort des Fehlercodes Ca mit einer H-Matrix H = ( H m , n ν ,   I m )
      Figure DE102019113970B4_0004
      ist,
    • - wobei eine Adresstransformation f so bestimmt ist, dass sie jeder verwendeten Speicheradresse a eindeutig einen transformierten Adressenwert f(a) =A1,... ,Am zuordnet, der ungleich den Werten H m , n ν φ 1 ,   H m , n ν φ 1 + s ( b 1 ) , , H m , n ν φ 1 + s ( b N )
      Figure DE102019113970B4_0005
      ist, wobei s(b1) bis s(bN) den Bitfehlern zugeordnete Fehlersyndrome sind,
    • - wobei folgenden Beziehungen gelten: 2 m > N + 1, n 2, N 1,
      Figure DE102019113970B4_0006
    • - wobei H m , n ν
      Figure DE102019113970B4_0007
      eine binäre (m,n)-Matrix und Im die m-dimensionale Einheitsmatrix bezeichnen.
  • Es ist eine Weiterbildung, dass ein weiterer Speicherzellenfehler φ2 erkannt wird, wobei n unter einer Adresse adressierte Speicherzellen die Werte φ 1 2 , , φ n 2 = φ 2
    Figure DE102019113970B4_0008
    beim Auslesen aus den Speicherzellen ergeben, und die Adresstransformation f so bestimmt ist, dass für jede verwendete Speicheradresse a der transformierte Adresswert f(a) ungleich den Werten H ν φ 2 ,   H ν φ 2 + s ( b 1 ) , , H ν φ 2 + s ( b N )
    Figure DE102019113970B4_0009
    ist.
  • Es ist eine Weiterbildung, dass die Matrix H m , n ν
    Figure DE102019113970B4_0010
    eine H-Matrix eines Hamming-Codes oder eines verkürzten Hamming-Codes ist.
  • Es ist eine Weiterbildung, dass die Matrix H m , n ν
    Figure DE102019113970B4_0011
    eine H-Matrix eines Hsiao-Codes oder eines verkürzten Hsiao-Codes ist.
  • Es ist eine Weiterbildung, dass die Matrix H m , n ν
    Figure DE102019113970B4_0012
    eine H-Matrix eines t-Bitfehler-korrigierenden Codes ist.
  • Es ist eine Weiterbildung, dass die Matrix H m , n ν
    Figure DE102019113970B4_0013
    eine H-Matrix eines BCH-Codes ist.
  • Es ist eine Weiterbildung, dass zur Erhöhung einer Wahrscheinlichkeit der Adressfehlererkennung die H-Matrix H = [ H m , n ν ,   I m ]
    Figure DE102019113970B4_0014
    eines Fehlercodes in eine modifizierte H-Matrix H = [ H m + 1, n ν ,   I m + 1 ]
    Figure DE102019113970B4_0015
    geändert wird, indem zu der H-Matrix H m , n ν
    Figure DE102019113970B4_0016
    eine (m+1)-te Zeile von n binären Werten hinzugefügt wird.
  • Es ist eine Weiterbildung, dass die (m+ 1)-te Zeile, die der Matrix H m , n ν
    Figure DE102019113970B4_0017
    hinzugefügt wird, n Nullen umfasst.
  • Weiterhin wird eine Vorrichtung vorgeschlagen zum Erkennen eines Adressfehlers, wobei die Vorrichtung eine Verarbeitungseinheit aufweist, die derart eingerichtet ist, dass
    • - geprüft wird, ob eine Bitfolge in Verbindung mit der anliegenden Leseadresse ein Codewort eines Fehlercodes ist,
    • - falls die Bitfolge in Verbindung mit der anliegenden Leseadresse kein Codewort des Fehlercodes ist, ein Adressfehler dann erkannt wird, sofern der Fehlercode einen durch ihn korrigierbaren Fehler nicht korrigiert.
  • 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, Input/Output-Schnittstellen, Ein-Ausgabe-Geräte, etc.) sein oder umfassen.
  • Insbesondere ist die Verarbeitungseinheit eingerichtet, die Schritte des hier beschriebenen Verfahrens durchführen zu können.
  • Die vorstehenden Erläuterungen betreffend das Verfahren gelten für die Vorrichtung entsprechend.
  • Es ist eine Weiterbildung, dass die Verarbeitungseinheit eingerichtet ist, die Bitfolge aus einem Speicher zu lesen.
  • Auch wird ein System angegeben umfassend mindestens eine Vorrichtung wie hierin beschrieben.
  • Ferner wird ein Computerprogrammprodukt angegeben, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, Schritte des hier beschriebenen Verfahrens durchzuführen.
  • Weiterhin wird das oben genannte Problem gelöst mittels eines computerlesbaren Speichermediums, z.B. eines beliebigen Speichers, umfassend von einem Computer ausführbare Anweisungen (z.B. in Form von Programmcode), die dazu geeignet sind, dass der Computer Schritte des hier beschriebenen Verfahrens durchführt.
  • 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.
  • Es zeigen:
    • 1 eine beispielhafte Schaltungsanordnung zur Speicherung und zur Korrektur von Daten;
    • 2 eine beispielhafte Realisierung des Korrektors aus 1;
    • 3 eine beispielhafte Implementierung des Decoders aus 2;
    • 4 eine beispielhafte Implementierung der Fehlererkennungsschaltung aus 1.
  • Beispielsweise wird vorgeschlagen, einen Fehlercode Ca und eine Adresstransformation f zu bestimmen zur Transformation von Adressen eines adressierbaren Speichers in transformierte Adresswerte. Der adressierbare Speicher weist vorzugsweise Speicherzellen auf, die zur Speicherung von n-komponentigen Bitfolgen dienen.
  • Beispielsweise sind N verschiedene Bitfehler b1 bis bN korrigierbar, wobei diese Bitfehler eine Bitfolge v in Bitfolgen v(b1), v(b2), . . ., v(bN) verfälschen. Ein Speicherzellenfehler φ1 kann sicher erkannt werden, wobei für n Speicherzellen φ 1 1 , , φ n 1 = φ 1
    Figure DE102019113970B4_0018
    gilt.
  • Beispielsweise kann dies wie folgt erreicht werden:
    • - Die Bitfolge v = v1,...,vn, die unter einer Adresse a in den Speicher geschrieben wird, ist so bestimmt, dass im fehlerfreien Fall [ ν ,   ƒ ( a ) ]
      Figure DE102019113970B4_0019
      ein Codewort des Fehlercodes Ca ist, wobei der Fehlercode Ca eine H-Matrix H = ( H m , n ν ,   I m )
      Figure DE102019113970B4_0020
      aufweist.
    • - Die Adresstransformation f ist so bestimmt, dass sie jeder verwendeten Speicheradresse a eindeutig einen transformierten Adresswert ƒ ( a ) = A 1 , , A m
      Figure DE102019113970B4_0021
      zuordnet, der ungleich den Werten H m , n ν φ 1 ,   H m , n ν φ 1 + s ( b 1 ) , , H m , n ν φ 1 + s ( b N )
      Figure DE102019113970B4_0022
      ist, wobei s(b1), ... , s(bN) den Bitfehlern b1 bis bN zugeordnete Fehlersyndrome sind.
    • - Beispielsweise gelten: 2m > N + 1, n ≥ 2, m ≥ 2 und N ≥1.
    • - Bei der Matrix H m , n ν
      Figure DE102019113970B4_0023
      handelt es sich vorzugsweise um eine binäre (m,n)-Matrix. Die Matrix Im ist die m-dimensionale Einheitsmatrix.
    • - Beispielsweise kann die Adresstransformation mittels mindestens einer der folgenden Komponenten durchgeführt werden: einer Adresstransformationsschaltung, eines Programms, eines Mikrocontrollers, eines Prozessors oder einer beliebigen in Hardware und/oder Software realisierten Verarbeitungseinheit.
  • Der Fehlercode Ca ist derart bestimmt, dass er mindestens einen Speicherzellenfehler φ1 unabhängig von der verwendeten Adresse erkennen kann. Der Speicherzellenfehler ist beispielsweise ein All-0-Fehler oder ein All-1-Fehler. Jeder dieser Fehler kann vorzugsweise sicher erkannt werden.
  • Der Fehlercode und die Adresstransformation sind vorzugsweise so bestimmt, dass unabhängig von der angelegten Adresse ein Speicherzellenfehler in den n Speicherzellen nicht zu einem Fehlersyndrom eines korrigierbaren Fehlers oder zu dem Fehlersyndrom 0 führt.
  • Die N verschiedenen Bitfehler b1,..., bN in der Bitfolge v können beispielsweise 1-Bitfehler, 2-Bitfehler oder andere Fehler sein.
  • Liegt der Speicherzellenfehler φ1 vor, dann liegen auf n Datenausgabeleitungen, die den n Speicherzellen entsprechen, die Werte φ 1 1 , , φ n 1
    Figure DE102019113970B4_0024
    an, unabhängig davon, welche Werte zuvor in diese Speicherzellen geschrieben wurden.
  • Es ist möglich, dass bei einem Speicherzellenfehler die n Speicherzellen die fehlerhaften Werte φ 1 1 , , φ n 1
    Figure DE102019113970B4_0025
    annehmen. Nachfolgend wird beispielhaft davon ausgegangen, dass der Speicherzellenfehler φ1 vorliegt, wenn die Werte der Leitungen eines Busses, an die Speicherzellen angeschlossen sind, die Werte φ 1 1 , , φ n 1
    Figure DE102019113970B4_0026
    annehmen, ohne dass die in den Speicherzellen gespeicherten Werte selbst fehlerhaft sein müssen. Beispielsweise können alle Werte auf den Leitungen den Wert 0 annehmen.
  • Beispiele für Speicherzellenfehler sind
    • - der All-0-Fehler mit φ A l l = 0 = 0 0 n
      Figure DE102019113970B4_0027
      und
    • - der All-1-Fehler mit φ A l l = 1 = 1 1 n .
      Figure DE102019113970B4_0028
  • Es können auch andere Speicherzellenfehler auftreten, bei denen nicht alle Speicherzellen den gleichen Wert bereitstellen, z.B. φ = 1010 10 n .
    Figure DE102019113970B4_0029
  • Der Fehlercode Ca ist in der Lage, mindestens einen Adressfehler, der eine Adresse a in eine fehlerhafte Adresse a' verfälscht, zu erkennen.
  • Die transformierten Adresswerte f(a) weisen m-Komponenten auf A 1 , , A m = ƒ ( a ) ,
    Figure DE102019113970B4_0030
    wobei die transformierten Adresswerte A1 bis Am beispielhaft binäre Werte sind.
  • Die H-Matrix H des Fehlercodes Ca kann so bestimmt sein, dass zu einer (m,n)-Matrix Hm,n, die beispielsweise als eine H-Matrix eines (n,n-m)-Fehlercodes C der Länge n mit m Prüfbits zur Korrektur der Bitfehler b1,..., bN in der Bitfolge v gewählt sein kann, eine m-dimensionale Einheitsmatrix hinzugefügt wird, so dass gilt: H = ( H m , n ν ,   I m ) .
    Figure DE102019113970B4_0031
  • Die ersten n Spalten der H-Matrix H entsprechen beispielsweise den n Bits der Bitfolge v = v1,..., vn und die hinzugefügten m Spalten der hinzugefügten Einheitsmatrix Im entsprechen den transformierten Adresswerten A1,... ,Am. Dabei ist [v, f(a)] im fehlerfreien Fall so bestimmt, dass H [ ν ,   f ( a ) ] = [ H m , n ν ,   I m ] [ ν ,   f ( a ) ] = [ H m , n ν ,   I m ] [ ν 1 , , ν n , A 1 , , A m ] = 0
    Figure DE102019113970B4_0032
    gilt. [v, f(a)] ist im fehlerfreien Fall ein Codewort des Fehlercodes Ca.
  • Wird ein Vektor von rechts mit einer Matrix multipliziert, ist hier der Vektor ein Spaltenvektor. Wird ein Vektor von links mit einer Matrix multipliziert, ist der Vektor ein Zeilenvektor.
  • Soll besonders hervorgehoben werden, dass ein Vektor [v] ein Spaltenvektor ist, kann er mit [v]T bezeichnet werden.
  • Ist die Bitfolge v = v1,..., vn in eine fehlerhafte Bitfolge ν ' = ν 1 ' , , ν n '
    Figure DE102019113970B4_0033
    mit ν + ν ' = ν 1 + ν 1 ' , , ν n + ν n ' = e 1 , , e n = e
    Figure DE102019113970B4_0034
    durch einen Bitfehler bi gestört, so ist das Fehlersyndrom s(bi) des Bitfehlers bi gleich s ( b i ) = H [ ν ' ,   f ( a ) ] = [ H m , n ν ,   I m ] [ ν ' + ν + ν ,   f ( a ) + 0 ] =   = [ H m , n ν ] [ ν ' + ν ] + [ H m , n ν ] ν + f ( a ) =   = [ H m , n ν ] [ ν ' + ν ] + [ H m , n ν ,   I m ] [ ν ,   f ( a ) ] = [ H m , n ν ] [ e ] .
    Figure DE102019113970B4_0035
  • Dabei wird ausgenutzt, dass v + v = 0 gilt und dass + eine komponentenweise Addition modulo 2 oder die logische XOR-Operation (XOR: Exklusiv-Oder) bezeichnet.
  • Die Adresstransformation f ist so bestimmt, dass sich die transformierten m-komponentigen Adresswerte A1,...,Am = f(a) für eine beliebige mögliche Speicheradresse a von allen (N + 1) m-komponentigen Werten H m , n ν φ 1 ,   H m , n ν φ 1 + s ( b 1 ) , , H m , n ν φ 1 + s ( b N ) ,
    Figure DE102019113970B4_0036
    unterscheiden. Dabei sind s ( b 1 ) , , s ( b N )
    Figure DE102019113970B4_0037
    den eventuellen Bitfehlern b1,..., bN von Bits der Bitfolge v zugeordneten Fehlersyndrome s(b1) ...,s(bN). Weiterhin wird mit „+“ die komponentenweise XOR-Operation bezeichnet.
  • Es ist möglich, dass die Syndrome s(b1),...,s(bN) der Bitfehler b1,...,bN 1-Bitfehlern, 2-Bitfehlern oder anderen Fehlern in den Bits der Bitfolge v entsprechen.
  • Vorteilhaft kann somit erreicht werden, dass für den Speicherzellenfehler φ1 und für eine beliebige verwendete Adresse a das im Fall des Speicherzellenfehlers φ1 auftretende Fehlersyndrom [ H m , n ν ,   I m ] [ φ 1 ,   ƒ ( a ) ] = H m , n ν φ 1 + ƒ ( a )
    Figure DE102019113970B4_0038
    mit [ φ 1 ,   ƒ ( a ) ] = [ φ 1 , , φ n ,   A 1 , , A m ]
    Figure DE102019113970B4_0039
    ungleich den Fehlersyndromen der korrigierbaren Bitfehler und ungleich dem Fehlersyndrom 0 ist.
  • Es ist möglich, dass in bestimmten Anwendungen nur ein Teil aller möglichen Speicheradressen des Speichers verwendet werden. Diese verwendeten Speicheradressen werden auch als verwendete (Speicher)Adressen bezeichnet. Speicheradressen, die nicht verwendet werden, können auch als nicht verwendete (Speicher)Adressen bezeichnet sein.
  • Im Folgenden kann, sofern nichts anderes ausgeführt ist, der Begriff Speicheradresse alle Speicheradressen oder alle verwendeten Speicheradressen referenzieren.
  • Es ist eine Option, die Transformation der Adressen in transformierte Adresswerte nur für die verwendeten Speicheradressen festzulegen und die transformierten Adresswerte für nicht verwendete Adressen nicht gesondert festzulegen oder aber unbestimmte oder vorgegebene Werte den nicht verwendeten Adressen zuzuordnen.
  • Wird eine Adresstransformation f bspw. durch eine kombinatorische Schaltung realisiert, können die Adressen, denen transformierte Adresswerte als unbestimmte Werte zugeordnet sind, im Rahmen einer Schaltungssynthese optimiert werden.
  • Allgemein gibt es 2m verschiedene m-stellige Binärvektoren, und die transformierten Adresswerte f(a) können höchstens Q = 2 m N 1 > 0
    Figure DE102019113970B4_0040
    verschiedene m-komponentige Werte annehmen. Durch die Adresstransformation f wird eine mögliche Speicheradresse auf einen dieser Q möglichen transformierten Adresswerte abgebildet, der ungleich der in Gleichung (1) angegebenen Fehlersyndrome ist.
  • Es ist eine Option, mehrere Gruppen von Speicheradressen pro Gruppe auf einen vorgegebenen transformierten Adresswert abzubilden. Beispielsweise kann eine Anzahl Anz1 von Speicheradressen auf einen ersten Wert transformierter Adresswerte, eine Anzahl Anz2 von Speicheradressen auf einen zweiten Wert transformierter Adresswerte, usw. abgebildet werden bis hin zu einer Anzahl AnzQ von Speicheradressen, die auf einen Q-ten Wert der transformierten Adresswerte abgebildet werden.
  • Dabei ist es möglich, dass sich die Q Anzahlen, Anz1, Anz3, AnzQ, nur um 1 unterscheiden und A n z 1 A n z 2 A n z Q A n z
    Figure DE102019113970B4_0041
    gilt. Durch eine solche Zuordnung der Speicheradressen auf die transformierten Adresswerte werden jeweils (in etwa) gleich viele Speicheradressen den verschiedenen Werten der transformierten Adresswerte zugeordnet. Sind 2K Speicheradressen vorhanden, dann werden A n z 2 K Q 2 K 2 m N 1
    Figure DE102019113970B4_0042
  • Speicheradressen einem transformierten Adresswert zugeordnet.
  • Verfälscht ein Adressfehler eine Adresse a in eine Adresse a', wird eine Bitfolge v' unter der Adresse a' ausgelesen.
  • [v', f(a')] ist ein Codewort des betrachteten Fehlercodes und es gilt: H [ ν ' ,   f ( a ' ) ] = H [ ν 1 ' , , ν n ' ,   A 1 ' , , A m ' ] = 0.
    Figure DE102019113970B4_0043
  • Ein Adressfehler, bei dem eine Adresse a fehlerhaft in eine Adresse a' gestört ist, kann nicht erkannt werden, wenn H ( ν ' ,   f ( a ) ) = H [ ν 1 ' , , ν n ' ,   A 1 , , A m   ]
    Figure DE102019113970B4_0044
    ein Element der Menge { 0,   s ( b 1 ) , , s ( b N ) }
    Figure DE102019113970B4_0045
    ist.
  • In einem solchen Fall hätte ein Adressenfehler ein Fehlersyndrom, das nicht von dem Fehlersyndrom eines der korrigierbaren Fehler oder von dem Fehlersyndrom 0 unterschieden werden könnte. Tritt das Fehlersyndrom 0 auf, dann kann kein Fehler erkannt werden.
  • Wegen Gleichung (3) und wegen f ( a ' ) + f ( a ' ) = [ A 1 ' , , A m ' ] + [ A 1 ' , , A m ' ] = 0, ,0 = 0
    Figure DE102019113970B4_0046
    gilt:   H [ ν ' ,   f ( a ) ] = H [ ν 1 ' , , ν n ' ,   A 1 , , A m ] =   = H { [ ν 1 ' , , ν n ' ,   A 1 , , A m ] + [ 0, ,0,   A 1 ' , , A m ' ] + [ 0, ,0,   A 1 ' , , A m ' ] } =   = H { [ ν 1 ' , , ν n ' ,   A 1 ' , , A m ' ] + [ 0, ,0,   A 1 ' , , A m ' ] + [ 0, ,0,   A 1 , , A m ] } = = H [ ν 1 ' , , ν n ' ,   A 1 ' , , A m ' ] + H [ 0, ,0,   A 1 , , A m ] + H [ 0, ,0,   A 1 ' , , A m ' ] =   = [ 0, ,0 ] m + [ A 1 , , A m ] + [ A 1 ' , , A m ' ] = f ( a ) + f ( a ' ) .
    Figure DE102019113970B4_0047
  • Somit wird der Adressfehler nicht erkannt, wenn f(a) + f(a') ein Element der Menge { 0,   s ( b 1 ) , , s ( b N ) }
    Figure DE102019113970B4_0048
    ist, d.h. wenn f ( a ) + f ( a ' ) { 0,   s ( b 1 ) , , s ( b N ) }
    Figure DE102019113970B4_0049
    gilt oder wenn f(a') ein Element der Menge { f ( a ) ,   s ( b 1 ) + f ( a ) , , s ( b N ) + f ( a ) }
    Figure DE102019113970B4_0050
    ist.
  • Mit anderen Worten: Ein Adressfehler, der die Adresse a in die Adresse a' verfälscht, kann nicht erkannt werden, wenn f(a') einen Wert annimmt, der gleich einem der Werte 0 + f ( a ) ,   s ( b 1 ) + f ( a ) , , s ( b N ) + f ( a )
    Figure DE102019113970B4_0051
    ist. Da f(a') der transformierte Adresswert einer Speicheradresse a' ist, unterscheidet sich f(a') gemäß Gleichung (1) auch von den (N+1) Werten H m , n ν φ 1 ,   H m , n ν φ 1 + s ( b 1 ) , , H m , n ν φ 1 + s ( b N ) .
    Figure DE102019113970B4_0052
  • Es ist möglich, dass die durch Gleichung (6) beschriebenen (N+1) Werte und die durch Gleichung (1) beschriebenen Werte gemeinsame Werte aufweisen, so dass weniger als (N + 1) Werte für f(a') vorhanden sein können für die ein Adressfehler, der die Adresse a in die Adresse a' verfälscht, nicht erkannt wird.
  • Es sind damit höchstens (N + 1) von insgesamt (2m - N - 1) transformierten Adresswerten vorhanden, so dass ein Adressfehler, der die Adresse a in die Adresse a' verfälscht, nicht erkannt wird.
  • Für eine Wahrscheinlichkeit P(a,a')nd, dass der beschriebene Adressfehler nicht erkannt wird, gilt P ( a ,   a ' ) n d N + 1 2 m N 1
    Figure DE102019113970B4_0053
    und für eine Wahrscheinlichkeit P(a,a')det, dass ein Adressfehler, der die Adresse a in eine beliebige Adresse a' verfälscht, erkannt wird, gilt P ( a ,   a ' ) d e t N + 1 2 m N 1 .
    Figure DE102019113970B4_0054
  • Die (m,n)-Matrix H m , n ν
    Figure DE102019113970B4_0055
    kann beispielsweise eine H-Matrix eines (n,n-m)-Fehlercodes sein. Insbesondere ist es eine Option, dass der Fehlercode ein 1-Bitfehler-korrigierender und 2-Bitfehler-erkennender Code ist, z.B. ein Hsiao-Code mit einer ungeraden Anzahl von Einsen der Spalten der (m,n)-Matrix H m , n ν ,
    Figure DE102019113970B4_0056
  • Vorzugsweise ist eine Wahrscheinlichkeit P(a, a')det für das Erkennen eines Adressfehlers größer oder gleich einem vorgegebenen Wert, beispielsweise 0,5 oder 0,9. So ist es möglich, den Wert m, schrittweise zu erhöhen, bis der gewünschte Wert für die Wahrscheinlichkeit P(a,a')det gemäß Gleichung (8) erreicht ist. Dies wird nachfolgend beispielhaft näher erläutert. Dabei bezeichnet m auch die Anzahl der erforderlichen Prüfbits des verwendeten Fehlercodes.
  • Bei einem Hsiao-Code kann beispielsweise schrittweise anstelle der H-Matrix H m , n ν
    Figure DE102019113970B4_0057
    eines verkürzten Hsiao-Codes mit m Zeilen und n Spalten und m Prüfbits
    • - eine H-Matrix H m + 1, n ν
      Figure DE102019113970B4_0058
      eines verkürzten Hsiao-Codes mit m + 1 Zeilen und n Spalten, die durch eine Identitätsmatrix Im+1 ergänzt wird, mit m + 1 Prüfbits,
    • - eine H-Matrix H m + 2, n ν
      Figure DE102019113970B4_0059
      eines verkürzten Hsiao-Codes mit m + 2 Zeilen und n Spalten, die durch eine Identitätsmatrix Im+2 ergänzt wird, mit m + 2 Prüfbits,
    • - usw.
    verwendet werden. Hierbei gilt beispielhaft N = n.
  • Entsprechend kann ein weiterer Fehlercode, beispielsweise ein Hamming-Code, ein verkürzter Hamming-Code oder ein anderer Fehlercode eingesetzt werden.
  • Beispielsweise kann die Matrix H m + 1, n ν
    Figure DE102019113970B4_0060
    aus der Matrix H m , n ν
    Figure DE102019113970B4_0061
    bestimmt werden, indem eine Zeile von n Nullen zu der Matrix H m , n ν
    Figure DE102019113970B4_0062
    hinzugefügt wird. Entsprechend kann die Matrix H m + 2, n ν
    Figure DE102019113970B4_0063
    aus der Matrix H m + 1, n ν
    Figure DE102019113970B4_0064
    bestimmen, indem eine Zeile von n Nullen zu der Matrix H m + 1, n ν
    Figure DE102019113970B4_0065
    hinzugefügt wird.
  • Auf Grund der hier erläuterten Adresstransformation ist es vorteilhaft möglich, den Fehlercode so zu bestimmen, dass die Wahrscheinlichkeit, einen beliebigen Adressfehler zu erkennen an einen vorgegebenen bzw. gewünschten Wert effizient angepasst wird. Weiterhin ist es möglich, dass die Wahrscheinlichkeit einen beliebigen Adressfehler zu erkennen, im Wesentlichen gleich für alle möglichen Adressfehler ist.
  • Eine Weiterbildung besteht darin, dass ein weiterer Speicherzellenfehler φ2 erkannt wird, wobei beispielhaft n unter einer Adresse adressierte Speicherzellen die Werte φ 1 2 , , φ n 2 = φ 2
    Figure DE102019113970B4_0066
    beim Auslesen an den Datenausgängen der Speicherzellen ausgeben. Die Adresstransformation f kann dabei so bestimmt sein, dass für jede verwendete Speicheradresse a der m-dimensionale transformierte Adresswert f(a) ungleich den ebenfalls m-dimensionalen Werten H m , n ν φ 2 ,   H m , n ν φ 2 + s ( b 1 ) , , H m , n ν φ 2 + s ( b N )
    Figure DE102019113970B4_0067
    ist.
  • Es ist möglich, dass mindestens zwei Speicherzellenwerte φ1 und φ2 fehlerhaft sind. Darüber hinaus können auch weitere Speicherzellenwerte fehlerhaft sein und als fehlerhaft erkannt werden.
  • Beispielhaft wird für Speicherzellenwerte, die durch einen beliebigen n-dimensionalen Binärvektor beschrieben sein können, eine Adresstransformation f(a) bestimmt.
  • Es ist möglich, dass Hv · φ1 = Hv · φ2 und damit { H m , n ν φ 2 ,   H m , n ν φ 2 + s ( b 1 ) , , H m , n ν φ 2 + s ( b N ) } = = { H m , n ν φ 1 ,   H m , n ν φ 1 + s ( b 1 ) , , H m , n ν φ 1 + s ( b N ) }
    Figure DE102019113970B4_0068
    gilt. In einem solchen Fall kann die gleiche Adresstransformation f(a) bestimmt werden, die auch bestimmt werden kann, wenn nur ein einzelner Speicherzellenfehler auftritt.
  • Ist beispielsweise φ 1 = A l l 0 = 0, ,0 n
    Figure DE102019113970B4_0069
    und φ 2 = A l l 1 = 1, ,1 n
    Figure DE102019113970B4_0070
    und weist die Matrix H m , n ν ,
    Figure DE102019113970B4_0071
    in jeder ihrer Zeilen eine gerade Anzahl von Einsen auf, dann ist H m , n ν [ A l l 0 ] = H m , n ν [ A l l 1 ] = 0, ,0 m ,
    Figure DE102019113970B4_0072
    und die Adresstransformation f(a), die für den Speicherzellenfehler φ1 = All - 0 bestimmt wurde, kann auch für den Fall verwendet werden, wenn sowohl der Speicherzellenfehler φ1 = All - 0 als auch der Speicherzellenfehler φ2 = All - 1 erkannt werden soll.
  • Gilt { H m , n ν φ 2 ,   H m , n ν φ 2 + s ( b 1 ) , , H m , n ν φ 2 + s ( b N ) } { H m , n ν φ 1 ,   H m , n ν φ 1 + s ( b 1 ) , , H m , n ν φ 1 + s ( b N ) } ,
    Figure DE102019113970B4_0073
    dann ist die Adresstransformation / so bestimmt, dass sich die transformierten m-komponentigen Adresswerte A 1 , , A m = ƒ ( a )
    Figure DE102019113970B4_0074
    für eine beliebige mögliche Speicheradresse a sowohl von allen (N + 1) m-komponentigen Werten H m , n φ 1 ,   H m , n φ 1 + s ( b 1 ) , , H m , n φ 1 + s ( b N )
    Figure DE102019113970B4_0075
    als auch von allen (N + 1) m-komponentigen Werten H m , n φ 2 ,   H m , n φ 2 + s ( b 1 ) , , H m , n φ 2 + s ( b N )
    Figure DE102019113970B4_0076
    unterscheiden.
  • Es ist eine Option, dass die Matrix H m , n ν
    Figure DE102019113970B4_0077
    die H-Matrix eines Hamming-Codes oder eines verkürzten Hamming-Codes der Länge n mit m Prüfbits ist.
  • Die H-Matrix eines unverkürzten Hamming-Codes mit m Prüfbits weist alle paarweise unterschiedlichen (2m - 1) Binärvektoren ungleich 0, ,0 m
    Figure DE102019113970B4_0078
    als Spalten auf.
  • Eine H-Matrix H m , n ν
    Figure DE102019113970B4_0079
    eines beliebigen linearen Codes der Länge n mit m Prüfbits und n paarweise unterschiedlichen Spalten kann durch Streichen von Spalten aus der H-Matrix eines unverkürzten Hamming-Codes mit m Prüfbits bestimmt werden. Vorzugsweise werden dabei diejenigen Spalten gestrichen, die nicht als Spalten in der H-Matrix H m , n ν
    Figure DE102019113970B4_0080
    vorkommen. Durch Streichen von Spalten der H-Matrix eines Codes wird der Code verkürzt. Mit anderen Worten: Durch Streichen von Spalten der H-Matrix eines unverkürzten Hamming-Codes kann die H-Matrix eines beliebigen linearen Codes mit m Prüfbits bestimmt werden. Ein linearer Code ist durch seine H-Matrix eindeutig bestimmt.
  • Auch ist es eine Option, dass die Matrix H m , n ν
    Figure DE102019113970B4_0081
    die H-Matrix eines Hsiao-Codes oder eines verkürzten Hsiao-Codes ist.
  • Ferner ist es eine Option, dass die Matrix H m , n ν
    Figure DE102019113970B4_0082
    die H-Matrix eines t-Bitfehler-korrigierenden Codes ist. Dabei ist t insbesondere größer oder gleich 1. Ist t gleich 1, kann ein Hamming-Code oder ein Hsiao-Code verwendet werden. Ist t größer oder gleich 2, kann ein t-Bitfehler-korrigierender BCH-Code verwendet werden.
  • Eine Weiterbildung besteht darin, dass die Matrix H m , n ν
    Figure DE102019113970B4_0083
    die H-Matrix eines BCH-Codes ist.
  • Noch eine Weiterbildung ist es, dass zur Erhöhung der Wahrscheinlichkeit einer Adressfehlererkennung die H-Matrix H = [ H m , n ν ,   I m ]
    Figure DE102019113970B4_0084
    eines Fehlercodes in eine modifizierte H-Matrix H = [ H m + 1, n ν ,   I m + 1 ]
    Figure DE102019113970B4_0085
    geändert wird, wobei H m + 1, n ν
    Figure DE102019113970B4_0086
    aus H m , n ν
    Figure DE102019113970B4_0087
    dadurch gebildet wird, dass zu H m , n ν
    Figure DE102019113970B4_0088
    eine (m+ 1)-te Zeile von n binären Werten hinzugefügt wird.
  • Auch ist es eine Option, dass die (m+1)-te Zeile, die der Matrix H m , n ν
    Figure DE102019113970B4_0089
    hinzugefügt wird, n Nullen umfasst.
  • 1 zeigt eine beispielhafte Schaltungsanordnung zur Speicherung von Daten. Hierzu umfasst die Schaltungsanordnung einen
    • - Coder 12 mit
      • - einem ersten Eingang zur Eingabe von Nutzdatenbits x = x1, ... ,x5,
      • - einem zweiten Eingang zur Eingabe von transformierten Adressbits A 1 S , , A 5 S
        Figure DE102019113970B4_0090
        und
      • - einem Ausgang zur Ausgabe der zu speichernden Bits (auch bezeichnet als Bitfolge) ν = ν 1 , , ν 10 = c 1 , , c 5 ,   x 1 , , x 5 ,
        Figure DE102019113970B4_0091
        wobei die Bits c1 bis c5 Prüfbits darstellen,
    • - eine erste Adresstransformationsschaltung 13 mit
      • - einem Eingang zur Eingabe einer Schreibadresse a S = a 1 S , , a 6 S
        Figure DE102019113970B4_0092
        und
      • - einem Ausgang zur Ausgabe der transformierten Adressbits A 1 S
        Figure DE102019113970B4_0093
        bis A 5 S
        Figure DE102019113970B4_0094
        der Schreibadresse,
    • - einen Speicher 11 mit
      • - einem Dateneingang zur Eingabe der von dem Coder 12 bereitgestellten zu speichernden Bits v,
      • - einem Adresseingang zur Eingabe einer Speicheradresse, d.h. einer Schreibadresse as oder einer Leseadresse aL und
      • - einem Datenausgang zur Ausgabe von eventuell fehlerhaft gespeicherten Bits (auch bezeichnet als Bitfolge) ν ' = ν 1 ' , , ν 10 ' = c 1 ' , , c 5 ' ,   x 1 ' , , x 5 ' ,
        Figure DE102019113970B4_0095
    • - eine zweite Adresstransformationsschaltung 14 mit
      • - einem Eingang zur Eingabe der Leseadresse a L = a 1 L , , a 6 L
        Figure DE102019113970B4_0096
        und
      • - einem Ausgang zur Ausgabe transformierter Adressbits A 1 L , , A 5 L
        Figure DE102019113970B4_0097
        der Leseadresse,
    • - einen Korrektor 15 mit
      • - einem ersten Eingang zur Eingabe der transformierten Adressbits A 1 L , , A 5 L ,
        Figure DE102019113970B4_0098
      • - einem zweiten Eingang zur Eingabe der von dem Speicher 11 bereitgestellten eventuell fehlerhaften Bits v' und
      • - einem Ausgang zur Ausgabe von Korrekturwerten e1,..., e10 zur Korrektur der eventuell fehlerhaften Bits v',
    • - eine Fehlererkennungsschaltung 16 mit
      • - einem ersten Eingang zur Eingabe der transformierten Adressbits A 1 L , , A 5 L ,
        Figure DE102019113970B4_0099
      • - einem zweiten Eingang zur Eingabe der von dem Speicher 11 bereitgestellten eventuell fehlerhaften Bits v' und
      • - einem Ausgang zur Ausgabe eines Fehlersignales E und
    • - eine XOR-Schaltung 17 mit
      • - einem ersten Eingang zur Eingabe der von dem Speicher 11 ausgegebenen eventuell fehlerhaften Bits v',
      • - einem zweiten Eingang zur Eingabe der von dem Korrektor 15 ausgegebenen Korrekturwerte e1,..., e10 und
      • - einem Ausgang zur Ausgabe korrigierter Bits ν c o r = ν 1 c o r , , ν 10 c o r = c 1 c o r , , c 5 c o r ,   x 1 c o r , , x 5 c o r .
        Figure DE102019113970B4_0100
  • Der Coder 12 ist eingerichtet, in Abhängigkeit von den an seinen Eingängen anliegenden
    • - Nutzdatenbits x = x1,... ,x5 und
    • - transformierten Adressbits f ( a S ) = A 1 S , , A 5 S
      Figure DE102019113970B4_0101
    an seinem Ausgang zu speichernde Bits v = v1,...,v10 so zu bilden und auszugeben, dass ν ,   f ( a S ) = ν 1 , , ν 10 ,   A 1 S , , A 5 S
    Figure DE102019113970B4_0102
    ein Codewort eines Fehlercodes Ca ist.
  • In dem hier gewählten Ausführungsbeispiel ist eine H-Matrix H = H 5,10 ν ,   I 5
    Figure DE102019113970B4_0103
    des Codes Ca gleich   H = ( H 5,10 ν , I 5 ) = = ( 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 1 c 1 c 2 c 3 c 4 c 5 x 1 x 2 x 3 x 4 x 5 A 1 A 2 A 3 A 4 A 5 )
    Figure DE102019113970B4_0104
  • In der letzten Zeile der H-Matrix aus Gleichung (11) sind die Variablen aufgeführt, die den Spalten der H-Matrix entsprechen. Die Matrix H 5,10 ν = ( 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 )
    Figure DE102019113970B4_0105
    ist die H-Matrix eines (10,5)-Hsiao-Codes, bei der alle Spalten dieser Matrix eine ungerade Anzahl von drei Einsen aufweisen.
  • Aus der in Gleichung (11) gezeigten H-Matrix kann durch Linearkombinationen von Zeilen die systematische Form der H-Matrix Hsys des Codes Ca bestimmt werden gemäß: H s y s = ( 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 c 1 c 2 c 3 c 4 c 5 x 1 x 2 x 3 x 4 x 5 A 1 A 2 A 3 A 4 A 5 ) .
    Figure DE102019113970B4_0106
  • In der letzten Zeile der in Gleichung (12) gezeigten H-Matrix sind wieder die Variablen aufgeführt, die den Spalten der H-Matrix entsprechen: Den Prüfbits c1,..., c5 entsprechen die ersten fünf Spalten, den Nutzdatenbits x1, ... ,x5 entsprechen die nächsten fünf Spalten und den transformierten Adressenbits A1,...,A5 entsprechen die letzten fünf Spalten der H-Matrix Hsym gemäß Gleichung (12).
  • Wird in den Speicher geschrieben, dann entsprechen die Bits A1 bis A5 den transformierten Bits A 1 S
    Figure DE102019113970B4_0107
    bis A 5 S
    Figure DE102019113970B4_0108
    der Schreibadresse aS. Wird aus dem Speicher gelesen, dann entsprechen die Bits A1 bis A5 den transformierten Bits A 1 L
    Figure DE102019113970B4_0109
    bis A 5 L
    Figure DE102019113970B4_0110
    der Leseadresse aL.
  • Die Generatormatrix Gsys des Codes in systematischer Form ist G s y s = ( 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 ) .
    Figure DE102019113970B4_0111
  • In dem Beispiel ist der Coder 12 so ausgestaltet, dass er zu den Nutzdatenbits x1 bis x5 die Prüfbits c1 bis c5 entsprechend der G-Matrix Gsym gemäß den folgenden Beziehungen bestimmt c 1 = x 2 + x 3 + x 5 + A 2 S + A 4 S + A 5 S c 2 = x 1 + x 3 + x 5 + A 1 S + A 3 S + A 4 S c 3 = x 2 + x 4 + x 5 + A 1 S + A 2 S + A 3 S c 4 = x 1 + x 4 + x 5 + A 1 S + A 2 S + A 4 S + A 5 S c 5 = x 1 + x 2 + x 3 + x 4 + x 5 + A 3 S + A 5 S
    Figure DE102019113970B4_0112
    und an dem Ausgang des Coders 12 die Bits c1, ... , c5,x1 ,... ,x5 bereitstellt, wobei die Bitkombination c 1 , , c 5 , x 1 , , x 5 , A 1 S , , A 5 S
    Figure DE102019113970B4_0113
    ein Codewort des Fehlercodes Ca ist.
  • In dem Speicher 11 werden im fehlerfreien Fall die Bits c1,... ,c5,x1,...,x5 unter der Schreibadresse aS gespeichert. Die Schreibadresse aS liegt am Adresseingang des Speichers 11 und am Eingang der Adresstransformationsschaltung 13 an. Die Adresstransformationsschaltung 13 führt die Adresstransformation f durch, wobei die Adresse aS in die Adressbits A 1 S , , A 5 S
    Figure DE102019113970B4_0114
    transformiert wird. Die Adresstransformation f wird im Folgenden näher erläutert.
  • Es ist möglich, dass in dem Speicher 11 gespeicherte Bits an der Adresse aL ausgelesen werden. In diesem Fall liegt die Adresse aL am Adresseingang des Speichers 11 und gleichzeitig an der Adresstransformationsschaltung 14 an. Die Adresstransformationsschaltung 14 führt die Adresstransformation f durch, wobei die Adresse aL in die Adressbits A 1 L , , A 5 L
    Figure DE102019113970B4_0115
    transformiert wird.
  • Der Speicher 11 stellt z.B. an hierfür vorgesehenen Datenausgangsleitungen eventuell fehlerhafte Bits c 1 ' , , c 5 ' , x 1 ' , , x 5 ' = ν 1 ' , , ν 10 ' = ν ' ,
    Figure DE102019113970B4_0116
    auch bezeichnet als eventuell fehlerhafte Bitfolge v', bereit.
  • Der erste Eingang des Korrektors 15 ist mit dem Ausgang der Adresstransformationsschaltung 14 verbunden und der zweite Eingang des Korrektors 15 ist mit dem Ausgang des Speichers 11 verbunden. Der Korrektor 15 ist so ausgestaltet, dass er an seinem Ausgang ein Korrektursignal e1,..., e10 zur Korrektur der eventuell fehlerhaften Bitfolge v' bildet und dem zweiten Eingang der XOR-Schaltung 17 bereitstellt. Der erste Eingang der XOR-Schaltung 17 ist mit dem Ausgang des Speichers 11 verbunden. An ihrem Ausgang stellt die XOR-Schaltung 17 die korrigierten Bits ν c o r = ν 1 c o r , , ν 10 c o r =   = c 1 c o r , , c 5 c o r , x 1 c o r , , x 5 c o r =   = c 1 ' + e 1 , , c 5 ' + e 5 , x 1 ' + e 6 , , x 5 ' + e 10
    Figure DE102019113970B4_0117
    bereit.
  • Der erste Eingang der Fehlererkennungsschaltung 16 ist mit dem Ausgang der Adresstransformationsschaltung 14 verbunden und der zweite Eingang der Fehlererkennungsschaltung 16 ist mit dem Ausgang des Speichers 11 verbunden. Die Fehlererkennungsschaltung 16 ist derart eingerichtet, dass sie an ihrem Ausgang ein Fehlersignal E in Abhängigkeit von
    • - den transformierten Adressbits A 1 L , , A 5 L
      Figure DE102019113970B4_0118
      ,A5 und
    • - der aus dem Speicher 11 gelesenen eventuell fehlerhaften Bitfolge v'
    bildet.
  • 2 zeigt eine beispielhafte Realisierung des Korrektors 15. Gemäß dem hier gezeigten Beispiel wird der Korrektor 15 als eine Reihenschaltung eines Syndromgenerators 21 mit einem Decoders 22 vorgeschlagen.
  • Beispielsweise kann der Syndromgenerator 21 derart eingerichtet sein, dass er in Abhängigkeit von an seinen Eingängen anliegenden transformierten eventuell fehlerhaften Adressbits A 1 L , , A 5 L
    Figure DE102019113970B4_0119
    und der aus dem Speicher 11 ausgelesenen eventuell fehlerhaften Bitfolge v' ein Fehlersyndrom s = [s1, s2, s3, s4, s5] entsprechend der H-Matrix H = [ H m , n ν ,   I m ]
    Figure DE102019113970B4_0120
    aus Gleichung (11) bestimmt gemäß s 1 = c 1 ' + c 4 ' + x 1 ' + x 2 ' + x 3 ' + x 4 ' + A 1 L s 2 = c 2 ' + c 4 ' + c 5 ' + x 1 ' + x 2 ' + x 5 ' + A 2 L s 3 = c 1 ' + c 2 ' + c 3 ' + c 5 ' + x 2 ' + x 3 ' + A 3 L s 4 = c 3 ' + c 4 ' + c 5 ' + x 3 ' + x 4 ' + x 5 ' + A 4 L s 5 = c 1 ' + c 2 ' + c 3 ' + x 1 ' + x 4 ' + x 5 ' + A 5 L
    Figure DE102019113970B4_0121
    und an seinem Ausgang bereitstellt.
  • Der Ausgang des Syndromgenerators 21 ist mit einem fünf Bit breiten Eingang eines Decoders 22 verbunden, der das zehn Bit breite Korrektursignal e = e 1 , , e 10
    Figure DE102019113970B4_0122

    zur Korrektur der Bits c 1 ' , c 2 ' , c 3 ' , c 4 ' , c 5 ' , x 1 ' , x 2 ' , x 3 ' , x 4 ' , x 5 '
    Figure DE102019113970B4_0123
    bildet und an seinem Ausgang bereitstellt.
  • 3 zeigt eine beispielhafte Implementierung des Decoders 22 unter Verwendung von zehn UND-Gattern 31, 32, 33, 34, 35, 36, 37, 38, 39, 310, wobei jedes dieser UND-Gatter fünf Eingänge und einen Ausgang aufweist.
  • Wie in 2 gezeigt ist, erhält der Decoder 22 an seinem Eingang das Fehlersyndrom s mit den (Fehlersyndrom-) Komponenten s1 bis s5.
  • Die Komponente s1 ist (nicht-invertierend) mit den ersten Eingängen der UND-Gatter 31, 34, 36, 37, 38 und 39 verbunden. Weiterhin ist die invertierte Komponente s1 mit den ersten Eingängen der UND-Gatter 32, 33, 35 und 310 verbunden.
  • Die Komponente s2 ist (nicht-invertierend) mit den zweiten Eingängen der UND-Gatter 32, 34, 35, 36, 37, und 310 verbunden. Weiterhin ist die invertierte Komponente s2 mit den zweiten Eingängen der UND-Gatter 31, 33, 38 und 39 verbunden.
  • Die Komponente s3 ist (nicht-invertierend) mit den dritten Eingängen der UND-Gatter 31, 32, 33, 35, 37 und 38 verbunden. Weiterhin ist die invertierte Komponente s3 mit den dritten Eingängen der UND-Gatter 34, 36, 39 und 310 verbunden.
  • Die Komponente s4 ist (nicht-invertierend) mit den vierten Eingängen der UND-Gatter 33, 34, 35, 38, 39 und 310 verbunden. Weiterhin ist die invertierte Komponente s4 mit den vierten Eingängen der UND-Gatter 31, 32, 36 und 37 verbunden.
  • Die Komponente s5 ist (nicht-invertierend) mit den fünften Eingängen der UND-Gatter 31, 32, 33, 36, 39 und 310 verbunden. Weiterhin ist die invertierte Komponente s5 mit den fünften Eingängen der UND-Gatter 34, 35, 37 und 38 verbunden.
  • An dem Ausgang des UND-Gatters 31 wird der Korrekturwert e1, an dem Ausgang des UND-Gatters 32 der Korrekturwert e2, an dem Ausgang des UND-Gatters 33 der Korrekturwert e3, an dem Ausgang des UND-Gatters 34 der Korrekturwert e4, an dem Ausgang des UND-Gatters 35 der Korrekturwert e5, an dem Ausgang des UND-Gatters 36 der Korrekturwert e6, an dem Ausgang des UND-Gatters 37 der Korrekturwert e7, an dem Ausgang des UND-Gatters 38 der Korrekturwert e8, an dem Ausgang des UND-Gatters 39 der Korrekturwert e9 und an dem Ausgang des UND-Gatters 310 der Korrekturwert e10 bereitgestellt.
  • 4 zeigt eine mögliche Implementierung der Fehlererkennungsschaltung 16.
  • Beispielhaft ist die Fehlererkennungsschaltung 16 so ausgestaltet, dass sie ein Fehlersignal E = 0 bereitstellt, wenn ein durch den Fehlercode Ca korrigierbarer Fehler vorliegt oder wenn kein Fehler vorliegt. Die Fehlererkennungsschaltung 16 liefert hingegen ein Fehlersignal E = 1, wenn ein durch den Fehlercode Ca nicht korrigierbarer Fehler vorliegt. Vorzugsweise sollen Adressfehler mit einer möglichst hohen Wahrscheinlichkeit erkannt werden.
  • Die Fehlererkennungsschaltung 16 umfasst einen Syndromgenerator, der entsprechend dem Syndromgenerator 21 ausgeführt sein kann. Weiterhin umfasst die Fehlererkennungsschaltung 16 einen Decoder, der entsprechend dem Decoder 22 ausgeführt sein kann. Zusätzlich weist die Fehlererkennungsschaltung 16 noch
    • - ein ODER-Gatter 41 mit einem fünf Bit breiten Eingang und einem Ausgang,
    • - ein NICHT-ODER-Gatter 42 mit einem zehn Bit breiten Eingang und einem Ausgang sowie
    • - ein UND-Gatter 43 mit zwei Eingängen und einem Ausgang
    auf. An dem Ausgang des UND-Gatters 43 wird das Fehlersignal E bereitgestellt.
  • Der Ausgang des in 4 gezeigten Syndromgenerators 21 ist mit dem Eingang des ODER-Gatters 41 und mit dem Eingang des Decoders 22 verbunden. Der Ausgang des Decoders 22 liefert das Korrektursignal e und ist mit dem Eingang des NICHT-ODER-Gatters 42 verbunden. Der Ausgang des ODER-Gatters 41 ist mit dem ersten Eingang des UND-Gatters 43 und der Ausgang des NICHT-ODER-Gatters 42 ist mit dem zweiten Eingang des UND-Gatters 43 verbunden.
  • Das ODER-Gatter 41 bildet die logische Verknüpfung s 1 s 2 s 3 s 4 s 5
    Figure DE102019113970B4_0124
    der an ihrem Eingang anliegenden Komponenten s1 bis s5 und das NICHT-ODER-Gatter 43 bildet die logische Verknüpfung e 1 e 2 e 10 ¯
    Figure DE102019113970B4_0125
    der an ihrem Eingang anliegenden Korrekturwerte e1 bis e10.
  • Das UND-Gatter 43 bildet das Fehlersignal E wie folgt: E = ( s 1 s 2 s 3 s 4 s 5 ) ( e 1 e 2 e 10 ¯ ) .
    Figure DE102019113970B4_0126
  • Liegt kein Fehler vor, ist das Fehlersyndrom s = s 1 , s 2 , s 3 , s 4 , s 5 = 0,0,0,0,0.
    Figure DE102019113970B4_0127
  • Hieraus folgt ( s 1 s 2 s 3 s 4 s 5 ) = 0
    Figure DE102019113970B4_0128
    und nach Gleichung (16) ergibt sich E = 0. In diesem Fall wird kein Fehler angezeigt.
  • Liegt ein 1-Bitfehler bi der i-ten Komponente der Bitfolge v' = v'1,... v'10 vor, der durch den Fehlercode Ca korrigiert wird, dann ist das durch den Decoder bestimmte Korrektursignal e ( b i ) = ( 0, ,01, i 0, ,0 ) 0
    Figure DE102019113970B4_0129
    und das NICHT-ODER-Gatter 42 gibt an seinem Ausgang den Wert 0 aus, woraus sich am Ausgang des UND-Gatters 43 als Fehlersignal E = 0 ergibt.
  • Somit ist das Fehlersignal E gleich 0, wenn das Fehlersyndrom s = 0 ist oder wenn ein durch den Fehlercode Ca korrigierbarer Fehler vorliegt. In dem hier erläuterten Beispiel ist das der 1-Bitfehler in der Bitfolge v'.
  • Die Fehlererkennungsschaltung 16 und der Korrektor 15 können beispielsweise gemeinsam oder separat implementiert werden. In einer beispielhaften Implementierung kann ein einzelner Syndromgenerator 21 vorgesehen sein, der sowohl für den Korrektor 15 als auch die Fehlererkennungsschaltung 16 genutzt wird. Entsprechend kann ein Decoder 22 oder es können mehrere Decoder 22 vorgesehen sein.
  • Auch ist es eine Option, die Transformationsschaltungen 13 und 14 mittels einer einzelnen physischen Implementierung zu realisieren. Beispielsweise kann eine einzelne Transformationsschaltung unter der Verwendung mindestens eines Multiplexers eingesetzt werden, um die Funktion der Transformationsschaltungen 13 und 14 bereitzustellen.
  • Adresstransformation
  • Im Folgenden wird die Bestimmung der Adresstransformation f, wie sie beispielsweise in den Adresstransformationsschaltungen 13 und 14 realisiert sein kann, näher erläutert.
  • Es wird ein adressierbarer Speicher mit 64 Adressen 0,1, 2, ... ,63 betrachtet. Eine Adresse kann somit mittels sechs Bits a = a 1 , , a 6
    Figure DE102019113970B4_0130
    dargestellt werden. Binärdarstellungen der Adressen 0 bis 63 sind wie üblich 000000,   000001,   000010,   000011,   000100, ,111111.
    Figure DE102019113970B4_0131
  • Beispielhaft wird N = 10 betrachtet. Die zehn möglichen korrigierbaren Fehler sind in diesem Beispiel die 1-Bitfehler b1,... , b10 in der Bitfolge v' aus zehn Bits (mit den fünf Prüfbits c'1,...c'5 und den fünf Nutzdatenbits x'1 ... , x'5) .
  • Die zugehörigen Fehlervektoren sind die 15-stelligen Vektoren [ 1   0 0 9   00000 ] , [ 01   0 0 8   00000 ] , [ 0 0 9   1   00000 ] .
    Figure DE102019113970B4_0132
  • Die jeweils letzten fünf Komponenten der Fehlervektoren, die den transformierten Adresswerten entsprechen, sind gleich 0. Die entsprechenden Fehlersyndrome sind s ( b 1 ) = [ 10101 ] T = H 5,10 ν e 1 s ( b 2 ) = [ 01101 ] T = H 5,10 ν e 2 s ( b 3 ) = [ 00111 ] T = H 5,10 ν e 3 s ( b 4 ) = [ 11010 ] T = H 5,10 ν e 4 s ( b 5 ) = [ 01110 ] T = H 5,10 ν e 5 s ( b 6 ) = [ 11001 ] T = H 5,10 ν e 6 s ( b 7 ) = [ 11100 ] T = H 5,10 ν e 7 s ( b 8 ) = [ 10110 ] T = H 5,10 ν e 8 s ( b 9 ) = [ 10011 ] T = H 5,10 ν e 9 s ( b 10 ) = [ 01011 ] T = H 5,10 ν e 10
    Figure DE102019113970B4_0133
    wobei H 5,10 ν
    Figure DE102019113970B4_0134
    durch Gleichung (11) bestimmt ist.
  • Es wird der Fall betrachtet, dass die Speicherzellenfehler φ 1 = All - 0
    Figure DE102019113970B4_0135
    und φ 2 = All - 1
    Figure DE102019113970B4_0136
    erkannt werden sollen.
  • Es gilt H 5,10 ν φ 1 = H 5,10 ν [ 0, ,0 m ] T = [ 00000 ] T
    Figure DE102019113970B4_0137
    und H 5,10 ν φ 2 = H 5,10 ν [ 1, ,1 m ] T = [ 00000 ] T .
    Figure DE102019113970B4_0138
  • Die Adresstransformation f ist so bestimmt, dass sich die transformierten Adresswerte f(a) =A1,... ,A5 für eine beliebige der 64 Adressen nach Gleichung (1) von den 11 Werten unterscheiden:   { H 5,10 ν φ 1 , H 5,10 ν φ 1 + s ( b 1 ) , , H 5,10 ν φ 1 + s ( b 10 ) } = = { [ 00000 ] T , [ 10101 ] T , [ 01101 ] T , [ 00111 ] T , [ 11001 ] T , [ 01110 ] T ,   [ 11001 ] T , [ 11100 ] T , [ 10110 ] T , [ 10011 ] T , [ 01011 ] T }
    Figure DE102019113970B4_0139
  • Die Adresstransformation f ist darüber hinaus so bestimmt, dass sich die transformierten Adresswerte A1 bis A5 für eine beliebige der 64 Adressen von den 11 Werten { H 5,10 ν φ 2 , H 5,10 ν φ 2 + s ( b 1 ) , , H 5,10 ν φ 2 + s ( b 10 ) }
    Figure DE102019113970B4_0140
    unterscheiden.
  • Gemäß den Gleichungen (18) und (19) gilt beispielhaft: H 5,10 ν φ 2 = H 5,10 ν φ 1 .
    Figure DE102019113970B4_0141
  • Somit unterscheiden sich die in Gleichungen (20) und (21) bestimmten Werte nicht.
  • Als Wertebereich für die Adresstransformation f stehen 25 = 32 mögliche 5-Bit Werte zur Verfügung. Von diesen 32 möglichen 5-Bit Werten verbleiben 32 11 = 21
    Figure DE102019113970B4_0142
  • 5-Bit Werte, die ungleich [00000]T und ungleich den Fehlersyndromen s(b1) bis s(b10) gemäß Gleichung (17) sind.
  • Nachfolgend wird ein Beispiel angegeben, wie anhand der Adresstransformation f den 64 Adressen 21 transformierte Adresswerte zugeordnet werden können. Tabelle 1: Wertetafel einer ersten Adresstransformation f(a)
    A 1 A 2 A 3 A 4 A 5 = f(a) a a a a
    00001 0 21 42 63
    Tabelle 1: Wertetafel einer ersten Adresstransformation f(a) (Fortsetzung)
    A 1 A 2 A 3 A 4 A 5 = f(a) a a a a
    00010 1 22 43
    00011 2 23 44
    00100 3 24 45
    00101 4 25 46
    00110 5 26 47
    01000 6 27 48
    01001 7 28 49
    01010 8 29 50
    01100 9 30 51
    01111 10 31 52
    10000 11 32 53
    10001 12 33 54
    10010 13 34 55
    10100 14 35 56
    10111 15 36 57
    11000 16 37 58
    11011 17 38 59
    11101 18 39 60
    11110 19 40 61
    11111 20 41 62
  • Gemäß der ersten Zeile der Tabelle 1 werden die Adressen 0, 21, 42 und 63 durch die Adresstransformation f in die transformierten Adressbits 00001 abgebildet. Die Adressen 1, 22 und 43 werden entsprechend der zweiten Zeile in die transformierten Adressbits 00010 abgebildet usf. Schließlich zeigt die letzte Zeile der Tabelle 1, dass die Adressen 20, 41 und 62 in die transformierten Adressbits 11111 abgebildet werden.
  • Tabelle 2 zeigt eine Wertetafel einer zweiten Adresstransformation. Entsprechend der ersten Zeile der Tabelle 2 wird nur die Adresse 0 durch die Adresstransformation f in die transformierten Adressbits 00001 abgebildet. Jeder Fehler, der die Adresse 0 in irgendeine andere Adresse verfälscht, führt entsprechend zu transformierten Adresswerten, die sich von dem transformierten Adresswert 00001 unterscheiden. Tabelle 2: Wertetafel einer zweiten Adresstransformation f(a)
    A 1 A 2 A 3 A 4 A 5 = f(a) a a a a
    00001 0
    00010 1 22 43
    00011 2 23 44 63
    00100 3 24 45 42
    00101 4 25 46 21
    00110 5 26 47
    01000 6 27 48
    01001 7 28 49
    01010 8 29 50
    01100 9 30 51
    01111 10 31 52
    10000 11 32 53
    10001 12 33 54
    10010 13 34 55
    10100 14 35 56
    10111 15 36 57
    11000 16 37 58
    11011 17 38 59
    11101 18 39 60
    11110 19 40 61
    11111 20 41 62
  • Eine Implementierung einer als Tabelle beschriebenen Adresstransformation in Form einer Adresstransformationsschaltung kann beispielsweise mit einem Synthesetool realisiert werden. Eine solche Adresstransformationsschaltung kann beispielsweise eine kombinatorische Schaltung oder einen Nur-Lese-Speicher (ROM) umfassen oder als einer dieser Varianten realisiert sein.
  • Erhöhung der Fehlererkennungswahrscheinlichkeit
  • Nachfolgend wird beispielhaft ausgeführt, wie die Fehlererkennungswahrscheinlichkeit für Adressfehler stufenweise bis zu einer gewünschten Fehlererkennungswahrscheinlichkeit erhöht werden kann.
  • Zunächst kann hierfür die H-Matrix H = [ H m , n ν ,   I m ]
    Figure DE102019113970B4_0143
    des Fehlercodes Ca in eine modifizierte H-Matrix H m o d 1 = [ H m + 1, n ν ,   I m + 1 ]
    Figure DE102019113970B4_0144
    eines Fehlercodes Ca1 modifiziert werden, wobei die Matrix H m + 1, n ν
    Figure DE102019113970B4_0145
    aus der Matrix H m , n ν
    Figure DE102019113970B4_0146
    so gebildet wird, dass zu der Matrix H m , n ν
    Figure DE102019113970B4_0147
    eine (m+ 1)-te Zeile von n binären Werten hinzugefügt wird, die n Nullen aufweisen kann. Weiterhin kann die m-dimensionale Einheitsmatrix Im durch eine (m + 1)-dimensionale Einheitsmatrix Im+1 ersetzt werden.
  • Die Adresstransformation f ist so bestimmt, dass sich die transformierten (m+ 1)-komponentigen Adresswerte f(a) =A1,... ,Am+1 für eine beliebige mögliche Speicheradresse a von allen (m+1)-komponentigen Werten (wobei es (N + 1) solche Werte gibt) H m + 1, n ν φ 1 ,   H m + 1, n ν φ 1 + s ( b 1 ) , , H m + 1, n ν φ 1 + s ( b N ) ,
    Figure DE102019113970B4_0148
    unterscheiden. Insoweit zeigt Gleichung (22) einen Unterschied zur Gleichung (1).
  • Die (m+1)-dimensionalen Vektoren { H m + 1, n ν φ 1 ,   H m + 1, n ν φ 1 + s ( b 1 ) , , H m + 1, n ν φ 1 + s ( b N ) }
    Figure DE102019113970B4_0149
    werden aus den m-dimensionalen Vektoren { H m , n ν φ 1 ,   H m , n ν φ 1 + s ( b 1 ) , , H m , n ν φ 1 + s ( b N ) }
    Figure DE102019113970B4_0150
    dadurch gebildet, dass an jeden dieser Vektoren eine 0 angefügt wird. Anstelle der (2m - N - 1) möglichen Werte für die transformierten Adresswerte des Fehlercodes Ca ergeben sich (2m+1 - N - 1) mögliche Werte für die transformierten Adresswerte, wodurch sich die relative Anzahl der nicht erkennbaren Adressfehler verringert.
  • In einem nächsten Schritt ist es möglich, die H-Matrix H m o d 1 = [ H m + 1, n ν ,   I m + 1 ]
    Figure DE102019113970B4_0151
    des Fehlercodes Ca1 in eine modifizierte H-Matrix H m o d 2 = [ H m + 2, n ν ,   I m + 2 ]
    Figure DE102019113970B4_0152
    eines Fehlercodes Ca2 zu modifizieren, wobei die Matrix H m + 2, n ν
    Figure DE102019113970B4_0153
    aus der Matrix H m + 1, n ν
    Figure DE102019113970B4_0154
    so gebildet wird, dass zu der Matrix H m + 1, n ν
    Figure DE102019113970B4_0155
    eine (m + 2)-te Zeile aus n binären Werten hinzugefügt wird, die n Nullen aufweisen kann. Weiterhin kann die (m+ 1)-dimensionale Einheitsmatrix Im+1 durch eine (m+2)-dimensionale Einheitsmatrix Im+2 ersetzt werden.
  • Die Adresstransformation f ist so bestimmt, dass sich die transformierten (m + 2)-komponentigen Adresswerte f(a) = A1,... ,Am+2 für eine beliebige mögliche Speicheradresse a von allen (m + 2)-komponentigen Werten (wobei es (N + 1) solche Werte gibt) H m + 2, n ν φ 1 ,   H m + 2, n ν φ 1 + s ( b 1 ) , , H m + 2, n ν φ 1 + s ( b N ) ,
    Figure DE102019113970B4_0156
    unterscheiden. Hierbei sei auf den Unterschied zwischen den Gleichungen (22) und (23) verwiesen.
  • Die (m + 2)-dimensionalen Vektoren { H m + 2, n ν φ 1 ,   H m + 2, n ν φ 1 + s ( b 1 ) , , H m + 2, n ν φ 1 + s ( b N ) }
    Figure DE102019113970B4_0157
    sind aus den (m+ 1)-dimensionalen Vektoren { H m + 1, n ν φ 1 ,   H m + 1, n ν φ 1 + s ( b 1 ) , , H m + 1, n ν φ 1 + s ( b N ) }
    Figure DE102019113970B4_0158
    dadurch bestimmt, dass an jeden dieser Vektoren eine 0 angefügt wird. Anstelle der 2m+ 1 - N - 1 möglichen Werte für die transformierten Adressbits des Fehlercodes ergeben sich nun 2m+2 - N - 1 mögliche Werte für die transformierten Adressbits, wodurch sich die relative Anzahl der nicht erkennbaren Adressfehler weiter verringert.
  • Entsprechend kann die H-Matrix (schrittweise) weiter modifiziert werden, um die Fehlererkennungswahrscheinlichkeit für Adressfehler sukzessive zu erhöhen.
  • In Bezug auf das hier erläuterte Beispiel mit der H-Matrix gemäß Gleichung (11) resultiert aus einer ersten Modifikation gemäß den obigen Ausführungen eine modifizierte H-Matrix des Fehlercodes Ca1   H m o d 1 = ( H 6,10 ν , I 6 ) = = ( 1 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 c 1 c 2 c 3 c 4 c 5 x 1 x 2 x 3 x 4 x 5 A 1 A 2 A 3 A 4 A 5 A 6 ) .
    Figure DE102019113970B4_0159
  • Eine zweite Modifikation führt zu einer weiter modifizierten H-Matrix   H m o d 2 = ( H 7,10 ν I 7 ) = ( 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 c 1 c 2 c 3 c 4 c 5 x 1 x 2 x 3 x 4 x 5 A 1 A 2 A 3 A 4 A 5 A 6 A 7 )
    Figure DE102019113970B4_0160
    des Fehlercodes Ca2.
  • Beispiel
  • Beispielhaft wird ein adressierbarer Speicher mit 1024 Adressen betrachtet.
  • Die H-Matrix H = H 5,10 ν , I 5
    Figure DE102019113970B4_0161
    des Fehlercodes Ca gemäß Gleichung (11) weist fünf Zeilen und damit fünf Prüfbits und fünf Bits A1 bis A5 transformierter Adresswerte auf. Die Adresstransformation f bildet die 1024 möglichen Adressen (zehn Bits) auf diese fünf Bits transformierter Adresswerte f(a) ab.
  • { H 5,10 ν φ 1 ,   H 5,10 ν φ 1 + s ( b 1 ) , , H 5,10 ν φ 1 + s ( b 10 } = { 0, s ( b 1 ) , , s ( b 10 }
    Figure DE102019113970B4_0162
    mit H 5,10 ν φ 1 = 0
    Figure DE102019113970B4_0163
    weist 11 fünf-dimensionale Werte oder Belegungen auf, die nicht als mögliche 5-Bit transformierte Adresswerte f(a) zur Verfügung stehen. Damit ist die Adresstransformation / so bestimmt, dass die transformierten Adresswerte f(a) für jede der Adressen a aus {0,1,..., 1023} ungleich dieser 11 Werte ist und somit 25 - 11 = 21 verschiedene Werte annehmen kann. Der Wertebereich der Adresstransformation f umfasst somit 21 Werte.
  • Diese 21 unterschiedlichen Werte können als transformierte Adresswerte f(a) verwendet werden.
  • Es ist möglich, jedem dieser 21 unterschiedlichen Werte jeweils 48 oder 49 Adressen des verwendeten Speichers zuzuordnen, da 21 49 = 1029 > 1024 > 1008 = 21 48
    Figure DE102019113970B4_0164
    gilt. Somit werden höchstens 49 Adressen und mindestens 48 Adressen in eine transformierte Adresse abgebildet.
  • Für eine Adresse a gibt es 1023 mögliche Adressfehler, die die Adresse a in irgendeine andere Adresse verfälschen können. Beispielhaft wird davon ausgegangen, dass jeder mögliche Adressfehler mit der gleichen Wahrscheinlichkeit auftritt.
  • Die Wahrscheinlichkeit P(a, a')det, dass ein Adressfehler erkannt wird, bestimmt sich somit zu P ( a , a ' ) d e t 1 11 2 5 11 = 1 11 21 = 0,476
    Figure DE102019113970B4_0165
    also zu ca. 48%.
  • Reicht diese Fehlererkennungswahrscheinlichkeit nicht aus, kann der Fehlercode Ca mit der H-Matrix gemäß Gleichung (11) durch den Fehlercode Ca1 mit der H-Matrix gemäß Gleichung (24) mit 6 Prüfbits ersetzt werden.
  • Die H-Matrix H m o d 1 = H 6,10 ν , I 6
    Figure DE102019113970B4_0166
    weist sechs Zeilen und damit sechs Prüfbits und sechs Bits A1 bis A6 transformierter Adresswerte auf, in die die 1024 Adressen durch die Adresstransformation / transformiert werden.
  • Die Menge { H 6,10 ν φ 1 ,   H 6,10 ν φ 1 + s ( b 1 ) , , H 6,10 ν φ 1 + s ( b 10 } = { 0, s ( b 1 ) , , s ( b 10 }
    Figure DE102019113970B4_0167
    mit H 6,10 ν φ 1 = 0
    Figure DE102019113970B4_0168
    weist nun 11 sechs-dimensionale Werte oder Belegungen auf. Die Adresstransformation f ist so bestimmt, dass der transformierte Adresswert f(a) für jede Adresse a ungleich dieser 11 Werte ist. Der Wertebereich der Adresstransformation f umfasst somit 26 - 11 = 53 verschiedene Werte, die als transformierte Adresswerte verwendet werden können.
  • Es ist möglich, jedem dieser 53 unterschiedlichen Werte jeweils 19 oder 20 Adressen des verwendeten Speichers zuzuordnen, da 53 20 = 1060 > 1024 > 53 19 = 1007
    Figure DE102019113970B4_0169
    gilt. Somit werden höchstens 20 Adressen und mindestens 19 Adressen in eine transformierte Adresse abgebildet.
  • Die Wahrscheinlichkeit P(a,a')det\, dass ein Adressfehler erkannt wird, bestimmt sich somit zu P ( a ,   a ' ) d e t 1 11 2 6 11 = 1 11 53 = 0,792
    Figure DE102019113970B4_0170
    also zu ca. 79%.
  • Ist auch diese Fehlererkennungswahrscheinlichkeit nicht ausreichend, kann in einem nächsten Schritt den Fehlercode Ca1 mit der H-Matrix gemäß Gleichung (24) durch den Fehlercode Ca2 mit der H-Matrix gemäß Gleichung (25) mit 7 Prüfbits ersetzt werden.
  • Die H-Matrix H m o d 2 = H 7,10 ν , I 7
    Figure DE102019113970B4_0171
    weist sieben Zeilen und damit sieben Prüfbits und sieben Bits A1 bis A7 transformierte Adresswerte auf, in die die 1024 Adressen durch die Adresstransformation / transformiert werden.
  • Die Menge { H 7,10 ν φ 1 ,   H 7,10 ν φ 1 + s ( b 1 ) , , H 7,10 ν φ 1 + s ( b 10 } = { 0, s ( b 1 ) , , s ( b 10 }
    Figure DE102019113970B4_0172
    mit H 7,10 ν φ 1 = 0
    Figure DE102019113970B4_0173
    weist jetzt 11 sieben-dimensionale Werte oder Belegungen auf. Die Adresstransformation f ist so bestimmt, dass der transformierte Adresswert f(a) für jede Adresse a ungleich dieser 11 Werte ist. Der Wertebereich der Adresstransformation f umfasst somit 27 - 11 = 117 verschiedene Werte, die als transformierte Adresswerte verwendet werden können.
  • Es ist möglich, jedem dieser 117 unterschiedlichen Werte jeweils 8 oder 9 Adressen des verwendeten Speichers zuzuordnen, da 117 1053 > 1024 > 117 8 = 936
    Figure DE102019113970B4_0174
    gilt. Somit werden höchstens 8 Adressen und mindestens 7 Adressen in eine transformierte Adresse abgebildet.
  • Die Wahrscheinlichkeit P(a, a')det, dass ein Adressfehler erkannt wird, bestimmt sich somit zu P ( a ,   a ' ) d e t 1 11 2 7 11 = 1 11 117 = 0,906
    Figure DE102019113970B4_0175
    also zu ca. 90%.
  • Ist diese Fehlererkennungswahrscheinlichkeit immer noch nicht ausreichend, kann in entsprechenden folgenden Schritten die H-Matrix in analoger Weise weiter modifiziert werden, bis die gewünschte Fehlererkennungswahrscheinlichkeit für Adressfehler erreicht ist.
  • Speicherzellenfehler
  • Nachfolgend wird ausgeführt, wie ein Speicherzellenfehler erkannt wird.
  • Als Beispiel eines Speicherzellenfehlers dient der Speicherzellenfehler All-0. Am Adresseingang des Speichers 11 aus 1 und am Eingang der Adresstransformationsschaltung 14 liegt die Leseadresse aL an. Die Adresstransformationsschaltung 14 bildet die transformierten Adresswerte f ( a L ) = A 1 L , A 2 L , A 3 L , A 4 L , A 5 L ,
    Figure DE102019113970B4_0176
    die an dem ersten Eingang des Korrektors 15 anliegen. Der Speicher 11 stellt auf Grund des All-0-Fehlers an seinem Ausgang die Bitfolge ν ' = 0, ,0 10
    Figure DE102019113970B4_0177
    bereit, die an dem zweiten Eingang des Korrektors 15 anliegt.
  • Wie in 2 gezeigt, ist der Korrektor 15 als eine Reihenschaltung aus Syndromgenerator 21 und Decoder 22 ausgeführt. Die transformierten Adressbits A 1 L
    Figure DE102019113970B4_0178
    bis A 5 L
    Figure DE102019113970B4_0179
    liegen an dem ersten Eingang des Syndromgenerators 21 an und an seinem zweiten Eingang liegt die Bitfolge v' an. Der Syndromgenerator 21 ist derart eingerichtet, dass er für die transformierten Adressbits A 1 L , A 2 L , A 3 L , A 4 L , A 5 L
    Figure DE102019113970B4_0180
    entsprechend Gleichung (15) das Fehlersyndrom s 1 = A 1 L s 2 = A 2 L s 3 = A 3 L s 4 = A 4 L s 5 = A 5 L
    Figure DE102019113970B4_0181
    bildet und an seinem Ausgang ausgibt. Wie in 4 gezeigt, ist dieser Ausgang des Syndromgenerators 21 mit dem Eingang des Decoders 22 und mit dem Eingang des ODER-Gatters 41 verbunden.
  • Die Adresstransformationsschaltung 14 ist derart eingerichtet, dass die transformierten Adresswerte jeder möglichen Adresse ungleich den Fehlersyndromen der korrigierbaren Fehler in der Bitfolge v' und ungleich dem Wert 00000 sind. Der Decoder 22 gibt den Korrekturwert e = 0, ,0 10
    Figure DE102019113970B4_0182
    aus, der an den Eingang des NICHT-ODER-Gatters 42 geführt wird.
  • Das NICHT-ODER-Gatter 42 stellt an seinem Ausgang den Wert 1 bereit, der dem UND-Gatter 43 zugeführt wird. Da das von dem Syndromgenerator 21 bereitgestellte Fehlersyndrom ungleich 00000 ist, stellt das ODER-Gatter 41 an seinem Ausgang den Wert 1 bereit, der ebenfalls dem UND-Gatter 43 zugeführt wird. Somit gibt das UND-Gatter 43 an seinem Ausgang das Fehlersignal E = 1 aus, was im Ergebnis bestätigt, dass ein nicht korrigierbarer Fehler aufgetreten ist, so dass der Speicherzellenfehler All-0 als nicht korrigierbarer Fehler erkannt wird.
  • Liegt kein Fehler vor oder ist ein korrigierbarer Fehler aufgetreten, so ist das Fehlersignal E am Ausgang des UND-Gatters 43 gleich 0.
  • Literaturverzeichnis:
    • [1] Lin, S.; Costello, D.: „Error Control Coding“, Prentice Hall 1983, Seiten 79 bis 82, 141 bis 170 und 499 bis 502

Claims (17)

  1. Verfahren zur Erkennung eines Adressfehlers beim Lesen einer Bitfolge aus einem Speicher, - bei dem geprüft wird, ob die Bitfolge in Verbindung mit der anliegenden Leseadresse ein Codewort eines Fehlercodes ist, - bei dem, falls die Bitfolge in Verbindung mit der anliegenden Leseadresse kein Codewort des Fehlercodes ist, ein Adressfehler dann erkannt wird, sofern der Fehlercode einen durch ihn korrigierbaren Fehler nicht korrigiert, - bei dem mittels des Fehlercodes ein Speicherzellenfehler in der Bitfolge erkannt und/oder korrigiert wird, - bei dem der Speicherzellenfehler mittels eines ersten Fehlersyndroms erkannt und/oder korrigiert wird, - bei dem der Adressfehler mittels eines zweiten Fehlersyndroms erkannt wird, wobei das erste Fehlersyndrom von dem zweiten Fehlersyndrom unterschiedlich ist.
  2. Verfahren nach Anspruch 1, bei dem der durch den Fehlercode zu korrigierende Fehler eine Teilmenge der durch den Fehlercode korrigierbaren Fehler ist.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem kein Adressfehler erkannt wird, falls die Bitfolge in Verbindung mit der anliegenden Leseadresse ein Codewort des Fehlercodes ist.
  4. Verfahren nach einem der vorherigen Ansprüche, bei dem vor dem Lesen der Bitfolge aus dem Speicher folgende Schritte durchgeführt werden: - Speichern einer Bitfolge v unter einer Adresse a in den Speicher, wobei die Bitfolge v und ein mittels einer Transformation f transformierter Adresswert f(a) ein Codewort des Fehlercodes darstellen, - Zuordnen der verwendeten Speicheradresse a zu dem transformierten Adresswert f(a) = A1,... ,Am, wobei der transformierte Adresswert f(a) verschieden von einem Fehlersyndrom des Speicherzellenfehlers und verschieden von Werten ist, die sich aus Bitfehlern zugeordneten Fehlersyndromen ergeben.
  5. Verfahren nach Anspruch 4, bei dem nicht alle Adressen des Speichers verwendet werden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Speicher Speicherzellen aufweist, in denen n-komponentige Bitfolgen abspeicherbar sind, wobei N verschiedene Bitfehler b1 bis bN korrigierbar sind, die eine Bitfolge v = v1,... ,vn in Bitfolgen v(b1),v(b2), ...,v(bN) verfälschen, wobei ein Speicherzellenfehler φ1, bei dem n Speicherzellen die Werte φ 1 1 , , φ n 1 = φ 1
    Figure DE102019113970B4_0183
    beim Auslesen aus den Speicherzellen ergeben, erkannt wird, - wobei die Bitfolge v, die unter einer Adresse a in den Speicher geschrieben wird, so bestimmt ist, dass im fehlerfreien Fall [v, f(a)] ein Codewort des Fehlercodes Ca mit einer H-Matrix H = ( H m , n ν ,   I m )
    Figure DE102019113970B4_0184
    ist, - wobei eine Adresstransformation / so bestimmt ist, dass sie jeder verwendeten Speicheradresse a eindeutig einen transformierten Adressenwert f(a) =A1,... ,Am zuordnet, der ungleich den Werten H m , n ν φ 1 ,   H m , n ν φ 1 + s ( b 1 ) , , H m , n ν φ 1 + s ( b N )
    Figure DE102019113970B4_0185
    ist, wobei s(b1) bis s(bN) den Bitfehlern zugeordnete Fehlersyndrome sind, - wobei folgenden Beziehungen gelten: 2 m > N + 1, n 2, m 2, N 1,
    Figure DE102019113970B4_0186
    - wobei H m , n ν
    Figure DE102019113970B4_0187
    eine binäre (m,n)-Matrix und Im die m-dimensionale Einheitsmatrix bezeichnen.
  7. Verfahren nach Anspruch 6, bei dem ein weiterer Speicherzellenfehler φ2 erkannt wird, wobei n unter einer Adresse adressierte Speicherzellen die Werte φ 1 2 , , φ n 2 = φ 2
    Figure DE102019113970B4_0188
    beim Auslesen aus den Speicherzellen ergeben, und die Adresstransformation f so bestimmt ist, dass für jede verwendete Speicheradresse a der transformierte Adresswert f(a) ungleich den Werten H ν φ 2 , H ν φ 2 + s ( b 1 ) , , H ν φ 2 + s ( b N )
    Figure DE102019113970B4_0189
    ist.
  8. Verfahren nach einem der Ansprüche 6 oder 7, bei dem die Matrix H m , n ν
    Figure DE102019113970B4_0190
    eine H-Matrix eines Hamming-Codes oder eines verkürzten Hamming-Codes ist.
  9. Verfahren nach einem der Ansprüche 6 oder 7, bei dem die Matrix H m , n ν
    Figure DE102019113970B4_0191
    eine H-Matrix eines Hsiao-Codes oder eines verkürzten Hsiao-Codes ist.
  10. Verfahren nach einem der Ansprüche 6 oder 7, bei dem die Matrix H m , n ν
    Figure DE102019113970B4_0192
    eine H-Matrix eines t-Bitfehler-korrigierenden Codes ist.
  11. Verfahren nach einem der Ansprüche 6 oder 7, bei dem die Matrix H m , n ν
    Figure DE102019113970B4_0193
    eine H-Matrix eines BCH-Codes ist.
  12. Verfahren nach einem der vorhergehenden Ansprüche, bei dem zur Erhöhung einer Wahrscheinlichkeit der Adressfehlererkennung die H-Matrix H = [ H m , n ν ,   I m ]
    Figure DE102019113970B4_0194
    eines Fehlercodes in eine modifizierte H-Matrix H = [ H m + 1, n ν ,   I m + 1 ]
    Figure DE102019113970B4_0195
    geändert wird, indem zu der H-Matrix H m , n ν
    Figure DE102019113970B4_0196
    eine (m+ 1)-te Zeile von n binären Werten hinzugefügt wird.
  13. Verfahren nach Anspruch 12, bei dem die (m+ 1)-te Zeile, die der Matrix H m , n ν
    Figure DE102019113970B4_0197
    hinzugefügt wird, n Nullen umfasst.
  14. Vorrichtung zum Erkennen eines Adressfehlers, wobei die Vorrichtung eine Verarbeitungseinheit aufweist, die derart eingerichtet ist, dass - geprüft wird, ob eine Bitfolge in Verbindung mit der anliegenden Leseadresse ein Codewort eines Fehlercodes ist, - falls die Bitfolge in Verbindung mit der anliegenden Leseadresse kein Codewort des Fehlercodes ist, ein Adressfehler dann erkannt wird, sofern der Fehlercode einen durch ihn korrigierbaren Fehler nicht korrigiert, - wobei mittels des Fehlercodes ein Speicherzellenfehler in der Bitfolge erkannt und/oder korrigiert wird, - wobei der Speicherzellenfehler mittels eines ersten Fehlersyndroms erkannt und/oder korrigiert wird, - wobei der Adressfehler mittels eines zweiten Fehlersyndroms erkannt wird, wobei das erste Fehlersyndrom von dem zweiten Fehlersyndrom unterschiedlich ist.
  15. Vorrichtung nach Anspruch 14, bei der die Verarbeitungseinheit eingerichtet ist, die Bitfolge aus einem Speicher zu lesen.
  16. System umfassend mindestens eine Vorrichtung nach einem der Ansprüche 14 oder 15.
  17. Computerprogrammprodukt, dass das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, Schritte des Verfahrens gemäß einem der Ansprüche 1 bis 13 durchzuführen.
DE102019113970.8A 2019-03-24 2019-05-24 Erkennung von adressfehlern Active DE102019113970B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102019113970.8A DE102019113970B4 (de) 2019-05-24 2019-05-24 Erkennung von adressfehlern
US16/881,473 US11650877B2 (en) 2019-03-24 2020-05-22 Detecting address errors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019113970.8A DE102019113970B4 (de) 2019-05-24 2019-05-24 Erkennung von adressfehlern

Publications (2)

Publication Number Publication Date
DE102019113970A1 DE102019113970A1 (de) 2020-11-26
DE102019113970B4 true DE102019113970B4 (de) 2022-11-24

Family

ID=73052279

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019113970.8A Active DE102019113970B4 (de) 2019-03-24 2019-05-24 Erkennung von adressfehlern

Country Status (2)

Country Link
US (1) US11650877B2 (de)
DE (1) DE102019113970B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023005919A (ja) * 2021-06-29 2023-01-18 ルネサスエレクトロニクス株式会社 半導体装置および誤り検出方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2655653A1 (de) 1976-12-08 1978-06-22 Siemens Ag Verfahren und anordnung zur erkennung der richtigen zuordnung von adresse und speicherwort in einem datenspeicher
US8560899B2 (en) 2010-07-30 2013-10-15 Infineon Technologies Ag Safe memory storage by internal operation verification
US8812935B2 (en) 2012-08-02 2014-08-19 Oracle International Corporation Using a data ECC to detect address corruption

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4230061B2 (ja) * 1999-07-21 2009-02-25 株式会社アドバンテスト 不良救済解析器を搭載したメモリ試験装置
DE102006004168A1 (de) * 2005-08-04 2007-02-08 Robert Bosch Gmbh Überprüfung eines Adressdecoders
JP2008204085A (ja) * 2007-02-19 2008-09-04 Toshiba Corp 半導体記憶装置
US9450613B2 (en) * 2010-11-10 2016-09-20 Infineon Technologies Ag Apparatus and method for error correction and error detection
DE102015215401B4 (de) * 2015-08-12 2020-10-01 Infineon Technologies Ag Speichervorrichtung und Verfahren zum Korrigieren einer gespeicherten Bitfolge

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2655653A1 (de) 1976-12-08 1978-06-22 Siemens Ag Verfahren und anordnung zur erkennung der richtigen zuordnung von adresse und speicherwort in einem datenspeicher
US8560899B2 (en) 2010-07-30 2013-10-15 Infineon Technologies Ag Safe memory storage by internal operation verification
US8812935B2 (en) 2012-08-02 2014-08-19 Oracle International Corporation Using a data ECC to detect address corruption

Also Published As

Publication number Publication date
DE102019113970A1 (de) 2020-11-26
US11650877B2 (en) 2023-05-16
US20200371864A1 (en) 2020-11-26

Similar Documents

Publication Publication Date Title
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE3586851T2 (de) Fehlerkorrekturverfahren und anordnung fuer chips mit multibitausgabe.
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE2260850A1 (de) Fehlerkorrektursystem
DE102007058828A1 (de) Speicherbauelement und Fehlerkorrekturverfahren
DE102005052698A1 (de) Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
DE102005022107B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102013222136B4 (de) Schaltung und Verfahren für die Mehr-Bit-Korrektur
DE102011087634A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102018131613A1 (de) Fehlererkennung mittels Gruppenfehler
DE102019113970B4 (de) Erkennung von adressfehlern
DE102013109315A1 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102018126685B3 (de) Verarbeitung von Daten
DE3853708T2 (de) Gerät zur Korrektur von einfachen Bitfehlern und zur Erkennung von doppelten Bitfehlern bei Datenübertragung.
DE102021109391B3 (de) Multibytefehler-Erkennung
DE102015121646B4 (de) Fehlerkorrektur
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung

Legal Events

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

Ref document number: 102019009348

Country of ref document: DE

R020 Patent grant now final