DE102013222136B9 - Schaltung und Verfahren für die Mehr-Bit-Korrektur - Google Patents

Schaltung und Verfahren für die Mehr-Bit-Korrektur Download PDF

Info

Publication number
DE102013222136B9
DE102013222136B9 DE102013222136.3A DE102013222136A DE102013222136B9 DE 102013222136 B9 DE102013222136 B9 DE 102013222136B9 DE 102013222136 A DE102013222136 A DE 102013222136A DE 102013222136 B9 DE102013222136 B9 DE 102013222136B9
Authority
DE
Germany
Prior art keywords
values
binary
circuit
bits
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
DE102013222136.3A
Other languages
English (en)
Other versions
DE102013222136B4 (de
DE102013222136A1 (de
Inventor
Thomas Kern
Michael Goessel
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
Publication of DE102013222136A1 publication Critical patent/DE102013222136A1/de
Publication of DE102013222136B4 publication Critical patent/DE102013222136B4/de
Application granted granted Critical
Publication of DE102013222136B9 publication Critical patent/DE102013222136B9/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/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1068Adding 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 sector programmable memories, e.g. flash disk
    • 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

Abstract

Es wird eine Schaltung bereitgestellt, die einen Speicher mit mehreren Speicherzellen aufweist, wobei mindestens eine von den mehreren Speicherzellen des Speichers eingerichtet ist, einen von mindestens drei verschiedenen Zuständen anzunehmen. Die Schaltung umfasst auch einen ersten Unterschaltkreis BT, der ausgelegt ist, auf der Basis einer Folge von binären Werten mehrere ternäre Ausgabewerte zu erzeugen, einen zweiten Unterschaltkreis LH, der ausgelegt ist, einen oder mehrere ternäre Zustandswerte auf der Basis des einen oder der mehreren Zustandswerte in binäre Hilfslesewerte zu transformieren, und einen Codierer, der ausgelegt ist, ein oder mehrere binäre Prüfbits zu erzeugen, wobei der Codierer ausgelegt ist, jedes von dem einen oder den mehreren erzeugten Prüfbits in einer anderen Speicherzelle zu speichern.

Description

  • Die vorliegende Erfindung betrifft die Fehlerkorrektur und die Fehlererkennung und insbesondere eine Vorrichtung und ein Verfahren für die Korrektur von Fehlern von Speichern mit Speicherzellen mit mehr als zwei Zuständen.
  • Fehlerkorrektur- und Fehlererkennungstechniken spielen eine bedeutende Rolle. Nicht nur im Bereich der Computernetzwerke und der Datenübertragung über drahtgebundene oder drahtlose Netzwerke, sondern auch im Bereich der Sicherung von Speicherinhalt sind Fehlerkorrektur- und Fehlererkennungstechniken weit verbreitet.
  • Obwohl herkömmliche Speicher binäre Speicherzellen aufweisen, haben ternäre Speicherzellen, die drei verschiedene Werte annehmen können, zunehmend an Bedeutung gewonnen.
  • US 2007 / 0 245 168 A1 beschreibt einen Assoziativspeicher mit einer Speichermatrix zum Speichern von Speicherdaten, und eine RAM-Einheit mit einer Speichermatrix zum Speichern derselben Speicherdaten und hinzugefügter Prüfbits, um festzustellen, ob die Speicherdaten in der Speichermatrix einen Fehler aufweisen. Eine Fehlerkorrekturschaltung verwendet die Prüfbits, um etwaige Fehler von aus dem Speicherfeld der RAM-Einheit gelesenen Daten zu korrigieren und die fehlerkorrigierten Daten in die Speicherfelder umzuschreiben.
  • US 2009 / 0 003 041 A1 beschreibt eine Halbleiterspeichervorrichtung, die mehrere Speicherzellen umfasst, die jeweils mindestens drei verschiedene Zustände speichern können; einen ersten Leseverstärker zum Verstärken eines in Übereinstimmung mit einem in einer ausgewählten Speicherzelle gespeicherten Zustand ausgelesenen ternären Potentials auf der Grundlage eines Vergleichs mit einem ersten Referenzpotential; und einen zweiten Leseverstärker zum Verstärken eines in Übereinstimmung mit einem in der ausgewählten Speicherzelle gespeicherten Zustand ausgelesenen ternären Potentials auf der Grundlage eines Vergleichs mit einem zweiten Referenzpotential.
  • US 2012 / 0 079 343 A1 beschreibt eine Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers umfasst einen Fehlerpositionsbestimmer des inneren Codes, einen Fehlersyndrombestimmer des äußeren Codes, einen Ableitungsbestimmer und einen Gesamtfehlerpositionsbestimmer. Der Fehlerpositionsbestimmer des inneren Codes ermittelt anhand des Innencodes mindestens eine mögliche Fehlerposition eines Bitfehlers in der codierten Bitfolge. Der Fehlersyndrombestimmer des äußeren Codes bestimmt einen Wert eines nichtlinearen Syndrombits des äußeren Codes auf der Grundlage einer nichtlinearen Funktion von Bits in der codierten Bitfolge.
  • Ein der Erfindung zugrunde liegendes Problem besteht darin, dass Fehlerkorrekturtechniken für Speicherzellen mit mehr als zwei Zuständen nur eingeschränkte Fähigkeiten aufweisen.
  • Es wäre in hohem Maße vorteilhaft, und es ist Aufgabe, verbesserte Konzepte für die Korrektur von Fehlern in Speichern mit Speicherzellen mit mehr als zwei Zuständen bereitzustellen.
  • Die Aufgabe wird durch eine Schaltung nach Anspruch 1, durch eine Schaltung nach Anspruch 11, durch eine Schaltung nach Anspruch 38 und durch ein Verfahren nach Anspruch 45 gelöst.
  • Einer Ausführungsform entsprechend wird eine Schaltung bereitgestellt. Die Schaltung weist einen Speicher mit mehreren Speicherzellen auf, wobei eine oder mehrere von den mehreren Speicherzellen des Speichers jeweils geeignet sind, einen von mindestens drei verschiedenen Zuständen anzunehmen. Die Schaltung weist ferner einen ersten Unterschaltkreis BT auf, der ausgelegt ist, basierend auf einer Folge von binären Werten mehrere Ausgabewerte zu erzeugen, wobei eine nicht leere Untermenge von den mehreren Ausgabewerten einen von mindestens drei verschiedenen Werten der nicht leeren Untermenge von Ausgabewerten aufweist und wobei der erste Unterschaltkreis BT ausgelegt ist, jeden der Ausgabewerte als einen Zustandswert in einer anderen von der einen oder den mehreren Speicherzellen zu speichern, die alle geeignet sind, einen von den mindestens drei verschiedenen Zuständen anzunehmen. Die Schaltung weist auch einen zweiten Unterschaltkreis LH auf, der ausgelegt ist, einen oder mehrere der Zustandswerte aus mindestens einer der Speicherzellen zu lesen, die geeignet sind, einen von den mindestens drei verschiedenen Zustände anzunehmen, wobei jeder von dem einen oder den mehreren Zustandswerten einen von den mindestens drei verschiedenen Basiswerten aufweist und wobei der zweite Unterschaltkreis LH außerdem ausgelegt ist, basierend auf dem einen oder den mehreren Zustandswerten binäre Hilfslesewerte zu bestimmen. Schließlich weist die Schaltung einen Codierer auf, der ausgelegt ist, basierend auf mindestens einigen Werten der Folge von binären Werten ein oder mehrere binäre Prüfbits zu erzeugen, wobei ein Fehlerkorrekturcode mehrere Codewörter umfasst und wobei der Codierer ausgelegt ist, das eine oder die mehreren binären Prüfbits so zu erzeugen, dass die binären Hilfslesewerte und das eine oder die mehreren binären Prüfbits zusammen eines der Codewörter des Fehlerkorrekturcodes erzeugen, wenn die binären Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0001
    und das eine oder die mehreren binären Prüfbits c1,...,cl fehlerfrei sind. Der Codierer ist ausgelegt, jedes von dem einen oder den mehreren erzeugten binären Prüfbits in einer oder mehreren der Speicherzellen des Speichers derart zu speichern, dass jedes von dem einen oder den mehreren Prüfbits in einer anderen von den Speicherzellen des Speichers gespeichert wird, wobei jede von den Speicherzellen, in der ein Prüfbit gespeichert ist, geeignet ist, einen von mindestens zwei verschiedenen Zuständen anzunehmen.
  • Darüber hinaus wird eine Schaltung gemäß einer weiteren Ausführungsform bereitgestellt. Die Schaltung weist einen Speicher mit mehreren Speicherzellen auf, wobei eine oder mehrere von den mehreren Speicherzellen des Speichers ternäre Speicherzellen sind, die alle geeignet sind, einen von drei verschiedenen Zuständen anzunehmen. Die Schaltung weist ferner einen ersten Unterschaltkreis BT auf, der ausgelegt ist, basierend auf einer Folge von binären Werten mehrere Ausgabewerte zu erzeugen, wobei eine nicht leere Untermenge von den mehreren Ausgabewerten einen von drei verschiedenen Basiswerten aufweist, wobei der erste Unterschaltkreis ausgelegt ist, jeden der Ausgabewerte der nicht leeren Untermenge von Ausgabewerten als einen Zustandswert in einer anderen von der einen oder den mehreren ternären Speicherzellen zu speichern, die jeweils geeignet sind, einen von den drei verschiedenen Zuständen anzunehmen, und die verbleibenden Ausgabewerte in Speicherzellen eingerichtet sind, mindestens zwei verschiedene Werte zu speichern. Die Schaltung weist auch einen zweiten Unterschaltkreis LH auf, der ausgelegt ist, einen oder mehrere von den Zustandswerten aus den Speicherzellen zu lesen, wobei der zweite Unterschaltkreis LH ferner ausgelegt ist, basierend auf dem einen oder den mehreren Zustandswerten binäre Hilfslesewerte zu bestimmen. Die Schaltung weist auch einen Codierer auf, der ausgelegt ist, basierend auf mindestens einigen Werten der Folge von binären Werten ein oder mehrere binäre Prüfbits zu erzeugen, wobei ein Fehlerkorrekturcode mehrere Codewörter umfasst und wobei der Codierer ausgelegt ist, das eine oder die mehreren binären Prüfbits so zu erzeugen, dass die binären Hilfslesewerte und das eine oder die mehreren binären Prüfbits zusammen eines der Codewörter des Fehlerkorrekturcodes bilden, wenn die binären Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0002
    und das eine oder die mehreren binären Prüfbits c1,...,cl fehlerfrei sind. Der Codierer ist ausgelegt, jedes von dem einen oder den mehreren erzeugten Prüfbits in einer oder mehreren der Speicherzellen des Speichers derart zu speichern, dass jedes von dem einen oder den mehreren Prüfbits in einer anderen von den Speicherzellen des Speichers gespeichert wird, wobei jede von den Speicherzellen, in der ein Prüfbit gespeichert ist, geeignet ist, einen von mindestens zwei verschiedenen Zuständen anzunehmen. Die Schaltung weist ferner einen Korrektor Cor, einen Kombinationsschaltkreis Vkn und einen dritten Unterschaltkreis BB auf, wobei der zweite Unterschaltkreis LH ausgelegt ist, die binären Hilfslesewerte in den Korrektor Cor und in den Kombinationsschaltkreis Vkn einzugeben. Der Korrektor Cor ist ausgelegt, das eine oder die mehreren Prüfbits aus einer oder mehreren der Speicherzellen des Speichers zu lesen, wobei der Korrektor Cor ausgelegt ist, die Fehlerkorrekturbits auf Basis der binären Hilfslesewerte und des einen oder der mehreren Prüfbits zu erzeugen, und wobei der Korrektor Cor ausgelegt ist, die Fehlerkorrekturbits in den Kombinationsschaltkreis Vkn einzugeben. Der Kombinationsschaltkreis Vkn ist ausgelegt, basierend auf den Fehlerkorrekturbits die Fehlerkorrektur an den binären Hilfslesewerten vorzunehmen, um fehlerfreie, z.B. korrigierte, binäre Hilfslesewerte zu erhalten, und der dritte Unterschaltkreis BB ist ausgelegt, die fehlerfreien binären Hilfslesewerte in korrigierte binäre Datenbits zu transformieren.
  • Außerdem wird eine Schaltung gemäß einer weiteren Ausführungsform bereitgestellt. Die Schaltung ist ausgelegt, Folgen von binären Werten x1, ..., xn in einem Speicher Sp zu speichern, der Speicherzellen aufweist, wobei n ≥ 3 ist, wobei jede der Speicherzellen des Speichers entweder geeignet ist, einen von drei Zustandswerten anzunehmen oder einen von zwei Zustandswerten anzunehmen, und wobei mindestens eine der Speicherzellen des Speichers geeignet ist, einen von drei Zustandswerten anzunehmen. Die Schaltung weist einen ersten Unterschaltkreis BT auf, der n binäre Eingänge und M Ausgänge aufweist, wobei der erste Unterschaltkreis BT geeignet ist, n binäre Eingabewerte x1, ..., xn in M Ausgabewerte z1, ..., zm, zm+1, ... , zM = BT(x1, ..., xn) zu transformieren, wobei 2 ≤ m ≤ M ist, wobei M < n ist und wobei n ≥ 4 ist, wobei jeder der Ausgabewerte z1, ..., zm einen von drei verschiedenen Werten aufweist, die von den binären Eingabewerten abhängen. Jeder der Ausgabewerte zm+1, ..., zM weist einen von höchstens zwei verschiedenen Werten auf, die von den binären Eingabewerten abhängen, wobei der erste Unterschaltkreis BT M Ausgänge aufweist, die mit M Dateneingängen des Speichers SP verbunden sind, wobei die Ausgabewerte z1, ..., zm des ersten Unterschaltkreises BT beim Schreiben in den Speicher Sp in die Speicherzellen des Speichers gespeichert werden, die geeignet sind, einen von drei Zuständen anzunehmen, und wobei die Ausgabewerte zm+1, ..., zM in Speicherzellen gespeichert werden, die geeignet sind, einen von mindestens zwei Zustandswerten anzunehmen. Die Schaltung weist ferner einen zweiten Unterschaltkreis LH zur Bestimmung binärer Hilfslesewerte y 1 ' , y k ' = L H ( z 1 ' , , z m ' , z m + 1 ' , z M ' )
    Figure DE102013222136B9_0003
    auf, wobei der zweite Unterschaltkreis LH M Eingänge und k Ausgänge aufweist, wobei beim Lesen aus dem Speicher m erste Eingänge von den Eingängen des zweiten Unterschaltkreises LH mit den Datenausgängen der Speicherzellen des Speichers Sp verbunden sind, in die beim Schreiben die ternären Werte z1, ..., zm geschrieben werden und aus denen beim Lesen die möglicherweise fehlerhaften ternären Werte z 1 ' , , z m '
    Figure DE102013222136B9_0004
    gelesen werden. Ferner sind M - m Eingänge des zweiten Unterschaltkreises LH mit den Datenausgängen der Speicherzellen verbunden, in die beim Schreiben die Werte zm, ..., zM geschrieben werden und aus denen beim Lesen die möglicherweise fehlerhaften Werte z m + 1 ' , , z M '
    Figure DE102013222136B9_0005
    gelesen werden, und wobei der zweite Unterschaltkreis LH an seinen k Ausgängen k möglicherweise fehlerhafte binäre Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0006
    mit k ≥ m + M ausgibt. Die Schaltung weist auch einen Codierer Cod mit n binären Eingängen und l binären Ausgängen zur Bestimmung von l binären Prüfbits c1, ..., cl aus den n binären Eingabewerten x1, ..., xn mit c1,... cl = Cod(x1,... , xn) auf, wobei die binären Eingabewerte x1, ..., xn an n binären Eingängen des Codierers Cod eingegeben werden und wobei an l binären Ausgängen des Codierers binäre Prüfbits c1, ..., cl ausgegeben werden, die durch die binären Eingabewerte x1, ..., xn festgelegt sind. Der Codierer ist so ausgelegt, dass er die Prüfbits c1, ...cl aus den binären Eingabewerten x1, ..., xn so bestimmt, dass Bits y1,... , yk, c1, ... cl ein Codewort eines Fehlerkorrekturcodes C der Länge k + l mit k Datenbits und l Prüfbits bilden, wobei y1, ..., yk die k fehlerfreien binären Hilfslesewerte sind.
  • Einer weiteren Ausführungsform entsprechend wird ein Verfahren bereitgestellt. Das Verfahren umfasst die Erzeugung von mehreren Ausgabewerten auf der Basis einer Folge von binären Werten, wobei jeder von den mehreren Ausgabewerten einen von mindestens drei verschiedenen Basiswerten aufweist. Das Verfahren umfasst ferner das Speichern eines jeden der Ausgabewerte als ein Zustandswert in einer anderen von einer oder mehreren Speicherzellen mehrerer Speicherzellen eines Speichers, wobei die eine oder mehreren Speicherzellen, in denen die Ausgabewerte gespeichert werden, jeweils geeignet sind, einen von mindestens drei verschiedenen Zuständen anzunehmen. Das Verfahren umfasst auch das Lesen eines oder mehrerer der Zustandswerte aus mindestens einer der Speicherzellen, die geeignet sind, einen von den mindestens drei verschiedenen Zuständen anzunehmen, wobei jeder von dem einen oder den mehreren Zustandswerten einen von den mindestens drei verschiedenen Basiswerten aufweist, wobei die binären Hilfslesewerte auf der Basis des einen oder der mehreren Zustandswerte bestimmt werden. Das Verfahren wird fortgesetzt durch: Erzeugen eines oder mehrerer binärer Prüfbits, sodass die binären Hilfslesewerte und das eine oder die mehreren binären Prüfbits zusammen eines der Codewörter des Fehlerkorrekturcodes bilden, wenn die binären Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0007
    und das eine oder die mehreren Prüfbits c1,...,cl fehlerfrei sind, und Speichern eines jeden von dem einen oder den mehreren erzeugten Prüfbits in einer oder mehreren der Speicherzellen des Speichers derart, dass jedes von dem einen oder den mehreren Prüfbits in einer anderen von den Speicherzellen des Speichers gespeichert ist, wobei jede der Speicherzellen, in der ein Prüfbit gespeichert ist, geeignet ist, einen von den mindestens zwei verschiedenen Zuständen anzunehmen.
  • Bevor Ausführungsformen der vorliegenden Erfindung unter Verwendung der beigefügten Figuren im Einzelnen beschrieben werden, soll darauf hingewiesen werden, dass denselben oder funktional gleichen Elementen in den Figuren die gleichen Bezugsziffern gegeben werden und dass eine wiederholte Beschreibung von Elementen, die mit den gleichen Bezugsziffern versehen sind, unterbleibt. Folglich sind Beschreibungen für Elemente, welche die gleichen Bezugsziffern aufweisen, untereinander austauschbar.
  • Figurenliste
    • 1a stellt eine Schaltung zur Fehlerkorrektur gemäß einer Ausführungsform dar.
    • 1b stellt eine Schaltung zur Fehlerkorrektur gemäß einer anderen Ausführungsform dar.
    • 1c stellt eine Schaltung zur Fehlerkorrektur gemäß einer weiteren Ausführungsform dar.
    • 1d stellt eine Schaltung zur Fehlerkorrektur gemäß einer weiteren Ausführungsform dar.
    • 1e stellt eine Schaltung zur Fehlerkorrektur gemäß einer Ausführungsform dar, die außerdem eine zusätzliche Fehlererkennung bereitstellt.
    • 1f zeigt eine Schaltung gemäß einer Ausführungsform, die einen binären Teilspeicher aufweist.
    • 1g stellt eine Realisierung für eine zusätzliche Fehlererkennung von Adressfehlern gemäß einer Ausführungsform dar.
    • 1h stellt eine Schaltung gemäß einer Ausführungsform dar, wobei Datenbits in Speicherzellen einer Ternärspeicherschaltung gespeichert werden.
    • 1i stellt eine Ternärspeicherschaltung gemäß einer Ausführungsform dar.
    • 1j stellt eine Ternärspeicherschaltung gemäß einer anderen Ausführungsform dar.
    • 1k stellt eine Ternärspeicherschaltung gemäß einer weiteren Ausführungsform dar.
    • 2 stellt eine Realisierung eines Codierers gemäß einer Ausführungsform dar.
    • 3a-3c zeigen Realisierungen von Unterschaltkreisen für die Transformation von binären Eingabewerten in ternäre Zustandswerte gemäß einer Ausführungsform.
    • 4 zeigt eine Realisierung eines Unterschaltkreises für die Transformation von ternären Zustandswerten in binäre Hilfslesewerte gemäß einer Ausführungsform.
    • 5a stellt eine Realisierung eines Codierers gemäß einer Ausführungsform dar.
    • 5b zeigt eine Realisierung eines Codierers für einen linearen Fehlerkorrekturcode gemäß einer Ausführungsform.
    • 5c stellt eine Realisierung eines Codierers unter Verwendung von Adressbits gemäß einer Ausführungsform dar.
    • 5d zeigt eine Realisierung eines Codierers für einen linearen Fehlerkorrekturcode unter Verwendung der Parität von Adressbits gemäß einer Ausführungsform.
    • 5e zeigt eine Realisierung eines Codierers für einen linearen Korrekturcode unter Verwendung aller Adressbits gemäß einer Ausführungsform.
    • 6a stellt eine Realisierung eines Korrektors gemäß einer Ausführungsform dar.
    • 6b zeigt eine Realisierung eines Korrektors unter Verwendung von Adressbits gemäß einer Ausführungsform.
    • 7a zeigt eine Realisierung der Transformation der binären Hilfslesewerte in binäre Ausgabewerte gemäß einer Ausführungsform.
    • 7b zeigt eine weitere Realisierung einer Transformation der binären Hilfslesewerte in binäre Ausgabewerte gemäß einer Ausführungsform.
    • 7c ist eine weitere Realisierung einer Transformation der binären Hilfslesewerte in binäre Ausgabewerte gemäß einer Ausführungsform.
    • 8 stellt ein Funktionsblockdiagramm zum Erläutern eines Unterschaltkreises gemäß einer Ausführungsform dar.
    • 9a ist ein Beispiel eines Unterschaltkreises zum Ausbilden binärer Hilfsschreibwerte und ternärer Zustandswerte gemäß einer Ausführungsform.
    • 9b stellt eine Realisierung eines Unterschaltkreises für die Transformation binärer Eingabewerte in ternäre Zustandswerte gemäß einer Ausführungsform dar.
    • 10 zeigt eine Realisierung eines erfindungsgemäßen Schaltkreises gemäß einer Ausführungsform, der 8 binäre Datenbits für das Ausbilden ternärer Zustandswerte und für die Realisierung eines Codierers unter Verwendung von Hilfsschreibwerten aufweist.
    • 11 ist ein Beispiel eines Decoderschaltkreises eines linearen Codes, der dem Stand der Technik entspricht.
    • 12 ist ein Beispiel eines Fehlererkennungsschaltkreises, der dem Stand der Technik entspricht.
    • 13 ist ein Beispiel einer üblichen Realisierung eines Fehlererkennungsschaltkreises und eines Korrektors, die dem Stand der Technik entspricht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1a stellt eine Schaltung gemäß einer Ausführungsform dar.
  • Die Schaltung weist einen Speicher Sp 13 auf, der mehrere Speicherzellen hat, wobei eine oder mehrere von den mehreren Speicherzellen des Speichers jeweils geeignet sind, einen von mindestens drei verschiedenen Zuständen anzunehmen.
  • Somit ist mindestens eine der Speicherzellen des Speichers geeignet, einen von mindestens drei verschiedenen Zuständen anzunehmen. Zum Beispiel ist eine ternäre Speicherzelle geeignet, einen von genau drei verschiedenen Zuständen anzunehmen (z.B. kann der Zustand genau einen der Werte 0, 1 oder 2 darstellen). Anstelle einer ternären Speicherzelle kann der Speicher mindestens eine mehrwertige Speicherzelle aufweisen, wobei eine derartige mehrwertige Speicherzelle geeignet sein kann, einen von vier oder mehr verschiedenen Zuständen anzunehmen (z.B. kann der Zustand genau einen der Werte 0, 1, 2 oder 3 darstellen). Der Speicher weist mindestens eine Speicherzelle auf, die geeignet ist, einen von mindestens drei verschiedenen Zuständen anzunehmen (z.B. eine ternäre Speicherzelle oder eine mehrwertige Speicherzelle, die einen von mehr als drei verschiedenen Zuständen annehmen kann). Der Speicher kann jedoch auch Speicherzellen aufweisen, die geeignet sind, einen von nur zwei verschiedenen Zuständen anzunehmen, z.B. kann der Speicher auch eine oder mehrere binäre Speicherzellen aufweisen. Jedoch ist mindestens eine der Speicherzellen des Speichers geeignet, mindestens einen von drei verschiedenen Zuständen anzunehmen. In einigen der Ausführungsformen können jedoch alle Speicherzellen des Speichers einen von mindestens drei verschiedenen Zuständen annehmen.
  • Die Schaltung von 1a weist einen ersten Unterschaltkreis BT 11 auf, der ausgelegt ist, basierend auf einer Folge von binären Werten x1, ..., xn mehrere Ausgabewerte z1, ...,zM zu erzeugen, wobei jeder von den mehreren Ausgabewerten z1, ...,zM einen von mindestens drei verschiedenen Basiswerten (z.B. einen Wert von den Basiswerten 0, 1, 2) aufweist, wobei der erste Unterschaltkreis BT 11 ausgelegt ist, jeden der Ausgabewerte z1, ..., zM in einer anderen von der einen oder den mehreren Speicherzellen zu speichern, die jeweils geeignet sind, einen von den mindestens drei verschiedenen Zuständen anzunehmen. Jeder von den Ausgabewerten, die in dem Speicher 13 gespeichert sind, kann als ein Zustandswert der entsprechenden Speicherzellen angesehen werden. Dadurch stellen die mehreren Ausgabewerte, die im Speicher gespeichert sind, mehrere Zustandswerte dar.
  • Außerdem weist die Schaltung einen zweiten Unterschaltkreis LH 16 auf, der ausgelegt ist, einen oder mehrere der Zustandswerte z 1 ' , , z M '
    Figure DE102013222136B9_0008
    aus mindestens einer der Speicherzellen zu lesen, wobei die Speicherzellen geeignet sind, einen von den mindestens drei verschiedenen Zuständen anzunehmen, wobei jeder von dem einen oder den mehreren Zustandswerten z 1 ' , , z M '
    Figure DE102013222136B9_0009
    einen von den mindestens drei verschiedenen Basiswerten (z.B. einen der Werte 0, 1, 2) aufweist, wobei der zweite Unterschaltkreis LH 16 außerdem ausgelegt ist, binäre Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0010
    auf der Basis des einen oder der mehreren Zustandswerte z 1 ' , , z M '
    Figure DE102013222136B9_0011
    zu bestimmen.
  • Darüber hinaus weist die Schaltung einen Codierer Cod 12 auf, der ausgelegt ist, ein oder mehrere binäre Prüfbits c1,...,cl basierend auf mindestens einigen Werten der Folge von binären Werten zu erzeugen, wobei ein Fehlerkorrekturcode mehrere Codewörter aufweist und wobei der Codierer Cod 12 ausgelegt ist, das eine oder die mehreren binären Prüfbits c1,...,cl so zu erzeugen, dass die binären Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0012
    und das eine oder die mehreren binären Prüfbits c1,...,cl zusammen eines der Codewörter des Fehlerkorrekturcodes bilden, wenn die binären Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0013
    und das eine oder die mehreren binären Prüfbits c1,...,cl fehlerfrei sind.
  • Der Codierer 12 ist ausgelegt, jedes von dem erzeugten einen oder mehreren Prüfbits in einer oder mehreren der Speicherzellen des Speichers 13 derart zu speichern, dass jedes von dem einen oder den mehreren Prüfbits in einer anderen von den Speicherzellen des Speichers gespeichert wird, wobei jede der Speicherzellen, in der ein Prüfbit gespeichert ist, geeignet ist, einen von mindestens zwei verschiedenen Zuständen anzunehmen.
  • Basiswerte können zum Beispiel alle die Werte, z.B. alle die Zahlen, einer Menge von Werten sein, die zum Beispiel ein Ausgabewert oder ein Zustandswert annehmen kann. Zum Beispiel können Basiswerte alle die Zahlen sein, die ein Wert, z.B. ein Ausgabewert, ein Zustandswert oder ein Wert einer Folge, annehmen kann.
  • Wenn ein Ausgabewert zum Beispiel ein ternärer Wert ist, dann kann der Ausgabewert einen von drei Werten annehmen. Der Ausgabewert kann zum Beispiel einen Wert der Wertemenge {0, 1, 2} annehmen. Dann sind 0, 1 und 2 die drei verschiedenen Basiswerte.
  • Wenn zum Beispiel ein Wert einer Folge von binären Werten zu bestimmen ist, dann kann ein Wert der Folge zum Beispiel einen Wert der Menge von zwei Zahlen, z.B. der Menge {0, 1}, annehmen. Dann kann der Wert einen von zwei verschiedenen Basiswerten annehmen, und die zwei verschiedenen Basiswerte sind 0 und 1.
  • In einer Ausführungsform kann die eine oder können die mehreren von den mehreren Speicherzellen des Speichers, die zur Annahme eines von mindestens drei verschiedenen Zuständen geeignet sind, ternäre Speicherzellen sein. In einer derartigen Ausführungsform kann der erste Unterschaltkreis BT 11 ausgelegt sein, die mehreren Ausgabewerte derart zu erzeugen, dass jeder von den mehreren Ausgabewerten einen von genau drei verschiedenen Basiswerten aufweist, wobei der erste Unterschaltkreis ausgelegt ist, jeden der Ausgabewerte in einer anderen von den ternären Speicherzellen zu speichern. Darüber hinaus kann der zweite Unterschaltkreis LH 16 ausgelegt sein, den einen oder die mehreren Zustandswerte aus mindestens einer der ternären Speicherzellen zu lesen, wobei jeder von dem einen oder den mehreren Zustandswerten einen von genau drei verschiedenen Basiswerten aufweist und wobei der zweite Unterschaltkreis LH 16 außerdem ausgelegt ist, binäre Hilfslesewerte auf Basis des einen oder der mehreren Zustandswerte zu bestimmen.
  • 1b stellt eine Schaltung gemäß einer anderen Ausführungsform dar. Im Vergleich mit der Ausführungsform von 1a weist die Schaltung der Ausführungsform von 1b außerdem einen Korrektor Cor 17 und einen Kombinationsschaltkreis Vkn 18 auf.
  • Der zweite Unterschaltkreis LH 16 ist ausgelegt, die binären Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0014
    in den Korrektor Cor 17 und in den Kombinationsschaltkreis Vkn 18 einzugeben.
  • Der Korrektor Cor 17 ist ausgelegt, das eine oder die mehreren Prüfbits c ' = c 1 ' , , c l '
    Figure DE102013222136B9_0015
    aus einer oder mehreren der Speicherzellen Spc1, ..., Spcl des Speichers zu lesen, wobei der Korrektor Cor 17 ausgelegt ist, die Fehlerkorrekturbits e1, ..., ek auf Basis der binären Hilfslesewerte und des einen oder der mehreren Prüfbits zu erzeugen. Der Korrektor Cor 17 ist ausgelegt, die Fehlerkorrekturbits e1, ..., ek in den Kombinationsschaltkreis Vkn 18 einzugeben.
  • Der Kombinationsschaltkreis Vkn 18 ist ausgelegt, die Fehlerkorrektur an den binären Hilfslesewerten y 1 ' , , y k '
    Figure DE102013222136B9_0016
    auf Basis der Fehlerkorrekturbits e1, ..., ek auszuführen, um fehlerfreie binäre Hilfslesewerte ycor zu erhalten.
  • In einer Ausführungsform ist der Kombinationsschaltkreis Vkn 18 ausgelegt, die Fehlerkorrektur derart auszuführen, dass die fehlerfreien binären Hilfslesewerte ycor und das eine oder die mehreren Prüfbits c ' = c 1 ' , , c l '
    Figure DE102013222136B9_0017
    eines der Codewörter des Fehlerkorrekturcodes bilden.
  • 1c stellt eine Schaltung gemäß einer weiteren Ausführungsform dar. Im Vergleich mit der Ausführungsform von 1b weist die Schaltung der Ausführungsform von 1c ferner einen dritten Unterschaltkreis BB 19 auf. Der dritte Unterschaltkreis BB 19 ist ausgelegt, die fehlerfreien binären Hilfslesewerte ycor in n fehlerkorrigierte binäre Datenbits xcor zu transformieren.
  • 1d stellt eine Schaltung Cir1 gemäß einer weiteren Ausführungsform dar. Die Schaltung Cir1 kann die folgenden Unterschaltkreise aufweisen:
    1. 1. Es kann ein Unterschaltkreis BT 11 für die Transformation einer Folge von n binären Eingabewerten oder Datenbits x = x1,...,xn in eine Folge von M Ausgabewerten z = z1,..., zm, zm+1, ..., zM, z 1 , z m , z m + 1 , z M = B T ( x 1 , z n ) ,
      Figure DE102013222136B9_0018
      vorhanden sein, wobei 2 ≤ m ≤ M und M < n, n ≥ 3 ist. Hierbei kann jeder der Ausgabewerte z1,...,zm, in Abhängigkeit von den binären Werten x1,...,xn drei verschiedene Werte annehmen. In Abhängigkeit von den binären Werten x1,..., xn, kann jeder der Ausgabewerte zm+1,..., zM höchstens zwei verschiedene Werte annehmen. Der Unterschaltkreis BT 11 ist so ausgelegt, dass unterschiedliche Folgen von n binären Eingabewerten in unterschiedliche Folgen von M binären Ausgabewerten transformiert werden.
    2. 2. Es kann ein Codierer Cod 12 mit n binären Eingängen und l binären Ausgängen zur Bestimmung von l binären Prüfbits c1,...,cl vorhanden sein mit c 1 , c l = C o d ( x 1 , , x n ) ,
      Figure DE102013222136B9_0019
      wobei an den n binären Eingängen die binären Eingabewerte x1,...,xn, eingegeben und an den binären Ausgängen die entsprechenden Prüfbits c1,...,cl ausgegeben werden.
    3. 3. Zum Speichern der Werte z1,... zm, Zm,+1, ..., zM, und c1,...,cl kann ein Speicher Sp 13 vorhanden sein, wobei jede der Speicherzellen zum Speichern der Werte z1,...zm drei verschiedene Werte als Zustände annehmen kann und wobei jede der Speicherzellen zum Speichern der Werte zm+1,..., zM, c1,...,cl mindestens zwei verschiedene Werte als Zustände annehmen kann. Die Speicherzellen, die zum Speichern der Prüfbits c1,...,cl dienen, werden durch Spc1,..., Spcl gekennzeichnet. In 1d ist der Fall dargestellt, dass die Speicherzellen Spc1,..., Spcl drei unterschiedliche Zustände annehmen können.
  • Beim Schreiben ist für j = 1,..,l der j-te Ausgang des Codierers 12, der das Prüfbit cj überträgt, über einen Unterschaltkreis btj 14j mit einem binären Eingang und einem ternären Ausgang für die Transformation des binären Werts cj in einen ternären Wert c j t = b t j ( c j )
    Figure DE102013222136B9_0020
    den Dateneingang der Speicherzelle Spcj angeschlossen. Hierbei kann der Unterschaltkreis btj 14j zum Beispiel einen minimalen binären Wert, der als 0bin bezeichnet wird, in einen minimalen ternären Wert transformieren, der als 0ter bezeichnet wird, und er kann einen maximalen binären Wert, der als 1bin bezeichnet wird, in einen maximalen ternären Wert transformieren, der als 2ter bezeichnet wird. Der Unterschaltkreis btj 14j kann zum Beispiel auch einen minimalen binären Wert, der als 0bin bezeichnet wird, in einen maximalen ternären Wert, der als 2ter bezeichnet wird, und einen maximalen binären Wert, der als 1bin bezeichnet wird, in einen minimalen ternären Wert, der als 0ter bezeichnet wird, transformieren.
  • Einer Ausführungsform entsprechend wird der binäre Wert cj , j = 1,...,l der Prüfbits jeweils als ein transformierter Wert c j t = b t j ( c j )
    Figure DE102013222136B9_0021
    in einer separaten Speicherzelle Spcj des Speichers Sp 13 gespeichert, während die individuellen Datenbits x1,...,xn im Allgemeinen nicht in einer separaten Speicherzelle des ternären Speichers gespeichert werden.
  • Dadurch wird die Folge der n Datenbits x1,...,xn durch den Unterschaltkreis BT in M Werte z1,...zm, zm,+1,...,zM mit M <n transformiert, wobei z1,...zm ternäre Werte sind, die jeweils in einer ternären Speicherzelle gespeichert werden. Hierbei werden zum Beispiel drei binäre Werte xi1, xi2, xi3 der Datenbits durch den Unterschaltkreis BT11 in zwei ternäre Werte zi1, zi2 transformiert, sodass dann die Informationen der drei Datenbits in zwei ternären Speicherzellen gespeichert werden können, wie nachfolgend ausführlicher beschrieben wird.
  • 4. Es kann ein Unterschaltkreis LH 16 vorhanden sein, um die möglicherweise fehlerhaften Zustandswerte z 1 ' , , z M ' ,
    Figure DE102013222136B9_0022
    die aus dem Speicher Sp 13 gelesen wurden, in k binäre Hilfslesewerte y 1 ' , , y k ' = L H ( z 1 ' , , z M ' ) ,
    Figure DE102013222136B9_0023
    zu transformieren, wobei der Unterschaltkreis LH 16 so ausgelegt ist, dass unterschiedliche Folgen von M Zustandswerten, die aus dem Speicher gelesen wurden, unterschiedlichen Folgen von k binären Hilfslesewerten zugeordnet werden, wobei jeder ternären Zustandskomponente z i ' , i = 1, , m ,
    Figure DE102013222136B9_0024
    mindestens zwei binäre Hilfslesewerte zugeordnet werden und wobei jeder binären Zustandskomponente z j ' , j = m + 1, , M ,
    Figure DE102013222136B9_0025
    mindestens ein binärer Hilfslesewert zugeordnet wird und wobei k > M ist.
  • Wie bereits angegeben wurde, werden einem ternären Wert z i ' ,1 i m
    Figure DE102013222136B9_0026
    mindestens zwei binäre Hilfslesewerte zugeordnet.
  • Wird zum Beispiel der 3-wertigen Zustandskomponente zi ein Paar yi1, yi2 von Hilfslesewerten zugeordnet, dann nimmt dieses Paar von binären Hilfslesewerten nur drei von vier grundsätzlich möglichen binären Werten an.
  • Der Codierer 12 ist so ausgeführt, dass er Prüfbits c1,...,cl so bestimmt, dass c1,...,cl y 1 ' , , y k '
    Figure DE102013222136B9_0027
    das Codewort eines Fehlerkorrekturcodes C ist, wenn kein Fehler aufgetreten ist. Wie dargelegt wurde, nehmen die Paare von Hilfslesewerten [ y 1 ' , y 2 ' ] , [ y 3 ' , y 4 ' ] ,
    Figure DE102013222136B9_0028
    jeweils nur drei verschiedene Werte von den vier jeweils grundsätzlich möglichen binären Werten an, sodass jedes dieser Paare einem Speicherzustand einer ternären Speicherzelle zugeordnet werden kann.
  • Im Gegensatz dazu können die Paare von Prüfbits, zum Beispiel [c1, c2], [c3, c4],..., in Abhängigkeit von dem Wert der Datenbits eine beliebige von den möglichen vier verschiedenen Wertekombinationen annehmen, wie ersichtlich wird, wenn konkrete Codes, wie z.B. lineare Codes, betrachtet werden, und wie nachfolgend für eine Ausführungsform erläutert wird. Die Prüfbits sind hier so festgelegt, dass sie eine XOR-Kombination der entsprechenden Bits der Hilfslesewerte entsprechend dem verwendeten Code C sind.
  • Wie oben angegeben wurde, werden die Prüfbits der Hilfslesewerte, die durch den Codierer erzeugt wurden, gemäß einer Ausführungsform jeweils in einer separaten Speicherzelle gespeichert, während zum Beispiel Tripel von Datenbits in zwei ternären Speicherzellen gespeichert werden können, sodass ein Fehler in einer Speicherzelle, die ein Prüfbit speichert, nur ein einziges Prüfbit beeinträchtigen kann. Da die Anzahl der Prüfbits oftmals gering im Vergleich zu den Datenbits oder zur Anzahl der Hilfslesewerte ist, ist auch der erforderliche Aufwand zum Speichern eines jeden der Prüfbits in einer separaten Speicherzelle gering.
  • 5. Es kann ein Korrektor Cor 17 mit l ersten binären Eingängen und k zweiten binären Eingängen und k binären Ausgängen vorhanden sein, der so ausgelegt ist, dass der Korrektor Cor 17 in Abhängigkeit von den möglicherweise fehlerhaften binären Prüfbits c ' = c 1 ' , , c l ' ,
    Figure DE102013222136B9_0029
    die an seinen ersten Eingängen eingegeben wurden, und in Abhängigkeit von seinen möglicherweise fehlerhaften binären Hilfslesewerten y ' = y 1 ' , , y k ' ,
    Figure DE102013222136B9_0030
    die an seinen k binären Eingängen eingegeben wurden, an seinen k binären Ausgängen einen Korrekturvektor mit k Komponenten e = e1,...ek ausgibt, um die Bits y 1 ' , , y k '
    Figure DE102013222136B9_0031
    der Hilfslesewerte zu korrigieren. Dann werden die Korrekturbits e1, ..., ek hier als ein Korrekturfehler e = e1, ..., ek beschrieben.
  • Beim Lesen aus dem Speicher Sp 13 wird der Datenausgang der Speicherzelle Spcj für j = 1,...,1 an den Eingang eines Unterschaltkreises tbj 15j angeschlossen, dessen Ausgang an den j-ten Eingang der l ersten Eingänge des Korrektors Cor 17 angeschlossen ist. Der Unterschaltkreis tbj 15j transformiert den möglicherweise fehlerhaften ternären Wert c j t ' ,
    Figure DE102013222136B9_0032
    der durch die Speicherzelle Spcj ausgegeben wurde, in den binären Wert c j ' = t b j ( c j t ' ) .
    Figure DE102013222136B9_0033
  • 6. Es kann ein Kombinationsschaltkreis Vkn 18 mit 2·k binären Eingängen und k binären Ausgängen vorhanden sein, der bei der Eingabe von y 1 ' , , y k '
    Figure DE102013222136B9_0034
    an seinen ersten k Eingängen und von e1, ..., ek an seinen zweiten k Eingängen die korrigierten Hilfslesewerte y c o r = y 1 c o r , , y k c o r = [ y 1 ' o p 1 e 1 ] , , [ y k ' o p k e k ] = y ' o p e
    Figure DE102013222136B9_0035
    an seinem k-Bit-Ausgang ausgibt, wobei op1,... ,opk jeweils eindeutig umkehrbare binäre Operationen sind.
  • Hierbei sind der Korrektor Cor 17 und der Kombinationsschaltkreis Vkn 18 so ausgeführt, dass y = y 1 , , y k = [ y 1 ' o p 1 e 1 ] , [ y k ' o p k e k ] = y ' o p e
    Figure DE102013222136B9_0036
  • Anwendung findet, wenn ein Fehler vorliegt, der durch den Code C korrigiert werden kann. Die Bits y1,...,yk werden hier durch die anschließenden Transformationen der Datenbits x1,...,xn durch die Unterschaltkreise BT 11 und LH 16 zu y 1 , , y k = L H [ B T ( x 1 , , x n ) ]
    Figure DE102013222136B9_0037
    bestimmt.
  • 7. Es kann ein Unterschaltkreis BB 19 vorhanden sein, um die k bit-korrigierten binären Hilfslesewerte x 1 c o r , x n c o r = B B ( y 1 c o r , , y k c o r ) ,
    Figure DE102013222136B9_0038
    in die korrigierten binären Ausgabewerte x 1 c o r , , x n c o r = B B ( y 1 c o r , , y k c o r ) ,
    Figure DE102013222136B9_0039
    zu transformieren, wobei x 1 c o r , , x n c o r = x 1 , , x n
    Figure DE102013222136B9_0040
    gilt, wenn ein Fehler vorliegt, der durch den Code C korrigiert werden kann.
  • Die Unterschaltkreise BT 11, LH 16 und BB 19 sind so ausgelegt, dass B B { L H [ B T ( x 1 , , x n ) ] } = x 1 , , x n
    Figure DE102013222136B9_0041
    gilt, sodass die anschließenden Transformationen der Datenbits x1,...,xn durch die Unterschaltkreise BT 11, LH 16 und BB 19 die Datenbits wiederherstellen.
  • Ist kein Fehler aufgetreten, dann wird an den k Ausgängen des Korrektors Cor 17 ein Nullkorrektur-Vektor e 0 = e 1 0 , , e k 0
    Figure DE102013222136B9_0042
    mit y i o p i e i 0 = y 1
    Figure DE102013222136B9_0043
    ausgegeben.
  • Die nachfolgenden Beispiele stellen Ausführungsformen mit geringfügigen Abänderungen bereit:
    • Der Codierer Cod 12 kann so abgewandelt werden, dass er die Prüfbits c1,...,cl so bestimmt, dass c i 1 , , c l i l
      Figure DE102013222136B9_0044
      und y 1 j 1 , , y k j k
      Figure DE102013222136B9_0045
      mit y 1 , , y k = L H [ T r 1 ( x 1 , , x n ) ]
      Figure DE102013222136B9_0046
      ein Codewort eines Fehlerkorrekturcodes C mit k Datenbits und l Prüfbits bilden.
  • Hierbei ist y j 0 = y ¯ j
    Figure DE102013222136B9_0047
    und y j 1 = y j
    Figure DE102013222136B9_0048
    und dementsprechend c j 0 = c ¯ j
    Figure DE102013222136B9_0049
    und c j 1 = c j ,
    Figure DE102013222136B9_0050
    sodass die Komponenten der Hilfslesewerte und die Prüfbits entweder invertiert oder nicht invertiert bereitgestellt werden können.
  • Der Korrektor Cor 17 kann zum Beispiel durch Inverter, die an die einzelnen Ausgänge desselben angeschlossen sind, so abgewandelt werden, dass er den Korrekturvektor in der Form e 1 i 1 , , e k i k
    Figure DE102013222136B9_0051
    bereitstellt.
  • Wenn alle Bits des Korrekturvektors nicht invertiert bereitgestellt werden und wenn auch alle Hilfslesewerte nicht invertiert bereitgestellt werden, dann können die Operationen opi so gewählt werden, dass sie eine XOR-Operation ⊕ sind. Wenn alle Bits des Korrekturvektors invertiert bereitgestellt werden und wenn alle Hilfslesewerte nicht invertiert bereitgestellt werden, dann können die Operationen opi so gewählt werden, dass sie eine XNOR-Operation sind.
  • In einer Ausführungsform kann es ferner möglich sein, die Ordnung der verschiedenen Bits zu vertauschen.
  • Um die Beschreibung so einfach verständlich wie möglich zu machen, werden im Weiteren die Prüfbits, die Bits des Korrekturvektors und die Bits der Hilfslesewerte als nicht invertiert angesehen. In anderen Ausführungsformen können Bits des Korrekturvektors und/oder die Bits der Hilfslesewerte invertiert sein.
  • Wenn der Fehlerkorrekturcode C ein linearer Code ist, der durch eine (k, k+l)-Generatormatrix oder eine G-Matrix G = (lk, Pk,l) gekennzeichnet werden kann, dann gilt das Folgende: c = c 1 , , c l = C o d ( x 1 , , x n ) = ( y 1 , , y k ) P = L H [ B T ( x 1 , , x n ) ] P ,
    Figure DE102013222136B9_0052
    wobei lk die k-dimensionale binäre Einheitsmatrix und Pk,l eine binäre (k, l)-Matrix ist, die als die Paritätsmatrix des Codes C bezeichnet wird. In diesem Fall ergeben sich die Prüfbits c1,...,cl auch durch Multiplikation der fehlerfreien Hilfslesewerte y1,...,yk, die aus den Datenwerten x1,...,xn, bestimmt wurden, mit der Paritätsmatrix P. Wie in 2 dargestellt ist, weist der Codierer Cod 12 dann einen linearen Schaltkreis Lin 21 nachgeordnet zu dem Unterschaltkreis LH 22 und dem Unterschaltkreis BT 23 auf. Der Unterschaltkreis LH 22 ist gleich dem Unterschaltkreis LH 16 von 1d, und der Unterschaltkreis BT 23 ist gleich dem Unterschaltkreis BB 11 von 1d. Der Unterschaltkreis Lin 21 führt die Multiplikation der fehlerfreien Hilfslesewerte y1,...,yk = LH[BT(x1,...,xn)] mit der Paritätsmatrix P aus.
  • Ein Fachmann kann die Reihenschaltung der Schaltkreise von LH und BT zusammen optimieren.
  • Der Korrektor Cor 17 ist so ausgelegt, dass im Falle eines Fehlers, der durch den Code C in den Hilfslesewerten y 1 ' , , y k '
    Figure DE102013222136B9_0053
    und den Prüfbits korrigiert werden kann, c 1 ' , , c l '
    Figure DE102013222136B9_0054
    durch die Korrekturbits e1,... ,ek der Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0055
    für den betrachteten Fehlerkorrekturcode C bestimmt wird, wobei y 1 ' , , y k '
    Figure DE102013222136B9_0056
    möglicherweise fehlerhafte Hilfslesewerte sind, die durch den Schaltkreis LH 16 bestimmt wurden, der möglicherweise fehlerhafte Zustandswerte z 1 ' , z m ' , z m + 1 ' , , z M '
    Figure DE102013222136B9_0057
    aus dem Speicher 13 liest. Die Bits c 1 ' , , c l '
    Figure DE102013222136B9_0058
    sind die Prüfbits, die nach dem Lesen aus dem Speicher 13 möglicherweise fehlerhaft sind.
  • Nun soll die Funktionsweise der Schaltung von 1d beschrieben werden. Die Folge x1,...,xn von binären Daten, die zu speichern ist, wird sowohl dem n-Bit-Eingang des Unterschaltkreises BT 11 als auch dem n-Bit-Eingang des Codierers Cod 12 zugeführt. Der Unterschaltkreis BT 11 gibt an seinen M Ausgängen die Werte z1,...,zm aus, die im Speicher Sp 13 zu speichern sind. Hierbei sind die Werte z1,....zm jeweils Analogwerte, die in Abhängigkeit von ihrer Zuordnung zu einem von drei verschiedenen, sich nicht überlappenden Intervallen als drei verschiedene Werte, z.B. als ternäre Werte, interpretiert werden.
  • Um hervorzuheben, dass diese Werte ternäre oder binäre Werte sind, werden ternäre Werte als ter1 , ter2 , ter3 oder als 0ter , 1ter , 2ter gekennzeichnet, während binäre Werte als 0bin und 1bin gekennzeichnet werden. Werden ternäre Werte oder Zustände in unterschiedliche Speicherzellen A und B geschrieben oder aus ihnen gelesen, dann werden sie auch als A0, A1, A2 oder B0, B1, B2 gekennzeichnet, damit sie besser unterschieden werden können.
  • Hierbei werden die ternären Werte 0ter , 1ter , 2ter so gekennzeichnet, dass die Analogwerte, die 0ter und 1ter entsprechen, zu Intervallen gehören, die aneinander angrenzen, ebenso wie die Analogwerte, die 1ter und 2ter entsprechen, auch zu aneinander angrenzenden oder benachbarten Intervallen gehören. Insofern sind die ternären Werte 0ter und 1ter wie auch die ternären Werte 1ter und 2ter benachbarte Werte. Die ternären Werte 0ter und 2ter sind nicht benachbart.
  • Die ternären Werte z1,...zm werden in Speicherzellen des Speichers Sp 13 mit ternären Zuständen gespeichert.
  • Die Ausgabewerte z1+1,...,zM des Unterschaltkreises BT 11 sind solche Ausgabewerte, die nur jeweils höchstens zwei verschiedene Werte annehmen. Es ist hierbei möglich, dass zj für j ∈ {m + 1,..., M} zwei von den drei grundsätzlich möglichen drei ternären Werten annimmt, zum Beispiel die ternären Werte 0ter und 2ter, oder auch zwei binäre Werte 0 und 1.
  • Wenn zj die binären Werte 0, 1 annimmt, dann kann zj in einer binären Speicherzelle des Speichers Sp 13 gespeichert werden. zj kann auch in einer ternären Speicherzelle des Speichers Sp 13 gespeichert werden. Dann werden nur zwei verschiedene ternäre Werte in die entsprechende ternäre Speicherzelle geschrieben. Auf einem möglichen Fehler beruhend kann von der betrachteten Speicherzelle im Prinzip auch der dritte Speicherzustand angenommen werden.
  • Die Speicherzellen zum Speichern der Werte z1,...,zm sind somit Speicherzellen, deren Zustände ternäre Werte annehmen können, und die Speicherzellen zum Speichern der Werte zm+1,...,zM sind Speicherzellen, deren Zustände mindestens zwei verschiedene Werte annehmen können.
  • Der Codierer Cod 12 gibt an seinem l Bit breiten Ausgang l binäre Prüfbits c1,...,cl aus, die auch im Speicher Sp 13 in Speicherzellen gespeichert werden können, die mindestens zwei verschiedene Zustände annehmen können.
  • In Abhängigkeit von der Ausführung können binäre Speicherzellen oder ternäre Speicherzellen verwendet werden, deren Zustand beim Schreiben nur zwei verschiedene Werte annimmt.
  • In 1d ist der Fall dargestellt, dass die Prüfbits c1,...cl, die durch den Codierer 12 ausgegeben wurden, in ternären Speicherzellen gespeichert werden.
  • Für j = 1,...,l wird der j-te Ausgang des Codierers Cod 12, der die binären Werte cj überträgt, dem Eingang eines Unterschaltkreises btj 14j zugeführt, der an seinen Ausgängen einen entsprechenden ternären Wert c j t = b t j ( c j )
    Figure DE102013222136B9_0059
    ausgibt, der beim Schreiben in der ternären Speicherzelle Spcj gespeichert wird. Wenn kein Fehler vorliegt, dann können nur zwei der möglichen drei ternären Werte als Zustände der Speicherzelle Spcj auftreten. Infolge eines Fehlers kann auch der dritte mögliche dritte ternäre Wert als ein Zustand gespeichert werden.
  • Beim Lesen werden aus dem Speicher Sp 13 die möglicherweise fehlerhaften Werte z 1 ' , , z m ' , z m + 1 ' , , z M '
    Figure DE102013222136B9_0060
    und die möglicherweise fehlerhaften Prüfbits c 1 t ' , , c l t '
    Figure DE102013222136B9_0061
    gelesen, die sich von den entsprechenden korrekten Werten aufgrund von Fehlern unterscheiden können, die zum Beispiel während des Speicherns aufgetreten sein können.
  • Für j = 1,...,1 wird der Ausgang der Speicherzelle Spcj , der beim Lesen das Signal c j t '
    Figure DE102013222136B9_0062
    überträgt, an den Eingang des Unterschaltkreises tbj 15j angeschlossen, der das ternäre Signal c j t '
    Figure DE102013222136B9_0063
    in das binäre Signal c j ' = t b j ( c j t ' )
    Figure DE102013222136B9_0064
    transformiert.
  • Wenn kein Fehler aufgetreten ist, dann wird das Prüfbit cj durch den Codierer am Ausgang des Unterschaltkreises tbj 15j bereitgestellt, der an den j-ten Eingang von den ersten l Eingängen des Korrektors Cor 17 angeschlossen ist.
  • Die Werte z 1 ' , , z m ' , z m + 1 ' , , z M '
    Figure DE102013222136B9_0065
    die aus dem Speicher Sp 13 gelesen wurden, werden durch den Unterschaltkreis LH 16 in k binäre Hilfslesewerte y ' = y 1 ' , y k '
    Figure DE102013222136B9_0066
    transformiert.
  • Die binären Hilfslesewerte y ' = y 1 ' , y k '
    Figure DE102013222136B9_0067
    werden in die zweiten k binären Eingänge des Korrektors Cor 17 eingegeben.
  • Der Korrektor Cor 17 gibt an seinen k binären Ausgängen die Korrekturwerte e = e1,... ,ek für die Hilfslesewerte y ' = y 1 ' , y k '
    Figure DE102013222136B9_0068
    aus, die in der Kombinationsschaltung Vkn 18 in die korrigierten Hilfslesewerte y c o r = y 1 c o r , , y k c o r = [ y 1 ' o p 1 e 1 ] , , [ y 1 ' o p k e k ]
    Figure DE102013222136B9_0069
    korrigiert werden und die in den Unterschaltkreis BB 19 eingegeben werden.
  • Der Unterschaltkreis BB 19 transformiert die korrigierten Hilfslesewerte y c o r = y 1 c o r , , y k c o r
    Figure DE102013222136B9_0070
    in die korrigierten Ausgabewerte x c o r = x 1 c o r , , x n c o r = B B ( y 1 c o r , , y k c o r ) .
    Figure DE102013222136B9_0071
  • Liegt kein Fehler vor, dann gilt das Folgende: z 1 ' , , z M ' = z 1 , , z M ,
    Figure DE102013222136B9_0072
    c 1 ' , , c l ' = c 1 , , c l ,
    Figure DE102013222136B9_0073
    y 1 ' , , y k ' = y 1 , , y k = L H ( z 1 , , z M ) = L H [ B T ( x 1 , , x n ) ] ,
    Figure DE102013222136B9_0074
    e = e 1 , , e k = 0, ,0, k
    Figure DE102013222136B9_0075
    y 1 c o r , , y k c o r = y 1 , , y k
    Figure DE102013222136B9_0076
    und x c o r = x 1 c o r , , x n c o r = x 1 , , x n = x ,
    Figure DE102013222136B9_0077
    und die Ausgabe der gespeicherten Folge x ist fehlerfrei.
  • Wenn in den Daten, die aus dem Speicher Sp 13 gelesen wurden, Fehler auftreten, dann ist die Ausgabe der gespeicherten Folge xcor fehlerfrei, wenn die Fehler in den Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0078
    und die Fehler, die durch die Fehler in den Ausgabewerten z 1 ' , , z M '
    Figure DE102013222136B9_0079
    in den binären Hilfslesewerten y 1 ' , , y k '
    Figure DE102013222136B9_0080
    verursacht wurden, durch den Code C korrigierbar sind und wenn die Fehler korrigiert sind.
  • Die Korrektur wird durch den Korrektor Cor 17 ausgeführt, der einen k-stelligen Korrekturwert e = e1,...,ek bildet, der von den Prüfbits c 1 ' , , c l ' ,
    Figure DE102013222136B9_0081
    die aus dem Speicher Sp 13 gelesen wurden, und den Hilfslesewerten y 1 ' , , y k '
    Figure DE102013222136B9_0082
    abhängt, wobei der Korrektor Cor 17 die Korrekturwerte e1,...,ek bildet, die im Kombinationsschaltkreis Vkn 18 komponentenweise mit y 1 ' , , y k '
    Figure DE102013222136B9_0083
    kombiniert werden, wobei die Hilfslesewerte y c o r = y 1 c o r , , y k c o r
    Figure DE102013222136B9_0084
    durch den Unterschaltkreis BB 19 in die n-stellige binäre Ausgabefolge x 1 c o r , , x n c o r
    Figure DE102013222136B9_0085
    transformiert werden.
  • Treten Speicherfehler auf, dann können sich die ternären Zustände der Speicherzellen verändern. Wie oben beschrieben wurde, wird die Korrektur von möglichen Speicherfehlern des ternären Speichers Sp 13 ausgeführt, indem die binären Hilfslesewerte y ' = y 1 ' , , y k '
    Figure DE102013222136B9_0086
    unter Verwendung binärer Prüfbits c 1 ' , , c l ' ,
    Figure DE102013222136B9_0087
    korrigiert werden. Die binären Hilfslesewerte werden aus dem ternären Speicher mit möglicherweise fehlerhaften ternären Zustandswerten z 1 ' , , z M '
    Figure DE102013222136B9_0088
    gelesen. Ausführungsformen entsprechend werden die zugehörigen binären Prüfbits für die Hilfslesewerte durch den Codierer Cod 12 direkt als binäre Prüfbits c1,...,cl aus der binären Eingabefolge x1,...,xn gebildet.
  • Ausführungsformen entsprechend werden sie in einer separaten Speicherzelle als ternäre Werte c 1 t , , c l t
    Figure DE102013222136B9_0089
    gespeichert und aus den Speicherzellen Spc1,...,Spcl als möglicherweise fehlerhafte ternäre Werte c 1 t ' , , c l t '
    Figure DE102013222136B9_0090
    gelesen und durch die Unterschaltkreise tb1 ,...,tbl in möglicherweise fehlerhafte Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0091
    transformiert.
  • Es sollte hier wieder angemerkt werden, dass ein Paar von binären Hilfslesewerten, das einem ternären Speicherzustand zugeordnet ist, nur drei verschiedene binäre Werte annimmt und somit als Information aus einer einzigen ternären Speicherzelle gelesen werden kann. Ein Paar von binären Prüfbits nimmt jedoch im Allgemeinen vier verschiedene Werte an, sodass die binären Prüfbits entsprechend den Ausführungsformen jeweils in einer separaten Speicherzelle (ternär oder binär) gespeichert werden.
  • Somit ist es für die Fehlerkorrektur in einem Dreiwertspeicher möglich, binäre Fehlerkorrekturcodes, wie z.B. Hamming-Codes, binäre Hsiao-Codes, binäre BCH-Codes, als Fehlerkorrekturcodes in ternären Speichern sinnvoll zu verwenden.
  • Ein Fachmann wird verstehen, dass äquivalente Umformungen, wie zum Beispiel das Invertieren von Bits in der Schaltung Cir1 , das Wesen der Ausführungsformen nicht verändern. So ist es zum Beispiel möglich, dass der Korrektor Corr 17 teilweise invertierte Komponenten ausgibt, statt die Komponenten e1,... ,ek des Korrekturvektors e für die möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0092
    auszugeben, so z.B. anstelle der Komponente e1, die Komponente e 1, die dann mit y 1 '
    Figure DE102013222136B9_0093
    zu y 1 c = y 1 ' e ¯ 1 ¯
    Figure DE102013222136B9_0094
    kombiniert wird. Wenn zum Beispiel die Kombination op1 ursprünglich als eine XOR-Operation oder -Kombination realisiert wird, dann ist sie durch eine XNOR-Operation zu ersetzen, wenn die Komponente e1 durch die Komponente e 1 ersetzt wird.
  • Ebenso ist es zum Beispiel möglich, dass der Codierer Cod 12 teilweise invertierte Prüfbits ausgibt, deren Inversion durch die Ausführung des Korrektors Corr 17 ausgeglichen wird.
  • Abgesehen davon ist es zum Beispiel möglich, die verschiedenen Schaltkreisteile im Verbund zusammen zu optimieren, in der Art der Verwendung einer Hardwarebeschreibungssprache, wie es beim Schaltungsentwurf üblich ist.
  • 1e zeigt eine Schaltung gemäß einer Ausführungsform, die eine Schaltung gemäß 1d aufweist, die durch einen Fehlererkennungsschaltkreis Det 120 ergänzt ist. In der Ausführungsform von 1e ist der Kombinationsschaltkreis Vkn 18 von 1d als ein XOR-Schaltkreis 18a realisiert.
  • Die Unterschaltkreise von 1e, die den Unterschaltkreisen in 1d entsprechen, werden mit den gleichen Bezugsziffern gekennzeichnet und wurden oben bereits beschrieben. Der Fehlererkennungsschaltkreis Det 120 weist k+l binäre Eingänge und einen r Bit breiten binären Ausgang auf, der das Fehlersignal E überträgt, wobei r ≥ 1 ist. k erste Eingänge des Fehlererkennungsschaltkreises sind mit den k Ausgängen des Unterschaltkreises LH 16 verbunden, welche die Hilfslesewerte y 1 = y 1 ' , , y k '
    Figure DE102013222136B9_0095
    übertragen. Die weiteren l binären Eingänge sind mit den Ausgängen der Unterschaltkreise tb1 , 151..., tbl, 15l verbunden, die beim Lesen die ausgelesenen Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0096
    übertragen.
  • Der r Bit breite Ausgang des Fehlererkennungsschaltkreises Det 120 überträgt ein Fehlersignal E, wobei der Wert des Fehlersignals E anzeigt, ob y 1 ' , , y k ' ,   c 1 ' , , c l '
    Figure DE102013222136B9_0097
    , ein Codewort des Codes C (nicht erkennbarer Fehler) oder ob y 1 ' , , y k ' ,   c 1 ' , , c l '
    Figure DE102013222136B9_0098
    kein Codewort des Codes C (erkennbarer Fehler) ist.
  • Wenn zum Beispiel r = 1 ist, dann kann der Fehlererkennungsschaltkreis Det so ausgelegt sein, dass E = 0 anzeigt, dass kein erkennbarer Fehler in den Hilfslesewerten y 1 ' , , y k '
    Figure DE102013222136B9_0099
    und den Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0100
    vorhanden ist, und dass E = 1 anzeigt, dass ein erkennbarer Fehler in diesen Bits vorliegt.
  • Wenn zum Beispiel r = 2 ist, dann kann der Wert E = (1,0) oder E = (0,1) anzeigen, dass kein erkennbarer Fehler aufgetreten ist, und der Wert E = (0,0) oder E = (1,1) kann anzeigen, dass ein erkennbarer Fehler aufgetreten ist.
  • Es ist ferner möglich, den Fehlererkennungsschaltkreis Det so zu gestalten, dass das ausgegebene Fehlersignal E für die verschiedenen Fehlerarten, wie 1-Bit-Fehler, 2-Bit-Fehler, ..., unterschiedlich ist, wie es für einen Fachmann für verschiedene Codes offensichtlich ist und wie nachfolgend für einen konkreten Code beschrieben wird.
  • Der Fehlererkennungsschaltkreis Det 120 und der Korrektor Korr 16 weisen die gleichen Eingabewerte auf, und sie können auch zusammen optimiert werden, wie es beim Schaltungsentwurf üblich ist, und können automatisch durch einen Entwurfscompiler ausgeführt werden, wenn der Entwurf zum Beispiel unter Verwendung einer Hardwarebeschreibungssprache ausgeführt wird.
  • Nun wird das Ausbilden der Hilfslesewerte y ' = y 1 ' , y k ' = L H ( z 1 ' , , z m ' , z m + 1 ' , , z m ' )
    Figure DE102013222136B9_0101
    durch einen Unterschaltkreis LH 16 beschrieben.
  • Zum Beispiel kann durch den Unterschaltkreis LH 16 jeder ternären Komponente z i '
    Figure DE102013222136B9_0102
    mit i ∈ {1,..., M} ein ti-Tupel L ( z i ' )
    Figure DE102013222136B9_0103
    von binären Werten zugeordnet werden, wobei die Hilfslesewerte y ' = y 1 ' , , y k ' = L 1 ( z 1 ' ) , , L M ( z M ' )
    Figure DE102013222136B9_0104
    gebildet werden.
  • Hierbei ist 2 ≤ ti für 1 ≤ i ≤ m und 1 ≤ ti für m + 1 ≤ i ≤ M. Wenn zum Beispiel ti = 2 ist, dann kann eine derartige Zuordnung von z i '
    Figure DE102013222136B9_0105
    zu einem Tupel L i ( z i ' ) = L 1 i ( z i ' ) , L 2 i ( z i ' )
    Figure DE102013222136B9_0106
    von binären Werten einfach durch eine komponentenweise Analog-Digital-Wandlung realisiert werden. Somit kann zum Beispiel ein ternärer Wert einer Komponente z i ' ,
    Figure DE102013222136B9_0107
    die einen analogen physikalischen Wert darstellt und zu einem bestimmten nichtüberlappenden Intervall gehört, einfach in zwei binäre Werte digitalisiert werden.
  • Für q = 3 mögliche Werte kann das einfach unter Verwendung eines q - 1 = 2-Komparators mit Referenzwerten R1 , R2 mit R2 < R1 ausgeführt werden. Wenn z i ' > R 1
    Figure DE102013222136B9_0108
    ist, dann ist L 1 i ( z i ' ) = 1.
    Figure DE102013222136B9_0109
    Wenn z i ' R 1
    Figure DE102013222136B9_0110
    dann L 1 i ( z i ' ) = 0,
    Figure DE102013222136B9_0111
    wenn z i ' > R 2 ,
    Figure DE102013222136B9_0112
    dann L 2 i ( z i ' ) = 1,
    Figure DE102013222136B9_0113
    wenn z i ' R 2 ,
    Figure DE102013222136B9_0114
    dann L 1 i ( z i ' ) = 0
    Figure DE102013222136B9_0115
    Auf diese einfache Weise kann einem Wert z i '
    Figure DE102013222136B9_0116
    ein Tupel von binären Werten zugeordnet werden, die als Hilfslesewerte bezeichnet werden, sodass das Folgende gilt: L i ( z i ' ) = L 1 i ( z i ' ) , L 2 i ( z i ' ) = 0,0  f u ¨ z i ' R 2
    Figure DE102013222136B9_0117
    L i ( z i ' ) = L 1 i ( z i ' ) , L 2 i ( z i ' ) = 0,1  f u ¨ R 2 < z i ' R 1
    Figure DE102013222136B9_0118
    L i ( z i ' ) = L 1 i ( z i ' ) , L 2 i ( z i ' ) = 1,1  f u ¨ z i ' R 1 .
    Figure DE102013222136B9_0119
  • In diesem Fall ergibt sich eine binäre Codierung der Analogwerte mit der Besonderheit, dass zwei Analogwerten, die sich hinsichtlich des Analogwerts nur geringfügig unterscheiden und die zu benachbarten Intervallen gehören, digitale Tupel zugeordnet werden, die sich in nur einem Bit unterscheiden. Eine derartige Zuordnung von Analogwerten zu Digitalwerten wird üblicherweise von Fachleuten, die sich bei der Digitalisierung von Analogwerten auskennen, so verwendet, dass sich bei einer kleinen Abänderung der Analogwerte der zugeordnete Digitalwert nur um ein Bit verändert, was zum Beispiel in Steinbuch, K., Rupprecht, W. Nachrichtentechnik, Springer Verlag, Berlin/ Heidelberg/ New York 1967, Seite 339, vorgeschlagen wurde.
  • Eine weitere Zuordnungsmöglichkeit kann zum Beispiel sein, dass einem bestimmten ternären Wert z i '
    Figure DE102013222136B9_0120
    auch durch eine Analog-Digital-Umwandlung ein Tripel von binären Hilfslesewerten L i ( z i i ) = L 1 i ( z i ' ) , L 2 i ( z i ' ) , L i ( z i ' )
    Figure DE102013222136B9_0121
    zugeordnet wird, wobei die verschiedenen Tripel einen 1-von-3-Code bilden.
  • Das kann zum Beispiel auch unter Verwendung zweier Vergleiche mit zwei Referenzwerten R1 , R2 mit R2 < R1 erfolgen.
  • Wenn z i ' > R 1
    Figure DE102013222136B9_0122
    ist, dann kann L ( z i ' )
    Figure DE102013222136B9_0123
    auf 1,0,0 festgelegt werden. Wenn R 2 < z i ' R 1
    Figure DE102013222136B9_0124
    R2 ist, dann kann L ( z i ' )
    Figure DE102013222136B9_0125
    auf 0,1,0 festgelegt werden, und wenn z i ' R 2
    Figure DE102013222136B9_0126
    ist, dann kann L ( z i ' )
    Figure DE102013222136B9_0127
    auf 0,0,1 festgelegt werden. Auf diese einfache Weise wird dann einem ternären Wert z i '
    Figure DE102013222136B9_0128
    ein Tripel von binären Werten so zugeordnet, dass jedes der Tripel von binären Werten genau eine 1 aufweist und das Folgende gilt: L ( z i ' ) = 1,0,0  f u ¨ z i ' > R 1
    Figure DE102013222136B9_0129
    L ( z i ' ) = 0,1,0  f u ¨ R 2 < z i ' R 1
    Figure DE102013222136B9_0130
    L ( z i ' ) = 0,0,1  f u ¨ z i ' R 2 .
    Figure DE102013222136B9_0131
  • In 1f ist dargestellt, dass der Speicher Sp 13 einen ternären Speicher Spter 131 von Speicherzellen, die drei verschiedene Werte annehmen können, und einen binären Speicher Spbin 132 von Speicherzellen aufweist, die zwei verschiedene Werte annehmen können. Die Ausgänge des Codierers Cod 12, welche die binären Prüfbits c = c1,...,cl übertragen, sind beim Schreiben direkt mit den Dateneingängen der entsprechenden Speicherzellen des binären Speichers Spbin verbunden, während beim Lesen die Datenausgänge der Speicherzellen, welche die möglicherweise fehlerhaften Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0132
    übertragen, direkt mit den entsprechenden Eingängen des Korrektors Corr 17 verbunden sind.
  • 1f stellt dar, dass die Ausgabewerte z1,...,zm, zm+1,...,zM des Unterschaltkreises BT 11 in Speicherzellen des ternären Speichers Speitern 131 gespeichert werden, während die binären Ausgabewerte c1,...,cl des Codierers Cod 12 in Zellen des binären Speichers Speibin 132 gespeichert werden. In einer Ausführungsform sollte das Speichern so realisiert werden, dass die Ausgabewerte z1,...,zm,zm.+1...,zM des Unterschaltkreises BT 11 und die zugehörigen binären Ausgabewerte c1,...,cl des Codierers Cod 12 in dem Speicher Spter 131 und dem Speicher Spbin 132 unter derselben Adresse gespeichert werden.
  • Da die Werte zm+1, ..., zM jeweils nur zwei verschiedene Werte annehmen, können diese Werte in einer anderen Ausführungsform auch in einem binären Speicher Spbin gespeichert werden.
  • Es werden nun mögliche Realisierungen des Unterschaltkreises BT 11 von 1a ausführlicher erläutert.
  • 3a zeigt für n = 9 und M = 6 eine mögliche Realisierung des Unterschaltkreises BT 11. An seinen neun binären Eingängen werden die binären Werte x1, x2, ...,x9 eingegeben, und an seinen sechs ternären Ausgängen werden sechs ternäre Werte z1,...,z6 ausgegeben. Die Realisierung ist aufgebaut aus drei Unterschaltkreisen BT1 31, BT2 32 und BT3 33 zum Ausführen von drei Funktionen f1 , f2 und f3 , wobei diese Unterschaltkreise jeweils drei binäre Eingänge und zwei ternäre Ausgänge aufweisen.
  • Der Unterschaltkreis 31 führt die Funktion f1 mit f1 (x1, x2, x3) = z1, z2 aus.
  • Der Unterschaltkreis 32 führt die Funktion f2 mit f2 (x4, x5, x6) = z3, z4 aus.
  • Der Unterschaltkreis 33 führt die Funktion f3 mit f3 (x7, x8, x9) = z5, z6 aus.
  • Da es acht verschiedene binäre Tripel von Werten dreier Variablen und neun Tupel von Werten zweier ternärer Variablen gibt, werden die acht möglichen binären Eingabewerte jeweils durch die Funktionen f1 , f2 und f3 auf jeweils acht verschiedene Paare von verschiedenen ternären Ausgabevariablen abgebildet. Das Abbilden wird so ausgeführt, dass verschiedene Tripel von binären Eingabewerten verschiedenen Tupeln von ternären Ausgabewerten entsprechen. Konkrete Ausführungen werden nachstehend erläutert.
  • 3b zeigt eine weitere mögliche Realisierung des Unterschaltkreises BT 11 für n = 11 und M = 8. An seinen elf binären Eingängen werden die binären Werte x1, x2, ...,x11 eingegeben, und an seinen acht ternären Ausgängen werden die acht ternären Werte z1,...,z8 ausgegeben. Die Realisierung ist aufgebaut aus vier Unterschaltkreisen BT1 34, BT2 35, BT3 36 und BT4 37 zum Ausführen von vier Funktionen f1 , f2 , f3 und f4 , wobei diese Unterschaltkreise jeweils drei binäre Eingänge und zwei ternäre Ausgänge aufweisen.
  • Der Unterschaltkreis 34 führt die Funktion f1 mit f1 (x1, x2, x3) = z1, z2 aus.
  • Der Unterschaltkreis 35 führt die Funktion f2 mit f2 (x4, x5, x6) = z3, z4 aus.
  • Der Unterschaltkreis 36 führt die Funktion f3 mit f3 (x7, x8, x9) = z5, z6 aus.
  • Der Unterschaltkreis 37 führt die Funktion f4 mit f4 (x10, x11, 0) = z7, z8 aus.
  • In 3b ist für den Unterschaltkreis BT4 37, der die Funktion f4 (x10, x11) = z7, z8 ausführt und der von den zwei binären Variablen x10, x11 abhängt, ein weiterer Eingang eingezeichnet, der den konstanten Wert 0 überträgt. Dadurch soll dargestellt werden, dass der Unterschaltkreis 37 zum Beispiel aus dem Unterschaltkreis 36 zum Ausführen der Funktion f3 abgeleitet werden kann, indem zum Beispiel der Wert der dritten Eingabevariable zum Beispiel konstant auf 0 gesetzt wird, sodass die folgende Formel gilt: f 4 ( x 10 , x 11 ) = f 3 ( x 10 , x 11 ,0 )
    Figure DE102013222136B9_0133
  • 3c zeigt eine weitere mögliche Realisierung des Unterschaltkreises BT 11 für n = 8 und M = 6. An seinen acht binären Eingängen werden die binären Werte x1, x2,...,x8 eingegeben, und an seinen sechs ternären Ausgängen werden die sechs ternären Werte z1,...,z6 ausgegeben. Die Realisierung ist aufgebaut aus vier Unterschaltkreisen BT1 38, BT2 39, BT3 310 und BT4 311 für die Ausführung von zwei Funktionen f und φ, wobei die Funktion f durch die Unterschaltkreise 38 und 39 ausgeführt wird und die Funktion φ durch die Unterschaltkreise 310 und 311 ausgeführt wird. Die Unterschaltkreise 38 und 39 zur Ausführung der Funktion f weisen drei binäre Eingänge und zwei ternäre Ausgänge auf. Die Unterschaltkreise 310 und 311 zur Ausführung der Funktion φ weisen jeweils einen binären Eingang und einen Ausgang auf, der zwei verschiedene Werte annehmen kann.
  • Die Unterschaltkreise 38 und 39 führen die gleiche Funktion f mit f (x1, x2, x3) = z1, z2 und f (x4, x5, x5) = z3, z3 aus, und die Unterschaltkreise 310 und 311 führen jeweils die Funktion φ mit φ(x7) = z5 und φ(x8) = z6 aus. Hier gilt das Folgende: z m + 1 = z 5  und z M = z 6 .
    Figure DE102013222136B9_0134
  • Dementsprechend können die Schaltkreise 310 und 311 zur Ausführung der Funktion φ so eingerichtet sein dass zum Beispiel φ(0bin) = 0ter und φ(1bin) = 2ter oder φ(0bin) = 0ter und φ(1bin) = 1tern = 1bin ist. Ist φ(1bin) = 2tern, dann wird der binäre Wert 1bin durch die Unterschaltkreise 310 und 311 für das Ausführen der Funktion φ in den ternären Wert 2ter transformiert, sodass die Werte z5 und z6, die an dem jeweiligen Ausgang des Unterschaltkreises 210 und 211 ausgegeben wurden, in die Speicherzellen des Speichers Sp 13 eingespeichert werden, dessen Zustände ternäre Werte annehmen.
  • Wenn φ(1bin) = 1ter = 1bin ist, dann können die Werte z5 und z6, die am Ausgang der Unterschaltkreise ausgegeben wurden, beide in Speicherzellen des Speichers Sp 13, die ternäre Werte annehmen, wie auch in Speicherzellen, die binäre Werte annehmen, gespeichert werden.
  • Die Hilfslesewerte y ' = y 1 ' , , y k ' ,
    Figure DE102013222136B9_0135
    y ' = y 1 ' , , y k ' = L H ( z 1 ' , z m ' , z m + 1 ' , , z M ' )
    Figure DE102013222136B9_0136
    werden durch den Unterschaltkreis LH 16 aus den Zustandswerten z 1 ' , z m ' , z m + 1 ' , , z M '
    Figure DE102013222136B9_0137
    gebildet, die aus dem Speicher Sp 13 ausgegeben wurden.
  • In 4 ist dargestellt, wie der Unterschaltkreis LH 16 zum Ausbilden der Hilfslesewerte in einer Ausführungsform aus M Unterschaltkreisen LH1 161,..., LHm 16m, LHm+1, 16(m + 1), ..., LHM 16M aufgebaut sein kann.
  • In der Ausführungsform, die durch 4 dargestellt ist, wird ein ti -Tupel L i ( z i ' )
    Figure DE102013222136B9_0138
    von binären Werten für i = 1, ..., M durch den Unterschaltkreis LHi 16i mit der Komponente z i '
    Figure DE102013222136B9_0139
    verknüpft, wobei die binären Werte, die die Hilfslesewerte bilden, y ' = y 1 ' , , y k ' = L 1 ( z 1 ' ) , , L M ( z M ' )
    Figure DE102013222136B9_0140
    sind.
  • Hier ist 2 ≤ ti für 1 ≤ i ≤ m und 1 ≤ ti für m + 1 ≤ i ≤ M.
  • Zuerst wird der Fall betrachtet, dass 1 ≤ i ≤ m ist.
  • Wenn zum Beispiel ti = 2 oder i = 1, ..., m ist, dann kann eine derartige Zuordnung von z i '
    Figure DE102013222136B9_0141
    zu einem Tupel L i ( z i ' ) = L 1 i ( z i ' ) , L 2 i ( z i )
    Figure DE102013222136B9_0142
    von binären Hilfslesewerten einfach durch eine Analog-Digital-Umwandlung von zi mithilfe eines Unterschaltkreises LHi 16i ausgeführt werden. So kann zum Beispiel ein ternärer Wert einer Komponente z i ' ,
    Figure DE102013222136B9_0143
    die einen analogen physikalischen Wert darstellt und zu einem bestimmten nicht überlappenden Intervall gehört, einfach in zwei binäre Werte digitalisiert werden.
  • Das kann zum Beispiel einfach unter Verwendung zweier Komparatoren erfolgen, die Referenzwerte R1 , R2 mit R2 < R1 aufweisen. Ist z i ' > R 1
    Figure DE102013222136B9_0144
    dann ist L 1 ' ( z i ' ) = 1.
    Figure DE102013222136B9_0145
    Ist z i ' R 1 ,
    Figure DE102013222136B9_0146
    dann ist L 1 i ( z i ' ) = 0.
    Figure DE102013222136B9_0147
    Ist z i ' > R 2 ,
    Figure DE102013222136B9_0148
    dann ist L 2 i ( z i ' ) = 1.
    Figure DE102013222136B9_0149
    Ist z i ' R 2 ,
    Figure DE102013222136B9_0150
    dann ist L 1 i ( z i ' ) = 0.
    Figure DE102013222136B9_0151
    Dadurch kann ein Tupel von binären Werten mit einem Wert z i '
    Figure DE102013222136B9_0152
    verknüpft werden, wobei die binären Werte als Hilfslesewerte bezeichnet werden, sodass das Folgende gilt: L i ( z i ' ) = L 1 i ( z i ' ) ,   L 2 i ( z i ' ) = 0,0  für  z i ' R 2 .
    Figure DE102013222136B9_0153
    L i ( z i ' ) = L 1 i ( z i ' ) ,   L 2 i ( z i ' ) = 0,1  für R 2 < z i ' R 1 .
    Figure DE102013222136B9_0154
    L i ( z i ' ) = L 1 i ( z i ' ) ,   L 2 i ( z i ' ) = 1,1  für  z i ' R 1 .
    Figure DE102013222136B9_0155
  • Es ist auch möglich, die Zuordnung so auszuführen, dass das Folgende gilt: L i ( z i ' ) = L 1 i ( z i ' ) ,   L 2 i ( z i ' ) = 0,0  für  z i ' R 2 .
    Figure DE102013222136B9_0156
    L i ( z i ' ) = L 1 i ( z i ' ) ,   L 2 i ( z i ' ) = 0,1  für R 2 < z i ' R 1 .
    Figure DE102013222136B9_0157
    L i ( z i ' ) = L 1 i ( z i ' ) ,   L 2 i ( z i ' ) = 1,1  für  z i ' R 1 .
    Figure DE102013222136B9_0158
  • Eine weitere Zuordnungsmöglichkeit kann zum Beispiel sein, dass einem ternären Wert z i '
    Figure DE102013222136B9_0159
    mithilfe eines Unterschaltkreises LHi 16i auch durch Analog-Digital-Umwandlung ein Tripel oder binärer Wert L i ( z i ' ) = L 1 i ( z i ' ) ,   L 2 i ( z i ' ) ,   L 3 i ( z i ' ) ,
    Figure DE102013222136B9_0160
    zugeordnet wird, wobei die verschiedenen Tripel zum Beispiel einen 1-von-3-Code bilden.
  • Das kann zum Beispiel auch unter Verwendung zweier Komparatoren mit zwei Referenzwerten R1 , R2 mit R2 < R1 ausgeführt werden, wie bereits beschrieben wurde, sodass das Folgende gilt: L i ( z i ' ) = 1,   0,   0  für  z i ' > R 1
    Figure DE102013222136B9_0161
    L i ( z i ' ) = 0,  1 ,   0  für R 2 < z i ' R 1
    Figure DE102013222136B9_0162
    L i ( z i ' ) = 0,   0,  1 für  z i ' R 2 .
    Figure DE102013222136B9_0163
  • Es ist auch möglich, einem ternären Wert zi ein Tripel von binären Werten so zuzuordnen, dass jedes Tripel von binären Werten genau eine 0 enthält und zum Beispiel das Folgende gilt: L i ( z i ' ) = 1,  1 ,   0  für  z i ' > R 1
    Figure DE102013222136B9_0164
    L i ( z i ' ) = 0,  1 ,  1 für R 2 < z i ' R 1
    Figure DE102013222136B9_0165
    L i ( z i ' ) = 1,   0,  1 für  z i ' R 2 .
    Figure DE102013222136B9_0166
  • Es ist auch möglich, dass für 1 ≤ i ≤ m alle Unterschaltkreise LH1 161, ..., LHm 16m gleich sind.
  • Nun wird der Fall betrachtet, dass m + 1 ≤ j ≤ M ist. z j '
    Figure DE102013222136B9_0167
    wird in den Unterschaltkreis LHj eingegeben, wobei z j '
    Figure DE102013222136B9_0168
    beim Einschreiben nur zwei verschiedene Werte annimmt und somit im fehlerfreien Fall beim Auslesen z j ' = z j
    Figure DE102013222136B9_0169
    ist.
  • Unterschiede ergeben sich in Abhängigkeit davon, ob zj in einer ternären Speicherzelle oder in einer binären Speicherzelle gespeichert ist.
  • Zuerst wird der Fall betrachtet, z j '
    Figure DE102013222136B9_0170
    in einer ternären Speicherzelle mit drei möglichen Zustandswerten gespeichert ist. Obwohl der Wert zj, der eingeschrieben wurde, nur zwei verschiedene Werte annehmen kann, kann in diesem Fall der ausgelesene Wert z j '
    Figure DE102013222136B9_0171
    infolge eines Speicherfehlers drei verschiedene Werte annehmen.
  • Wenn die binären Werte 0bin und 1bin durch den Unterschaltkreis BT3 310 oder BT4 311 in 3c als 0ter bzw. 2ter codiert wurden, dann kann der entsprechende Unterschaltkreis LHj zum Beispiel die Abbildung Lj(0ter) = 0bin, LHj (1ter) = 1bin und LHj (2ter) = 1bin ausführen. Eine derartige Ausführung hat den Vorteil, dass ein Speicherfehler, der den ternären Wert 2ter in 1ter verfälscht, toleriert wird, da er keinen Einfluss auf die Ausgabe des Schaltkreises Lj hat.
  • Der Unterschaltkreis Lj kann zum Beispiel unter Verwendung eines Komparators realisiert sein, der den Wert zj mit einem Referenzwert R1 vergleicht, sodass das Folgende gilt: L H j ( z j ) = 0 b i n  für z j ' R 1 ,
    Figure DE102013222136B9_0172
    L H j ( z j ) = 1 b i n  für z j ' > R 1 .
    Figure DE102013222136B9_0173
  • Wird hingegen zj in einem Binärspeicher gespeichert, dann kann der Zustand der Speicherzelle nur zwei verschiedene Werte annehmen. In diesem Fall ist sowohl der Wert zj, der in die binäre Speicherzelle eingeschrieben ist, als auch der Wert z j ' ,
    Figure DE102013222136B9_0174
    der aus dieser Speicherzelle gelesen wird, binär, sodass dieser ausgelesene Wert z j '
    Figure DE102013222136B9_0175
    direkt als ein Hilfslesewert dienen kann, und der entsprechende Unterschaltkreis LHj kann aus einer Leitung bestehen, welche seinen Eingang direkt mit seinem Ausgang verbindet.
  • 5a stellt dar, wie der Codierer Cod 12 funktionell ausgeführt ist. Funktionell weist der Codierer 12 eine Reihenschaltung der Unterschaltkreise BB 11, LH 16 und eines Unterschaltkreises BinCod 51 auf, der k binäre Eingänge und l binäre Ausgänge aufweist. Da die Unterschaltkreise BB 11 und LH bereits beschrieben wurden, muss hier nur der Unterschaltkreis BinCod 51 beschrieben werden.
  • Der Unterschaltkreis BinCod 51 ist so ausgeführt, dass er die l binären Prüfbits c1, ..., cl aus den binären Werten y1, ..., yk bildet, die an seinem Eingang eingegeben werden. Hierbei sind die Werte y1, ..., yk die k Informationsbits eines binären Codes BinC, und c1, ..., cl sind die zugehörigen Prüfbits, sodass der Unterschaltkreis BinCod 51 einfach die entsprechenden binären Prüfbits c1, ..., cl der Informationsbits y1, ..., yk des Codes C bildet. Der Code C kann hierbei ein linearer oder ein nichtlinearer Code sein.
  • Ein Fachmann kann die Schaltkreisfunktionalität, die durch 5a beschrieben wird, unter Verwendung eines Synthesewerkzeugs optimieren, wie es beim Schaltkreisentwurf üblich ist.
  • In 5b ist dargestellt, wie der Codierer Cod 12 funktionell ausgeführt sein kann, wenn der Fehlerkorrekturcode C ein linearer Code ist, der durch eine (k, k + l)-G-Matrix G = (lk , Pk,l) beschrieben werden kann. Hierbei ist lk eine (k)-dimensionale Einheitsmatrix und Pk,l ist eine (k, l)-Matrix, die als eine Paritätsmatrix zu bezeichnen ist.
  • Im Unterschied zu 5a ist der Unterschaltkreis BinCode 51 durch den Unterschaltkreis LinCode 52 ersetzt. Der Unterschaltkreis LinCode 52 ist so ausgeführt, dass er die binären Prüfbits c1, ..., cl, die an seinen l binären Ausgängen ausgegeben werden, entsprechend der Beziehung c 1 , , c l = ( y 1 , y k ) P ,
    Figure DE102013222136B9_0176
    aus den Werten y1, ..., yk bildet, die an seinen Eingängen eingegeben wurden. Es kann entnommen werden, dass der Unterschaltkreis LinCode ein herkömmlicher Schaltkreis zur Bestimmung der Prüfbits c1, ..., cl des linearen Fehlerkorrekturcodes C aus den Bits y1, ..., yk mit der Generatormatrix G = (lk, Pk,l) ist. In diesem Sinne sind die Bits y1, ..., yk die Informationsbits des Codes C. Der Code C kann zum Beispiel ein Hamming-Code, ein Hsiao-Code, ein BCH-Code oder ein anderer linearer Fehlerkorrekturcode sein.
  • Ein Fachmann wird die Schaltkreisfunktionalität, die durch 5b beschrieben wird, optimieren, so zum Beispiel unter Verwendung eines Synthesewerkzeugs, wie es beim Schaltkreisentwurf üblich ist.
  • In 5c ist dargestellt, wie der Codierer Cod 12 funktionell ausgeführt sein kann, wenn die Prüfbits c1, ..., cl auch von den Adressbits der Schreibadresse a = a1, ..., aQ abhängen. Es wurde angenommen, dass der Fehlerkorrekturcode C ein linearer Code ist, der durch eine (k + q, k + q + l)-G-Matrix G = (lk+q, Pk+q,l ) beschrieben werden kann. Hierbei ist lk+q eine (k + q)-dimensionale Einheitsmatrix und Pk+q,l eine (k + q, l)-Matrix, die als eine Paritätsmatrix zu bezeichnen ist. Außer von den Datenbits x = x1, ..., xn hängen die Prüfbits c1, ..., cl auch von q Bits A1, ..., Aq ab, die aus den Adressbits a1, ..., aQ gemäß A 1 , , A q = F ( a 1 , , a Q )
    Figure DE102013222136B9_0177
    bestimmt werden.
  • Hierbei ist a = a1, ..., aQ die Adresse, unter der z1, ..., zm, zm+1, ..., zM und die Prüfbits c = c1, ..., cl in den Speicher Sp 13 eingeschrieben sind. Q ist die Wortbreite der Schreibadresse a, und es gilt q ≤ Q. F beschreibt eine eindeutige Abbildung der Q Bits der Schreibadresse auf q bits A1, ..., Aq.
  • Der entsprechende Codierer ist in 5c dargestellt. In 5c weist der Unterschaltkreis Lincode 53 k erste Eingänge, in welche die Hilfslesewerte y1, ..., yk, die durch den Unterschaltkreis LH ausgegeben wurden, eingegeben werden, und q zweite Eingänge auf, die an die q Ausgänge des Unterschaltkreises Fs angeschlossen sind. An seinen l Ausgängen gibt der Unterschaltkreis Fs 55 die Bits A1, ..., Aq aus, die mithilfe der Funktion F aus den Adressbits a = a1, ..., aQ, bestimmt wurden, wobei der Unterschaltkreis FS 55 die Funktion F ausführt. An seinen I binären Ausgängen gibt der Unterschaltkreis Lincode 53 die Prüfbits c1, ..., cl aus.
  • Im Unterschied dazu weist der Unterschaltkreis Lincode 52 von 5b nur k Eingänge auf, in die die Hilfslesewerte y1, ..., yk eingegeben werden.
  • Für einen linearen Code, der durch eine (k + q, k + q + l)-G-Matrix G = (lk+q, Pk+q,l), beschrieben werden kann, werden die l binären Prüfbits c1, ..., cl entsprechend der Beziehung c 1 , , c l = ( y 1 , y k ,   A 1 , A q ) P
    Figure DE102013222136B9_0178
    bestimmt.
  • Wenn zum Beispiel q = 1 und A1 = a1⊕ ... ⊕aQ ist, dann ist A1 die Parität der Schreibadresse, und für die Prüfbits c1, ..., cl wird das Folgende angewendet: c 1 , , c l = ( y 1 , y k ,   A 1 ) P ,
    Figure DE102013222136B9_0179
    wobei die G-Matrix G eine (k + 1, k + I + 1)-Matrix und P eine (k + 1, I)-Matrix ist.
  • In 5d wird der entsprechende Codierer 58 dargestellt. Der Unterschaltkreis 56 weist k + 1 Eingänge auf, wobei die k Hilfslesewerte y1, ..., yk in die k ersten Eingänge eingegeben werden. Der (k + 1)-te Eingang ist an den 1 Bit breiten Ausgang eines XOR-Schaltkreises 57 geschaltet, der an seinem Ausgang die Parität A1 = a1⊕ ... ⊕aQ der Adressbits ausgibt.
  • Wenn q = Q und A1, ..., AQ = a1, ..., aQ ist, dann hängen die Prüfbits c1, ..., cl von allen Bits der Schreibadresse a ab. Für einen linearen Code, der durch eine (k + Q, k + Q + l)-G-Matrix G = (lk + Q, Pk+Q,l) beschrieben werden kann, sind die I binären Prüfbits c1, ..., cl gemäß der folgenden Beziehung c 1 , , c l = ( y 1 , y k ,  a 1 , a Q ) P
    Figure DE102013222136B9_0180
    festgelegt.
  • In 5e ist der entsprechende Codierer 510 dargestellt. Der Unterschaltkreis 59 Lincode weist k + Q Eingänge auf, wobei in die k ersten Eingänge k Hilfslesewerte y1, ..., yk eingegeben werden. In die Q zweiten Eingänge werden die Adressbits a1, ..., aQ der Schreibadresse eingegeben.
  • Ein Fachmann wird verstehen, dass dann, wenn die Prüfbits auch von Adressbits der Schreibadresse abhängen, ein nichtlinearer Fehlerkorrekturcode anstelle eines linearen Codes verwendet werden kann.
  • 6a zeigt eine herkömmliche Ausführung eines Korrektors für einen linearen Fehlerkorrekturcode C. Der Code C der Länge k + I mit k Informationsbits, hier die Hilfslesewerte y 1 ' , , y k ' ,
    Figure DE102013222136B9_0181
    und l Prüfbits, hier die Prüfbits c 1 ' , , c l ' ,
    Figure DE102013222136B9_0182
    kann durch eine entsprechende H-Matrix H beschrieben werden, die in einer systematischen Form H = (PT, ll) oder in einer nicht systematischen Form vorliegen kann.
  • Der Korrektor Cor 17a für den betrachteten linearen Fehlerkorrekturcode C in 6a umfasst einen für lineare Codes üblichen Syndromgenerator 61a, der l + k binäre Eingänge und l binäre Ausgänge aufweist, und einen Decoder 62a mit l binären Eingängen und k binären Ausgängen. Die l Datenausgänge des Speichers Sp 13, welche die möglicherweise fehlerhaften Werte c 1 ' , , c l '
    Figure DE102013222136B9_0183
    der Prüfbits übertragen, werden beim Lesen in l erste Eingänge des Syndromgenerators 61a eingeführt, während die k Ausgänge der Unterschaltkreise LH 16, welche die möglicherweise fehlerhaften Hilfslesewerte y ' = y 1 ' , , y k '
    Figure DE102013222136B9_0184
    übertragen, an die weiteren k Eingänge des Syndromgenerators 61a angeschlossen sind. Die l Ausgänge des Syndromgenerators 61a sind an die l Eingänge des Decoders 62a angeschlossen, der an seinen k Ausgängen den k-komponentigen Korrekturvektor e = e1, ..., ek ausgibt. Der Syndromgenerator 61a ist so ausgeführt, dass er an seinen l binären Ausgängen die Komponenten s1, ..., sl des Fehlersyndroms s ausgibt, das durch s 1 , , s l = H [ y 1 ' , , y k ' ,   c 1 ' , , c l ' ] T
    Figure DE102013222136B9_0185
    festgelegt ist.
  • Ist der Code C ein K-Bit-Fehlerkorrekturcode, dann wird jedem M-Bit-Fehler mit M ≤ K ein separates Fehlersyndrom zugewiesen, und der Fehler kann basierend auf dem Syndrom korrigiert werden.
  • Der Decoder 62a kann als ein Kombinationsschaltkreis ausgeführt sein, der den k-stelligen Korrekturvektor e = e1, ..., ek ausgibt, wenn das Syndrom eingegeben wird. Ist M ≤ K, dann sind genau diejenigen Komponenten des Korrekturvektors e = e1, ..., ek gleich 1, an denen ein Fehler aufgetreten ist und die korrigiert werden.
  • Die Korrektur findet in dem Kombinationsschaltkreis Vkn 18 statt, der in den Ausführungsformen von 1e als ein XOR-Schaltkreis 18a ausgeführt ist, sodass y 1 ' e 1 , y k ' e k = y 1 c , , y k c
    Figure DE102013222136B9_0186
    gebildet wird.
  • In 6b ist dargestellt, wie der Korrektor funktionell als Cor 17b ausgeführt sein kann, wobei die Prüfbits c1, ..., cl auch von den Adressbits der Schreibadresse a = a1, ..., aQ abhängen. Außer von den Hilfslesewerten y 1 ' , , y k '
    Figure DE102013222136B9_0187
    und den Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0188
    hängt das Fehlersyndrom s = s1 , ..., sl in 6b auch von q Bits A l ' , , A q '
    Figure DE102013222136B9_0189
    ab, die aus den Adressbits a ' = a 1 ' , , a Q '
    Figure DE102013222136B9_0190
    der Leseadresse a' als A 1 ' , , A q ' = F ( a 1 ' , , a Q ' )
    Figure DE102013222136B9_0191
    bestimmt werden.
  • Hierbei ist a ' = a 1 ' , , a Q '
    Figure DE102013222136B9_0192
    die Adresse, unter der die Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0193
    und die Prüfbits c ' = c 1 ' , , c l '
    Figure DE102013222136B9_0194
    aus dem Speicher Sp 13 gelesen werden. Q ist die Wortbreite der Leseadresse a', und es gilt das Folgende: q ≤ Q. F beschreibt die gleiche eindeutige Abbildung der Q Bits der Leseadresse a ' = a 1 ' , , a Q '
    Figure DE102013222136B9_0195
    auf q Bits A 1 ' , , A q ' ,
    Figure DE102013222136B9_0196
    die bei der Abbildung der Schreibadresse a = a1, ..., aQ auf die Bits A1, ..., Aq verwendet wurde.
  • Der Syndromgenerator 61b wird nun so ausgeführt, dass er an seinen I binären Ausgängen die Komponenten s1 , ..., sl des Fehlersyndroms s ausgibt, das durch s 1 , s l = H [ y 1 ' , , y k ' ,   c 1 ' , , c l ' ,   A 1 ' , , A q ' ] T
    Figure DE102013222136B9_0197
    bestimmt wird.
  • Wenn q = Q und A 1 ' , , A q ' = a 1 ' , , a Q '
    Figure DE102013222136B9_0198
    ist, dann wird das Syndrom durch s 1 , s l = H [ y 1 ' , , y k ' ,   c 1 ' , , c l ' ,  a 1 ' , , a Q ' ] T
    Figure DE102013222136B9_0199
    bestimmt, wobei a 1 ' , , a Q '
    Figure DE102013222136B9_0200
    die vollständige Leseadresse ist.
  • Wird F ( a 1 ' , , a Q ' ) = a 1 ' ,   ,   a Q ' = A 1 '
    Figure DE102013222136B9_0201
    angewendet, dann hängt das Syndrom von der Parität der Komponenten der Leseadresse ab, und es gilt das Folgende: S 1 , s l = H [ y 1 ' , , y k ' , c 1 ' , , c l ' , A 1 ' ] T
    Figure DE102013222136B9_0202
  • Der Syndromgenerator 61b weist l erste Eingänge auf, in welche die möglicherweise fehlerhaften Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0203
    eingegeben werden. Er weist k zweite Eingänge auf, in die die möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0204
    eingegeben werden, und er weist q weitere Eingänge auf, an welche die Ausgänge des Unterschaltkreises FS 63 für die Bestimmung der Bits A 1 ' ,   ,   A q '
    Figure DE102013222136B9_0205
    aus den Bits a 1 ' ,   ,   a q '
    Figure DE102013222136B9_0206
    der Leseadresse a' angeschlossen sind. Der Unterschaltkreis Fs ist so ausgeführt, dass er die Bits A 1 ' ,   ,   A q '
    Figure DE102013222136B9_0207
    aus den Bits der Leseadresse a' bildet. Wenn zum Beispiel Q = q und A 1 ' ,   ,   A Q ' = a 1 ,   ,   a q
    Figure DE102013222136B9_0208
    ist, dann besteht der Unterschaltkreis Fs einfach aus q Verbindungsleitungen, die seine Eingänge mit seinen Ausgängen verbinden. Wenn zum Beispiel q = 1 und A 1 ' = a 1 '   a q '
    Figure DE102013222136B9_0209
    ist, dann ist Fs ein XOR-Baum, der an seinem Ausgang die Parität seiner Eingabewerte ausgibt.
  • Der Unterschaltkreis BB 19 ist ein Kombinationsschaltkreis. Er bildet aus den korrigierten Hilfslesewerten y c = y 1 c ,   ,   y k c
    Figure DE102013222136B9_0210
    die korrigierten Eingabewerte x c = x 1 c ,   ,   x k c .
    Figure DE102013222136B9_0211
    Wenn kein Fehler vorhanden ist oder wenn ein Fehler vorliegt, der durch den Code C korrigiert werden kann, dann ist xc = x.
  • Es werden nun mögliche Ausführungen des Unterschaltkreises BB 19 für verschiedene Realisierungen der Ausführungsformen ausführlicher erläutert.
  • 7a stellt eine Ausführungsform dar, wie der Unterschaltkreis BB 19 von 1d für 12 Hilfslesewerte y1, ..., y12 und 9 binäre Eingabewerte x1, ..., x9 als eine Parallelschaltung der Kombinations-Unterschaltkreise BB1 71, BB2 72 und BB3 73 ausgebildet werden kann, welche die Kombinationsfunktionen g1 , g2 und g3 ausführen, wobei jeder 4 binäre Eingänge und 3 binäre Ausgänge aufweist.
  • 8 dient zur Erläuterung, wie diese Unterschaltkreise BB1 71, BB2 72 und BB3 73 festgelegt werden können .
  • In 8 ist ein Funktionsblockdiagramm dargestellt, das zur Veranschaulichung dient, wie der Unterschaltkreises BB 19 für eine Ausführungsform einer Schaltung Cir1 , die 9 binäre Eingänge x1, x2, ..., x9 aufweist, festgelegt werden kann.
  • In 8 wie auch in 3a ist der Unterschaltkreis BT 11 mit 9 binären Eingängen seinerseits aus drei Unterschaltkreisen BT1 81 (31 in 3a), BT2 82 (32 in 3a) und BT3 83 (33 in 3a) ausgebildet, welche die Funktionen f1 , f2 und f3 ausführen, wobei jeder drei binäre Eingänge und zwei ternäre Ausgänge aufweist, welche die ternären Zustandswerte z1, ..., z6 übertragen. Diese ternären Zustandswerte z1, ..., z6 werden durch Funktionen LH184..., LH689 in die binären Hilfslesewerte y1, ..., y12 transformiert. Die Funktionen LH184, ..., LH689 sind die Funktionen, die durch den Unterschaltkreis LH 16 ausgeführt werden. Die binären Lesewerte y1, ..., y12 werden nun ihrerseits durch den Unterschaltkreis BB 19 wieder in die binären Eingabewerte x1, ..., x9 transformiert. In dieser Hinsicht sind die drei Funktionen g1 , g2 und g3 jeweils durch Rücktransformation von vier binären Hilfslesewerten y1, y2, y3, y4; y5, y6, y7, y8 und y9, y10, y11, y12 in jeweils drei binäre Werte x1, x2, x3; x4, x5, x6 und x7, x8, x9 festgelegt. Der Unterschaltkreis BB 19 ist ein Schaltkreis, der seinerseits die drei Unterschaltkreise BB1 810 zum Ausführen der Funktion g1 , BB2 811 zum Ausführen der Funktion g2 und BB3 812 zum Ausführen der Funktion g3 aufweist.
  • Zuerst wird die Bestimmung der Funktion g1 betrachtet. Diese Funktion wird aus f1 , LH1 und LH2 bestimmt.
  • In den folgenden Tabellen bezeichnen die Werte 0, 1 in den Spalten, die durch xi oder yi bezeichnet sind, binäre Werte, während die Werte 0, 1, 2, die in Spalten stehen, die durch zk gekennzeichnet sind, ternäre Werte darstellen.
  • Es wird eine Ausführungsform beschrieben, wobei die Funktion f1 durch die Tabelle 1 gegeben ist. Tabelle 1 (f1(x1, x2, X3))
    x1 x2 x3 z1 z2
    0 0 0 0 0
    0 0 1 0 1
    0 1 0 0 2
    0 1 1 1 0
    1 0 0 1 1
    1 0 1 1 2
    1 1 0 2 0
    1 1 1 2 1
  • Gemäß Tabelle 1 ist z1, z2 einfach eine ternäre Darstellung der Werte x1 x2 x3, die als eine Binärzahl interpretiert werden.
  • Die Funktion LH1 wird durch die Tabelle 2 beschrieben. Tabelle 2 (LH1(z1))
    z1 y1 y2
    0 0 0
    1 0 1
    2 1 1
  • Die Funktion LH2 wird durch die Tabelle 3 beschrieben. Tabelle 3 (LH2(z2))
    z2 y3 y4
    0 0 0
    1 1 0
    2 1 1
  • Indem nun die ternären Zustandswerte z1, z2 aus den Eingabewerten x1, x2, x3 gemäß Tabelle 1 bestimmt werden und anschließend die entsprechenden Hilfslesewerte y1, y2, y3, y4 gemäß Tabelle 2 und Tabelle 3 aus den Zustandswerten z1, z2 bestimmt werden, werden die Hilfslesewerte y1, y2, y3, y4 aus den Eingabewerten x1, x2, x3 durch eine Funktion k1(x1, x2, x3) bestimmt, wie in Tabelle 4 dargestellt ist. Tabelle 4 (k1(x1, x2, x3))
    x1 x2 x3 y1 y2 y3 y4
    0 0 0 0 0 0 0
    0 0 1 0 0 1 0
    0 1 0 0 0 1 1
    0 1 1 0 1 0 0
    1 0 0 0 1 1 0
    1 0 1 0 1 1 1
    1 1 0 1 1 0 0
    1 1 1 1 1 1 0
  • Aus der Tabelle 4 wird nun leicht eine Beschreibung der Funktion g1 erhalten, indem die Ausgabewerte y1, y2, y3, y4 der Tabelle 4 als Eingabewerte der Funktion g1 angesehen werden und indem die zugehörigen Eingabewerte x1, x2, x3 der Tabelle 4 als Ausgabewerte der Funktion g1 angesehen werden. Auf diesem Weg wird die Tabelle 5 erhalten, welche die Funktion g1 für die Wertetupel, die in Tabelle 5 angegeben sind, bestimmt. Für alle Werte, die in Tabelle 5 nicht angegeben sind, kann die Funktion g1 zufällig festgelegt werden. Diese Besonderheit kann vorteilhaft für die Schaltkreisoptimierung der Funktion g1 verwendet werden. Tabelle 5 (g1(y1, y2, y3, y4))
    y1 y2 y3 y4 x1 x2 x3
    0 0 0 0 0 0 0
    0 0 1 0 0 0 1
    0 0 1 1 0 1 0
    0 1 0 0 0 1 1
    0 1 1 0 1 0 0
    0 1 1 1 1 0 1
    1 1 0 0 1 1 0
    1 1 1 0 1 1 1
  • Der Unterschaltkreis BB1 810 ist nun einfach ein Kombinationsschaltkreis zum Ausführen der Funktion g1 mit 4 binären Eingaben y1, y2, y3, y4 und 3 binären Ausgaben x1, x2, x3, dessen Arbeitsweise durch Tabelle 5 bestimmt ist, wobei die Ausgabewerte für die Werte von y1, y2, y3, y4, die in der Tabelle 5 nicht aufgeführt sind, zufällig ausgewählt werden können. Zum Beispiel können alle diese Ausgabewerte auf 0 gesetzt werden. Die Ausführung einer Funktion, die durch eine Wertetabelle gegeben ist, ist für einen Fachmann nicht schwierig, wobei zum Beispiel ein Synthesewerkzeug verwendet wird, und sie wird hier nicht im Einzelnen beschrieben.
  • Nun wird die Bestimmung der Funktion g2 betrachtet. Diese Funktion wird aus f2 , LH3 und LH4 bestimmt.
  • Es wird angenommen, dass die Funktion f2 durch die Tabelle 6 gegeben ist. Tabelle 6 (f2(x4, x5, x6))
    x4 x5 x6 z3 z4
    0 0 0 1 1
    0 0 1 2 1
    0 1 0 1 0
    0 1 1 2 0
    1 0 0 0 1
    1 0 1 0 2
    1 1 0 0 0
    1 1 1 1 2
  • Die Funktion LH3 wird durch die Tabelle 7 beschrieben. Tabelle 7 (LH3(z3))
    z3 y5 y6
    0 0 0
    1 0 1
    2 1 1
  • Die Funktion LH4 wird durch die Tabelle 8 beschrieben. Tabelle 8 (LH4(z4))
    z4 y7 y8
    0 0 0
    1 0 1
    2 1 1
  • Hierbei ist LH3 = LH4.
  • Indem nun die ternären Zustandswerte z3, z4 aus den Eingabewerten x4, x5, x6 gemäß Tabelle 6 bestimmt werden und anschließend die entsprechenden Hilfslesewerte y5, y6, y7, y8 gemäß den Tabellen 7 und 8 aus den Zustandswerten z3, z4 bestimmt werden, werden die Hilfslesewerte y5, y6, y7, y8 aus den Eingabewerten , x4, x5, x6 bestimmt, dargestellt durch eine Funktion k2 (x4, x5, x6) wie in Tabelle 9. Tabelle 9 (k2(x4, x5, x6))
    x4 x5 x6 y5 y6 y7 y8
    0 0 0 0 1 0 1
    0 0 1 1 1 0 1
    0 1 0 0 1 0 0
    0 1 1 1 1 0 0
    1 0 0 0 0 0 1
    1 0 1 0 0 1 1
    1 1 0 0 0 0 0
    1 1 1 0 1 1 1
  • Aus der Tabelle 9 wird nun einfach eine Beschreibung der Funktion g2 erhalten, indem die Ausgabewerte y5, y6, y7, y8 der Tabelle 9 als Eingabewerte der Funktion g2 angesehen werden und indem die zugehörigen Eingabewerte x4, x5, x6 der Tabelle 9 als Ausgabewerte der Funktion g2 angesehen werden. Auf diesem Wege wird die Tabelle 10 erhalten, welche die Funktion g2 für die Werte beschreibt, die in Tabelle 9 angegeben sind. Für alle Werte, die in Tabelle 10 nicht angegeben sind, kann die Funktion g2 beliebige Werte annehmen. Diese Besonderheit kann vorteilhaft für die Schaltkreisoptimierung der Funktion g2 verwendet werden. Tabelle 10 (g2(y5, y6, y7, y8))
    y5 y6 y7 y8 x4 x5 x6
    0 1 0 1 0 0 0
    1 1 0 1 0 0 1
    0 1 0 0 0 1 0
    1 1 0 0 0 1 1
    0 0 0 1 1 0 0
    0 0 1 1 1 0 1
    0 0 0 0 1 1 0
    0 1 1 1 1 1 1
  • Der Unterschaltkreis BB2 811 ist nun einfach ein Kombinationsschaltkreis zum Ausführen der Funktion g2 mit vier binären Eingaben y5, y6, y7, y8 und drei binären Ausgaben x4, x5, x6, dessen Arbeitsweise durch Tabelle 10 bestimmt ist, wobei die Ausgabewerte für die Belegungen, die in der Tabelle 10 nicht aufgeführt sind, zufällig durch y5, y6, y7, y8 ausgewählt werden können. Zum Beispiel können alle diese Ausgabewerte gleich 0 oder auch gleich 1 gesetzt werden.
  • Der Unterschaltkreis BB3 812 zum Ausführen der Funktion g3 mit vier binären Eingaben y9, y10, y11, y12 und drei binären Ausgaben x7, x8, x9 kann ganz analog bestimmt werden. Es ist zum Beispiel auch möglich, die Unterschaltkreise BB3 gleich dem Unterschaltkreis BB2 811 zu wählen.
  • Es ist auch möglich, gleiche Unterschaltkreise BB1 , BB2 und BB3 zu verwenden, indem f1 = f2 = f3 und LH1 = LH2 = ... = LH6 gewählt werden und einer der Unterschaltkreise wie beschrieben, z.B. wie BB2 , festgelegt wird und die Unterschaltkreise BB1 und BB3 gleich BB2 gewählt werden.
  • 3b stellt dar, wie der Unterschaltkreis BT 11 mit 11 binären Eingabewerten x1, ..., x11 ausgebildet werden kann aus den Unterschaltkreisen BT1 34 zum Ausführen einer Funktion f1 , BT2 35 zum Ausführen einer Funktion f2 , BT3 36 zum Ausführen einer Funktion f3 und BT4 37 zum Ausführen einer Funktion f4 . Die Unterschaltkreise zum Ausführen der Funktionen f1 , f2 und f3 weisen jeweils drei binäre Eingänge auf, an denen jeweils drei variable binäre Werte x1, x2, x3; x4, x5, x6 und x7, x8, x9 eingegeben werden. Der Unterschaltkreis BT4 zum Ausführen der Funktion f4 (x10, x11) weist nur zwei binäre Eingänge auf, an deren Eingängen variable Werte x10 und x11 zugeführt werden.
  • 7b beschreibt den Aufbau des Unterschaltkreises BB 19 aus den Unterschaltkreisen BB1 74, BB2 75, BB3 76 und BB4 77. Die entsprechenden Unterschaltkreise BB1 , BB2 , BB3 zum Ausführen der Funktionen g1 , g2 und g3 können auf eine ganz analoge Weise, wie sie für die 9 Eingabewerte x1, ..., x9 beschrieben wurde, bestimmt werden. Der Unterschaltkreis BB4 zum Ausführen der Funktion g4(y13, y14, y15, y16) kann einfach festgelegt werden, indem ein Unterschaltkreis zum Ausführen einer entsprechenden Funktion g 4 '
    Figure DE102013222136B9_0212
    bestimmt wird, der drei Ausgabevariable aufweist, und indem z.B. die dritte Komponente konstant, z.B. gleich 0, gesetzt wird.
  • Zu Erläuterungszwecken wird die Funktion g 4 ' ( y 13 , y 14 , y 15 , y 16 ) = g 2 ( y 13 , y 14 , y 15 , y 16 )
    Figure DE102013222136B9_0213
    mit den Ausgabevariablen x10, x11, x12 verwendet, wie sie in Tabelle 10 für die Eingabevariablen y5, y6, y7, y8 und für die Ausgabevariablen x4, x5, x6 dargestellt ist. Dann gilt das Folgende: Tabelle 11
    g 4 ' ( y 13 , y 14 , y 15 , y 16 )
    Figure DE102013222136B9_0214
    y13 y14 y15 y16 x10 x11 x12
    0 1 0 1 0 0 0
    1 1 0 1 0 0 1
    0 1 0 0 0 1 0
    1 1 0 0 0 1 1
    0 0 0 1 1 0 0
    0 0 1 1 1 0 1
    0 0 0 0 1 1 0
    0 1 1 1 1 1 1
    (Die Tabelle 11 für die Funktion g 4 '
    Figure DE102013222136B9_0215
    wurde ganz analog zur Tabelle 10 für die Funktion g2 festgelegt.)
  • Indem nun die Zeilen der Tabelle 11 ausgewählt werden, für die x12 = 0 ist, und indem alle übrigen Zeilen gestrichen werden und indem die Spalte für x12 gestrichen wird, wird die Tabelle 12 erhalten, welche die gesuchte Funktion g4(y13, y14, y15, y16) beschreibt, die durch den Unterschaltkreis BB4 ausgeführt wird. Tabelle 12 (g4(y13, y14, y15, y16))
    y13 y14 y15 y16 x10 x11
    0 1 0 1 0 0
    0 1 0 0 0 1
    0 0 0 1 1 0
    0 0 0 0 1 1
  • In 3c ist dargestellt, wie der Unterschaltkreis BT, der 8 binäre Eingabewerte x1, ..., x8 aufweist, ausgebildet werden kann aus den Unterschaltkreisen BT1 38 zum Ausführen einer Funktion f, BT2 39 zum Ausführen der gleichen Funktion f, BT3 310 zum Ausführen einer Funktion φ und BT4 311 zum Ausführen der gleichen Funktion φ. Die Unterschaltkreise BT1 28 und BT2 29 zum Ausführen der Funktion f weisen jeweils drei binäre Eingänge und zwei ternäre Ausgänge auf, während die Unterschaltkreise BT3 310 und BT4 311 jeweils einen einzigen binären Eingang und einen einzigen ternären Ausgang zum Ausführen der Funktion φ aufweisen.
  • Der Unterschaltkreis BB 19, der die entsprechenden Unterschaltkreise BB1 78, BB2 79, BB3 710 und BB4 711 realisiert, ist in 7c dargestellt. Es wird das Folgende angewendet: BB1 = BB2 und BB3 = BB4 . Die Unterschaltkreise BB1 und BB2 dienen jeweils der Ausführung der Funktion g, und die Unterschaltkreise BB3 und BB4 dienen jeweils der Ausführung einer Funktion χ mit einer einzigen binären Eingabe und einer binären Ausgabe. Das Bestimmen der Funktion g kann ganz analog erfolgen, wie es bereits für die Funktionen g1 oder g2 oder für den Unterschaltkreis BB 19 von 7a beschrieben wurde, und muss somit nicht erneut erläutert werden.
  • Es soll nun eine vorteilhafte Realisierung des Unterschaltkreises BB3 710 beschrieben werden, der die Funktion χ ausführt.
  • In 3c formt der Unterschaltkreis BT3 310 den binären Wert x7 in den ternären Wert z5 um. In einer Ausführungsform kann das Folgende für die zugehörige Funktion φ angewendet werden: φ ( 0 b i n ) = 0 t e r  und  φ ( 1 b i n ) = 2 t e r .
    Figure DE102013222136B9_0216
  • Wird nun der Unterschaltkreis LH5 165 in 4 für m = 4 und M = 6 zum Bestimmen der Hilfslesewerte LH5(z5) so ausgebildet, dass L H 5 ( 0 t e r ) = 0 b i n ,   L H 5 ( 1 t e r n ) = L H 5 ( 2 t e r ) = 1 b i n
    Figure DE102013222136B9_0217
    ist, dann ist χ(0) = 0 und χ(1) = 1, und der Unterschaltkreis zum Ausführen der Funktion χ besteht dann einfach aus einer Verbindungsleitung.
  • Die betrachtete Ausführung ist fehlertolerant für Speicherfehler, in denen ein ternärer Wert z5 = 2tern, der in dem Speicher gespeichert ist, in einen ternären Wert z 5 ' = 1 t e r
    Figure DE102013222136B9_0218
    verfälscht wurde. Ein binärer Wert 1, der in den ternären Speicher als ein ternärer Wert 2ter geschrieben wurde, wird unabhängig davon, ob der ternäre Wert 2ter im Speicher Sp 13 fehlerhafterweise in den ternären Wert 1ter verfälscht wurde oder nicht, als ein binärer Wert 1bin ausgelesen. Ebenso ist es möglich, den binären Wert x7 als einen binären Wert unverändert als z5 = x7 in den Speicher Sp 13 zu speichern. In diesem Fall ist es auch möglich, binäre Speicherzellen zum Speichern von z5 und z6 zu verwenden, während die ternären Werte z1, ..., zm mit m = 4 in den Speicherzellen mit ternären Zustandswerten gespeichert werden.
  • Vorteilhafterweise kann der Speicher Sp 13 einen ternären Partialspeicher Spter 131 und einen binären Partialspeicher Spbin 132 aufweisen, wie in 1f dargestellt ist, wobei die binären Prüfbits c1, ..., cl als binäre Werte in einem binären Partialspeicher Spbin 122 gespeichert werden, während die ternären Zustandswerte z1, ..., zm und die Zustandswerte zm+1, ..., zM in einem ternären Partialspeicher Spter. gespeichert werden.
  • Das Speichern der durch den Codierer Cod 12 erzeugten Prüfbits c1, ..., cl im Speicher Sp 13 und das Auslesen der gespeicherten Prüfbits aus dem Speicher Sp 13 soll nun nochmals ausführlicher erläutert werden, wenn die Speicherzellen Spc1, ..., Spcl entweder ternäre Speicherzellen oder binäre Speicherzellen sind.
  • Zuerst wird der Fall beschrieben, dass diese Speicherzellen ternäre Speicherzellen sind und drei verschiedene Zustände annehmen können. Um Verwechslungen zu vermeiden, werden hier die ternären Werte mit 0ter , 1ter und 2ter bezeichnet, und die binären Werte werden mit 0bin , 1bin bezeichnet.
  • Für j = 1, ..., l wird das binäre Prüfbit cj , das an dem j-ten Ausgang des Codierers Cod 12 ausgegeben wurde, in den Eingang des Unterschaltkreises btj 14j mit einem binären Eingang und einem ternären Ausgang eingegeben. Der Unterschaltkreis btj 14j gibt an seinem Ausgang einen ternären Wert b t j ( c j ) = c t j
    Figure DE102013222136B9_0219
    aus.
  • In einer Ausführungsform ist der Unterschaltkreis btj (cj ) so festgelegt, dass das Folgende gilt: c j t = b t j ( c j )  mit  b t j ( 0 b i n ) = 0 t e r  und  b t j ( 1 b i n ) = 2 t e r
    Figure DE102013222136B9_0220
  • Die Unterschaltkreise tb1 , ..., tbl 15j transformieren die möglicherweise fehlerhaften ternären Werte c 1 l ' , , c l t ' ,
    Figure DE102013222136B9_0221
    die aus dem Speicher gelesen wurden, komponentenweise in die binären Werte c 1 ' = t b 1 ( c 1 t ' ) , , c l ' = t b l ( c l t ' ) ,
    Figure DE102013222136B9_0222
    sodass für j = 1, ..., l das Folgende gilt: c j ' = t b j ( c j t ' )  mit  t b j ( 0 t e r ) = 0 b i n  und  t b j ( 1 t e r ) = t b j ( 2 t e r ) = 1 b i n .
    Figure DE102013222136B9_0223
  • Wenn in Speicherzellen des ternären Speichers Sp 13, in die Werte c j t ,   ,   c l t
    Figure DE102013222136B9_0224
    geschrieben wurden, ein ternärer Wert 2 in einen ternären Wert 1 verfälscht ist, dann hat dieser Fehler keine Auswirkung bei der entsprechenden Ausgabe des Unterschaltkreises TrTB 16, da durch die Funktion tbj sowohl der ternäre Wert 2ter als auch der ternäre Wert 1ter in den ternären Wert 1bin . abgebildet wird. Das ist vorteilhaft.
  • Sind die Speicherzellen Spc1, ..., Spcl binäre Speicherzellen, dann können sowohl die Unterschaltkreise bt1 141, ..., btl 14l als auch die Unterschaltkreise tb1 151, ..., tbl 151 als eine Verbindung ihrer Eingänge mit ihren jeweiligen Ausgängen realisiert werden. Die Prüfbits c1, ..., cl, die durch den Codierer Cod 12 ausgegeben wurden, werden dann binär in die Speicherzellen Spc1, ..., Spcl geschrieben und als möglicherweise fehlerhafte binäre Prüfbits c 1 ' ,   ,   c l '
    Figure DE102013222136B9_0225
    ausgelesen, die an den entsprechenden Eingängen des Korrektors Cor 17 bereitgestellt werden.
  • Im Folgenden soll nun eine spezielle Ausführung des Korrektors Cor 17 erläutert werden, die in 1g dargestellt ist. In 1g wird die spezielle Ausführung des Korrektors Cor durch 17c gekennzeichnet. Der Korrektor Cor 17c weist l erste Eingänge für die Eingabe der möglicherweise fehlerhaften Prüfbits c 1 ' ,   ,   c l '
    Figure DE102013222136B9_0226
    k zweite Eingänge für die Eingabe der möglicherweise fehlerhaften Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0227
    und q weitere Eingänge für die Eingabe der Bits A 1 ' ,   ,   A q ' = F ( A 1 ' ,   ,   a Q ' )
    Figure DE102013222136B9_0228
    auf, die aus den Bits a 1 ' ,   ,   a Q
    Figure DE102013222136B9_0229
    der Leseadresse a ' = a 1 ' ,   ,   a Q
    Figure DE102013222136B9_0230
    gebildet wurden.
  • Der Korrektor Cor 17c weist auch k erste Ausgänge für die Ausgabe eines Korrekturvektors e = e1, ..., ek zum Korrigieren der Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0231
    und q weitere Ausgänge für die Ausgabe eines Korrekturvektors a A = e 1 A ,   ,   e q A
    Figure DE102013222136B9_0232
    zum Korrigieren der Bits A 1 ' ,   ,  A q '
    Figure DE102013222136B9_0233
    auf, die aus den Adressbits abgeleitet wurden.
  • Die q Ausgänge, welche die Komponente des Korrekturvektors eA übertragen, sind an die q Eingänge eines OR-Schaltkreises 121c angeschlossen, der q Eingänge und einen einzigen Ausgang aufweist, wobei der Ausgang das Fehlersignal EA ausgibt, wenn mindestens ein Bit des Korrekturvektors eA gleich 1 ist, was einen Fehler in der Leseadresse a' anzeigt.
  • Ist EA = 1, dann unterscheidet sich die Leseadresse a' von der Schreibadresse a, sodass Daten ungültig sind.
  • Ist q = Q und a 1 ' ,   ,   a Q ' = A 1 ' ,   ,   A q ' ,
    Figure DE102013222136B9_0234
    dann wird durch den Korrekturvektor eA für jedes Adressbit angezeigt, ob es einen Fehler in diesem Bit gibt. Bestimmt der Korrektor ein Fehlersyndrom, wie in 6b beschrieben ist, dann kann eine Fehlernachricht für einen Adressfehler erzeugt werden, wenn das Fehlersyndrom zu einem Adressfehler gehört.
  • Es ist auch möglich, den Korrektor so auszuführen, dass er zusätzlich zu den Korrekturbits e1, ..., ek, ea1, ..., ekQ zur Korrektur der Hilfslesewerte und der Adressbits auch Korrekturwerte e 1 c ,   ,   e l c
    Figure DE102013222136B9_0235
    der Prüfbits erzeugt.
  • Einer Ausführungsform entsprechend wird eine Schaltung zum Speichern binärer Daten x1, ..., xn und zur Fehlerkorrektur mit einem binären Code C bereitgestellt, welche die folgenden Merkmale aufweist:
    1. 1. Es gibt eine ternäre Speicherschaltung 13h, die einen ternären Speicher Sp 13 mit ternären Speicherzellen aufweist, wobei die binären Daten x1, ... xn in Speicherzellen, die drei Zustände aufweisen, an einer Schreibadresse a1, ..., aQ als codierte ternäre Zustände z1, ..., zM geschrieben werden und wobei ein Codierer 12h bestimmte binäre Prüfbits c1, ..., cl in Speicherzellen schreibt und wobei dann, wenn die Prüfbits c1, ..., cl Prüfbits der Datenbits x1, ..., xn sind, die an einer Schreibadresse a1, ..., aQ geschrieben werden, die Prüfbits auch an derselben Schreibadresse der entsprechenden Datenbits geschrieben werden und wobei beim Lesen an einer Leseadresse a 1 ' , , a Q '
      Figure DE102013222136B9_0236
      der Speicherzellen des ternären Speichers, die zum Aufnehmen dreier verschiedener Werte geeignet sind, möglicherweise fehlerhafte Zustandswerte z 1 ' , , z M '
      Figure DE102013222136B9_0237
      ausgegeben werden, die in möglicherweise fehlerhafte binäre Hilfslesewerte y 1 ' , , y k '
      Figure DE102013222136B9_0238
      transformiert werden, und wobei ferner möglicherweise fehlerhafte Prüfbits c 1 '   c l '
      Figure DE102013222136B9_0239
      ausgegeben werden und wobei dann, wenn die Schreibadresse gleich der Leseadresse ist und wenn kein Fehler vorliegt, fehlerfreie Hilfslesewerte y1, ..., yk und fehlerfreie Prüfbits c1, ..., cl ausgegeben werden.
    2. 2. Es gibt einen Codierer Cod 12h , der einen ersten n Bit breiten Eingang für die Eingabe von Datenbits x1, ..., xn und einen weiteren q Bit breiten Eingang für die Eingabe von Bits A1, ..., Aq und einen l Bit breiten Ausgang für die Ausgabe von Prüfbits c1, ..., cl aufweist, wobei die Bits A1, ..., Aq auf Basis der Bits der Schreibadresse a1, ..., aQ bestimmt werden, wobei die Datenbits x1, ..., xn und die entsprechenden Prüfbits unter der Schreibadresse a1, ..., aQ geschrieben werden, wobei der Codierer derart ausgelegt ist, dass die Prüfbits c1, ..., cl so aus den Datenbits x1, ..., xn und den Bits A1, ..., Aq bestimmt werden, dass y 1 ' , , y k ' , A 1 , , A q , c 1 , , c l
      Figure DE102013222136B9_0240
      ein Codewort des Fehlerkorrekturcodes C ist, und wobei die Bits A1, ..., Aq eindeutig aus den Bits der Schreibadresse a1, .., aQ bestimmt werden, sodass die Bits A1, ..., Aq Ausgabewerte einer Kombinationsschaltung F mit Q binären Eingängen und q binären Ausgängen sind, wenn die Schreibadresse a1, ..., aQ den Eingängen der Schaltung zugeführt wird, wobei q ≤ Q gilt.
  • Gemäß einer speziellen Ausführungsform ist q = Q und a1, ..., aQ = A1, ..., AQ.
  • In einer anderen speziellen Ausführungsform ist A1 = a1 ⊕ ... ⊕ aQ.
  • Gemäß einer weiteren Ausführungsform ist der Code C ein linearer Code.
  • In einer anderen speziellen Ausführungsform ist der Code C ein linearer Code mit einer Generatormatrix G = (I, P), und wobei I eine (k + q)-Einheitsmatrix ist und wobei P eine [ (k + q), I ]-Paritätsmatrix ist und wobei die Prüfbits c1, ..., cl durch c 1 , c l = ( y 1 , y k , A a , , A Q ) P
    Figure DE102013222136B9_0241
    definiert sind.
  • 1h stellt eine Ausführungsform dar, wobei Datenbits in Speicherzellen einer ternären Speicherschaltung 13h gespeichert sind, wobei die Speicherzellen der ternären Speicherschaltung ausgelegt sind, (einen von) drei verschiedene(n) Zustände(n) anzunehmen. Die Schreib- und Leseadressen des ternären Speichers der ternären Speicherschaltung werden für die Fehlerbehandlung, z.B. für die Fehlererkennung und/oder die Fehlerkorrektur, gebraucht.
  • Die ternäre Speicherschaltung 13h weist Speicherzellen auf, in denen Datenbits als ternäre Zustände gespeichert werden können.
  • Beim Schreiben werden Eingabewerte x1, ..., xn auf der n Bit breiten Eingabeleitung 110g in die ternäre Speicherschaltung 13h eingegeben, und Prüfbits c1, ..., cl werden auf der l Bit breiten Eingabeleitung 111g in die ternäre Speicherschaltung 13h eingegeben. Beim Schreiben wird die Schreibadresse a1, ..., aQ in die Q Bit breite Adresseingabeleitung 115h eingegeben. Beim Lesen wird die Leseadresse a 1 ' ,   ,   a Q '
    Figure DE102013222136B9_0242
    in die Q Bit breite Eingabeleitung 115h eingegeben. Beim Lesen werden binäre Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0243
    auf der k Bit breiten Ausgabeleitung 112g ausgegeben, und Prüfbits c 1 ' ,   ,   c l '
    Figure DE102013222136B9_0244
    werden auf der l Bit breiten Ausgabeleitung 113h ausgegeben.
  • Die Eingabeleitung 110g ist außerdem an einen ersten n Bit breiten Eingang des Codierers Cod 12h angeschlossen. Bits A1, ..., Aq werden an einem q Bit breiten zweiten Eingang des Codierers Cod 12h eingegeben. Die Bits A1, ..., Aq werden durch eine Kombinationsschaltung Fs 56h an der Schreibadresse a1, ..., aQ gemäß A 1 ,   ,  A q = F ( a 1 ,   ,  a Q )
    Figure DE102013222136B9_0245
    erzeugt, wobei F eine eindeutige Abbildung von Q Adressbits a1, ..., aQ auf die Bits A1, ..., Aq ist, die aus den Adressbits abgeleitet werden, wie oben bereits erläutert wurde.
  • Die k Bit breite Ausgabeleitung 112g, welche die möglicherweise fehlerhaften Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0246
    überträgt, ist an einen ersten k Bit breiten Eingang einer Kombinationsschaltung 18h angeschlossen und ist auch an einen ersten k Bit breiten Eingang eines Korrektors Kor 17h angeschlossen. Eine Ausgabeleitung 113h ist an einen zweiten I Bit breiten Eingang des Korrektors Kor 17h angeschlossen, wobei die Ausgabeleitung 113h die möglicherweise fehlerhaften Prüfbits c 1 ' ,   ,   c l '
    Figure DE102013222136B9_0247
    überträgt. Ein q Bit breiter Ausgang der Schaltung 55h ist an den dritten q Bit breiten Eingang des Korrektors Kor 17h angeschlossen, wobei ein q Bit breiter Wert A 1 ' ,   ,   A q '
    Figure DE102013222136B9_0248
    auf dem q Bit breiten Ausgang der Schaltung 55h ausgegeben wird. Eine binäre Leseadresse a 1 ' ,   ,   a Q '
    Figure DE102013222136B9_0249
    wird an einem Q Bit breiten Eingang der Schaltung Fs 55h in die Schaltung Fs 55 eingegeben.
  • Die Funktionalität der Schaltung FS 55h ist gleich der Funktionalität der Schaltung Fs 56h, was der Grund dafür ist, dass sowohl der Schaltung 55h als auch der Schaltung 56h die Bezeichnung „Fs“ gegeben wird.
  • Der Korrektor Kor 17h gibt den Korrekturvektor e1, ..., ek an seinem k Bit breiten Ausgang aus, der mit dem zweiten Eingang der Kombinationsschaltung 18h, die eine Korrekturschaltung ist, verbunden ist. In 1h ist die Korrekturschaltung als eine XOR-Schaltung ausgebildet. In anderen Ausführungsformen können andere Ausbildungen realisiert werden, wie z.B. der Einsatz einer XNOR-Schaltung.
  • In der Ausführungsform von 1h gibt die XOR-Schaltung 18h an ihrem k Bit breiten Ausgang die korrigierten Hilfslesewerte y c o r = y 1 c o r , , y k c o r = y 1 ' e 1 , , y k ' e k
    Figure DE102013222136B9_0250
    aus, die durch eine Kombinationsschaltung BB 19h in korrigierte Datenwerte x c o r = x 1 c o r , x n c o r
    Figure DE102013222136B9_0251
    transformiert werden.
  • Wird a 1 ,   ,  a Q = a 1 ' ,   ,   a Q '
    Figure DE102013222136B9_0252
    angewendet, sodass die Schreibadresse gleich der Leseadresse ist, und liegt in der ternären Speicherschaltung 13h, dem Codierer 12h und der Schaltung Fs 56h kein Fehler vor, dann werden die Hilfslesewerte, die auf der Leitung 112g ausgegeben werden, als korrekte Hilfslesewerte y1, ..., yk bezeichnet.
  • Die möglicherweise fehlerhaften Prüfbits c 1 ' ,   ,   c l ' ,
    Figure DE102013222136B9_0253
    die auf der Ausgabeleitung 113h ausgegeben werden, werden durch die Prüfbits c1, ..., cl festgelegt. Diese Prüfbits c1, ..., cl werden am Ausgang 111g des Codierers 12h ausgegeben, an der Schreibadresse a1, ..., aQ in Speicherzellen der ternären Speicherschaltung 13h gespeichert und an der Leseadresse a 1 ' ,   ,   a Q '
    Figure DE102013222136B9_0254
    ausgelesen. Die Prüfbits können in Speicherzellen gespeichert werden, die einen von drei verschiedenen Zuständen annehmen können, sowie in Speicherzellen, die einen von zwei verschiedenen Zuständen annehmen können.
  • Der Codierer Cod 12h ist derart ausgelegt, dass er die Prüfbits c1, ..., cl so erzeugt, dass y 1 ' , , y k ' , A 1, , A q , c 1 , , c l
    Figure DE102013222136B9_0255
    ein Codewort eines Fehlerkorrekturcodes C ist.
  • Wenn der Code C ein linearer Code mit einer Generatormatrix G = (I, P) ist, wobei I eine (k + q)-Einheitsmatrix und P eine [(k + q), I]-Paritätsmatrix ist, dann kann c1, ..., cl bestimmt werden als c 1 , c l = ( y 1 , y k , A a , , A Q ) P
    Figure DE102013222136B9_0256
  • Der Korrektor Kor 17h gibt einen Korrekturvektor e = e1, ..., ek so aus, dass y c o r = y 1 c o r , , y k c o r = y 1 ' e 1 , , y k ' e k = y 1 , , y k
    Figure DE102013222136B9_0257
    gilt, wenn Fehler, die aufgetreten sind, durch den Fehlerkorrekturcode C korrigierbar sind.
  • Ist der Code C zum Beispiel ein 1-Bit-Fehlerkorrekturcode, dann kann jeder einzelne Bitfehler, so zum Beispiel in den Hilfslesewerten oder den Prüfbits, gültig korrigiert werden. Ist der Code C ein 2-Bit-Fehlerkorrekturcode, dann kann jeder 2-Bit-Fehler in den Hilfslesewerten oder den Prüfbits korrigiert werden.
  • Durch 1i wird eine erste spezielle Ausführungsform der ternären Speicherschaltung 13h von 1h dargestellt.
  • Die ternäre Speicherschaltung 13h umfasst einen Unterschaltkreis BT 11 zum Transformieren der binären Datenbits x1, ..., xn in Zustandswerte z1, ..., zM, die in Speicherzellen des ternären Speichers Sp 13 zu speichern sind, wobei der ternäre Speicher Sp 13 Speicherzellen aufweist, die ternäre Zustandswerte aufweisen, und wobei der ternäre Speicher Sp 13 Speicherzellen Spc1, ..., Spcl mit mindestens zwei Zuständen zum Speichern binärer Prüfbits c1, ..., cl aufweist, und einen Unterschaltkreis LH 16 zum Transformieren möglicherweise fehlerhafter ternärer Zustandswerte z 1 ' ,   ,   z M ' ,
    Figure DE102013222136B9_0258
    die aus dem Speicher Sp 13 gelesen werden, in binäre Hilfslesewerte y 1 ' ,   ,   y k ' .
    Figure DE102013222136B9_0259
    Es ist möglich, dass die Speicherzellen Spc1, ..., Spcl binäre Speicherzellen sind.
  • Die Datenbits x1, ..., xn werden an der n Bit breiten Eingabeleitung 110h eingegeben. Die möglicherweise fehlerhaften Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0260
    werden auf einer k Bit breiten Ausgabeleitung 112h ausgegeben. Die möglicherweise fehlerhaften Prüfbits c 1 ' ,   ,   c l '
    Figure DE102013222136B9_0261
    werden auf einer l Bit breiten Ausgabeleitung 113h ausgegeben. Da die Unterschaltkreise BT 11, Sp 13 und LH 16 bereits mit Bezugnahme auf 1a beschrieben wurden, werden sie nicht noch einmal erläutert.
  • Durch 1j wird eine zweite spezielle Ausführungsform der ternären Speicherschaltung 13h von 1h dargestellt. Die ternäre Speicherschaltung in 1j umfasst einen Unterschaltkreis BT 11 zum Transformieren der binären Datenbits in Zustandswerte z1, ..., zM, einen Speicher Sp 13, der hier ternäre Speicherzellen Spc1, ..., Spcl zum Speichern der Prüfbits aufweist, wobei die Prüfbits c1, ..., cl durch Unterschaltkreise bt1 141, ..., btl 14l in ternäre Werte c 1 t ,   ,   c l t
    Figure DE102013222136B9_0262
    transformiert werden, einen Unterschaltkreis LH 16 zum Transformieren möglicherweise fehlerhafter Zustandswerte z 1 ' ,   ,   z M ' ,
    Figure DE102013222136B9_0263
    die aus dem Speicher Sp 13 gelesen werden, in möglicherweise fehlerhafte Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0264
    und Unterschaltkreise tb1 151, ..., tbl 15l zum Transformieren der möglicherweise fehlerhaften Prüfbits, die aus den Speicherzellen Spc1, ..., Spcl gelesen werden.
  • Die Datenbits x1, ..., xn werden an einer n Bit breiten Eingabeleitung 110h eingegeben. Die Prüfbits c1, ..., cl werden an der l Bit breiten Eingabeleitung 111h eingegeben. Die möglicherweise fehlerhaften Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0265
    werden an der k Bit breiten Ausgabeleitung 112h ausgegeben. Die möglicherweise fehlerhaften Prüfbits c 1 ' ,   ,   c l '
    Figure DE102013222136B9_0266
    werden an der l Bit breiten Ausgabeleitung 113h ausgegeben. Die verwendeten Unterschaltkreise wurden bereits mit Bezugnahme auf 1a und 1d beschrieben und werden nicht noch einmal beschrieben.
  • Durch 1k wird eine weitere spezielle Ausführungsform der ternären Speicherschaltung 13h von 1h dargestellt. Die ternäre Speicherschaltung in 1k umfasst einen Unterschaltkreis BT 11k zum Transformieren der binären Datenbits und der binären Prüfbits in Zustandswerte z1, ..., zM', die einen von drei verschiedenen Werten annehmen können, einen ternären Speicher Sp 13, der hier z.B. nur ternäre Speicherzellen aufweist, einen Unterschaltkreis LH 16k zum Transformieren der möglicherweise fehlerhaften Zustandswerte z 1 ' ,   ,  z M ' ,
    Figure DE102013222136B9_0267
    in möglicherweise fehlerhafte Hilfslesewerte y 1 ' , , y k ' , y k + m ' , y K '
    Figure DE102013222136B9_0268
    und einen Unterschaltkreis BB 19k zum Transformieren der Hilfslesewerte y k + m ' , y K '
    Figure DE102013222136B9_0269
    in möglicherweise fehlerhafte Prüfbits c 1 ' ,   ,   c l ' .
    Figure DE102013222136B9_0270
    In dieser Ausführungsform ist es möglich, dass ein Tripel von binären Datenbits wie auch ein Tripel von binären Prüfbits jeweils als ein Tupel von ternären Werten in zwei Speicherzellen des Speichers 13k gespeichert werden. Die Datenbits x1, ..., xn werden an der n Bit breiten Eingabeleitung 110h eingegeben. Die Prüfbits c1, ..., cl werden an der l Bit breiten Eingabeleitung 111h eingegeben. Die möglicherweise fehlerhaften Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0271
    werden an der k Bit breiten Ausgabeleitung 112h ausgegeben. Die möglicherweise fehlerhaften Datenbits c 1 ' ,   ,   c l '
    Figure DE102013222136B9_0272
    werden an der l Bit breiten Ausgabeleitung 113h ausgegeben.
  • Da der Unterschaltkreis BT 11k die Datenbits x1, ..., xn sowie die Prüfbits, die vom Codierer Cod 12h ausgegeben werden, in ternäre Zustandswerte z1, ..., zM' transformiert, ist die Eingabewortbreite des Unterschaltkreises BT 11k hier n + I. Die Hilfslesewerte y 1 ' ,   ,   y k '
    Figure DE102013222136B9_0273
    die durch den Unterschaltkreis LH 16k ausgegeben werden, entsprechen den Datenbits x 1 ' , , x n ' ,
    Figure DE102013222136B9_0274
    während die Hilfslesewerte y k + m ' , , y K '
    Figure DE102013222136B9_0275
    den Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0276
    zugeordnet sind.
  • Abgesehen von den Eingabewortbreiten und den Ausgabewortbreiten entsprechen die verwendeten Unterschaltkreise den bereits beschriebenen Unterschaltkreisen.
  • Die verwendeten Unterschaltkreise sind, insbesondere mit Bezugnahme auf 1a, bereits beschrieben worden und werden deshalb nicht noch einmal beschrieben.
  • Nun soll eine weitere Ausführungsmöglichkeit für den Unterschaltkreis BT 11 beschrieben werden.
  • Der Unterschaltkreis BT 11 kann als eine Reihenschaltung eines Unterschaltkreises BBS 94 für die Transformation von binären Eingabewerten x1, ..., xn in binäre Hilfsschreibwerte y 1 s ,   ,   y k s
    Figure DE102013222136B9_0277
    und eines Unterschaltkreises BTS 95 ausgeführt werden, der die binären Hilfsschreibwerte y 1 s ,   ,   y k s
    Figure DE102013222136B9_0278
    in die Zustandswerte z1, ..., zm, zm+1, ..., zMtransformiert, wie in 9b dargestellt ist.
  • Wie in den 3a, 3b und 3c dargestellt ist, kann der Unterschaltkreis BT 11 seinerseits aus Unterschaltkreisen BTj , j = 1, 2, ...aufgebaut sein. Als ein Beispiel soll wieder die Ausführung des Unterschaltkreises BT2 32 beschrieben werden, der gemäß Tabelle 6 die binären Eingabewerte x4, x5, x6 in ternäre Zustandswerte z3 und z4 umwandelt. Seine aktuell betrachtete Ausführung ist in 9a dargestellt. Die beschriebene Umwandlung der binären Eingabewerte x4, x5, x6 in ternäre Zustandswerte wird in dem veranschaulichenden Beispiel in zwei Schritten ausgeführt. In einem ersten Schritt werden die drei binären Eingabewerte x4, x5, x6 in vier binäre Hilfsschreibwerte y 5 S , y 6 S , y 7 S , y 8 S
    Figure DE102013222136B9_0279
    transformiert mit y 5 S , y 6 S , y 7 S , y 8 S = k 2 ( x 4 , x 5 , x 6 )
    Figure DE102013222136B9_0280
  • In einem zweiten Schritt wird dem ersten Paar y 5 S , y 6 S , y 7 S , y 8 S = k 2 ( x 4 , x 5 , x 6 )
    Figure DE102013222136B9_0281
    und dem zweiten Paar y 5 S ,   y 6 S
    Figure DE102013222136B9_0282
    y 7 S ,   y 8 S
    Figure DE102013222136B9_0283
    der vier binären Hilfsschreibwerte ein ternärer Zustand zugeordnet.
  • Es gibt nur acht verschiedene Eingabewerte x4, x5, x6 und somit nur acht verschiedene 4-Tupel von Hilfsschreibwerten y 5 S ,   y 6 S ,   y 7 S ,   y 8 S .
    Figure DE102013222136B9_0284
    Die Transformation der Tripel der Eingabewerte x4, x5, x6 in die Hilfsschreibwerte wird so ausgeführt, dass jedes der zwei Tupel y 5 S ,   y 6 S
    Figure DE102013222136B9_0285
    und y 7 S ,   y 8 S
    Figure DE102013222136B9_0286
    nur drei verschiedene Werte annimmt und somit in einem zweiten Schritt codiert und als ein ternärer Zustand gespeichert werden kann. Hierbei ist k2 eine Kombinationsfunktion mit drei binären Eingabevariablen x4, x5, x6 und vier binären Ausgabevariablen y 5 S ,   y 6 S ,   y 7 S ,   y 8 S .
    Figure DE102013222136B9_0287
  • In einem zweiten Schritt wird das erste Paar y 5 S ,   y 6 S
    Figure DE102013222136B9_0288
    der binären Hilfsschreibwerte durch eine Funktion q3 mit zwei binären Eingabevariablen y 5 S ,   y 6 S
    Figure DE102013222136B9_0289
    und einer ternären Ausgabevariable z3 in einen ersten ternären Zustand z3 transformiert, während das zweite Paar y 7 S ,   y 8 S
    Figure DE102013222136B9_0290
    von binären Hilfsschreibwerten durch eine Funktion q4 mit zwei binären Eingabevariablen und einer ternären Ausgabevariable in einen zweiten ternären Zustand z4 transformiert wird. Die Funktionen q3 und q4 können hier gleich zueinander oder unterschiedlich voneinander gewählt werden.
  • Die Funktion q3 beschreibt eine Digital-Analog-Wandlung der digitalen binären Werte y 5 S ,   y 6 S
    Figure DE102013222136B9_0291
    in einen analogen Wert, der in Abhängigkeit von der Zuordnung zu einem von drei nicht überlappenden Intervallen einen von drei möglichen ternären Werten von z3 darstellt. Dementsprechend beschreibt die Funktion q4 eine Digital-Analog-Wandlung der digitalen Werte y7, y8 in einen analogen Wert, der einen der möglichen ternären Werte von z4 darstellt.
  • Die beschriebene Transformation kann durch einen Unterschaltkreis Sk2 91 mit drei binären Eingängen und vier binären Ausgängen zum Ausführen der Funktion k2 und zwei nachgeordnete Unterschaltkreise Sq3 92 und Sq4 93 zum Ausführen der Funktionen q3 und q4 realisiert werden, wie in 9a dargestellt ist.
  • An dem 3 Bit breiten Eingang des Unterschaltkreises Sk2 91 wird der Wert x4, x5, x6 angewendet. Die ersten zwei binären Ausgänge des Unterschaltkreises Sk2 91, welche die Hilfsschreibwerte y 5 S ,   y 6 S
    Figure DE102013222136B9_0292
    übertragen, werden dem 2 Bit breiten binären Eingang des Unterschaltkreises Sq3 92 zugeführt, während die zweiten binären Ausgänge des Unterschaltkreises Sk2 91, welche die Hilfsschreibwerte y 7 S ,   y 8 S
    Figure DE102013222136B9_0293
    übertragen, die dem 2 Bit breiten binären Eingang des Unterschaltkreises Sq4 93 zugeführt werden. Der Unterschaltkreis Sq3 92 gibt an seinem ternären Ausgang den Wert z3 aus, während der Unterschaltkreis Sq4 93 an seinem ternären Ausgang den Wert z4 ausgibt.
  • Es ist möglich, dass die Hilfsschreibwerte y 5 S ,   y 6 S ,   y 7 S ,   y 8 S
    Figure DE102013222136B9_0294
    funktionell aus den Eingabewerten x4, x5, x6 bestimmt werden, genau wie die Hilfslesewerte y 5 S ,   y 6 S ,   y 7 S ,   y 8 S
    Figure DE102013222136B9_0295
    aus den Eingabewerten x4, x5, x6 bestimmt werden, und sie sind im fehlerfreien Fall gleich, wie zum Beispiel in Tabelle 9 beschrieben ist.
  • Es ist nicht nötig, dass die Hilfsschreibwerte, die aus x4, x5, x6 bestimmt wurden, für alle Eingabewerte, hier für die 8 möglichen Werte von x4, x5, x6, gleich den Hilfslesewerten sind, die auch aus x4, x5, x6 bestimmt wurden.
  • Es kann jedoch praktisch sein, beim Speichern solche Hilfsschreibwerte zu verwenden, die beim Auslesen als Hilfslesewerte verwendet werden, wie nachfolgend ausführlicher erläutert wird.
  • Als ein Beispiel wird hier der Fall von 8 Datenbits x1, ..., x8 betrachtet, und es wird auch die Verwendung der Hilfsschreibwerte zur Bestimmung der Prüfbits für eine vorteilhafte Ausführung des Codierers 12 erläutert, wenn die Hilfsschreibwerte gleich den Hilfslesewerten sind. Es wird zum Beispiel angenommen, dass die zwei Tripel x1, x2, x3 und x4, x5, x6 auf die gleiche Weise, wie in 10 dargestellt ist, in Hilfsschreibwerte y 1 S ,   y 2 S ,   y 3 S ,   y 4 S
    Figure DE102013222136B9_0296
    und y 5 S ,   y 6 S ,   y 7 S ,   y 8 S
    Figure DE102013222136B9_0297
    umgewandelt werden.
  • Die Bits x1, x2, x3 werden durch den Unterschaltkreis Sk2 101 in Hilfslesewerte y 1 S ,   y 2 S ,   y 3 S ,   y 4 S
    Figure DE102013222136B9_0298
    transformiert, während die Bits x4, x5, x6 durch den Unterschaltkreis Sk2 102 in Hilfslesewerte y 5 S ,   y 6 S ,   y 7 S ,   y 8 S
    Figure DE102013222136B9_0299
    transformiert werden. Die zwei Bits x7 und x8 werden unmittelbar als Hilfsschreibwerte y 9 S
    Figure DE102013222136B9_0300
    und y 10 S
    Figure DE102013222136B9_0301
    verwendet.
  • Die Paare von Hilfsschreibwerten [ y 1, S   y 2 S ] ,   [ y 3, S   y 4 S ] ,   [ y 5, S   y 6 S ] , [ y 7, S   y 8 S ]   
    Figure DE102013222136B9_0302
    werden durch die Unterschaltkreise Sk3 103, Sk4 104, Sk3 105, Sk4 106 in die ternären Zustände z1, z2, z3, z4 transformiert, die im Speicher Sp 1013 gespeichert werden. Der Hilfslesewert   y 9 S = x 7
    Figure DE102013222136B9_0303
    wird durch den Unterschaltkreis bt7 107 in den ternären Zustand z5 transformiert. Der Hilfslesewert   y 10 S = x 8
    Figure DE102013222136B9_0304
    wird durch den Unterschaltkreis bt8 108 in den ternären Zustand z6 transformiert. Die Zustände z5 und z6 werden auch im ternären Speicher Sp 1013 gespeichert.
  • Die Hilfsschreibwerte   y 1 S , ,   y 10 S
    Figure DE102013222136B9_0305
    werden auch in 10 erste Eingänge des Unterschaltkreises Bincode 109 eingegeben, an dessen q zweiten Eingängen die Bits A1, ..., Aq, die aus der Leseadresse a, ..., aQ abgeleitet wurden, eingegeben werden. In dieser Ausführungsform gibt der Unterschaltkreis Bincode 109 die 5 Prüfbits c1, ..., c5 aus, die durch den Unterschaltkreis bt1 1010, ..., bt5 1011 in die ternären Werte c 1 ' , , c 5 '
    Figure DE102013222136B9_0306
    transformiert werden, die jeweils in separaten Speicherzellen Spc1, ..., Spc5 des Speichers Sp 1013 gespeichert werden.
  • Der Unterschaltkreis BT 11 weist hier seinerseits die Unterschaltkreise Sk2 101, Sk2 102, die Unterschaltkreise Sk3 103, Sk4 104, Sk3 105, Sk4 106, bt7 107 und bt8 108 auf.
  • Der Codierer Cod 12 ist aus den Unterschaltkreisen Sk2 101, Sk2 102 und dem Unterschaltkreis Bincode 109 aufgebaut. Der Unterschaltkreis BT und der Codierer Cod 12 werden hier zusammen ausgebildet.
  • Die Umwandlung der Bits x4, x5, x6 in die Hilfsschreibwerte y 5 S ,   y 6 S ,   y 7 S ,   y 8 S
    Figure DE102013222136B9_0307
    wird im Einzelnen betrachtet, wobei die Hilfslesewerte, die beim Lesen verwendet werden, gleich den Hilfsschreibwerten sind, die beim Schreiben verwendet werden, sodass dann, wenn kein Fehler aufgetreten ist, [ y 5 ,   y 6 ,   y 7 ,   y 8 ] = [ y 5 S ,   y 6 S ,   y 7 S ,   y 8 S ]
    Figure DE102013222136B9_0308
    gilt.
  • Beim Lesen ist die Umwandlung der ternären Zustandswerte, die aus den zwei zugehörigen Speicherzellen gelesen wurden, in die entsprechenden binären Hilfslesewerte für die Speicherzelle, in welcher der Zustandswert z3 gespeichert ist, durch die Funktion LH3 auszuführen, die in Tabelle 7 dargestellt ist, und für die Speicherzelle, in welcher der Zustandswert z4 gespeichert ist, ist sie durch die Funktion LH4 auszuführen, die in Tabelle 8 dargestellt ist.
  • In Tabelle 9 ist dargestellt, wie den binären Eingabewerten x4, x5, x6 entsprechende binäre Hilfslesewerte y5, y6, y7, y8 zugeordnet werden. Wie oben bereits angegeben wurde, kann zum Beispiel für alle Wertekombinationen von x4, x5, x6, die in der Tabelle 9 nicht aufgeführt sind, y5 = y6 = y7 = y8 = 0 gesetzt werden. Die Zuordnung durch Tabelle 9 wird durch die Funktion k2 (x4, x5, x6) beschrieben. Für einen Fachmann ist es nicht schwierig, aus der Tabelle 9 einen Kombinationsschaltkreis Sk2 zu bestimmen, der die Funktion k2 ausführt.
  • Es wird hier angenommen, dass die Hilfsschreibwerte y 5 S ,   y 6 S ,   y 7 S ,   y 8 S
    Figure DE102013222136B9_0309
    durch die gleiche Funktion k2 wie die Hilfslesewerte bestimmt werden, sodass der Unterschaltkreis Sk2 91 einfach ein Kombinationsschaltkreis Sk2 ist, der die Funktion k2 ausführt, die in Tabelle 9 beschrieben ist.
  • Aus den Paaren y5, y6 und y7, y8, die gleich den entsprechenden Paaren von Hilfslesewerten oder Hilfsschreibwerten sind, werden dann durch Funktionen q3 und q4 gemäß den Tabellen 13 und 14 die ternären Zustandswerte z3 und z4 bestimmt, wobei die ternären Zustandswerte z3 und z4 in den ternären Speicher Sp 13 gespeichert werden. Hierbei werden die möglichen Zustandswerte von z3 als A0, A1, A2 bezeichnet, und die möglichen Zustandswerte von z4 werden als B0, B1, B2 bezeichnet.
  • Tabelle 13 beschreibt die Funktion q3 , und Tabelle 14 beschreibt die Funktion q4 . Tabelle 13 q3(y5, y6)
    y5 y6 z3
    0 0 0
    0 1 1
    1 1 2
    1 0 -
    Tabelle 14 q4(y7, y8)
    y7 y8 z4
    0 0 0
    1 0 1
    1 1 2
    0 1 -
  • Wie zuvor stehen in den durch yi gekennzeichneten Spalten der Tabellen 13 und 14 binäre Werte, und in den durch zj gekennzeichneten Spalten stehen ternäre Werte. Die Funktionen q3 und q4 werden durch Schaltkreise Sq3 und Sq4 verwirklicht, die eine Digital-Analog-Wandlung ausführen, und deren Realisierung durch einen Analog-Digital-Wandler für einen Fachmann nicht schwierig ist.
  • Es soll nun die Realisierung des Codierers Cod 12 und des Korrektors Cor 17 für eine spezielle Ausführungsform für einen speziellen linearen Code erläutert werden, wobei acht binäre Eingabewerte x1, ..., x8 zu speichern sind. Diese acht binären Eingabewerte werden, wie oben beschrieben ist, in 10 binäre Hilfslesewerte y1, ..., y10 transformiert, welche die Daten- oder Informationsbits des linearen Codes C darstellen. Der Code C weist 10 Informationsbits y1, ..., y10 und 5 Prüfbits c1, ..., c5 auf. Der Code C kann durch eine (10, 15)-G-Matrix G und durch eine (5, 15)-H-Matrix H beschrieben werden. Als ein Beispiel für eine Generatormatrix wird die folgende Generatormatrix G gewählt. G = ( 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 )
    Figure DE102013222136B9_0310
  • Die G-Matrix weist die folgende Form auf: G = ( I 10 , P 10,5 ) .
    Figure DE102013222136B9_0311
  • Hierbei ist I10 die 10-dimensionale Einheitsmatrix und P10,5 mit P 10,5 = ( 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 )
    Figure DE102013222136B9_0312
    die Paritätsmatrix.
  • Die Prüfbits c1, ..., c5 werden durch c 1 ,   c 2 ,   c 3 ,   c 4 ,   c 5 = ( y 1 ,   y 2 ,   y 3 ,   y 4 ,   y 5 ,   y 6 ,   y 7 ,   y 8 ,   y 9 ,   y 10 ) P 10,5
    Figure DE102013222136B9_0313
    bestimmt, sodass c 1 = y 1 y 2 y 3 y 4 y 5 y 6
    Figure DE102013222136B9_0314
    c 2 = y 1 y 2 y 3 y 7 y 8 y 9
    Figure DE102013222136B9_0315
    c 3 = y 1 y 4 y 5 y 7 y 8 y 10
    Figure DE102013222136B9_0316
    c 4 = y 2 y 4 y 6 y 7 y 9 y 10
    Figure DE102013222136B9_0317
    c 5 = y 3 y 5 y 6 y 8 y 9 y 10
    Figure DE102013222136B9_0318
    durch den Unterschaltkreis Bincode 109 in 10 ausgeführt wird. In diesem speziellen Beispiel ist C ein binärer Code, und als ein Spezialfall führt der Schaltkreis Bincode die Prüfbiterzeugung des Codes C aus. Ein Fachmann wird verstehen, dass der betrachtete Code C ein Hsiao-Code ist, der alle 1-Bit-Fehler korrigieren und alle 2-Bit-Fehler erkennen kann.
  • Die Implementierung der Prüfbits c1, ..., c5, die aus den Hilfslesewerten y1, ..., y10 durch XOR-Operationen bestimmt sind, ist für einen Fachmann nicht schwierig und muss somit nicht ausführlicher erläutert werden.
  • Die Paare [y1,y2], [y3,y4], [y5,y6], [y7,y8], ..., von Hilfslesewerten, die jeweils aus einem ternären Zustandswert, der in einer ternären Speicherzelle gespeichert ist, abgeleitet werden, nehmen jeweils nur drei verschiedene Werte, z.B. die Werte [0,0], [0,1], [1,1], an. Paare von Prüfbits nehmen jedoch vier verschiedene Werte an, weshalb ein Paar von Prüfbits nicht in einer ternären Speicherzelle gespeichert werden kann. Das soll für das Paar [c1,c2] von Prüfbits erläutert werden.
  • Sind alle Hilfslesewerte gleich 0, y1 = y2 = ... = y10 = 0, dann ist [c1,c2] = [0, 0].
  • Ist [y1, y2] = [0, 1] und sind alle anderen Hilfslesewerte gleich 0, dann ist [c1, c2] = [1,1].
  • Ist [y3, y4] = [1, 1] und sind alle anderen Hilfslesewerte gleich 0, dann ist [c1, c2] = [0, 1].
  • Ist [y1, y2] = [0, 1] und [y3, y4] =[1, 1] und sind alle anderen Hilfslesewerte gleich 0, dann ist [c1, c2] = [1, 0].
  • Ein Paar von Prüfbits kann somit nicht in einer einzigen ternären Speicherzelle gespeichert werden.
  • Nachfolgend wird nun eine mögliche Ausbildung des Korrektors Corr für den betrachteten linearen Code C beschrieben. Die Fehlerkorrektur wird so ausgeführt, dass aus den ausgelesenen, möglicherweise fehlerhaften Speicherzuständen z 1 ' , , z 8 '
    Figure DE102013222136B9_0319
    die Hilfslesewerte y 1 ' , , y 10 '
    Figure DE102013222136B9_0320
    gebildet werden, wie beschrieben wurde, und dann diese Hilfslesewerten und die möglicherweise fehlerhaften Prüfbits c 1 ' , , c 5 '
    Figure DE102013222136B9_0321
    mithilfe des Korrektors Korr 1016 den Korrekturvektor e = e1, ..., e10 bestimmen.
  • Die Fehlerkorrektur wird unter Verwendung der H-Matrix H des Codes C ausgeführt, die bekanntermaßen als H = ( P 5,10 T , I 5 ) = ( h 1 , , h 15 )
    Figure DE102013222136B9_0322
    bestimmt wird, wobei P 5,10 T
    Figure DE102013222136B9_0323
    die transponierte Matrix der Matrix P10,5 ist, in der Zeilen und Spalten vertauscht wurden, und I5 die 5-dimensionale Einheitsmatrix ist, sodass H = ( 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 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 0 1 1 1 0 0 0 0 1 )
    Figure DE102013222136B9_0324
    gilt. Hierbei sind hi für i= 1, ..., 15 die Spalten der H-Matrix H.
  • Alle Spalten der H-Matrix H sind unterschiedlich, und jede Spalte hi, i = 1, ..., 15, enthält entweder eine 1 oder drei 1-en, d.h. eine ungerade Zahl von Einsen.
  • Wie durch 6a dargestellt ist, weist der Korrektor 17a einen Syndromgenerator 61a auf, der für k = 10 und I = 5 die möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y 10 '
    Figure DE102013222136B9_0325
    umfasst; und die möglicherweise fehlerhaften Prüfbits c 1 ' , , c 5 ' ,
    Figure DE102013222136B9_0326
    die aus dem Speicher gelesen wurden, bilden gemäß der folgenden Beziehung s = [ s 1 , s 5 ] T = H [ y 1 ' , , z 10 ' ,   c 1 ' , , c 5 ' ] T
    Figure DE102013222136B9_0327
    ein Fehlersyndrom s, wie es für einen linearen Code üblich ist, sodass die einzelnen Komponenten s1 , ..., s5 des Fehlersyndroms zu s 1 = c 1 ' y 1 ' y 2 ' y 3 ' y 4 ' y 5 ' y 6 '
    Figure DE102013222136B9_0328
    s 2 = c 2 ' y 1 ' y 2 ' y 3 ' y 7 ' y 8 ' y 9 '
    Figure DE102013222136B9_0329
    s 3 = c 3 ' y 1 ' y 4 ' y 5 ' y 7 ' y 8 ' y 10 '
    Figure DE102013222136B9_0330
    s 4 = c 4 ' y 2 ' y 4 ' y 6 ' y 7 ' y 9 ' y 10 '
    Figure DE102013222136B9_0331
    s 5 = c 5 ' y 3 ' y 5 ' y 6 ' y 8 ' y 9 ' y 10 '
    Figure DE102013222136B9_0332
    bestimmt werden.
  • Hierbei ist [ y 1 ' , , y 10 ' ,   c 1 ' , , c 5 ' ] T
    Figure DE102013222136B9_0333
    der transponierte Spaltenvektor des Zeilenvektors [ y 1 ' , , y 10 ' ,   c 1 ' , , c 5 ' ]
    Figure DE102013222136B9_0334
    und [s1 , ..., s5 ]T ist der transponierte Spaltenvektor des Zeilenvektors [s1 , ..., s5 ] der Komponenten des Syndroms.
  • Die Implementierung des Syndromgenerators 61a, der die angegebenen Gleichungen für die Komponenten des Fehlersyndroms s1 , s2 , s3 , s4 , s5 ausführt, indem zum Beispiel XOR-Gatter verwendet werden oder indem ein gängiges Synthesewerkzeug verwendet wird, ist für einen Fachmann nicht schwierig.
  • Aus dem Fehlersyndrom s bestimmt der Decoder 62a den zugehörigen Korrekturvektor e = e1, ..., e10 für die Hilfslesewerte y 1 ' , , y 10 ' ,
    Figure DE102013222136B9_0335
    welche die Informationsbits des betrachteten linearen Fehlerkorrekturcodes C sind. Die Tabelle 15 stellt die Wertetabelle des Decoders 52 dar. Tabelle 15
    s1 s2 s3 s4 s5 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    1 1 1 0 0 1 0 0 0 0 0 0 0 0 0
    1 1 0 1 0 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
    1 0 1 1 0 0 0 0 1 0 0 0 0 0 0
    1 0 1 0 1 0 0 0 0 1 0 0 0 0 0
    1 0 0 1 1 0 0 0 0 0 1 0 0 0 0
    0 1 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
    0 1 0 1 1 0 0 0 0 0 0 0 0 1 0
    0 0 1 1 1 0 0 0 0 0 0 0 0 0 1
  • Insgesamt gibt es 32 = 25 verschiedene Syndromwerte. Entsprechende Korrekturwerte sind mit 11 Syndromwerten von denen in Tabelle 15 verbunden.
  • Für alle Syndromwerte, die in der Tabelle 15 nicht aufgeführt sind, können die Werte für e1, ..., e10 zufällig sein, was zur Optimierung des Decoders dienen kann. Zum Beispiel können alle diese Werte auf 0 festgelegt werden. Ist das Fehlersyndrom gleich 0, dann findet keine Korrektur statt, wie in der ersten Zeile von Tabelle 15 dargestellt ist, da dann e = 0, ..., 0 ist. Gilt für das Fehlersyndrom, dass s = hi, (i ∈ {1, ..., 10}) ist, dann wird die i-te Komponente der Hilfslesewerte korrigiert, was der Korrektur eines 1-Bit-Fehlers entspricht. In diesem Fall gilt für die i-te Komponente ei = 1. Alle anderen Komponenten von e sind 0. Ist s = [1, 1, 0, 0, 1]T= h3, dann ist e = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]T, und die dritte Komponente der Hilfslesewerte wird korrigiert.
  • In 11 ist ein möglicher Decoderschaltkreis dargestellt.
  • Der Decoderschaltkreis von 11 weist 5 binäre Eingänge, welche die Komponenten s1 , s2 , s3 , s4 , s5 übertragen, und 10 binäre Ausgänge auf, welche die Komponenten e1, ..., e10 ausgeben. Er weist 10 AND-Gatter 110i, i = 1, ..., 10 auf, die jeweils drei Eingänge aufweisen, wobei der Ausgang des AND-Gatters 110i den Wert ei überträgt.
  • Der Eingang des Decoders, der die Komponente s1 überträgt, ist jeweils an einen ersten Eingang der AND-Gatter 1101, 1102, 1103, 1104, 1105 und 1106 angeschlossen. Der Eingang des Decoders, der die Komponente s2 überträgt, ist jeweils an einen zweiten Eingang der AND-Gatter 1101, 1102, 1103 und einen ersten Eingang der AND-Gatter 1107, 1108, 1109 angeschlossen. Der Eingang des Decoders, der die Komponente s3 überträgt, ist an einen ersten Eingang des AND-Gatters 11010, jeweils an einen zweiten Eingang der AND-Gatter 1104, 1105, 1107, 1108 und an den dritten Eingang des AND-Gatters 1101 angeschlossen. Der Eingang des Decoders, der die Komponente s4 überträgt, ist jeweils an einen zweiten Eingang der AND-Gatter 1106, 1109, 1010 und den dritten Eingang der AND-Gatter 1102, 1104, 1107 angeschlossen. Der Eingang des Decoders, der die Komponente s5 überträgt, ist jeweils an den dritten Eingang der AND-Gatter 1103, 1105, 1106, 1108, 1109, 11010 angeschlossen.
  • 12 zeigt einen möglichen Fehlererkennungsschaltkreis für die beschriebene Ausführungsform. Er weist einen Syndromgenerator 1203, wie er auch für den Korrrektor 17a in 6a verwendet wurde, einen 5-Eingang-XOR-Baum 1201 und einen 5-Eingang-OR-Baum 1202 auf. Der Syndromgenerator weist 10 erste binäre Eingänge, an denen die möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y 10 '
    Figure DE102013222136B9_0336
    eingegeben werden, und 5 weitere Eingänge, welche die möglicherweise fehlerhaften Prüfbits c 1 ' , , c 3 '
    Figure DE102013222136B9_0337
    übertragen, sowie 5 Ausgänge auf, an denen die Syndrombits s1 , s2 , s3 , s4 , s5 ausgegeben wurden. Die 5 Ausgänge des Syndromgenerators sind sowohl mit den 5 Eingängen des XOR-Baums 1201, der an seinem Ausgang die Parität P(s) der Syndromkomponenten P(s) = s1 ⊕ s2 ⊕ ... ⊕ s5 ausgibt, als auch mit den 5 Eingängen des OR-Baums 1202 verbunden, der die OR-Operation OR(s) = s1 ∨ s2 ∨ ... ∨ s5 der Syndromkomponenten ausgibt.
  • Werden nur 1-Bit-Fehler und 2-Bit-Fehler unterschieden, dann gilt das Folgende, weil alle Spalten hi der H-Matrix H ungerade Zahlen von 1-en aufweisen:
    • Es liegt ein 1-Bit-Fehler vor, wenn P(s) = 1 und OR(s) = 1 ist.
    • Es liegt ein 2-Bit-Fehler vor, wenn P(s) = 0 und OR(s) = 1 ist.
  • 13 zeigt eine gemeinsame Ausführung des Korrekturschaltkreises und des Fehlererkennungsschaltkreises. Da der Syndromgenerator 1301 sowohl für die Fehlerkorrektur als auch für die Fehlererkennung verwendet werden kann, ist es möglich, nur einen Syndromgenerator auszubilden und seine Ausgänge, welche die Komponenten s1 , ..., s5 übertragen, gleichzeitig mit den entsprechenden Eingängen des Decoders 1304, den Eingängen des XOR-Baums 1302 und den Eingängen des OR-Baums 1203 zu verbinden, sodass der Korrektor Cor 17 und der Schaltkreis für die Fehlererkennung Det 120 hierbei gemeinsam ausgeführt werden.
  • Es soll nun die Funktionsweise der betrachteten Ausführungsform erläutert werden.
  • In einem Speicher mit einem Unterschaltkreis BT gemäß 3c sind die binären Werte x1, ..., x8 = 0, 0, 1, 1, 0, 1, 1, 1 zu speichern. Der Unterschaltkreis BT weist wiederum, wie in 3c dargestellt ist, die Unterschaltkreise BT1 38, BT2 39, BT3 310 und BT4 311 auf, wobei beide Unterschaltkreise BT1 und BT2 die gleiche Funktion f ausführen, wie in Tabelle 6 dargestellt ist.
  • Der Unterschaltkreis BT1 transformiert die Bits x1, x2, x3 = 001 gemäß Tabelle 6 in die ternären Zustände 2ter , 1ter . Der Unterschaltkreis BT2 transformiert die Bits x4, x5, x6 = 101 von Tabelle 6 in die ternären Zustände 0ter , 2ter . Der Unterschaltkreis BT3 bildet das Bit x7 = 1 in den ternären Zustand 1ter ab, genau wie der Unterschaltkreis BT4 das Bit x8 = 1 in den ternären Zustand 1ter abbildet. Die ternären Zustände 2ter , 1ter , 0ter , 2ter , 1ter , 1ter werden in die ersten 6 Speicherzellen des Speichers Sp 13 geschrieben.
  • Der Codierer Cod 12 transformiert die 8 binären Eingabewerte x1, ..., x8 = 0, 0, 1, 1, 0, 1, 1, 1 in die fünf binären Prüfbits bits c1, ..., c5.
  • Die Funktionsweise kann, wie beschrieben wurde, so verstanden werden, dass er zuerst seine Eingabewerte funktionell in die entsprechenden Hilfslesewerte transformiert und die entsprechenden Prüfbits aus den Hilfslesewerten erzeugt, wobei hier ein linearer Code C verwendet wird, obwohl diese zwei Schritte nicht getrennt ausgeführt werden müssen, so zum Beispiel wegen der gemeinsamen Optimierung der entsprechenden Unterschaltkreise .
  • Gemäß Tabelle 9 werden die Bits x1, x2, x3 = 0, 0, 1 zuerst in die Hilfslesewerte y1, y2, y3, y4 = 1, 1, 0, 1 transformiert, die Bits x4, x5, x6 = 101 werden in die Hilfslesewerte y5, y6, y7, y8 = 0, 0, 1, 1 transformiert und Bit x7 = 1 wird in y9 = 1 transformiert und Bit x8 = 1 wird durch den Codierer in y10 = 1 transformiert. Aus den sich ergebenden Hilfslesewerten 1101001111 werden die binären Prüfbits c1, ..., c5 bestimmt durch c 1 ,   c 2 ,   c 3 ,   c 4 ,   c 5 = ( 1,   1,   0,   1,   0,   0,   1,   1,   1,   1 ) P = 1,   1,   1,   1,   1   ,
    Figure DE102013222136B9_0338
    wie unmittelbar berechnet werden kann. Die binären Prüfbits c1, c2, c3, c4, c5 = 1, 1, 1, 1, 1 werden durch die Unterschaltkreise bt1 1010, ..., bt5 1011 in die ternären Zustände 1 ter, 1ter , 1ter , 1ter , 1ter transformiert und jeweils in eine separate von fünf weiteren Zellen des Speichers Sp 1013 geschrieben, sodass insgesamt die Werte z1, ..., z4, z5, z6, c1, ..., c5 = 2ter , 1ter , 0ter , 2ter , 1ter , 1ter , 1ter , 1ter , 1ter , 1ter , 1ter in den ternären Speicher geschrieben sind.
  • Wenn kein Fehler auftritt, dann werden die Zustandswerte z 1 ' , , z 4 ' ,   z 5 ' ,   z 6 ' ,  c 1 ' , , c 5 ' = 2 t e r ,1 t e r ,0 t e r ,2 t e r ,1 t e r ,1 t e r ,1 t e r ,1 t e r ,1 t e r ,1 t e r ,1 t e r
    Figure DE102013222136B9_0339
    ausgelesen. Die ternären Werte z 1 ' , ,   z 6 ' = 2 t e r ,   1 t e r ,   0 t e r ,   2 t e r ,   1 t e r ,   1 t e r
    Figure DE102013222136B9_0340
    werden durch den Unterschaltkreis LH 16, der im Einzelnen in 4 dargestellt ist, in die Hilfslesewerte y 1 '  y 2 ' = L H 1 ( 2 t e r ) = 11,
    Figure DE102013222136B9_0341
    y 3 ' , y 4 ' = L H 2 ( 1 t e r ) = 01,
    Figure DE102013222136B9_0342
    y 5 '  y 6 ' = L H 3 ( 0 t e r ) = 00,
    Figure DE102013222136B9_0343
    y 7 ' , y 8 ' = L H 4 ( 2 t e r ) = 11,
    Figure DE102013222136B9_0344
    y 9 ' = L H 5 ( 1 t e r ) = 1,
    Figure DE102013222136B9_0345
    y 10 ' = L H 6 ( 1 t e r ) = 1
    Figure DE102013222136B9_0346
    transformiert, wobei für LH1, LH2, LH3 und LH4 Tabelle 8 verwendet wird. Die ternären Zustände 1ter , ..., 1ter , die den Prüfbits c1, ..., c5 entsprechen, werden durch den entsprechenden Unterschaltkreis tb1 151, ..., tb5 155 in binäre Werte 1bin , ..., 1bin transformiert, sodass die Hilfslesewerte y' = (1, 1, 0, 1, 0, 0, 1, 1, 1, 1) durch den Unterschaltkreis LH 16 ausgegeben werden. Diese Hilfslesewerte und die Prüfbits c 1 ' , , c 5 ' = 1,  1 ,   1,   1,   1,
    Figure DE102013222136B9_0347
    die aus dem Speicher gelesen wurden, werden in die entsprechenden Eingänge des Korrektors 17 eingegeben. In seinem Syndromgenerator 61a von 6a bildet der Korrektor das Fehlersyndrom ( s 1 , , s 5 ) T = H ( 1,1,0,1,0,0,1,1,1,1,1,1,1,1,1 ) T = ( 0,0,0,0,0 ) T
    Figure DE102013222136B9_0348
    das wieder einfach berechnet wird, und der Decoder 62a gibt gemäß der ersten Zeile von Tabelle 15 den Korrekturvektor e = e1, ..., e10 = 0, ..., 0 aus, dessen Komponenten im XOR-Schaltkreis 18a mit den Hilfslesewerten y' zu den korrigierten Hilfslesewerten y c = y 1 c , , y 10 c = y 1 ' 0, , y 10 ' 0 = 1,1,0,1,0,0,1,1,1,1 = y ' e
    Figure DE102013222136B9_0349
    kombiniert werden.
  • Aus den korrigierten Hilfslesewerten yc bildet der Unterschaltkreis BB 19 die korrigierten Ausgabewerte xc. Der Unterschaltkreis BB 19 ist eingerichtet, wie in 7c dargestellt ist. Der Unterschaltkreis BB1 78 transformiert die korrigierten Hilfslesewerte y 1 c , , y 4 c = 1,   1,   0,   1
    Figure DE102013222136B9_0350
    gemäß Tabelle 10 in die korrigierten Ausgabewerte x 1 c , x 2 c , x 3 c = 0,   0,   1
    Figure DE102013222136B9_0351
    Der Unterschaltkreis BB2 79 transformiert die korrigierten Hilfslesewerte y 5 c , , y 8 c = 0,  0 ,  1 ,   1
    Figure DE102013222136B9_0352
    gemäß Tabelle 10 in die korrigierten Ausgabewerte x 4 c , x 5 c , x 6 c = 1,   0,   1
    Figure DE102013222136B9_0353
    Der Unterschaltkreis BB3 710 transformiert den korrigierten Hilfslesewert y 9 c = 1
    Figure DE102013222136B9_0354
    in den korrigierten Ausgabewert x7 = 1. Der Unterschaltkreis BB4 711 transformiert den korrigierten Hilfslesewert y 10 c = 1
    Figure DE102013222136B9_0355
    in den korrigierten Ausgabewert x8 = 1. Am Schaltkreisausgang wird somit das korrigierte Ergebnis x 1 c , , x 8 c = 0,   0,   1,   1,   0,   1,   ,   1,
    Figure DE102013222136B9_0356
    ausgegeben.
  • Es wird nun angenommen, dass der ternäre Zustand z1 = 2, der in Speicher geschrieben wurde, beim Auslesen fehlerhaft in den Zustand z 1 ' = 1
    Figure DE102013222136B9_0357
    verfälscht wurde. Dann werden beim Lesen aus dem Speicher die Zustandswerte z 1 ' , , z 4 ' , z 5 ' , z 6 ' , c 1 ' , , c 5 ' = 1 t e r ,   1 t e r ,   0 t e r ,   2 t e r ,   1 t e r ,   1 t e r ,   1 t e r ,   1 t e r ,   1 t e r ,   1 t e r ,   1 t e r ,  
    Figure DE102013222136B9_0358
    ausgelesen. Die ternären Werte z 1 ' , , z 6 ' = 1 t e r ,   1 t e r ,   0 t e r ,   2 t e r ,   1 t e r ,   1 t e r ,  
    Figure DE102013222136B9_0359
    werden durch den Unterschaltkreis LH 16, der in 4 im Einzelnen dargestellt ist, unter Verwendung der Tabelle 8 in die Hilfslesewerte y 1 '  y 2 ' = L H 1 ( 1 t e r ) = 01,
    Figure DE102013222136B9_0360
    y 3 '  y 4 ' = L H 2 ( 1 t e r ) = 01,
    Figure DE102013222136B9_0361
    y 5 '  y 6 ' = L H 3 ( 0 t e r ) = 00,
    Figure DE102013222136B9_0362
    y 7 '  y 8 ' = L H 4 ( 2 t e r ) = 11,
    Figure DE102013222136B9_0363
    y 9 '   = L H 5 ( 1 t e r ) = 1,
    Figure DE102013222136B9_0364
    y 10 '   = L H 6 ( 1 t e r ) = 1
    Figure DE102013222136B9_0365
    transformiert, sodass durch den Unterschaltkreis LH 16 die Hilfslesewerte y' = (0,1,0,1,0,0,1,1,1,1) ausgegeben werden. Diese Hilfslesewerte und die Prüfbits c 1 ' , c 5 ' = 1,   1,   1,   1,   1 ;  
    Figure DE102013222136B9_0366
    die aus dem Speicher gelesen wurden, werden den entsprechenden Eingängen des Korrektors 17 zugeführt. In seinem Syndromgenerator 61a von 6 bildet der Korrektor das Fehlersyndrom ( s 1 , , s 5 ) T = H ( 0,   1,   0,   1,   0,   0,   1,   1,   1,   1,   1,   1,   1,   1,   1 ) T = ( 1,   1,   1,   0,   0 ) T ,
    Figure DE102013222136B9_0367
    und der Decoder 620 gibt entsprechend der zweiten Zeile von Tabelle 15 den Korrekturvektor e = e1, ..., e10 = 1, 0, ..., 0 aus, der im XOR-Schaltkreis 18a mit den Hilfslesewerten y' zu den korrigierten Hilfslesewerten y c = y 1 c , , y 10 c = y 1 ' 0, , y 10 ' 0 = 1,1,0,1,0,0,1,1,1,1 = y ' e
    Figure DE102013222136B9_0368
    kombiniert wird.
  • Ebenso kann aus 11 entnommen werden, dass das AND-Gatter 1101 an seinem Ausgang für das Syndrom 1, 1, 1, 0, 0 = s1, s2, s3, s4, s5 den Wert e1 = 1 ausgibt, während für alle anderen AND-Gatter 110i, i = 2, ..., 10, ei = 0 gilt. Der Fehler, dass der gespeicherte ternäre Wert 2ter fehlerhaft zu 1ter verfälscht wurde, ist in den Hilfslesewerten korrigiert worden. Aus den korrigierten Hilfslesewerten yc bildet der Unterschaltkreis BB 19, wie beschrieben wurde, die korrigierten Ausgabewerte xc.
  • Am Schaltkreisausgang wird somit wieder das korrigierte Ergebnis x 1 c , , x 8 c = 0,   0,   1,   1,   0,   1,   1,   1,
    Figure DE102013222136B9_0369
    ausgegeben.
  • Wenn ein Fehlererkennungsschaltkreis Det 120 vorhanden ist, der wie in 12 den Syndromgenerator 51, den XOR-Baum 1201 und den OR-Baum 1202 umfasst, dann setzt er für das Fehlersyndrom s1, ..., s5 = 1, 1, 1, 0, 0 an, dass für die Parität P(s) der Komponente des Fehlersyndroms P(s) = 1 und für die OR-Operation OR(s) = 1 gilt, sodass ein 1-Bit-Fehler angezeigt wird.
  • Ausführungsformen stellen eine Schaltung bereit, die zur Speicherung und zur Fehlerkorrektur von Folgen x1, .., xn von binären Daten mit n ≥ 3 ausgelegt ist, welche in einem Speicher mit Speicherzellen gespeichert werden können, die ternäre Zustände annehmen können, wobei aus den Folgen von binären Zuständen bestimmte ternäre Werte in Speicherzellen gespeichert werden, die ternäre Zustände annehmen können, und wobei dann, wenn aus dem Speicher aus den Speicherzellen, die ternäre Zustände annehmen können, möglicherweise fehlerhafte ternäre Werte gelesen werden, binäre Hilfslesewerte ausgebildet werden, wobei ein Codierer vorhanden ist, der an seinen Ausgängen in Abhängigkeit von den Daten x1, ..., xn, die an seinen mindestens n binären Eingängen eingegeben werden, binäre Prüfbits ausgibt, wobei Ausgänge des Codierers, die ein binäres Prüfbit übertragen, an einen Dateneingang einer Speicherzelle des Speichers angeschlossen sind, wenn in den Speicher geschrieben wird, wobei ein Dateneingang einer Speicherzelle, der an einen Ausgang des Codierers angeschlossen ist, nicht mit irgendeinem weiteren Ausgang des Codierers verbunden ist, und wobei der Codierer so ausgelegt ist, dass die binären Prüfbits, die durch den Codierer bestimmt wurden, und die binären Hilfslesewerte in dem fehlerfreien Fall ein Codewort eines Fehlerkorrekturcodes bilden.
  • Einigen Ausführungsformen entsprechend ist der Codierer so ausgelegt, dass der Codierer außer den n binären Eingängen für die Eingabe der Datenwerte x1, ..., xn ferner q binäre Eingänge für die Eingabe von binären Werten A = A1, ..., Aq = F (a1, ..., aQ) aufweist, die aus den Adressbits (a = a1, ..., aQ) bestimmt wurden, wobei F eine eindeutige Abbildung von Q-stelligen binären Werten auf q-stellige binäre Werte ist, wobei Q die Wortbreite der Speicheradresse ist und wobei 1 ≤ q ≤ Q gilt und wobei der Codierer so eingerichtet ist, dass die binären Prüfbits, die durch den Codierer bestimmt wurden, die Werte A1 ..., Aq, die aus den Adressbits bestimmt wurden, und die binären Hilfslesewerte in dem fehlerfreien Fall ein Codewort eines Fehlerkorrekturcodes bilden.
  • Einige Ausführungsformen stellen eine Schaltung zum Speichern von Folgen binärer Werte x1, ..., xn in einem Speicher bereit, wobei n ≥ 3 ist, wobei die Speicherzellen einer nicht leeren Untermenge von Speicherzellen des Speichers drei Zustandswerte annehmen können und wobei alle Speicherzellen, die nicht drei Zustandswerte annehmen können, zwei Zustandswerte annehmen können, mit den folgenden Merkmalen:
    1. 1. Es ist ein Unterschaltkreis BT mit n binären Eingängen und M Ausgängen für die Transformation von n binären Eingabewerten x1, ..., xn in M Ausgabewerte z 1 , , z m , z m + 1 , , z M = B T ( x 1 , , x n )
      Figure DE102013222136B9_0370
      vorhanden, wobei 2 ≤ m ≤ M und wobei M < n und wobei n ≥ 4 ist, wobei die Ausgabewerte z1, ..., zm in Abhängigkeit von den Eingabewerten drei verschiedene Werte annehmen können und wobei die Ausgabewerte zm+1, ..., zM in Abhängigkeit von den Eingabewerten höchstens zwei verschiedene Werte annehmen können.
    2. 2. Die M Ausgänge des Unterschaltkreises BT werden M Dateneingängen eines Speichers Sp zugeführt, wobei beim Schreiben in den Speicher die Ausgabewerte z1, ..., zm des Unterschaltkreises BT in Speicherzellen gespeichert werden, die 3 Zustände annehmen können, und wobei die Ausgabewerte zm+1, ..., zM in Speicherzellen gespeichert werden, die mindestens zwei Zustände annehmen können.
    3. 3. Es ist ein Unterschaltkreis LH zur Bestimmung binärer Hilfslesewerte y 1 ' , ,y k ' = L H ( z 1 ' , , z m ' , z m + 1 ' , , z M ' )
      Figure DE102013222136B9_0371
      mit M Eingängen und k Ausgängen vorhanden, wobei beim Lesen aus dem Speicher m erste Eingänge des Unterschaltkreises LH an die Datenausgänge der Speicherzellen des Speichers Sp angeschlossen sind, in die beim Schreiben die ternären Werte z1, ..., zm geschrieben werden und aus dem beim Lesen die möglicherweise fehlerhaften ternären Werte z 1 ' , , z m '
      Figure DE102013222136B9_0372
      gelesen werden, und wobei die weiteren M - m Eingänge des Unterschaltkreises LH an die Datenausgänge der Speicherzellen angeschlossen sind, in die beim Schreiben die Werte zm+1, ..., zM geschrieben werden und aus denen beim Lesen die möglicherweise fehlerhaften Werte z m + 1 ' , , z M '
      Figure DE102013222136B9_0373
      gelesen werden, und der an seinen k Ausgängen k binäre Hilfslesewerte y 1 ' , ,y k '
      Figure DE102013222136B9_0374
      mit k ≥ m + M ausgibt.
    4. 4. Es ist ein Codierer Cod mit n binären Eingängen und l binären Ausgängen zum Bestimmen l binärer Prüfbits c1, ..., cl aus den n binären Eingabewerten x1, ..., xn mit c 1 , , c l = C o d ( x 1 , , x n )
      Figure DE102013222136B9_0375
      vorhanden, wobei an n binären Eingängen des Codierers Cod die binären Eingabewerte x1, ..., xn eingegeben werden und an l binären Ausgängen die entsprechenden binären Prüfbits c1, ..., cl ausgegeben werden und wobei der Codierer so ausgelegt ist, dass er die Prüfbits c1, ...cl aus den Eingabewerten x1, ..., xn so bestimmt, dass die Bits y 1 , , y k , c 1 , c l
      Figure DE102013222136B9_0376
      ein Codewort eines Fehlerkorrekturcodes C der Länge k + l mit k Datenbits und l Prüfbits bilden und die Bits y 1 , , y k = L H [ B T ( x i , , x n ) ]
      Figure DE102013222136B9_0377
      funktionell durch die anschließenden Transformationen der Datenbits x1, ..., xn durch den Unterschaltkreis BT und LH bestimmt werden.
    5. 5. Für j = 1, ..., l ist der Ausgang des Codierers Cod, der die Prüfbits cj überträgt, mit dem Dateneingang der j-ten Speicherzelle verbunden, wenn in den Speicher geschrieben wird, wobei der Dateneingang dieser j-ten Speicherzelle mit keinem weiteren Ausgang des Codierers verbunden ist.
    6. 6. Es ist ein Korrektor Cor für einen Fehlerkorrekturcode C mit l ersten binären Eingängen und k zweiten binären Eingängen vorhanden, wobei für j = 1, ..., l der j-te Eingang der l ersten Eingänge des Korrektors an den Datenausgang der Speicherzelle angeschlossen ist, der beim Schreiben mit dem j-ten Ausgang des Codierers verbunden ist, sodass beim Auftreten eines Fehlers an seinem j-ten Eingang der Wert z m + 1 ' , , z M '
      Figure DE102013222136B9_0378
      des möglicherweise fehlerhaften j-ten Prüfbits eingegeben wird, und dann, wenn kein Fehler aufgetreten ist, der richtige Wert cj des j-ten Prüfbits angewendet wird, wobei an dem k Bit breiten zweiten Eingang des Korrektors die möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y k ' ,
      Figure DE102013222136B9_0379
      die durch den Unterschaltkreis LH ausgegeben werden, eingegeben werden und der Korrektor so ausgelegt ist, dass er einen Korrekturvektor e = e1, ..., ek an seinem k Bit breiten Ausgang ausgibt, sodass y 1 , , y k = [ y 1 '   o p 1   e 1 ] , , [ y k '   o p k   e k ]
      Figure DE102013222136B9_0380
      gilt, wenn ein Fehler auftritt, der durch den Fehlerkorrekturcode C korrigiert werden kann, und op1, ..., opk eindeutig umkehrbare binäre Operationen sind und wobei der Korrekturvektor e gleich dem Nullvektor e 0 = e 1 0 , , e k 0
      Figure DE102013222136B9_0381
      ist, wenn kein Fehler aufgetreten ist, wobei e 1 0
      Figure DE102013222136B9_0382
      für i = 1, ..., k das Nullelement der Operation opi ist.
    7. 7. Es ist ein Kombinationsschaltkreis Vkn mit einem k Bit breiten ersten Eingang und einem k Bit breiten zweiten Eingang und einem k Bit breiten Ausgang vorhanden, wobei der erste k Bit breite Eingang an den k Bit breiten Ausgang des Unterschaltkreises LH angeschlossen ist, der die möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y k '
      Figure DE102013222136B9_0383
      überträgt, und der zweite k Bit breite Eingang an den k Bit breiten Ausgang des Korrektors Cor angeschlossen ist, der den Korrekturvektor e = e1, ..., ek überträgt, wobei der Kombinationsschaltkreis so ausgelegt ist, dass er an seinem k-Ausgang den korrigierten Hilfslesewert y 1 c o r , , y k c o r = [ y 1 '   o p 1   e 1 ] , , [ y k '   o p k   e k ]
      Figure DE102013222136B9_0384
      ausgibt, wobei op1, ..., opk eindeutig umkehrbare Operationen sind und y 1 c o r , , y k c o r = y 1 , , y k
      Figure DE102013222136B9_0385
      gilt, wenn kein Fehler oder ein durch den Code C korrigierbarer Fehler aufgetreten ist.
    8. 8. Es ist ein Unterschaltkreis BB für die Transformation der korrigierten binären Hilfslesewerte y 1 c o r , , y k c o r
      Figure DE102013222136B9_0386
      in n korrigierte binäre Datenbits y 1 c o r r , , y k c o r r = B B [ y 1 c o r r , , y k c o r r ]
      Figure DE102013222136B9_0387
      vorhanden, der so ausgelegt ist, dass dann, wenn y 1 c o r r , , y k c o r r = y 1 , , y k
      Figure DE102013222136B9_0388
      gilt, auch x 1 , , x n = x 1 c o r r , , x k c o r r
      Figure DE102013222136B9_0389
      gilt.
    9. 9. Die Unterschaltkreise BT 11, LH 16 und BB 19 sind so ausgelegt, dass die Eingabewerte x = x1, ..., xn mindestens dann wiederhergestellt werden, wenn nach den anschließenden Transformationen der Eingabewerte durch den Unterschaltkreis BT, LH und BB kein Fehler aufgetreten ist und B B { L H [ B T ( x 1 , , x n ) ] } = x 1 , , x n
      Figure DE102013222136B9_0390
      gilt.
  • In einigen Ausführungsformen ist der Codierer so ausgeführt, dass Prüfbits, die durch den Codierer bestimmt wurden, zusätzlich von Werten der Adressbits der Schreibadresse a = a1, ..., aQ abhängen, und der Korrektor ist so ausgeführt, dass der durch den Korrektor bestimmte Korrekturvektor zusätzlich von entsprechenden Werten der Adressbits der Leseadresse a ' = a 1 ' , , a Q '
    Figure DE102013222136B9_0391
    abhängt.
  • Ausführungsformen entsprechend weist der Codierer zusätzlich zu n binären Eingängen für die Eingaben der Datenbits x1, ...xn ferner q, q ≥ 1, binäre Eingänge für die Eingabe von q Bits A1, ..., Aq auf, die aus den Adressbits der Leseadresse a = a1, ..., aQ abgeleitet sind, A 1 , , A l q = F ( a 1 , , a Q ) ,
    Figure DE102013222136B9_0392
    wobei F eine eindeutige Zuordnung der Bits A1, ..., Aq zu den Bits a1, ..., aQ der Leseadresse ist und wobei der Codierer so ausgelegt ist, dass c1, ..., cl, y1, ..., yk, A1, ..., Aq ein Codewort eines Fehlerkorrektorcodes C ist und wobei der Korrektor außer den l binären Eingängen für die Eingabe der möglicherweise fehlerhaften Prüfbits c 1 ' , , c l '
    Figure DE102013222136B9_0393
    und der k möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0394
    weitere q binäre Eingänge für die Eingabe von q Bits A 1 ' , , A q '
    Figure DE102013222136B9_0395
    aufweist, die aus den Q Adressbits der Leseadresse a ' = a 1 ' , , a Q '
    Figure DE102013222136B9_0396
    abgeleitet sind, A 1 ' , , A q ' = F ( a 1 ' , , a Q ' ) .
    Figure DE102013222136B9_0397
  • In einigen Ausführungsformen weist der Korrektor außer k binären Ausgängen für die Ausgabe der Korrekturwerte e1, ..., ek zur Korrektur der Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0398
    weitere q binäre Ausgänge für die Ausgabe von Korrekturwerten e 1 A , , e q A
    Figure DE102013222136B9_0399
    zur Korrektur der Bits A 1 ' , , A q '
    Figure DE102013222136B9_0400
    auf, die aus den Adressbits der Leseadresse abgeleitet sind.
  • Ausführungsformen entsprechend gilt q = 1, und A 1 = F ( a 1 , , a Q ) = a 1 a Q
    Figure DE102013222136B9_0401
    ist die Parität der Schreibadresse, und A 1 ' = F ( a 1 ' , , a Q ' ) = a 1 ' a Q '
    Figure DE102013222136B9_0402
    ist die Parität der Leseadresse.
  • In Ausführungsformen gilt q = Q, A1, ..., AQ = a1, ..., aq und A 1 ' , , A Q ' = a 1 ' , , a q '
    Figure DE102013222136B9_0403
  • Einigen Ausführungsformen entsprechend werden die Ausgänge des Korrektors, welche die Korrekturwerte e 1 A , , e q A
    Figure DE102013222136B9_0404
    übertragen, q Eingängen eines Fehlererkennungsschaltkreises zugeführt, der dann, wenn der Korrekturwert e 1 A , , e q A
    Figure DE102013222136B9_0405
    zu einer Adresskorrektur gehört, an seinem Ausgang einen Adressfehler anzeigt.
  • In Ausführungsformen wird der Fehlererkennungsschaltkreis als ein NOR-Schaltkreis mit q Eingängen realisiert, in denen die q Eingaben mit den q Korrekturwerten e 1 A , , e q A
    Figure DE102013222136B9_0406
    von den Ausgängen des Korrektors verbunden sind.
  • Einigen Ausführungsformen entsprechend ist der Code C ein linearer Code.
  • In Ausführungsformen ist der Korrektor eine Reihenschaltung eines Syndromgenerators und eines Decoders.
  • Ausführungsformen entsprechend ist der Korrektor eine Reihenschaltung eines Syndromgenerators und eines Decoders, und der Syndromgenerator ist an einen Adressfehlerbestimmer angeschlossen, der ein Signal „Adressfehler“ ausgibt, wenn das Fehlersyndrom, das durch den Syndromgenerator bestimmt wurde, einem Adressfehler entspricht.
  • In einigen Ausführungsformen ist für j = 1, ..., l der j-te Ausgang des Codierers für das Prüfbit cj an den Eingang eines Unterschaltkreises btj für die Transformation eines binären Wertes cj in einen ternären Wert c j t e r
    Figure DE102013222136B9_0407
    angeschlossen, in welchem der Ausgang beim Schreiben an den Dateneingang einer Speicherzelle zum Speichern des ternären Wertes c j t e r
    Figure DE102013222136B9_0408
    angeschlossen ist, und wobei beim Lesen der Datenausgang der ternären Speicherzelle zum Speichern des ternären Wertes c j t e r
    Figure DE102013222136B9_0409
    an den Eingang eines Unterschaltkreises tbj für die Transformation eines ternären Wertes c j t e r '
    Figure DE102013222136B9_0410
    in einen binären Wert c j '
    Figure DE102013222136B9_0411
    angeschlossen ist, in welchem der Ausgang an die entsprechenden Eingänge des Korrektors angeschlossen ist, wobei tbj[btj(cj)] = cj gilt.
  • Ausführungsformen entsprechend wird der binäre Wert 0 durch den Unterschaltkreis btj in einen minimalen ternären Wert transformiert, und wobei der Wert 1 durch den Unterschaltkreis btj in einen maximalen ternären Wert transformiert wird.
  • In Ausführungsformen wird der binäre Wert 0 durch den Unterschaltkreis btj in einen maximalen ternären Wert transformiert, und wobei der Wert 1 durch den Unterschaltkreis btj in einen minimalen ternären Wert transformiert wird.
  • Ausführungsformen entsprechend ist der j-te Ausgang des Codierers für mindestens ein j ∈ {1, ..., l} beim Schreiben direkt an den Dateneingang einer Speicherzelle zum Speichern eines binären Wertes cj angeschlossen und wobei beim Lesen der Datenausgang der Speicherzelle zum Speichern des binären Wertes cj direkt an den entsprechenden Eingang des Korrektors angeschlossen ist.
  • In einigen Ausführungsformen ist der Code C ein linearer Code mit einer Generatormatrix G = (l, P), und der Codierer ist so ausgelegt, dass die Prüfbits c = c1, ..., cl gemäß der Beziehung c = c 1 , , c l = ' ( L H [ B T ( x 1 , , x n ) ] ) P = ( y 1 , , y k ) P
    Figure DE102013222136B9_0412
    bestimmt werden, wobei G eine (k, k + l)-Matrix ist, wenn die Adressbits nicht in die Fehlererkennung einbezogen sind, und die Prüfbits gemäß der Beziehung c = c 1 , , c l = { L H [ B T ( x 1 , , x n ) ] , a 1 , , A q } P = ( y 1 , , y k , A 1 , , A q ) P ,
    Figure DE102013222136B9_0413
    bestimmt werden, in der G eine (k + q, k + l + q)-Matrix ist, wenn die Adressbits über die Bits A1, ..., Aq, die aus den Adressbits a1, ..., aQ abgeleitet sind, in die Fehlererkennung einbezogen sind.
  • Ausführungsformen entsprechend ist der Unterschaltkreis BT 11 für die Transformation der Eingabewerte x1, ..., xn in die Ausgabewerte z1, ..., zm, zm+1, ..., zM eine Reihenschaltung eines Unterschaltkreises BSS 94 für die Transformation der Eingabewerte x1, ..., xn in k binäre Hilfsschreibwerte y 1 s , , y k s
    Figure DE102013222136B9_0414
    und eines Unterschaltkreises BTS 95 für die Transformation der binären Hilfsschreibwerte y 1 s , , y k s
    Figure DE102013222136B9_0415
    in die Ausgabewerte z1, ..., zm, zm+1, ..., zM des Schaltkreises BT 11.
  • In Ausführungsformen ist der Unterschaltkreis BSS so ausgeführt, dass die Hilfsschreibwerte y 1 s , , y k s
    Figure DE102013222136B9_0416
    die durch den Unterschaltkreis BSS bestimmt wurden, gleich den fehlerfreien Hilfslesewerten y1, ..., yk sind, die durch die Unterschaltkreise BB und LH bestimmt wurden, und der Codierer ist so ausgeführt, dass er die Prüfbits c1, ..., cl unter Verwendung der Hilfsschreibwerte bestimmt, die durch den Unterschaltkreis BBS ausgegeben wurden.
  • Ausführungsformen entsprechend ist der Codierer so ausgeführt, dass die Prüfbits c = c1, ..., cl entsprechend der Beziehung c = c 1 , , c l = B B S ( x 1 , , x n ) P = ( y 1 s , , y k s ) P
    Figure DE102013222136B9_0417
    bestimmt werden, in der G eine (k, k + l)-Matrix ist, wenn die Adressbits nicht in die Fehlererkennung einbezogen sind, und entsprechend der Beziehung c = c 1 , , c l = { B B S ( x 1 , , x n ) , A 1 , , A q } P = ( y 1 s , , y k s , A 1 , , A q ) P ,
    Figure DE102013222136B9_0418
    bestimmt werden, in der G eine (k + q, k + I + q)-Matrix ist, wenn die Adressbits über die Bits A1, ..., Aq, die aus den Adressbits a1, ..., aQ abgeleitet sind, in die Fehlererkennung einbezogen sind.
  • Einer Ausführungsform entsprechend ist der Unterschaltkreis LH 16 zur Bestimmung binärer Hilfslesewerte y 1 ' , , y k ' = L H ( z 1 ' , , z M ' )
    Figure DE102013222136B9_0419
    aus den Zustandswerten z 1 ' , , z M '
    Figure DE102013222136B9_0420
    die aus dem Speicher gelesen wurden, so ausgeführt, dass jeder ternären Zustandskomponente z 1 ' ,
    Figure DE102013222136B9_0421
    i=1, ..., 1, ..., m komponentenweise mindestens zwei binäre Hilfslesewerte zugeordnet werden und jeder binären Zustandskomponente zm+1, ..., zM mindestens ein binärer Hilfslesewert zugeordnet wird, und so dass k ≥ m + M gilt.
  • Obwohl einige Ausbildungen im Zusammenhang mit einer Vorrichtung beschrieben wurden, ist es klar, dass diese Ausbildungen auch eine Beschreibung des entsprechenden Verfahrens darstellen, in der ein Block oder ein Gerät einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. Analog stellen Ausbildungen, die im Zusammenhang mit einem Verfahrensschritt beschrieben wurden, auch eine Beschreibung einer entsprechenden Einheit oder eines Elements oder eines Merkmals einer entsprechenden Vorrichtung dar.
  • Das erfindungsgemäß zerlegte Signal kann in einem digitalen Speichermedium gespeichert oder auf einem Übertragungsmedium, wie z.B. einem drahtlosen Übertragungsmedium oder einem drahtgebundenen Übertragungsmedium, wie z.B. dem Internet, übertragen werden.
  • In Abhängigkeit von bestimmten Realisierungsanforderungen können Ausführungsformen von Ausführungen in Hardware oder in Software realisiert werden. Die Realisierung kann unter Verwendung eines digitalen Speichermediums, zum Beispiel einer Diskette, einer DVD, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers erfolgen, die darauf gespeichert elektronisch lesbare Steuersignale aufweisen, die mit einem programmierbaren Computersystem derart zusammenarbeiten (oder zur Zusammenarbeit in der Lage sind), dass das jeweilige Verfahren ausgeführt wird.
  • Einige Ausführungsformen weisen einen nichtflüchtigen Datenträger auf, der elektronisch lesbare Steuersignale aufweist, die zur Zusammenarbeit mit einem programmierbaren Computersystem in der Lage sind, sodass eines der hier beschriebenen Verfahren ausgeführt wird.
  • Im Allgemeinen können Ausführungsformen der vorliegenden Erfindung als ein Computerprogrammprodukt mit einem Programmcode realisiert werden, wobei der Programmcode funktionsfähig zur Ausführung eines der Verfahren ist, wenn das Computerprogrammprodukt auf einem Computer läuft. Der Programmcode kann zum Beispiel auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsformen umfassen das Computerprogramm zum Ausführen eines der hier beschriebenen Verfahren, das auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten ist ein Computerprogramm, das einen Programmcode zum Ausführen eines der hier beschriebenen Verfahren aufweist, somit eine Ausführungsform des erfindungsgemäßen Verfahrens, wenn das Computerprogramm auf einem Computer läuft.
  • Somit ist ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), der ein darauf aufgezeichnetes Computerprogramm zum Ausführen eines der hier beschriebenen Verfahren aufweist, eine weitere Ausführungsform der erfindungsgemäßen Verfahren.
  • Somit ist ein Datenstrom oder eine Signalfolge, welche(r) das Computerprogramm zum Ausführen eines der hier beschriebenen Verfahren darstellt, eine weitere Ausführungsform des erfindungsgemäßen Verfahrens. Der Datenstrom oder die Signalfolge kann zum Beispiel eingerichtet sein, über eine Datenkommunikationsverbindung, zum Beispiel über das Internet, übertragen zu werden.
  • Eine weitere Ausführungsform weist Verarbeitungsmittel, zum Beispiel einen Computer oder einen programmierbaren Logikbaustein, auf, die ausgelegt oder geeignet sind, eines der hier beschriebenen Verfahren auszuführen.
  • Eine weitere Ausführungsform weist einen Computer auf, der auf ihm installiert ein Computerprogramm zum Ausführen eines der hier beschriebenen Verfahren aufweist.
  • In einigen Ausführungsformen kann ein programmierbarer Logikbaustein (zum Beispiel eine feldprogrammierbare Gatteranordnung) verwendet werden, um einige oder alle Funktionalitäten der hier beschriebenen Verfahren auszuführen. In einigen Ausführungsformen kann eine feldprogrammierbare Gatteranordnung mit einem Mikroprozessor zusammenarbeiten, um eines der hier beschriebenen Verfahren auszuführen. Im Allgemeinen werden die Verfahren durch eine beliebige Hardwarevorrichtung ausgeführt.
  • Obwohl diese Erfindung in der Form einiger vorteilhafter Ausführungsformen beschrieben worden ist, gibt es Abänderungen, Vertauschungen und Äquivalente, die in den Umfang dieser Erfindung fallen. Es soll auch angemerkt werden, dass es viele alternative Wege zum Realisieren der Verfahren und Anordnungen der vorliegenden Erfindung gibt. Es ist deshalb beabsichtigt, dass die nachfolgenden, beigefügten Ansprüche so interpretiert werden, dass sie alle Abänderungen, Vertauschungen und Äquivalente als ganz im Sinne und Umfang der vorliegenden Erfindung liegend einschließen.
  • Die oben beschriebenen Ausführungsformen dienen lediglich der Veranschaulichung der Grundgedanken der vorliegenden Erfindung. Es ist davon auszugehen, dass Abwandlungen und Veränderungen der hier beschriebenen Anordnungen und Details für andere Fachleute offensichtlich sein werden. Es ist deshalb beabsichtigt, dass eine Einschränkung nur durch den Umfang der angemeldeten Patentansprüche und nicht durch die spezifischen Details vorliegt, die hier über die Beschreibung und Erläuterung der Ausführungsformen vorgestellt wurden.
  • Obwohl jeder Anspruch nur auf einen einzigen Anspruch zurückverweist, umfasst die Offenbarung auch beliebige denkbare Kombinationen von Ansprüchen.

Claims (45)

  1. Schaltung mit: einem Speicher, der mehrere Speicherzellen aufweist, wobei eine oder mehrere von den mehreren Speicherzellen des Speichers jeweils eingerichtet sind, einen von mindestens drei verschiedenen Zuständen anzunehmen, einem ersten Unterschaltkreis BT, der ausgelegt ist, basierend auf einer Folge von binären Werten mehrere Ausgabewerte zu erzeugen, wobei jeder von den mehreren Ausgabewerten gleich einem von mindestens drei verschiedenen Basiswerten ist, wobei der erste Unterschaltkreis BT ausgelegt ist, jeden der Ausgabewerte als einen Zustandswert in einer anderen von der einen oder den mehreren Speicherzellen zu speichern, die jeweils eingerichtet sind, einen von den mindestens drei verschiedenen Zuständen anzunehmen, einem zweiten Unterschaltkreis LH, der ausgelegt ist, den Zustandswert aus jeder von der mindestens einen der Speicherzellen auszulesen, die eingerichtet sind, einen von den mindestens drei verschiedenen Zuständen anzunehmen, wobei der Zustandswert einer von drei verschiedenen Basiswerten ist, wobei der zweite Unterschaltkreis LH außerdem ausgelegt ist, basierend auf dem Zustandswert einer jeden von der mindestens einen der Speicherzellen binäre Hilfslesewerte zu bestimmen, und einem Codierer, der ausgelegt ist, basierend auf mindestens einem Teil der Folge von binären Werten ein oder mehrere binäre Prüfbits zu erzeugen, wobei ein Fehlerkorrekturcode mehrere Codeworte umfasst und wobei der Codierer ausgelegt ist, das eine oder die mehreren binären Prüfbits so zu erzeugen, dass die binären Hilfslesewerte und das eine oder die mehreren binären Prüfbits zusammen eines der Codewörter des Fehlerkorrekturcodes bilden, wenn die binären Hilfslesewerte und das eine oder die mehreren binären Prüfbits fehlerfrei sind, wobei der Codierer ausgelegt ist, jedes von dem erzeugten einen oder den mehreren Prüfbits in einer oder mehreren der Speicherzellen des Speichers derart zu speichern, dass jedes von dem einen oder den mehreren Prüfbits in einer anderen von den Speicherzellen des Speichers gespeichert wird, wobei jede der Speicherzellen, in der ein Prüfbit gespeichert ist, eingerichtet ist, einen von mindestens zwei verschiedenen Zuständen anzunehmen.
  2. Schaltung nach Anspruch 1, wobei die eine oder mehreren von den mehreren Speicherzellen des Speichers, die jeweils eingerichtet sind, einen von mindestens drei verschiedenen Zuständen anzunehmen, ternäre Speicherzellen sind, wobei die ternären Speicherzellen eingerichtet sind, einen von genau drei verschiedenen Zuständen anzunehmen, wobei der erste Unterschaltkreis BT ausgelegt ist, die mehreren Ausgabewerte derart zu erzeugen, dass jeder von den mehreren Ausgabewerten einen von genau drei verschiedenen Basiswerten aufweist, wobei der erste Unterschaltkreis BT ausgelegt ist, jeden von den Ausgabewerten als einen Zustandswert in einer anderen von den ternären Speicherzellen zu speichern, und wobei der zweite Unterschaltkreis LH ausgelegt ist, den einen oder die mehreren Zustandswerte aus mindestens einer von den ternären Speicherzellen zu lesen, wobei jeder von dem einen oder den mehreren Zustandswerten einen von genau drei verschiedenen Basiswerten aufweist, wobei der zweite Unterschaltkreis LH außerdem ausgelegt ist, basierend auf dem einen oder den mehreren Zustandswerten die binären Hilfslesewerte zu bestimmen.
  3. Schaltung nach Anspruch 1 oder 2, wobei die Schaltung ferner einen Korrektor Cor und einen Kombinationsschaltkreis Vkn aufweist, wobei der zweite Unterschaltkreis LH ausgelegt ist, die binären Hilfslesewerte in den Korrektor Cor und in den Kombinationsschaltkreis Vkn einzugeben, wobei der Korrektor Cor ausgelegt ist, das eine oder die mehreren Prüfbits aus einer oder mehreren der Speicherzellen des Speichers auszulesen und die Fehlerkorrekturbits auf Basis der binären Hilfslesewerte und des einen oder der mehreren Prüfbits zu erzeugen und die Fehlerkorrekturbits in den Kombinationsschaltkreis Vkn einzugeben, und wobei der Kombinationsschaltkreis Vkn ausgelegt ist, basierend auf den Fehlerkorrekturbits die Fehlerkorrektur an den binären Hilfslesewerten auszuführen, um fehlerfreie binäre Hilfslesewerte zu erhalten, wenn der Fehler durch den Fehlerkorrekturcode korrigierbar ist.
  4. Schaltung nach Anspruch 3, wobei der Kombinationsschaltkreis Vkn ausgelegt ist, die Fehlerkorrektur derart auszuführen, dass die fehlerfreien binären Hilfslesewerte und das eine oder die mehreren Prüfbits eines der Codewörter des Fehlerkorrekturcodes bilden.
  5. Schaltung nach Anspruch 3 oder 4, wobei die Schaltung ferner einen dritten Unterschaltkreis BB aufweist, der ausgelegt ist, die fehlerfreien binären Hilfslesewerte in n fehlerkorrigierte binäre Datenbits zu transformieren, wobei n eine ganze Zahl ist.
  6. Schaltung nach einem der Ansprüche 2 bis 5, wobei die Folge von binären Werten n Bits aufweist, wobei n eine ganze Zahl und n ≥ 3 ist, wobei der Codierer mindestens n Codierer-Eingangsanschlüsse aufweist, die eingerichtet sind, binäre Daten zu empfangen, wobei der Codierer einen oder mehrere Codierer-Ausgangsanschlüsse aufweist, wobei der Codierer ausgelegt ist, die Folge von binären Werten an den mindestens n Codierer-Eingangsanschlüssen zu empfangen, wobei der Codierer ausgelegt ist, das eine oder die mehreren binären Prüfbits an dem einen oder den mehreren Codierer-Ausgangsanschlüssen auszugeben, wobei der eine oder die mehreren Codierer-Ausgangsanschlüsse, die eingerichtet sind, jeweils ein oder mehrere binäre Prüfbits zu übertragen, jeweils an einen Eingangsanschluss einer der Speicherzellen des Speichers angeschlossen sind, wenn in den Speicher geschrieben wird, wobei jeder Eingangsanschluss einer jeden Speicherzelle, der an einen der Ausgangsanschlüsse des Codierers angeschlossen ist, nicht an irgendeinen weiteren Ausgangsanschluss des Codierers angeschlossen ist und wobei der Codierer so ausgelegt ist, dass das eine oder die mehreren binären Prüfbits und die binären Hilfslesewerte, die durch den Codierer bestimmt wurden, in dem fehlerfreien Fall eines der Codewörter des Fehlerkorrekturcodes bilden.
  7. Schaltung nach einem der Ansprüche 1 bis 6, wobei der Codierer ausgelegt ist, das eine oder die mehreren binären Prüfbits basierend auf Adressbits a = a1, ..., aQ zu erzeugen.
  8. Schaltung nach Anspruch 7, wobei der Codierer ausgelegt ist, das eine oder die mehreren binären Prüfbits derart zu erzeugen, dass die durch den Codierer bestimmten binären Prüfbits, von den Adressbits a = a1, ..., aQ abhängige binäre Werte A1 ..., Aq und die binären Hilfslesewerte im fehlerfreien Fall ein Codewort eines Fehlerkorrekturcodes bilden.
  9. Schaltung nach einem der Ansprüche 6 bis 8, wobei der Codierer so ausgelegt ist, dass der Codierer außerdem q binäre Eingänge für die Eingabe von binären Werten A1, ..., Aq aufweist, wobei A1, ..., Aq = F(a1, ..., aQ) gilt, wobei a1, ..., aQ Adressbits sind, wobei F eine eindeutige Abbildung von Q-stelligen binären Werten auf q-stellige binäre Werte ist, wobei Q die Wortbreite einer Speicheradresse des Speichers ist, wobei 1 ≤ q ≤ Q gilt und wobei der Codierer so ausgelegt ist, dass die binären Prüfbits, die durch den Codierer bestimmt wurden, die Werte A1 ..., Aq, die aus den Adressbits bestimmt wurden, und die binären Hilfslesewerte im fehlerfreien Fall ein Codewort eines Fehlerkorrekturcodes bilden.
  10. Schaltung mit: einem Speicher, der mehrere Speicherzellen aufweist, wobei eine oder mehrere von den mehreren Speicherzellen des Speichers ternäre Speicherzellen sind, die jeweils eingerichtet sind, einen von drei verschiedenen Zuständen anzunehmen, einem ersten Unterschaltkreis BT, der ausgelegt ist, basierend auf einer Folge von binären Werten mehrere Ausgabewerte zu erzeugen, wobei jeder von den mehreren Ausgabewerten einen von drei verschiedenen Basiswerten aufweist, wobei der erste Unterschaltkreis ausgelegt ist, jeden der Ausgabewerte als einen Zustandswert in einer anderen von der einen oder den mehreren Speicherzellen zu speichern, die jeweils eingerichtet sind, einen von den mindestens drei verschiedenen Zuständen anzunehmen, einem zweiten Unterschaltkreis LH, der ausgelegt ist, den Zustandswert aus jeder von der mindestens einen der ternären Speicherzellen zu lesen, die ausgelegt sind, einen der drei verschiedenen Zustände anzunehmen, wobei der Zustandswert einer von drei verschiedenen Basiswerten ist, wobei der zweite Unterschaltkreis LH außerdem ausgelegt ist, basierend auf dem Zustandswert einer jeden von der mindestens einen der ternären Speicherzellen binäre Hilfslesewerte zu bestimmen, und einem Codierer, der ausgelegt ist, basierend auf mindestens einem Teil der Folge von binären Werten ein oder mehrere binäre Prüfbits zu erzeugen, wobei ein Fehlerkorrekturcode mehrere Codeworte umfasst und wobei der Codierer ausgelegt ist, das eine oder die mehreren binären Prüfbits so zu erzeugen, dass die binären Hilfslesewerte und das eine oder die mehreren binären Prüfbits zusammen eines der Codewörter des Fehlerkorrekturcodes bilden, wenn die binären Hilfslesewerte und das eine oder die mehreren binären Prüfbits fehlerfrei sind, wobei der Codierer ausgelegt ist, jedes von dem erzeugten einen oder den mehreren Prüfbits in einer oder mehreren der Speicherzellen des Speichers derart zu speichern, dass jedes von dem einen oder den mehreren Prüfbits in einer anderen von den Speicherzellen des Speichers gespeichert wird, wobei jede der Speicherzellen, in der ein Prüfbit gespeichert ist, eingerichtet ist, einen von mindestens zwei verschiedenen Zuständen anzunehmen, einem Korrektor Cor; einem Kombinationsschaltkreis Vkn; und einem dritten Unterschaltkreis BB, wobei der zweite Unterschaltkreis LH ausgelegt ist, die binären Hilfslesewerte in den Korrektor Cor und in den Kombinationsschaltkreis Vkn einzugeben, wobei der Korrektor Cor ausgelegt ist, das eine oder die mehreren Prüfbits aus einer oder mehreren der Speicherzellen des Speichers zu lesen, wobei der Korrektor Cor ausgelegt ist, die Fehlerkorrekturbits auf Basis der binären Hilfslesewerte und des einen oder der mehreren Prüfbits zu erzeugen und wobei der Korrektor Cor ausgelegt ist, die Fehlerkorrekturbits in den Kombinationsschaltkreis Vkn einzugeben, wobei der Kombinationsschaltkreis Vkn ausgelegt ist, basierend auf den Fehlerkorrekturbits eine Fehlerkorrektur an den binären Hilfslesewerten vorzunehmen, um fehlerfreie binäre Hilfslesewerte zu erhalten, und wobei der dritte Unterschaltkreis BB ausgelegt ist, die fehlerfreien binären Hilfslesewerte in n binäre korrigierte Datenbits zu transformieren.
  11. Schaltung, die ausgelegt ist, Folgen von binären Werten x1, ..., xn in einem Speicher Sp zu speichern, der Speicherzellen aufweist, wobei n ≥ 4 ist, wobei jede der Speicherzellen des Speichers entweder eingerichtet ist, einen von drei Zustandswerten anzunehmen, oder einen von zwei Zustandswerten anzunehmen, wobei mindestens eine der Speicherzellen des Speichers eingerichtet ist, einen von drei Zustandswerten anzunehmen, und wobei die Schaltung aufweist: einen ersten Unterschaltkreis BT mit n binären Eingängen und M Ausgängen, wobei der erste Unterschaltkreis BT ausgelegt ist, n binäre Eingabewerte x1, ..., xn in M Ausgabewerte z1, ..., zm, zm+1, ..., zM = BT(x1, ..., xn) zu transformieren, wobei 2 ≤ m ≤ M ist, wobei M < n ist, wobei jeder von den Ausgabewerten z1, ..., zm in Abhängigkeit von den binären Eingabewerten einen von drei verschiedenen Werten aufweist und wobei jeder von den Ausgabewerten zm+1, ..., zM in Abhängigkeit von den binären Eingabewerten einen von höchstens zwei verschiedenen Werten aufweist, wobei der erste Unterschaltkreis BT M Ausgänge aufweist, die mit M Dateneingängen des Speichers Sp verbunden sind, wobei beim Schreiben in den Speicher Sp die Ausgabewerte z1, ..., zm des ersten Unterschaltkreises BT in die Speicherzellen des Speichers gespeichert werden, die eingerichtet sind, einen von drei Zuständen anzunehmen, und wobei die Ausgabewerte zm+1, ..., zM in Speicherzellen gespeichert werden, die eingerichtet sind, einen von mindestens zwei Zustandswerten anzunehmen, einen zweiten Unterschaltkreis LH, der ausgelegt ist, binäre Hilfslesewerte y 1 c , , y k ' = 1, = L H ( z 1 ' , , z m ' , z m + 1 ' , , z M ' )
    Figure DE102013222136B9_0422
    zu bestimmen, wobei der zweite Unterschaltkreis LH M Eingänge und k Ausgänge aufweist, wobei beim Lesen aus dem Speicher m erste Eingänge der Eingänge des zweiten Unterschaltkreises LH an die Datenausgänge der Speicherzellen des Speichers Sp angeschlossen sind, in die beim Schreiben die ternären Werte z1, ..., zm geschrieben werden und aus denen beim Lesen möglicherweise fehlerhafte ternäre Werte z 1 ' , , z m '
    Figure DE102013222136B9_0423
    gelesen werden, und wobei weitere M - m Eingänge des zweiten Unterschaltkreises LH an die Datenausgänge der Speicherzellen angeschlossen sind, in die beim Schreiben die Werte zm+1, ..., zM geschrieben werden und aus denen beim Lesen die möglicherweise fehlerhaften Werte z m + 1 ' , , z M '
    Figure DE102013222136B9_0424
    gelesen werden, und wobei der zweite Unterschaltkreis LH an seinen k Ausgängen k binäre Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0425
    mit k ≥ m + M ausgibt, einen Codierer Cod mit n binären Eingängen und l binären Ausgängen, der ausgelegt ist, l binäre Prüfbits c1, ..., cl aus den n binären Eingabewerten x1, ..., xn mit c1,...,cl = Cod(x1, ..., xn) zu bestimmen, wobei an n binären Eingängen des Codierers Cod die binären Eingabewerte x1, ..., xn eingegeben werden und an l binären Ausgängen des Codierers binäre Prüfbits c1, ..., cl ausgegeben werden, die durch die binären Eingabewerte x1, ..., xn bestimmt werden, und wobei der Codierer ausgelegt ist, die Prüfbits c1, ...cl aus den binären Eingabewerten x1, ..., xn so zu bestimmen, dass Bits y1, ... , yk, c1,....cl ein Codewort eines Fehlerkorrekturcodes C der Länge k + l mit k Datenbits und l Prüfbits bilden, derart dass jedes der binären Prüfbits in einer anderen von den Speicherzellen gespeichert wird.
  12. Schaltung nach Anspruch 11, wobei Bits y1,... ,yk = LH[BT(x1,..., xn)] über Transformationen der binären Eingabewerte x1, ..., xn durch den ersten Unterschaltkreis BT und durch den zweiten Unterschaltkreis LH bestimmt werden, wobei für j = 1, ..., l der Ausgang des Codierers Cod, der das Prüfbit cj überträgt, beim Schreiben in den Speicher an den Dateneingang der j-ten Speicherzelle angeschlossen ist, wobei der Dateneingang dieser j-ten Speicherzelle an keinen weiteren Ausgang des Codierers angeschlossen ist.
  13. Schaltung nach Anspruch 12, wobei die Schaltung ferner einen Korrektor für einen Fehlerkorrekturcode C mit l ersten binären Eingängen und k zweiten binären Eingängen aufweist, wobei für j = 1, ..., l der j-te Eingang der l ersten Eingänge des Korrektors an den Datenausgang der Speicherzelle angeschlossen ist, der beim Schreiben mit dem j-ten Ausgang des Codierers verbunden ist, sodass dann, wenn an seinem j-ten Eingang ein Fehler auftritt, der Wert c j '
    Figure DE102013222136B9_0426
    cl des möglicherweise fehlerhaften j-ten Prüfbits angewendet wird, und wenn kein Fehler auftritt, der korrigierte Wert cj des j-ten Prüfbits angewendet wird, und wobei an dem k Bit breiten zweiten Eingang des Korrektors die möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y k ' ,
    Figure DE102013222136B9_0427
    die durch den zweiten Unterschaltkreis LH ausgegeben wurden, angewendet werden und wobei der Korrektor so ausgelegt ist, dass er einen Korrekturvektor e = e1, ..., ek an seinem k Bit breiten Ausgang so ausgibt, dass y 1 ' , , y k ' = [ y 1 '   o p 1   e 1 ] , , [ y k '   o p k   e k ]
    Figure DE102013222136B9_0428
    gilt, wenn ein Fehler auftritt, der durch den Fehlerkorrekturcode C korrigiert werden kann, und wobei op1, ..., opk eindeutig umkehrbare binäre Operationen sind.
  14. Schaltung nach Anspruch 13, wobei die Schaltung ferner einen Kombinationsschaltkreis Vkn mit einem k Bit breiten ersten Eingang und einem k Bit breiten zweiten Eingang und einem k Bit breiten Ausgang aufweist, wobei der erste k Bit breite Eingang des Kombinationsschaltkreises an den k Bit breiten Ausgang des zweiten Unterschaltkreises LH angeschlossen ist, der die möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0429
    überträgt, und wobei der zweite k Bit breite Eingang des Kombinationsschaltkreises an den k Bit breiten Ausgang des Korrektors Cor angeschlossen ist, der den Korrekturvektor e = e1, ..., ek überträgt, und wobei der Kombinationsschaltkreis so ausgelegt ist, dass er an seinen k Ausgängen den korrigierten Hilfslesewert y 1 c o r r , , y k c o r r = [ y 1 '   o p 1  e 1 ] , , [ y k '   o p k   e k ]
    Figure DE102013222136B9_0430
    ausgibt, wobei op1, ..., opk eindeutig umkehrbare Operationen sind und wobei y 1 c o r r , , y k c o r r = y 1 , , y k
    Figure DE102013222136B9_0431
    gilt, wenn kein Fehler oder ein durch den Code C korrigierbarer Fehler vorliegt.
  15. Schaltung nach Anspruch 14, wobei die Schaltung ferner einen dritten Unterschaltkreis BB aufweist, der ausgelegt ist, die korrigierten binären Hilfslesewerte y 1 c o r r , , y k c o r r
    Figure DE102013222136B9_0432
    in n korrigierte binäre Datenbits x 1 c o r r , , x n c o r r = B B [ y 1 c o r r , , y k c o r r ]
    Figure DE102013222136B9_0433
    zu transformieren, wobei der dritte Unterschaltkreis BB so ausgelegt ist, dass dann, wenn y 1 c o r r , , y k c o r r = y 1 , , y k
    Figure DE102013222136B9_0434
    gilt, auch x 1 , , x n = y 1 c o r r , , y n c o r r
    Figure DE102013222136B9_0435
    gilt.
  16. Schaltung nach Anspruch 15, wobei der erste Unterschaltkreis BT, der zweite Unterschaltkreis LH und der dritte Unterschaltkreis BB so ausgelegt sind, dass die Eingabewerte x = x1, ..., xn mindestens dann wiederhergestellt werden, wenn nach den anschließenden Transformationen der Eingabewerte durch den ersten Unterschaltkreis BT, durch den zweiten Unterschaltkreis LH und durch den dritten Unterschaltkreis BB kein Fehler aufgetreten ist, und wobei BB{LH[BT(x1, ... ,xn)]} = x1,... xn gilt.
  17. Schaltung nach Anspruch 16, wobei der Codierer so ausgelegt ist, dass Prüfbits, die durch den Codierer Cor bestimmt wurden, von Werten der Adressbits einer Schreibadresse a = a1, ..., aQ abhängen, und wobei der Korrektor Cor so ausgelegt ist, dass der Korrekturvektor, der durch den Korrektor bestimmt wurde, zusätzlich von entsprechenden Werten der Adressbits einer Leseadresse abhängt.
  18. Schaltung nach Anspruch 17, wobei der Codierer zusätzlich zu n binären Eingängen für die Eingaben der binären Eingabewerte x1, ...xn ferner q binäre Eingänge für die Eingabe von q Bits A1, ..., Aq, q ≥ 1, aufweist, die aus den Adressbits der Leseadresse abgeleitet sind, wobei A1,...,Aq = F (a1,..., aQ) gilt, wobei F eine eindeutige Zuordnung der Bits A1, ..., Aq zu den Bits a1, ..., aQ der Leseadresse ist und wobei der Codierer so ausgelegt ist, dass c1, ..., cl, y1, ..., yk, A1, ..., Aq ein Codewort eines Fehlerkorrektorcodes C ist, wobei der Korrektor außer den l binären Eingängen für die Eingabe der möglicherweise fehlerhaften Prüfbits c 1 ' c l '
    Figure DE102013222136B9_0436
    und der k möglicherweise fehlerhaften Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0437
    weitere q binäre Eingänge für die Eingabe von q Bits A 1 ' , , A q '
    Figure DE102013222136B9_0438
    aufweist, die aus den Q Adressbits der Leseadresse abgeleitet sind, und wobei A 1 ' , , A q '
    Figure DE102013222136B9_0439
    gilt.
  19. Schaltung nach Anspruch 18, wobei der Korrektor außer k binären Ausgängen für die Ausgabe der Korrekturwerte e1, ..., ek für die Korrektur der Hilfslesewerte y l ' , , y k '
    Figure DE102013222136B9_0440
    ferner q binäre Ausgänge für die Ausgabe der Korrekturwerte e 1 A , , e q A
    Figure DE102013222136B9_0441
    für die Korrektur der Bits A 1 ' , , A q '
    Figure DE102013222136B9_0442
    aufweist, die aus den Adressbits der Leseadresse abgeleitet sind.
  20. Schaltung nach Anspruch 18 oder 19, wobei q = 1 ist und A1 = F(a1,..., aQ) = a1 ⊕ ... ⊕ aQ die Parität der Leseadresse und A 1 ' = F ( a 1 ' , , a Q ' ) = a 1 ' a Q '
    Figure DE102013222136B9_0443
    die Parität der Schreibadresse ist.
  21. Schaltung nach einem der Ansprüche 18 bis 20, wobei q = Q, A1, ..., AQ = a1, ..., aq und A 1 ' , , A Q ' = a 1 ' , , a q '
    Figure DE102013222136B9_0444
    ist.
  22. Schaltung nach einem der Ansprüche 19 bis 21, wobei die Ausgänge des Korrektors, welche die Korrekturwert e 1 A , e q A
    Figure DE102013222136B9_0445
    übertragen, in q Eingänge eines Fehlererkennungsschaltkreises eingegeben werden, der dann, wenn der Korrekturwert e 1 A , , e q A
    Figure DE102013222136B9_0446
    einer Adresskorrektur entspricht, an seinem Ausgang einen Adressfehler anzeigt.
  23. Schaltung nach Anspruch 22, wobei der Fehlererkennungsschaltkreis einen NOR-Schaltkreis mit q Eingängen aufweist, in denen die q Eingaben mit den q Korrekturwerten e 1 A , , e q A
    Figure DE102013222136B9_0447
    von den Ausgängen des Korrektors verbunden sind.
  24. Schaltung nach einem der Ansprüche 16 bis 23, wobei der Code C ein linearer Code ist.
  25. Schaltung nach einem der Ansprüche 16 bis 24, wobei der Korrektor einen in Reihe geschalteten Schaltkreis eines Syndromgenerators und eines Decoders aufweist.
  26. Schaltung nach einem der Ansprüche 17 bis 25, wobei der Korrektor eine Reihenschaltung eines Syndromgenerators und eines Decoders aufweist und der Syndromgenerator an einen Adressfehlerbestimmer angeschlossen ist, der ein Signal „Adressfehler“ ausgibt, wenn das Fehlersyndrom, das durch den Syndromgenerator bestimmt wurde, einem Adressfehler entspricht.
  27. Schaltung nach einem der Ansprüche 16 bis 26, wobei für j = 1, ..., l der j-te Ausgang des Codierers, wobei das Prüfbit cj an den Eingang eines vierten Unterschaltkreises btj für die Transformation eines binären Wertes cj in einen ternären Wert c j t e r
    Figure DE102013222136B9_0448
    angeschlossen ist, in welchem der Ausgang beim Schreiben an den Dateneingang einer Speicherzelle zum Speichern des ternären Wertes c j t e r
    Figure DE102013222136B9_0449
    angeschlossen ist, und wobei beim Schreiben der Datenausgang der ternären Speicherzelle zum Speichern des ternären Wertes c j t e r
    Figure DE102013222136B9_0450
    an den Eingang eines fünften Unterschaltkreises tbj für die Transformation eines ternären Wertes c j t e r '
    Figure DE102013222136B9_0451
    in einen binären Wert c j '
    Figure DE102013222136B9_0452
    angeschlossen ist, in welchem der Ausgang an die entsprechenden Eingänge des Korrektors angeschlossen ist, wobei tbj[btj(cj)]= cj gilt.
  28. Schaltung nach Anspruch 27, wobei der binäre Wert 0 durch den vierten Unterschaltkreis btj in einen minimalen ternären Wert transformiert wird und wobei der Wert 1 durch den vierten Unterschaltkreis btj in einen maximalen ternären Wert transformiert wird.
  29. Schaltung nach Anspruch 27 oder 28, wobei der binäre Wert 0 durch den vierten Unterschaltkreis btj in einen maximalen ternären Wert transformiert wird und wobei der Wert 1 durch den vierten Unterschaltkreis btj in einen minimalen ternären Wert transformiert wird.
  30. Schaltung nach einem der Ansprüche 16 bis 29, wobei der j-te Ausgang des Codierers für mindestens ein j ∈ {1, ..., l} beim Schreiben direkt an den Dateneingang einer Speicherzelle angeschlossen ist, um einen binären Wert cj zu speichern, und wobei beim Lesen der Datenausgang der Speicherzelle, die zum Speichern des binären Wertes cj verwendet wird, direkt an den entsprechenden Eingang des Korrektors angeschlossen ist.
  31. Schaltung nach einem der Ansprüche 16 bis 30, wobei der Code C ein linearer Code mit einer Generatormatrix G = (l, P) ist und der Codierer so ausgelegt ist, dass die Prüfbits c = c1, ..., cl gemäß der Beziehung c = c 1 , , c l = ' ( L H [ B T ( x 1 , , x n ) ] ) P = ( y 1 , , y k ) P
    Figure DE102013222136B9_0453
    bestimmt werden, wobei G eine (k, k + l)-Matrix, l eine k-dimensionale Einheitsmatrix und P eine (k, l)-Paritätsmatrix ist, wenn die Adressbits nicht in die Fehlerkorrektur oder Fehlererkennung einbezogen sind, wobei k die Anzahl der binären Hilfslesewerte anzeigt, wobei l die Anzahl der Prüfbits anzeigt.
  32. Schaltung nach einem der Ansprüche 16 bis 31, wobei der Code C ein linearer Code mit einer Generatormatrix G = (I, P) ist und der Codierer so ausgeführt ist, dass die Prüfbits c = c1, ..., cl gemäß der Beziehung c = c 1 , , c l = { L H [ B T ( x 1 , , x n ) ] , A 1 , , A q } P = ( y 1 , , y k , A 1 , , A q ) P
    Figure DE102013222136B9_0454
    bestimmt werden, wobei G eine (k + q, k + q + l)-Matrix, l eine (k + q)-Einheitsmatrix und P eine (k + q, l)-Paritätsmatrix ist, wenn die Adressbits über die Bits A1, ..., Aq, die aus den Adressbits a1, ..., aQ abgeleitet sind, zur Fehlererkennung verwendet werden, wobei k die Anzahl der binären Hilfslesewerte anzeigt, wobei l die Anzahl der Prüfbits anzeigt und wobei q die Anzahl der Bits A1, ..., Aq anzeigt, die aus den Adressbits a1, ..., aQ abgeleitet sind.
  33. Schaltung nach einem der Ansprüche 16 bis 32, wobei der erste Unterschaltkreis BT 11 für die Transformation der Eingabewerte x1, ..., xn in die Ausgabewerte z1, ..., zm, zm+1, ..., zM eine Reihenschaltung eines sechsten Unterschaltkreises BBS für die Transformation der Eingabewerte x1, ..., xn in k binäre Hilfsschreibwerte y 1 s , , y k s
    Figure DE102013222136B9_0455
    und eines siebenten Unterschaltkreises BTS für die Transformation der binären Hilfsschreibwerte y 1 s , , y k s
    Figure DE102013222136B9_0456
    in die Ausgabewerte z1, ..., zm, zm+1, ..., zM des Schaltkreises BT ist.
  34. Schaltung nach Anspruch 33, wobei der sechste Unterschaltkreis BBS so ausgeführt ist, dass die Hilfsschreibwerte y 1 s , , y k s ,
    Figure DE102013222136B9_0457
    die durch den sechsten Unterschaltkreis BBS bestimmt wurden, gleich den fehlerfreien Hilfslesewerten y1, ..., yk sind, die durch die Unterschaltkreise BB und LH bestimmt wurden, und der Codierer so ausgeführt ist, dass er die Prüfbits c1, ..., cl unter Verwendung der Hilfsschreibwerte bestimmt, die durch den Unterschaltkreis BBS ausgegeben wurden.
  35. Schaltung nach einem der Ansprüche 31 bis 34, wobei der Codierer so ausgeführt ist, dass die Prüfbits c = c1, ..., cl gemäß der Beziehung c = c l , , c l = B B S ( x 1 , , x n ) P = ( y 1 s , , y k s ) P ,
    Figure DE102013222136B9_0458
    bestimmt werden, wobei P die (k, l)-Paritätsmatrix des Fehlerkorrekturcodes ist.
  36. Schaltung nach einem der Ansprüche 32 bis 35, wobei der Codierer so ausgelegt ist, dass die Prüfbits c = c1, ..., cl gemäß der Beziehung c = c 1 , , c l = { B B S ( x 1 , , x n ) , A 1 , , A q } P = ( y 1 s , , y k s , A 1 , , A q ) P
    Figure DE102013222136B9_0459
    bestimmt werden, wobei P eine (k + q, l)-Paritätsmatrix ist, wenn die Adressbits über die Bits A1, ..., Aq, die aus den Adressbits a1, ..., aQ abgeleitet sind, für die Fehlererkennung verwendet werden.
  37. Schaltung nach einem der Ansprüche 16 bis 36, wobei der zweite Unterschaltkreis LH zur Bestimmung binärer Hilfslesewerte y 1 ' , , y k ' = L H ( z 1 ' , , z M ' )
    Figure DE102013222136B9_0460
    aus den Zustandswerten z 1 ' , z M ' ,
    Figure DE102013222136B9_0461
    die aus dem Speicher gelesen wurden, so ausgelegt ist, dass jeder ternären Zustandskomponente z 1 ' ,
    Figure DE102013222136B9_0462
    i = 1, ..., m komponentenweise mindestens zwei binäre Hilfslesewerte zugeordnet werden und jeder binären Zustandskomponente zm+1, ..., zM mindestens ein binärer Hilfslesewert zugeordnet wird, und so dass k ≥ m + M gilt.
  38. Schaltung zum Speichern binärer Daten x1, ..., xn und zur Fehlerkorrektur mit einem binären Code C, wobei die Schaltung aufweist: eine ternäre Speicherschaltung, die einen ternären Speicher Sp mit ternären Speicherzellen aufweist, wobei die ternäre Speicherschaltung derart ausgelegt ist, dass binäre Daten x1, ... xn als codierte ternäre Zustände z1, ..., zM an einer Schreibadresse a1, ..., aQ in eine oder mehrere erste Speicherzellen von den Speicherzellen des ternären Speichers geschrieben werden können, wobei die ersten Speicherzellen von den Speicherzellen des ternären Speichers eingerichtet sind, einen von drei verschiedenen Zuständen anzunehmen, einen Codierer, der ausgelegt ist, binäre Prüfbits c1, ..., cl in zweite Speicherzellen von den Speicherzellen des ternären Speichers zu schreiben, wobei der Codierer 12h ausgelegt ist, die binären Prüfbits c1, ..., cl an einer Schreibadresse a1, ..., aQ zu schreiben, die mit den Datenbits x1, ..., xn verbunden ist, wenn die binären Prüfbits c1, ..., cl Prüfbits der Datenbits x1, ..., xn sind und wenn die Datenbits x1, ..., xn an der Schreibadresse a1, ..., aQ geschrieben werden, wobei die ternäre Speicherschaltung ausgelegt ist, Zustandswerte z 1 ' , , z M '
    Figure DE102013222136B9_0463
    auszugeben, wenn an einer Leseadresse a 1 ' , , a Q '
    Figure DE102013222136B9_0464
    der Speicherzellen des ternären Speichers gelesen wird, wobei die Speicherzellen eingerichtet sind, drei verschiedene Werte anzunehmen, und die Zustandswerte z 1 ' , , z M '
    Figure DE102013222136B9_0465
    in möglicherweise fehlerhafte binäre Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0466
    zu transformieren, und wobei die ternäre Speicherschaltung ausgelegt ist, beim Lesen an einer Leseadresse a 1 ' , , a Q '
    Figure DE102013222136B9_0467
    der Speicherzellen des ternären Speichers möglicherweise fehlerhafte Prüfbits c 1 ' c l '
    Figure DE102013222136B9_0468
    auszugeben, und wobei die ternäre Speicherschaltung ausgelegt ist, fehlerfreie Hilfslesewerte y1, ..., yk und fehlerfreie Prüfbits c1, ..., cl auszugeben, wenn die Schreibadresse gleich der Leseadresse ist und wenn kein Fehler vorliegt, wobei der Codierer Cod einen ersten n Bit breiten ersten Eingang für die Eingabe von Datenbits x1, ..., xn und einen weiteren q Bit breiten Eingang für die Eingabe von Bits A1, ..., Aq und einen l Bit breiten Ausgang für die Ausgabe von Prüfbits c1, ..., cl aufweist, wobei die Bits A1, ..., Aq von den Bits der Schreibadresse a1, ..., aQ abhängen, wobei die Datenbits x1, ..., xn und die entsprechenden Prüfbits an die Schreibadresse a1, ..., aQ geschrieben werden und wobei der Codierer derart ausgelegt ist, dass die Prüfbits c1, ..., cl aus den Datenbits x1, ..., xn und den Bits A1, ..., Aq so bestimmt werden, dass y 1 , , y k , A 1 , , A q , c 1 , , c l
    Figure DE102013222136B9_0469
    ein Codewort des Fehlerkorrekturcodes C ist, und wobei die Bits A1, ..., Aq eindeutig aus den Bits der Schreibadresse a1, .., aQ bestimmt werden, sodass die Bits A1, ..., Aq Ausgabewerte einer Kombinationsschaltung Fs mit Q binären Eingängen und q binären Ausgängen ist, wenn die Schreibadresse a1, ..., aQ in die Eingänge der Schaltung eingegeben wird, wobei q ≤ Q gilt.
  39. Schaltung nach Anspruch 38, wobei q = Q, und wobei a1, ..., aQ = A1, ..., AQ ist.
  40. Schaltung nach Anspruch 38 oder 39, wobei A1 = a1 ⊕ ... ⊕ aQ ist.
  41. Schaltung nach einem der Ansprüche 38 bis 40, wobei der Code C ein linearer Code ist.
  42. Schaltung nach einem der Ansprüche 39 bis 41, wobei der Code C ein linearer Code ist.
  43. Schaltung nach einem der Ansprüche 40 bis 42, wobei der Code C ein linearer Code ist.
  44. Schaltung nach einem der Ansprüche 38 bis 43, wobei der Code C ein linearer Code mit einer Generatormatrix G = (l, P) ist und wobei l eine (k + q)-Einheitsmatrix ist und wobei P eine [(k + q), l]-Paritätsmatrix ist und wobei die Prüfbits c1, ..., cl festgelegt sind durch c 1 , , c l = ( y 1 , , y k , A a , , A Q ) P .
    Figure DE102013222136B9_0470
  45. Verfahren, umfassend: Erzeugen von mehreren Ausgabewerten auf der Basis einer Folge von binären Werten, wobei jeder von den mehreren Ausgabewerten einen von mindestens drei verschiedenen Basiswerten aufweist, Speichern eines jeden der Ausgabewerte als ein Zustandswert in einer anderen von einer oder mehreren Speicherzellen der mehreren Speicherzellen eines Speichers, wobei die eine oder die mehreren Speicherzellen, in denen die Ausgabewerte gespeichert werden, jeweils geeignet sind, einen von den mindestens drei verschiedenen Zuständen anzunehmen, Lesen eines oder mehrerer von den Zustandswerten aus mindestens einer der Speicherzellen, die ausgelegt sind, einen der mindestens drei verschiedenen Zustände anzunehmen, wobei jeder von dem einen oder den mehreren Zustandswerten einen von den mindestens drei verschiedenen Basiswerten aufweist, wobei die binären Hilfslesewerte auf der Basis des einen oder der mehreren Zustandswerte bestimmt werden, Erzeugen eines oder mehrerer binärer Prüfbits, sodass die binären Hilfslesewerte und das eine oder die mehreren binären Prüfbits zusammen eines der Codewörter des Fehlerkorrekturcodes bilden, wenn die binären Hilfslesewerte y 1 ' , , y k '
    Figure DE102013222136B9_0471
    und das eine oder die mehreren Prüfbits c1,...,cl fehlerfrei sind, und Speichern eines jeden von dem einen oder den mehreren erzeugten Prüfbits in einer oder mehreren der Speicherzellen des Speichers derart, dass jedes von dem einen oder den mehreren Prüfbits in einer anderen der Speicherzellen des Speichers gespeichert wird, wobei jede der Speicherzellen, in der ein Prüfbit gespeichert ist, ausgelegt ist, einen von mindestens zwei verschiedenen Zuständen anzunehmen.
DE102013222136.3A 2012-10-31 2013-10-30 Schaltung und Verfahren für die Mehr-Bit-Korrektur Active DE102013222136B9 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/664,495 US8935590B2 (en) 2012-10-31 2012-10-31 Circuitry and method for multi-bit correction
US13/664,495 2012-10-31

Publications (3)

Publication Number Publication Date
DE102013222136A1 DE102013222136A1 (de) 2014-04-30
DE102013222136B4 DE102013222136B4 (de) 2019-11-28
DE102013222136B9 true DE102013222136B9 (de) 2020-04-23

Family

ID=50479942

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013222136.3A Active DE102013222136B9 (de) 2012-10-31 2013-10-30 Schaltung und Verfahren für die Mehr-Bit-Korrektur

Country Status (3)

Country Link
US (1) US8935590B2 (de)
CN (1) CN103793289B (de)
DE (1) DE102013222136B9 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009041785A2 (en) 2007-09-28 2009-04-02 Lg Electronics Inc. Method for detecting control information in wireless communication system
US9203437B2 (en) 2012-12-19 2015-12-01 Infineon Technologies Ag Circuitry and method for correcting 3-bit errors containing adjacent 2-bit error
JP6600146B2 (ja) * 2015-03-27 2019-10-30 ルネサスエレクトロニクス株式会社 データ処理回路及びエラー訂正方法
US9450609B1 (en) * 2015-03-31 2016-09-20 Altera Corporation Methods and apparatus for embedding an error correction code in memory cells
DE102016115272A1 (de) 2016-08-17 2018-02-22 Infineon Technologies Ag Speicher mit unterschiedlichen zuverlässigkeiten

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245168A1 (en) * 2004-06-14 2007-10-18 Renesas Technology Corporation Associative memory capable of searching for data while keeping high data reliability
US20090003041A1 (en) * 2007-06-27 2009-01-01 Elpida Memory, Inc. Semiconductor memory device and read method thereof
US20120079343A1 (en) * 2010-09-29 2012-03-29 Infineon Technologies Ag Apparatus and method for determination of a position of a 1 bit error in a coded bit sequence, apparatus and method for correction of a 1-bit error in a coded bit sequence and decoder and method for decoding an incorrect, coded bit sequence

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4415992A (en) * 1981-02-25 1983-11-15 Motorola, Inc. Memory system having memory cells capable of storing more than two states
JPS6342099A (ja) * 1986-08-06 1988-02-23 Fujitsu Ltd 3値レベルrom
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
US5163021A (en) * 1989-04-13 1992-11-10 Sundisk Corporation Multi-state EEprom read and write circuits and techniques
US5432735A (en) * 1993-07-08 1995-07-11 Dellusa, L.P. Ternary storage dynamic RAM
JP3999822B2 (ja) * 1993-12-28 2007-10-31 株式会社東芝 記憶システム
JPH09288895A (ja) * 1996-04-19 1997-11-04 Toshiba Corp 3値記憶半導体記憶システム
JP2001093289A (ja) * 1999-09-24 2001-04-06 Nec Corp 多段階読み出し回路および多段階読み出し方法
US6597595B1 (en) * 2001-08-03 2003-07-22 Netlogic Microsystems, Inc. Content addressable memory with error detection signaling
US6781856B2 (en) * 2001-09-25 2004-08-24 Micron Technology, Inc. Tertiary CAM cell
US6978343B1 (en) 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
DE102004006456A1 (de) * 2003-04-15 2004-11-11 Samsung Electronics Co., Ltd., Suwon Integrierte Schaltung und zugehöriges Schnittstellenverfahren
JP4177824B2 (ja) * 2005-03-16 2008-11-05 株式会社東芝 符号化方法、復号化方法および符号化システム
CN101938433A (zh) * 2009-07-03 2011-01-05 南京壹进制信息技术有限公司 高效有线通讯方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245168A1 (en) * 2004-06-14 2007-10-18 Renesas Technology Corporation Associative memory capable of searching for data while keeping high data reliability
US20090003041A1 (en) * 2007-06-27 2009-01-01 Elpida Memory, Inc. Semiconductor memory device and read method thereof
US20120079343A1 (en) * 2010-09-29 2012-03-29 Infineon Technologies Ag Apparatus and method for determination of a position of a 1 bit error in a coded bit sequence, apparatus and method for correction of a 1-bit error in a coded bit sequence and decoder and method for decoding an incorrect, coded bit sequence

Also Published As

Publication number Publication date
US8935590B2 (en) 2015-01-13
DE102013222136B4 (de) 2019-11-28
DE102013222136A1 (de) 2014-04-30
CN103793289A (zh) 2014-05-14
CN103793289B (zh) 2017-04-12
US20140122967A1 (en) 2014-05-01

Similar Documents

Publication Publication Date Title
DE102015201384A1 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102013222136B9 (de) Schaltung und Verfahren für die Mehr-Bit-Korrektur
DE2260850C2 (de) Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern
DE102013007692A1 (de) Verfahren und Vorrichtung zur Korrektur ternär gespeicherter binärer Daten
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE112007003080T5 (de) Verfahren, System und Vorrichtung für den ECC-Schutz von kleinen Datenstrukturen
DE2060643A1 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE102017125617B4 (de) Bestimmung und Verwendung von Bytefehlerpostionssignalen
DE102011085602A1 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
DE102005022107B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102016102590B4 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE102018124836A1 (de) Neuartiger speicherbaustein
DE102013109315B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE102018131613A1 (de) Fehlererkennung mittels Gruppenfehler
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102019113970B4 (de) Erkennung von adressfehlern
DE102010041680A1 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz
DE102013016694A1 (de) Codieren und Decodieren redundanter Bits zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE102018126685B3 (de) Verarbeitung von Daten
DE102020100541A1 (de) Bestimmung eines resultierenden datenworts beim zugriff auf einen speicher
DE102010006876B4 (de) Verfahren und Vorrichtung zur Kodierung von Daten
DE102014114251B4 (de) Referenzwerte für Speicherzellen

Legal Events

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