DE102012105159A1 - Fehlertolerante Speicher - Google Patents

Fehlertolerante Speicher Download PDF

Info

Publication number
DE102012105159A1
DE102012105159A1 DE102012105159A DE102012105159A DE102012105159A1 DE 102012105159 A1 DE102012105159 A1 DE 102012105159A1 DE 102012105159 A DE102012105159 A DE 102012105159A DE 102012105159 A DE102012105159 A DE 102012105159A DE 102012105159 A1 DE102012105159 A1 DE 102012105159A1
Authority
DE
Germany
Prior art keywords
output
memory
input
value
memory element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102012105159A
Other languages
English (en)
Other versions
DE102012105159B4 (de
Inventor
Egor Sogomonyan
Georg Georgakos
Michael Gössel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102012105159.3A priority Critical patent/DE102012105159B4/de
Priority to US13/914,073 priority patent/US9424124B2/en
Priority to CN201310236833.3A priority patent/CN103514962B/zh
Publication of DE102012105159A1 publication Critical patent/DE102012105159A1/de
Application granted granted Critical
Publication of DE102012105159B4 publication Critical patent/DE102012105159B4/de
Expired - Fee Related 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/0033Radiation hardening
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/23Majority or minority circuits, i.e. giving output having the state of the majority or the minority of the inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es werden Verfahren und Vorrichtungen bereitgestellt, welche sich auf fehlertolerante Speicher beziehen. Bei einem Ausführungsbeispiel werden Ausgangssignale von mindestens drei Speichereinrichtungen (20–22) einer Fehlerkorrektureinrichtung (23) zugeführt. Die Fehlerkorrektureinrichtung (23) gibt einen korrigierten Datenwert derart aus, dass, wenn die ausgelesenen Datenwerte übereinstimmen, dieser ausgegeben wird, und bei mindestens einem Zustand, in dem die Datenwerte nicht übereinstimmen, ein vorher ausgegebener Datenwert beibehalten wird.

Description

  • Die vorliegende Erfindung bezieht sich auf fehlertolerante Speicherelementanordnungen, Speichervorrichtungen, welche derartige Speicherelementanordnungen enthalten, und entsprechende Verfahren.
  • Speichervorrichtungen dienen in elektronischen Geräten zur Speicherung von Daten, beispielsweise Programmen oder Nutzerdaten. Derartige Speichervorrichtungen umfassen typischerweise eine Vielzahl von Speicherelementen, beispielsweise mehrere Millionen Speicherelemente, auch als Speicherzellen bezeichnet, in welchen typischerweise jeweils ein Bit gespeichert wird.
  • Verschiedene Ereignisse, beispielsweise ein Einfluss kosmischer Strahlung oder anderen Arten von Röntgenstrahlung oder ionisierender Strahlung, können die in derartigen Speicherelementen gespeicherten Daten verändern, was zu Fehlfunktionen führen kann. Diese Art von Fehlern wird im Folgenden als Strahlungsfehler bezeichnet.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, Speicherelementanordnungen, Speichervorrichtungen mit derartigen Speicherelementanordnungen und entsprechende Verfahren bereitzustellen, welche gegenüber derartigen Fehlern tolerant sind.
  • Erfindungsgemäß wird eine Speicherelementanordnung nach Anspruch 1, eine Speichervorrichtung nach Anspruch 18 sowie ein Verfahren nach Anspruch 19 bereitgestellt. Die Unteransprüche definieren weitere Ausführungsbeispiele.
  • Gemäß einem Ausführungsbeispiel wird eine Speicherelementanordnung zum Speichern eines Datenwertes bereitgestellt, umfassend:
    mindestens drei Speicherelemente,
    einen Dateneingang zum Schreiben des Datenwertes in jedes der mindestens drei Speicherelemente, und
    eine Fehlerkorrekturschaltung mit Eingängen und einem Ausgang,
    wobei ein Ausgang jedes der mindestens drei Speicherelemente mit einem der Eingänge der Fehlerkorrekturschaltung gekoppelt ist,
    wobei die Fehlerkorrekturschaltung eingerichtet ist, wenn alle der mindestens drei Speicherelemente den gleichen Wert an ihrem Ausgang ausgeben, diesen Wert am Ausgang der Fehlerkorrekturschaltung bereitzustellen, und bei mindestens einem Zustand, bei welchem die mindestens drei Speicherelemente mindestens zwei verschiedene Werte an ihren Ausgängen bereitstellen, einen vorher von der Fehlerkorrekturschaltung ausgegebenen Wert beizubehalten.
  • Bei manchen derartigen Ausführungsbeispielen können zumindest manche Fälle korrigiert werden, bei welchen mehr als die Hälfte der mindestens drei Speicherelemente einen Fehler aufweist.
  • Bei anderen Ausführungsbeispielen werden entsprechende Verfahren oder Speichervorrichtungen mit derartigen Speicherelementanordnungen bereitgestellt.
  • Weitere Ausführungsbeispiele der Erfindung werden nachfolgend unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Schemadiagramm einer Speicherelementanordnung gemäß einem Ausführungsbeispiel,
  • 2 ein Flussdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel,
  • 3 ein Blockdiagramm einer Speicherelementanordnung gemäß einem Ausführungsbeispiel,
  • 4 ein Logikdiagramm eines bei Ausführungsbeispielen der Erfindung verwendbaren Korrekturelements,
  • 5 eine Speicherelementanordnung gemäß einem Ausführungsbeispiel,
  • 6a eine Speicherelementanordnung gemäß einem Ausführungsbeispiel,
  • 6b eine Abwandlung der Speicherelementanordnung der 6a,
  • 6c ein Diagramm zur Veranschaulichung der Funktionsweise der Speicherelementanordnung der 6b,
  • 7a eine Speicherelementanordnung gemäß einem Ausführungsbeispiel,
  • 7b eine Abwandlung des Ausführungsbeispiels der 6a,
  • 7c eine weitere Abwandlung des Ausführungsbeispiels der 7a,
  • 7d ein Diagramm zur Veranschaulichung der Funktionsweise des Ausführungsbeispiels der 7c,
  • 8 eine Speicherelementanordnung gemäß einem Ausführungsbeispiel,
  • 9 eine Speicherelementanordnung gemäß einem Ausführungsbeispiel, und
  • 10 eine Speichervorrichtung gemäß einem Ausführungsbeispiel.
  • Im Folgenden werden Ausführungsbeispiele der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert. Es ist zu bemerken, dass diese Ausführungsbeispiele lediglich als Beispiel zu verstehen sind und nicht als den Bereich der Erfindung einschränkend auszulegen sind.
  • Merkmale verschiedener Ausführungsbeispiele können miteinander kombiniert werden, sofern nicht explizit etwas anderes angegeben ist, um so neue Ausführungsbeispiele zu bilden. Auf der anderen Seite ist eine Beschreibung eines Ausführungsbeispiels mit einer Vielzahl von Merkmalen nicht dahingehend auszulegen, dass alle diese Merkmale zur Ausführung der Erfindung notwendig sind, da andere Ausführungsbeispiele weniger Merkmale und/oder alternative Merkmale aufweisen können.
  • Im Folgenden werden verschiedene Ausführungsbeispiele von Speicherelementanordnungen beschrieben. Unter einer Speicherelementanordnung ist dabei generell eine Anordnung zu verstehen, welche zur Speicherung eines Datenwertes dient. Als Beispiel für einen Datenwert wird bei vielen der nachfolgend beschriebenen Ausführungsbeispiele ein 1-Bit-Datenwert verwendet, also beispielsweise ein Datenwert, welcher eine logische 0 oder eine logische 1 repräsentieren kann. Grundsätzlich können Ausführungsbeispiele der Erfindung jedoch auch auf Speicherelementanordnungen angewendet werden, bei welchen in einem Speicherelement mehr als ein Bit, beispielsweise ein 2-Bit-Wert, gespeichert wird.
  • Aus einer Vielzahl derartiger Speicherelementanordnungen kann eine Speichervorrichtung aufgebaut werden, in welcher Daten gespeichert werden können. Die Kapazität der Speichervorrichtung hängt dabei von der Anzahl der Speicherelementanordnungen ab.
  • Wie im Folgenden erläutert werden wird, weisen Speicherelementanordnungen gemäß Ausführungsbeispielen häufig eine Vielzahl von, insbesondere drei oder mehr, Speicherelemente auf, in welchen der Datenwert jeweils gespeichert werden kann. Derartige Speicherelemente können in jeglicher herkömmlicher Weise implementiert sein, beispielsweise als Latch, Flipflop, Register oder einer anderen Art bistabiler Schaltung.
  • In 1 ist ein Blockdiagramm eines Ausführungsbeispiels der Erfindung dargestellt. Die Speicherelementanordnung der 1 umfasst drei oder mehr Speicherelemente 20, 21 und 22. Die Anzahl von drei dargestellten Speicherelementen 2022 ist dabei lediglich als Beispiel zu verstehen, und es können wie durch Punkte angedeutet auch mehr als drei Speicherelemente vorgesehen sein.
  • Über einen Eingang 24 der Speicherelementanordnung kann ein Datenwert x, beispielsweise ein 1-Bit-Wert, in jedes der Speicherelemente 2022 geschrieben werden. Die aus den Speicherelementen 2022 ausgelesenen Werte werden als y1, y2, y3 bezeichnet.
  • Bei einer fehlerfreien Speicherung des Wertes x stimmen alle Werte y1–y3 dabei mit dem zuvor geschriebenen Wert x überein.
  • Die aus den Speicherelementen 2022 ausgelesenen Werte y1–y3 werden einer Fehlerkorrektureinrichtung 23 zugeführt, welche in Abhängigkeit von den Werten y1–y3 einen Wert y ausgibt.
  • Die Fehlerkorrektureinrichtung 23 ist dabei bei dem Ausführungsbeispiel der 1 derart eingerichtet, dass sie, wenn die Werte y1–y3 alle übereinstimmen (beispielsweise bei einem 1-Bit-Wert alle logisch 0 oder logisch 1 sind), diesen übereinstimmenden Wert als Ausgabewert y ausgeben. Des Weiteren ist die Fehlerkorrektureinrichtung 23 eingerichtet, in mindestens einem Zustand, in welchem die Werte y1–y3 nicht übereinstimmen (beispielsweise einem Zustand, in dem y1 nicht mit y2 und y3 übereinstimmt), einen vorher ausgegebenen Wert als Wert y ausgibt. Der vorher ausgegebene Wert kann beispielsweise ein in einem vorherigen Taktzyklus ausgegebener Wert oder in einem vorherigen Teil des Taktzyklus ausgegebener Wert sein. Beispielsweise können die Speicherelemente 2022 in einer ersten Hälfte jedes Taktzyklus und in einer zweiten Hälfte eines Taktzyklus ausgelesen werden, beispielsweise bei einer ansteigenden und bei einer abfallenden Flanke eines Taktsignals, und beim Auftreten des Zustands in der zweiten Hälfte des Taktzyklus kann der in der ersten Hälfte des Taktzyklus ausgegebene Wert y weiter ausgegeben werden.
  • Auf diese Weise kann eine Fehlerkorrektur bei manchen Ausführungsbeispielen auch dann erreicht werden, wenn beispielsweise mehr als die Hälfte der Speicherelemente 2022 von einem Fehler betroffen ist.
  • Zu bemerken ist, dass es bei manchen Ausführungsbeispielen auch zusätzlich ein oder mehrere Zustände geben kann, bei welchen, wenn die Werte y1–y3 nicht alle übereinstimmen, ein aus den Werten y1–y3 ermittelter Wert als Wert y ausgegeben wird. Hierzu können insbesondere Ausgänge zweier Speicherelemente mit einer logischen Verknüpfung wie einer logischen AND-Verknüpfung verknüpft werden. Entsprechende Ausführungsbeispiele für die obigen Fälle werden später näher erläutert.
  • Ein Ausführungsbeispiel eines entsprechenden Verfahrens ist in 2 dargestellt. Das Verfahren der 2 kann insbesondere in der Speicherelementanordnung der 1 implementiert sein, kann jedoch auch unabhängig hiervon verwendet werden.
  • Bei 30 wird ein Datenwert, beispielsweise ein 1-Bit-Wert, in mindestens drei Speicherelemente geschrieben. Bei 31 werden dann entsprechende Datenwerte aus den mindestens drei Speicherelementen ausgelesen, welche bei Nichtvorliegen eines Fehlers jeweils mit dem geschriebenen Datenwert übereinstimmen.
  • Bei 32 wird ein korrigierter Datenwert derart ausgegeben, dass, wenn die ausgelesenen Datenwerte übereinstimmen, dieser übereinstimmende Datenwert ausgegeben wird, und bei mindestens einem Zustand, in dem die Datenwerte nicht übereinstimmen, ein vorher ausgegebener Datenwert ausgegeben wird, beispielsweise wie oben erläutert ein in einer vorherigen Hälfte eines Taktzyklus ausgegebener Datenwert oder ein in einem vorherigen Taktzyklus ausgegebener Datenwert.
  • Im Folgenden werden unter Bezugnahme auf die 39 verschiedene Möglichkeiten der Realisierung der Fehlerkorrektureinrichtung 23 der 1 und der Implementierung des Verfahrens der 2 näher erläutert.
  • In 3 ist eine Speicherelementanordnung gemäß einem weiteren Ausführungsbeispiel der Erfindung dargestellt. Die Speicherelementanordnung der 3 umfasst N = n Speicherelemente 41, 42, ..., 4n, wobei bei dem dargestellten Ausführungsbeispiel n > 3 ist. Wie bereits unter Bezugnahme auf 1 erläutert kann in die Speicherelemente 41, 42, ..., 4n ein Datenwert x, beispielsweise ein 1-Bit-Wert, gespeichert werden. Die aus den Speicherelemente 41, 42, ..., 4n ausgegebenen Werte sind mit y1, y2, ..., yn bezeichnet und werden bei dem Ausführungsbeispiel der 3 einem n-Input-Korrekturelement 410 zugeführt, welches als Fehlerkorrektureinrichtung dient und in Abhängigkeit von den Werten y1, y2, ..., yn einen Wert y ausgibt. Unter einem n-Input-Korrekturelement ist im Rahmen dieser Anmeldung ein Element zu verstehen, welches n Eingänge zur Eingabe von zu korrigierenden Daten aufweist. Wenn im Folgenden auf Eingänge eines n-Input-Korrekturelements Bezug genommen wird, sind stets diese Eingänge zur Eingabe von Daten, beispielsweise von aus Speicherelementen ausgelesenen Daten, gemeint. Weitere Eingänge, welche anderen Zwecken dienen, beispielsweise zum Zuführen einer Versorgungsspannung, beispielsweise von VDD und Masse im Fall einer CMOS-Implementierung, können zusätzlich vorhanden sein und werden nicht explizit beschrieben. Falls die an allen n Eingängen zugeführten Werte übereinstimmen, wird dieser übereinstimmende Datenwert als Wert y am Ausgang ausgegeben. Sind unter den eingegebenen Datenwerten mindestens zwei unterschiedliche Werte, wird hingegen ein vorhergehender Wert, d.h. ein vorher ausgegebener Wert, ausgegeben, wie oben erläutert.
  • Die Funktionsweise des n-Input-Korrekturelementes ist im Folgenden dargestellt.
    y1 y2 ... y(n – 1) yn y
    0 0 ... 0 0 0
    0 0 ... 0 1 vorhergehender Wert
    0 0 ... 1 0 vorhergehender Wert
    . . . . . . . . . . . . . . . vorhergehender Wert
    1 1 ... 1 0 vorhergehender Wert
    1 1 ... 1 1 1
  • Das n-Input-Korrekturelement gibt bei Eingabe von y1 = y2 = ... = yn = 0 den Wert y = 0 und bei Eingabe von y1 = y2 = ... = yn = 1 den Wert y = 1 aus. In allen anderen Fällen gibt das n-Input-Korrekturelement den vorhergehenden Wert aus.
  • Die Speicherelementanordnung des Ausführungsbeispiels der 3 erlaubt es, bis zu n – 1 flüchtige Fehler, die sich z.B. in einer zweiten Takthälfte auf die Ausgabe von bis zu n – 1 der Speicherelemente auswirken, zu korrigieren. Flüchtige Fehler sind dabei Fehler, die sich auf einen momentan gespeicherten Wert auswirken, jedoch die grundsätzliche Funktionsfähigkeit der betroffenen Speicherelemente nicht beeinträchtigen.
  • Gilt z.B. in der ersten Takthälfte y1 = y2 = ... = yn = 1, dann ist in dieser Takthälfte y = 1. Sind nun in der zweiten Takthälfte, etwa infolge eines Strahlungsfehlers, höchstens n – 1 Speicherelemente in den Wert 0 gestört, dann wird auch in der zweiten Takthälfte der korrigierte Wert y = 1 ausgegeben, obwohl bis zu n – 1 Speicherelemente in der zweiten Takthälfte einen fehlerhaften Wert annehmen.
  • Eine mögliche Realisierung eines derartigen n-Input-Korrekturelements gemäß einem Ausführungsbeispiel ist in 4 dargestellt.
  • Für i = 1, ..., n ist eine das Signal yi, z.B. den aus den i-ten Speicherelementen ausgelesenen Datenwert, tragende Eingangsleitung mit einem ersten Eingang eines AND-Gatters 51i (in 4 511, 512, ..., 51n), welches zwei Eingänge und einen Ausgang aufweist und zudem mit einem i-ten Eingang eines AND-Gatters 521 mit n Eingängen und einem Ausgang verbunden. Für i = 1, ..., n ist der Ausgang des AND-Gatters 51i mit dem (i + 1)-ten Eingang eines OR-Gatters 522 mit n + 1 Eingängen und einem Ausgang verbunden, in dessen ersten Eingang der Ausgang des AND-Gatters 521 geführt ist. Ein Ausgang des OR-Gatters 522, der den korrigierten Wert y führt, ist mit dem jeweils zweiten Eingang der AND-Gatter 511, 512, ..., 51n verbunden. Die Funktionsweise der Schaltung von 4 soll nun erläutert werden.
  • Gilt y1 = y2 = ... = yn = 0, so sind die Werte auf den Ausgangsleitungen der AND-Gatter 521, 511, 512, ... 51n alle gleich 0, woraus sich y = 0 ergibt. Gilt y1 = y2 = ... = yn = 1, so gibt das AND-Gatter 521 den Wert 1 aus, weshalb der Ausgang des OR-Gatters 522 ebenfalls den Wert 1 trägt und y = 1 ist.
  • Sind nun nicht alle der Werte y1, y2, ..., yn untereinander gleich, dann ändert sich der ausgegebene Wert y nicht. Wir erläutern das für den Fall, dass y1 = 1 und y2 = 0 gelten.
  • Es sei y = 1. Dann ist der von dem AND-Gatter 511 ausgegebene Wert gleich 1. Dieser Wert wird an den zweiten Eingang des OR-Gatters 522 geleitet, das daher an seinem Ausgang den Wert y = 1 ausgibt, der sich nicht geändert hat.
  • Es sei nun y = 0. Dann sind die von den AND-Gattern 521, 511, 512, ... 51n (n + 1) ausgegebenen Werte jeweils gleich 0. Diese n + 1 Werte, die alle gleich 0 sind, werden an die Eingänge des OR-Gatters 522 weitergeleitet, das daraufhin den Wert 0 ausgibt, so dass sich der Wert y am Ausgang dieses Gatters nicht ändert.
  • Ein weiteres mögliches Ausführungsbeispiel eines n-Input-Korrekturelementes, dessen n, die Werte y1, y2, ..., yn tragende Eingangsleitungen z.B. an n Speicherelemente Sp1 611, Sp2 212, ... Sp n angeschlossen sind, zeigt 5.
  • Für i = 1, ..., n ist der Ausgang des Speicherelementes Spi 61i, der das Signal yi führt, sowohl mit einem i-ten Eingang eines AND-Gatters 61, welches n Eingänge und einen Ausgang aufweist, als auch mit einem i-ten Eingang eines OR-Gatters 62, welches n Eingänge und einen Ausgang aufweist, verbunden. Ein Ausgang des OR-Gatters 62 ist mit einem ersten Eingang eines AND-Gatters 63, welches zwei Eingänge und einen Ausgang aufweist, verbunden, dessen Ausgang in den ersten Eingang eines OR-Gatters 64, welches zwei Eingänge und einen Ausgang aufweist, geführt ist und dessen zweiter Eingang mit dem Ausgang des AND-Gatters 61 verbunden ist. Der Ausgang 66 des OR-Gatters 64, der den korrigierten Wert y trägt, ist in den zweiten Eingang des AND-Gatters 63 rückgeführt.
  • Die Speicherelemente Spi 61i sind für i = 1, ..., n alle mit der gleichen, den zu speichernden Datenwert x tragenden Eingangsleitung 65 verbunden, so dass im fehlerfreien Fall in jedem der Speicherelemente Spi 61i der gleiche Wert gespeichert wird.
  • Die Funktionsweise der Schaltungsanordnung von 5 soll nun erläutert werden.
  • Gilt y1 = y2 = ... = yn = 0, dann geben sowohl das AND-Gatter 61 als auch das OR-Gatter 62 den Wert 0 aus, so dass an den beiden Eingängen des OR-Gatters 64 die Werte 0 anliegen, die auch am Ausgang 66 zu dem Wert y = 0 führen. Gilt y1 = y2 = ... = yn = 1, dann gibt das das OR-Gatter 62 den Wert 1 aus. Am ersten Eingang des OR-Gatters 64 liegt damit der Wert 1 an, der auch am Ausgang 66 zu dem Wert y = 1 führt.
  • Zum Zwecke einer möglichst einfachen Darstellung wird jetzt beispielhaft angenommen, dass n = 3 ist, und das Verhalten im Falle eines Fehlers in den beiden Speicherelementen Sp2 und Sp3 wird beschrieben.
  • Der korrekte Wert, der z.B. in einer ersten Takthälfte von allen drei Speicherelementen ausgegeben wird, sei zur Erläuterung gleich 1, so dass in der ersten Takthälfte y1 = y2 = y3 = 1 gilt. Der den Wert y tragende Ausgang 66 des Korrekturelementes gibt dann den Wert 1 in der ersten Takthälfte aus. In einer zweiten Takthälfte sei nun beispielsweise y1 = 1 und fehlerhaft y2 = y3 = 0. In der zweiten Takthälfte gibt dann das AND-Gatter 61 den Wert 0 aus und das OR-Gatter 62 gibt den Wert 1 aus, der am ersten Eingang des AND-Gatters 61 anliegt, in dessen zweiten Eingang der Ausgang 66 zurückgeführt ist, der den Wert y = 1 trägt. Damit liegen in der zweiten Takthälfte an den beiden Eingängen des AND-Gatters 63 jeweils die Werte 1 an, so dass auch der Ausgang dieses Gatters den Wert 1 führt, der mit dem ersten Eingang des OR-Gatters 64 verbunden ist. Damit bleibt der Ausgangswert y = 1 des Ausganges 66 auch in der zweiten Takthälfte stabil auf 1 und der Ausgabewert bleibt korrekt, obwohl ein 2-Bit Fehler in den Speicherelementen vorliegt. In entsprechender Weise kann überprüft werden, dass jeder Fehler von m Speicherelementen in der zweiten Takthälfte mit m < n – 1 richtig korrigiert wird.
  • Die 4 und 5 zeigen lediglich zwei mögliche Beispiele für die Implementierung eines n-Input-Korrekturelements, und selbstverständlich sind auch andere Implementierungen unter Verwendung anderer Anordnungen von Logikgattern möglich. n-Input-Korrekturelemente können auch durch Transistoren realisiert werden, sodass eine derartige Implementierung auch auf Transistorebene beschrieben werden kann, wobei grundsätzlich die gleiche Funktionalität wie durch die in den 4 und 5 dargestellten Logikgatter erreicht werden kann.
  • In den bisher beschriebenen Ausführungsbeispielen bestand keine besondere Beziehung zwischen den Speicherelementen abgesehen davon, dass sie zum Speichern eines gleichen Wertes verwendet wurden. Bei manchen Ausführungsbeispielen können Speicherelemente eine Master-Slave-Beziehung aufweisen, wobei Slave-Speicherelemente die zu speichernden Daten nicht direkt von einem Eingang, sondern über eine oder mehrere entsprechende Master-Speicherelemente erhalten. Entsprechende Ausführungsbeispiele werden nunmehr unter Bezugnahme auf die 6-8 dargestellt.
  • 6a zeigt eine erfindungsgemäße Schaltungsanordnung, bei der die Ausgänge von drei Speicherelementen SpM72, SpS1 73 und SpS2 74 mit den Eingängen eines 3-Input-Korrekturelementes 75 verbunden sind, wobei die verschiedenen Speicherelemente Master oder Slave eines Master-Slave-Flipflops sind. Das 3-Input-Korrekturelement 75 kann wie oben erläutert implementiert sein. Das Speicherelement SpM 72 ist das Master-Latch mit dem Taktsignal cl1, das Speicherelement SpS1 73 und das Speicherelement SpS2 74 haben die Funktionen eines Slave-Latches mit dem Taktsignal cl2.
  • Dem Speicherelement SpM 72 ist ein Multiplexer MUX 71 vorgeschaltet, an dessen Eingängen je nach gewähltem Mode ein Scan-in-Signal einem Scan-Mode, d.h. einer Testbetriebsart, oder ein Data-in Signal im normalen Funktionsmode eingegeben wird. Je nach gewähltem Mode wird an dem Ausgang out des 3-Input-Korrekturelementes der Scan-out-Wert oder der Data-out-Wert ausgegeben. Bei einem anderen Ausführungsbeispiel kann der Multiplexer MUX 71 zur Implementierung einer Testbetriebsart auch weggelassen sein. In einem derartigen Fall kann beispielsweise das Data-in Signal auch direkt an das Speicherelement SpM 72 angelegt werden.
  • Die Fehlerkorrektur eines in den drei Speicherelementen 72, 73 und 74 gespeicherten Datenwertes durch das 3-Input-Korrekturelement 75 kann dann wie oben beispielsweise für das Ausführungsbeispiel der 4 oder der 5 beschrieben ablaufen.
  • Durch die Verwendung einer Master-Slave-Anordnung von Speicherelementen kann es in manchen Fällen zu Verzögerungen kommen. Beispielsweise kann es vorkommen, dass ein Datenwert durch eine durch ein Master-Speicherelement verursachte Verzögerung später in einem Slave-Speicherelement gespeichert wird als in dem Master-Speicherelement. In diesem Fall können Verzögerungselemente bereitgestellt sein, um beispielsweise sicherzustellen, dass die Ausgaben aller Speicherelemente zur gleichen Zeit an einer Fehlerkorrektureinrichtung wie einem n-Input-Korrekturelement bereitstellen.
  • Ein entsprechendes Ausführungsbeispiel ist in der 6b dargestellt. Das Ausführungsbeispiel der 6b entspricht im Wesentlichen dem Ausführungsbeispiel der 6a, sodass im Folgenden nur die Unterschiede erläutert werden.
  • Im Unterschied zu der 6a ist bei dem Ausführungsbeispiel der 6b ein Verzögerungselement 76 zwischen einem Ausgang des Speicherelements SpM 72 und einem von drei Eingängen des 3-Input-Korrekturelements 75 bereitgestellt. Bei dem Ausführungsbeispiel der 6b ist die Verzögerung des Verzögerungselements 76 dabei derart gewählt, dass die Ausgaben der Speicherelemente 7274 synchron dem 3-Input-Korrekturelement 75 bereitgestellt werden.
  • Die hierzu nötige Verzögerung soll nun unter Bezugnahme auf 6c erläutert werden. Wie in 6c schematisch dargestellt, weisen die einzelnen Takte oder Taktflanken des Taktsignals cl1 einen Abstand von Δ2 zueinander auf. Die Takte oder Taktflanken des Taktsignals cl2 sind hierzu um Δ1 versetzt.
  • Um zu erreichen, dass sämtliche Ausgangswerte der Speicherelemente 7274 synchron dem 3-Input-Korrekturelement 75 zugeführt werden, ist bei dem Ausführungsbeispiel der 6b das Verzögerungselement 76 mit einer entsprechenden Verzögerung bereitgestellt, in der Art, dass der Taktversatz von cl2 zu cl1 Δ1 als auch die Verzögerung der Speicherelemente 73 und 74 berücksichtigt werden. Dies kann in einem weiteren Ausführungsbeispiel, welches eine Abwandlung der 6b ist, zum Beispiel über eine optionale Zuführung 77 (in 6b gestrichelt dargestellt) des Taktsignals cl2 zum Verzögerungselement 76 erreicht werden.
  • Bei den Ausführungsbeispielen der 3 bis 6 entspricht eine Anzahl von Speicherzellen einer Anzahl von Eingängen eines n-Input-Korrekturelements, welches als Fehlerkorrektureinrichtung dient. Bei anderen Ausführungsbeispielen kann eine Fehlerkorrektureinrichtung ein n-Input-Korrekturelement vorgesehen sein, welches eine Anzahl von Eingängen n aufweist, die kleiner ist als die Anzahl von Speicherzellen N. Ausführungsbeispiele hierfür werden nunmehr unter Bezugnahme auf die 7a7d erläutert.
  • 7a zeigt eine Speicherelementanordnung gemäß einem Ausführungsbeispiel mit N = 4 Speicherelementen SpM1 83 SpS1 86 SpM2 84 SpS2 87 und einer Fehlerkorrektureinrichtung 811, welche ein 3-Input-Korrekturelement 88 umfasst, so dass hier n = 3 ist.
  • Ein Multiplexer MUX1 81, das Speicherelement SpM1 83 und das Speicherelement SpS1 86 bilden ein erstes Master-Slave-Flipflop, wobei SpM1 83 das Master-Latch und SpS1 86 das Slave-Latch dieses ersten Master-Slave-Flipflops sind. Ein Multiplexer MUX2 82, das Speicherelement SpM2 84 und das Speicherelement SpS2 87 bilden ein zweites Master-Slave-Flipflop, wobei SpM2 84 das Master-Latch und SpS2 87 das Slave-Latch dieses zweiten Master-Slave-Flipflops sind. Auch hier können bei anderen Ausführungsbeispielen die Multiplexer MUX1 81 und/oder MUX2 82 weggelassen sein. Dabei ist auch möglich, dass nur einer der beiden Multiplexer 81, 82 verwendet wird und bei dem Speicherelement 83 oder 84, dem kein Multiplexer vorgeschaltet ist, das Data-in Signal direkt an das Speicherelement geführt wird.
  • Die Speicherelemente SpM1 83 und SpM2 84 sind an ein erstes Taktsignal cl1 angeschlossen, während die Speicherelemente SpS1 86 und SpS2 87 an ein zweites Taktsignal cl2 angeschlossen sind, entsprechend einer herkömmlichen Ausgestaltung eines Master-Slave-Flipflops.
  • In Abhängigkeit von einem binären Steuersignal c ist der Eingang Data-in, der ein zu speicherndes Datensignal trägt, oder der Eingang Scan-in, der ein einzuscannendes Signal trägt, über die Multiplexer MUX1 81 und MUX2 82 mit den Dateneingängen der Speicherelemente SpM1 und SpM2 verbunden.
  • Bei dem Ausführungsbeispiel der 7a umfasst die Fehlerkorrektureinrichtung 811 zudem ein AND-Gatter 89. Ein Ausgang (Datenausgang) des Speicherelementes SpM1 83 ist sowohl in eine Eingang (Dateneingang) des Speicherelementes SpS1 86 als auch in einen ersten Eingang des AND-Gatters 89 mit zwei Eingängen und einem Ausgang geführt. Ein Ausgang des Speicherelementes SpM2 84 ist sowohl in einen Eingang des Speicherelementes SpS2 87 als auch in einen zweiten Eingang des AND-Gatters 89 geführt.
  • Der Ausgang des Speicherelementes SpS1 86 ist mit einem ersten Eingang des 3-Input Korrekturelementes 88 verbunden. Ein Ausgang des Speicherelementes SpS2 87 ist mit einem zweiten Eingang des 3-Input-Korrekturelementes 88 verbunden, während ein Ausgang des AND-Gatters 89 mit dem dritten Eingang des 3-Input Korrekturelementes verbunden ist, das an seinem Ausgang einen korrigierten Wert y ausgibt. Das AND-Gatter 89 realisiert die Boolesche Funktion g(x1, x2) = x1 ^ x2, für die g(0, 0) = 0 ≠ 1 = g(1, 1) und g(0, 1) = g(1, 0) = 0 gilt.
  • Die Fehlerkorrektur für 1-Bit-, 2-Bit- und 3-Bit-Fehler wird nun für die Speicherelementanordnung von 7a beschrieben werden. Derartige Fehler können beispielsweise in einem Wartezustand der Speicherelementanordnung auftreten. Unter einem Wartezustand ist dabei ein Zustand zu verstehen, in dem zwischen einem Zeitpunkt des Schreibens eines Datenwertes in die Speicherelemente und einem Zeitpunkt, zu dem der Datenwert benötigt wird und hierzu ausgelesen wird, ein längerer Zeitraum, beispielsweise viele Taktzyklen, liegen können, in denen die Speicherelemente, die in einem Wartezustand sind, nicht getaktet werden. Durch diesen längeren Zeitraum erhöht sich beispielsweise die Wahrscheinlichkeit, dass zwischen dem Schreiben und dem Auslesen ein Fehler wie z.B. ein Strahlungsfehler auftritt. Derartige Wartezustände kommen beispielsweise bei Speicherelementanordnungen vor, in welche bei einem Hochfahren eines Systems einmalig Daten geschrieben werden, beispielsweise aus einer so genannten Fuse oder einem anderen permanenten Speicher ausgelesene Daten wie Kalibrierdaten oder Fehlerinformationen einer Speicheranordnung.
  • Zunächst wird der Fall betrachtet, dass kein Fehler vorliegt. Wird nun z.B. zu dem Zeitpunkt, an dem die Taktsignale cl1 = 1 und cl2 = 0 sind, über die Multiplexer MUX1 81 und MUX2 82 ein Datenwert von 1 in die Speicherelemente SpM1 83 und SpM2 84 geschrieben, dann liegt dann, wenn die Taktsignale cl1 = 0 und cl2 = 1 sind, am Ausgang der Speicherelemente SpS1 86 und SpS2 87, SpM1 83, SpM2 84 und am Ausgang des AND-Gatters 89 jeweils der Wert 1 und damit an allen drei Eingängen des 3-Input-Korrekturelementes 88 der Wert 1 an, was dann an seinem Ausgang den Wert 1 ausgibt.
  • Tritt nun beispielsweise, wenn die Taktsignale weiterhin die Werte cl1 = 0 und cl2 = 1 annehmen, und sich das System etwa beispielsweise in einem Wartezustand befindet, am Ausgang des Speicherelementes SpM1 83 ein transienter 1-Bit-Fehler auf, der den Ausgangswert 1 auf 0 verfälscht, dann ändert sich der fehlerfreie Wert 1 am Ausgang des AND-Gatters 89 fehlerhaft in 0, so dass an den drei Eingängen des 3-Input Korrekturelementes 88 die Werte 1, 0, 1 anliegen und der korrekte Wert 1 am Ausgang des 3-Input-Korrekturelementes beibehalten wird.
  • Als weitere Fehler werden nun 2-Bit Fehler betrachtet. Tritt, wenn die Taktsignale weiterhin die Werte cl1 = 0 und cl2 = 1 annehmen, und sich das System beispielsweise in einem Wartezustand befindet, am Ausgang des Speicherelementes SpM1 83 und am Ausgang des Speicherelementes SpM2 84 gleichzeitig ein transienter Fehler auf, der jeweils den Ausgangswert 1 auf 0 verfälscht, dann ändert sich der fehlerfreie Wert 1 am Ausgang des AND-Gatters 89 fehlerhaft in 0, so dass an den drei Eingängen des 3-Input-Korrekturelementes 88 die Werte 1, 0, 1 anliegen und der korrekte Wert 1 am Ausgang des 3-Input-Korrekturelementes beibehalten wird.
  • Tritt, wenn die Taktsignale weiterhin die Werte cl1 = 0 und cl2 = 1 annehmen, und sich das System beispielsweise in einem Wartezustand befindet, am Ausgang des Speicherelementes SpM1 83 und am Ausgang des Speicherelementes SpS1 86 gleichzeitig ein transienter Fehler auf, der jeweils den Ausgangswert 1 auf 0 verfälscht, dann ändert sich der fehlerfreie Wert 1 am Ausgang des AND-Gatters 89 fehlerhaft in 0 und der fehlerfreie Wert 1 am Ausgang des Speicherelementes SpS1 86 in den fehlerhaften Wert 0, so dass an den drei Eingängen des 3-Input Korrekturelementes 88 die Werte 0, 0, 1 anliegen und der korrekte Wert 1 am Ausgang des 3-Input Korrekturelementes beibehalten wird.
  • Entsprechend kann man sich überzeugen, dass jeder transiente 2-Bit Fehler, der beispielsweise in einem Wartezustand mit cl1 = 0 und cl2 = 1 auftritt, von der Schaltungsanordnung korrigiert wird.
  • Als weitere Fehler sollen nun 3-Bit Fehler betrachtet werden. Wir betrachten dabei weiterhin den Fall, dass zu dem Zeitpunkt, an dem die Taktsignale cl1 = 1 und cl2 = 0 sind über die Multiplexer MUX1 81 und MUX2 82 der Wert 1 in die Speicherelemente SpM1 83 und SpM2 84 geschrieben werden. Dann liegt im fehlerfreien Fall, wenn die Taktsignale cl1 = 0 und cl2 = 1 sind, am Ausgang der Speicherelemente SpS1 86 und SpS2 87, SpM1 83, SpM2 84 und am Ausgang des AND-Gatters 89 jeweils der Wert 1 und damit an allen drei Eingängen des 3-Input Korrekturelementes 88 der Wert 1 an, was dann an seinem Ausgang den Wert 1 ausgibt.
  • Tritt, wenn die Taktsignale weiterhin die Werte cl1 = 0 und cl2 = 1 annehmen, und sich das System beispielsweise in einem Wartezustand befindet, am Ausgang des Speicherelementes SpM1 83, am Ausgang des Speicherelementes SpM2 84 und am Ausgang des Speicherelementes SpS1 86 gleichzeitig ein transienter Fehler auf, der jeweils den Ausgangswert 1 auf 0 verfälscht, dann ändert sich der fehlerfreie Wert 1 am Ausgang des AND-Gatters 89 fehlerhaft in 0 und der fehlerfreie Wert 1 am Ausgang des Speicherelementes SpS1 86 in den fehlerhaften Wert 0, so dass an den drei Eingängen des 3-Input-Korrekturelementes 88 die Werte 0, 0, 1 anliegen und der korrekte Wert 1 am Ausgang des 3-Input-Korrekturelementes beibehalten wird. Tritt, wenn die Taktsignale weiterhin die Werte cl1 = 0 und cl2 = 1 annehmen, und sich das System beispielsweise in einem Wartezustand befindet, am Ausgang des Speicherelementes SpM1 83, am Ausgang des Speicherelementes SpS1 86 und am Ausgang des Speicherelementes SpS2 87 gleichzeitig ein transienter Fehler auf, der jeweils den Ausgangswert 1 auf 0 verfälscht, dann ändert sich der fehlerfreie Wert 1 am Ausgang des AND-Gatters 89 fehlerhaft in 0, der fehlerfreie Wert 1 am Ausgang des Speicherelementes SpS1 86 und der fehlerfreie Wert 1 am Ausgang des Speicherelementes SpS2 87 in den fehlerhaften Wert 0, so dass an den drei Eingängen des 3-Input-Korrekturelementes 88 die Werte 0, 0, 0 anliegen und der korrekte Wert 1 am Ausgang des 3-Input-Korrekturelementes in den fehlerhaften Wert 0 verfälscht wird. Dies stellt ein Beispiel für einen Zustand dar, in dem nicht allen Eingängen der Fehlerkorrektureinrichtung 811 der gleiche Wert zugeführt wird, aber nicht ein vorher ausgegebener Wert weiter ausgegeben wird.
  • Ein anderes Situationsbeispiel ergibt sich, wenn im fehlerfreien Fall zu dem Zeitpunkt, an dem die Taktsignale cl1 = 1 und cl2 = 0 sind, über die Multiplexer MUX1 81 und MUX2 82 der Wert 0 in die Speicherelemente SpM1 83 und SpM2 84 geschrieben, wird. Dann liegt, wenn die Taktsignale cl1 = 0 und cl2 = 1 sind, am Ausgang der Speicherelemente SpS1 86 und SpS2 87, SpM1 83, SpM2 84 und am Ausgang des AND-Gatters 89 jeweils der Wert 0 und damit an allen drei Eingängen des 3-Input Korrekturelementes 88 der Wert 0 an, was dann an seinem Ausgang den Wert 0 ausgibt.
  • Tritt, nun, wenn die Taktsignale weiterhin die Werte cl1 = 0 und cl2 = 1 annehmen, und sich das System beispielsweise in einem Wartezustand befindet, am Ausgang des Speicherelementes SpM1 83, am Ausgang des Speicherelementes SpS1 86 und am Ausgang des Speicherelementes SpS2 87 gleichzeitig ein transienter Fehler auf, der jeweils den Ausgangswert 0 in 1 verfälscht, dann ändert sich der fehlerfreie Wert 0 am Ausgang des AND-Gatters 89 nicht. Der fehlerfreie Wert 0 am Ausgang des Speicherelementes SpS1 86 und der fehlerfreie Wert 0 am Ausgang des Speicherelementes SpS2 87 ändern sich in den fehlerhaften Wert 1, so dass an den drei Eingängen des 3-Input-Korrekturelementes 88 die Werte 1, 0, 1 anliegen und der korrekte Wert 0 am Ausgang des 3-Input-Korrekturelementes ausgegeben wird.
  • Auf diese Weise wird deutlich, dass bei dem Ausführungsbeispiel der 7a zumindest eine Teilmenge der 3-Bit-Fehler richtig korrigiert wird, während alle 2-Bit- und 1-Bit-Fehler richtig korrigiert werden.
  • Insbesondere ist aus dem Obigen ersichtlich, dass in der Schaltungsanordnung von 7a alle 3-Bit-Fehler, die jeweils korrekte Werte 0 in 1 verfälschen, sicher erkannt werden.
  • Im Ausführungsbeispiel der 7a werden die Ausgänge der Speicherelemente 83 und 84 mittels des AND-Gatters 89 verknüpft. Für einen derartigen Zweck können jedoch auch andere Logikschaltungen, z.B. OR-Gatter, NAND-Gatter oder NOR-Gatter, eingesetzt werden. Ein entsprechendes Ausführungsbeispiel ist in 7b dargestellt.
  • Die Schaltungsanordnung von 7b unterscheidet sich von der Schaltungsanordnung in 7a dadurch, dass das AND-Gatter 89 in 7a durch ein OR-Gatter 85 in 7b ersetzt worden ist. Gleiche Schaltungsteile in 7a und 7b sind mit den gleichen Bezugszeichen markiert, und ihre Beschreibung wird hier nicht noch einmal wiederholt.
  • In 7b ist der Datenausgang des Speicherelementes SpM1 83 sowohl in den Dateneingang des Speicherelementes SpS1 86 als auch in einen ersten Eingang des OR-Gatters 85 mit zwei Eingängen und einem Ausgang geführt. Der Datenausgang des Speicherelementes SpM2 84 ist sowohl in den Dateneingang des Speicherelementes SpS2 87 als auch in den zweiten Eingang des OR-Gatters 85 geführt.
  • Der Datenausgang des Speicherelementes SpS1 86 ist mit dem ersten Eingang des 3-Input-Korrekturelementes 88 verbunden. Der Datenausgang des Speicherelementes SpS2 87 ist mit dem zweiten Eingang des 3-Input-Korrekturelementes 88 verbunden, während der Ausgang des OR-Gatters 85 mit dem dritten Eingang des 3-Input Korrekturelementes 88 verbunden ist, das an seinem Ausgang den korrigierten Wert y ausgibt. Das OR-Gatter 85 realisiert die Boolesche Funktion g(x1, x2) = x1 V x2, für die g(0, 0) = 0 ≠ 1 = g(1, 1) und g(0, 1) = g(1, 0) = 1 gilt.
  • Die Fehlerkorrektur durch die Speicherelementanordnung von 7b ist ähnlich der Fehlerkorrektur in der Speicherelementanordnung von 7a, wie einfach überprüft werden kann. Man erkennt, dass ebenso wie in der Schaltungsanordnung von 7a beispielsweise in einem Wartezustand mit cl1 = 0 und CL2 = 1 alle 1-Bit und alle 2-Bit-Fehler richtig korrigiert werden. Nun wird die Korrektur des 3-Bit-Fehlers untersucht, der in der Schaltungsanordnung von 7a nicht korrigiert werden konnte.
  • Es wird der Fall untersucht, dass zum dem Zeitpunkt, an dem die Taktsignale cl1 = 1 und cl2 = 0 über die Multiplexer MUX1 81 und MUX2 82 der Wert 1 in die Speicherelemente SpM1 83 und SpM2 84 geschrieben werden. Dann liegt im fehlerfreien Fall, wenn die Taktsignale cl1 = 0 und cl2 = 1 sind, am Ausgang der Speicherelemente SpS1 86 und SpS2 87, SpS1 86, SpS2 87 und am Ausgang des OR-Gatters 85 jeweils der Wert 1 und damit an allen drei Eingängen des 3-Input-Korrekturelementes 88 der Wert 1 an, was dann an seinem Ausgang den Wert 1 ausgibt. Tritt, nun wenn die Taktsignale weiterhin die Werte cl1 = 0 und cl2 = 1 annehmen, und sich das System beispielsweise in einem Wartezustand befindet, am Ausgang des Speicherelementes SpM1 83, am Ausgang des Speicherelementes SpS1 86 und am Ausgang des Speicherelementes SpS2 87 gleichzeitig ein transienter Fehler auf, der jeweils den Ausgangswert 1 auf 0 verfälscht, dann ändert sich der fehlerfreie Wert 1 am Ausgang des OR-Gatters 85 nicht. Der fehlerfreie Wert 1 am Ausgang des Speicherelementes SpS1 86 und der fehlerfreie Wert 1 am Ausgang des Speicherelementes SpS2 87 wird jeweils in den fehlerhaften Wert 0 verfälscht, so dass an den drei Eingängen des 3-Input-Korrekturelementes 88 die Werte 0, 1, 0 anliegen und der korrekte Wert 1 am Ausgang des 3-Input-Korrekturelementes ausgegeben wird. Jeder 3-Bit-Fehler, der korrekte Werte 1 in 0 verfälscht, wird von der Schaltungsanordnung von 7b korrigiert. Dies kann überprüft werden, indem alle vier derartigen 3-Bit-Fehler in gleicher Weise betrachtet werden. Wird ein korrekter Wert 0 häufiger in einen fehlerhaften Wert 1 gestört als ein korrekter Wert 1 in einen fehlerhaften Wert 0 gestört wird, dann kann z.B. die Speicherelementanordnung von 7a angewendet werden.
  • Wird ein korrekter Wert 1 häufiger in einen fehlerhaften Wert 0 gestört als ein korrekter Wert 0 in einen fehlerhaften Wert 1 gestört wird, dann kann z.B. die Speicherelementanordnung von 7b angewendet werden. Auf diese Weise ist es möglich, eine größere Anzahl von 3-Bit Fehlern richtig zu korrigieren. Es ist jedoch selbstverständlich grundsätzlich möglich, in jedem Fall sowohl die Speicherelementanordnung der 7a als auch die Speicherelementanordnung der 7b zu verwenden.
  • Wie bereits für den Fall der 6a erläutert kann es durch die Verwendung von Master-Speicherelementen und Slave-Speicherelementen zu Verzögerungen kommen. Ähnlich wie für die Schaltungsanordnung der 6a unter Bezugnahme auf 6b erläutert, können auch für die Schaltungsanordnungen der 7a und 7b entsprechende Verzögerungselemente eingesetzt werden, um sicherzustellen, dass alle Ausgangswerte zu einem gewünschten Zeitpunkt an dem 3-Input-Korrekturelement 88 anliegen. Ein Beispiel, welches das Ausführungsbeispiel der 7a modifiziert, ist in 7c dargestellt.
  • Hier wird dem AND-Gatter 89 nachgeschaltet ein Verzögerungselement 810 bereitgestellt. In ähnlicher Weise kann auch in dem Ausführungsbeispiel der 7b dem OR-Gatter 85 ein Verzögerungselement nachgeschaltet werden. Bei anderen Ausführungsbeispielen können entsprechende Verzögerungselemente vor Eingänge des AND-Gatters 89 oder des OR-Gatters 85 bereitgestellt sein.
  • In 7d ist ein Diagramm dargestellt, welches im Wesentlichen dem Diagramm der 6c entspricht und einen Taktversatz Δ1 zeigt, welcher beispielsweise durch das Verzögerungselement 810 der 7c ausgeglichen werden kann.
  • Bei den Ausführungsbeispielen der 7a7c werden die Ausgaben von den Speicherelementen 83 und 84 durch ein Logikgatter 89 oder 85 kombiniert und einem Eingang eines 3-Input-Korrekturelements 88 zugeführt. Bei anderen Ausführungsbeispielen kann – ähnlich dem Ausführungsbeispiel der 3 – für jedes Speicherelement ein separater Eingang eines n-Input-Korrekturelements bereitgestellt sein. Ein entsprechendes Ausführungsbeispiel ist in 8 dargestellt.
  • 8 zeigt eine Speicherelementanordnung gemäß einem weiteren Ausführungsbeispiel mit N = 4 Speicherelementen SpM1 93 SpS1 96 SpM2 94 SpS2 97 und einem 4-Input-Korrekturelement 98, so dass hier n = 4 ist.
  • Ein Multiplexer MUX1 91, das Speicherelement SpM1 93 und das Speicherelement SpS1 96 bilden ein erstes Master-Slave-Flipflop, wobei SpM1 93 das Master-Latch und SpS1 96 das Slave-Latch dieses ersten Master-Slave-Flipflops sind. Ein Multiplexer MUX2 92, das Speicherelement SpM2 94 und das Speicherelement SpS2 97 bilden ein zweites Master-Slave-Flipflop, wobei SpM2 94 das Master-Latch und SpS2 97 das Slave-Latch dieses zweiten Master-Slave-Flipflops sind. Auch hier können bei anderen Ausführungsbeispielen die Multiplexer MUX1 91 und/oder MUX2 92 wie oben erläutert weggelassen sein.
  • Die Speicherelemente SpM1 93 und SpM2 94 sind an ein erstes Taktsignal cl1 angeschlossen, während die Speicherelemente SpS1 96 und SpS2 97 an ein zweites Taktsignal cl2 angeschlossen sind, entsprechend einem herkömmlichen Master-Slave-Flipflop.
  • In Abhängigkeit von einem binären Steuersignal c ist der Eingang Data−in, der ein zu speicherndes Datensignal trägt, oder der Eingang Scan−in, der das einzuscannende Signal trägt, über die Multiplexer MUX1 91 und MUX2 92 mit den Dateneingängen der Speicherelemente SpM1 und SpM2 verbunden.
  • Ein Ausgang des Speicherelementes SpM1 93 ist sowohl ein Eingang es Speicherelementes SpS1 96 als auch in einen ersten Eingang des 4-Input-Korrekturelementes geführt. Ein Ausgang des Speicherelementes SpM2 94 ist sowohl in einen Eingang des Speicherelementes SpS2 97 als auch in einen zweiten Eingang des 4-Input Korrekturelementes 98 geführt.
  • Ein Ausgang des Speicherelementes SpS1 96 ist mit einem dritten Eingang des 4-Input-Korrekturelementes 98 verbunden. Ein Ausgang des Speicherelementes SpS2 97 ist mit einem vierten Eingang des 4-Input-Korrekturelementes 98 verbunden, das an einem Ausgang einen korrigierten Wert ycorr ausgibt.
  • Die Fehlerkorrektur der Speicherelementanordnung der 8 soll hier für einen 3-Bit-Fehler beschrieben werden.
  • Zunächst betrachten wir wieder den Fall, dass kein Fehler vorliegt.
  • Wird zu dem Zeitpunkt, an dem die Taktsignale cl1 = 1 und cl2 = 0 sind über die Multiplexer MUX1 91 und MUX2 92 der Wert 1 in die Speicherelemente SpM1 93 und SpM2 94 geschrieben, dann liegt dann, wenn die Taktsignale cl1 = 0 und cl2 = 1 sind, am Ausgang der Speicherelemente SpS1 96 und SpS2 97, SpM1 93, SpM2 94 jeweils der Wert 1 und damit an allen vier Eingängen des 4-Input-Korrekturelementes 98 der Wert 1 an, was dann an seinem Ausgang den Wert 1 ausgibt.
  • Tritt nun, wenn die Taktsignale weiterhin die Werte cl1 = 0 und cl2 = 1 annehmen, und sich das System etwa beispielsweise in einem Wartezustand befindet, am Ausgang der Speicherelemente SpM1 93, SpM2 94 und SpS1 96 ein transienter Fehler auf, der den Ausgangswert 1 auf 0 verfälscht, dann liegen an dem ersten, dem zweiten und dem dritten Eingang des 4-Input-Korrekturelementes 98 jeweils der fehlerhafte Wert 0 an, während an seinem vierten Eingang der korrekte Wert 1 anliegt. Da nicht alle Eingabewerte des 4-Input-Korrekturelementes 98 gleich sind, gibt dieses Element an seinem Eingang den korrekten Wert 1 aus, den es bisher ausgegeben hat. Das ist auch der Fall, wenn die einzelnen aufgeführten Fehler zeitlich nacheinander auftreten, wenn das System beispielsweise in einem Wartezustand ist.
  • Wie bereits aus den Ausführungsbeispielen der 6 und 7 ersichtlich kann eine erfindungsgemäße Fehlerkorrektureinrichtung ein n-Input-Korrekturelement umfassen, wobei n kleiner oder gleich der Anzahl der Speicherelemente N sein kann. Allgemein kann bei N Speicherelementen einem n-Input-Korrekturelement eine kombinatorische Schaltung vorgeschaltet sein, welche N Ausgänge von Speicherzellen n Eingängen eines n-Input-Korrekturelements zuführt. Beispiele für derartige kombinatorische Schaltungen sind die oben erwähnten AND- und OR-Gatter. Ein weiteres entsprechendes Ausführungsbeispiel ist in 9 dargestellt.
  • 9 zeigt eine erfindungsgemäße Speicherelementanordnung, die N Speicherelemente Spi 10i, i = 1, ..., N umfasst, die an ihrem jeweiligen Ausgang Werte yi ausgeben und die mit N Eingängen einer Logikschaltung in Form einer kombinatorischen Schaltung 1011 zur Realisierung einer kombinatorischen Funktion F mit N binären Eingängen und n binären Ausgängen, die die Werte zj mit j = 1, ..., n führen, verbunden sind. Dabei ist n > 3 und N > n. Die n binären Ausgänge der kombinatorischen Schaltung 1011 sind mit n binären Eingängen eines n-Input-Korrekturelementes 1012 verbunden, das an seinem binären Ausgang 1013 ein korrigiertes Ausgangssignal ycorr ausgibt. In diesem Fall umfasst eine Fehlerkorrektureinrichtung 1014 die kombinatorische Schaltung 1011 und das n-Input-Korrekturelement 1012. Es ist zu bemerken, dass bei anderen Ausführungsbeispiele mindestens einer der n Ausgänge der kombinatorischen Schaltung 1011 mit dem jeweils zugeordneten Eingang des n-Input-Korrekturelements 1012 über ein Verzögerungselement verbunden sein kann, beispielsweise um ähnlich wie für die 6b und 7c beschrieben ein synchrones, insbesondere gleichzeitiges Bereitstellen entsprechender Eingangswerte für das n-Input-Korrekturelement 1012 zu erreichen.
  • Die kombinatorische Schaltung 1011 transformiert die an ihren N Eingängen anliegenden binären Werte y1, ..., yN in die an ihren n Ausgängen ausgegebenen Werte z1, ..., zn, z1, ..., zn = F(y1, ..., yN).
  • Die kombinatorische Schaltung 1011 bei einem Ausführungsbeispiel ist so ausgelegt, dass gilt:
    • 1. bei Eingabe von
      Figure 00270001
      gibt die kombinatorische Schaltung 1011 die Werte
      Figure 00270002
      aus,
    • 2. bei Eingabe von
      Figure 00270003
      gibt die kombinatorische Schaltung 1011 die Werte
      Figure 00270004
      aus,
    • 3. wird in die kombinatorische Schaltung 1011 eine Binärfolge y1, ..., yN eingegeben, die mindestens eine 1 und höchstens k Einsen enthält, dann enthält die von der kombinatorischen Schaltung 1011 ausgegebene Binärfolge z1, ..., zn = F(y1, ..., yN) mindestens eine 1 und mindestens eine 0. Dabei ist 2 < k < N – 1,
    • 4. wird in die kombinatorische Schaltung 1011 eine Binärfolge y1, ..., yN eingegeben, die mindestens eine 0 und höchstens k Nullen enthält, dann enthält die von der kombinatorischen Schaltung 1011 ausgegebene Binärfolge z1, ..., zn = F(y1, ..., yN) mindestens eine 1 und mindestens eine 0.
  • Die Funktionsweise des n-Input-Korrekturelementes 1012 entspricht der bereits erläuterten und ist in der folgenden Tabelle nochmals dargestellt.
    z1 z2 ... z(n – 1) zn ycorr
    0 0 ... 0 0 0
    0 0 ... 0 1 vorhergehender Wert
    0 0 ... 1 0 vorhergehender Wert
    . . . . . . . . . . . . . . . vorhergehender Wert
    1 1 ... 1 0 vorhergehender Wert
    1 1 ... 1 1 1
  • Das n-Input-Korrekturelement 1012 gibt bei Eingabe von y1 = y2 = ... = yn = 0 den Wert y = 0 und bei Eingabe von y1 = y = 2 = ... = yn = 1 den Wert y = 1 aus. In allen anderen Fällen gibt das n-Input Korrekturelement den vorhergehenden Wert aus.
  • Diese Speicherelementanordnung erlaubt bis zu k flüchtige Fehler, die sich z.B. in einer zweiten Takthälfte auf die Ausgabe von bis zu k der Speicherelemente auswirken, zu korrigieren, wobei k je nach Ausführungsbeispiel mindestens gleich 2 und höchstens gleich n – 1 ist.
  • Gilt z.B. in einer ersten Takthälfte y1 = y2 = ... = yN = 1, dann ist in dieser Takthälfte (z1, z2, ..., zn) = F(1, ..., 1) = 1, ..., 1 und damit ist y = 1. Sind nun in einer zweiten Takthälfte, etwa infolge eines Strahlungsfehlers, höchstens k Speicherelemente in den Wert 0 gestört, dann bildet die kombinatorische Schaltung 1011 die Inputwerte y1, ..., yN in Outputwerte z1 ..., zn = F(y1, ..., yN) ab, sodass mindestens eine Komponente dieser Werte gleich Null und mindestens eine Komponente gleich 1 ist, so dass nicht alle Komponenten z1, ..., zn gleich sind. Bei Eingabe dieser Werte gibt das n-Input-Korrekturelement 1012 an seinem Ausgang den vorhergehenden Wert 1 aus, so dass der Fehler in den Speicherelementen Spi 10i, der maximal k Bits verfälscht, richtig korrigiert wird. Trotz des betrachteten Fehlers wird also auch in der zweiten Takthälfte der korrigierte Wert y = 1 ausgegeben, obwohl bis zu k Speicherelemente in der zweiten Takthälfte einen fehlerhaften Wert annehmen.
  • Gilt zum Beispiel, dass N = n ist, dann lässt sich die kombinatorische Schaltung 1011 einfach durch direktes Verbinden der N = n Ausgänge der Speicherelemente Spi, i = 1, ..., N, die das Signal yi tragen, mit den entsprechenden Eingängen des n-Input-Korrekturelementes 1012 implementieren, so dass zi = yi für i = 1, ..., n und k = n – 1 gilt, was dem Ausführungsbeispiel der 3 entspricht. In diesem Fall können also n – 1 Fehler bei der Ausgabe der Speicherelemente in der zweiten Takthälfte korrigiert werden.
  • Aus Speicherelementanordnungen wie oben erläutert kann eine Speichervorrichtung aufgebaut werden. Ein entsprechendes Ausführungsbeispiel ist schematisch in 10 dargestellt. Die Speichervorrichtung der 10 umfasst einen Speicher 1110, welcher eine Vielzahl von Speicherelementanordnungen 111119 umfasst, welche jeweils beispielsweise nach einem der oben beschriebenen Ausführungsbeispiele ausgestaltet sein können. Diese Speicherelementanordnungen können beispielsweise wie dargestellt in Matrixform angeordnet sein, es ist jedoch auch jede andere Anordnung, insbesondere herkömmliche Anordnungen von Speicherelementen in einem Speicher, möglich. Über eine Speichersteuerung 1111 kann auf den Speicher 1110 wie durch einen Pfeil 1112 dargestellt ist beispielsweise über einen Bus zugegriffen werden.
  • Die obigen Ausführungsbeispiele sind lediglich als Beispiel zu verstehen. Beispielsweise können durch einfache äquivalente Ersetzungen von dargestellten Logikanordnungen neue Ausführungsbeispiele geschaffen werden, ohne den Bereich der Erfindung zu verlassen. So kann man etwa in der Schaltungsanordnung von 7b die Ausgänge der Speicherelemente SpM1 83, SpS1 86, SpM2 84 und SpS2 87 jeweils negieren oder negierte Speicherausgänge verwenden und das OR-Gatter 85 durch ein NAND-Gatter ersetzen, ohne dass sich die Funktion der Schaltungsanordnung, insbesondere bezüglich der Eigenschaften der Korrektur von 1-Bit, 2-Bit und 3-Bit Fehlern verändert.
  • Weiterhin ist es beispielsweise möglich, zwei Leitungen, die in Ausführungsbeispielen direkt mit Eingängen des n-Input-Korrekturelementes verbunden sind, sowohl durch ein AND-Gatter als auch durch ein OR-Gatter zu verknüpfen und anstelle der beiden Leitungen selbst den Ausgang des AND-Gatters und den Ausgang des OR-Gatters mit den entsprechenden Eingängen des n-Input-Korrekturelementes zu verbinden, ohne dass sich die Eigenschaften der Korrektur von 1-Bit-, 2-Bit- und 3-Bit-Fehlern verändert.
  • Diese Beispiele stellen nur einige der möglichen Modifikationen dar. Insbesondere können generell invertierte Signale und entsprechend angepasste Logikschaltungen verwendet werden.

Claims (22)

  1. Speicherelementanordnung zum Speichern eines Datenwertes, umfassend: N Speicherelemente (2022), wobei N > 3 ist, einen Dateneingang (24) zum Zuführen des Datenwertes an jede der Speicherzellen (2022), und eine Fehlerkorrektureinrichtung (23; 811; 1014) mit einem Ausgang und mindestens 3 Eingängen, wobei ein Ausgang jedes der mindestens drei Speicherelemente mit einem der Eingänge der Fehlerkorrektureinrichtung (23) gekoppelt ist, wobei die Fehlerkorrektureinrichtung (23; 811; 1014) eingerichtet ist, wenn alle der mindestens drei Speicherelemente (2022) einen gleichen Wert an ihren jeweiligen Ausgängen ausgeben, diesen Wert am Ausgang der Fehlerkorrektureinrichtung (23; 811; 1014) bereitzustellen, und bei mindestens einem Zustand, bei welchem die Speicherelemente (2022) an ihren Ausgängen zwei verschiedene Werte bereitstellen, einen vorher ausgegebenen Wert beizubehalten.
  2. Speicherelementanordnung nach Anspruch 1, wobei die Fehlerkorrektureinrichtung (23) ein n-Input-Korrekturelement mit n Eingängen und einem Ausgang aufweist, wobei n > 3 ist, wobei die Eingänge der Fehlerkorrekturschaltung mit Eingängen des n-Input-Korrekturelements (410; 75; 88; 98) gekoppelt sind, wobei das n-Input-Korrekturelement (410; 75; 88; 98) derart eingerichtet ist, dass es dann, wenn alle an seinen n Eingängen anliegenden Datenwerte übereinstimmen, dieser übereinstimmende Datenwert an dem Ausgang des n-Input-Korrekturelements (410; 75; 88; 98) ausgibt, und, wenn nicht alle an den n Eingängen des n-Input-Korrekturelements anliegenden Datenwerte gleich sind, ein vorher an dem Ausgang des n-Input-Korrekturelements ausgegebener Datenwert beibehalten wird.
  3. Speicherelementanordnung nach Anspruch 2, wobei n = N ist, und wobei der Ausgang jedes der mindestens drei Speicherelemente mit einem jeweils zugeordneten Eingang des n-Input-Korrekturelements gekoppelt ist.
  4. Speicherelementanordnung nach Anspruch 2, wobei n < N ist.
  5. Speicherelementanordnung nach Anspruch 4, wobei die Fehlerkorrektureinrichtung weiter ein Logikgatter (85, 89) umfasst, wobei Ausgänge von mindestens zweien der Speicherelemente (83, 84) mit zugeordneten Eingängen des Logikgatters (85, 89) verbunden sind, und wobei ein Ausgang des Logikgatters (85, 89) mit einem Eingang des n-Input-Korrekturelements (88) gekoppelt ist.
  6. Speicherelementanordnung nach Anspruch 5, wobei das Logikgatter (89, 85) eine zweistellige Boolesche Funktion g implementiert, für die gilt g(0, 0) ≠ g(1, 1) und g(0, 1) = g(1, 0), wobei 1 und 0 zwei mögliche Zustände eines Ausgangswertes eines Speicherelements der Speicherelemente sind.
  7. Speicherelementanordnung nach Anspruch 6, wobei die Boolesche Funktion ausgewählt ist aus einer AND-Funktion, einer NAND-Funktion, einer OR-Funktion und einer NOR-Funktion.
  8. Speicherelementanordnung nach Anspruch 4, weiter umfassend eine Logikschaltung (1011) mit N Eingängen und n Ausgängen, wobei jeder der Eingänge der Logikschaltung (1011) mit einem Ausgang eines der Speicherelemente (10110N) gekoppelt ist und jeder der Ausgänge der Logikschaltung (1011) mit einem zugeordneten Eingang des n-Input-Korrekturelements (1012) gekoppelt ist.
  9. Speicherelementanordnung nach Anspruch 8, wobei mindestens einer der Ausgänge der Logikschaltung (1011) über ein Verzögerungselement mit dem jeweils zugeordneten Eingang des n-Input Korrekturelementes (1012) verbunden ist.
  10. Speicherelementanordnung nach einem der vorherigen Ansprüche, wobei die N Speicherelemente mindestens ein Master-Speicherelement und mindestens ein dem mindestens einem Master-Speicherelement zugeordnetes Slave-Speicherelement umfassen.
  11. Speicherlementanordnung nach Anspruch 2 und nach Anspruch 9, wobei das mindestens eine Master-Speicherelement ein Master-Speicherelement (72) umfasst und wobei das mindestens eine Slave-Speicherelement ein erstes Slave-Speicherelement (73) und ein zweites Slave-Speicherelement (74) umfasst, wobei ein Ausgang des Master-Speicherelementes (72) mit einem Eingang des ersten Slave-Speicherelementes (73), mit einem Eingang des zweiten Slave-Speicherelementes (74) und mit einem ersten Eingang des n-Input Korrekturelementes (75) verbunden ist, wobei ein Ausgang des ersten Slave-Speicherelementes (73) mit einem zweiten Eingang des n-Input-Korrekturelementes (75) verbunden ist, und wobei ein Ausgang des zweiten Slave-Speicherelementes (74) mit einem dritten Eingang des n-Input-Korrekturelementes verbunden ist.
  12. Speicheranordnung nach Anspruch 11, wobei der Ausgang des Master-Speicherelementes (72) über ein Verzögerungselement (76) mit dem ersten Eingang des n-Input-Korrekturelementes (75) verbunden ist.
  13. Speicheranordnung nach Anspruch 11 oder 12, wobei n = 3 ist.
  14. Speicherelementanordnung nach Anspruch 2 und nach Anspruch 9, wobei N > 4 ist, und wobei die mindestens vier Speicherelemente ein erstes Master-Slave-Flipflop und ein zweites Master-Slave-Flipflop mit jeweils einem als Master-Latch eingerichteten Speicherelement und einem als Slave-Latch eingerichteten Speicherelement bilden, wobei ein Ausgang des Slave-Latches des ersten Master-Slave-Flipflops mit einem ersten Eingang des n-Input-Korrekturelementes verbunden ist, wobei ein Ausgang des Slave-Latches des zweiten Master-Slave-Flipflops mit einem zweiten Eingang des n-Input-Korrekturelementes verbunden ist, wobei ein Ausgang des Master-Latches des ersten Master-Slave-Flipflops mit einem ersten Eingang eines Logikgatters (85, 89) gekoppelt ist, wobei das Logikgatter mindestens zwei Eingänge und einen Ausgang aufweist, wobei ein Ausgang des Master-Latches des zweiten Master-Slave-Flipflops mit einem zweiten Eingang des Logikgatters (85, 89) verbunden ist, und wobei der Ausgang des Logikgatters (85, 89) mit einem dritten Eingang des n-Input-Korrekturelementes gekoppelt ist.
  15. Speicheranordnung nach Anspruch 14, wobei n = 3 und N = 4 ist.
  16. Speicherelementanordnung nach Anspruch 14 oder 15, weiter umfassend ein Verzögerungselement (810), welches zwischen dem Logikgatter (89) und dem n-Input-Korrekturelement (88) angeordnet ist.
  17. Speicherelementanordnung nach einem der vorhergehenden Ansprüche, weiter umfassend mindestens ein mindestens einem der Speicherelemente nachgeschaltetes Verzögerungselement, wobei das Verzögerungselement eingerichtet ist, ein Vorliegen von Ausgangssignalen der Speicherelemente zu synchronisieren.
  18. Speichervorrichtung, umfassend: einen Speicher (1110) mit einer Vielzahl von Speicherelementanordnungen (111119) nach einem der Ansprüche 1–17, und eine Speichersteuerung (1111) zum Schreiben von Daten in den Speicher (1110) und zum Auslesen von Daten aus dem Speicher (1110).
  19. Verfahren, umfassend: Schreiben eines Datenwertes in mindestens drei Speicherelemente, Auslesen der Datenwerte aus den mindestens drei Speicherelementen (2022) und Ausgeben eines korrigierten Datenwertes auf Basis der ausgelesenen Datenwerte derart, dass, wenn die ausgelesenen Datenwerte übereinstimmen, dieser übereinstimmende Datenwert ausgegeben wird, und bei mindestens einem Zustand, in dem die Datenwerte nicht übereinstimmen, ein vorher ausgelesener Datenwert ausgegeben wird.
  20. Verfahren nach Anspruch 19, wobei bei jedem Zustand, bei welchem die Datenwerte nicht übereinstimmen, ein vorher ausgelesener Datenwert ausgegeben wird.
  21. Verfahren nach Anspruch 19 oder 20, weiter umfassend Verknüpfen von mindestens zweien der Datenwerte mit einer Logikfunktion, um einen verknüpften Datenwert zu bilden, und Ausgeben eines vorher ausgelesenen Datenwertes, wenn die nicht mit der Logikfunktion verknüpften Datenwerte und der verknüpfte Datenwert nicht alle den gleichen Wert aufweisen.
  22. Verfahren nach einem der Ansprüche 19 bis 22, wobei das Ausgeben des korrigierten Datenwerts durchgeführt wird, während sich die Speicherelemente beispielsweise in einem Wartezustand befinden.
DE102012105159.3A 2012-06-14 2012-06-14 Fehlertolerante Speicher Expired - Fee Related DE102012105159B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102012105159.3A DE102012105159B4 (de) 2012-06-14 2012-06-14 Fehlertolerante Speicher
US13/914,073 US9424124B2 (en) 2012-06-14 2013-06-10 Error-tolerant memories
CN201310236833.3A CN103514962B (zh) 2012-06-14 2013-06-14 容错存储器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012105159.3A DE102012105159B4 (de) 2012-06-14 2012-06-14 Fehlertolerante Speicher

Publications (2)

Publication Number Publication Date
DE102012105159A1 true DE102012105159A1 (de) 2013-12-19
DE102012105159B4 DE102012105159B4 (de) 2017-02-23

Family

ID=49667856

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012105159.3A Expired - Fee Related DE102012105159B4 (de) 2012-06-14 2012-06-14 Fehlertolerante Speicher

Country Status (3)

Country Link
US (1) US9424124B2 (de)
CN (1) CN103514962B (de)
DE (1) DE102012105159B4 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105391430B (zh) * 2015-12-14 2024-06-07 深圳市超聚微电子科技有限公司 一种复用两数据输入主从型d触发器
US9987962B1 (en) 2017-03-09 2018-06-05 Ford Global Technologies, Llc Vehicle haptic feedback as a function of sensed capacitance
KR102627943B1 (ko) * 2018-12-13 2024-01-22 삼성전자주식회사 반도체 회로 및 반도체 회로의 레이아웃 시스템
US10868524B2 (en) * 2018-12-13 2020-12-15 Samsung Electronics Co., Ltd. Semiconductor circuit and semiconductor circuit layout system
US11281535B2 (en) 2020-03-06 2022-03-22 Dell Products L.P. Method and system for performing a checkpoint zone operation for a spare persistent storage
EP4024398A1 (de) * 2020-12-30 2022-07-06 IHP GmbH - Innovations for High Performance Microelectronics / Leibniz-Institut für innovative Mikroelektronik Fehlertolerante sequenzielle speicherzelle und testverfahren für die speicherzelle

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100026338A1 (en) * 2008-07-30 2010-02-04 Raytheon Company Fault triggerred automatic redundancy scrubber

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496075B2 (en) * 2001-03-14 2002-12-17 Ericsson Inc. Automatic tuning of VCO
US6925558B2 (en) * 2001-03-29 2005-08-02 Intel Corporation System and method for selecting and loading configuration data into a register through the use of a first and second reset signal
JP4413091B2 (ja) * 2004-06-29 2010-02-10 株式会社ルネサステクノロジ 半導体装置
JP5493934B2 (ja) * 2010-02-03 2014-05-14 ソニー株式会社 デューティ補正回路、遅延同期ループ回路、カラムa/d変換器、固体撮像素子およびカメラシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100026338A1 (en) * 2008-07-30 2010-02-04 Raytheon Company Fault triggerred automatic redundancy scrubber

Also Published As

Publication number Publication date
US9424124B2 (en) 2016-08-23
US20130339819A1 (en) 2013-12-19
CN103514962B (zh) 2017-06-16
CN103514962A (zh) 2014-01-15
DE102012105159B4 (de) 2017-02-23

Similar Documents

Publication Publication Date Title
DE102012105159B4 (de) Fehlertolerante Speicher
DE102005060394B4 (de) Schaltungsanordnung und Verfahren zum Betreiben einer Schaltungsanordnung
DE69030528T2 (de) Verfahren und Anordnung zum Testen von Schaltungsplatten
DE102011112174A1 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
DE102021128331B3 (de) Integrierte schaltung, testanordnung und verfahren zum testen einer integrierten schaltung
DE102016118534A1 (de) Schaltung und Verfahren zum Prüfen der Integrität eines Steuersignals
DE102008013099A1 (de) Speichertestschaltung
DE3782020T2 (de) Elektronischer zaehler.
DE102021123889B3 (de) Integrierte schaltung, testanordnung und verfahren zum testen einer integrierten schaltung
DE112015002991T5 (de) Verfahren zum Managen des Betriebs einer redundanten Mehrheitsentscheidungsschaltung und zugehörige Vorrichtung
DE10243765A1 (de) Halbleitervorrichtung mit Verzögerungskorrekturfunktion
DE102012102080A1 (de) Fehlertolerante Flip-Flops
DE10347467A1 (de) Frequenzmultiplizierer und zugehöriges Multiplizierverfahren sowie Datenausgabepuffer und Halbleiterbaustein
EP1170754A1 (de) Chip-ID-Register-Anordnung
DE69931512T2 (de) Phasendifferenzvergrösserer
DE102019131211A1 (de) Echtzeituhrvorrichtung und Verfahren für deren Betrieb
DE102006019426B4 (de) Speichermodulsteuerung, Speichersteuerung und entsprechende Speicheranordnung sowie Verfahren zur Fehlerkorrektur
EP1721407A1 (de) Schnittstellenvorrichtung und verfahren zur synchronisation von daten
DE102021107879A1 (de) Fehlertolerante sequenzielle Speicherzelle und Testverfahren für die Speicherzelle
DE102006027448A1 (de) Schaltungsanordnung
DE102019113970B4 (de) Erkennung von adressfehlern
DE112020002008T5 (de) Schaltung zur erzeugung eines synchronen rücksetzsignals und digitale verarbeitungsvorrichtung
DE102010006383B4 (de) Elektronische Schaltungsanordnung zum Verarbeiten von binären Eingabewerten
EP1224547B1 (de) Integrierter elektronischer baustein mit duplizierter kernlogik und hardware-fehlereinspeisung für prüfzwecke
DE102017203483A1 (de) Verfahren zum Überprüfen einer Adresse bei einer Datenübertragung

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
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee