DE102005016051A1 - Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers - Google Patents

Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers Download PDF

Info

Publication number
DE102005016051A1
DE102005016051A1 DE102005016051A DE102005016051A DE102005016051A1 DE 102005016051 A1 DE102005016051 A1 DE 102005016051A1 DE 102005016051 A DE102005016051 A DE 102005016051A DE 102005016051 A DE102005016051 A DE 102005016051A DE 102005016051 A1 DE102005016051 A1 DE 102005016051A1
Authority
DE
Germany
Prior art keywords
memory
parity
values
column
columns
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
DE102005016051A
Other languages
English (en)
Other versions
DE102005016051B4 (de
Inventor
Udo Ausserlechner
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 DE102005016051.4A priority Critical patent/DE102005016051B4/de
Priority to US11/278,889 priority patent/US7620884B2/en
Publication of DE102005016051A1 publication Critical patent/DE102005016051A1/de
Application granted granted Critical
Publication of DE102005016051B4 publication Critical patent/DE102005016051B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Eine Speicherüberprüfungsvorrichtung ist geeignet, um einen Speicher (600) mit Speicherzellen zu überprüfen, die in Speicherzeilen und Speicherspalten angeordnet sind und binäre Werte haben, wobei der Speicher in einem integeren Zustand, der belegt ist, dass sich Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleicher Paritätswertberechnungsvorschrift voneinander unterscheiden oder bei unterschiedlichen Paritätswertberechnungsvorschriften voneinander unterscheiden oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind. Die Speicherüberprüfungsvorrichtung umfasst dabei einen Leser (100) zum Auslesen der binären Speicherwerte der zwei Speicherspalten oder der zwei Speicherzeilen. Ferner umfasst die Speicherüberprüfungsvorrichtung eine Prüfeinrichtung (102), die ausgebildet ist, um für die zwei Speicherspalten oder die zwei Speicherzeilen den Paritätswert gemäß der für die entsprechende Speicherspalte oder Speicherzeile gültigen Berechnungsvorschrift zu berechnen und mit einem erwarteten Paritätswert für den integeren Zustand zu vergleichen und im Falle einer Abweichung einen Hinweis auf einen Fehler in einer der Zeilen oder einer der Spalten zu liefern, um hierdurch den Speicher (600) zu überprüfen.

Description

  • Die vorliegende Erfindung bezieht sich auf das technische Gebiet der Halbleiterspeicher und insbesondere bezieht sich die vorliegende Erfindung auf das technische Teilgebiet der Überprüfung der Integrität von Halbleiterspeichern für Sensoren, wie sie beispielsweise in der Kraftfahrzeugelektronik eingesetzt werden.
  • Moderne integrierte Sensoren enthalten einen kleinen Datenspeicher in der Größe von 10 Bit bis 1000 Bit, um damit die Kalibrierdaten eines Sensors am Chip zu speichern. Für Automotiv-Anwendungen wird dabei eine hohe Zuverlässigkeit gefordert, so dass es erforderlich ist, die Integrität der Daten mit bekannten Verfahren fehlererkennender und fehlerkorrigierender Codes (FEC-Codes = forward error correcting codes = vorwärts fehlerkorrigierende Codes) zu gewährleisten.
  • Da die Speichergröße also im Vergleich zu heute üblichen Datenerhaltungssystemen sehr gering ist und man andererseits aus Gründen der Ökonomie gezwungen ist, ein möglichst einfaches System zu implementieren, ist als FEC-Verfahren der Matrix-Parity-Check weit verbreitet. Um den Matrix-Parity-Check näher zu erläutern, ist in 6 ein Speicher 600 symbolisch dargestellt. Der Speicher 600 hat eine Wortbreite von 16 Bit, wobei die einzelnen Bits der Worte durch die Bitnummern 602 bezeichnet werden, wie sie in 6 in der Zeile über dem Speicher 600 dargestellt sind (d.h. die Spalten 0 bis 15 bezeichnen die einzelnen Bits der entsprechenden Worte). Ferner umfasst der Speicher 600 einen Adressbereich von 15 Wörtern, wobei jedes Wort in eine Zeile 604 eingeschrieben werden kann, wodurch die 15 Wörter in dem Speicher 600 durch die Zeilenadresse addr i = 0 ... 14 adressiert werden können. Die Aufteilung in zwei Datenbereiche (user und precal data) kann hier ignoriert werden. Auf der Adresse 0 werden Zeilenparity-Bits gespeichert, auf der Spalte 15, die durch das Bezugszeichen 606 gekennzeichnet ist, werden entsprechende Spaltenparity-Bits gespeichert. Weiter ist mit der Bezeichnung „row parity" (Bezugszeichen 608) die errechnete Parity pro Zeile dargestellt (diese wird jedoch nicht abgespeichert, sondern beim Auslesen einer Zeile berechnet). Ebenso ist mit „column parity" (Bezugszeichen 610) die errechnete Parity pro Spalte dargestellt (diese wird ebenfalls nicht abgespeichert, sondern beim Auslesen der Zeile berechnet).
  • Die Funktionsweise des vorstehend beschriebenen Matrix-Parity-Checks kann wie folgt beschrieben werden. Die für einen Sensor benötigen Kalibrierdaten werden in die Adressen 1 bis 14 und die Spalten 0 bis 14 einprogrammiert. Jedes Wort wird mit einem Parity-Bit versehen, das in der Spalte 15 einprogrammiert wird. Das Parity-Bit ist so zu wählen, dass die Anzahl der Einsen pro Zeile gerade ist (= even parity). In Adresse 0 wird die Parityzeile – das heißt die Gesamtheit aller Spaltenparitybits – gespeichert; diese wird so berechnet, dass die Anzahl der Einsen pro Spalte ebenso gerade ist. Hierbei ist anzumerken, dass als Spaltenparity die Parity aller Zellen einer Spalte (also für die Zeilen 1 ... 15) und als Zeilenparity die Parity aller Zellen einer Zeile (also für alle Spalten 0 .. 15 einer Zeile) bezeichnet wird. Im gegensatz dazu wird als Parityzeile diejenige Zeile (in dem Beispiel in der Adresse 0 gespeichert) bezeichnet, in der keine Daten stehen sondern nur Spaltenparitybits, d.h. die Redundanzinformation zur Fehlererkennung und -korrektur enthalten. Analog wird als Parityspalte diejenige Spalte (im Beispiel die Spalte mit der Adresse 0) bezeichnet, die keine Daten sondern nur Zeilenparitybits enthält, die Redundanzinformation zur Fehlererkennung bzw. -korrektur enthalten.
  • Beim Auslesen der Daten wird die Anzahl der Einsen pro Spalte und Zeile gezählt. Ist sie ungerade, so muss zumindest ein Bit in der betreffenden Zeile oder Spalte gekippt sein. Wie dies beispielsweise in 7 anhand des Bits in Spalte Nummer 7 und Zeile Nummer 10 dargestellt ist. Technisch ist das Zählen der Anzahl an Einsen im gesamten Speicher umständlich. Daher wird nur die Anzahl der Einsen pro Spalte andauernd berechnet, indem die Bits einer Spalte mit einem EXKLUSIV-ODER-Gatter verknüpft werden (beispielweise in Form einer hard coded logic). Dies bedeutet dann, dass beispielsweise das Bit der Adresse 0, Spalte 7 mit dem Bit der Adresse 1, Spalte 7, dem Bit der Adresse 2, Spalte 7, ..., und dem Bit der Adresse 14, Spalte 7 EXKLUSIV-ODER verknüpft wird, um das Bit in der Column-Parity-Zeile (d.h. das Bit Nr. 7 der Zeile 610) für die Spalte 7 zu erreichen. Formal kann eine derartige Operation folgendermaßen dargestellt werden:
    Bit (Adresse 0, Spalte 7) ⊕ Bit (Adresse 1, Spalte 7) ⊕ ... ⊕ Bit (Adresse 14, Spalte 7) = Columnparity <7>. Dabei bedeutet das Symbol ⊕ eine XOR-Verknüpfung (=EXKLUSIV-ODER-Verknüpfung), was einer Addition Modul 2 gleichkommt. Ist Columnparity <7> = 0, so ist die Anzahl der Einsen in der Spalte 7 gerade, d.h. es wurde kein Bitfehler in dieser Spalte entdeckt.
  • Ist Columnparity <7> = 1, so ist die Anzahl der Einsen in der Spalte 7 ungerade, d.h. es wurde ein Bitfehler in dieser Spalte entdeckt. Beim Auslesen einer Zeile – wie sie in 7 durch die hervorgehobene Adressezeile 10 markiert ist – wird diese in ein Ausleseregister 612 kopiert, wo alle Zellen dieses Registers mit XOR (= EXKLUSIV-ODER) verknüpft werden, um die Zeilenparity zu berechnen. Formal lässt sich eine derartige Operation zur Ermittlung des Reiehenparitätsbits 614 durch die folgende Gleichung beschreiben:
    Row parity = Bit <0> ⊕ Bit <1> ⊕ ... ⊕ Bit <15>.
  • Weiterhin ist in den 6 und 7 noch dargestellt, wie im Falle einer Fehlerdetektion, (d.h. wenn die Row parity = 1 ist) ein erkannter Fehler automatisch korrigiert werden kann.
  • Dies erfolgt dadurch, dass das Rowparity-Bit 614 in einem UND-Gatter 616 mit einem Fehlerkorrektur-Enable-Signal fec_en_i verknüpft wird, wobei das Fehlerkorrektur-Enable-Signal einen logischen Wert von 1 annimmt, wenn eine Vorwärtsfehlerkorrektur durchgeführt werden soll. Das aus dem UND-Gatter 616 resultierende Signal wird als Eingangssignal eines weiteren UND-Gatters 618 verwendet, an dessen zweiten Eingang die Werte der Columnparity 610 angelegt werden, so dass als Ausgangssignal des UND-Gatters 618 ein 16 Bit breites Wort ausgegeben wird, in welchem die Stellen des in der entsprechenden Adresszeile addr_i, die korrigiert werden sollen, mit einem binären Wert von 1 codiert sind, während die nicht zu korrigierenden Stellen mit dem binären Wert von 0 codiert sind. Dieses Ausgangssignal des UND-Gatters 618 wird dann als ein Eingangssignal einem EXKLUSIV-ODER-Gatters 620 zugeführt, an dessen zweitem Eingang das 16 Bit breite Wort aus dem Register 612 angelegt wird. Hierbei wird eine spaltenweise EXKLUSIV-ODER-Verknüpfung durchgeführt, wobei die entsprechend gekippten Bits des in dem Register 612 gespeicherten Wortes korrigiert werden können.
  • Zur Verdeutlichung wird nochmals angeführt, dass als Parity eigentlich die Anzahl der Einsen in einem Datenwort bezeichnet wird. Even parity ist dann gegeben, wenn diese Anzahl gerade is, sonst ist odd parity gegeben. Der Speicherinhalt besteht daher aus Nutzdaten und zusätzlichen Paritybits.
  • In dem vorstehend dargestellten Beispiel waren die Zeile auf Adresse 0 sowie in allen anderen Adressen die Spalte 15 Patitybits. Die Nutzdaten waren in den Spalten 0 ... 14 und in den Zeilen 1 .. 14 angeordnet. Die Parityberechnung erstreckt sich über die Nutzdaten plus Paritybit plus Paritymaske.
  • Die Eigenschaften des Matrix-Parity-Checks zur Fehlererkennung lassen sich wie folgt zusammenfassen. Es kann mit Sicherheit erkannt werden, wenn ein oder zwei Bits gekippt sind; kippt nur ein Bit, so stimmt die Parity in der betref fenden Zeile und Spalte nicht, sind zwei Bits in unterschiedlichen Spalten und Zeilen gekippt, so zeigen alle Spalten und Zeilen das durch eine falsche Parity in den entsprechenden Zeilen und Spalten an. Sind zwei Bits in der gleichen Zeile gekippt, so stimmt zwar die Zeilenparity, nicht aber die Spaltenparity. Analoges gilt auch für das Kippen von zwei Bits in der gleichen Spalte. Auch beim Kippen von drei Bits wird sicher zumindest ein gekipptes Bit als fehlerhaft erkannt.
  • Außerdem kann ein einzelnes gekipptes Bit sogar automatisch korrigiert werden, da seine Position durch die falsche Zeilen- und Spaltenparity ermittelt werden kann, kann es beim Auslesen invertiert und somit der ursprüngliche Zustand wieder hergestellt werden (= automatische Fehlerkorrektur).
  • Ein solches Verfahren eignet sich somit vorzüglich, um kleine Defekte, die nur wenige Bits betreffen, anzuzeigen und eventuell sogar zu beheben (wenn nämlich nur 1 Bit gekippt ist). Somit können Ausfälle, die durch heute übliche kleine Defektdichteprobleme zustanden kommen, behoben werden.
  • Problematisch erweist sich das oben beschriebene Verfahren jedoch darin, dass der Ausfall des ganzen Speichers oder eines Teilbereichs des Speichers mit geradzahliger Anzahl an Zeilen und Spalten nicht erkannt werden kann. Im Folgenden wird ein derartiger Teilbereich eines Speichers als „gerader Block" bezeichnet.
  • Ein solcher Ausfall eines geraden Blocks kann beispielsweise durch einen Kurzschluss aller Zellen einer Spalte nach Masse (= stuck-at-low) oder nach Betriebsspannung (=stuck-at-high) verursacht sein. Ebenso ist es denkbar, dass der Lesestrom zum Auslesen der Zellen durch einen Defekt zu klein oder zu groß wird, was dazu führen kann, dass alle Zellen als digitale „1" oder digitale „0" ausgelesen werden. Eventuell kann der gesamte Speicher durch unzulässig hohe ESD- (ESD = e lectrostatic discharge = elektrostatische Entladung) oder EMV-Belastung (EMV = elektromagnetische Verträglichkeit) ungewollt auf „1" oder „0" programmiert werden.
  • Eine mögliche Lösung gegen derartige Probleme könnte darin bestehen, dass durch geeignete Codierung der zu speichernden Daten sichergestellt ist, dass die Speicherinhalte „alles 1" bzw. „alles 0" kein gültiger Datensatz sind, d.h. diese Speicherinhalte nie programmiert werden. Eine Auswerteschaltung müsste dann im Betrieb kontinuierlich alle Daten auslesen und die Anzahl der Einsen und Nullen aufsummieren. Wenn diese ein festgesetztes Limit überschreiten, wird dieses als Fehler erkannt. Diese Auswerteschaltung ist jedoch aufwendig, kompliziert und fehleranfällig (weil sie sequentiell arbeitend eine hohe Anzahl von Arbeitsschritten ausführen muss), relativ viel Platz auf dem Chip einnimmt verglichen mit dem kleinen Datenspeicher und ferner auch ineffizient ist, da sie nur den vollkommen gelöschten oder gesetzten Speicher erkennen kann, nicht aber den Ausfall eines geraden Blocks.
  • Die Aufgabe der vorliegenden Erfindung besteht daher darin, eine Möglichkeit zu schaffen, den Ausfall eines Teilbereichs eines Speichers auf einfache, sichere und kostengünstige Weise zu erkennen, um die vorstehend genannten Probleme im Stand der Technik zu vermeiden.
  • Diese Aufgabe wird durch eine Speicherüberprüfungsvorrichtung gemäß Anspruch 1, eine Verfahren zum Überprüfen eines Speichers gemäß Anspruch 10, eine Speicherbelegungsvorrichtung gemäß Anspruch 11 oder ein Verfahren zum Belegen eines Speichers gemäß Anspruch 22 gelöst.
  • Die vorliegende Erfindung schafft eine Speicherüberprüfungseinrichtung für einen Speicher mit Speicherzellen, die in Speicherzeilen und Speicherspalten angeordnet sind und binäre Speicherwerte aufweisen, wobei der Speicher in einem integeren Zustand derart belegt ist, dass Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleichen Paritätswertberechnungsvorschriften voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind, wobei die Speicherüberprüfungsvorrichtung folgende Merkmale umfasst:
    einen Leser zum Auslesen der binären Speicherwerte der zwei Speicherspalten oder der zwei Speicherzeilen; und
    eine Prüfeinrichtung, die ausgebildet ist, um für die zwei Speicherspalten oder die zwei Speicherzeilen den Paritätswert gemäß der für die entsprechende Speicherspalte oder die entsprechende Speicherzeile gültigen Berechnungsvorschrift zu berechnen und mit einem erwarteten Paritätswert für den integeren Zustand zu vergleichen und im Falle einer Abweichung einen Hinweis auf einen Fehler in einer der Speicherzeilen oder einer der Speicherspalten zu liefern, um hierdurch den Speicher zu überprüfen.
  • Ferner schafft die vorliegende Erfindung ein Verfahren zum Überprüfen eines Speichers mit Speicherzellen, die in Speicherzeilen und Speicherspalten angeordnet sind und binäre Speicherwerte aufweisen, wobei der Speicher in einem integeren Zustand derart belegt ist, dass sich Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleichen Paritätswertberechnungsvorschriften voneinander unterscheiden oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind, wobei die das Verfahren die folgenden Schritte umfasst:
    Auslesen der binären Speicherwerte der zwei Speicherspalten oder der zwei Speicherzeilen; und
    Berechnen des Paritätswertes für die zwei Speicherspalten oder die zwei Speicherzeilen gemäß der für die entsprechende Speicherspalte oder die entsprechende Spei cherzeile gültigen Berechnungsvorschrift und Vergleichen der berechneten Paritätswerte mit einem erwarteten Paritätswert für den integeren Zustand;
    Liefern eines Hinweises auf einen Fehler in einer der Speicherzeilen oder einer der Speicherspalten im Falle einer Abweichung des berechneten Paritätswertes von einem erwarteten Paritätswert für den integeren Zustand, um hierdurch den Speicher zu überprüfen.
  • Ferner schafft die vorliegende Erfindung eine Speicherbelegungsvorrichtung für einen Speicher mit Speicherzellen, die in Speicherzeilen und Speicherspalten angeordnet sind und binäre Speicherwerte speichern können, wobei die Speicherbelegungsvorrichtung folgende Merkmale aufweist:
    eine Einrichtung zum Bestimmen der Speicherwerte, die in den entsprechenden Speicherzellen des Speichers abzuspeichern sind, wobei die Einrichtung zum Bestimmen ausgebildet ist, um die Speicherwerte derart zu bestimmen, dass Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleicher Paritätswertberechnungsvorschrift voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind; und
    einem Schreiber zum Einschreiben der durch die Einrichtung zum Bestimmen bestimmter Speicherwerte in die entsprechenden Speicherzellen des Speichers, um den Speicher zu belegen.
  • Ferner schafft die vorliegende Erfindung ein Verfahren zum Belegen von Speicherzellen eines Speichers, die in Speicherzeilen und Speicherspalten in dem Speicher angeordnet sind und binäre Speicherwerte speichern können, wobei das Verfahren folgenden Schritte aufweist:
    Bestimmen der Speicherwerte, die in den entsprechenden Speicherzellen des Speichers abzuspeichern sind, wobei das Bestimmen derart erfolgt, dass Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleicher Paritätswertberechnungsvorschrift voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind; und
    Einschreiben der bestimmten Speicherwerte in die entsprechenden Speicherzellen des Speichers, um den Speicher zu belegen.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass ein Fehler in einem geraden Block dann erkannt werden kann, wenn zwei Zeilenparities für zwei Zeilen des betrachteten geraden Blocks oder zwei Spaltenparities für zwei Spalten des betrachteten geraden Blocks bei gleicher Berechnungsvorschrift für die entsprechenden Zeilenparities bzw. Spaltenparities gleich sind. Dies setzt voraus, dass die in den Speicherzellen des Speichers eingespeicherten Werte derart ausgewählt wurden, dass bei einem integereren Zustand, d.h. bei einem fehlerfreien Zustand des Speichers, die entsprechenden Zeilenparities für die betrachteten Speicherzeilen voneinander unterschiedlich sind oder die entsprechenden Spaltenparities für die betreffenden Speicherspalten voneinander unterschiedlich sind. In einem bevorzugten Ausführungsbeispiel können die zwei betrachteten Zeilen oder die zwei betrachteten Spalten des Speichers direkt benachbart angeordnet sein. Wird beispielsweise für eine erste Zeile eine Zeilenparity von 1 bestimmt, während für die direkt benachbarte Zeile des Speichers eine Zeilenparity von 0 bestimmt, kann bei einem stuck-at-low-Fehler des geraden Blocks mit den beiden Zeilen dann ein Fehler erkannt werden, wenn die beiden Zeilenparities den binären Wert von 0 haben. In diesem Fall wird nämlich für die erste Zeile kein binärer Wert von 1 in dieser ersten Zeile enthalten sein, wodurch auch die Zeilenparity für diese erste Zeile 0 sein wird. Andererseits wird auch in der zweiten Zeile des durch einen stuck-at-low-Fehlers beeinträchtigen geraden Blocks ebenfalls kein logischer Wert von 1 enthalten sein, so dass auch die Zeilenparity für die zweite Zeile den Wert von 0 aufweist. Wenn jedoch durch eine entsprechende Belegung der Speicherwerte des Speichers eine Zeilenparity von 1 für die zweite Zeile resultieren müsste, kann somit durch die Detektion des tatsächlichen Wertes der Zeilenparity von 0 für die zweite Zeile ein Fehler erkannt werden. Analoges gilt gleichfalls auch für die Detektion von Fehlern in einem geraden Block, wenn diese Detektion auf der Basis von Spalten und entsprechenden Spaltenparities erfolgt. Allgemein gesagt kann somit durch eine entsprechende Vorbelegung des Speichers unter Verwendung von unterschiedlichen Parities für die einzelnen Zeilen des Speichers ein Fehler in einem geraden Block bzw. einem Teilspeicher erkannt werden.
  • Abhängig von der Berechnungsvorschrift für die entsprechenden Zeilen- bzw. Spaltenparities kann auch ein Fehler erkannt werden, wenn die beiden Zeilenparities für zwei Zeilen des zu untersuchenden geraden Blocks voneinander verschieden sind. Dies kann beispielsweise dadurch bedingt sein, dass die Zeilenparity für die erste Zeile durch eine EXKLUSIV-ODER-Verknüpfung der einzelnen Speicherwerte durchgeführt wird, die in den Speicherzellen der ersten Speicherzeile gespeichert sind. Für die Berechnung der zweiten Zeilenparity für die zweite Zeile kann dann beispielsweise wiederum eine EXKLUSIV-ODER-Verknüpfung der Speicherwerte erfolgen, die in den einzelnen Speicherzellen der zweiten Speicherzeile gespeichert sind. Hiernach kann jedoch dann eine Invertierung des aus der EXKLUSIV-ODER-Verknüpfung der Speicherwerte der zweiten Speicherzeile erhaltenen Wertes erfolgen, um die Zeilenparity für die zweite Speicherzeile zu erhalten. In diesem Fall würde dann die Parityberechnungsvorschrift für die erste Speicherzeile und die zweite Speicherzeile voneinander unterschiedlich sein, wodurch dann ein Fehler erkannt wird, wenn sich die beiden berechneten Zeilenparities voneinander unterscheiden. In diesem Fall bräuchte nicht einmal der Speicher anders belegt zu werden, sondern es ist lediglich die Berechnungsvorschrift für die einzelnen Zeilenparities in den entsprechenden Zeilen mit der zugehörigen Auswertungsvorschrift zu beachten. Die gleiche Argumentation gilt natürlich auch bei der Erkennung von Fehlern eines geraden Blocks unter Verwendung von zwei Spalten und zwei entsprechenden Spaltenparities.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend anhand der beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1A ein Blockdiagramm eines Ausführungsbeispiels der erfindungsgemäßen Speicherüberprüfungsvorrichtung;
  • 1B ein Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Speicherbelegungsvorrichtung;
  • 2 eine tabellarische Darstellung zur Belegung des Speichers, um den erfindungsgemäßen Ansatz umsetzen zu können;
  • 3 eine weitere tabellarische Darstellung, um die Belegung des Speichers zu erläutern, die notwendig ist, um den erfindungsgemäßen Ansatz einsetzen zu können;
  • 4 eine Darstellung einer Herleitung für eine Berechnungsvorschrift für die Belegung des Speichers, um den erfindungsgemäßen Ansatz umsetzen zu können;
  • 5 eine Darstellung einer weiteren Belegungsvorschrift, um den Speicher zu belegen, damit der erfindungsgemäße Ansatz eingesetzt werden kann;
  • 6 eine Darstellung einer Speicherbelegung gemäß einem herkömmlichen Ansatz sowie eine Darstellung eines Blockdiagramms zur Korrektur eines Einzelbitfehlers in der Belegung des Speichers; und
  • 7 eine Darstellung, wie sich das Auftreten eines Einzelbitfehlers in dem Speicher auf die entsprechenden Spalten- und Zeilenparities auswirkt sowie ein Blockdiagramm zur Korrektur eines entsprechend aufgetretenen Einzelbitfehlers.
  • In der nachfolgenden Beschreibung von bevorzugten Ausführungsbeispielen werden gleiche oder ähnliche Elemente mit gleichen oder ähnlichen Bezugszeichen versehen, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.
  • Die 1 zeigt ein Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Speicherüberprüfungsvorrichtung. Hierbei weist die Speicherüberprüfungsvorrichtung einen Leser 100 auf, der ausgebildet ist, um binäre Speicherwerte von zwei Speicherspalten oder von zwei Speicherzeilen des Speichers 600 auszulesen. Der Speicher 600 sollte derart mit Speicherwerten belegt sein, dass die beiden Parities für je eine der beiden Speicherzeilen oder für je eine der beiden Speicherspalten bei gleichen Parityberechnungsvorschriften voneinander unterschiedlich sind oder bei unterschiedlichen Parityberechnungsvorschriften gleich sind. Die von dem Leser 100 ausgelesenen Speicherwerte des Speichers 600 werden dann an die Prüfeinrichtung 102 übertragen, die ausgebildet ist, um für die zwei Speicherspalten oder die zwei Speicherzeilen je einen Paritätswert gemäß der für die entsprechenden Speicherspalten oder Speicherzeilen gültigen Parityberechnungsvorschrift zu berechnen und mit einer erwarteten Parity für den integeren Zustand zu vergleichen und im Falle einer Abweichung einen Hinweis auf einen Fehler in einer der Zeilen oder einer der Spalten zu liefern, um hierdurch den Speicher zu überprüfen.
  • Dieser Hinweis auf einen Fehler in einer der Zeilen oder einer der Spalten kann dann als Ausgangssignal der Prüfeinrichtung 102 ausgegeben werden.
  • In 1B ist ein Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Speicherbelegungsvorrichtung dargestellt. Die Speicherbelegungsvorrichtung umfasst eine Einrichtung 150 zum Bestimmen der Speicherwerte, die in entsprechenden Speicherzellen des Speichers 600 abzuspeichern sind. Hierbei ist die Einrichtung 150 zum Bestimmen ausgebildet, um die Speicherwerte derart zu bestimmen, dass Parities für zwei Speicherzeilen oder für zwei Speicherspalten bei gleichen Parityberechnungsvorschriften voneinander unterschiedlich sind oder bei unterschiedlichen Parityberechnungsvorschriften gleich sind. Die bestimmten Speicherwerte werden nachfolgend von der Einrichtung 150 zum Bestimmen an einen Schreiber 152 übertragen, durch welchen die durch die Einrichtung 150 bestimmten Speicherwerte in die entsprechenden Speicherzellen des Speichers 600 eingeschrieben werden, um den Speicher 600 zu belegen.
  • Hierbei ist anzumerken, dass vorzugsweise die Speicherbelegungsvorrichtung, wie sie beispielsweise in 1B dargestellt ist, werkseitig eingesetzt werden kann, um den Speicher vor der Auslieferung an einen Endkunden oder an einen Zwischenhändler zu beschreiben. Vor der Auslieferung des Speichers 600 kann dadurch sichergestellt werden, dass der Speicher entsprechend der gewünschten Parity-Maske belegt ist, wodurch sich ein Ausfall von Speicherteilen bzw. geraden Blöcken erkennen lässt. Demgegenüber kann die Speicherüberprüfungsvorrichtung, wie sie beispielsweise in 1A dargestellt ist, anwenderseitig eingesetzt werden, beispielsweise in einem Kraftfahrzeug, wenn der Speicher 600 als Speicher für Kalibrierwerte eines Sensors in einer Kraftfahrzeugelektronik eingesetzt wird. Jedoch kann die Speicherüberprüfungsvorrichtung ebenfalls werkseitig eingesetzt werden, beispielsweise im Zusammenhang mit einer entsprechenden Spei cherbelegungsvorrichtung oder wenn die Speicherüberprüfungsvorrichtung weiterhin einen Schreiber zum Einschreiben von Speicherwerten umfasst. Dies bietet dann den Vorteil, vor einem Beschreiben des Speichers 600 ein Überprüfen durchzuführen, ob der Speicher 600 bereits beschrieben ist oder ob einzelne gerade Blöcke fehlerbehaftet sind. Als Anwendungsbereich einer solchen erweiterten Speicherbelegungsvorrichtung wäre beispielsweise die Verwendung einer derartigen Speicherbelegungsvorrichtung denkbar, die in Kraftfahrzeugwerkstätten zur Umprogrammierung des Sensorkalibriermesswertspeichers eingesetzt werden könnten, wenn der Speicher zur Speicherung von Kalibriermesswerten eines Kraftfahrzeugelektroniksensors eingesetzt wird.
  • Im Folgenden wird der Grundgedanke der vorliegenden Erfindung detaillierter erläutert. Entgegen dem herkömmlichen Ansatz, für alle Zeilen und Spalten eine gerade Parity, d.h. ein Parity-Signal mit einem einzigen logischen Wert (immer 0 oder immer 1) zu verwenden, besteht der Kern der vorliegenden Erfindung darin, unterschiedliche Spalten bzw. unterschiedliche Zeilen mit unterschiedlichen Parities zu versehen, wenn eine Berechnungsvorschrift für die Parities identisch ist oder die entsprechenden Zeilen bzw. Spalten des Speichers derart zu belegen, dass sich gleiche Parities ergeben, wenn die Parityberechnungsvorschrift für die Zeilen bzw. Spalten unterschiedlich ist. Beispielsweise kann eine Folge von alternierenden Parities verwendet werden, derart, dass Spalten mit gerader Spaltennummer, d.h. die Spalten 0, 2, 4, 6, ... mit gerader Parity versehen werden, wogegen Spalten mit ungerader Spaltennummer, d.h. die Spalten 1, 3, 5, ..., mit ungerader Parity versehen werden. Als gerade Parity wird dabei ein Zustand bezeichnet, bei der eine gerade Anzahl an Einsen in der betreffenden Zeile/Spalte eingetragen ist, wogegen als ungerade Parity ein Zustand bezeichnet wird, bei dem die Parity einen logischen Zustand von 1 aufweist. Um eine derartige Speicherbelegung zu erreichen, wird eine Parity-Maske vorge sehen, die jeder Spalte ein Parity-Masken-Bit zuordnet, wie es in 2 durch die Parity-Maske 200 erfolgt ist.
  • In 2 ist ein Speicher mit 16 Spalten und 6 Zeilen gezeigt. Die Spalten sind in der obersten Zeile mit Spaltennummern versehen. Die Zeilen sind in der rechtesten Spalte mit Zeilennummern versehen. In der zweiten Zeile sind in fetter Schrift die alternierenden Bits der Parity-Maske aufgetragen, die definieren, dass die Spalten 15, 13, ..., ein mit even parity und die Spalten 14, 12, ..., 2, 0 mit odd parity zu rechnen sind. Die Spalte 15 sowie die Zeile 5 sind wieder die im Speicher selbst abgelegten Parity-Bits, die so gewählt werden, dass z. B. in Spalte 15 die Anzahl der Einsen gerade ist und in Spalte 14 dagegen ungerade ist.
  • Ist das Parity-Masken-Bit gleich 1, so wird die Spalte mit ungerader Parity (auch als odd parity bezeichnet) versehen; ist das Parity-Masken-Bit gleich 0, so wird die Spalte mit even parity (d.h. gerader Parität) berechnet. Diese Änderung gegenüber dem Stand der Technik benötigt keine zusätzlich Chipfläche, weil die in der Speichermatrix vorhandenen EXOR-Gatter (EXOR = EXKLUSIV-ODER) der Adresse 0 mit einem Eingang an den Wert des Bits und mit dem zweiten Eingang an den Wert der Parity-Maske gelegt werden. Demgegenüber liegt im Stand der Technik der zweite Eingang stattdessen immer auf dem logischen Wert LOW. Als Beispiel kann hier die Bestimmung der Speichereinträge für die fünfte Spalte formelhaft dargestellt werden:
    Column parity <5> = parity mask <5> ⊕ Bit (Adresse 0, Spalte 5) ⊕ Bit (Adresse 1, Spalte 5) ⊕ ... ⊕ Bit (Adresse 5, Spalte 5).
  • Tritt im gesamten Speicher ein Defekt auf, so dass alle Bits zu 0 ausgelesen werden, wird das bei der Berechnung der Spaltenparity der Spalten 14, 12, 10, ..., 2, 0 bemerkt, da die Anzahl der Einsen in diesen Spalten keinen ungeraden Wert hat, da alle Bits den binären Wert 0 aufweisen. Selbst wenn nur eine einzige Spalte mit „stuck-at-low" ausfällt, wird das erkannt, solange die Spalte eine gerade Nummer (also eine ungerade Parity) hat. Ungerade Spalten werden so jedoch nicht erkannt. Homogene Blöcke von „stuck-at-low" Ausfällen werden jedoch sicher erkannt, wenn sie zumindest zwei Spalten betreffen.
  • Ähnlich verhält es sich, wenn eine Spalte durch einen „stuck-at-high"-Fehler ausfällt, da diese bei ungeraden Spalten (also bei jenen mit gerader Parity) erkannt wird, bei einzelnen Spalten mit ungerader Parity jedoch nicht, wohl aber, wenn homogene Blöcke von mindestens zwei Spalten ausfallen. Diese alternierende Parity-Codierung ist also recht mächtig, da sie alle Ausfälle von zwei oder mehr (vorzugsweise benachbarten) Spalten sowie die Hälfte aller möglichen Ausfälle einzelner Spalten erkennt.
  • Es kann weiterhin auch eine Erkennung von defekten Zeilen auf eine analoge Art erfolgen, wie dies durch die Parity-Maske für die Spalten möglich ist. Hierzu wäre dann eine entsprechende Parity-Maske für die entsprechenden Zeilen analog zu verwenden.
  • Um neben Ausfällen von Spalten zugleich auch Ausfälle von Zeilen erkennen zu können, lässt sich auch das vorstehend vorgestellte Konzept derart erweitern, dass sowohl Spalten als auch Zeilen mit alternierender Parity versehen werden. Ein derartiger Ansatz ist beispielsweise in 3 tabellarisch dargestellt, wobei neben der Parity-Maske 200 für die Spalten auch eine Parity-Maske 300 für die Zeilen verwendet wird. Die oberste Zeile des Speichers, welche in 3 durch das Bezugszeichen 302 gekennzeichnet ist, hat beispielsweise eine Parity-Maske mit einem binären Wert von 1 und wird somit mit ungerader Parity berechnet, d.h. die Anzahl der Einen in dieser Zeile muss ungerade sein. Hierfür zählen jedoch nur die programmierten Bits inklusive dem Parity-Bit in Spalte 15, d.h. der logische Wert von 1 der Parity-Maske ist exkludiert. Wenn zwei oder mehr benachbarte Zeilen „stuck-at-high"- oder „stuck-at-low"-Ausfälle zeigen, wird dies durch die falsche Parity erkannt. Eine Einzelzeile wird dann erkannt, wenn sie einen stuck-at-low-Ausfall zeigt und zugleich ungerade Parity haben soll (wobei dann immer ein Fehler angezeigt wird) bzw. wenn sie einen „stuck-at-high"-Ausfall zeigt und zugleich gerade Parity haben soll, was nur für eine ungerade Anzahl der Bits in einer Zeile erfüllt ist. Bei einer geraden Anzahl von Bits in einer Zeile ist die Parity gerade bei stuck-at-high-Fehlern, wobei dann kein Fehler auf Grund der Parity der entsprechenden Zeile erkannt werden kann. Verallgemeinert lässt sich dieser Zusammenhang folgendermaßen darstellen: Ist die Parity-Maske 1 so wird mit Sicherheit ein stuck-at-low-Fehler erkannt; ein stuck-at-high-Fehler wird jedoch nur bei gerader Anzahl von Bits in der entsprechenden Zeile/Spalte erkannt, nicht jedoch bei einer ungeraden Anzahl. Ist der Wert der Parity-Maske in der entsprechenden Zeile/Spalte 0, so ist ein stuck-at-low-Fehler in dieser Zeile/Spalte alleine weder für eine gerade noch eine ungerade Anzahl erkennbar, ein stuck-at-high-Fehler wird allerdings für eine ungerade, nicht jedoch für eine gerade Anzahl erkannt.
  • Die alternierende Zeilenparity-Berechnung kann wiederum sehr einfach und billig realisiert werden, indem bei der Modulo-2-Addition aller Bits einer Zeile auch noch das invertierte LSB (LSB = least significant bit = geringstwertiges Bit) der Zeilenadresse hinzuaddiert wird. Dieser Zusammenhang kann durch die nachfolgende Formel verdeutlich werden:
    row parity = NOT (address <0> ⊕ bit <0> ⊕ bit <1> ⊕ ... ⊕ bit <15>.
  • Die Zeilenparity-Maske und die Spaltenparity-Maske sind jedoch nicht beliebig wählbar, sondern müssen aufeinander abgestimmt werden. Dies wird im Folgenden anhand der 4 und 5 näher beschrieben. Im Wesentlichen betrifft die Abstimmung der Zeilenparity-Maske und der Spaltenparity-Maske dasjenige Feld, welches im Kreuzungspunkt der Zeilen- und Spaltenparity steht. Dieses Parity-Bit kann auf zwei Weisen berechnet werden. Einerseits muss es die Parity-Bedingung der Zeile erfüllen, andererseits die Parity-Bedingung der Spalte. Beide Bedingungen dürfen sich nicht widersprechen. Das kann nur dann erreicht werden, wenn die Parity-Masken den im Folgenden abgeleiteten Bedingungen gehorchen.
  • In 4 ist im oberen Teil ein erster Fall für einen Speicher dargestellt, der eine gerade Spaltenanzahl und eine ungerade Zeilenanzahl aufweist. Dasjenige Feld, welches durch Benutzerdatenbits belegt werden kann, ist durch eine Schraffur von links unten nach rechts oben gekennzeichnet. Auf der rechten Seite ist die Spaltenparity-Maske dargestellt, welche durch eine Schraffur von links oben nach rechts unten gekennzeichnet ist. Auf der linken Seite ist die Spalte Nr. 15 als Spaltenparity ausgebildet und durch eine vertikale Schraffur gekennzeichnet. In die Speicherzellen der Spalten 15 werden diejenigen Bits eingespeichert, die bei einer EXKLUSIV-ODER-Verknüpfung der Benutzerdatenbits für eine Zeile erforderlich sind, um das entsprechende Bit (d.h. c oder d) der Spaltenparity-Maske zu erreichen. Weiterhin werden in die Speicherzellen der Zeile 6 diejenigen binären Werte eingespeichert, die bei einer EXKLUSIV-ODER-Verknüpfung der Speicherwerte der einzelnen Spalten erforderlich sind, um die Werte a oder b der entsprechenden Zeilenparity-Maske zu erreichen, wie sie in der obersten Zeile des oberen Teils der 4 dargestellt ist. Wie die einzelnen Werte in den entsprechenden Feldern berechnet werden, kann aus den schematischen Darstellungen im Abschnitt 400 der 4 entnommen werden, wobei das Zeichen ⊕ eine Modulo-2-Addition symbolisiert. Als Ergebnis resultiert, dass bei einer geraden Spaltenanzahl und einer ungeraden Zeilenanzahl, die Parity-Maske für die Parity-Zeile den logischen Wert 1 aufweisen muss, d.h. dass der Wert c = 1 betragen muss.
  • Im unteren Teil der 4 ist derjenige Fall dargestellt, bei dem der Speicher eine gerade Spaltenanzahl und eine gerade Zeilenanzahl aufweist. In diesem Fall ergibt die Berechnung, dass es bei gerader Spalten- und Zeilenzahl keine Einschränkung für die Parity-Masken gibt, d.h. dass für die Werte a und b sowie c und d sowohl die logischen Werte 1 oder 0 in Frage kommen, jedoch mit der Einschränkung, dass a und b voneinander unterschiedlich sind und c und d ebenfalls voneinander unterschiedlich sind.
  • Bezüglich eines dritten Falls, bei dem der Speicher eine ungerade Spaltenanzahl und eine gerade Zeilenanzahl aufweist, ergibt die vorstehende Berechnung, dass die Parity-Maske in der Parity-Spalte einen logischen Wert von 1 aufweisen muss. Hieraus resultiert, dass die Variable b einen logischen Wert von 1 annehmen muss. Ein derartiger Fall ist in 5 im oberen Teil dargestellt.
  • In 5 im unteren Teil ist schließlich der vierte Fall dargestellt, bei dem ein Speicher eine ungerade Spaltenanzahl und eine ungerade Zeilenanzahl aufweist. Die Berechnung bezüglich des vierten Falles ergibt, dass nur dann eine Lösung gefunden werden kann, wenn die Variable a einen Wert aufweist, der gleich dem Wert der Variablen d ist und zugleich die Variable b einen Wert aufweist, der identisch mit dem Wert der Variablen c ist. Dies bedeutet, dass entweder a = 1, b = 0, c = 0 und d = 1 oder a = 0, b = 1, c = 1 und d = 0 gilt.
  • Daraus folgt die allgemeine Regel, dass die Parity-Maske in der Parity-Zeile und in der Parity-Spalte einen logischen wert 1 annehmen sollte. Dies funktioniert für alle vier unterschiedlichen Fälle, wie sie vorstehend dargestellt wurden. Für einzelne Varianten sind auch andere Lösungen möglich – wie oben ausführlich abgeleitet wurde, diese funktionieren aber dann nicht für alle vier Fälle zugleich.
  • Die Zeilenparity muss auch nicht in der höchsten Adresse stehen, sie kann beispielsweise auch an der Adresse 3 oder irgendeiner anderen Adresse im Speicher stehen. Die Spaltenparity muss ebenfalls nicht in der höchstwertigen Spalte stehen, sie kann beispielsweise auch in Spalte 8 oder irgendeiner anderen Spalte eingetragen sein.
  • Zuletzt kann noch erwähnt werden, dass ein eventuelles Lockbit zur Sperrung einer Schreiboperation auf den Speicher, vorzugsweise in Zeilen mit bestimmter Parity platziert werden sollte. Ein Lockbit ist dafür vorgesehen, den Speicher nach dem Programmieren des Lockbits unwiderruflich zu sperren, so dass beispielsweise nach erfolgter Kalibrierung des Sensors keine irrtümliche Umprogrammierung mehr erfolgen kann. Wenn ein solches Lockbit bei einem logischen Wert von 1 locken sollen (d.h. high aktiv sein soll), sollte es sich in einer Zeile befinden, die eine ungerade Parität (d.h. eine odd parity) hat und ebenso in einer Spalte angeordnet sein, die auch eine ungerade Parität aufweist. Alternativ kann auch das Lockbit lediglich in einer Zeile angeordnet sein, die odd parity hat und nicht in einer Spalte angeordnet sein, die odd parity hat, wobei dann lediglich ein Schutz gegen einen Ausfall der betreffenden Zeile gegeben ist, nicht jedoch ein Schutz gegen den Ausfall der entsprechenden Spalte. Analoges gilt auch für die Anordnung des Lockbits in einer entsprechenden Spalte, die odd parity hat und einer Zeile, die keine odd parity hat. Wenn somit später eine ganze Zeile oder Spalte ausfällt (d.h. einen „stuck-at-low"- oder einen „stuck-at-high"-Fehler aufweist), so wird dieser Ausfall erkannt, wenn die Zeile bzw. Spalte lediglich einen binären Wert von 0 in den Speicherzellen aufweist (d.h. wenn also der Speicher nicht schreibgeschützt wäre). Wenn in der entsprechenden Zeile oder Spalte ein stuck-at-high-Fehler auftritt, würde dies jedoch dazu führen, dass der integrierte Schaltkreis als schreibgeschützt angesehen wird und zumindest nicht mehr irrtümlich umprogrammiert werden kann. Umgekehrt gilt auch Ana loges, d.h. wenn ein Lockbit bei einem binären Wert von 0 locken soll (d.h. low aktiv sein soll), so soll es sich in einer Zeile und Spalte befinden, die beide even parity und eine ungerade Anzahl von Zellen pro Spalte/Zeile haben.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Überprüfen eines Speichers oder das Verfahren zum Belegen eines Speichers in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. Mit anderen Worten ausgedrückt, kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.
  • Zusammenfassend lässt sich anmerken, dass die Erfindung im Wesentlichen darin besteht, dass ein Matrix-Parity-Check dadurch erweitert wird, dass den Spalten und/oder Zeilen alternierende bzw. zumindest zwei voneinander unterschiedliche Paritätswerte zugeordnet werden. Damit können Ausfälle ganzer Zeilen und ganzer Spalten erkannt werden. Eine derartige Paritätswertverteilung wird implementiert, indem beispielsweise eine Parity-Maske Modulo-2 addiert wird zur Summe der Spaltenbits sowie das invertierte oder nicht-invertierte LSB der Adresse zur Summe der Zeilenbits Modulo-2 addiert wird.
  • Ferner kann auch ein high-aktives Lockbit in einer Zeile und Spalte mit ungerader Parity untergebracht sein oder ein low-aktives Lockbit in einer Zeile und/oder Spalte mit gerader Parity untergebracht sein.
  • Der Kern der vorliegenden Erfindung besteht somit darin, dass die Paritymaske bei gleicher Berechnungsvorschrift sowohl Einsen und Nullen oder bei unterschiedlicher Berechnungsvorschrift gleiche Werte enthält. Vorzugsweise können diese Werte bzw. Berechnungsvorschriften alternierend aufeinanderfolgenden Zeilen/Spalten zugewiesen sein. Als Parityzeile wurde in dem beschriebenen Beispiel die Zeile mit der Adresse 0 gewählt, als Parityspalte wurde die Spalte 15 gewählt. Demgegenüber bezeichnet der Begriff „Zeilenparity" das Ergebnis der Berechnung der Parity beispielsweise einer ganzen Zeile (inclusive dem Paritybit in dieser Zeile). Analog bezeichnet der Begriff „Spaltenparity" das Ergebnis der Berechnung beispielsweise einer ganzen Spalte inclusive des Paritybits in der entsprechenden Spalte.
  • 100
    Leser
    102
    Prüfeinrichtung
    150
    Einrichtung zum Bestimmen der Speicherwerte, die in
    entsprechenden Speicherzellen des Speichers zu
    speichern sind
    200
    Parity-Maskenzeile
    300
    Parity-Maskenspalte
    302
    erste Zeile des Speichers
    400
    schematisch dargestellte Berechnungsvorschriften
    für Spaltenparity oder Zeilenparity
    600
    Speicher
    602
    Spaltennummer
    604
    Adresszeile
    606
    letzte Spalte des Speichers 600
    608
    Parity für Zeilen (Zeilenparity, Row Parity)
    610
    Parity für Spalten (Spaltenparity, Column Parity)
    612
    Register
    614
    Aus dem Register 612 ermittelter Zeilenparitätswert
    616
    UND-Gatter
    618
    UND-Gatter
    620
    XOR-Gatter

Claims (23)

  1. Speicherüberprüfungsvorrichtung für einen Speicher (600) mit Speicherzellen, die in Speicherzeilen und Speicherspalten angeordnet sind und binäre Speicherwerte aufweisen, wobei der Speicher (600) in einem integeren Zustand derart belegt ist, dass Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleichen Paritätswertberechnungsvorschriften voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind, wobei die Speicherüberprüfungsvorrichtung folgende Merkmale umfasst: einen Leser (100) zum Auslesen der binären Speicherwerte der zwei Speicherspalten oder der zwei Speicherzeilen; und eine Prüfeinrichtung (102), die ausgebildet ist, um je einen Paritätswert für die zwei Speicherspalten oder die zwei Speicherzeilen gemäß der für die entsprechende Speicherspalte oder die entsprechende Speicherzeile gültigen Berechnungsvorschrift zu berechnen und mit einem erwarteten Paritätswert für den integeren Zustand zu vergleichen und im Falle einer Abweichung einen Hinweis auf einen Fehler in einer der Speicherzeilen oder einer der Speicherspalten zu liefern, um hierdurch den Speicher (600) zu überprüfen.
  2. Speicherüberprüfungsvorrichtung gemäß Anspruch 1, bei der im integeren Zustand Paritätswerte für zwei in einem Speicher benachbart angeordnete Speicherzeilen oder zwei in dem Speicher (600) benachbart angeordnete Speicherspalten bei gleicher Paritätswertberechnungsvorschrift voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind, wobei der Leser (100) ausgebildet ist, um die Speicherzellen der zwei in dem Speicher (600) benachbart ange ordneten Speicherzeilen oder die Speicherzellen der zwei in dem Speicher (600) benachbart angeordneten Speicherspalten auszulesen und bei der die Prüfeinrichtung ausgebildet ist, um die Paritätswerte für die zwei benachbart angeordneten Speicherspalten oder die zwei benachbart angeordneten Speicherzeilen zu berechnen und mit dem erwarteten Paritätswert für den integeren Zustand zu vergleichen.
  3. Speicherüberprüfungsvorrichtung gemäß einem der Ansprüche 1 oder 2, bei der die Paritätswerte für aufeinanderfolgende Speicherzeilen oder für aufeinanderfolgende Speicherspalten im integeren Zustand des Speichers (600) durch eine Paritätswertmaske festgelegt sind, wobei die Paritätswertmaske eine Folge ist, die abwechselnd die binären Werte null und eins aufweist und wobei die Prüfeinrichtung ausgebildet ist, um die Paritätswerte für aufeinanderfolgende Speicherzeilen oder für aufeinanderfolgenden Speicherspalten zu berechnen und dann einen Hinweis auf einen Fehler in einer der Speicherzeilen oder einer der Speicherspalten zu liefern, wenn die berechneten Paritätswerte für die aufeinanderfolgenden Speicherzeilen oder für die aufeinanderfolgenden Speicherspalten nicht den Paritätswerten der jeweiligen Paritätsmaske entsprechen.
  4. Speicherüberprüfungsvorrichtung gemäß einem der Ansprüche 1 bis 3, bei der der Speicher (600) im integeren Zustand derart belegt ist, dass Paritätswerte für zwei Speicherzeilen bei gleichen Paritätswertberechnungsvorschriften voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind und bei der Paritätswerte für zwei Speicherspalten bei gleichen Paritätswertberechnungsvorschriften voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind, wobei der Leser (100) ausgebildet ist, um die zwei Speicherzeilen und die zwei Speicherspalten auszulesen, wobei die Prüfeinrichtung (102) ausgebildet ist, um für die zwei Speicherzeilen und die zwei Speicherspalten die entsprechenden Paritätswerte gemäß der für die entsprechende Speicherspalte und die entsprechende Speicherzeile gültigen Paritätswertberechnungsvorschrift zu berechnen und dann einen Hinweis auf einen Fehler in einer der Speicherzeilen und einer der Speicherspalten zu liefern, wenn die berechneten Paritätswerte nicht den entsprechenden erwarteten Paritätswerten für den integeren Zustand entsprechen.
  5. Speicherüberprüfungsvorrichtung gemäß einem der Ansprüche 1 bis 4, bei der die Prüfeinrichtung (102) ausgebildet ist, um bei der Paritätswertberechnung eine modulozwei-Addition oder eine EXKLUSIV-ODER-Verknüpfung durchzuführen.
  6. Speicherüberprüfungsvorrichtung gemäß einem der Ansprüche 1 bis 5, bei der die Prüfeinrichtung (102) ausgebildet ist, um bei der Berechnung eines Paritätswertes ein Bit einer Speicheradresse für eine Speicherzeile oder eine Speicherspalte zu verwenden.
  7. Speicherüberprüfungsvorrichtung gemäß einem der Ansprüche 1 bis 6, bei der der Speicher (600) eine Speicherkapazität von höchstens 1000 Bit aufweist, wobei der Leser (100) ausgebildet ist, um einen Speicher (600) der Größe von höchstens 1000 Bit auslesen zu können.
  8. Speicherüberprüfungsvorrichtung gemäß einem der Ansprüche 1 bis 7, bei der der Speicher (600) im integeren Zustand einen binären Speicherwert von eins in einer Sicherungsspeicherzelle in einer vordefinierten Speicherzeile und einer vordefinierten Speicherspalte in dem Speicher (600) aufweist, um eine Information zu liefern, dass der Inhalt der Speicherzellen des Speicher (600) nicht überschrieben werden darf, wobei der Speicher (600) im integeren Zustand zugleich einen binären Paritätswert von eins in der vordefinierten Speicherzeile oder einen binären Paritätswert von eins in der vordefinierten Speicherspalte aufweist und wobei der Leser (100) ausgebildet ist, um die vordefinierte Speicherzeile oder die vordefinierte Speicherspalte, die die Sicherungsspeicherzelle umfasst, auszulesen und wobei die Prüfeinrichtung (102) ausgebildet ist, um den Paritätswert für die vordefinierte Speicherzeile oder die vordefinierte Speicherspalte zu berechnen, wobei die Vorrichtung ferner folgendes Merkmal umfasst: einen Schreiber zum Einschreiben von Speicherwerten in den Speicher (600), wobei der Schreiber ausgebildet ist, um das Einschreiben von Speicherwerten in den Speicher (600) bei keinem Vorliegen eines Hinweises auf einen Fehler in der vordefinierten Speicherzeile oder der vordefinierten Speicherspalte und einem berechneten binären Paritätswert von null für die vordefinierte Speicherzeile oder die vordefinierte Speicherspalte durchzuführen und bei einem Vorliegen eines Hinweises auf einen Fehler in der vordefinierten Speicherzeile oder der vordefinierten Speicherspalte, kein Einschreiben von Speicherwerten in den Speicher (600) durchzuführen.
  9. Speicherüberprüfungsvorrichtung gemäß einem der Ansprüche 1 bis 7, bei der der Speicher (600) im integeren Zustand einen binären Speicherwert von null in einer Sicherungsspeicherzelle in einer vordefinierten Speicherzeile und einer vordefinierten Speicherspalte in dem Speicher (600) aufweist, um eine Information zu liefern, dass der Inhalt der Speicherzellen des Speicher (600) nicht überschrieben werden darf, wobei der Speicher (600) im integeren Zustand zugleich einen binären Paritätswert von null in der vordefinierten Speicherzeile oder einen binären Paritätswert von null in der vordefinierten Speicherspalte aufweist und wobei der Leser (100) ausgebildet ist, um die vordefinierte Speicherzeile oder die vordefinierte Speicherspalte, die die Sicherungsspeicherzelle umfasst, auszulesen und wobei die Prüfeinrichtung (102) ausgebildet ist, um den Paritätswert für die vordefinierte Speicherzeile oder die vordefinierte Speicherspalte zu berechnen, wobei die Vorrichtung ferner folgendes Merkmal umfasst: einen Schreiber zum Einschreiben von Speicherwerten in den Speicher (600), wobei der Schreiber ausgebildet ist, um das Einschreiben von Speicherwerten in den Speicher (600) bei keinem Vorliegen eines Hinweises auf einen Fehler in der vordefinierten Speicherzeile oder der vordefinierten Speicherspalte und einem berechneten binären Paritätswert von eins für die vordefinierte Speicherzeile oder die vordefinierte Speicherspalte durchzuführen und bei einem Vorliegen eines Hinweises auf einen Fehler in der vordefinierten Speicherzeile oder der vordefinierten Speicherspalte, kein Einschreiben von Speicherwerten in den Speicher (600) durchzuführen.
  10. Verfahren zum Überprüfen eines Speichers (600) mit Speicherzellen, die in Speicherzeilen und Speicherspalten angeordnet sind und binäre Speicherwerte aufweisen, wobei der Speicher (600) in einem integeren Zustand derart belegt ist, dass sich Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleichen Paritätswertberechnungsvorschriften voneinander unterscheiden oder bei unterschiedlichen Paritätswertberechnungs vorschriften gleich sind, wobei das Verfahren die folgenden Schritte umfasst: Auslesen der binären Speicherwerte der zwei Speicherspalten oder der zwei Speicherzeilen; Berechnen des Paritätswertes für die zwei Speicherspalten oder die zwei Speicherzeilen gemäß der für die entsprechende Speicherspalte oder die entsprechende Speicherzeile gültigen Berechnungsvorschrift; Vergleichen der berechneten Paritätswerte mit einem erwarteten Paritätswert für den integeren Zustand; und Liefern eines Hinweises auf einen Fehler in einer der Speicherzeilen oder einer der Speicherspalten im Falle einer Abweichung des berechneten Paritätswertes von einem erwarteten Paritätswert für den integeren Zustand, um hierdurch den Speicher (600) zu überprüfen.
  11. Speicherbelegungsvorrichtung für einen Speicher (600) mit Speicherzellen, die in Speicherzeilen und Speicherspalten angeordnet sind und binäre Speicherwerte speichern können, wobei die Speicherbelegungsvorrichtung folgende Merkmale aufweist: eine Einrichtung (150) zum Bestimmen der Speicherwerte, die in den entsprechenden Speicherzellen des Speichers (600) abzuspeichern sind, wobei die Einrichtung (150) zum Bestimmen ausgebildet ist, um die Speicherwerte derart zu bestimmen, dass Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleicher Paritätswertberechnungsvorschrift voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind; und einem Schreiber (152) zum Einschreiben der durch die Einrichtung (150) zum Bestimmen bestimmten Speicherwerte in die entsprechenden Speicherzellen des Speichers (600), um den Speicher (600) zu belegen.
  12. Speicherbelegungsvorrichtung gemäß Anspruch 11, bei dem die Einrichtung (150) zum Bestimmen ausgebildet ist, um die Speicherwerte der Speicherzellen von zwei benachbart angeordneten Speicherzeilen oder zwei benachbart angeordneten Speicherspalten derart zu bestimmen, dass bei gleicher Paritätswertberechnungsvorschrift die Paritätswerte der beiden benachbarten Speicherzeilen oder der beiden benachbarten Speicherspalten voneinander unterschiedlich sind oder bei unterschiedlicher Paritätswertberechnungsvorschrift gleich sind.
  13. Speicherbelegungsvorrichtung gemäß einem der Ansprüche 11 oder 12, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um Speicherwerte für Speicherzellen von aufeinanderfolgenden Speicherzeilen oder Speicherwerte für Speicherzellen von aufeinanderfolgenden Speicherspalten derart zu bestimmen, dass Paritätswerte für die aufeinanderfolgenden Speicherzeilen oder die aufeinanderfolgenden Speicherspalten durch eine Paritätswertmaske festgelegt sind, wobei die Paritätswertmaske eine Folge ist, die abwechselnd die binären Werte 0 und 1 aufweist.
  14. Speicherbelegungsvorrichtung gemäß einem der Ansprüche 11 bis 13, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um die Speicherwerte derart zu bestimmen, dass Paritätswerte für zwei Speicherzeilen bei gleicher Paritätswertberechnungsvorschrift voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind und dass Paritätswerte für zwei Speicherspalten bei gleicher Paritätswertberechnungsvorschrift voneinander unterschied- lich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind.
  15. Speicherbelegungsvorrichtung gemäß einem der Ansprüche 11 bis 14, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um bei dem Bestimmen der Speicherwerte für die Speicherzellen eine modulo-zwei-Addition oder eine EXKLUSIV-ODER-Verknüpfung von in Speicherzellen einzuschreibenden Speicherwerten mit einem Paritätswert durchzuführen, den eine Speicherzeile oder eine Speicherspalte im integeren Zustand des Speichers (600) aufweisen soll.
  16. Speicherbelegungsvorrichtung gemäß einem der Ansprüche 11 bis 15, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um bei der Bestimmung eines Speicherwertes für eine Speicherzelle ein Bit einer Speicheradresse für eine Speicherzeile oder eine Speicherspalte zu verwenden.
  17. Speicherbelegungsvorrichtung gemäß einem der Ansprüche 11 bis 16, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um einen in eine vordefinierte Speicherzelle einer Speicherzeile einzuschreibenden Parity-Definitionswert mittels einer Verknüpfung eines der Speicherzeile zugeordneten Paritätswertes und aller weiteren Speicherwerte der in die entsprechende Speicherzeile einzuschreibenden Speicherwerten zu bestimmen oder um einen in eine vordefinierte Speicherzelle einer Speicherspalte einzuschreibenden Parity-Definitionswert mittels einer Verknüpfung eines der Speicherspalte zugeordneten Paritätswertes und aller weiteren Speicherwerte der in die entsprechende Speicherspalte einzuschreibenden Speicherwerte zu bestimmen.
  18. Speicherbelegungsvorrichtung gemäß Anspruch 17, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um die Parity-Definitionswerte für jede der Speicherzeilen in einer gemeinsamen Speicherspalte anzuordnen und um die Parity-Definitionswerte für jede der Speicherspalten in einer gemeinsamen Speicherzeile anzuordnen.
  19. Speicherbelegungsvorrichtung gemäß Anspruch 18, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um die in die Speicherzellen des Speichers (600) einzuschreibenden Speicherwerte derart zu bestimmen, dass der Paritätswert für die gemeinsame Speicherspalte und der Paritätswert für die gemeinsame Speicherzeile je ein binären Wert von eins ist.
  20. Speicherbelegungsvorrichtung gemäß einem der Ansprüche 11 bis 19, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um einer Sicherungsspeicherzelle des Speichers (600), die in einer vordefinierte Speicherzeile und in einer vordefinierten Speicherspalte angeordnet ist, einen binären Speicherwert von eins zuzuweisen, um eine Information zu liefern, dass der Inhalt der Speicherzellen des Speichers (600) nicht überschrieben werden darf und wobei die Einrichtung (150) zum Bestimmen ferner ausgebildet ist, um die Speicherwerte der Speicherzellen in der vordefinierten Speicherzeile derart zu bestimmen, dass der Paritätswert der vordefinierten Speicherzeile einen binären Wert von eins aufweist oder die Speicherwerte der Speicherzellen in der vordefinierten Speicherspalte derart zu bestimmen, dass der Paritätswert der vordefinierten Speicherspalte einen binären Wert von eins aufweist.
  21. Speicherbelegungsvorrichtung gemäß einem der Ansprüche 11 bis 19, bei der die Einrichtung (150) zum Bestimmen ausgebildet ist, um einer Sicherungsspeicherzelle des Speichers (600), die in einer vordefinierte Speicherzeile und in einer vordefinierten Speicherspalte angeordnet ist, einen binären Speicherwert von null zuzuweisen, um eine Information zu liefern, dass der Inhalt der Speicherzellen des Speichers (600) nicht überschrieben werden darf und wobei die Einrichtung (150) zum Bestimmen ferner ausgebildet ist, um die Speicherwerte der Speicherzellen der vorbestimmten Speicherzeile derart zu bestimmen, dass der Paritätswert der vordefinierten Speicherzeile einen binären Wert von null aufweist oder um die Speicherwerte der Speicherzellen in der vordefinierten Speicherspalte derart zu bestimmen, dass der Paritätswert der vordefinierten Speicherspalte einen binären Wert von null aufweist.
  22. Verfahren zum Belegen von Speicherzellen eines Speichers (600), die in Speicherzeilen und Speicherspalten in dem Speicher (600) angeordnet sind und binäre Speicherwerte speichern können, wobei das Verfahren folgenden Schritte aufweist: Bestimmen der Speicherwerte, die in den entsprechenden Speicherzellen des Speichers (600) abzuspeichern sind, wobei das Bestimmen derart erfolgt, dass Paritätswerte für zwei Speicherzeilen oder für zwei Speicherspalten bei gleicher Paritätswertberechnungsvorschrift voneinander unterschiedlich sind oder bei unterschiedlichen Paritätswertberechnungsvorschriften gleich sind; und Einschreiben der bestimmten Speicherwerte in die entsprechenden Speicherzellen des Speichers (600), um den Speicher (600) zu belegen.
  23. Computerprogramm mit Programmcode zur Durchführung des Verfahrens gemäß Anspruch 10 oder 22, wenn das Computerprogramm auf einem Computer abläuft.
DE102005016051.4A 2005-04-07 2005-04-07 Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers Expired - Fee Related DE102005016051B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102005016051.4A DE102005016051B4 (de) 2005-04-07 2005-04-07 Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers
US11/278,889 US7620884B2 (en) 2005-04-07 2006-04-06 Memory checking device and method for checking a memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005016051.4A DE102005016051B4 (de) 2005-04-07 2005-04-07 Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers

Publications (2)

Publication Number Publication Date
DE102005016051A1 true DE102005016051A1 (de) 2006-10-12
DE102005016051B4 DE102005016051B4 (de) 2019-06-13

Family

ID=37026261

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005016051.4A Expired - Fee Related DE102005016051B4 (de) 2005-04-07 2005-04-07 Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers

Country Status (2)

Country Link
US (1) US7620884B2 (de)
DE (1) DE102005016051B4 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779334B2 (en) * 2006-06-26 2010-08-17 Taiwan Semiconductor Manufacturing Company, Ltd. Memory having an ECC system
US9946655B2 (en) * 2013-10-09 2018-04-17 Hitachi, Ltd. Storage system and storage control method
CN116417055A (zh) * 2021-12-30 2023-07-11 长鑫存储技术有限公司 检测电路及检测方法、电子设备和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4103823A (en) * 1976-12-20 1978-08-01 International Business Machines Corporation Parity checking scheme for detecting word line failure in multiple byte arrays
US20040117723A1 (en) * 2002-11-29 2004-06-17 Foss Richard C. Error correction scheme for memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862158A (en) * 1995-11-08 1999-01-19 International Business Machines Corporation Efficient method for providing fault tolerance against double device failures in multiple device systems
US7134069B1 (en) * 1999-06-16 2006-11-07 Madrone Solutions, Inc. Method and apparatus for error detection and correction
US6871317B1 (en) * 2001-11-13 2005-03-22 Network Appliance, Inc. Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4103823A (en) * 1976-12-20 1978-08-01 International Business Machines Corporation Parity checking scheme for detecting word line failure in multiple byte arrays
US20040117723A1 (en) * 2002-11-29 2004-06-17 Foss Richard C. Error correction scheme for memory

Also Published As

Publication number Publication date
US7620884B2 (en) 2009-11-17
US20060242451A1 (en) 2006-10-26
DE102005016051B4 (de) 2019-06-13

Similar Documents

Publication Publication Date Title
DE102005016050A1 (de) Speicherfehlererkennungsvorrichtung und Verfahren zum Erkennen eines Speicherfehlers
DE2619159C2 (de) Fehlererkennungs- und Korrektureinrichtung
DE3853206T2 (de) Verfahren und gerät zur byteschreibfehlerkodierung.
DE102007058828A1 (de) Speicherbauelement und Fehlerkorrekturverfahren
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE2328869A1 (de) Verfahren zur pruefung eines digitalen speichersystems sowie zur durchfuehrung dieses verfahrens dienendes selbstpruefendes digitales speichersystem
DE19944991A1 (de) Verfahren zur Sicherung eines Programmablaufs
EP2100308B1 (de) Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern
DE102017103347A1 (de) Verarbeitung von daten in speicherzellen eines speichers
DE2225841B2 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE2157829C2 (de) Anordnung zum Erkennen und Korrigieren von Fehlern in Binärdatenmustern
DE69904618T2 (de) Detektionstechnik von speicherabschnittfehlern und einzel-, doppel und triplebitfehlern
DE69317766T2 (de) Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)
DE102006005817A1 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE2144685A1 (de) Fehlerkorrektursystem für ein digitales Rechenwerk mit zugeordneten Quellenregistern
DE60215687T2 (de) Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern
DE102005016051B4 (de) Speicherüberprüfungsvorrichtung und Verfahren zum Überprüfen eines Speichers
EP1913478B1 (de) Mikroprozessorsystem zur steuerung bzw. regelung von zumindest zum teil sicherheitskritischen prozessen
DE2513262A1 (de) Digitale codeumwandlungsanordnung
EP1444700B1 (de) Speichertest
DE2655653C2 (de) Anordnung zur Feststellung der richtigen Zuordnung von Adresse und Speicherwort in einem wortorganisierten Datenspeicher
DE102007040721B4 (de) Datenverarbeitungsanordnung, Verfahren zur Datenverarbeitung, Computerprogrammelement und Überprüfungsanordnung für einen Speicher
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
WO2006089943A1 (de) Verfahren zur datensicherung und gerät zu dessen ausführung
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee