DE68928213T2 - Inhaltadressierte Speicherzellenanordnung - Google Patents
Inhaltadressierte SpeicherzellenanordnungInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 31
- 230000000873 masking effect Effects 0.000 claims abstract description 15
- 238000001514 detection method Methods 0.000 claims 6
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010420 art technique Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital 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/04—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query 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)
- Semiconductor Memories (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (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.
- 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:
- 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.
- Einer von M Dekodierem wählt nur das gewünschte Wort aus.
- Diese lädt die Bitleitungen vorab auf die Optimalpegel zum nichtlöschenden Hochgeschwindigkeitszellenlesen auf
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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 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.
- 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.
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)
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 | 川崎製鉄株式会社 | 半導体集積回路 |
US5619446A (en) * | 1992-01-10 | 1997-04-08 | Kawasaki Steel Corporation | Hierarchical encoder including timing and data detection devices for a content addressable memory |
US5999434A (en) | 1992-01-10 | 1999-12-07 | 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) |
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 |
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 |
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 |
US6081440A (en) * | 1998-11-05 | 2000-06-27 | Lara Technology, Inc. | Ternary content addressable memory (CAM) having fast insertion and deletion of data values |
US6266262B1 (en) | 1998-11-05 | 2001-07-24 | Lara Technology, Inc. | Enhanced binary content addressable memory for longest prefix address matching |
US6237061B1 (en) | 1999-01-05 | 2001-05-22 | Netlogic Microsystems, Inc. | Method for longest prefix matching in a content addressable memory |
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 |
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 |
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 |
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 |
US6944709B2 (en) * | 1999-09-23 | 2005-09-13 | Netlogic Microsystems, Inc. | Content addressable memory with block-programmable mask write mode, word width and priority |
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 |
US7487200B1 (en) | 1999-09-23 | 2009-02-03 | Netlogic Microsystems, Inc. | Method and apparatus for performing priority encoding in a segmented classification 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 |
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 |
US6757779B1 (en) | 1999-09-23 | 2004-06-29 | Netlogic Microsystems, Inc. | Content addressable memory with selectable mask write mode |
US6542391B2 (en) | 2000-06-08 | 2003-04-01 | Netlogic Microsystems, Inc. | Content addressable memory with configurable class-based storage partition |
US6567340B1 (en) | 1999-09-23 | 2003-05-20 | Netlogic Microsystems, Inc. | Memory storage cell based array of counters |
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 |
US7272027B2 (en) * | 1999-09-23 | 2007-09-18 | Netlogic Microsystems, Inc. | Priority circuit for content addressable memory |
US6934795B2 (en) * | 1999-09-23 | 2005-08-23 | Netlogic Microsystems, Inc. | Content addressable memory with programmable word width and programmable priority |
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 |
EP1227497B1 (de) * | 2001-01-19 | 2006-05-31 | President of Hiroshima University | Inhaltsadressierbarer Halbleiterspeicher |
US6910097B1 (en) | 2001-04-09 | 2005-06-21 | Netlogic Microsystems, Inc. | Classless interdomain routing using binary content addressable memory |
WO2003044671A1 (en) * | 2001-11-05 | 2003-05-30 | Hywire Ltd. | Ram-based range content addressable memory |
JP3881869B2 (ja) * | 2001-11-05 | 2007-02-14 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
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 |
WO2010138639A2 (en) | 2009-05-26 | 2010-12-02 | 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)
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 |
-
1988
- 1988-05-11 US US07/193,315 patent/US4928260A/en not_active Expired - Lifetime
-
1989
- 1989-05-04 DE DE68928213T patent/DE68928213T2/de not_active Expired - Fee Related
- 1989-05-04 EP EP89304467A patent/EP0341897B1/de not_active Expired - Lifetime
- 1989-05-04 AT AT89304467T patent/ATE156281T1/de active
- 1989-05-10 JP JP1117162A patent/JP3006715B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US4928260A (en) | 1990-05-22 |
ATE156281T1 (de) | 1997-08-15 |
DE68928213D1 (de) | 1997-09-04 |
EP0341897A2 (de) | 1989-11-15 |
JPH0271497A (ja) | 1990-03-12 |
EP0341897B1 (de) | 1997-07-30 |
EP0341897A3 (de) | 1992-10-28 |
JP3006715B2 (ja) | 2000-02-07 |
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. | |
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 | |
DE69131917T2 (de) | Cache-Speicher mit rekonfigurierbarer Blocklänge und Verfahren dafür | |
DE2364408B2 (de) | Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers | |
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 | |
DE2951040C2 (de) | ||
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE69132367T2 (de) | Inhaltsadressierbarer Speicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |