DE69637427T2 - Verfahren und Gerät zur Erkennung doppelter Eintragungen in einer Nachschlagtabelle - Google Patents

Verfahren und Gerät zur Erkennung doppelter Eintragungen in einer Nachschlagtabelle Download PDF

Info

Publication number
DE69637427T2
DE69637427T2 DE69637427T DE69637427T DE69637427T2 DE 69637427 T2 DE69637427 T2 DE 69637427T2 DE 69637427 T DE69637427 T DE 69637427T DE 69637427 T DE69637427 T DE 69637427T DE 69637427 T2 DE69637427 T2 DE 69637427T2
Authority
DE
Germany
Prior art keywords
code
test
bits
column
data entry
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.)
Expired - Lifetime
Application number
DE69637427T
Other languages
English (en)
Other versions
DE69637427D1 (de
Inventor
Nirmal R. San Jose Saxena
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE69637427D1 publication Critical patent/DE69637427D1/de
Application granted granted Critical
Publication of DE69637427T2 publication Critical patent/DE69637427T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • 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/50Marginal testing, e.g. race, voltage or current testing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5002Characteristic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Detection And Correction Of Errors (AREA)

Description

  • Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf eine elektronische logische Struktur und speziell auf eine elektronische logische Struktur in einem Mikroprozessor.
  • Hintergrund der Erfindung
  • Nachschlagtabellen werden allgemein auf verschiedensten Gebieten verwendet, die Mikroprozessorstrukturen einschließen. Mit Bezugnahme auf 1 besteht nun eine herkömmliche Nachschlagtabelle 110 aus einigen Spalten 120, 122, 124, 150. Die Daten in jeder Spalte 120, 122, 124, 150 können durch das Platzieren verwandter Daten 130, 144, 146 in eine einzelne Reihe angeordnet werden. In einer Ausführungsform und in 1 sind die verwandten Daten 130, 144, 146 physisch im Reihenformat angeordnet, obwohl auch andere physische Anordnungen möglich sind. In einer herkömmlichen Nachschlagtabelle 110 werden die Einträge 140, 142, 144 in einer Spalte 120 als Index für die Tabelle 110 verwendet. Ein spezifischer Wert der Daten 140, 142, 144 in der Indexspalte 120 kann gesucht oder "nachgeschlagen" werden, und wenn er gefunden wird, können andere verwandte Daten in derselben Reihe ausgegeben werden. Manchmal wird der Indexeintrag 140, 142, 144 in der gefundenen Reihe selbst ausgegeben.
  • Leider können die Indexdaten 140, 142, 144 manchmal aufgrund verschiedenster Faktoren wie einer Fehlfunktion einer Datenspeicherzelle oder elektrischen Interferenz zu der Zeit, zu der die Daten 140, 142, 144 in die physische Speicheranordnung geschrieben werden, welche die Nachschlagtabelle 110 repräsentiert, zerstört werden. Wenn dies auftritt, können fehlerhafte Daten gespeichert werden und das Ergebnis der Suche zerstören. Wenn beispielsweise Daten 140 fehlerhaft so gespeichert werden, dass sie einen Wert von 101 haben, stimmen zwei Einträge 140, 144 mit einem gewünschten Indexeintrag von 101 überein. In Abhängigkeit vom Suchmechanismus kann der Ausgang in Bezug auf den Ort doppelter Einträge fehlerhaft sein, da die falsche Reihe für einen Ausgang gekennzeichnet wird, oder es wird eine Kombination der Daten aus beiden Reihen für einen Ausgang ausgewählt.
  • Die Ausbildung eines Ausgangsschaltungsaufbaus, der die Detektion mehrfacher identischer Indexeinträge erlaubt, kann dem Ausgangsschaltungsaufbau zusätzlich Komplexität verleihen, welche die Leistung des Systems behindern und wertvollen Raum auf einer integrierten Schaltung erfordern würde. Es ist wünschenswert, eine solche Bedingung ohne signifikante Behinderung der Leistung des Ausgangsschaltungsaufbaus oder ohne die Erfordernis eines signifikanten Raumumfangs auf einer integrierten Schaltung zu detektieren.
  • Die US-A-3,963,908 bezieht sich auf das Vorsehen eines Codierschemas, das ermöglicht, dass Fehler in Bezug auf einen Speicher mit wahlfreiem Zugriff detektiert werden. In diesem Schema werden zwei bestimmte Prüfcodefelder zusammen mit den (verwendbaren) Daten an derselben Speicheradresse wie diese Daten gespeichert. Das erste Prüfcodefeld wird als Funktion der Daten generiert, und das zweite Prüfcodefeld wird als Funktion der Speicheradresse generiert. Das erste Prüfcodefeld kann ein Summencode sein, der auf der Basis der Bits der (verwendbaren) Daten generiert wird, und das zweite Prüfcodefeld kann ein Paritätsbit sein, das aus der Speicheradresse generiert wird, oder es kann ein Summencode sein, der aus den Bits der Speicheradresse generiert wird. Wenn Daten ausgelesen werden, werden die beiden Prüffelder (z. B. der Summencode und das Paritätsbit) regeneriert – auf der Basis der Speicheradresse, die zum Auslesen verwendet wird, und der ausgelesenen (verwendbaren) Daten – und mit den beiden gespeicherten Prüffeldern verglichen. Es wird angegeben, dass durch diese Mittel Datenfehler, inkorrekte Speicherwortzugriffsfehler und aus einem mehrfachen Speicherwortzugriff resultierende Fehler detektierbar sind.
  • Zusammenfassung der Erfindung
  • Gemäß der vorliegenden Erfindung ist ein Verfahren in Übereinstimmung mit Anspruch 1 vorgesehen.
  • Gemäß der vorliegenden Erfindung kann ein Verfahren das Vorliegen von zwei oder mehreren identischen Einträgen in einer Nachschlagtabelle detektieren. Ein Fehlercode wird unter Verwendung eines Index mit einer geringen Duplizierungswahrscheinlichkeit, wie eine Reihennummer in einem ROM, generiert. Die Fehlercodes, welche den Einträgen in der Nachschlagtabelle entsprechen, die mit einem gewünschten Wert übereinstimmen, werden logisch ODER-verknüpft, und das Ergebnis wird untersucht, um zu identifizieren, ob der Fehlercode mit dem Fehlercode des gewünschten Werts übereinstimmt. Wenn dies zutrifft, sind mehrfache Übereinstimmungen unwahrscheinlich. Wenn nicht, sind mehrfache Übereinstimmungen wahrscheinlich. Da die ODER-Funktion verwendet wird, wird der Detektionsschaltungsaufbau in integrierten Schaltungen effizient implementiert.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein schematisches Blockbild einer herkömm lichen Nachschlagtabelle, die in einem Speicher angeordnet ist.
  • 2A ist eine schematische Darstellung einer Anordnung, die einen 2-Bit-Ausgang gleich dem Komplement eines Zählwerts der Anzahl eingestellter Bits am Eingang erzeugt, gemäß einem Verfahren der vorliegenden Erfindung.
  • 2B ist eine schematische Darstellung, welche vier schnelle Addierer und drei Inverter zeigt, die verwendet werden, um das Komplement eines Zählwerts der Anzahl eingestellter Bits in einem 6-Bit-Wort vorzusehen, gemäß einem Verfahren der vorliegenden Erfindung.
  • 2C ist eine schematische Darstellung einer Anordnung, die einen 2-Bit-Ausgang gleich dem Zählwert der Anzahl eingestellter Bits am Eingang erzeugt, gemäß einem Verfahren der vorliegenden Erfindung.
  • 3A ist eine schematische Darstellung eines herkömmlichen Schaltungsaufbaus, der einen ersten Eingang gleich einem zweiten Eingang auf einen Satz von Ausgangsleitungen treibt.
  • 3B ist eine schematische Darstellung eines herkömmlichen Schaltungsaufbaus, der ein Paar von Bits auf einen Satz von Ausgangsleitungen treibt.
  • 4 ist eine schematische Darstellung eines herkömmlichen Schaltungsaufbaus, der fünf Gruppen von drei Bits pro Gruppe logisch ODER-verknüpft.
  • 5 ist eine schematische Darstellung einer Fehler detektionsschaltung, die gemäß einem Verfahren der vorliegenden Erfindung betriebsfähig ist.
  • 6A ist ein Flussdiagramm, das ein Verfahren der vorliegenden Erfindung zeigt.
  • 6B ist ein Flussdiagramm, das ein alternatives Verfahren der vorliegenden Erfindung zeigt.
  • Kurze Beschreibung der bevorzugten Ausführungsform
  • Mit Bezugnahme auf 1 wird nun eine Nachschlagtabelle mit vier Spalten und drei Reihen gezeigt, obwohl eine andere Anzahl von Spalten und Reihen verwendet werden kann. In einer Ausführungsform enthält eine Spalte, die als sich nichtwiederholende Spalte 124 bezeichnet wird, einen nichtwiederholten Satz von Nummern. Ein nichtwiederholter Satz von Nummern ist ein Satz von Nummern, worin keine zwei Elemente des Satzes identisch sind. Es ist hilfreich, obwohl nicht erforderlich, eine sich nichtwiederholende Spalte zu haben, bei der es äußerst unwahrscheinlich ist, dass sie irgendwelche wiederholte Nummern aufweist. In einer Ausführungsform sind die nichtwiederholten Nummern die Reihennummern, in einem binären Format, beginnend mit Reihe 0, und diese Reihennummern 126, 128, 130 werden in einem ROM gespeichert, wodurch es äußerst unwahrscheinlich wird, dass sie Fehlern unterworfen werden, die eine wiederholte Nummer in der Spalte 124 veranlassen würden. Die Reihennummern können wie in 1 gezeigt gespeichert werden, oder sie können nach Bedarf gerade vor der Berechnung des Fehlercodes für die Reihe generiert werden, wie nachstehend beschrieben.
  • Eine zweite Spalte 120, die als Indexspalte bezeichnet wird, enthält einen Satz von Nummern, die "nachgeschlagen" oder gesucht werden, um einen Eintrag in der Spalte 120 gleich einer oder mehreren spezifizierten Nummern zu lokalisieren. In einer Ausführungsform wird angenommen, dass die Indexspalte 120 einen Satz von Nummern enthält, die alle einzigartig sind, wobei nicht mehr als ein einziger Eintrag für jede Suche erzeugt wird. In dieser Ausführungsform wird die vorliegende Erfindung verwendet, um doppelte Einträge in der Indexspalte 120 zu detektieren, das heißt, eine Nummer in einer Reihe der Spalte 120, die zumindest einmal in einer anderen Reihe der Spalte 120 wiederholt wird. In anderen Ausführungsformen kann die vorliegende Erfindung verwendet werden, um eine beliebige Suche zu detektieren, die zwei oder mehrere Einträge als Ergebnis erzeugt.
  • In einer Ausführungsform ist eine Suchfreigabespalte 122 vorgesehen, um die Suche auf Einträge in der Indexspalte 120, die in derselben Reihe sind, als Eintrag in der Suchfreigabespalte 122 mit einem spezifizierten Wert zu beschränken. Da beispielsweise die Reihen 1 und 2 Suchfreigabespalteneinträge 146, 148 mit einem Wert von 1 haben, würden nur diese Reihen in die Suche eingeschlossen werden, und die Reihe 0 würde übersprungen oder nicht durchsucht werden. Die Verwendung einer Suchfreigabespalte 122 ist für die vorliegende Erfindung nicht erforderlich.
  • In der vorliegenden Erfindung wird ein Fehlerdetektionscode für einige oder alle Reihen auf der Basis des Eintrags der sich nichtwiederholenden Spalte 124 für diese Reihe generiert und mit der Reihe gekoppelt, aus welcher der Fehlerdetektionscode generiert wurde, um die Detektion von Fehlern zu ermöglichen, wie nachstehend beschrieben. Der Fehlerdetektionscode kann in einer Spalte 150 gespeichert oder nach Bedarf generiert werden.
  • Die Anzahl von Bits im Fehlerdetektionscode ist größer als oder gleich dem log2 von N, wobei N zumindest die Anzahl von Bits ist, die erforderlich sind, um die sich nichtwiederholenden Nummern 126, 128, 130 in der sich nichtwiederholenden Spalte 124 zu repräsentieren. In einer Ausführungsform ist der Fehlerdetektionscode gleich dem Komplement der Anzahl von Bits gleich einem bestimmen Wert, wie "1", in der sich nichtwiederholenden Spalte. Das Komplement einer Binärzahl ist gleich dieser Binärzahl, wobei jede ursprüngliche "1" durch eine "0" ersetzt ist und jede ursprüngliche "0" durch eine "1" ersetzt ist. Um beispielsweise den Fehlercode für die sich nichtwiederholende Zahl 130 gleich 10 zu generieren, hat die Zahl 10 ein Bit gleich "1". Eins wird binär als 01 repräsentiert, und das Komplement von 01 ist 10.
  • Mit Bezugnahme auf 2A ist nun eine Ausführungsform einer Vorrichtung zum Erzeugen des Komplements des Zählwerts der Anzahl eingestellter Bits in einem Zwei-Bit-Wort gezeigt. Jedes Bit 210, 212 in dem Wort ist mit einem EXKLUSIV-WEDER-NOCH-Gatter 214 gekoppelt, um den niederwertigen Ausgang 216 für die Vorrichtung zu erzeugen. Die beiden Bits 210, 212 sind mit einem NICHT-UND-Gatter 218 mit 2 Eingängen gekoppelt, um den höherwertigen Ausgang 220 für die Vorrichtung zu erzeugen. Die Ausgänge 216, 220 können mit der Reihe gekoppelt sein, die den beiden Bits 210, 212 entspricht. Mit Bezugnahme auf die 1 und 2A entsprechen nun die beiden Bits 210, 212 den Bits in einer einzelnen Reihe der sich nichtwiederholenden Spalte 124. Die Ausgänge 216, 220 könnten in der Spalte 150 in derselben Reihe gespeichert werden, aus der die beiden Bits 210, 212 kamen. Alternativ dazu könnten die Ausgänge 216, 220 zu der oder etwa zu der Zeit berechnet werden, zu der eine nachstehend beschriebene Suche an der Indexspalte 120 vorgenommen wird.
  • In einer weiteren Ausführungsform werden die Bits der sich nichtwiederholenden Spalte in einen oder mehrere schnelle Addierer eingegeben, um das Komplement der Anzahl eingestellter Bits zu berechnen. Mit Bezugnahme auf 2B sind nun Verbindungen gezeigt, die es den schnellen Addierern 250, 252, 254, 256 ermöglichen, den Zählwert der Anzahl eingestellter Bits in einem 6-Bit-Wort zu komplementieren.
  • Das niederwertige Bit, Bit 0, ist mit dem Addierereingang 271 gekoppelt, wobei die übrigen Bits 1, 2, 3, 4 und 5 mit den Eingängen 268, 266, 264, 262 bzw. 260 gekoppelt sind. Der Übertragseingang 270 ist mit der logischen 0 gekoppelt und wird ansonsten nicht als Ausgang verwendet. Addiererausgänge 282, 284, 286 erzeugen den Zählwert der Anzahl eingestellter Bits an den Eingängen 271, 268, 266, 264, 262, 260. Die Ausgänge 282, 284, 286 werden unter Verwendung von Invertern 290, 292, 294 invertiert, die den Zählwert komplementieren, um einen Fehlerdetektionscode an Ausgängen 296, 298, 299 zu erzeugen.
  • In einer Ausführungsform wird die Suchfunktion nach Stand der Technik für die Tabelle 110 durch das Lokalisieren der Reihe in der Indexspalte 120 mit einem Eintrag in der Indexspalte 120 vorgenommen, der mit einer vorgewählten Nummer übereinstimmt. Mit Bezugnahme auf die 1 und 3A ist nun eine Vorrichtung zur Bestimmung gezeigt, ob ein Eintrag in der Spalte 120 mit einer spezifizierten Nummer übereinstimmt. Die spezifizierte Nummer wird an Eingänge 320 geliefert, die mit EXKLUSIV-ODER-Gattern 314 gekoppelt sind. Jedes Bit 340, 343, 344 in einer Reihe 310 der Spalte 120 ist mit dem zweiten Eingang 322 eines der EXKLUSIV-ODER-Gatter 314 gekoppelt, die hoch signalisieren, wenn jedes Bit 340, 342, 344 gleich dem entsprechenden Eingang 320 ist. Die EXKLUSIV-ODER-Gatter 314 sind mit einem UND-Gatter 316 mit einem Ausgang 318 gekoppelt, der hoch signalisiert, wenn alle Bits 340, 342, 344 mit den entsprechenden Eingängen 320 übereinstimmen. Der Ausgang 318 ist mit dem ersten Eingang von UND-Gattern 315 gekoppelt. Eingänge 330, 332, 334 sind gekoppelt, um das Bit 340, 342, 344 zu empfangen, das dieser Position entspricht, und dieses Bit wird auf der Ausgangsleitung 321 ausgegeben, wenn die Reihe 310 in der Spalte 120 mit dem Eingang 320 übereinstimmt.
  • Mit Bezugnahme auf die 1, 3A und 3B ist in einer Ausführungsform der Ausgang 318 mit UND-Gattern 350, 352 gekoppelt, die gekoppelt sind, um die Fehlercodebits 360, 362 von der Spalte 150, die an Eingängen 370, 372 präsentiert werden, auf Ausgänge 380 zu treiben, die der ausgewählten Reihe oder den ausgewählten Reihen der sich nichtwiederholenden Spalte 124 entsprechen.
  • In einer Ausführungsform wird oder werden die ausgewählte Reihe oder die ausgewählten Reihen ausgegeben, indem alle Reihen mit einem Eintrag in der Indexspalte 120, der mit der vorgewählten Nummer übereinstimmt, logisch ODER-verknüpft werden. Logische ODER-Verknüpfung oder logisches Summieren bedeutet das Berechnen der logischen Summe jedes Bits. Zum Beispiel ist 100, logisch ODER-verknüpft oder summiert mit 101, gleich 101. Logische ODER-Funktionen lassen sich effizient in integrierten Schaltungen implementieren; aber eine logische ODER-Verknüpfung kann die Tatsache maskieren, dass zwei Nummern ODER-verknüpft worden sind, wenn nur eine Nummer erwartet wird. Mit Bezugnahme auf die 1 und 4 ist nun eine Anordnung für logische ODER-Verknüpfungen von Eingängen 440, 442, 444, 446, 448 gezeigt, um Ausgänge 450, 452, 454, 456, 458 unter Verwendung von ODER-Gattern 460, 462, 464, 466, 468 zu erzeugen. Die Spalten im Kästchen 420 repräsentieren individuelle Bits in jedem Eintrag der sich nichtwiederholenden Spalte 124, und das Kästchen 422 repräsentiert die Fehlercodespalte, wobei jedes Kästchen in 4 ein Bit hält. Obwohl eine solche ODER-Verknüpfungsfunktion in der Figur mühevoll erscheint, ist eine solche Funktion in einer integrierten Schaltung ziemlich effizient, auch wenn sie Mehrfachübereinstimmungsausgangsfehler maskiert, wie oben beschrieben.
  • Nachdem der nichtwiederholte Spalteneintrag und der Fehlercode, welcher der ausgewählten Reihe oder ODER-verknüpften Reihen entspricht, an den Ausgängen 450, 452, 454, 456, 458 erscheinen, wird ein neu berechneter Fehlercode unter Verwendung der ODER-verknüpften Ausgänge 450, 452, 454 entsprechend der sich nichtwiederholenden Spalte 124 der ausgewählten Reihe oder Reihen berechnet. Der neu berechnete Fehlercode wird mit den ODER-verknüpften Ausgängen 456, 458 entsprechend der Fehlercodespalte 150 verglichen. Wenn nur ein Eintrag ausgegeben wurde, sollten die Ausgänge 456, 458 entsprechend der Fehlercodespalte 150 gleich dem neu berechneten Fehlercode sein. Ansonsten wird keine solche Gleichheit erscheinen. Die in den 2A oder 2B gezeigten Vorrichtungen oder eine Kombination der Vorrichtungen können verwendet werden, um den neu berechneten Fehlercode zu berechnen.
  • Mit Bezugnahme auf 5 ist nun eine Ausführungsform einer Anordnung zur Gleichheitsdetektion gezeigt. Der ODER- verknüpfte Fehlercode und der neu berechnete Fehlercode werden unter Verwendung der Vorrichtung von 5 auf bitweise Gleichheit getestet. Das niederwertige Bit aus dem ODER-verknüpften Fehlercode ist mit dem EXKLUSIV-ODER-Gattereingang 510 gekoppelt, und das höherwertige Bit ist mit dem EXKLUSIV-ODER-Gattereingang 514 gekoppelt. Das niederwertige Bit aus dem neu berechneten Fehlercode ist mit dem EXKLUSIV-ODER-Gattereingang 512 gekoppelt, und das höherwertige Bit ist mit dem EXKLUSIV-ODER-Gattereingang 516 gekoppelt. In einer Ausführungsform ist das Gatter 522 ein ODER-Gatter mit zwei Eingängen, das am Ausgang 524 hoch signalisiert, wenn der ODER-verknüpfte Fehlercode nicht gleich dem neu berechneten Fehlercode ist, wobei es signalisiert, dass potentiell ein Fehler aufgrund einer doppelten Auswahl existiert, wie oben beschrieben.
  • In einer weiteren Ausführungsform ist das Gatter 522 ein WEDER-NOCH-Gatter, um das entgegengesetzte Signal vorzusehen. In einer weiteren Ausführungsform ist das Gatter 522 ein ODER-Gatter mit offenem Kollektor, um ein Einzelsignal vorzusehen.
  • Mit erneuter Bezugnahme auf 4 wird in einer weiteren Ausführungsform der neu berechnete Fehlercode anders als im oben beschriebenen Verfahren berechnet. Der neu berechnete Fehlercode ist die Summe der eingestellten ODER-verknüpften Bits 456, 458. Der ODER-verknüpfte Fehlercode und der neu berechnete Fehlercode werden auf bitweise Ungleichheit getestet, um einen einfacheren Schaltungsaufbau vorzusehen. Im sich nichtwiederholenden Spalteneintrag wird beispielsweise die Vorrichtung von 2C verwendet, die identisch ist mit 2A, außer dass die Ausgänge 240, 236 gegenüber den Ausgängen 220, 216 von 2A invertiert sind. In einer weiteren Ausführungsform wird die Vorrichtung von 2B ohne Inverter 290, 292, 294 verwendet. Statt dessen ersetzen Ausgänge 282, 284, 286 Ausgänge 296, 298, 299. Wenn solche Vorrichtungen verwendet werden, sollte jedes Bit des ODER-verknüpften Fehlercodes das Gegenteil des neu berechneten Fehlercodes sein, oder es ist ein Mehrfachauswahlfehler aufgetreten. Um diese Bedingung zu detektieren, wird die Vorrichtung von 5 wie oben beschrieben verwendet, außer dass das Gatter 522 ein UND-Gatter, NICHT-UND-Gatter oder eine Version mit offenem Kollektor ist, um eine Ungleichheit zu detektieren.
  • Mit Bezugnahme auf 6A ist nun eine Ausführungsform des Verfahrens der vorliegenden Erfindung gezeigt. Der Fehlercode für zwei oder mehrere Reihen wird generiert 610, indem die Anzahl eingestellter Bits in einem Eintrag in der sich nichtwiederholenden Spalte berechnet und komplementiert wird, dann mit dem Eintrag aus der sich nichtwiederholenden Spalte, aus welcher der Fehlercode generiert wurde, assoziiert wird 612. Bestimmte Reihen werden ausgewählt 614, indem beispielsweise alle Reihen auf Gleichheit geprüft werden, welche Daten in einer Spalte enthalten, die mit einer vorgewählten Nummer übereinstimmt. Entsprechende Bits in den ausgewählten Reihen werden miteinander logisch ODER-verknüpft 616. Der Fehlercode für die resultierende ODER-verknüpfte sich nichtwiederholende Spalte wird neu berechnet 618, indem die Anzahl eingestellter Bits in der logisch ODER-verknüpften sich nichtwiederholenden Spalte gezählt wird und der Zählwert komplementiert wird. Der neu berechnete Fehlercode wird verglichen 620 mit der resultierenden ODER-verknüpften Fehlercodespalte. Wenn der neu berechnete Fehlercode gleich dem ODER-verknüpften Fehlercode ist, wird ein erstes Signal generiert 622. Wenn der neu berechnete Fehlercode nicht gleich dem ODER-verknüpften Fehlercode ist, wird ein zweites Signal generiert 626. Das erste und das zweite Signal zeigen das Fehlen oder Vorliegen einer Mehrfachübereinstimmung an. Die Generierung eines ersten Signals und des zweiten Signals kann durch die Generierung eines Einzelsignals ersetzt werden, nur wenn eine Gleichheit oder Ungleichheit detektiert wird, und im gegenteiligen Fall kein Signal generiert wird.
  • Mit Bezugnahme auf 6B ist nun ein alternatives Verfahren der vorliegenden Erfindung gezeigt. Das Verfahren arbeitet wie mit 6A, außer dass der neu berechnete Fehlercode berechnet wird 619, indem die Anzahl eingestellter Bits gezählt wird, und der Vergleich 621 wird durch Testen des neu berechneten Fehlercodes und ODER-verknüpften Fehlercodes auf eine bitweise Ungleichheit vorgenommen.

Claims (11)

  1. Verfahren zum Detektieren der Selektion von mehreren passenden Gliedern (120; 140, 142, 144) in einem Satz von Dateneinträgen in einer physischen Speichervorrichtung, wobei ein Binärcode verwendet wird, der einen ersten Codeteil (124; 126, 128, 130) und einen zweiten Codeteil (150) enthält, welches Verfahren umfasst: Koppeln eines sich nichtwiederholenden Satzes von Zahlen, die jeweils Bits umfassen, mit den Dateneinträgen, d. h. von einer Zahl des Satzes pro Dateneintrag; Berechnen von jeweiligen Binärfehlerdetektionscodes für die Dateneinträge, d. h. von einem Fehlerdetektionscode pro Dateneintrag, wobei jeder Fehlerdetektionscode von der demselben Dateneintrag zugeordneten Zahl berechnet wird, Selektieren von Dateneinträgen in dem Satz; Berechnen einer ersten logischen Summe, die Bits umfasst, als ersten Codeteil, durch logisches Summieren der Zahl oder der Zahlen, die mit dem selektierten Dateneintrag oder den selektierten Dateneinträgen gekoppelt sind; Berechnen eines Testcodes (216, 220; 296, 298, 299) durch Summieren und/oder Komplementieren des ersten Codeteils; Berechnen einer zweiten logischen Summe, als zweiten Codeteil, durch logisches Summieren des Fehlerdetektionscodes oder der Fehlerdetektionscodes, die mit dem selektierten Dateneintrag oder den selektierten Dateneinträgen gekoppelt sind; Testen des Testcodes auf Gleichheit mit dem zweiten Codeteil; und Erzeugen eines ersten Signals als Antwort auf den Test auf Gleichheit.
  2. Verfahren nach Anspruch 1, bei dem das erste Signal erzeugt wird, falls der zweite Codeteil dem Testcode gleich ist.
  3. Verfahren nach Anspruch 2, mit dem zusätzlichen Schritt zum Erzeugen eines zweiten Signals als Antwort auf den Test auf Gleichheit, das bestimmt, dass der zweite Codeteil dem Testcode nicht gleich ist.
  4. Verfahren nach Anspruch 1, bei dem das erste Signal erzeugt wird, falls der zweite Codeteil dem Testcode nicht gleich ist.
  5. Verfahren nach Anspruch 4, mit dem zusätzlichen Schritt zum Erzeugen eines zweiten Signals als Antwort auf den Test auf Gleichheit, das bestimmt, dass der zweite Codeteil dem Testcode gleich ist.
  6. Verfahren nach Anspruch 1, bei dem das erste Signal erzeugt wird, falls der zweite Codeteil dem Testcode bitweise ungleich ist.
  7. Verfahren nach Anspruch 6, mit dem zusätzlichen Schritt zum Erzeugen eines zweiten Signals als Antwort auf den Test auf Gleichheit, das bestimmt, dass der zweite Codeteil dem Testcode gleich ist.
  8. Verfahren nach Anspruch 1, bei dem der für jeden Dateneintrag berechnete Fehlerdetektionscode der Summe der Bits in der demselben Dateneintrag zugeordneten Zahl gleich ist.
  9. Verfahren nach Anspruch 1, bei dem der für jeden Dateneintrag berechnete Fehlerdetektionscode dem Komplement der Summe der Bits in der demselben Dateneintrag zugeordneten Zahl gleich ist.
  10. Verfahren nach Anspruch 1, bei dem der Testcode der Summe der Bits in dem ersten Codeteil gleich ist.
  11. Verfahren nach Anspruch 1, bei dem der Testcode dem Komplement der Summe der Bits in dem ersten Codeteil gleich ist.
DE69637427T 1995-06-09 1996-06-07 Verfahren und Gerät zur Erkennung doppelter Eintragungen in einer Nachschlagtabelle Expired - Lifetime DE69637427T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US488816 1995-06-09
US08/488,816 US5652580A (en) 1995-06-09 1995-06-09 Method and apparatus for detecting duplicate entries in a look-up table

Publications (2)

Publication Number Publication Date
DE69637427D1 DE69637427D1 (de) 2008-03-20
DE69637427T2 true DE69637427T2 (de) 2009-01-29

Family

ID=23941242

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69637427T Expired - Lifetime DE69637427T2 (de) 1995-06-09 1996-06-07 Verfahren und Gerät zur Erkennung doppelter Eintragungen in einer Nachschlagtabelle
DE69629823T Expired - Lifetime DE69629823T2 (de) 1995-06-09 1996-06-07 Verfahren und gerät zur erkennung doppelter eintragungen in einer nachschlagtabelle

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69629823T Expired - Lifetime DE69629823T2 (de) 1995-06-09 1996-06-07 Verfahren und gerät zur erkennung doppelter eintragungen in einer nachschlagtabelle

Country Status (5)

Country Link
US (1) US5652580A (de)
EP (2) EP1383050B1 (de)
JP (2) JP3920336B2 (de)
DE (2) DE69637427T2 (de)
WO (1) WO1996042052A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7328203B2 (en) * 2004-12-16 2008-02-05 International Business Machines Corporation System and method for executing complex if-then clauses
US7761774B2 (en) * 2005-10-28 2010-07-20 Qualcomm Incorporated High speed CAM lookup using stored encoded key
US8001432B2 (en) * 2008-11-20 2011-08-16 Lsi Corporation Uninitialized memory detection using error correction codes and built-in self test
JP4945618B2 (ja) * 2009-09-18 2012-06-06 株式会社東芝 A/dコンバータ
US8787059B1 (en) * 2011-12-05 2014-07-22 Netlogic Microsystems, Inc. Cascaded content addressable memory array having multiple row segment activation
US10037190B2 (en) 2016-03-24 2018-07-31 International Business Machines Corporation Transformation on input operands to reduce hardware overhead for implementing addition

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3963908A (en) * 1975-02-24 1976-06-15 North Electric Company Encoding scheme for failure detection in random access memories
US4547882A (en) * 1983-03-01 1985-10-15 The Board Of Trustees Of The Leland Stanford Jr. University Error detecting and correcting memories
JPS6476596A (en) * 1987-09-18 1989-03-22 Oki Electric Ind Co Ltd Error of eeprom detecting device
US5220526A (en) * 1991-03-01 1993-06-15 Motorola, Inc. Method and apparatus for indicating a duplication of entries in a content addressable storage device

Also Published As

Publication number Publication date
DE69637427D1 (de) 2008-03-20
WO1996042052A1 (en) 1996-12-27
DE69629823T2 (de) 2004-05-13
US5652580A (en) 1997-07-29
EP1383050A1 (de) 2004-01-21
EP0843852B1 (de) 2003-09-03
JP3996623B2 (ja) 2007-10-24
JPH11515118A (ja) 1999-12-21
EP1383050B1 (de) 2008-02-06
DE69629823D1 (de) 2003-10-09
JP2007087413A (ja) 2007-04-05
JP3920336B2 (ja) 2007-05-30
EP0843852A1 (de) 1998-05-27

Similar Documents

Publication Publication Date Title
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE3125048C2 (de)
DE69114881T2 (de) Analysevorrichtung zur Rettung von Halbleiterspeicherfehlern.
DE60015753T2 (de) System und verfahren zum schutz von daten und zur korrektur von bitfehlern folgend aus komponentenfehlern
DE2916710C2 (de)
DE69126057T2 (de) Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung
DE69019822T2 (de) Verfahren und Vorrichtung zur Prüfung des Inhalts und der Adresse einer Speicheranordnung.
DE3750460T2 (de) Halbleiterspeichergerät.
DE2400161A1 (de) Datenverarbeitungssystem und in diesem enthaltenes speichersystem
DE2421112A1 (de) Speicheranordnung
DE2556556A1 (de) Verfahren und anordnung zur speicherung von informationen ueber den ort eines oder mehrerer fehlerhafter bits in einem einzelne fehler korrigierenden halbleiter-hauptspeicher
DE3876459T2 (de) Speicher und deren pruefung.
DE69121733T2 (de) Technik zum eingebauten Selbsttest für Nur-Lese-Speicher
DE2157829C2 (de) Anordnung zum Erkennen und Korrigieren von Fehlern in Binärdatenmustern
DE2941868A1 (de) Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern
EP0400179A1 (de) Verfahren und Vorrichtung zum internen Paralleltest von Halbleiterspeichern
DE2554502C3 (de) Verfahren und Anordnung zum Adressieren eines Speichers
DE3587374T2 (de) Halbleiterspeichergeraet mit einer bit-fehlererkennungsfunktion.
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE2752377A1 (de) Fehlerpruefeinrichtung
DE69637427T2 (de) Verfahren und Gerät zur Erkennung doppelter Eintragungen in einer Nachschlagtabelle
DE2320354C2 (de) Schaltungsanordnung zur Erkennung und Korrektur von Fehlern in Bitgruppen
DE3786853T2 (de) Gerät zur Erkennung und Klassifizierung von Steuerwortfehlern.
DE3782893T2 (de) Informationsverarbeitungssystem, faehig zur verminderung ungueltiger speicheroperationen durch erkennung von hauptspeicherfehlern.
EP0127118B1 (de) Speichersteueranordnung, insbesondere für fehlertolerantes Fernsprech-Vermittlungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE