DE68928213T2 - Inhaltadressierte Speicherzellenanordnung - Google Patents

Inhaltadressierte Speicherzellenanordnung

Info

Publication number
DE68928213T2
DE68928213T2 DE68928213T DE68928213T DE68928213T2 DE 68928213 T2 DE68928213 T2 DE 68928213T2 DE 68928213 T DE68928213 T DE 68928213T DE 68928213 T DE68928213 T DE 68928213T DE 68928213 T2 DE68928213 T2 DE 68928213T2
Authority
DE
Germany
Prior art keywords
match
bits
bit
data
array
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 - Fee Related
Application number
DE68928213T
Other languages
English (en)
Other versions
DE68928213D1 (de
Inventor
Patrick T Chuang
Moon-Yee Wang
Robert L Yau
Hiroshi Yoshida
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Application granted granted Critical
Publication of DE68928213D1 publication Critical patent/DE68928213D1/de
Publication of DE68928213T2 publication Critical patent/DE68928213T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Semiconductor Memories (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • Es wird auf die mitanhängigen U.S.-Patentanmeldungen 193312 und 193308 sowie die Europäischen Patentanmeldungen 89304466.9 und 89304469.3 (unsere Zeichen HRW/AMD664/JMB und HRW/AMD662/JMB) hingewiesen.
  • Die Anmeldung betrifft Systeme, bei denen inhaltsadressierbare Speicher-(CAM)- Anordnungen verwendet werden, wobei ein Speicher auf der Basis des Inhalts der Speicherdaten anstatt der Datenposition in dem Speicher durchsucht wird.
  • "Proceedings First International Conference on Computer Technology, Systems and Applications. Comp Euro 87.15 May 1987, Hamburg, Germany, S.27-30" offenbart einen bekannten inhaltsadressierbaren Speicher (CAM) mit einer in Reihen und Spalten angeordneten Speicherzellenanordnung. Die Anordnung weist mehrere Wortleitungen (ROW SELECT) und Übereinstimmungsleitungen (ROW MATCH), die sich in einer ersten Richtung erstrecken, und Bitleitungspaare ([)ATA, DATA) auf, die sich in einer zur ersten Richtung senkrechten zweiten Richtung erstrecken.
  • "Proceedings First International Conference on Computer Technology, Systems and Applications. Comp Euro 87. 15 May 1987, Hamburg, Germany, S. 19-26" offenbart einen anderen CAM, der ein Suchwortregister, ein Maskenwortregister, eine 1-Bit- Speicherzelle mit Vergleichslogik und ein Übereinstimmungsregister sowie eine Prioritätslogik und eine Adressenerzeugungseinheit aufweist.
  • Die herkömmlichen Computer oder die vom von Neumann-Typ und insbesondere diejenigen, bei denen die Prinzipien des Adressierens von rechnerischen Variablen durch die Indices ihrer Position angewandt werden, wurden bei der Bewältigung größerer Probleme als nicht zufriedenstellend angesehen. Viele Versuche sind unternommen worden, die herkömmlichen Direktzugriffsspeicher durch Strukren zu ersetzen, aus denen die Operanden mit ihren symbolischen Namen oder ihrem Dateninhalt abgerufen werden konnten, und möglichst viele Operanden gleichzeitig. Aus einem solchen Merkmal können die höheren algorithmischen und problemorientierten Sprachen einen bedeutenden Vorteil ziehen. Es bestehen wenigstens zwei Gründe dafür, weshalb die Entwicklung in dieser Richtung nicht besonders schnell vonstatten ging. Einer ist der, daß die Kosten für inhaltsadressierbare Speicher im Vergleich zu Direktzugriffsspeichem viel höher sind. Ein weiterer Grund ist der, daß es für das Problem der symbolischen Kodierung der Variablen bereits wirksame Softwarelösungen gibt, die keine speziellen Speicher erfordern. Dies bringt jedoch nicht das andere Merkmal mit sich, das bei der Beschäftigung mit größeren Problemen höchst wünschenswert ware, nämlich das gleichzeitige Wiedergewinnen einer großen Anzahl an Variablen aus dem Speicher.
  • Während Assoziationen ursprtlnglich nur für die Beschreibung von wechselseitigen Beziehungen oder Querverweisen zwischen Informationsstücken gedacht waren, hat sich später herausgestellt, daß das Suchen von Daten anhand eines Teils ihres Inhalts wirksam bei der Manipulation von arithmetischen Algorithmen verwendet werden kann. Eine derartige Inhaltsadressierung kann in einer in einem hohen Maße parallelisierten Weise erfolgen, d.h. gleichzeitig über eine große Anzahl an Datenelementen, üblicherweise auf einem relativ niedrigen Niveau, wobei auf Umformungen Bezug genommen wird, die bei binären Darstellungen auftreten. Das Problem der parallelen Rechnung hat auch einen anderen Aspekt, wobei die Inhaltsadressierbarkeit zur parallelen Steuerung von algorithmischen Funktionen auf höherem Niveau verwendet wird.
  • Im Zusammenhang mit dem Hauptgegenstand der vorliegenden Erfindung können die folgenden Definitionen verwendet werden.
  • Inhaltsadressierbarer Speicher: Speichervorrichtung, die Daten in einer Anzahl von Zellen speichert. Auf der Grundlage ihres Inhalts kann auf die Zellen zugegriffen oder sie können geladen werden.
  • Inhaltsadressierbarer Prozessor: inhaltsadressierbarer Speicher, in dem kompliziertere Datenumwandlungen an dem Inhalt einer entsprechend dem Inhalt ausgewählten Anzahl an Zellen vorgenommen werden können, oder ein Computer oder ein Computersystem, das einen derartigen Speicher als wesentliches Bauteil zur Speicherung bzw. zur Verarbeitung verwendet.
  • Zugriff auf Daten auf der Grundlage ihres Inhalts beinhaltet immer einen Vergleich eines externen Sucharguments mit einem Teil der Information oder der gesaniten, in allen Zellen gespeicherten Information. Ob dies durch Software, mechanisches Abtasten oder parallele elektronische Schaltungen erfolgt, ist im Prinzip gleich; ein "echter" inhaltsadressierbarer Speicher jedoch führt all diese Vergleiche parallel aus. Ferner ist zu betonen, daß ein Vergleich durch Gleichheitsübereinstimmung zwischen dem Suchargument und der gespeicherten Angabe nicht die einzige eingesetzte Art ist. Wenn die gespeicherten Daten numerische Werte haben, kann die Aufgabe der inhaltsadressierbaren Suche darin bestehen, alle Zellen ausfindig zu machen, deren Inhalt gewisse Größenrelationen in bezug auf die Suchargumente erfüllt; beispielsweise größer oder kleiner als die gegebene Grenze oder zwischen zwei bestimmten Grenzen zu sein. Manchmal wird die inhaltsadressierbare Suche ohne Bezug auf ein externes Suchargument durchgeführt, beispielsweise beim Ausfindigmachen des Maximums oder Minimums in einem Satz gespeicherter Zahlen.
  • Inhaltsadressierbare Hardware-Speicher sind als spezielle Teile in Rechnersystemen bei bestimmten organisatorischen Lösungen verwendet worden, wodurch die CAMs effektiv schnelle Puffer-, Kontroll- und Buchhaltungsoperationen durchführen können, die bei der Bewegung und Neuanordnung von Daten erforderlich sind. Auf diese Weise können die CAM-Vorrichtungen wirksam zu der Geschwindigkeit der üblichen Operationen beitragen, indem sie bewirken, daß die Operanden den Verarbeitungsschaltungen unmittelbarer zur Verfügung stehen.
  • Bei einer maskierten Suche in einer CAM-Anordnung wird nur eine Teilmenge der Bits eines Suchargumentwortes mit jeweiligen Bits aller Speicherwörter verglichen. Maskieren bedeutet in dem CAM gewöhnlich Ausmaskieren oder Sperren gewisser Bits. Diejenigen gespeicherten Wörter, die in den spezifizierten (unmaskierten) Bitpositionen mit dem Suchargument übereinstimmen, werden dann ausgelesen.
  • ZUSAMMENFASSUNG DER VORLIEGENDEN ERFINDUNG
  • Das Anwenden von Verfahren nach dem Stand der Technik, das Schaffen eines CAM- Anordnungsbauteils mit einer Konfiguration von einer Breite von N-Bit-Wörtern und einer Tiefe von M Wörtern (beispielsweise 48-Bit-Wörter mit 256 Wörtern in der Anordnung) und der Betrieb in einem Nichtmultiplexmodus würde eine hohe Anzahl an Pins auf dem Bauteil erforderlich machen, um die notwendigen Daten, Steuerungs-, Flaggen- und Energieversorgungssignale zu liefern. Beispielsweise wäre die folgende Pinzahl für eine typische nichtgemultiplexte 256 mal 48 CAM-Anordnung bei Anwendung von Verfahren nach dem Stand der Technik notwendig.
  • Adresse Ein - 8 Pins
  • Kodierte Adresse Aus - 8 Pins
  • CAM-Daten I/O -48 Pins
  • Übereinstimmungsdaten Ein (unmaskiert) -48 Pins
  • Übereinstimmungsdaten Ein (Maskenbits) -48 Pins
  • Steuersignale , , - 3 Pins
  • Statusflaggen (Überein-, stimmung, Voll, Mehifachanpassung) - 3 Pins
  • Energieversorgung, ein - 16 Pins Vcc- und Vss-Paar für jeweils 8 Ausgänge, ein Paar für Schaltung, und ein Paar für Eingang-Insgesamt 182 Pins
  • Ein inhaltsadressierbares Speichersystem gemäß der vorliegenden Erfindung ist in Patentanspruch 1 definiert.
  • Nachfolgend wird ein Verfahren zum Zeit-Multiplexen der 48 Datenbits auf einen 16- Bit-Bus unter Verwendung von drei Speicherzyklen beschrieben, womit eine wesentliche Verringerung bei der Anzahl der erforderlichen Bauteilpins realisiert werden kann. Um dies zu erreichen, verwendet die Anordnung drei interne 48-Bit-Register zum Halten der CAM-Daten, des unmaskierten Übereinstimmungsworts und der Maskenbits. Diese drei 48-Bit-Register können in drei Zyklen von dem 16-Bit-I/O-Bus geladen werden. Außer einem Datenschreibzyklus und einem Datenlesezyklus werden bei dieser Anordnung ein Befehlsschreibzyklus und ein Statuslesezyklus angewandt, um die Adresse, die Befehle und die Flaggeninformation zu dem 16-Bit-Bus hin und zurück auch zu multiplexen. Letzteres erfolgt auf Kosten eines Zusatzsteuersignals (D/C-Daten/Befehl). Während eines Befehlsschreibzyklus nimmt der Schreibbefehl das Format eines Befehlswortes an, wobei in einigen der Wortbits Betriebscodes (OP) kodiert sind und in anderen Bits Adresseninformation. Während einer Statusleseoperation wird die Information bezüglich des Flaggenstatus in einem Teil der Statuswortbits kodiert und die Adreßinformation in anderen der Statuswortbits.
  • Bei Anwendung der Lehren der beschriebenen Anordnung beim Multiplexen von Information wird die erforderliche Pinzahl wie folgt verringert:
  • I/O - 16 Pins
  • Steuersignale - 4 Pins
  • Flaggen (Übereinstimmung; Voll) - 2 Pins
  • Energieversorgung - 6 Pins (weniger Vcc- und Vss-Paare sind für den Ausgang erforderlich) Insgesamt 28 Pins
  • Gemäß einem weiteren wichtigen Aspekt der beschriebenen Anordnung wird eine CAM-Anordnung geschaffen, in der irgendeines oder alle Bits in einem Wort maskierbar sein können und irgendeines oder alle der Wörter in der Anordnung sowohl maskierbar als auch rücksetzbar sein können.
  • Ein weiteres Merkmal dieser Anordnung ist der spezielle verwendete CAM-Prozessor- Aufbau. Dieser Aufbau weist die folgende Struktur auf:
  • 1. CAM-Zellenanordnung.
  • Eine Anordnung aus CAM-Zellen ist in der gewünschten Organisation angeordnet. Wortleitungen und Übereinstimmungsleitungen verlaufen in gleicher Richtung und Bitleitungen verlaufen senkrecht zu den Wortleitungen.
  • 2. Zellendekodierer.
  • Einer von M Dekodierem wählt nur das gewünschte Wort aus.
  • 3. Bitleitungsvoraufladeschaltung.
  • Diese lädt die Bitleitungen vorab auf die Optimalpegel zum nichtlöschenden Hochgeschwindigkeitszellenlesen auf
  • 4. Bitleitungsbeschreiberschaltung.
  • Ein Beschreiber ist für jedes zugehörige Bit vorgesehen, (d.h. einer für jedes Bitleitungspaar). Er besteht aus einem Maskenregister, einem Vergleichsregister, einem Leseverstärker und einer programmierbaren Bitleitungsschreibschaltung.
  • Daten können über die Bitleitung mit der ausgewählten Wortleitung in die CAM-Zelle geschrieben werden. Das Vergleichsregister programmiert die programmierbare Bitleitungsschreibschaltung mit den auf die Bitleitungen und in die Zelle zu schreibenden Daten. Die Daten können durch die Bitleitungen mit der ausgewählten Wortleitung aus der CAM-Zelle gelesen werden. Das Zelisignal auf den Bitleitungen wird von dem Leseverstärker verstärkt.
  • Eine nichtlöschende ("non-destructive") parallele Suche (Übereinstimmung) kann an der gesamten Anordnung durchgeführt werden, wobei alle Wörter inaktiviert sind. Die Daten in den Vergleichsregistem und den Maskenregistem werden zur Programmierung der programmierbaren Bitleitungsschreibschaltungen verwendet. Während der Übereinstimmungsoperation werden die CAM-Zelldaten gleichzeitig mit den auf den zugehörigen Bitleitungspaaren anstehenden Daten verglichen.
  • Die Daten in dem Maskenregister können zum programmierbaren Bitmaskieren verwendet werden. Eine logische "1" in dem Maskenregister überschreibt die Daten in dem Vergleichsregister, während eine logische "0" in dem Maskenregister zuläßt, daß die entsprechenden Daten auf der Bitleitung zum Schreiben in eine Zelle erscheinen. Irgendeines oder alle der Bits können auf diese Weise maskiert werden.
  • 5. Wortmaskier- und -rücksetzschaltung.
  • Für jedes zugehörige Wort ist eine vorgesehen, und sie besteht aus einem Sprungbit und einem Leerbit. Irgendeines oder alle der Wörter können von dem Sprung- oder dem Leerbit ausmaskiert werden. Die gesamte Anordnung kann durch Rücksetzen aller Leerbits (die ganz aufleer eingestellt sind) rückgesetzt werden. Die Daten können mit dem Datenbus in diese Sprung- und Leerbits hinein und heraus übertragen werden.
  • 6. Übereinstimmungsdetektor.
  • Dieser erkennt einen "keine Übereinstimmung"-, "Einfachübereinstimmung"- oder einen "Mehrfachübereinstimmung"-Zustand und kann einen "Voll"- oder "Leer"- Zustand eines Chips erkennen. Auf dem 16-Bit-Bus sind "Voll"-, "Übereinstimmung"- und "Mehrfachübereinstimmung"-Flaggen verfügbar.
  • 7. Prioritätskodierer.
  • Bei einem Einfach- oder Mehrfachübereinstimmungszustand wird die Adresse mit der Höchstprioritätsübereinstimmungsposition kodiert. Bei einem "keine Übereinstimmung"-Zustand wird die Adresse mit der Höchstprioritätsleerposition kodiert.
  • 8. Steuerlogik.
  • Von dem 16-Bit-Bus her empfangene Signale erzeugen interne Zeitsteuerungssignale zur Durchführung verschiedener Operationen.
  • 9. Gemultiplexter 16-Bit-Bus zum Bereitstellen des folgenden:
  • Adreßbus für den Zeilendekodierer.
  • Daten-I/O für die CAM-Zelle.
  • Daten-I/O für das Übereinstimmungswort (Vergleichsregister und Maskenregister).
  • Daten-I/O für Sprung- und Leerbits.
  • Befehle für die Steuerlogik.
  • Ausgangsflaggen für "Voll", "Übereinstimmung" und "Mehrfachübereinstimmung".
  • Kodierte Adresse für entweder "Übereinsümmung" oder "Leer"-Positionen von dem Prioritätskodierer.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein die Elemente der vorliegenden Erfindung darstellendes Blockschaltbild;
  • Fig. 2 ist ein Blockschaltbild, das zusätzliche Einzelheiten der Konfiguration eines CAM-Anordnungsprozessors gemäß der vorliegenden Erfindung zeigt; und
  • Fig. 3 ist ein Diagramm, das einen Teil der bei der Erfindung zur Wortmaskierung und zur Wort- oder Anordnungsrücksetzung verwendeten Logik.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Wie aus Fig. 1 hervorgeht, ist die CAM-Zellanordnung 11 der vorliegenden Erfindung in eine Breite von N-Bit-Wörtern und eine Tiefe von M Wörtern organisiert. Ein typisches, doch nicht einschränkendes, Beispiel weist eine Anordnung von 48-Bit-Wörtern auf, wobei sich 256 solcher Wörter in der Anordnung befinden. Zwei Zusatzbits (Sprungbit und Leerbit) sind für Wortmaskier- und -rücksetzaufgaben bei jedem Wort vorgesehen. Mit jedem Bit in der Anordnung über die Leitungen BL und ist eine Bitleitungsbeschreiberschaltung 1 verbunden (im einzelnen in Fig. 2 dargestellt), die eine programmierbare Bitleitungsschreibschaltung, ein Vergleichsregister, ein Maskenregister und einen Leseverstärker aufweist. Die Beschreiberschaltung 1 tauscht mit einem 16-Bit-Bus 10 Daten aus. Ein Zeilendekodierer 2 ist über einen Bus mit mehreren Wortleitungen WL zur Auswahl verschiedener Wörter in der Anordnung mit der Anordnung 11 geschaltet. Eine Bit-Leitungsvoraufladeschaltung 3 ist über mehrere Bitleitungen BL und mit der Anordnung 11 geschaltet, wobei ein Paar derartiger Bitleitungen für jede Bitspalte in der Anordnung vorgesehen ist. Über die Übereinstimmungsleitung stehen mit dem Ausgang der Anordnung 11 eine Wortmaskier- und -rücksetzschaltung 4, ein Übereinstimmungsdetektor 5 und ein Prioritätskodierer 6 in Verbindung. Ein Steuerlogiknetzwerk 7 liefert auf von dem Bus 10 empfangene Befehle hin Eingangssignale an die Schaltungen 4, 5 und 6. Die Schaltungen 4, 5 und 6 sind direkt mit dem Bus 10 verbunden, wobei die Übertragung zwischen dem Bus 10 und der Schaltung 4 bidirektional ist. Die Einzelheiten dieser Schaltungen sind in Fig. 2 ausfhhrlicher dargestellt.
  • Das wichtigste Merkmal der Gesamtstruktur des CAM-Systems gemäß der vorliegenden Erfindung ist in Fig. 2 dargestellt. Die Elemente der Bit-Leitungsbeschreiberschaltung 1 von Fig. 1 sind in der gestrichelten Umrahlnung 1 dargestellt und weisen ein CAM-Register 17, ein Maskenregister 18, ein Vergleichsregister 19, einen Leseverstärker 14 und eine in einem Beschreiberelement 36 vorgesehene programmierbare Bitleitungsschreibschaltung auf.
  • Die Schaltung von Fig. 2 zeigt ferner einen Adreßdekodierer 30 zum Dekodieren der von dem Bus 10 gelieferten acht Adreßbits, um das eine auszuwählende von den 256 Wörtern in der Anordnung 11 zu identifizieren, wobei der Adreßdekodierer in seiner Funktion dem Reihendekodierer 2 von Fig. 1 entspricht. Ebenfalls dargestellt und mit dem Ausgang der Anordnung 11 und dem Dekodierer 30 verbunden ist eine Sprungbitanordnung 22 mit einer Sprungschreibschaltung 20 und eine Leerbitanordnung 24 mit einer Leerschreibschaltung 23. Ausgangssignale von den Elementen 22 und 24 werden den Sprung-/Leerbitelementen 41 zugeführt.
  • Ferner zeigt Fig. 2 einen Volldetektor 31, der von einem Vollsteuerelement 37 gesteuert ist und einem Statusregister 40 und einem Vollregister 32 ein Ausgangssignal zuführt. Das Statusregister 40 steht während einer Statusleseoperation nach Art einer 16-Bit-Kommunikation mit dem Bus 10 in Verbindung.
  • Ein von einem Übereinstimmungssteuerelement 38 gesteuerter Übereinstimmungsdetektor 28 liefert ein Einfach-Übereinstimmungssignal an ein Übereinstimmungsregister 29. Signale von dem Voliregister 32 und dem Übereinstimmungsregister 29 werden dem Vollflaggenelement 26 bzw. dem Übereinstimmungsflaggenelement 27 zugeführt. Ferner liefert der Übereinstimmungsdetektor 28 sowohl das Einfach-Übereinstimmungssignal als auch ein Mehrfach-Übereinstimmungssignal an das Statusregister 40.
  • Fig. 2 zeigt ferner einen Prioritätsmultiplexer 25, der die Information von den Elementen 28 und 31 zu einem Prioritätskodierer unter der Steuerung eines Multiplexer- Steuerelementes 33 multiplext. Ein Segmentzähler 34 wird von einem Zählersteuerelement 35 gesteuert, das mit dem Bus 10 und dem Ausgang eines OP-Code-Generators 39 geschaltet ist. Der Zähler 34 liefert ein Eingangssignal an das Statusregister 40 und einen anderes Ausgangssignal an einen Ausgangsfeldselektor und ein Datenleseelement 42.
  • Das System der vorliegenden Erfindung weist vier Betriebsmodi auf, welche sind: Befehl des Schreibens (CW), Schreiben von Daten (DW), Lesen des Status (SR) und Lesen von Daten (DR), wie durch die entsprechenden Blöcke am Ausgang eines Modusgenerators 13 in Fig. 2 dargestellt. Im Datensehreibmodus werden Daten in das Vergleichsregister geschrieben. Der Modusgenerator 13 empfängt ein Chipfreigabesignal an einem Pin , ein Ausgangsfreigabesignal an einem Pin , ein Schreibfreigabesignal an einem Pin und ein Befehls-/Datensignal an einem Pin D/C. Das Vergleichsregister 19 ist der Hauptpuffer zwischen dem Bus 10 und der CAM-Anordnung 11. Nachdem eine Datenschreiboperation durchgeführt ist, wird unter der Steuerung des Befehlsschreibzyklus einer der Operations-(OP)-Codes zum Verschieben von Daten in die CAM-Anordnung 11 oder das Maskenregister 17 ausgeführt.
  • Unter dem Befehlsschreibzyklus wird der Befehlsschreibbefehl auf dem 16-Bit-Bus 10 kodiert. Von den 16 Bits auf dem Bus 10 werden 4 Bits zur Dekodierung der bei der vorliegenden Erfindung verwendeten 16 OP-Codes verwendet. Ferner befinden sich auf dem Bus 10 8 Bits für die Adreßposition, um anzuzeigen, zu welcher Position in der Anordnung 11 die Daten von dem Vergleichsregister 19 übertragen werden sollen. Die bei der vorliegenden Erfindung verwendeten OP-Codes sind nachfolgend aufgeführt.
  • Op-Code 0 Initialisierung
  • Alle Sprungbits sind auf LOW (nicht springen) und alle Leerbits auf HIGH (leer) eingestellt. Die /MTCH- und /FULL-Ausgangssignale werden freigegeben. Der Modus wird auf einen 48-Bit-Modus eingestellt. Das Maskenregister und der Segmentzähler werden auf Null rückgesetzt Durch Voreingabe erfolgt das anschließende Lesen und Schreiben von Daten in und aus dem Vergleichsregister.
  • Op-Code 1 Ausgangssteuerung
  • Übereinstimmungs- und Vollflaggen werden durch diesen Befehl freigegeben oder gesperrt.
  • Op-Code 2 Auswählen des Modus
  • Der Benutzer kann diesen Befehl verwenden, um zwischen dem 16- oder 48-Bit-Modus zu wählen. Im 16-Bit-Modus erfolgt niemals eine Inkrementierung des Segmentzählers.
  • Op-Code 3 Verschieben des Vergleichsregisters zum Maskenregister
  • Der Inhalt der Vergleichsregisterdaten wird in das Maskenregister verschoben.
  • Op-Code 4 Verschieben des Maskenregisters zum Vergleichsregister
  • Der Inhalt der Maskenregisterdaten wird in das Vergleichsregister verschoben.
  • Op-Code 5 Freigabe des Ausgangs von der Sprung- und Leerbitanordnung zum I/O-Port
  • Alle folgenden Datenmoduslesevorgänge führen dazu, daß Daten von Leerbits und Sprungbits zu dem Ausgangspuffer fließen. Die Adresse wird durch das Befehlsregisteradreßfeld spezifiziert.
  • Op-Code 6 Verschieben des Vergleichsregisters zum CAM
  • Der Inhalt der Vergleichsregisterdaten wird in den CAM verschoben. Das Leerbit und das Sprungbit werden nicht verändert. Die CAM-Adresse wird durch das Befehlswortadreßfeld spezifiziert. Der Segmentzähler wird nicht verändert.
  • Op-Code 7 Verschieben des CAM zum Vergleichsregister
  • Der Inhalt der von dem Befehlswortadreßfeld spezifizierten Daten wird in das Vergleichsregister verschoben. Der Segmentzähler wird nicht verändert. Die Sprung- und Leerbitanordnungsinformation wird nicht verändert.
  • Op-Code 8 Reserviert
  • Op-Code 9 Sprungbitsteuerung
  • Der Benutzer kann unter Verwendung dieses Befehls in die Sprungbitanordnung schreiben. Durch Liefern der gewünschten Adreßposition können sie die gesamte Anordung in einem Zyklus oder ein beliebiges einzelnes Bit einschreiben.
  • Op-Code 10 Leerbitsteuerung
  • Der Benutzer kann unter Verwendung dieses Befehls in die Leerbitanordnung schreiben. Durch Liefern der gewünschten Adreßinformation können sie die gesamte Anordnung in einem Zyklus oder ein beliebiges einzelnes Bit einschreiben.
  • Op-Code 11 Freigabe des Ausgangs vom Vergleichsregister zum I/O-Port
  • Alle folgenden Datenlesevorgänge führen dazu, daß Daten von dem Vergleichsregister zu dem Ausgangspuffer fließen.
  • Op-Code 12 Freigabe des Ausgangs vom Maskenregister zum I/O-Port
  • Alle folgenden Datenlesevorgänge führen dazu, daß Daten von dem Maskenregistersegment zum Ausgangspuffer fließen.
  • Op-Code 13 Freigabe des Ausgangs vom CAM zum I/O-Port
  • Alle folgenden Datenlesevorgänge führen dazu, daß Daten von dem CAM-Segment zum Ausgangspuffer fließen. Die CAM-Adresse wird von dem Befehlswortadreßfeld spezifiziert.
  • Op-Code 14 Verschieben des Vergleichsregisters zum CAM (Rücksetzen sowohl des Leerbits als auch des Sprungbits auf LOW)
  • Der Inhalt der Vergleichsregisterdaten wird in die von dem Befehlswortadreßfeld spezifizierte Adresse verschoben (CAM-Adresse). Das entsprechende Leerbit und Sprungbit werden beide auf LOW zurückgesetzt.
  • Op-Code 15 Laden des Segmentzählers
  • Der Benutzer kann den Segmentzähler verändern, um zu irgendeinern der drei Segmente zu gelangen.
  • Diese 16 OP-Code-Befehle sind durch 4 höherwertige Bits eines Befehlsworts auf dem 16-Bit-Bus kodiert. Ein typisches Befehlswort sieht folgendermaßen aus: Op-Code Zusatzinformationen Adresse ein
  • Ein Statuslesevorgang ist normalerweise eine Operation, die einer Übereinstimmungsoperation folgt, wobei der Benutzer die Übereinstimmungsposition erfahren will, ob eine Mehrfach- oder eine Einfachübereinstimmung gegeben ist und ob der Chip noch voll ist. Der Inhalt des Statusregisters 40 kann auf den Bus 10 ausgelesen werden. Zwei Bits können aus dem Segmentzähler 22 gelesen werden, acht Bits aus der Adreßpositionsanzeige aus dem Prioritätskodierer 21 und drei Flaggbits aus dem Volldetektor 31 und aus dem Übereinstimmungs- und Mehrfachübereinstimmungsdetektor 28.
  • Das bei der vorliegenden Erfindung verwendete Statuswort kann wie folgt beschrieben werden: Wie nachfolgend gezeigt, stellen die unteren acht Bits des Statuswortes die kodierte Adresse dar, um dem Benutzer die Position anzuzeigen. Statusflaggen Zusatzinformationen Kodierte Adresse aus
  • TYPISCHES STATUSWORT
  • Die oberen drei Bits kennzeichnen die Statusflaggen, einschließlich einer Mehrfachübereinstimmungsflagge, einer Vollflagge und einer Übereinstimmungsflagge. Diese internen Flaggen sollten wie die externen sein, doch wenn die Ausgänge nicht freigegeben sind, sind die Flaggen im HIGH-Zustand.
  • Das Lesen der Daten ist ein Lesevorgang, wobei der Benutzer Information von dem CAM-Register 17, dem Vergleichregister 19, dem Maskenregister 18 oder von der Sprung- und Leerbitinformation von dem Speicher 41 erhalten kann. Somit wird bei einern Datenlesevorgang Information aus einern der vier Register, abhängig von dem vorausgegangenen Befehlsschreibzyklus, Information gelesen.
  • Bei der vorliegenden Erfindung werden bei jedern Wort zwei Statusbits verwendet; eines ist ein Sprungbit und das andere wird als Leerbit bezeichnet. Das Sprungbit wird verwendet, um dem Benutzer die Möglichkeit zu geben, ein Wort auszumaskieren, und das Leerbit wird im Zusammenhang mit Leerbitpositionen in der Anordnung verwendet.
  • Die Brfindung verwendet einen Prioritätskodierer 21 zur Lieferung einer Anzeige der Höchstprioritätsadreßposition der Adresse mit höchster Priorität. Bei einer Übereinstimmungsoperation, bei der ein Vergleich einer ganzen Anordnung vorgenommen wird, liefert dieses Merkmal eine Anzeige der Übereinstimmungsposition, falls eine Übereinstimmung vorhanden ist. Falls keine Übereinstimmung vorhanden ist, weist der Prioritätskodierer 21 auf die nächste, zur Verwendung verfügbare leere Adresse. Unter dem Mehrfachübereinstimmungszustand, bei dem mehr als 1 Übereinstimmungsposition vorhanden ist, kann der Benutzer Wort für Wort ausmaskieren, bis er alle Positionen, die in Übereinstimmung gelangt sind, identifiziert hat, dies stellt die Funktion des Sprungbits dar, das durch die Sprungbitschaltung 20 und die Sprungbitanordnung 22 dargestellt ist. Ein weiteres hier verwendetes Bit ist das Leerbit, das durch die Leerschreibschaltung 23 und die Leerbitanordnung 24 repräsentiert wird. Das Leerbit hat zwei Zustände, davon ist der eine leer und der andere voll. Die spezielle Wortposition wird verwendet, so daß der Benutzer das Leerbit einstellen kann, um zu zeigen, daß diese spezielle Bitposition besetzt ist. Wenn also der Benutzer in die CAM- Zelle schreiben will, weiß er, daß sich in einigen der Positionen darin bereits Daten befinden.
  • Der Segmentzähler 34 überwacht die internen Segmente, so daß der 16-Bit-Bus 10 für eine 48-Bit-Operation verwendet werden kann. Zu Beginn einer 16-Bit-Modus-Operation wird die Segmentzählung in dem Zähler 34 immer auf die erste Zahl eingestellt. Es ist jedoch auch ein benutzerprogrammierbares Element vorgesehen, mittels dessen der Benutzer zu der zweiten Segmentzahl oder der dritten Segmentzahl vorrücken kann, indem er, wie oben beschrieben, die OP-Codes 15 verwendet.
  • Es sind zwei externe Flaggen vorgesehen, von denen eine die "Voll"-Flagge ist, repräsentiert durch das Element 26, und die andere die "Übereinstimmung"-Flagge, reprasentiert durch das Element 27. Wenn in der Anordnung eine Übereinstimmung gegeben ist, wie durch den Übereinstimmungsdetektor 28 erkannt und über das Übereinstimmungsregister 29 an die Flagge 27 weitergegeben, geht die Übereinstimmungsflagge in den LOW-Zustand über. Auf gleiche Weise geht, wenn alle Positionen in der Anordnung 11 voll sind, wie durch den Volldetektor 21 erkannt und über das Vollregister 32 an die Flagge 26 weitergegeben, die Vollflagge in den LOW- Zustand über. Wenn die Vollflagge 26 im HIGH-Zustand ist, bedeutet dies, daß dem Benutzer noch freie Positionen in der Anordnung 11 zur Verfügung stehen, und wenn die Übereinstimmungsflagge 27 im HIGH-Zustand bleibt, bedeutet dies, daß keine Übereinstimmung vorhanden ist.
  • Signale von sowohl der Übereinstimmungsleitung als auch der Volleitung gehen über den Prioritätsmultiplexer 51 in den Prioritätskodierer 31 (Fig. 1). Wenn keine Übereinstimmung vorhanden ist, wird auch die leere Position kodiert. Sowohl die Leerinformation als auch die Übereinstimmungsinformation werden dem Prioritätskodierer 21 zugeführt. Der Volidetektor 31 erkennt, ob die Anordnung voll oder leer ist.
  • Der Übereinstimmungsdetektor 28 erkennt, ob der Zustand einer Übereinstimmung gegeben ist oder nicht, während der Prioritätskodierer 21 die Adreßposition des Übereinstimmungsworts liefert. Der Prioritätskodiermultiplexer 25 multiplext die Leerund die Übereinstimmungspositionsinformation, sodaß eine der beiden in den Kodierer 21 gelangt.
  • In Fig. 3 ist eine Zelle mit neun Transistoren dargestellt, von denen die Transistoren M1, M2, M5 und M6 die Basisspeicherelemente, die kreuzgekoppelten Paare, sind. Die Schaltungspunkte ST und sind die Speicherschaltungspunkte und die Transistoren M3, M4 die Zugriffstransistoren, die die Speicherschaltungspunkte mit dem Bitleitungspaar BL und BL verbindet. Der Zellzugriff wird durch die Wortleitungswahl über WL gesteuert. Die Transistoren M7,M8 sind die Übereinstimmungstransistoren. Sie sind in einer exklusiven NOR-Konfiguration geschaltet, wobei die Schaltungspunkte ST, und das Bitleitungspaar BL, die Eingänge darstellen und der Übereinstimmungsschaltungspunkt M der Ausgang ist. Wenn die Zelldaten gleich denen auf der Bitleitung sind, tritt auf ein logischer LOW-Zustand auf.
  • ÜBEREINSTIMMUNGSZUSTAND
  • Wenn alle N Bits im gleichen Wort auf ihren jeweiligen Bitleitungspaaren Übereinstimmungsdaten aulweisen, tritt ein Übereinstimmungszustand ein. Da sämtliche Zellübereinstimmungsschaltungspunnt im logischen LOW-Zustand sind, kann keiner der Pull-down-Transistoren Ml 3 auf der Übereinstimmungsleitung eingeschaltet werden. Daher bleibt die Übereinstimmungsleitung in einem logischen HIGH-Zustand. Im Gegensatz dazu führt jeder Nichtübereinstimmungszustand dazu, daß die Übereinstimmungsleitung in den LOW-Zustand versetzt wird.
  • BITMASKIERUNG
  • Wenn sowohl BL als auch von den Transistoren M11 und M12 in den LOW- Zustand versetzt worden sind, ist der Übereinstimmungsschaltungspunkt M ungeachtet der CAM-Zellendaten im LOW-Zustand. Daher wird dieses spezielle Bit zwangsweise in Übereinstimmung gebracht. Der Bitmaskierzustand kann durch Einstellen des Maskenregisters auf "1" (durch zwangsweises Versetzen von sowohl BL als auch in den LOW-Zustand) erreicht werden. Wenn das Maskenregister auf "0" eingestellt wird, können die Daten in dem Register 19 auf dem Bitleitungspaar erscheinen.
  • WORTMASKIERUNG
  • Wortmaskierung kann dadurch erfolgen, daß entweder das Sprungbit oder/und das Leerbit auf den HIGH-Zustand eingestellt werden. In jedem Fall wird das endgültige Übereinstimmungsleitungsausgangssignal (ML') über das NAND-Gatter (47) und das NOR-Gatter (48) zwangsweise in den LOW-Zustand gebracht, wobei ein Nichtübereinstimmungszustand angezeigt wird, selbst wenn eine Übereinstimmung vorhanden ist.
  • RÜCKSETZEN DER ANORDNUNG
  • Wenn alle Leerbits auf HIOH eingestellt sind, werden alle M Wörter aufleer eingestellt und stehen für neue Daten zur Verfügung.

Claims (13)

1. Inhaltsadressierbares Speichersystem mit:
mehreren in Reihen und Spalten in einer Anordnung (11) aus N Bitwörtem mal M Wortzellen angeordneten Speicherzellen;
mehreren sich durch die Anordnung erstreckenden Wortleitungen (WL) zum Adressieren verschiedener Wörter in den Speicherzellen, wobei jedes der Wörter mehrere benachbarte Zellen umfaßt, die sich in einer ersten Richtung in der Anordnung erstrecken;
mehreren sich parallel zu den Wortleitungen in der ersten Richtung durch die Anordnung erstreckenden Übereinstimmungsleitungen (ML);
mehreren Bitleitungen (BL, ), die sich in einer zur ersten Richtung senkrechten Richtung durch die Anordnung erstrecken, wobei jede der Bitleitungen mit den Zellen in einer sich in der zweiten Richtung durch die Anordnung erstreckenden Spalte der Zellen verbunden ist;
wobei die Bitleitungen in Paaren konfiguriert sind und wobei ein Paar von Bitleitungen (BL, ) mit jeder der Zellen in jeder der Spalten verbunden ist;
einer Einrichtung zum Speichern von Bits in gewählten Speicherzellen in der Anordnung;
einem Eingabe-/Ausgabe-Bus (I/O) (10);
einer Einrichtung zum Liefern eines mit den M Wörtern in der Anordnung zu vergleichenden Übereinstimmungswortes auf dem I/O-Bus;
einer Vergleichseinrichtung (1) zum gleichzeitigen Vergleichen der Bits des Übereinstimmungsworts mit den Bits der M Wörter in der Anordnung;
einer Übereinstimmungserkennungseinrichtung (28) zum Erkennen eines Übereinstimmungszustands zwischen den Bits in dem Übereinstimmungswort und den Bits in den M Wörtern in der Anordnung;
einer Einrichtung zum Maskieren wählbarer Übereinstimmungszustände zum Erzeugen nicht maskierter Übereinstimmungswortzustände;
einer Voll-Erkennungseinrichtung (31) zum Erkennen, ob die Anordnung voll ist oder nicht;
einer Prioritätskodiereinrichtung (21), die auf die Übereinstimmungserkennungseinrichtung (28) und die Voll-Erkennungseinrichtung (31) reagiert,
dadurch gekennzeichnet, daß die Prioritätskodiereinrichtung in der Lage ist, eine Anzeige der Übereinstimmungsstelle(n) für den/die nicht maskierten Übereinstimmungswortzustand/-stände in der Anordnung zu liefern und eine Anzeige der nächsten leeren Adresse in der Anordnung zu liefern, wenn kein Übereinstimmungszustand vorliegt.
2. Speichersystem nach Anspruch 1, mit:
einem Prioritätsmultiplexer (25) mit einem Eingang und einem Ausgang; einer Einrichtung zum Liefern der Ausgangssignale der Übereinstimmungserkennungseinrichtung (28) und der Voll-Erkennungseinrichtung (31) an den Eingang des Prioritätsmultiplexers (25);
einer Einrichtung zum Multiplexen der Eingangssignale des Prioritätsmultiplexers; und
einer Einrichtung zum Liefern der gemultiplexten Eingangssignale am Ausgang des Prioritätsmultiplexers an die Prioritätskodiereinrichtung (21).
3. Speichersystem nach Anspruch 2, mit einer Prioritätsmultiplexersteuereinrichtung (33) zum Steuern des Prioritätsmultiplexers (25).
4. Speichersystem nach Anspruch 2, mit:
einem mit dem I/O-Bus (10) verbundenen Statusregister (40); und
einem Segmentzähler (34), der mit dem Statusregister (40) zum Steuern des Lieferus der Übereinstimmungswörter an den I/O-Bus verbunden ist.
5. Speichersystem nach Anspruch 1, bei dem der I/O-Bus eine Bit-Kapazität von weniger als N hat.
6. Speichersystem nach Anspruchs, bei dem die Bit-Kapazität des I/O-Bus ein Untervielfaches von N ist.
7. Speichersystem nach Anspruch 1, bei dem die Vergleichseinrichtung (1) aufweist:
eine Bitleitungsbeschreibungsschaltung (1), die mit jedem der Bitleitungspaare verbunden ist; wobei die Bitleitungsbeschreibungsschaltung aufweist:
ein Komparandenregister (19),
ein Maskenregister (18),
einen Sensorverstärker (14),
eine programmierbare Bitleitungsschreibschaltung (36);
eine Einrichtung (I/O CTRL) zum Liefern von in die Zellen zu schreibenden Daten von dem Datenbus (10) zu dem Komparandenregister (19);
eine Einrichtung zum Liefern der zu schreibenden Daten von dem Komparandenregister (19) zu der programmierbaren Bitleitungsschreibschaltung (36); und
eine Einrichtung zum Liefern der zu schreibenden Daten von der programmierbaren Bitleitungsschreibschaltung (36) an sämtliche Paare der Bitleitungen (BL, ) in einer jeweiligen Spalte.
8. Speichersystem nach Anspruch 7, mit:
einer Einrichtung zum Verbinden des Sensorverstärkers (14) mit dem Bitleitungspaar (BL, ) seiner zugehen gen Spalte, um Daten aus einer der Zellen in der Spalte, die durch eine der Wortleitungen freigegeben ist, auszulesen.
9. Speichersystem nach Anspruch 7, mit:
einer Einrichtung zum Durchführen einer Maskierungsoperation auf in den Zellen zu speichernden Daten, wobei die Maskierungsdurchführungseinrichtung eine Einrichtung zum Liefern gewählter Signalbits an das Maskenregister (18), die in den Zellen zu maskierenden Datenbits entsprechen, aufweist;
einer Einrichtung zum Liefern von in den Zellen zu speichernden Datenbits;
einer Einrichtung zum Vergleichen der gelieferten Datenbits mit dem Inhalt des Maskenregisters (18), um aus den gelieferten Datenbits diejenigen Bits zu eliminieren, die den gewählten, den zu maskierenden Datenbits entsprechenden Signalbits entsprechen; und
einer Einrichtung zum Leiten der nach dem Vergleichen verbleibenden gelieferten Bits an die Zellen.
10. Speichersystem nach Anspruch 9, bei dem die zu speichernden gelieferten Bits von einem I/O-Bus (10) an das Komparandenregister (19) übertragen werden.
11. Speichersystem nach Anspruch 10, bei dem die gewählten Signalbits, die in den Zellen zu maskierenden Daten entsprechen, von dem Komparandenregister an das Maskenregister (18) übertragen werden.
12. System nach Anspruch 11, bei dem die gewählten Signalbits, die in den Zellen zu maskierenden Daten entsprechen, zuerst von dem I/O-Bus an das Komparandenregister (19) und dann an das Maskenregister (18) und die zu speichernden gelieferten Bits von dem I/O-Bus an das Komparandenregister übertragen werden.
13. System nach Anspruch 9, bei dem das Komparandenregister und das Maskenregister (18) eine Bit-Kapazität aufiveisen, die ein Vielfaches der Bit-Kapazität des I/O- Bus ist.
DE68928213T 1988-05-11 1989-05-04 Inhaltadressierte Speicherzellenanordnung Expired - Fee Related DE68928213T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/193,315 US4928260A (en) 1988-05-11 1988-05-11 Content addressable memory array with priority encoder

Publications (2)

Publication Number Publication Date
DE68928213D1 DE68928213D1 (de) 1997-09-04
DE68928213T2 true DE68928213T2 (de) 1998-02-26

Family

ID=22713125

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68928213T Expired - Fee Related DE68928213T2 (de) 1988-05-11 1989-05-04 Inhaltadressierte Speicherzellenanordnung

Country Status (5)

Country Link
US (1) US4928260A (de)
EP (1) EP0341897B1 (de)
JP (1) JP3006715B2 (de)
AT (1) ATE156281T1 (de)
DE (1) DE68928213T2 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072422A (en) * 1989-05-15 1991-12-10 E-Systems, Inc. Content-addressed memory system with word cells having select and match bits
JPH03219326A (ja) * 1990-01-24 1991-09-26 Mitsubishi Electric Corp データ比較回路
EP0459703B1 (de) * 1990-05-31 2000-08-16 STMicroelectronics, Inc. Inhaltsadressierbarer Speicher
US5123105A (en) * 1990-06-25 1992-06-16 Advanced Micro Devices, Inc. Priority encoder for a content addressable memory
US5491806A (en) * 1990-06-26 1996-02-13 Lsi Logic Corporation Optimized translation lookaside buffer slice having stored mask bits
SE9002558D0 (sv) * 1990-08-02 1990-08-02 Carlstedt Elektronik Ab Processor
US5319763A (en) * 1991-04-02 1994-06-07 Motorola, Inc. Data processor with concurrent static and dynamic masking of operand information and method therefor
JP3015493B2 (ja) * 1991-04-26 2000-03-06 株式会社東芝 半導体連想記憶装置
US5249152A (en) * 1991-06-20 1993-09-28 Unisys Corporation Bookkeeping memory
JP2728819B2 (ja) * 1991-12-18 1998-03-18 川崎製鉄株式会社 半導体集積回路
US5999434A (en) * 1992-01-10 1999-12-07 Kawasaki Steel Corporation Hierarchical encoder including timing and data detection devices for a content addressable memory
US5619446A (en) * 1992-01-10 1997-04-08 Kawasaki Steel Corporation Hierarchical encoder including timing and data detection devices for a content addressable memory
FR2687004B1 (fr) * 1992-01-31 1994-03-18 France Telecom Architecture de memoire associative.
US5257220A (en) * 1992-03-13 1993-10-26 Research Foundation Of The State Univ. Of N.Y. Digital data memory unit and memory unit array
US5351208A (en) * 1992-04-27 1994-09-27 Integrated Information Technology, Inc. Content addressable memory
US5383146A (en) * 1992-06-08 1995-01-17 Music Semiconductors, Inc. Memory with CAM and RAM partitions
US5454094A (en) * 1993-06-24 1995-09-26 Hal Computer Systems, Inc. Method and apparatus for detecting multiple matches in a content addressable memory
SG44604A1 (en) * 1993-09-20 1997-12-19 Codex Corp Circuit and method of interconnecting content addressable memory
US5586288A (en) * 1993-09-22 1996-12-17 Hilevel Technology, Inc. Memory interface chip with rapid search capability
FR2713797B1 (fr) * 1993-12-13 1996-02-09 Matra Mhs Contrôleur de protocole d'accès par une unité centrale à des unités périphériques.
US5491757A (en) * 1993-12-22 1996-02-13 Humphrey Instruments, Inc. Field tester gaze tracking using content addressable memories to improve image data analysis speed
US6122706A (en) * 1993-12-22 2000-09-19 Cypress Semiconductor Corporation Dual-port content addressable memory
US5649149A (en) * 1994-08-01 1997-07-15 Cypress Semiconductor Corporation Integrated content addressable memory array with processing logical and a host computer interface
US5860085A (en) * 1994-08-01 1999-01-12 Cypress Semiconductor Corporation Instruction set for a content addressable memory array with read/write circuits and an interface register logic block
US5646878A (en) * 1995-06-02 1997-07-08 Motorola, Inc. Content addressable memory system
US5964857A (en) * 1997-05-30 1999-10-12 Quality Semiconductor, Inc. Priority encoder for a content addressable memory system
US6148364A (en) * 1997-12-30 2000-11-14 Netlogic Microsystems, Inc. Method and apparatus for cascading content addressable memory devices
US6199140B1 (en) * 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
EP0936625A3 (de) 1998-02-17 2003-09-03 Texas Instruments Incorporated Assoziativspeicher (CAM)
US6240485B1 (en) 1998-05-11 2001-05-29 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
US6381673B1 (en) * 1998-07-06 2002-04-30 Netlogic Microsystems, Inc. Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device
US6266262B1 (en) 1998-11-05 2001-07-24 Lara Technology, Inc. Enhanced binary content addressable memory for longest prefix address matching
US6081440A (en) * 1998-11-05 2000-06-27 Lara Technology, Inc. Ternary content addressable memory (CAM) having fast insertion and deletion of data values
US6237061B1 (en) 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US6539455B1 (en) 1999-02-23 2003-03-25 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a ternary content addressable memory device
US6460112B1 (en) 1999-02-23 2002-10-01 Netlogic Microsystems, Llc Method and apparatus for determining a longest prefix match in a content addressable memory device
US6892272B1 (en) 1999-02-23 2005-05-10 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a content addressable memory device
US6499081B1 (en) 1999-02-23 2002-12-24 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a segmented content addressable memory device
US6574702B2 (en) 1999-02-23 2003-06-03 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a content addressable memory device
US6420990B1 (en) 1999-03-19 2002-07-16 Lara Technology, Inc. Priority selection circuit
US6137707A (en) * 1999-03-26 2000-10-24 Netlogic Microsystems Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
US6317349B1 (en) 1999-04-16 2001-11-13 Sandisk Corporation Non-volatile content addressable memory
US6166938A (en) * 1999-05-21 2000-12-26 Sandisk Corporation Data encoding for content addressable memories
US6157558A (en) * 1999-05-21 2000-12-05 Sandisk Corporation Content addressable memory cell and array architectures having low transistor counts
US6505270B1 (en) 1999-07-02 2003-01-07 Lara Technology, Inc. Content addressable memory having longest prefix matching function
US7143231B1 (en) 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US7272027B2 (en) * 1999-09-23 2007-09-18 Netlogic Microsystems, Inc. Priority circuit for content addressable memory
US6757779B1 (en) 1999-09-23 2004-06-29 Netlogic Microsystems, Inc. Content addressable memory with selectable mask write mode
US7487200B1 (en) 1999-09-23 2009-02-03 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system
US6751701B1 (en) 2000-06-14 2004-06-15 Netlogic Microsystems, Inc. Method and apparatus for detecting a multiple match in an intra-row configurable CAM system
US7110407B1 (en) 1999-09-23 2006-09-19 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system using enable signals
US6567340B1 (en) 1999-09-23 2003-05-20 Netlogic Microsystems, Inc. Memory storage cell based array of counters
US6799243B1 (en) 2000-06-14 2004-09-28 Netlogic Microsystems, Inc. Method and apparatus for detecting a match in an intra-row configurable cam system
US6542391B2 (en) * 2000-06-08 2003-04-01 Netlogic Microsystems, Inc. Content addressable memory with configurable class-based storage partition
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US6795892B1 (en) 2000-06-14 2004-09-21 Netlogic Microsystems, Inc. Method and apparatus for determining a match address in an intra-row configurable cam device
US6647457B1 (en) 1999-11-16 2003-11-11 Cypress Semiconductor Corporation Content addressable memory having prioritization of unoccupied entries
US6591331B1 (en) * 1999-12-06 2003-07-08 Netlogic Microsystems, Inc. Method and apparatus for determining the address of the highest priority matching entry in a segmented content addressable memory device
US6839795B1 (en) * 2000-05-31 2005-01-04 Silicon Labs Cp, Inc. Priority cross-bar decoder
US7171542B1 (en) 2000-06-19 2007-01-30 Silicon Labs Cp, Inc. Reconfigurable interface for coupling functional input/output blocks to limited number of i/o pins
DE60211761T2 (de) * 2001-01-19 2007-05-24 President Of Hiroshima University, Higashihiroshima Inhaltsadressierbarer Halbleiterspeicher
US6910097B1 (en) 2001-04-09 2005-06-21 Netlogic Microsystems, Inc. Classless interdomain routing using binary content addressable memory
JP3881869B2 (ja) * 2001-11-05 2007-02-14 株式会社ルネサステクノロジ 半導体記憶装置
WO2003044671A1 (en) * 2001-11-05 2003-05-30 Hywire Ltd. Ram-based range content addressable memory
US6671218B2 (en) * 2001-12-11 2003-12-30 International Business Machines Corporation System and method for hiding refresh cycles in a dynamic type content addressable memory
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US7171595B1 (en) * 2002-05-28 2007-01-30 Netlogic Microsystems, Inc. Content addressable memory match line detection
US7401181B1 (en) * 2002-05-29 2008-07-15 Core Networks Llc System and method for comparand reuse
US7272684B1 (en) 2002-06-26 2007-09-18 Netlogic Microsystems, Inc. Range compare circuit for search engine
US7206212B1 (en) 2002-08-13 2007-04-17 Netlogic Microsystems, Inc. Content addressable memory (CAM) device with entries having ternary match and range compare functions
US6577520B1 (en) 2002-10-21 2003-06-10 Integrated Device Technology, Inc. Content addressable memory with programmable priority weighting and low cost match detection
US6804132B2 (en) * 2002-11-25 2004-10-12 International Business Machines Corporation Circuit for multiple match hit CAM readout
US6864810B2 (en) * 2003-07-24 2005-03-08 Micron Technology, Inc. Converting digital signals
US7152141B2 (en) * 2003-07-31 2006-12-19 Micron Technology, Inc. Obtaining search results for content addressable memory
US6831587B1 (en) 2003-07-31 2004-12-14 Micron Technology, Inc. Priority encoding
US7436688B1 (en) 2005-05-06 2008-10-14 Netlogic Microsystems, Inc. Priority encoder circuit and method
US7570503B1 (en) 2005-05-20 2009-08-04 Netlogic Microsystems, Inc. Ternary content addressable memory (TCAM) cells with low signal line numbers
US8717793B2 (en) 2009-05-26 2014-05-06 Arizona Board Of Regents, For And On Behalf Of Arizona State University Longest prefix match internet protocol content addressable memories and related methods
US8438330B2 (en) 2010-05-17 2013-05-07 Netlogic Microsystems, Inc. Updating cam arrays using prefix length distribution prediction

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3195109A (en) * 1962-04-02 1965-07-13 Ibm Associative memory match indicator control
US3633182A (en) * 1969-08-26 1972-01-04 Bell Telephone Labor Inc Content addressable memory cell
US4065756A (en) * 1976-03-15 1977-12-27 Burroughs Corporation Associative memory with neighboring recirculated paths offset by one bit
DE2712575C2 (de) * 1977-03-22 1985-12-19 Walter Dipl.-Ing. 8011 Putzbrunn Motsch Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
US4296475A (en) * 1978-12-19 1981-10-20 U.S. Philips Corporation Word-organized, content-addressable memory
US4404653A (en) * 1981-10-01 1983-09-13 Yeda Research & Development Co. Ltd. Associative memory cell and memory unit including same
US4670858A (en) * 1983-06-07 1987-06-02 Tektronix, Inc. High storage capacity associative memory
US4794559A (en) * 1984-07-05 1988-12-27 American Telephone And Telegraph Company, At&T Bell Laboratories Content addressable semiconductor memory arrays
US4723224A (en) * 1986-01-02 1988-02-02 Motorola, Inc. Content addressable memory having field masking

Also Published As

Publication number Publication date
JP3006715B2 (ja) 2000-02-07
US4928260A (en) 1990-05-22
JPH0271497A (ja) 1990-03-12
EP0341897B1 (de) 1997-07-30
EP0341897A2 (de) 1989-11-15
EP0341897A3 (de) 1992-10-28
ATE156281T1 (de) 1997-08-15
DE68928213D1 (de) 1997-09-04

Similar Documents

Publication Publication Date Title
DE68928213T2 (de) Inhaltadressierte Speicherzellenanordnung
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE3788032T2 (de) Struktur zum Wiederordnen von Bits auf dem Chip.
DE68928187T2 (de) Inhaltadressierte Speicherzellenanordnung
DE3902425C2 (de)
DE69217761T2 (de) Lese- und Schreibschaltung für einen Speicher
DE3485905T2 (de) Adressenuebersetzungsspeicher.
DE3801380C2 (de)
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE3587137T2 (de) Inhaltsadressierbarer speicher.
DE2364408C3 (de) Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers
DE3650532T2 (de) Speicher mit programmierbarem Zugang
DE69621280T2 (de) Speichergerätschaltkreis und Verfahren zur gleichzeitigen Adressierung der Spalten einer Vielzahl von Banken einer Vielzahlbankspeicheranordnung
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE2059917C3 (de) Hybridadressierter Datenspeicher
DE2718110A1 (de) Datenverarbeitungseinheit
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE69222743T2 (de) Speichereinrichtung und Verfahren zur Verwendung in einer Datenverarbeitungsanordnung
DE68929451T2 (de) Integrierte Schaltung mit synchronen Halbleiterspeicher, Methode zum Zugriff auf diesen Speicher und System mit einem solchen Speicher
DE2551741A1 (de) Datenverarbeitungseinrichtung
DE69714532T2 (de) Synchrone Halbleiterspeichervorrichtung mit Makrobefehlsspeichern und Ausführungsverfahren dafür
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE69132367T2 (de) Inhaltsadressierbarer Speicher
DE69025782T2 (de) Registerbankschaltung
DE4302754C1 (de) Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee