DE69827714T2 - Assoziativspeichersystem - Google Patents

Assoziativspeichersystem Download PDF

Info

Publication number
DE69827714T2
DE69827714T2 DE69827714T DE69827714T DE69827714T2 DE 69827714 T2 DE69827714 T2 DE 69827714T2 DE 69827714 T DE69827714 T DE 69827714T DE 69827714 T DE69827714 T DE 69827714T DE 69827714 T2 DE69827714 T2 DE 69827714T2
Authority
DE
Germany
Prior art keywords
cam
signal
chip
hit
match
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
DE69827714T
Other languages
English (en)
Other versions
DE69827714D1 (de
Inventor
Garnet Frederick Randall Nepean Gibson
Kenneth James Kanata Schultz
Farhad Nepean Shafari
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.)
INDEPENDENCE MANZANAR LLC, LAS VEGAS, NEV., US
Original Assignee
Nortel Networks 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
Priority to US919227 priority Critical
Priority to US08/919,227 priority patent/US6230236B1/en
Application filed by Nortel Networks Ltd filed Critical Nortel Networks Ltd
Publication of DE69827714D1 publication Critical patent/DE69827714D1/de
Application granted granted Critical
Publication of DE69827714T2 publication Critical patent/DE69827714T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf ein inhaltsadressierbares Speicher-(CAM-)System oder ein Assoziativspeichersystem, bei dem eine Vielzahl von CAM-Chips in Kaskade miteinander verbunden sind.
  • Hintergrundinformation
  • Bei bekannten CAM's werden Daten auf der Grundlage des Inhaltes anstelle der physikalischen Position ausgewählt. Diese Funktion ist in vielen Fällen nützlich, insbesondere dann, wenn ein Nachschlagevorgang zum Zwecke der Umsetzung eines langen Identifikationswortes auf ein kürzeres Wort ausgeführt wird. Diese Operation ist in vielen Telekommunikationsfunktionen erforderlich, unter Einschluss der Adressenumsetzung bei der asynchronen Übertragungsbetriebsart.
  • In vielen Fällen übersteigt der Systemspeicherbedarf die Anzahl der auf einem einzigen CAM-Chip gespeicherten Einträge. Es sind dann mehrere Chips erforderlich, und es ist erforderlich, dass Einrichtungen entwickelt werden, um diese Mehrzahl von Chips derart miteinander zu kaskadieren, dass sie als eine einzige Einheit durchsucht werden können. Eine geeignete „benutzerfreundliche" Kaskadierungsfähigkeit ermöglicht es, dass der gleiche Chip in einem Bereich von Systemen mit unterschiedlichen Kapazitätsanforderungen verwendet wird, und ermöglicht auch eine einfache Expandierbarkeit und Skalierbarkeit.
  • Das US-Patent 5568416, das am 22. Oktober 1996 auf den Namen von K. Kawana et al. erteilt wurde, beschreibt einen Assoziativspeicher, bei dem mehrere CAM-Chips dadurch kaskadiert werden, dass Ergebnisadressen und der Ergebnisstatus durch alle Chips in der Kaskade weitergeleitet wird. Jeder Chip enthält ein Statusregister für sich selbst und ein weiteres für alle schaltungsaufwärts gelegenen Chips. Dieses Patent beschreibt weiterhin Einrichtungen zur Identifikation des letzten Bauteils in der Kaskade und getrennte Speicherbereiche für gemeinsame und spezielle Dateneinträge.
  • In der Veröffentlichung von Tadato Yamagata et al. „A 288-kb Fully Parallel Content Addressable Memory Using A Stacked-Capacitor Cell Structure", IEEE Journal of Solid-State Circuits, Bd. 27, Nr. 12, 1. Dezember 1992, Seiten 1927–1933, beschreibt einen vollständig parallelen CAM unter Verwendung einer kompakten dynamischen CAM-Zelle mit einer gestapelten Kondensatorstruktur und einem hierarchischen Prioritäts-Kodierer. Sie beschreibt weiterhin eine Prioritäts-Entscheidungsschaltung.
  • Die Veröffentlichung „Self-Timed Hit Circuit for a Content Addressable Memory", IBM Technical Disclosure Bulletin, Bd. 38, Nr. 2, 1. Februar 1995, Seiten 65–66, beschreibt ein Verfahren zur Erzeugung eines NAND-artigen Vergleichs für einen inhaltsadressierbaren Speicher unter Verwendung einer DOT-NOR- und einer eigen-zeitgesteuerten aktivierten Schaltung. Ein eigen-zeitgesteuertes Signal verfolgt die Betriebsleistung der Schlimmstfall-MISS-(Fehltreffer-)Leitung und ermöglicht es den HIT-(Treffer-)Schaltungen in richtiger Weise zu arbeiten.
  • Es ist ein Ziel der vorliegenden Erfindung, ein verbessertes inhaltsadressierbares Speichersystem zu schaffen. Die Erfindung ist durch den vorliegenden Anspruch 1 definiert.
  • Gemäß einem Gesichtspunkt der vorliegenden Erfindung wird ein System geschaffen, das einen gemeinsamen Bus und eine Vielzahl von inhaltsadressierbaren Speicher-(CAM-)Chips umfasst, die kaskadiert und mit dem gemeinsamen Bus verbunden sind, wobei jeder der CAM-Chips Folgendes umfasst: Kodiereinrichtungen; und eine Anordnung von Kernzellen mit w Worten × b Bits, die den Kodiereinrichtungen zugeordnet sind, wobei jede Kernzelle Datenspeichereinrichtungen umfasst, wobei jeder CAM-Chip so betreibbar ist, dass er in Abhängigkeit von einem Taktsignal durchsucht werden kann, um über die Kodiereinrichtungen dieses CAM-Chips Treffer- und Übereinstimmungs-Adressensignale zu liefern, die sich aus einer Suchoperation auf diesem CAM-Chip ergeben, dadurch gekennzeichnet, dass jeder der CAM-Chips weiterhin Folgendes umfasst: Zeitsteuerschaltungen zur Erzeugung eines eigen- zeitgesteuerten Signals in Abhängigkeit von dem Taktsignal, wobei das eigen-zeitgesteuerte Signal für eine Suchoperation auf diesem CAM-Chip verwendet wird, wobei die Treffer- und Übereinstimmungs-Adressensignale, die sich aus der Suchoperation auf diesem CAM-Chip ergeben, über die Kodiereinrichtungen dieses CAM-Chips in Abhängigkeit von dem eigen-zeitgesteuerten Signal geliefert werden; und erste Logikeinrichtungen zur Lieferung eines Ausbreitungs-Ausgangs-Treffersignals an einen nachfolgenden CAM-Chip in Abhängigkeit von dem eigen-zeitgesteuerten Signal, dem aus der Suchoperation resultierenden Treffersignal und einem Ausbreitungs-Eingangs-Treffersignal, das von einem vorhergehenden CAM-Chip geliefert wird.
  • Vorzugsweise umfassen die ersten Logikeinrichtungen ODER-Verknüpfungseinrichtungen zur logischen Kombination des eigen-zeitgesteuerten Signals, des Treffersignals, und des Ausbreitungs-Eingangs-Treffersignals zur Lieferung des Ausbreitungs-Ausgangs-Treffersignals.
  • Vorzugsweise umfasst jeder CAM-Chip weiterhin zweite Logikeinrichtungen zur Übertragung des Übereinstimmungs-Adressensignals auf den gemeinsamen Bus in Abhängigkeit von dem eigen-zeitgesteuerten Signal, dem sich aus der Suchoperation ergebenden Treffersignal und dem Ausbreitungs-Eingangs-Treffersignal, das von einem vorhergehenden CAM-Chip geliefert wird.
  • Vorzugsweise umfasst die zweite Logikeinrichtung Folgendes: UND-Verknüpfungsglied-Einrichtungen zur logischen Kombination des eigen-zeitgesteuerten Signals, des Treffersignals und des Ausbreitungs-Eingangs-Treffersignals zur Lieferung eines Freigabesignals, und Übertragungsgatter-Einrichtungen zur Übertragung des Übereinstimmungs-Adressensignals auf den gemeinsamen Bus in Abhängigkeit von dem Freigabesignal.
  • Vorzugsweise umfassen die UND-Verknüpfungseinrichtungen ein drei Eingänge aufweisendes UND-Verknüpfungsglied mit Eingängen zum Empfang des eigen-zeitgesteuerten Signal, das von der Zeitsteuerschaltung dieses CAM-Chips geliefert wird, des von diesem CAM-Chip gelieferten Treffersignals und eines invertierten Signals des Ausbreitungs-Eingangs-Treffersignals, das von dem vorhergehenden CAM-Chip geliefert wird.
  • Vorzugsweise umfassen die ODER-Verknüpfungseinrichtungen ein drei Eingänge aufweisendes ODER-Verknüpfungsglied mit Eingängen zum Empfang eines invertierten Signals des eigen-zeitgesteuerten Signals, das von der Zeitsteuerschaltung dieses CAM-Chips geliefert wird, des von diesem CAM-Chip gelieferten Treffersignals und des Ausbreitungs-Eingangs-Treffersignals, das von dem vorhergehenden CAM-Chip geliefert wird.
  • Vorzugsweise ist jeder CAM-Chip so betreibbar, dass er in Abhängigkeit von dem eigen-zeitgesteuerten Signal durchsucht wird, um über die Kodiereinrichtungen dieses CAM-Chips das Treffersignal, das Übereinstimmungs-Adressensignal und ein Mehrfach Übereinstimmungssignal zu liefern, die sich aus einem Suchbetrieb auf diesem CAM-Chip ergeben, wobei jeder der CAM-Chips weiterhin Mehrfach-Übereinstimmungs-Ausbreitungseinrichtungen zur Lieferung eines Mehrfach-Ausbreitungs-Ausgangs-Übereinstimmungssignals an den nachfolgenden CAM-Chip umfasst, wobei die Mehrfach-Übereinstimmungs-Ausbreitungseinrichtungen eine Logik-Verknüpfungsschaltung zur logischen Kombination des von diesem CAM-Chip gelieferten Treffersignals, des von diesem CAM-Chip gelieferten Mehrfach-Übereinstimmungssignals, eines Ausbreitungs-Eingangs-Mehrfach-Übereinstimmungssignals, das von dem vorhergehenden CAM-Chip geliefert wird, und eines Ausbreitungs-Eingangs-Treffersignals umfassen, das von dem vorhergehenden CAM-Chip geliefert wird.
  • Vorzugsweise umfasst das System weiterhin Einrichtungen zur Lieferung von System-Treffer- und Übereinstimmungs-Adressenergebnissen der kaskadierten CAM-Chips in Abhängigkeit von dem Ausbreitungs-Ausgangs-Treffersignal, das von dem am weitesten hinten in der Schaltungskette liegenden CAM-Chip geliefert wird, und dem Übereinstimmungs-Adressensignal, das von dem gemeinsamen Bus geliefert wird.
  • Vorzugsweise umfasst das System weiterhin Einrichtungen zur Feststellung der Priorität der Chips in den kaskadierten CAM-Chips in Abhängigkeit von den Ausbreitungs-Eingangs-Treffersignalen und den Ausbreitungs-Ausgangs-Treffersignalen, die von den kaskadierten CAM-Chips geliefert werden.
  • Vorzugsweise umfasst jeder CAM-Chip eine CAM-Anordnung, wobei die Kodiereinrichtungen und die Matrix von Kernzellen dieses CAM-Chips in der CAM-Anordnung enthalten sind, wobei die CAM-Anordnung der ersten Logikeinrichtung dieses CAM-Chips die Treffer- und Übereinstimmungssignalen liefert, die sich aus der Suchoperation in Abhängigkeit von dem eigen-zeitgesteuerten Signal ergeben, das von der Zeitsteuerschaltung dieses CAM-Chips geliefert wird.
  • Vorzugsweise umfasst jeder CAM-Chip eine CAM-Anordnung, wobei die Kodiereinrichtungen und die Matrix von Kernzellen dieses CAM-Chips in der CAM-Matrix enthalten sind, wobei die CAM-Anordnung den Mehrfach-Übereinstimmungs-Ausbreitungs-Einrichtungen dieses CAM-Chips die Treffer- und Mehrfach-Übereinstimmungssignale liefert, die sich aus der Suchoperation in Abhängigkeit von dem eigen-zeitgesteuerten Signal ergeben, das von der Zeitsteuerschaltung dieses CAM-Chips geliefert wird.
  • In dem System wird ein System-Treffersignal, das sich aus der Suchoperation des CAM-Chips ergab, von Chip zu Chip weitergeleitet. Ein System-Trefferergebnis wird von dem nachfolgenden CAM-Chip geliefert, und ein System-Übereinstimmungsadressen-Ergebnis wird von dem gemeinsamen Bus geliefert. Das System wirkt als ein einziger Mehr-Chip-CAM mit n × w-Worten, wobei n die Anzahl der CAM-Chips ist.
  • Jedes CAM-Chip kann weiterhin Ansteuereinrichtungen umfassen, um über den CAM-Chip zu entscheiden, der das Übereinstimmungs-Adressensignal an den Bus liefern darf. Die Ansteuereinrichtungen umfassen Einrichtungen, die verhindern, dass mehr als ein CAM-Chip zur gleichen Zeit das Adressensignal an den Bus liefert.
  • Kurze Beschreibung der Zeichnungen
  • Eine Ausführungsform der vorliegenden Erfindung wird nunmehr in Form eines Beispiels unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
  • 1A die Ansicht eines Konzeptes einer einzigen CAM-Anordnung und deren Ausgangssignale zeigt:
  • 1B die vorausgesetzte Position der CAM-Anordnung innerhalb eines einzigen CAM-Chips zeigt;
  • 1C die einfachstmögliche Verbindung der CAM-Anordnung mit den Chip-Anschlussstiften zeigt;
  • 2 ein Blockschaltbild eines Systems unter Einschluss einer Vielzahl von CAM-Chips, die kaskadiert sind, gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 das System mit Schaltungen zur Festlegung eines einen Bus ansteuernden CAM-Chips zeigt;
  • 4 ein Zeitdiagramm ist, das das eigen-zeitgesteuerte Signal und Suchergebnisse auf dem Chip zeigt;
  • 5 Logik-Verknüpfungsglieder zur Realisierung der Kaskadierung der CAM-Matrix zeigt;
  • 6A ein Zeitdiagramm ist, das die relative Zeitsteuerung von Signalen auf dem Chip in Abhängigkeit von dem Übergang von 0 auf 0 eines Ausbreitungs-Eingangs-Treffersignals zeigt;
  • 6B ein Zeitdiagramm ist, das die relative Zeitsteuerung von Signalen auf den Chips in Abhängigkeit von dem Übergang von 1 auf 0 des Ausbreitungs-Eingangs-Treffersignals zeigt;
  • 6C ein Zeitdiagramm ist, das die relative Zeitsteuerung von Signalen auf dem Chip in Abhängigkeit von dem Übergang des Ausbreitungs-Eingangs-Treffersignals von 0 auf 1 zeigt;
  • 6 ein Zeitsteuerdiagramm ist, das die relativen Zeitsteuerungen von Signalen auf dem Chip in Abhängigkeit von dem Übergang eines Ausbreitungs-Eingangs-Treffersignals von 1 auf 1 zeigt;
  • 7 Logikgatter zur Realisierung der Mehrfach-Übereinstimmungs-Ausbreitung in dem System zeigt;
  • 8 ein Blockschaltbild eines eigen-zeitgesteuerten Signalgenerators ist;
  • 9 ein Schaltbild eines ersten Beispiels eines CAM-Chips ist;
  • 10 ein Schaltbild eines zweite Beispiels eines CAM-Chips ist;
  • 11 ein Schaltbild eines dritten Beispiels eines CAM-Chips ist;
  • 12 einen eigen-zeitgesteuerten Signalgenerator zeigt;
  • 13 ein Schaltbild eines vierten Beispiels eines CAM-Chips ist;
  • 14A einen eigen-zeitgesteuerten Signalgenerator zeigt;
  • 14B einen eigen-zeitgesteuerten Signalgenerator zeigt;
  • 15 ein Blockschaltbild eines fünften Beispiels eines CAM-Chips ist;
  • 16 Logikgatter zur Realisierung einer geeigneten Gesamt-Chip-Zeitsteuerung eines eigen-zeitgesteuerten Signals für mehrfache CAM-Anordnungen zeigt; und
  • 17 ein Logikgatter zur Erzeugung eines Ausbreitungs-Ausgangs-Treffersignals zeigt.
  • Ausführliche Beschreibung
  • Es ist wünschenswert, einen Mehr-Chip-CAM gerätemäßig so auszugestalten, dass er die gleichen einfachen drei Ergebnis-Ausgänge hat, wie ein Einzel-Chip-CAM (d. h. Treffer-, Übereinstimmungs-Adresse und Mehrfach-Übereinstimmung). Es ist weiterhin wünschenswert, eine einfache Erweiterbarkeit von einem Ein-Chip- zu einem n-Chip-System zu ermöglichen, wobei nichts anderes als eine Vielzahl von n von Instanzen des gleichen Chips verwendet wird.
  • I. Konzept einer CAM-Anordnung
  • 1A zeigt das Konzept einer einzelnen CAM-Anordnung. Eine CAM-Anordnung 110 weist drei Ausgänge auf, d. h. Treffer ht, Mehrfachübereinstimmung mt und Übereinstimmungs-Adresse sa. Ausgänge der Anordnung sowie andere Signale auf dem Chip werden in dieser Beschreibung durch Kleinbuchstaben bezeichnet. Signale, die sich zu dem Chip oder von diesem fort bewegen (über Anschlussstifte) werden mit Großbuchstaben bezeichnet. Nachfolgend wird immer dann, wenn ein CAM-Chip gezeigt ist, gedanklich die Anordnung so verwendet, als ob sie auf einem CAM-Chip 120 eingebettet ist, wie dies in 1B gezeigt ist. Die einfachstmöglichen Verbindungen zwischen den Ausgängen der Anordnung und den Chip-Ausgängen sind in 1C gezeigt.
  • II. Eine effiziente Art und Weise der Verbindung von mehrfachen CAM-Chips
  • Es ist die Absicht dieser Erfindung, die Verbindung einer Vielzahl von CAM-Chips in einer effizienten Weise zu ermöglichen.
  • Um eine Kaskadierbarkeit mit einfacher Erweiterbarkeit zu erzielen, bestehen die folgenden Anforderungen an die Chip-Konstruktion:
    • (1) Die Mehrzahl der Chips sollte in der Lage sein, so viele Steuersignale und Busleitungen wie möglich gemeinsam zu nutzen, um die Notwendigkeit neuer Signale auf der Leiterplattenebene für jeden zusätzlichen Chip zu vermeiden.
    • (2) Damit die Kombination mehrerer Chips als eine einzige Einheit erscheint, sollte ein Gesamt-Suchergebnis an irgendeiner vorgegebener Stelle in einem System verfügbar sein, in dem eine Vielzahl von CAM-Chips kaskadiert sind. Dies gilt für die kodierte Übereinstimmungsadresse, eine Trefferanzeige und eine Mehrfach-Übereinstimmungs-Anzeige, sofern diese vorgesehen ist. Wenn diese Fähigkeit (der Bereitstellung des Ergebnisses an einer vorgegebenen Stelle) geschaffen wird, ist es nicht erforderlich, aufeinanderfolgend die Anzahl der Chips abzufragen, um das Suchergebnis festzustellen.
    • (3) Alle Chips in der Kaskade müssen identisch sein und zwar hinsichtlich:
    • (a) der tatsächlichen physikalischen Zusammensetzung
    • (b) der programmierten Fähigkeiten, insbesondere der „Priorität". Die Priorität eines Chips sollte von Natur aus durch seine Position in der Kaskade vorgegeben sein und sollte keine Programmierung eines auf dem Chip angeordneten Registers erfordern.
    • (4) Die Anzahl der Signale, die von Chip zu Chip in einer kaskadierten Weise ferngesteuert werden, sollte zu einem Minimum gemacht werden:
    • (a) Die kodierte Übereinstimmungs-Adresse ist zu breit, um sich in dieser Weise auszubreiten.
    • (b) Die Chip-zu-Chip-„Daisy-Chain"-(Verkettungs-)Signale sollten in idealer Weise eine gewisse Bedeutung für den Benutzer haben, zusätzlich zu ihrer Brauchbarkeit bei der Chip-zu-Chip-Signalisierung.
    • (5) Es ist aus den vorstehenden Konstruktionsforderungen erforderlich, dass alle Chips in der Kaskade in der Lage sein werden, ihre einzelnen Übereinstimmungsadressen-Ergebnisse auf einen einzigen Bus zu legen.
    • (a) Es sollte keine Wettbewerbsprobleme auf diesem Bus geben.
    • (b) Auf dem Chip angeordnete Schaltungen sollten festlegen, welcher Chip den Bus ansteuert; es ist nicht erforderlich, Einrichtungen zur Auswahl eines Chips für eine Freigabe zu haben.
  • III. Maximierung der Anzahl von gemeinsam genutzten Signalen
  • Zur Maximierung der Anzahl der gemeinsam genutzten Signale wird vorgeschlagen, dass alle Chips in dem kaskadierten Mehr-Chip-CAM Folgendes verwenden:
    • (1) Einen gemeinsamen Eingangs-Datenbus für Schreibdaten.
    • (2) Einen gemeinsamen Ausgangs-Datenbus für Lesedaten.
    • (3) Einen gemeinsamen Adressenbus für beliebig adressierbare Schreib- und Lesevorgänge.
    • (4) Einen gemeinsamen Satz von Betriebsart-Steuersignalen, um festzulegen, welche Operation (Schreiben, Lesen oder Suchen) auf dem Mehr-Chip-CAM insgesamt ausgeführt wird.
    • (5) Einen gemeinsamer Eingangsbus für den Sucheingang (oder „Komparanden").
    • (6) Einen gemeinsamen Ausgangsbus für das Suchergebnis, das üblicherweise die kodierte Adresse einer Übereinstimmung ist. Es sei bemerkt, dass das „Ergebnis" auch ein Datenposten sein könnte, der zusammen mit dem Komparanden gespeichert und diesem zugeordnet ist. Es kann weiterhin eine Serie von Datenposten sein, entweder:
    • (a) mehrfache kodierte Adressen im Fall eines Mehrfach-Übereinstimmungs-Suchergebnisses
    • (b) mehrfache Posten von zugeordneten Daten
    • (c) eine Kombination des Vorstehenden.
  • Es sei bemerkt, dass die vorstehenden Busleitungen (1), (2) und (5) ohne weiteres doppelte oder dreifache Nutzungen haben können.
  • Das Folgende befasst sich mit der Suchfunktion des kaskadierten CAM, weil die gemeinsame Nutzung von Busleitungen und Steuersignalen für Speicher-, Lese- und Schreibvorgänge gut bekannt ist und in der Literatur gut dokumentiert ist.
  • IV. Konzept eines Mehr-Chip-CAM-Systems
  • Die System-Treffer- und Mehrfach-Übereinstimmungs-Ergebnisse sind an dem schaltungsabwärts gelegenen Ende (dem eine niedrige Priorität aufweisenden Ende) verfügbar.
  • Die Mehrfach-Übereinstimmungs-Funktion muss nicht unbedingt vorgesehen sein.
  • Die kodierte Adresse steht auf dem gemeinsam genutzten Ergebnis-Bus zur Verfügung. Sie kann Folgendes umfassen:
    • (a) Das Ergebnis, wie es durch den speziellen Chip bestimmt ist, der zum Ansteuern des Bus freigegeben ist, und wie dies durch die vorstehende Beschreibung (6) des gemeinsamen Ausgangs-Bus beschrieben ist.
    • (b) Das Ergebnis plus eine kodierte Adresse, die in eindeutiger Weise den ausgewählten Chip identifiziert.
  • Diese kodierte Adresse muss sich nicht über mehrfache Chips hinweg ausbreiten.
  • Alle Chips sind identisch (abgesehen von irgendeiner wahlweisen Identifikations-Kodiermöglichkeit, die weiter oben vorausgesetzt wurde), und die Priorität wird durch die Position in der Kaskade bestimmt: Je weiter schaltungsaufwärts oder je weiter nach links, desto höher ist die Priorität. Eine Übereinstimmung mit höherer Priorität verhindert, dass eine eine niedrigere Priorität aufweisende Übereinstimmung den Ergebnis-Bus ansteuert.
  • Die Verbindung von Treffer-, Mehrfach-Übereinstimmungs-, Ausbreitungs-Eingangs-Treffer- und Ausbreitungs-Eingangs-Mehrfach-Übereinstimmungs-Anschlussstiften gemäß 2 realisiert eine „Daisy Chain".
  • Die Beobachtung eines vorgegebenen Treffer- und Mehrfach-Übereinstimmungs-Paares zeigt den Status des gesamten Systems in Schaltungsaufwärtsrichtung (nach links) von diesem speziellen Paar an.
  • V. Ausführungsform eines Mehr-Chip-CAM-Systems
  • Gemäß 2, die ein System gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, schließt das System n CAM-Chips 120 ein, die kaskadiert sind, wobei jeder der CAM-Chips 120 Übereinstimmungs-Adressensignale SA an einen gemeinsam genutzten Bus 122 liefert. Jeder der CAM-Chips 120 weist Treffer- und Mehrfach-Übereinstimmungs-Eingangsanschlüsse zum Empfang der Treffer- und Mehrfach-Übereinstimmungssignale (externe Signale) HTI bzw. MIT von dem schaltungsaufwärts gelegenen oder vorhergehenden CAM-Chip 120 und Treffer- und Mehrfach-Übereinstimmungs-Ausgangsanschlüsse zur Lieferung von Treffer- bzw. Mehrfachübereinstimmungs-Signalen HT bzw. MT an den schaltungsabwärts gelegenen oder nachfolgenden CAM-Chip 120 auf. Die Treffer- und Mehrfach-Übereinstimmungs-Eingangsanschlüsse des am weitesten schaltungsaufwärts gelegenen CAM-Chips 120 sind mit logischen Null-Anschlüssen verbunden. Der CAM-Chip 120 weist vielfältige Variationsmöglichkeiten auf, die weiter unten beschrieben werden. De System-Treffer- und -Mehrfach-Übereinstimmungs-Ergebnisse SHT und SMT stehen an der äußersten rechten Seite (dem am weitesten schaltungsabwärts gelegenen CAM-Chip 120) zur Verfügung. Ein Taktgenerator 124 erzeugt Taktsignale ck an die CAM-Chips 120. Eine Suchergebnis-Beobachtungsschaltung 126 ist mit dem Bus 122 und den Treffer- und Mehrfach-Übereinstimmungs-Ausgangsanschlüssen des am weitesten schaltungsabwärts gelegenen CAM-Chips 120 verbunden.
  • Weil die Treffer- und Mehrfach-Übereinstimmungs-Ergebnisse HT und MT Informationen über den Status des gesamten oder eines Teils des Systems liefern, statt den Status eines einzelnen Chips, müssen andere Einrichtungen vorgesehen werden, um den Status eines vorgegebenen Chips festzustellen. Ein nützlicher Teil der Statusinformation ist die Ordnungszahl-Position des Chips, der sein Ergebnis auf den Bus 120 geliefert hat (d. h. der die höchste Priorität aufweisende Chip mit einer Übereinstimmung). Die Binärdarstellung der Ordnungszahl des Chips kann in einer möglichen Weise durch in 3 gezeigte Logikschaltungen festgestellt werden. Diese Lösung erfordert Logikschaltungen außerhalb der CAM-Chips, die die Kaskade bilden, wobei die Treffersignale als Eingänge verwendet werden.
  • 3 zeigt die kaskadierten CAM-Chips mit externen Logikschaltungen, die n UND-Verknüpfungsglieder einschließen, um festzustellen, welcher CAM-Chip den gemeinsamen Bus ansteuert. Gemäß 3 hat jedes der UND-Verknüpfungsglieder 28 invertierende und nicht-invertierende Eingangsanschlüsse. Die Treffereingangs- und -aungangsanschlüsse des CAM-Chip 120 sind mit den invertierenden und nicht-invertierenden Eingangsanschlüssen des jeweiligen UND-Verknüpfungsgliedes 128 verbunden. Die n Ausgangssignale von den UND-Verknüpfungsgliedern 128 werden einem n-zu-log2n-Kodierer zugeführt.
  • Alternativ können die UND-Verknüpfungsglieder 128 auf dem Chip mit einem zusätzlichen Anschlussstift auf dem CAM-Chip 120 integriert werden, der vorgesehen ist, um anzuzeigen, ob der spezielle Chip den Treffer mit höchster Priorität hat und den Bus 122 ansteuert. Weiterhin können Suchadressen-Ergebnisse auf dem Chip in (nicht gezeigten) Registern gespeichert werden. Das Ausgangssignal des Kodierers 130 kann verwendet werden, um festzustellen, welches Ergebnisregister von welchem Chip gelesen wurde.
  • Weiter oben wurde in der Konstruktionsanforderung 5 ausgesagt, dass auf dem Chip angeordnete Schaltungen sicherstellen müssen, dass sich kein Wettbewerb auf dem gemeinsamen Bus ergibt; das heißt es versucht niemals mehr als ein Chip, den Bus 122 zu irgendeiner Zeit anzusteuern. Um diese Funktionalität auf dem Chip zu realisieren, wird ein internes eigen-zeitgesteuertes Signal eingeführt. Dieses Signal nimmt einen niedrigen Pegel nach der Anstiegsflanke des Taktsignals ck an, was die Suchoperation einleitet. Es steigt an, nachdem gültige Daten auf dem internen Adressenbus vorliegen, und bei dem internen Treffer-Statussignal ht. Daher können Übergänge des eigen-zeitgesteuerten Signals dazu gebracht werden, dass sie diejenigen auf dem Treffersignal ht nachmodellieren. Die Zeitsteuerung dieser Übergänge ist in 4 gezeigt.
  • Unter der Voraussetzung der in 4 gezeigten Signale wird der System-Trefferstatus weitergeleitet, und es wird sichergestellt, dass lediglich ein einziger Chip den gemeinsam benutzen Ergebnis-Bus ansteuert. Dies wird mit der in 5 gezeigten Logik erreicht, die zeigt, wie Zwischen-Chip-Signale erzeugt werden.
  • 5 zeigt eine CAM-Anordnung mit Logikschaltungen zur Erzeugung von Zwischen-Chip-Signalen. Gemäß 5 enthält der CAM-Chip 120 eine CAM-Anordnung 110 und ein UND-Verknüpfungsglied 132 mit einem invertierenden Eingang, ein Übertragungs-Verknüpfungsglied 134, ein ODER-Verknüpfungsglied 136 mit einem invertierenden Eingang, und einen Puffer 138. Ein Ausbreitungs-Eingangs-Treffersignal hti von einem externen Signalanschluss HTI wird dem invertierenden Eingangsanschluss des UND-Verknüpfungsgliedes 132 und dem ODER-Verknüpfungsglied 136 zugeführt. Ein internes eigen-zeitgesteuertes Signal st wird dem UND-Verknüpfungsglied 132 und dem invertierenden Eingangsanschluss des ODER-Verknüpfungsgliedes 136 zugeführt. Ein Treffersignal ht von der CAM-Anordnung 110 wird dem UND-Verknüpfungsglied 132 und dem ODER-Verknüpfungsglied 136 zugeführt. Ein Übereinstimmungs-Adressenfreigabesignal sae wird von dem UND-Verknüpfungsglied 132 an das Übertragungs-Verknüpfungsglied 134 geliefert. Ein Adressensignal sa von der CAM-Anordnung 110 wird dem Übertragungs-Verknüpfungsglied 134 zugeführt, das die Weiterleitung des Adressensignals durch das Verknüpfungsglied verhindert, wenn das Freigabesignal sae einen niedrigen Pegel aufweist. Ein von dem Chip fortgeführtes Adressensignal SA wird von dem Übertragungs-Verknüpfungsglied 134 geliefert. Ein Ausbreitungs-Ausgangs-Treffersignal hto von dem ODER-Verknüpfungsglied 136 wird dem Puffer 138 zugeführt, der seinerseits das von dem Chip fortgeführte Treffersignal HT liefert.
  • Während des Zeitintervalls, zu dem st = 0 an allen Chips in dem System ist, werden keine Chips freigegeben, um den Bus 122 anzusteuern. Während des gleichen Intervalls sind alle Treffer-Signale HT in der Kaskade auf einem logischen 1-Pegel, wodurch aufgrund von st = 0 die SA-Ausgangstreiber über das Ausbreitungs-Eingangs-Treffersignal hti doppelt abgeschaltet werden. Diese teilweise Redundanz kann dadurch beseitigt werden, dass die Signale zeitlich nachgesteuert werden und die Anzahl der Eingänge an die Verknüpfungsglieder verringert wird. Es sei jedoch bemerkt, dass eine derartige Lösung zu einer weniger robusten Konstruktion führen würde.
  • Schwingungsformen aller wesentlicher Signale auf einem einzelnen Chip sind in den 6A bis 6D für die vier unterschiedlichen Fälle des Ausbreitungs-Eingangs-Treffersignals hti (Übergang von 0 auf 0, 1 auf 0, 0 auf 1 und 1 auf 1) gezeigt. Es sei bemerkt, dass das Ausbreitungs-Eingangs-Treffersignal hti die sich auf dem Chip ausbreitende Signalversion des externen Signals HTI ist.
  • Wie dies zu erkennen ist, ist eine korrekte Betriebsweise unabhängig von (a) Geschwindigkeitsunterschieden zwischen den Chips, und (b) einer Zwischen-Chip-Weglenkungs-Verzögerung, weil die De-Selektion auf dem Chip erfolgt und lediglich die Selektion oder Auswahl durch schaltungsaufwärts gelegenen externe Signale torgesteuert wird. Dieses Merkmal unterstützt weiterhin die Erweiterbarkeit, weil zusätzliche dem System hinzugefügte Chips unterschiedlichen Verarbeitungsbedingungen unterworfen sein können oder sogar auf einer vollständig anderen Herstellungstechnologie beruhen können.
  • Wenn die Schlimmstfall-Zeitsteuerung charakterisiert wird, so ist der langsamste Pfad zur Auswahl derjenige von dem Ausbreitungs-Eingangs-Treffersignaleingang HTI. Der Abwärts-Übergang auf dem Ausbreitungs-Eingangs-Treffersignal HTI kann sich weiter zu dem Ausbreitungs-Ausgangs-Treffersignal HT ausbreiten (unter der Annahme von ht = 0), so dass das System-Betriebsverhalten im schlimmsten Fall gleich dem eines einzelstehenden Chips plus dem (n – 2)-fachen der Ausbreitungs-Eingangs-Treffersignal-HTI-zu-HT-Verzögerung plus der Ausbreitungs-Eingangs-Treffersignal HTI-zu-SA-Verzögerung ist. Die Systembetriebsleistung kann durch die folgenden Ausdrücke charakterisiert werden: tCH – SAV = tCH – HTV + (n – 2) × tHTIL – HTL + tHTIL – SAV tCH – SAVSYS = tCH – HITV + (n – 2) × tHITIL – HITL + tHITIL – SAV tCH – SHTV = tCH – HTV + (n – 1) × tHTIL – tHTL tCH – HITVSYS = tCH – HITV + (n – 1) × tHITIL – HITL
  • Es sei bemerkt, dass ohne das eigen-zeitgesteuerte Signal st die Sperrung und Freigabe der SA-Ansteuerung von der HTI-Zeitsteuerung abhängen würde. Eine Bus-Konkurrenz würde nur schwierig zu verhindern sein, und die Abschalt-Zeitsteuerung würde von der Position eines Chips in der Kaskade abhängen.
  • Das Mehrfach-Übereinstimmungs-Signal MT muss, falls vorhanden, sich in einer ähnlichen Weise, mit einer Logik auf jedem, Chip ausbreiten, wobei ein Beispiel in 7 gezeigt ist, die Logik-Verknüpfungsglieder zur Realisierung der MT-Ausbreitung in einem kaskadierten CAM zeigt. Gemäß 7 werden das Treffersignal ht und das Mehrfach-Übereinstimmungs-Signal mt von der CAM-Anordnung 110 einem UND-Verknüpfungsglied 142 bzw. einem ODER-Verknüpfungsglied 144 zugeführt. Das Ausbreitungs-Eingangs-Treffersigal hti wird dem UND-Verknüpfungsglied 142 zugeführt, dessen Ausgangssignal dem ODER-Verknüpfungsglied 144 zugeführt wird. Das Mehrfach-Übereinstimmungs-Signal mt wird dem ODER-Verknüpfungsglied 144 zugeführt, dessen Ausgangssignal dem Puffer 146 zugeführt wird. Das von dem Chip abgehende Mehrfach-Übereinstimmungs-Signal MT wird von dem Puffer 146 geliefert.
  • VI. Generator für ein eigen-zeitgesteuertes Signal
  • Es gibt viele mögliche Schaltungen von eigen-zeitgesteuerten Signalgeneratoren. Es ist der vorgesehene Schutzumfang dieser Erfindung, dass irgendeine derartige Schaltung mit unter den Schutz fällt, vorausgesetzt, dass das resultierende eigen-zeitgesteuerte Signal so verwendet wird, wie dies im Vorstehenden beschrieben wurde, um eine konkurrenzfreie gemeinsame Nutzung des Ergebnis-Busses zu ermöglichen.
  • In der folgenden Beschreibung werden Beispiele von eigen-zeitgesteuerten Signalgeneratoren offenbart. Diese Beispiele sind zur Beschaffung eines allgemeinen Überblickes über die Realisierungsmöglichkeiten bestimmt, und ihre Beschreibungen beschränken in keiner Weise den Schutzumfang des vorstehenden Teils dieser Patentbeschreibung.
  • In einem ersten Beispiel eines eigen-zeitgesteuerten Signalgenerators nach 8 modelliert eine einfache Verzögerungsleitung die erwartete Verzögerung bei der Erzeugung eines Treffersignals. Gemäß 8 wird das Taktsignal ck dem Rücksetz-Eingangsanschluss R einer Flip-Flop-Schaltung 152 zugeführt. Weiterhin wird das Taktsignal ck dem Setz-Eingangsanschluss S der Flip-Flop-Schaltung 152 über eine Kette von vier Puffern 154 zugeführt. Die Abfallflanke des eigen-zeitgesteuerten Signals st wird durch die Anstiegsflanke des Taktsignals ck erzeugt, während die Anstiegsflanke des eigen-zeitgesteuerten Signals st durch eine verzögerte Version der Anstiegsflanke des Taktsignals ck erzeugt wird. Der S/R-(Setz/Rücksetz-)Signalspeicher, der in dieser und den nachfolgenden Figuren gezeigt ist, stellt eine logische Funktion und nicht notwendigerweise eine physikalische Realisierung dar. Die Zeitsteuerung beider Flanken des eigen-zeitgesteuerten Signals st auf der Grundlage der Anstiegsflanke des Taktsignals ck führt zu einer Tastverhältnis-Unabhängigkeit. Die Verzögerung der Verzögerungskette kann so eingestellt werden, dass sie gleich der Verzögerung zwischen den Anstiegsflanken des Taktsignals ck und des Treffer-Signals ht ist. Wenn alternativ das Tastverhältnis des Taktsignals ck bekannt und gut gesteuert ist, so kann die Zeitsteuerung der Anstiegsflanke des eigen-zeitgesteuerten Signals st durch die Abfallflanke des Taktsignals ck gesteuert werden. Es sei bemerkt, dass die Treffer-Zeitsteuerung vorhersagbar sein muss, um dieses Beispiel zu verwenden; dies ist in einer modularen oder skalierbaren Konstruktion nicht geeignet, bei der die Treffersignal-Verzögerung sich von einer gerätemäßigen Realisierung zur anderen ändern kann.
  • VII. Beispiele von CAM-Anordnungen
  • VII-1. Erstes Beispiel
  • 9 zeigt ein erstes Beispiel der CAM-Anordnung, die in dem CAM-Chip 220 ausgebildet ist. Bei der CAM-Anordnung ist ein Einzelchip-CAM mit w (= 4) Worten × b (= 4) Bits als eine Matrix mit w-Reihen und b-Spalten realisiert. Die CAM-Anordnung schließt w × b (= 16) Kernzellen 230 ein, wobei jede Zelle sich am Schnittpunkt einer Übereinstimmungsleitung 232 und eines Paares von Bitleitungen 234 befindet. Ein Paar von Bitleitungen 234 überträgt Differentialdaten, die ein einzelnes Bit darstellen, anstatt von 2 Datenbits. Jede Kernzelle 230 dient zur Speicherung eines einzelnen Datenbits und ist in der Lage, eine Einzelbit-Vergleichs-Operation (logische Exklusiv-NOR-(XNOR-)Operation) zusätzlich zu ihrer Bitspeicherfähigkeit auszuführen. In 9 sind die Zellen 230, die zu einem vorgegebenen Wort gehören, mit der Übereinstimmungsleitungs dieses Wortes in einer logischen NOR-Weise verbunden. Die Struktur der CAM-Anordnung ist bekannt. Siehe eine Veröffentlichung von K. J. Schultz et al. mit dem Titel „Architectures for Large-Capacity CAMs", INTEGRATION: the VLSI Journal, Bd. 18, Seiten 151–171, 1995, deren Inhalt durch diese Bezugnahme hier mit aufgenommen wird.
  • Die Bitleitungen für Differentialdaten sind mit Bezugs-Wortspeicher- und Bitleitungs-Treibern 236 verbunden, die Eingangsdaten D zum Laden der Inhalte der CAM-Anordnung und für das Such-Bezugswort empfangen. In den Kernzellen 230 der Anordnung gespeicherte Daten werden dadurch gesucht, dass ein Bezugswort an die Bitleitungen 234 angelegt wird.
  • Wenn Differentialdaten an ein Paar von Bitleitungen 234 in einer Suchoperation angelegt werden, so vergleicht die Kernzelle 230 ihr gespeichertes Datenbit mit diesen Differentialdaten (die auch als Bezugsdaten oder als einzelnes Bit des Komparanden bekannt sind). Wenn die gespeicherten Daten nicht gleich den Bezugsdaten sind, so zieht die Kernzelle 230 die Übereinstimmungsleitung 232 (die auf einen hohe Logikzustand vorgeladen ist) auf einen niedrigen Zustand herunter. Wenn die gespeicherten Daten gleich den Bezugsdaten sind, so hat die Zelle 230 keine Auswirkung auf die Übereinstimmungsleitung 232, mit der sie verbunden ist. Weil alle B-Kernzellen 230 in einem vorgegebenen Wort mit der Übereinstimmungsleitung 232 in der gleichen Weise verbunden sind, wird die Übereinstimmungsleitung 232 auf einen niedrigen Pegel gezogen, wenn irgendein Bit in seinem Wort ungleich zu dem entsprechenden Bezugsbit ist (oder eine fehlende Übereinstimmung aufweist). Die Übereinstimmungsleitung 232 bleibt nur dann auf einem hohen Logikzustand, wenn alle Bits in seinem Wort mit den entsprechenden Bezugsbits übereinstimmen.
  • Die CAM-Anordnung schließt einen Kodierer 238 ein, der mit den Übereinstimmungsleitungen 234 verbunden ist. Der Kodierer 238 erzeugt drei Ausgänge, die das Ergebnis der Suchoperation darstellen. Das „ht"-Signal wird auf einen hohen Logikzustand gebracht, wenn eines der w-Worte Daten speichert, die eine Übereinstimmung mit den Bezugsdaten haben. Die Binäradresse dieses übereinstimmenden Wortes wird auf den „sa"-Ausgang kodiert. In dem Fall, dass eine Mehrzahl von Worten eine Übereinstimmung mit den Bezugsdaten aufgewiesen hat, wird das Mehrfach-Übereinstimmungssignal „mt" auf einen hohen Logikzustand gebracht. In diesem Fall kann der Adressenausgang sa des Kodierers 238 dann (a) ein ungültiges Ergebnis, (b) eine Adresse, die die Position einer einzelnen der mehrfachen Übereinstimmungen darstellt, oder (c) eine Folge von Ausgängen erzeugen, die die Positionen jedes der übereinstimmenden Worte darstellen. Es sei bemerkt, dass einige Anwendungen das Mehrfach-Übereinstimmungs-Ergebnis nicht erfordern müssen, und dass alle Bezugnahmen auf die Mehrfach-Übereinstimmungs-Funktion aus dieser Beschreibung fortgelassen werden können, ohne dass sich ein Verlust an Brauchbarkeit ergibt.
  • VII-2. Zweites Beispiel
  • 10 zeigt ein zweites Beispiel der CAM-Anordnung, die in einem CAM-Chip 320 realisiert ist. In der CAM-Anordnung sind die Worte in zwei Hälften unterteilt, und die Ergebnisse der Übereinstimmung auf jedem Halbwort werden kombiniert. Jede der zwei Hälften ist mit einer Matrix von 4 Reihen × 4 Spalten versehen. Die Matrix schließt 16 Kernzellen 330 ein, die sich jeweils am Schnittpunkt einer Übereinstimmungsleitung 232 und eines Paares von Bitleitungen 334 befinden, die Differentialdaten führen, die ein einzelnes Bit darstellen. Die Bitleitungen 334 für die Differentialdaten sind mit Bezugswort-Speicher- und Bitleitungs-Treibern 336 verbunden, die Eingangsdaten D zum Laden der Inhalte der CAM-Matrix und für das Such-Bezugswort empfangen. In den Kernzellen 330 der Matrix gespeicherte Daten werden durch Anlegen eines Bezugswortes an die Bitleitungen 334 durchsucht.
  • Jede Kernzelle 330 dient zur Speicherung eines einzelnen Datenbits und ist in der Lage, eine Einzelbit-Vergleichs-(logische Exklusiv-NOR-(XNOR-))Operation auszuführen, zusätzlich zu ihrer Bitspeicherfähigkeit. In 10 sind die zu einem vorgegebenen Wort gehörenden Zellen 330 mit der Übereinstimmungsleitung dieses Wortes in einer logischen NAND-Weise verbunden. Die Kernzellen 330 jedes Wortes sind in der jeweiligen Übereinstimmungsleitung 332 in einer Kette angeordnet. Jede der Übereinstimmungsleitungen 332 einer Hälfte ist über einen Inverter 338 mit einem UND-Verknüpfungsglied 340 verbunden, dessen Ausgangsanschluss über eine Mehrfach-Übereinstimmungs-Leitung 342 mit einem Kodierer 344 verbunden ist.
  • In 10 erfolgt die Verbindung (in jedem Halbwort) in einer logischen NAND-Verknüpfung. Die Übereinstimmungsleitung 232 hat nur dann einen Abwärts-Übergang, wenn alle die Bits in dem Halbwort gleich den Bezugsdaten sind. Entsprechend ist der Pfad für die Übereinstimmungsleitung 332 nach Masse seriell (eine „Übereinstimmungsleitungs-Kette") statt parallel, und der Pfad wird im Fall einer Übereinstimmung und nicht bei einer fehlenden Übereinstimmung leitend gemacht (d. h. der Kreis wird geschlossen).
  • Der Vorteil dieser Technik ergibt sich aus der wesentlich geringeren Anzahl von Übereinstimmungsleitungen 332, die einem Übergang bei jeder Suchoperation unterworfen sind, eine pro Übereinstimmung in dem Beispiel nach 10, verglichen mit einer pro fehlender Übereinstimmung bei der bekannten Schaltung nach 9. Hierdurch wird der Leistungsverbrauch beträchtlich verringert, was die Realisierung größerer Speicherkapazitäten ermöglicht. Die Unterteilung des Wortes in Hälften verringert die Länge der NAND-Kette, wodurch die Geschwindigkeit vergrößert wird.
  • Das in 10 gezeigte Beispiel der CAM-Anordnung schließt weiterhin Einrichtungen zum Anordnen mehrfacher Worte in einer physikalischen Reihe durch Verwenden einer oberen Metallschicht oberhalb der Kernzelle für die Mehrfach-Übereinstimmungs-Leitungen 342 ein. Dies vergrößert weiter die Speicherkapazität, die realisiert werden kann.
  • Die CAM-Anordnung erzeugt drei Ausgänge ht, sa und mt, die das Ergebnis der Suchoperation darstellen, und diese Ausgänge können alle von dem Kodierer 344 erzeugt werden. Das „ht"-Signal wird auf einen hohen Logikzustand gebracht, wenn irgendeines der w-Worte Daten speichert, die eine Übereinstimmung mit den Bezugsdaten haben. Die Binäradresse dieses übereinstimmenden Wortes wird auf den „sa"-Ausgang kodiert. In dem Fall, dass eine Mehrzahl von Worten eine Übereinstimmung mit den Bezugsdaten aufgewiesen haben, wird das Mehrfach-Übereinstimmungs-Signal „mt" auf einen hohen Logikzustand gebracht. In diesem Fall kann der Adressenausgang (sa) des Kodierers (a) ein ungültiges Ergebnis, (b) eine Position einer einzelnen der mehrfachen Übereinstimmungen darstellende Adresse oder (c) eine Folge von Ausgängen erzeugen, die die Positionen jedes der übereinstimmenden Worte darstellen.
  • Es sei bemerkt, dass es viele andere mögliche CAM-Anordnungen gibt, und dass die hier beschriebene Erfindung dazu verwendet werden kann, eine Kaskadierbarkeit zu irgendeinem dieser Beispiele hinzuzufügen.
  • Die grundlegende Funktion einer einzelnen CAM-Anordnung ändert sich nicht gegenüber der der vorstehend beschriebenen Beispiele in dem Fall, dass eine Vielzahl von Anordnungen (auf einer Vielzahl von Chips) zusammenkaskadiert wird, um eine Kapazität zu verwirklichen, die größer als die ist, die von einer einzigen Matrix auf einem einzigen Chip verwirklicht werden kann.
  • VII-3. Drittes Beispiel
  • 11 zeigt ein drittes Beispiel der CAM-Anordnung. Dieses Beispiel erzeugt ein „Modell-Fehltreffer"-Signal, das eine veränderliche Treffer-Verzögerung verfolgt und eine Erweiterung der vorstehend beschriebenen (und in 9 gezeigten) ersten CAM-Anordnung ist. 12 zeigt den zugehörigen eigen-zeitgesteuerten Signalgenerator.
  • Die Abfallflanke des eigen-zeitgesteuerten Signals st wird durch die Anstiegsflanke des Taktsignals ck (direkt oder indirekt) eingeleitet, und die Anstiegsflanke des eigen-zeitgesteuerten Signals st wird durch das Signal modelmiss eingeleitet. Eine zusätzliche Reihe ist in der CAM-Matrix für den Zweck der Erzeugung von Zeitsteuerinformation vorgesehen. Die Kernzellen entlang dieser Reihe sind Modifikationen der Standard-Kernzelle 410 (identisch zu der Kernzelle 230 in 9). Eine immer einen Fehltreffer darstellende Kernzelle 420 ist an dem Ende der Modell-Übereinstimmungsleitung 422 angeordnet, die am weitesten von dem Kodierer 418 entfernt ist, während der Rest der Reihe mit immer eine Übereinstimmung angebenden Kernzellen 430 besetzt ist.
  • Das langsamstmögliche (Einzelwort-)Suchergebnis in einer Standard-NOR-Übereinstimmungsleitungs-Realisierung ist ein Einzelbit-Fehltreffer, und er wird durch diese Anordnung modelliert. Der Abwärtsübergang des modelmiss-Signal entspricht dem Fall, bei dem gültige Daten an dem Treffersignal ht garantiert werden. Es sei bemerkt, dass zur Erzeugung der in den vorhergehenden Zeitsteuerdiagrammen gezeigten Treffer-Signalpolaritäten das Treffersignal ebenfalls anfänglich in einem Vor-Konditionierungs-Übergang auf einen niedrigen Pegel gebracht werden sollte, der unmittelbar auf die Anstiegsflanke des Taktsignals ck folgt.
  • VII-4. Viertes Beispiel
  • Ein viertes Beispiel schließt Schaltungen zum Verfolgen der Treffer-Verzögerung in einer CAM-Anordnung ein, die entsprechend der zweiten CAM-Anordnung ausgebildet ist, wie vorstehend beschrieben (und in 10 gezeigt) wurde. Dieses Beispiel ist in 13 gezeigt. Zugehörige eigen-zeitgesteuerte Signalgeneratoren sind in den 14A und 14B gezeigt. Die Abfallflanke des eigen-zeitgesteuerten Signals st wird durch die Anstiegsflanke des Taktsignals ck (direkt oder indirekt) eingeleitet, und die Anstiegsflanke des eigen-zeitgesteuerten Signals st wird durch das Signal modelhit (Modelltreffer) eingeleitet. Eine zusätzliche Reihe ist in der CAM-Matrix für den Zweck der Erzeugung von Zeitsteuerinformationen vorgesehen. Die Kernzellen entlang dieser Reihe sind Modifikationen der Standard-Kernzelle 510 (identisch zu der Kernzelle 330 in 10). Eine immer eine Übereinstimmung anzeigende Kernzelle 512 wird in allen Modell-Übereinstimmungsleitungs-Ketten 514 verwendet. Das langsamstmögliche (Einzelwort-)Suchergebnis in dieser NAND-Übereinstimmungsleitungs-Realisierung ist eine Übereinstimmung, und dies wird durch diese Anordnung modelliert. Der Aufwärtsübergang auf dem modelhit-Signal entspricht dem Zeitpunkt, an dem gültigen Daten an dem Treffersignal ht garantiert werden. Es sei bemerkt, dass zur Erzeugung der in den vorhergehenden Zeitsteuerdiagrammen gezeigten Signalpolaritäten das Treffer-Signal ebenfalls anfänglich auf einen niedrigen Pegel in einen Vorkonditionier-Übergang angesteuert werden sollte, der unmittelbar auf die Anstiegsflanke des Taktsignals ck folgt. Weil modelhit die gleiche Polarität wie das eigen-zeitgesteuerte Signal st hat, kann die eigen-zeitgesteuerte Signalansteuerschaltung entfernt werden und modelhit kann als das eigen-zeitgesteuerte Signal st verwendet werden, wie dies in 14B gezeigt ist.
  • VII-5. Fünftes Beispiel
  • 15 ist ein Blockschaltbild einer Schaltung unter Verwendung einer Vielzahl von Wortscheiben unter Verwendung der gleichen Übereinstimmungs-Logik wie bei der zweiten CAM-Anordnung, wobei eine eigen-zeitgesteuerte Signalerzeugung in dieser Anordnung eine globale Modell-Datenleitung verwendet.
  • Ein fünftes Beispiel des eigen-zeitgesteuerten Signalgenerators kann zur Verfolgung der Treffer-Verzögerung in einer CAM-Anordnung mit einer Vielzahl der vertikalen Wortscheiben verwendet werden, die bei der zweiten CAM-Anordnung eingesetzt werden, wie dies in 15 gezeigt ist. Die Vielzahl von Wortscheiben ermöglicht die Realisierung größerer Kapazitäten. Weil alle Bits des Komparanden D über Busleitungen an alle Wortscheiben geführt werden müssen, wird ein globaler Datenbus 622 verwendet. Zeitsteuerinformation kann in den globalen Datenbus 622 in Form einer globalen Modell-Datenleitung 624 eingebettet werden. Die globale Modell-Datenleitung 624 wird derart angesteuert, dass ihr erster Übergang angenähert mit dem Abwärts-Übergang des Treffersignals ht zusammenfällt. Die globale Datenleitung 624 wird weiterhin dazu verwendet, Zeitsteuerinformation an die CAM-Anordnung zu liefern, wodurch diese Koinzidenz garantiert wird. Die Abfallflanke des eigen-zeitgesteuerten Signals st wird durch den ersten Übergang der Modell-Datenleitung eingeleitet, und die Anstiegsflanke des eigen-zeitgesteuerten Signals st wird durch das Signal modelhit eingeleitet. Eine zusätzliche Reihe ist in der Wortscheibe der CAM-Anordnung vorgesehen, die am weitesten von dem Codierer enrfernt ist, um Zeitsteuerinformationen zu erzeugen. Die Kernzellen entlang dieser Reihe sind Modifikationen der Standard-Kernzelle 610 (identisch zu der Kernzelle 330 nach 10). Eine immer eine Übereinstimmung darstellende Kernzelle 612 wird über die gesamten Modell-Übereinstimmungsleitungs-Ketten 614 hinweg verwendet. Das langsamstmöglichste (Einzelwort-)Suchergebnis bei dieser NAND-Übereinstimmungsleitungs-Realisierung ist eine Übereinstimmung, und sie wird durch diese Anordnung modelliert. Der Aufwärts-Übergang auf dem modelhit-Signal entspricht den Zeitpunkten, zu denen gültige Daten auf dem Treffersignal ht garantiert sind. Es sei bemerkt, dass zur Erzeugung der Treffer-Signalpolaritäten, die in den vorstehenden Zeitsteuerdiagrammen gezeigt sind, das Treffer-Signal ht ebenfalls anfänglich auf einen niedrigen Pegel in einem Vorkonditionier-Übergang nachfolgend zur Anstiegsflanke des Taktsignals ck angesteuert werden sollte, wobei dessen Zeitsteuerung durch die globale Modell-Datenleitung bestimmt ist. Wie bei den vorhergehenden zwei Beispielen soll die Verzögerung des modelhit-Signals durch den Kodierer der Verzögerung nachfolgen, die das Treffer-Signal ht durch den Kodierer erfährt. Wenn dieser Kodierer mit einer wahlfreien Zugriffs-Logik realisiert ist, kann dies durch eine Verzögerungskette erzielt werden. Wenn der Kodierer als Festwertspeicher (ROM) realisiert ist, kann die Verzögerungsanpassung mit einer Modell-ROM-Bitleitung erzielt werden.
  • Es sei bemerkt, dass die NOR-Übereinstimmungsleitungs-CAM-Anordnung ebenfalls in einer Wortscheiben-Weise realisiert werden kann, um höhere Kapazitäten zu erzielen. Das eigen-zeitgesteuerte Signal kann durch Kombinieren der Modell-Übereinstimmungsleitung von 11 mit der globalen Modell-Datenleitung von 15 erzeugt werden.
  • 16 zeigt die Logik-Verknüpfungsglieder zur Realisierung einer geeigneten vollständigen Chip-Zeitsteuerung des eigen-zeitgesteuerten Signals st in dem Fall, wenn ein CAM-Chip mehrfache CAM-Anordnungen umfasst.
  • Wenn der CAM auf jedem Chip aus mehrfachen Anordnungen besteht, so hat jede CAM-Anordnung 710 ihre eigenen „htj"- und „dsj"-Signale, und es ist erforderlich, die Dauer der Impulse des eigen-zeitgesteuerten Signals st zu vergrößern, um die Verzögerung bei der Kombination einzelner Signale in das Treffersignal ht zu berücksichtigen. 16 zeigt ein Beispiel dieser Impulsverbreiterung, bei der ein einzelnes stj-Signal einer logischen ODER-Verknüpfung in dem ODER-Verknüpfungsglied 712 mit einer verzögerten Version des gleichen stj-Signals unterworfen wird (die als „stm" bezeichnet wird), wobei diese Version eine Verzögerung durchlaufen hat, die ähnlich der des Anordnungs-Treffersignals htj zu ht ist.
  • Ein weiteres Beispiel, das in 17 gezeigt ist, bringt sowohl stm als auch stj zu dem Ausbreitungs-Ausgangs-Treffersignal-hto-Verknüpfungsglied (s. 5). Beide Beispiele nach den 16 und 17 verhindern eine Abwärts-Störung auf dem Ausbreitungs-Ausgangs-Treffersignal hto, wenn das Ausbreitungs-Eingangs-Treffersignal hti = 0 ist und das Treffersignal einen Aufwärts-Übergang nachfolgend zu stj ausführt. Diese gleiche Folge von Übergängen hat keine Folgen für das sae-Verknüpfungsglied nach 5, und es sind keine Änderungen an diesem ähnlich der 17 erforderlich.
  • Die CAM-Anordnung ist nicht auf die in den 9, 10, 11, 13 und 15 gezeigten Anordnungen beschränkt. Es gibt viele Abänderungen. Beispielsweise wird die Datenvergleichsfunktion einer CAM-Anordnung nicht durch die Kernzellen ausgeführt, sondern durch getrennte Vergleicher, die benachbart zu den Kernzellen angeordnet sind. Eine derartige CAM-Anordnung ist in der US-Patentanmeldung 08/748,928 mit dem Titel „Large-Capacity Content Addressable Memory" vom 14. November 1996 auf den Namen von K. J. Schultz et al. beschrieben. In dem System, bei dem eine Vielzahl von CAM-Chips entsprechend der Ausführungsform der vorliegenden Erfindung kaskadiert sind, werden keine Status-Register, Adressenergebnis-Weiterleitungseinrichtungen, Identifikationseinrichtungen für das letzte Bauteil oder eine Speicherung von gemeinsamen Einträgen verwendet.
  • Es ist verständlich, dass viele mögliche Änderungen in Einzelheiten der Ausführungsformen möglich sind, die logisch unter diese Beschreibung der Erfindung fallen, unter Einschluss von anderen Signalpolaritäten, äquivalenten Realisierungen auf der Bool'schen Gate-Ebene, geringfügige Zeitsteuerungsänderungen usw.

Claims (11)

  1. System mit einem gemeinsamen Bus (122) und einer Vielzahl von inhaltsadressierbaren Speicher-(CAM-)Chips (120, 220, 320), die kaskadiert und mit dem gemeinsamen Bus (122) verbunden sind, wobei jedes der CAM-Chips (120, 220, 320) Folgendes umfasst: Kodiereinrichtungen (238, 344, 418); und eine Matrix von Kernzellen (230, 330, 410) mit w Worten × b Bits, die der Kodiereinrichtung (238, 344, 418) zugeordnet ist, wobei jede Kernzelle (230, 330, 410) Datenspeichereinrichtungen umfasst, wobei jeder CAM-Chip (120, 220, 320) betreibbar ist, um als Antwort auf ein Taktsignal durchsucht zu werden, um über die Kodiereinrichtungen (238, 344, 418) dieses CAM-Chips (120, 220, 320) Treffer- und Übereinstimmungs-Adressensignale zu liefern, die sich aus einer Suchoperation auf diesem CAM-Chip (120, 220, 320) ergeben, dadurch gekennzeichnet, dass jeder der CAM-Chips (120, 220, 320) weiterhin Folgendes umfasst: Zeitsteuerschaltungen (152, 154) zur Erzeugung eines eigen-zeitgesteuerten Signal in Abhängigkeit von dem Taktsignal, wobei das eigen-zeitgesteuerte Signal für eine Suchoperation auf diesem CAM-Chip (120, 220, 320) verwendet wird, wobei die Treffer- und Übereinstimmungs-Adressensignale, die sich aus der Suchoperation auf diesem CAM-Chip (120, 220, 320) ergeben, über die Kodiereinrichtungen (238, 344, 418) dieses CAM-Chips (120, 220, 320) in Abhängigkeit von dem eigen-zeitgesteuerten Signal geliefert werden; und erste Logikeinrichtungen zur Lieferung eines Ausbreitungs-Ausgangs-Treffersignals an einen schaltungsabwärts gelegenen CAM-Chip (120, 220, 320) in Abhängigkeit von dem eigen-zeitgesteuerten Signal, dem aus der Suchoperation resultierenden Treffersignal und einem Ausbreitungs-Eingangs-Treffersignal, das von einem schaltungsaufwärts gelegenen CAM-Chip geliefert wird.
  2. System nach Anspruch 1, bei dem die erste Logikeinrichtung (136) ODER-Verknüpfungseinrichtungen (136) zur logischen Kombination des eigen-zeitgesteuerten Signals, des Treffersignals und des Ausbreitungs-Eingangs-Treffersignals zur Lieferung des Ausbreitungs-Ausgangs-Treffersignals umfasst.
  3. System nach Anspruch 1 oder 2, bei dem jeder CAM-Chip (120, 220, 320) weiterhin zweite Logikeinrichtungen (134, 132) zur Übertragung des Übereinstimmungs-Adressensignals an den gemeinsamen Bus (122) in Abhängigkeit von dem eigen-zeitgesteuerten Signal, dem aus der Suchoperation resultierenden Treffersignal und dem Ausbreitungs-Eingangs-Treffersignal, das von einem schaltungsaufwärts gelegenen CAM-Chip geliefert wird, umfasst.
  4. System nach Anspruch 3, bei dem die zweite Logikeinrichtung (134, 132) Folgendes umfasst: UND-Verknüpfungseinrichtungen (132) zur logischen Kombination des eigen-zeitgesteuerten Signals, des Treffersignals und des Ausbreitungs-Eingangs-Treffersignals zur Bereitstellung eines Freigabesignals; und Übertragungs-Verknüpfungseinrchtungen (134) zur Übertragung des Übereinstimmungs-Adressensignals an den gemeinsamen Bus in Abhängigkeit von dem Freigabesignal.
  5. System nach Anspruch 4, bei dem die UND-Verknüpfungseinrichtung (132) ein drei Eingänge aufweisendes UND-Verknüpfungsglied (132) mit Eingängen zum Empfang des eigen-zeitgesteuerten Signals, das von der Zeitsteuerschaltung (152, 154) dieses CAM-Chips (120, 220, 320) geliefert wird, des von diesem CAM-Chip (120, 220, 320) gelieferten Treffersignals und eines invertierten Signals des Ausbreitungs-Eingangs-Treffersignals, das von dem schaltungsaufwärts gelegenen CAM-Chip (120, 220, 320) geliefert wird, aufweist.
  6. System nach Anspruch 2, bei dem die ODER-Verknüpfungseinrichtung ein drei Eingänge aufweisendes ODER-Verknüpfungsglied (136) mit Eingängen zum Empfang eines invertierten Signals des eigengesteuerten Signals, das von der Zeitsteuerschaltung (152, 154) dieses CAM-Chips (120, 200, 320) geliefert wird, des von diesem CAM-Chip (120, 220, 320) gelieferten Treffersignals und des Ausbreitungs-Eingangs-Treffersignals umfasst, das von dem schaltungsaufwärts gelegenen CAM-Chip (120, 220, 320) geliefert wird.
  7. System nach einem der Ansprüche 1–6, bei dem jeder CAM-Chip (120, 220, 320) so betreibbar ist, dass er in Abhängigkeit von dem eigen-zeitgesteuerten Signal durchsucht wird, um über die Kodiereinrichtungen (238, 344, 418) dieses CAM-Chips (120, 220, 320) das Treffersignal, das Übereinstimmungs-Adressensignal und ein Mehrfach-Übereinstimmungssignal zu liefern, die sich aus einer Suchoperation auf diesem CAM-Chip (120, 220, 320) ergeben, wobei jeder der CAM-Chips (120, 220, 320) weiterhin Mehrfach-Übereinstimmungs-Ausbreitungseinrichtungen (142, 144) zur Lieferung eines Ausbreitungs-Ausgangs-Mehrfach-Übereinstimmungs-Signals an den schaltungsabwärts gelegenen CAM-Chip (120, 220, 320) umfasst, wobei die Mehrfach-Übereinstimmungs-Ausbreitungseinrichtungen (142, 144) eine logische Verknüpfungsschaltung (142, 144) zur logischen Kombination des von diesem CAM-Chip (120, 220, 320) gelieferten Treffersignals, des von diesem CAM-Chip (120, 220, 320) gelieferten Mehrfach-Übereinstimmungs-Signals, eines Ausbreitungs-Eingangs-Mehrfach-Übereinstimmungs-Signals, das von einem schaltungsaufwärts gelegenen CAM-Chip (120, 220, 320) geliefert wird, und eines Ausbreitungs-Eingangs-Treffersignals umfassen, das von dem schaltungsaufwärts gelegenen CAM-Chip (120, 220, 320) geliefert wird.
  8. System nach einem der Ansprüche 3–7, das weiterhin Einrichtungen (126) zur Lieferung von System-Treffer- und Übereinstimmungs-Adressenergebnissen der kaskadierten CAM-Chips (120, 220, 320) in Abhängigkeit von dem Ausbreitungs-Ausgangs-Treffersignal, das von dem am weitesten schaltungsabwärts gelegenen CAM-Chip (120, 220, 320) geliefert wird, und dem Übereinstimmungs-Adressensignal umfasst, das von dem gemeinsamen Bus (122) geliefert wird.
  9. System nach einem der Ansprüche 1–8, das weiterhin Einrichtungen (130) zur Bestimmung der Priorität von Chips in den kaskadierten CAM-Chips (120, 220, 320) in Abhängigkeit von den Ausbreitungs-Eingangs-Treffersignalen und den Ausbreitungs-Ausgangs-Treffersignalen umfasst, die von den kaskasdierten CAM-Chips (120, 220, 320) geliefert werden.
  10. System nach einem der Ansprüche 1–9, bei dem jeder CAM-Chip (120, 220, 320) eine CAM-Anordnung umfasst, wobei die Kodiereinrichtungen (238, 344, 418) und die Matrix von Kernzellen (230, 330, 410) dieses CAM-Chips (120, 220, 320) in der CAM-Anordnung enthalten sind, wobei die CAM-Anordnung die erste Logikeinrichtung (136) dieses CAM-Chips (120, 220, 320) mit den Treffer- und Übereinstimmungs-Adressensignalen, die aus der Suchoperation resultieren, in Abhängigkeit von dem eigen-zeitgesteuerten Signal versorgt, das von der Zeitsteuerschaltung (152, 154) dieses CAM-Chips (120, 220, 320) geliefert wird.
  11. System nach einem der Ansprüche 7–9, bei dem jeder CAM-Chip (120, 220, 320) eine CAM-Anordnung umfasst, wobei die Kodiereinrichtungen (238, 344, 418) und die Anordnung von Kernzellen (230, 330, 410) dieses CAM-Chips (120, 220, 320) in der CAM-Anordnung enthalten sind, wobei die CAM-Anordnung die Mehrfach-Übereinstimmungs-Ausbreitungseinrichtungen (142, 144) dieses CAM-Chips (120, 220, 320) mit den Treffer- und Mehrfach-Übereinstimmungssignalen, die aus der Suchoperation resultieren, in Abhängigkeit von dem eigen-zeitgesteuerten Signal versorgt, das von der Zeitsteuerschaltung (152, 154) dieses CAM-Chips (120, 220, 320) geliefert wird.
DE69827714T 1997-08-28 1998-06-18 Assoziativspeichersystem Expired - Lifetime DE69827714T2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US919227 1997-08-28
US08/919,227 US6230236B1 (en) 1997-08-28 1997-08-28 Content addressable memory system with cascaded memories and self timed signals

Publications (2)

Publication Number Publication Date
DE69827714D1 DE69827714D1 (de) 2004-12-30
DE69827714T2 true DE69827714T2 (de) 2005-04-28

Family

ID=25441738

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69827714T Expired - Lifetime DE69827714T2 (de) 1997-08-28 1998-06-18 Assoziativspeichersystem

Country Status (5)

Country Link
US (2) US6230236B1 (de)
EP (1) EP0899743B1 (de)
JP (1) JPH11120775A (de)
KR (1) KR100562806B1 (de)
DE (1) DE69827714T2 (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122707A (en) * 1997-09-04 2000-09-19 Nortel Networks Corporation Content addressable memory system with self-timed signals and cascaded memories for propagating hit signals
US6392910B1 (en) 1999-09-10 2002-05-21 Sibercore Technologies, Inc. Priority encoder with multiple match function for content addressable memories and methods for implementing the same
JP4298104B2 (ja) * 2000-01-18 2009-07-15 Okiセミコンダクタ株式会社 連想メモリ
US6539466B1 (en) * 2000-02-21 2003-03-25 Hewlett-Packard Company System and method for TLB buddy entry self-timing
US6957272B2 (en) * 2000-05-24 2005-10-18 Alcatel Internetworking (Pe), Inc. Stackable lookup engines
US6493793B1 (en) * 2000-06-16 2002-12-10 Netlogic Microsystems, Inc. Content addressable memory device having selective cascade logic and method for selectively combining match information in a CAM device
US6614675B1 (en) * 2000-10-10 2003-09-02 Ati International, Srl Pipelined content addressable memory with read only element encoding scheme
US6718432B1 (en) * 2001-03-22 2004-04-06 Netlogic Microsystems, Inc. Method and apparatus for transparent cascading of multiple content addressable memory devices
US6538911B1 (en) * 2001-08-24 2003-03-25 Sibercore Technologies, Inc. Content addressable memory with block select for power management
US6763426B1 (en) * 2001-12-27 2004-07-13 Cypress Semiconductor Corporation Cascadable content addressable memory (CAM) device and architecture
US7230841B1 (en) 2002-03-29 2007-06-12 Netlogic Microsystems, Inc. Content addressable memory having dynamic match resolution
US6661686B1 (en) 2002-03-29 2003-12-09 Netlogic Microsystems, Inc. Content addressable memory having dynamic match resolution
US7401181B1 (en) * 2002-05-29 2008-07-15 Core Networks Llc System and method for comparand reuse
US6842358B2 (en) * 2002-08-01 2005-01-11 Netlogic Microsystems, Inc. Content addressable memory with cascaded array
KR100455392B1 (ko) * 2002-08-10 2004-11-06 삼성전자주식회사 동작속도를 향상시키고 칩 면적을 감소시킬 수 있는워드라인 드라이버 회로를 구비하는 캐쉬 메모리장치 및이의 워드라인 구동방법
US6775166B2 (en) * 2002-08-30 2004-08-10 Mosaid Technologies, Inc. Content addressable memory architecture
US6924994B1 (en) 2003-03-10 2005-08-02 Integrated Device Technology, Inc. Content addressable memory (CAM) devices having scalable multiple match detection circuits therein
US7043600B2 (en) * 2003-05-12 2006-05-09 Integrated Silison Solution, Inc. Cascading content addressable memory devices with programmable input/output connections
US7257670B2 (en) * 2003-06-18 2007-08-14 Micron Technology, Inc. Multipurpose CAM circuit
US6944039B1 (en) 2003-12-12 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with mode-selectable match detect timing
US7337267B1 (en) * 2004-02-10 2008-02-26 Netlogic Microsystems, Inc Hierarchical, programmable-priority content addressable memory system
US7539800B2 (en) * 2004-07-30 2009-05-26 International Business Machines Corporation System, method and storage medium for providing segment level sparing
US7296129B2 (en) * 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7389375B2 (en) 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7395476B2 (en) 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7441060B2 (en) 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US7305574B2 (en) 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7331010B2 (en) * 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7356737B2 (en) 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7277988B2 (en) 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7486531B2 (en) * 2004-11-09 2009-02-03 Integrated Device Technology, Inc. Low power content addressable memory array (CAM) and method of operating same
US7196922B2 (en) 2005-07-25 2007-03-27 Stmicroelectronics, Inc. Programmable priority encoder
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
JP4945125B2 (ja) * 2005-12-21 2012-06-06 ラピスセミコンダクタ株式会社 メモリ制御装置
US7636813B2 (en) 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7640386B2 (en) 2006-05-24 2009-12-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US7594055B2 (en) 2006-05-24 2009-09-22 International Business Machines Corporation Systems and methods for providing distributed technology independent memory controllers
US7584336B2 (en) 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7493439B2 (en) 2006-08-01 2009-02-17 International Business Machines Corporation Systems and methods for providing performance monitoring in a memory system
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7581073B2 (en) 2006-08-09 2009-08-25 International Business Machines Corporation Systems and methods for providing distributed autonomous power management in a memory system
US7587559B2 (en) 2006-08-10 2009-09-08 International Business Machines Corporation Systems and methods for memory module power management
US7539842B2 (en) 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7490217B2 (en) 2006-08-15 2009-02-10 International Business Machines Corporation Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7477522B2 (en) * 2006-10-23 2009-01-13 International Business Machines Corporation High density high reliability memory module with a fault tolerant address and command bus
US7822916B1 (en) 2006-10-31 2010-10-26 Netlogic Microsystems, Inc. Integrated circuit search engine devices having priority sequencer circuits therein that sequentially encode multiple match signals
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7603526B2 (en) 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US7606988B2 (en) 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
JP2015225675A (ja) * 2014-05-26 2015-12-14 ルネサスエレクトロニクス株式会社 連想メモリおよび半導体装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4670858A (en) * 1983-06-07 1987-06-02 Tektronix, Inc. High storage capacity associative memory
JPH071636B2 (ja) * 1986-03-20 1995-01-11 松下電器産業株式会社 変換バツフア装置
JPH0748309B2 (ja) * 1987-12-16 1995-05-24 日本電気株式会社 記号列照合メモリおよびそのカスケード接続方式
US5018111A (en) * 1988-12-27 1991-05-21 Intel Corporation Timing circuit for memory employing reset function
JPH02308499A (en) * 1989-05-23 1990-12-21 Toshiba Corp Content-addressable memory
US5031141A (en) * 1990-04-06 1991-07-09 Intel Corporation Apparatus for generating self-timing for on-chip cache
US5440715A (en) * 1990-06-27 1995-08-08 Advanced Micro Devices, Inc. Method and apparatus for expanding the width of a content addressable memory using a continuation bit
US5289403A (en) * 1991-07-08 1994-02-22 Hewlett-Packard Company Self-timed content addressable memory access mechanism with built-in margin test feature
US5555397A (en) * 1992-01-10 1996-09-10 Kawasaki Steel Corporation Priority encoder applicable to large capacity content addressable memory
US5568416A (en) * 1994-03-24 1996-10-22 Kawasaki Steel Corporation Associative memory
US5517441A (en) * 1994-12-14 1996-05-14 International Business Machines Corporation Content addressable memory circuitry and method of operation
JP3703518B2 (ja) * 1995-03-30 2005-10-05 川崎マイクロエレクトロニクス株式会社 連想メモリシステム
US5828593A (en) * 1996-07-11 1998-10-27 Northern Telecom Limited Large-capacity content addressable memory
US5859791A (en) * 1997-01-09 1999-01-12 Northern Telecom Limited Content addressable memory
US6022707A (en) * 1997-09-22 2000-02-08 Incyte Pharmaceuticals, Inc. Ras-like protein

Also Published As

Publication number Publication date
US6230236B1 (en) 2001-05-08
JPH11120775A (ja) 1999-04-30
KR100562806B1 (ko) 2006-05-25
EP0899743A2 (de) 1999-03-03
EP0899743B1 (de) 2004-11-24
EP0899743A3 (de) 1999-08-04
US6301636B1 (en) 2001-10-09
DE69827714D1 (de) 2004-12-30
KR19990023987A (ko) 1999-03-25

Similar Documents

Publication Publication Date Title
US6763426B1 (en) Cascadable content addressable memory (CAM) device and architecture
US5754478A (en) Fast, low power, write scheme for memory circuits using pulsed off isolation device
US5986942A (en) Semiconductor memory device
DE4110173C2 (de) Adressenansteuereinrichtung für einen SRAM und Verfahren zum Betreiben derselben
US6066961A (en) Individually accessible macrocell
EP0341897B1 (de) Inhaltadressierte Speicherzellenanordnung
EP0263924B1 (de) Struktur zum Wiederordnen von Bits auf dem Chip
US4758985A (en) Microprocessor oriented configurable logic element
US5787458A (en) Content addressable memory of a simple construction capable of retrieving a variable word length data
US3699533A (en) Memory system including buffer memories
US5751987A (en) Distributed processing memory chip with embedded logic having both data memory and broadcast memory
US6118729A (en) Synchronous semiconductor memory device
EP0228917B1 (de) Digitaler Lese-/Schreibspeicher
CN102750975B (zh) 菊花链级联设备
US6526474B1 (en) Content addressable memory (CAM) with accesses to multiple CAM arrays used to generate result for various matching sizes
US5473574A (en) Multi-port static random access memory with fast write-thru scheme
US8711638B2 (en) Using storage cells to perform computation
US6175514B1 (en) Content addressable memory device
US6191970B1 (en) Selective match line discharging in a partitioned content addressable memory array
JP4726098B2 (ja) 連想メモリ符号化出力
KR930004172B1 (ko) 연상메모리
JP2576827B2 (ja) デュアル・ポート・コンピュータ・メモリ装置、アクセス方法、コンピュータ・メモリ装置、及びメモリ構造
US6864122B1 (en) Multi-chip module having content addressable memory
EP0541685B1 (de) Assoziativer speicher
US4992680A (en) Programmable logic device having a plurality of programmable logic arrays arranged in a mosaic layout together with a plurality of interminglingly arranged interfacing blocks

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: INDEPENDENCE MANZANAR LLC, LAS VEGAS, NEV., US