DE69629823T2 - 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
DE69629823T2
DE69629823T2 DE69629823T DE69629823T DE69629823T2 DE 69629823 T2 DE69629823 T2 DE 69629823T2 DE 69629823 T DE69629823 T DE 69629823T DE 69629823 T DE69629823 T DE 69629823T DE 69629823 T2 DE69629823 T2 DE 69629823T2
Authority
DE
Germany
Prior art keywords
code
inputs
output
sum
coupled
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
DE69629823T
Other languages
English (en)
Other versions
DE69629823D1 (de
Inventor
R. Nirmal 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
Application granted granted Critical
Publication of DE69629823D1 publication Critical patent/DE69629823D1/de
Publication of DE69629823T2 publication Critical patent/DE69629823T2/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 spezifisch 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 physischen 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 zerstört werden, zu der die Daten 140, 142, 144 in die physische Speicheranordnung geschrieben werden, welche die Nachschlagtabelle 110 repräsentiert. 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 eine Komplexität verleihen, welche die Leistung des Systems behindern und wertvollen Raum auf einer integrierten Schaltung erfordern würde. Es ist zweckmäßig, 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-3 963 908-A 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 sind ein Verfahren in Übereinstimmung mit Anspruch 1 und Vorrichtungen in Übereinstimmung mit den Ansprüchen 3 und 4 vorgesehen.
  • Gemäß der vorliegenden Erfindung detektieren ein Verfahren und Vorrichtungen das Vorliegen von zwei oder mehreren identischen Einträgen in einer Nachschlagtabelle. 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ömmlichen 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äß 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äß 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äß 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 Fehlerdetektionsschaltung gemäß der vorliegenden Erfindung.
  • 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 nicht wiederholende Spalte 124 bezeichnet wird, einen nicht-wiederholten Satz von Nummern. Ein nicht-wiederholter Satz von Nummern ist ein Satz von Nummern, worin keine zwei Elemente des Satzes identisch sind. Es ist hilfreich, obwohl nicht erforderlich, eine sich nicht wiederholende Spalte zu haben, bei der es äußerst unwahrscheinlich ist, dass sie irgendwelche wiederholte Nummern aufweist. In einer Ausführungsform sind die nicht-wiederholten 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 nicht wiederholenden 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 nicht wiederholenden Nummern 126, 128, 130 in der sich nicht wiederholenden 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 nicht wiederholenden 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 nicht wiederholende 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 2 Bit-Wort gezeigt. Jedes Bit 210, 212 in dem Wort ist mit einem EXKLUSIV-WEDER-NOCH-Gate 214 gekoppelt, um den niederwertigen Ausgang 216 für die Vorrichtung zu erzeugen. Die beiden Bits 210, 212 sind mit einem NICHT-UND-Gate 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 nicht wiederholenden 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 nicht wiederholenden 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 bekannte Suchfunktion 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-Gates 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-Gates 314 gekoppelt, die hoch signalisieren, wenn jedes Bit 340, 342, 344 gleich dem entsprechenden Eingang 320 ist. Die EXKLUSIV-ODER-Gates 314 sind mit einem UND-Gate 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-Gates 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-Gates 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 nicht wiederholenden 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, wobei eine Einrichtung für logische ODER-Verknüpfungen oder logische Summen die logische Summe jedes Bits berechnet 100, logisch ODER-verknüpft oder summiert mit 101, ist beispielsweise gleich 101. Logische ODER-Funktionen sind effizient in integrierten Schaltungen zu implementieren, eine logische ODER-Verknüpfung kann jedoch die Tatsache maskieren, dass zwei Nummern ODER-verknüpft wurden, 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-Gates 460, 462, 464, 466, 468 zu erzeugen. Die Spalten im Kästchen 420 repräsentieren individuelle Bits in jedem Eintrag der sich nicht wiederholenden 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 nicht-wiederholte 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 nicht wiederholenden 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-Gateeingang 510 gekoppelt, und das höherwertige Bit ist mit dem EXKLUSIV-ODER-Gateeingang 514 gekoppelt. Das niederwertige Bit aus dem neu berechneten Fehlercode ist mit dem EXKLUSIV-ODER-Gateeingang 512 gekoppelt, und das höherwertige Bit ist mit dem EXKLUSIV-ODER-Gateeingang 516 gekoppelt. In einer Ausführungsform ist das Gate 522 ein ODER-Gate 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 Gate 522 ein WEDER-NOCH-Gate, um das entgegengesetzte Signal vorzusehen. In einer weiteren Ausführungsform ist das Gate 522 ein ODER-Gate 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 nicht wiederholenden 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 Gate 522 ein UND-Gate, NICHT-UND-Gate 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 nicht wiederholenden Spalte berechnet und komplementiert wird, dann mit dem Eintrag aus der sich nicht wiederholenden Spalte, aus welcher der Fehlercode generiert wurde, assoziiert wird 612. Bestimmte Reihen werden ausgewählt 614, indem beispielsweise alle Reihen übereingestimmt 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 nicht wiederholende Spalte wird neu berechnet 618, indem die Anzahl eingestellter Bits in der logisch ODER-verknüpften sich nicht wiederholenden 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 Fehler code nicht gleich dem ODER-verknüpften Fehlercode ist, wird ein zweites Signal generiert. 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 (4)

  1. Verfahren zum Testen auf einen doppelten Tabelleneintrag, wenn in einer Tabelle nachgeschlagen wird, wobei ein Binärcode eingesetzt wird, der einen ersten Teil (124; 126, 128, 130) und einen zweiten Teil (150) umfasst, und welches Verfahren umfasst: Assoziieren eines sich nicht wiederholenden Satzes von Nummern mit den Tabelleneinträgen, eine Nummer des Satzes für jeden Tabelleneintrag, ferner Assoziieren jeweiliger Fehlerdetektionscodes mit den Tabelleneinträgen, ein Fehlerdetektionscode für jeden Tabelleneintrag, wobei jeder Fehlerdetektionscode von der mit demselben Tabelleneintrag assoziierten Nummer abgeleitet ist [durch Komplementieren dieser Nummer], Bilden einer logischen Summe der Nummer oder Nummern, die mit dem nachgeschlagenen Tabelleneintrag oder den nachgeschlagenen Tabelleneinträgen assoziiert ist oder sind, um eine Summe davon als ersten Codeteil zu erzeugen, Komplementieren der Summe, um eine komplementierte Summe {216, 220; 296, 298, 299) zu erzeugen; Bilden einer logischen Summe des Fehlerdetektionscodes oder der Fehlerdetektionscodes, der oder die mit dem nachgeschlagenen Tabelleneintrag oder mit den nachgeschlagenen Tabelleneinträgen assoziiert ist oder sind, um den zweiten Codeteil zu erzeugen, Vergleichen der komplementierten Summe mit dem zweiten Teil des Codes; und ansprechend auf die komplementierte Summe, wenn sie nicht gleich dem zweiten Teil des Codes ist, Veranlassen, dass ein erstes Signal generiert wird.
  2. Verfahren nach Anspruch 1, welches den zusätzlichen Schritt umfasst, dass, ansprechend auf die komplementierte Summe, wenn sie gleich dem zweiten Teil des Codes ist, veranlasst wird, dass ein zweites Signal generiert wird.
  3. Vorrichtung zum Durchführen des Verfahrens nach Anspruch 1, welche Vorrichtung umfasst: einen ersten Gleichheitsdetektor (5), der einen ersten Satz von Eingängen (510, 514), einen zweiten Satz von Eingängen (512, 516), die mit dem zweiten Teil des Codes gekoppelt sind, und einen Ausgang (524) mit einem ersten Zustand umfasst, der auf den ersten Satz von Eingängen anspricht, wenn sie gleich dem zweiten Satz von Eingängen sind, wobei der Ausgang einen zweiten Zustand hat, der auf den ersten Satz von Eingängen anspricht, wenn sie nicht gleich dem zweiten Satz von Eingängen sind; und einen Codeteilgenerator mit einem Satz einer Vielzahl von Eingängen, die mit dem ersten Teil des Codes gekoppelt sind, und einem Satz von zumindest einem Ausgang, der mit dem ersten Satz von Gleichheitsdetektoreingängen gekoppelt ist, wobei der Codeteilgenerator zum Erzeugen, an seinem Ausgang, eines Komplements einer Summe jedes Bits im ersten Teil des Codes dient.
  4. Vorrichtung zum Durchführen des Verfahrens nach Anspruch 1, welche Vorrichtung umfasst: einen ersten Gleichheitsdetektor (5), der einen ersten Satz von Eingängen (510, 514), einen zweiten Satz von Eingängen (512, 516), die mit dem zweiten Teil des Codes gekoppelt sind, und einen Ausgang (524) mit einem ersten Zustand umfasst, der auf den ersten Satz von Eingängen anspricht, wenn sie gleich dem zweiten Satz von Eingängen sind, wobei der Ausgang einen zweiten Zustand hat, der auf den ersten Satz von Eingängen anspricht, wenn sie nicht gleich dem zweiten Satz von Eingängen sind; und einen Codeteilgenerator mit einem Satz einer Vielzahl von Eingängen, die mit dem ersten Teil des Codes gekoppelt sind, und einem Satz von zumindest einem Ausgang, der mit dem ersten Satz von Gleichheitsdetektoreingängen gekoppelt ist, wobei der Codeteilgenerator zum Erzeugen, an seinem Ausgang, einer Summe jedes Bits im ersten Teil des Codes dient.
DE69629823T 1995-06-09 1996-06-07 Verfahren und gerät zur erkennung doppelter eintragungen in einer nachschlagtabelle Expired - Lifetime DE69629823T2 (de)

Applications Claiming Priority (3)

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
PCT/US1996/009369 WO1996042052A1 (en) 1995-06-09 1996-06-07 Method and apparatus for detecting duplicate entries in a look-up table

Publications (2)

Publication Number Publication Date
DE69629823D1 DE69629823D1 (de) 2003-10-09
DE69629823T2 true DE69629823T2 (de) 2004-05-13

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 Before (1)

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

Country Status (5)

Country Link
US (1) US5652580A (de)
EP (2) EP0843852B1 (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
DE69629823D1 (de) 2003-10-09
JPH11515118A (ja) 1999-12-21
EP0843852B1 (de) 2003-09-03
WO1996042052A1 (en) 1996-12-27
JP3996623B2 (ja) 2007-10-24
EP1383050A1 (de) 2004-01-21
DE69637427T2 (de) 2009-01-29
DE69637427D1 (de) 2008-03-20
JP2007087413A (ja) 2007-04-05
EP0843852A1 (de) 1998-05-27
US5652580A (en) 1997-07-29
JP3920336B2 (ja) 2007-05-30
EP1383050B1 (de) 2008-02-06

Similar Documents

Publication Publication Date Title
DE69220818T2 (de) Verfahren und Einrichtung zur Fehlererkennung in Recherspeichern versehen mit Mehrfach-bit-Ausgängen
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE69114881T2 (de) Analysevorrichtung zur Rettung von Halbleiterspeicherfehlern.
DE69116919T2 (de) Selbsttestverfahren für inhaltsadressierbare Speicher
DE3125048C2 (de)
DE69019822T2 (de) Verfahren und Vorrichtung zur Prüfung des Inhalts und der Adresse einer Speicheranordnung.
DE2550342C2 (de) Schaltungsanordnung zur Prüfung von Matrixanordnungen
DE68922880T2 (de) Selbstprüfende Majoritätsvotumlogik für fehlertolerante Rechnungsanwendungen.
DE3128740A1 (de) Dynamisches halbleiter-speichersystem
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE3876459T2 (de) Speicher und deren pruefung.
EP0400179B1 (de) Verfahren und Vorrichtung zum internen Paralleltest von Halbleiterspeichern
DE3209679A1 (de) Halbleiter-speichereinrichtung
DE69904618T2 (de) Detektionstechnik von speicherabschnittfehlern und einzel-, doppel und triplebitfehlern
DE2157829C2 (de) Anordnung zum Erkennen und Korrigieren von Fehlern in Binärdatenmustern
DE69129059T2 (de) Speichersystem mit Fehlererkennung und -korrektur
DE1959231C3 (de) Verfahren und Vorrichtung zur Korrektur von bis zu drei Fehlern eines aus 23 Bits bestehenden Codewortes
DE2554502C3 (de) Verfahren und Anordnung zum Adressieren eines Speichers
DE1474037C3 (de) Paritätsprüfverfahren und -prüfeinrichtung für datenverarbeitende Maschinen
DE2752377A1 (de) Fehlerpruefeinrichtung
DE69629823T2 (de) Verfahren und gerät zur erkennung doppelter eintragungen in einer nachschlagtabelle
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE69519727T2 (de) Datenbanksuchsystem
DE3782893T2 (de) Informationsverarbeitungssystem, faehig zur verminderung ungueltiger speicheroperationen durch erkennung von hauptspeicherfehlern.
DE3786853T2 (de) Gerät zur Erkennung und Klassifizierung von Steuerwortfehlern.

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