DE10022765C2 - Content addressable memory - Google Patents

Content addressable memory

Info

Publication number
DE10022765C2
DE10022765C2 DE2000122765 DE10022765A DE10022765C2 DE 10022765 C2 DE10022765 C2 DE 10022765C2 DE 2000122765 DE2000122765 DE 2000122765 DE 10022765 A DE10022765 A DE 10022765A DE 10022765 C2 DE10022765 C2 DE 10022765C2
Authority
DE
Germany
Prior art keywords
memory
cam
content
addressable memory
logic
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
DE2000122765
Other languages
German (de)
Other versions
DE10022765A1 (en
Inventor
Roland Brueckner
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE2000122765 priority Critical patent/DE10022765C2/en
Publication of DE10022765A1 publication Critical patent/DE10022765A1/en
Application granted granted Critical
Publication of DE10022765C2 publication Critical patent/DE10022765C2/en
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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Description

Die Erfindung betrifft einen inhaltsadressierbarer Speicher (CAM = content addressable memory) mit einem Speicherfeld be­ stehend aus einer Speichermatrix mit n Zeilen und m Spalten aus k-bit tiefen Speicherelementen, einer Steuerlogik zum Einlesen von zu übersetzenden Adressen mit einer Höchstwort­ länge von m*k bit in ein Register und einer Decoderlogik zum Auslesen der zu den Adressen korrespondierenden Daten. Wei­ terhin betrifft die Erfindung auch ein Verfahren zur Auswahl einer Adresse aus einer Vielzahl von Adressen, denen unter­ schiedlichen Inhalte zugeordnet sind, mit Hilfe eines in­ haltsadressierbaren Speichers (CAM) durch die Angabe eines vorgegebenen Inhaltes.The invention relates to a content-addressable memory (CAM = content addressable memory) with a memory field consisting of a memory matrix with n rows and m columns from k-bit deep memory elements, a control logic for Reading of addresses to be translated with a maximum word length of m * k bit in a register and a decoder logic for Reading out the data corresponding to the addresses. Wei the invention also relates to a method for selection an address from a variety of addresses, including those under different content are assigned, with the help of a addressable memory (CAM) by specifying a given content.

Ähnliche CAM-Speicher sind beispielsweise aus den Patentschriften US 5,818,786 A, US 5,978,246 A und US 5,999,434 A bekannt. Insbesondere kann aus der letztgenannten US 5,999,434 A der grundsätzliche Aufbau eines CAM entnommen werden.Similar CAM memories are for example from the US 5,818,786 A, US 5,978,246 A and US 5,999,434 A known. In particular, from the latter No. 5,999,434 A, the basic structure of a CAM is taken become.

CAM werden beispielsweise in öffentlichen Vermittlungsstellen eingesetzt, um aufgrund einer vorgegebenen Verbindungskennung die dazugehörige gültige Durchwahlnummern mit hoher Geschwin­ digkeit auszugeben.CAM are used, for example, in public exchanges used to due to a given connection identifier the associated valid extension numbers with high speed to spend.

Bei einem solchen inhaltsadressierbaren Speicher (CAM), der auch assoziativer Speicher genannt wird, wird eine Vielzahl von Kennungen, z. B. Verbindungskennungen, mit einer assozi­ ierten Nummer, z. B. einer Durchwahlnummer, in einer Speicher­ matrix abgelegt. Soll nun die Nummer an Hand einer Kennung gesucht werden, so wird die Kennung gleichzeitig über die eingetragenen Kennungen "gelegt" (= gleichzeitig mit allen n Worten des Arrays verglichen), wobei als Antwort die eine oder mehrere assoziierte Nummern ausgegeben werden.With such a content addressable memory (CAM), the Also called associative memory is a multitude of identifiers, e.g. B. connection identifiers, with an assoc numbered number, e.g. B. an extension number, in a memory matrix filed. Now the number should be based on an identifier are searched for, the identifier is simultaneously via the entered identifiers "placed" (= simultaneously with all n Words of the array), the answer being the one or several associated numbers are output.

Hardwaremäßig kann dies durch unterschiedliche logische Schaltungsstrukturen erreicht werden.In terms of hardware, this can be done by different logical Circuit structures can be achieved.

Eine Struktur, bei der der Abgleich und die Antwort sehr schnell erfolgt ist die NOR-Struktur, bei der alle Bitvergleiche parallel erfolgen und die jeweilige Vergleichsleitung von gültig (precharge Wert) auf ungültig umgeladen wird, wenn nur einer der Bitvergleiche ungültig ist. Solche NOR- Strukturen erzeugen relativ hohe Verlustleistungen, die durch einen entsprechend hohen Kühlaufwand kompensiert werden müs­ sen.A structure where the match and the answer are very The NOR structure, in which all bit comparisons are carried out quickly  in parallel and the respective comparison line is reloaded from valid (precharge value) to invalid if only one of the bit comparisons is invalid. Such NOR Structures generate relatively high power losses through a correspondingly high cooling effort must be compensated sen.

Alternativ zur NOR-Struktur kann eine NAND-Struktur verwendet werden. Hier erfolgt der Vergleich zwischen der gesuchten Kennung und den vorhandenen Kennungen quasi-seriell, wobei alle Vergleiche erfüllt sein müssen, um am Ausgang der Ver­ gleicherschaltung die Antwort "Gültig" zu erreichen. Durch diese quasi-serielle Verarbeitung ist die Reaktionszeit die­ ser NAND-Struktur wesentlich langsamer, jedoch ist die Ver­ lustleistung wesentlich geringer als bei einer NOR-Struktur, da nur die wenigen "Treffer' zu einer Umladung der Leitungen führen.As an alternative to the NOR structure, a NAND structure can be used become. Here is the comparison between the searched Identifier and the existing identifiers quasi-serial, whereby all comparisons must be fulfilled in order to at the exit of Ver to achieve the answer "valid". By this quasi-serial processing is the response time This NAND structure is much slower, but the ver pleasure output much lower than with a NOR structure, since only the few "hits" to reload the lines to lead.

Eine ausführliche Darstellung der Funktionsweise solcher Speichersysteme ist in dem Artikel "Fully Parallel Integrated CAM/RAM Using Preclassification to Enable Large Capacities" aus IEEE Journal on Solid-State Circuits, Vol. 31, No. S. May 1996, dessen Offenbarungsgehalt bezüglich des Aufbaues und der Arbeitsweise von CAM's hiermit vollinhaltlich übernommen wird, beschrieben.A detailed description of the functioning of such storage systems can be found in the article "Fully Parallel Integrated CAM / RAM Using Preclassification to Enable Large Capacities" from IEEE Journal on Solid-State Circuits, Vol. 31, No. S. May 1996 , the disclosure content of which is hereby fully adopted with regard to the structure and mode of operation of CAMs.

Ein wesentlicher Nachteil dieser bekannten CAM's besteht also im Falle einer NOR-Organisation der Speicherfelder in ihrer hohen Verlustleistung bei gleichzeitig vorteilhaft hoher Ge­ schwindigkeit und im Falle einer NAND-Organisation der Spei­ cherfelder in ihrer geringen Geschwindigkeit bei gleichzeitig vorteilhaft reduzierter Verlustleistung.There is a major disadvantage of these known CAMs in the case of a NOR organization of the memory fields in their high power dissipation combined with advantageous high Ge speed and in the case of a NAND organization the Spei fields in their low speed at the same time advantageously reduced power loss.

Konkret bedeutet dies in der Praxis, daß im Falle von "ATM Switching Fabrics 2 × 2,4 Gbit/s" alle ca. 80 ns eine Adress­ behandlung erforderlich wird. Hinzu kommen Änderungen des ei­ gentlichen CAM-Eintrages, wie das Löschen oder das Update von Eintragungen. Das CAM-Design erfordert daher aufwendige Custom Designs, beziehungsweise Hardmacros um die gestellten Anforderungen zu erfüllen.Specifically, this means in practice that in the case of "ATM switching fabrics 2 × 2.4 Gbit / s" an address treatment is required every approx. 80 ns. There are also changes to the actual CAM entry, such as deleting or updating entries. The CAM design therefore requires elaborate custom designs or hard macros to meet the requirements.

In bisherigen Schaltungsvorschlägen zur Struktur eines CAM- Feldes wird dabei stets von einer einstufigen Realisierung des erforderlichen dynamischen XOR's ausgegangen. Für hohe Wortbreiten (128 Bit) wird für diese Funktion, selbst unter Verwendung von BiCMOS Technologie, ca. 32 ns benötigt. Inklu­ sive des notwendigen Prioritäten-Decoders werden insgesamt ca. 50-70 ns benötigt.In previous circuit proposals for the structure of a CAM Feldes is always a one-step implementation of the required dynamic XOR. For high Word widths (128 bits) are used for this function, even under Using BiCMOS technology, approx. 32 ns required. inclu sive of the necessary priority decoder are total about 50-70 ns needed.

Es ist daher Aufgabe der Erfindung, einen inhaltsadressierba­ ren Speicher zu finden, der einerseits die hohe Reaktionsge­ schwindigkeit eines Speichers mit NOR-Organisation und ande­ rerseits ähnlich geringe Verlustleistungen wie ein Speicher mit NAND-Organisation aufweist.It is therefore an object of the invention, a content addressable to find their memory, on the one hand, the high reaction speed of a memory with NOR organization and others on the other hand, similarly low power losses as a storage with NAND organization.

Der Erfinder hat erkannt, daß durch die Einführung einer zu­ sätzlichen Pipelinestufe es auch mit einer dynamischen NOR- Struktur möglich ist, deutlich höhere Taktraten (ca. 10 ns) als bisher zu erreichen und der Datendurchsatz wesentlich ge­ steigert werden kann. Vorteilhaft ist es hierbei, daß die vorgeschlagene Ausgestaltung der CAM-Struktur leicht in be­ stehende CAM-Felder integriert werden kann.The inventor recognized that by introducing one too additional pipeline stage it also with a dynamic NOR Structure is possible, significantly higher clock rates (approx. 10 ns) to achieve than before and the data throughput significantly ge can be increased. It is advantageous here that the proposed design of the CAM structure easily in be standing CAM fields can be integrated.

Da gleichzeitig die dynamischen Anforderungen reduziert wer­ den, kann auf aufwendige "Custom Design"-Methoden verzichtet und die Leseverstärker der Matchline in den CAM's können durch einfache Strukturen (z. B. C2MOS) ersetzt werden.Since the dynamic requirements are reduced at the same time, complex "custom design" methods can be dispensed with and the matchline read amplifiers in the CAMs can be replaced by simple structures (e.g. C 2 MOS).

Da die Matchline in m-teile aufgespalten wird, und im erfin­ dungsgemäßen Ansatz die Prechargephasen der nachfolgenden Matchlineleitungen unterdrückt werden können, kann auch die Verlustleistung wesentlich reduziert werden. Since the matchline is split into m-parts, and in invent Appropriate approach the precharge phases of the following Matchline lines can also be suppressed Power loss can be significantly reduced.  

Im speziellen Anwendungsfall, im Bereich der Vermittlungs­ stellen öffentlicher ATM-Netze (ATM = asychronous transfer modus), der eine schnelle Adressauflösung benötigt, ist nicht die absolute Latenzzeit der kritische Parameter, da die ATM- Zelle in der Regel mindestens einen Ausgangsbuffer durchlau­ fen muß, und daher bereits zwischengespeichert wird. Wichtig vielmehr ist, daß alle Suchoperationen mit einem maximalem Durchsatz an Suchdurchläufen beantwortet werden können.In a special application, in the area of mediation represent public ATM networks (ATM = asychronous transfer mode) that needs fast address resolution is not the absolute latency of the critical parameters because the ATM Cell usually pass through at least one output buffer fen must, and is therefore already cached. Important rather, all searches are with a maximum Throughput of searches can be answered.

Der Erfinder schlägt daher konkret vor, den bekannten in­ haltsadressierbaren Speicher (CAM = content addressable memo­ ry) mit einem Speicherfeld bestehend aus einer Speichermatrix mit n Zeilen und m Spalten aus k-bit tiefen Speicherelemen­ ten, einer Steuerlogik zum Einlesen von zu übersetzenden Ad­ ressen mit einer Höchstwortlänge von m*k bit in ein Register und einer Decoderlogik zum Auslesen der zu den Adressen kor­ respondierenden Daten, dahingehend weiterzuentwickeln, daß die Speichermatrix (4.n.m) in mindestens zwei Teilmatrizen (4.1.1-4.20.X - 1 und 4.1.X + 1 bis 4.20.X + 15) mit n Zeilen aufgeteilt, zwischen diesen Teilmatrizen eine Pipeline-Spalte (7) mit Zwischenspeicherelementen (4.1.X . . . 4.20.X) vorgesehen und in einer dynamischen NOR-Struktur aufgebaut ist.The inventor therefore proposes specifically, the known in addressable memory (CAM = content addressable memory) with a memory field consisting of a memory matrix with n rows and m columns of k-bit deep memory elements, a control logic for reading in addresses to be translated with a maximum word length of m * k bit in a register and a decoder logic for reading out the data corresponding to the addresses, to further develop such that the memory matrix (4.nm) in at least two sub-matrices (4.1.1-4.20.X - 1 and 4.1.X + 1 to 4.20.X + 15) with n rows, a pipeline column ( 7 ) with intermediate storage elements (4.1.X... 4.20.X) is provided between these submatrices and is constructed in a dynamic NOR structure ,

Hierdurch ist es nun möglich, die zu suchenden Adressen in Teiladressen aufzuspalten, Übereinstimmungen mit diesen Teil­ adressen in an sich bekannter Weise zu suchen und die weitere Suche nur noch mit den gefundenen Übereinstimmungen fortzu­ setzen. Es wird also eine Kombination von paralleler und se­ rieller Suche durchgeführt, wobei die Vorteile der einzelnen Sucharten, wie hohe Geschwindigkeit und geringe Verlustleis­ tung, genutzt und deren Nachteile weitgehend vermieden wer­ den.This makes it possible to search for the addresses in Split partial addresses, matches with this part to search for addresses in a manner known per se and the further Search only with the matches found put. So it becomes a combination of parallel and se rial search performed, taking advantage of each Search types such as high speed and low loss tion, used and the disadvantages largely avoided the.

Eine vorteilhafte Ausgestaltung des erfindungsgemäßen, in­ haltsadressierbaren Speichers (CAM) besteht darin, daß ausga­ beseitig eine weitere Pipeline-Spalte mit Zwischenspeicherelementen vorgesehen ist. Durch diese Pipelinestruktur wird bewirkt, daß die eigentliche Ermittlung eines Treffers 1 aus n, und die Übergabe im rechnerüblichen Binärformat log2(n) zeitlich entkoppelt/werden.An advantageous embodiment of the memory-addressable memory (CAM) according to the invention consists in that a further pipeline column with intermediate storage elements is provided on the output side. This pipeline structure has the effect that the actual determination of a hit 1 from n and the transfer in the usual binary log 2 (n) format are decoupled in time.

Da die Abarbeitung einer Zeile nun in m aufeinanderfolgenden Abschnitten erfolgt, ist es erforderlich, das Anlegen der Ad­ ressen ebenfalls durch entsprechende eingangsseitige Pipeli­ ne-Register entsprechend anzupassen.Since the processing of a line is now in m successive Sections are done, it is necessary to create the ad also eat through corresponding input pipelines adapt ne registers accordingly.

Eine besondere Form der Ausgestaltung des inhaltsadressierba­ ren Speichers (CAM) sieht weiterhin vor, daß die Decoderlogik entsprechend einer NAND-Struktur aufgebaut ist. Vorteilhaft können weiterhin die Speicherelemente des Speicherfeldes aus 9 Transistoren und/oder die Zwischenspeicherelemente aus 8 Transistoren in an sich bekannter Weise aufgebaut sein.A special form of designing the content addressable ren memory (CAM) also provides that the decoder logic is constructed according to a NAND structure. Advantageous can continue to use the memory elements of the memory array 9 transistors and / or the buffer elements from FIG. 8 Transistors can be constructed in a manner known per se.

Zur Erzielung einer regulären Struktur kann die Speichermat­ rix in gleich große Teilmatrizen unterteilt werden.The storage mat can be used to achieve a regular structure rix can be divided into sub-matrices of the same size.

Entsprechend dem grundsätzlichen Erfindungsgedanken schlägt der Erfinder außerdem vor, das Verfahren zur Auswahl einer Adresse aus einer Vielzahl von Adressen, denen unterschiedli­ chen Inhalte zugeordnet sind, mit Hilfe eines inhaltsadres­ sierbaren Speichers (CAM) durch die Angabe eines vorgegebenen Inhaltes, dahingehend weiterzuentwickeln, daß der vorgegebene Inhalt und die Vielzahl der unterschiedlichen Inhalte jeweils in mindestens zwei Teilinhalte unterteilt werden und iterativ zunächst Übereinstimmungen der Teilinhalte gesucht werden, wonach eine weitere Suche sich auf die übereinstimmenden In­ halte und Adressen beschränkt.In accordance with the basic idea of the invention the inventor also proposed the method of selecting one Address from a variety of addresses, which differ Chen contents are assigned with the help of a content address sable memory (CAM) by specifying a predefined Content to further develop in such a way that the given Content and the multitude of different contents each be divided into at least two parts and iteratively first matches of the partial contents are sought, which is followed by another search on the matching In hold and addresses limited.

Eine verbesserte Ausgestaltung dieses Verfahren sieht vor, daß die übereinstimmenden Adressen beziehungsweise Inhalte mit Hilfe eines Zwischenspeichers markiert werden und in ei­ nem nächsten Suchschritt nur die markierten Inhalte durch­ sucht werden.An improved embodiment of this method provides that the matching addresses or contents be marked with the help of a buffer and in egg In the next search step, only the marked content be searched.

Weiterhin kann vorteilhaft ein inhaltsadressierbarer Speicher (CAM = content addressable memory) verwendet werden, der mit einem Speicherfeld bestehend aus einer Speichermatrix mit n Zeilen und m Spalten aus k-bit tiefen Speicherelementen, ei­ ner Steuerlogik zum Einlesen von zu übersetzenden Adressen mit einer Höchstwortlänge von m*k bit in ein Register und ei­ ner Decoderlogik zum Auslesen der zu den Adressen korrespon­ dierenden Daten ausgestattet ist, wobei die Matrix in mindes­ tens zwei Teilmatrizen mit n Zeilen aufgeteilt ist und zwi­ schen diesen Teilmatrizen eine Spalte mit Zwischenspeicher­ elementen angeordnet ist.A content-addressable memory can also be advantageous (CAM = content addressable memory) can be used with the  a memory field consisting of a memory matrix with n Rows and m columns from k-bit deep storage elements, ei Control logic for reading in addresses to be translated with a maximum word length of m * k bit in a register and ei ner decoder logic for reading out the correspon to the addresses data is provided, with the matrix in at least at least two submatrices with n rows are divided and two a column with intermediate storage for these submatrices elements is arranged.

Zur Verbesserung des Zeitverhaltens wird außerdem vorgeschla­ gen, daß ausgabeseitig eine Zwischenspeicherung des mindes­ tens einen Ergebnisses des Suchvorganges stattfindet.To improve the timing behavior, it is also suggested conditions that a temporary storage of the minimum at least one result of the search takes place.

Weiterhin kann eingabeseitig ein Pipeline-Register und/oder ausgabeseitig ein Multimatch-Logic verwendet werden, in dem die ein- und/oder ausgegebenen Daten zwischengespeichert wer­ den können.Furthermore, a pipeline register and / or a multimatch logic can be used on the output side in which the input and / or output data is cached that can.

Entsprechen einer angenommenen Anzahl von Treffern können die zu suchenden und die vorhandenen Inhalte in annähernd gleich große Teilinhalte aufgeteilt werden.The matches can correspond to an assumed number of hits to search and the existing content in approximately the same large parts are divided.

Weitere Merkmale der Erfindung ergeben sich aus den Unteran­ sprüchen und der nachfolgenden Beschreibung der Ausführungs­ beispiele unter Bezugnahme auf die Zeichnungen.Further features of the invention result from the Unteran say and the following description of the execution examples with reference to the drawings.

Im folgenden wird die Erfindung anhand der Zeichnungen näher beschrieben. Es zeigen im Einzelnen:The invention will be described in more detail below with reference to the drawings described. They show in detail:

Fig. 1 Aufbau eines bekannten inhaltsadressierbaren Spei­ chers (Stand der Technik); Fig. 1 structure of a known content addressable SpeI chers (prior art);

Fig. 2 Erfindungsgemäßer inhaltsadressierbarer Speicher; Fig. 2 Inventive content addressable memory;

Fig. 3 Detaildarstellung der Speicherelemente einschließ­ lich Pipelinestufe als C2MOS; Fig. 3 detailed representation of the memory elements including Lich pipeline stage as C 2 MOS;

Fig. 4 Detaildarstellung von modifizierten und erweiterten Speicherelementen aus Fig. 3 einschließlich Pipelinestufe mit Pulluptransistoren; Fig. 4 detail view of modified and extended memory elements of Figure 3 including pipeline stage with Pulluptransistoren.

Fig. 5 Modifizierte und erweiterte Speicherelemente aus Fig. 4. Fig. 5 Modified and extended memory elements from Fig. 4.

Die Fig. 1 zeigt schematisch den Aufbau eines konventionel­ len, bekannten CAM-Feldes mit den Datenzuflüssen 1 (Compare & Data) für die vorgegebenen Daten und die zu vergleichenden Daten, dem Speicher 2 für die Eingangsdaten - der für die physikalische Ansteuerung der Spaltenmatrix zuständig ist -, dem Zeilen-Decoder 3, dem Matrix-Feld 4 mit den einzelnen Matrix-Zellen 4.n.m (n steht für die Nummer der Zeile und m für die Nummer der Spalte), die über sogenannte Matchlines 4.n mit dem Prioritäts-Encoder 5 verbunden sind, über den im Falle einer Übereinstimmung zwischen vorgegebenen Daten und dem Suchbegriff die entsprechende Adresse 6 ausgegeben wird. Fig. 1 shows schematically the structure of a conventional len, known CAM field with the data inflows 1 (Compare & Data) for the specified data and the data to be compared, the memory 2 for the input data - which is responsible for the physical control of the column matrix is -, the row decoder 3 , the matrix field 4 with the individual matrix cells 4 .nm (n stands for the number of the row and m for the number of the column), the so-called matchlines 4 .n with the priority -Encoder 5 are connected, via which the corresponding address 6 is output in the event of a match between the specified data and the search term.

Die Matchline 4.n und der Prioritäts-Encoder 5 werden ohne Abtaktung asynchron durchlaufen. Die Gesamtlaufzeit bestimmt sich daher durch die Laufzeit aus Anlegen der Compare & Data Tc, der Durchlaufzeit durch die Zeile Tz und die Durchlauf­ zeit durch den Prioritäts-Encoder Te. Somit ist die Gesamt­ durchlaufzeit T = Tc + Tz + Te und die maximale Systemfrequenz bestimmt durch 1/(Tc + Tz + Te).The Matchline 4 .n and the priority encoder 5 are run through asynchronously without synchronization. The total runtime is therefore determined by the runtime from creation of the Compare & Data Tc, the turnaround time by the line Tz and the turnaround time by the priority encoder Te. Thus, the total throughput time T = Tc + Tz + Te and the maximum system frequency determined by 1 / (Tc + Tz + Te).

Die Fig. 2 zeigt ein erfindungsgemäß modifiziertes CAM mit zusätzlichen Pipelinestufen, bestehend aus einem eingangssei­ tigen Pipeline-Register 9, einer Pipeline-Spalte 7 im CAM- Feld 4, einer weiteren Pipeline-Spalte 8 unmittelbar vor dem Prioritäts-Encoder 5 und schließlich einer Multimatch-Logic 10 hinter dem Prioritäts-Encoder 5 für die Nachbearbeitung. FIG. 2 shows a CAM modified according to the invention with additional pipeline stages, consisting of a pipeline register 9 on the input side, a pipeline column 7 in the CAM field 4 , a further pipeline column 8 immediately before the priority encoder 5 and finally one Multimatch logic 10 behind the priority encoder 5 for post-processing.

Die Multimatch-Logik 10 gibt bei Bedarf entweder ein Signal aus, welches anzeigt, daß nicht nur genau ein einziger Tref­ fer, sondern mehrere Treffer gefunden wurden, wodurch die Ad­ ressausgabe möglicherweise nicht gültig ist oder ein Fehler in der Initialisierung vorliegt. Alternativ kann der Priori­ tätsencoder auch bei mehreren gefundenen Adressen die jeweils niedrigste oder größte Adresse ausgeben.The multimatch logic 10 either outputs a signal when required, which indicates that not only exactly one hit, but several hits have been found, as a result of which the address output may not be valid or there is an error in the initialization. Alternatively, the priority encoder can also output the lowest or largest address if there are several addresses found.

Durch diesen erfindungsgemäßen Aufbau des CAM ergibt sich nun eine maximale Systemfrequenz aus dem Minimum der Werte [1/(Tc + Tz/2); 1/(Tz/2)], die damit wesentlich höher ausfällt als in einer konventionellen CAM-Struktur aus Fig. 1 und gleichzeitig jedoch nur unwesentlich höhere Verlustleistung aufweist.This structure of the CAM according to the invention now results in a maximum system frequency from the minimum of the values [1 / (Tc + Tz / 2); 1 / (Tz / 2)], which thus turns out to be significantly higher than in a conventional CAM structure from FIG. 1 and at the same time, however, only has an insignificantly higher power loss.

Der Aufbau solcher Pipelinestufen ist ausführlich in "Distri­ buted Logic Memory DLM", T. Kohonen, Content Adressable Memo­ ries, 1987, Springer-Verlag beschrieben. Dieser Offenbarungs­ gehalt wird hiermit vollinhaltlich in die Beschreibung über­ nommen.The structure of such pipeline stages is detailed in "Distri buted Logic Memory DLM ", T. Kohonen, Content Addressable Memo Ries, 1987, described by Springer-Verlag. This revelation the content is hereby fully described in the description accepted.

Ergänzend ist zu erwähnen, daß in den Fig. 1 und 2 als Verbindungsleitungen der einzelnen Speicherelemente lediglich die Precharge- beziehungsweise Matchleitungen gezeigt sind, da nur das Prinzip der CAM dargestellt werden soll. In der Fig. 1 ist die Matchleitung im Gegensatz zur Fig. 2 durch­ gehend gezeigt, während nach der Einfügung der erfindungsge­ mäßen Pipelinestufe diese Leitung in 2 Teilbereiche zerlegt gezeigt ist. Weiterhin stellt die Spalte 7 eine einfache Re­ gisterbank dar, die eine spaltenweise Abtastung des Signals A (angelegtes Bit des Vergleichswortes) von oben nach unten be­ wirkt. Die Spalte 8 kann ebenfalls aus einem Register beste­ hen und zeilenweise eine Abtaktung des Signals match_* von rechts nach links bewirken.It should also be mentioned that only the precharge or match lines are shown in FIGS . 1 and 2 as connecting lines of the individual memory elements, since only the principle of the CAM is to be shown. In Fig. 1, the match line in contrast to Fig. 2 is shown continuously, while after the insertion of the pipeline stage according to the invention, this line is shown broken down into two sections. Column 7 also represents a simple register bank which effects a column-wise sampling of signal A (applied bit of the comparison word) from top to bottom. Column 8 can also consist of a register and line-by-line clocking of the match_ * signal from right to left.

Die Fig. 3 zeigt einen Ausschnitt einer Zeile aus der CAM- Matrix mit drei Matrix-Elementen X - 2, X - 1, X + 1 und dem zwi­ schen X - 1 und X + 1 liegenden Matrix-Element X einer Pipeline­ stufe in einer möglichen Realisierung als C2MOS. Fig. 3 shows a section of a line from the CAM matrix with three matrix elements X - 2, X - 1, X + 1 and the intermediate between X - 1 and X + 1 matrix element X of a pipeline stage in a possible realization as C 2 MOS.

Hier muß nur die Prechargephase Φ1N in der Spalte X (grau unterlegt) zusätzlich verdrahtet werden, wobei die Phase Φ1 zeilenweise zugeführt wird. Während Φ1 = low wird der Prechar­ ge ausgeführt (Transistoren A9 . . . und C1, C2 geschlossen); mit Φ1 → 1 wird MATCH_p<+0< optional über A9 entla­ den/bewertet und der Wert in die erste Latchstufe "Stufe 1" des Registers C übernommen; mit dem nächsten Φ1 → 0 wird abhängig von dieser Übernahme wiederum ein Precharge auf MATCH_p<+1< durchgeführt, falls MATCH_p<+0< = 1 und damit Sc1 = 0 war. Es gilt die Bedingung MATCH = high und Mismatch = Low. Sofern im vorhergehenden Zyklus somit kein Match vorlag, erfolgt in der nachfolgenden Stufe eine Vorladung auf 0 = Mismatch und auch alle weiteren nachfolgenden Segmente werden funktionsgemäß ebenfalls Mismatch melden.Here only the precharge phase Φ1N in the column X (gray background) has to be wired, whereby the phase Φ1 is fed line by line. While Φ1 = low, the prechar is executed (transistors A9... And C1, C2 closed); with Φ1 → 1 MATCH_p <+0 <is optionally discharged / evaluated via A9 and the value is transferred to the first latch level "level 1 " of register C; with the next Φ1 → 0, depending on this takeover, a pre-charge to MATCH_p <+1 <is carried out again, if MATCH_p <+0 <= 1 and thus Sc1 = 0. The conditions MATCH = high and Mismatch = Low apply. If there was no match in the previous cycle, the subsequent stage precharges to 0 = mismatch and all other subsequent segments will also report mismatch in terms of their function.

Die erfindungsgemäß zusätzliche Spalte X besteht aus 8- Transistor-Elementen, im Gegensatz zum 9-Transistor-CAM- Element. Eine Realisation ist daher im gleichen Zellraster möglich und erfordert keine grundsätzliche Neukonstruktion der Zellstruktur des CAM.The additional column X according to the invention consists of 8- Transistor elements, in contrast to the 9-transistor CAM Element. A realization is therefore in the same cell grid possible and does not require a fundamental redesign the cell structure of the CAM.

Ein normales - nicht zur Pipeline-Struktur gehörendes - Mat­ rix-Element selbst besteht aus einer üblichen 6-Transistor- Speicherzelle mit den Schreibtransistoren A5 und A6, sowie den rückgekoppelten Halteinvertern I1 und I2. Die Transisto­ ren A7, A8 und A9 bilden ein dynamisches NOR.A normal mat - not part of the pipeline structure rix element itself consists of a usual 6-transistor Memory cell with the write transistors A5 and A6, as well the feedback holding inverters I1 and I2. The Transisto ren A7, A8 and A9 form a dynamic NOR.

Die einzelnen Phasen bei einem Suchdurchlauf gestalten sich wie folgt:
The individual phases in a search run are as follows:

  • - Precharge. Φ1 = 0; Match_p<+0< = 1; Transistor C1 und C2 gesperrt.- precharge. Φ1 = 0; Match_p <+0 <= 1; Transistor C1 and C2 locked.
  • - Bewertung Spalten X - 2 . . . X - 1 Φ1 = 1; Transistoren C1 und C2 geöffnet. Der Wert der Match_p<+0< kann über C0 und C3 auf den internen Knoten Sc1 übertragen werden.- Rating columns X - 2. , , X - 1 Φ1 = 1; Transistors C1 and C2 opened. The value of Match_p <+0 <can be via C0 and C3 are transferred to the internal node Sc1.
  • - Precharge 2: Der Werte SC1 wird über die nun geöffneten Transistoren C5 und C6 auf den Knoten Match_p<+1< gelei­ tet.- Precharge 2 : The SC1 value is passed to the Match_p <+1 <node via the transistors C5 and C6 that are now open.

Die Fig. 4 zeigt ebenfalls einen Ausschnitt einer Zeile aus der CAM-Matrix mit drei Matrix-Elementen X - 2, X - 1, X + 1 und dem zwischen X - 1 und X + 1 liegenden Matrix-Element X einer Pi­ pelinestufe, jedoch für die Auslegung mit Pulluptransistoren. Das heißt, im Anschluß an das Flip-Flop steuert dessen Aus­ gang einen schaltbaren Pullup/Pulldown. Figs. 4 also shows a section of a line from the CAM array with three matrix elements X - 2 X - 1, X + 1 and between X - lying 1 and X + 1 matrix element X pelinestufe a Pi, however for the design with pullup transistors. That means, following the flip-flop, its output controls a switchable pullup / pulldown.

Über die Pfade A0/A1 bzw. A2/A3 kann jede Zelle die Matchlei­ tung optional auf "0" ziehen. Stimmt der gespeicherte Wert Sa1 nicht mit dem Suchwert A überein, so sind, bei z. B. Sa1 = 1 und A = 0 die Transistoren A3 und A2 geöffnet. Somit wird über den Pfad A2/A3 die Match_p<+0< auf "0" gezogen. In diesem Falle wird, wie bei N-Mos Logic üblich, permanent Verlust­ leistung erzeugt.Each cell can use the paths A0 / A1 or A2 / A3 to matchel Optionally pull the device to "0". Is the saved value correct? Sa1 does not match the search value A, so at z. B. Sa1 = 1 and A = 0 the transistors A3 and A2 opened. Thus, over the path A2 / A3 pulled the Match_p <+0 <to "0". In this As is usual with N-Mos Logic, the trap becomes permanent loss power generated.

Die Funktion der Spalte X ist vergleichbar mit der Spalte X aus Fig. 3. Hier wird die Pullup-Funktion über die Transis­ toren C8 und C9 nur dann erzeugt, wenn in dem vorhergehenden Abschnitt Match_p<+0< auf "1" und somit der Ausgang des In­ verters I3 auf "0' liegt. Wurde im vorhergehenden Segment kein Match gefunden, so wird über den Transistor C10 die nachfolgende Matchleitung automatisch auf "0" (= Mismatch) gehalten. Die vorhandene Verlustleistung wird also reduziert.The function of column X is comparable to column X from FIG. 3. Here, the pull-up function is only generated via transistors C8 and C9 if in the previous section Match_p <+0 <to "1" and thus the Output of inverter I3 is at "0 '. If no match was found in the previous segment, the subsequent match line is automatically kept at" 0 "(= mismatch) via transistor C10. The existing power loss is thus reduced.

Die Fig. 5 zeigt eine Modifikation zur Fig. 4, in welcher die Matchline auf "high" (= Match) gehalten werden kann, falls (von links nach rechts) mindestens ein Segment einen Match hatte. Das Element I4 kann die "mismatch"-Stufen (= "pulldown"-Stufen) der nachfolgenden Segmentzeile disablen und damit z. B. ein 1k × 2 × 64-CAM-Feld statt ein 1k × 128- CAM-Feld realisieren. Die Pfade D0/D1 beziehungsweise D2/D3 können zwar durchgeschaltet sein, da die Steuerleitung Sd2 durch I4 aber unter Umständen auf "1" gehalten werden kann, kann ein auf "0" ziehen der Matchleitung vermieden werden. I4 kann auch schaltbar als NAND ausgelegt werden. FIG. 5 shows a modification to FIG. 4, in which the matchline can be kept "high" (= match) if (from left to right) at least one segment had a match. The element I4 can disable the "mismatch" stages (= "pulldown" stages) of the subsequent segment line and thus z. B. realize a 1k × 2 × 64-CAM field instead of a 1k × 128-CAM field. The paths D0 / D1 or D2 / D3 can be switched through, but since the control line Sd2 can be kept at "1" by I4 under certain circumstances, pulling the match line to "0" can be avoided. I4 can also be switched as a NAND.

Mit dem erfindungsgemäßen Verfahren und Vorrichtung wird also einerseits eine hohe Reaktionsgeschwindigkeit des Speichers mit NOR-Organisation und andererseits ähnlich geringe Ver­ lustleistungen wie ein Speicher mit NAND-Organisation er­ reicht.With the method and device according to the invention on the one hand a high reaction speed of the memory with NOR organization and on the other hand similarly low ver like a store with NAND organization enough.

Es versteht sich, daß die vorstehend genannten Merkmale der Erfindung nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der Erfindung zu verlassen. It is understood that the above features of Invention not only in the specified combination, but also in other combinations or alone can be used without departing from the scope of the invention.  

BezugszeichenlisteLIST OF REFERENCE NUMBERS

11

Datenzuflüsse
data flows

22

Speicher
Storage

33

Zeilen-Decoder
Row decoder

44

Matrix-Feld/CAM-Feld
4.n.m Speicherelemente
4.n Matchline
Matrix pad / CAM field
4.nm storage elements
4.n Matchline

55

Prioritäts-Encoder
Priority Encoder

66

ausgegebene Adresse
issued address

77

Pipeline-Spalte
Pipeline column

88th

Pipeline-Spalte
Pipeline column

99

Pipeline-Register
Pipeline register

1010

Multimatch-Logic
n Zeile der Speicherelemente
m Spalte der Speicherelemente
I1 . . . I4 Inverter
A angelegtes Bit des Vergleichswortes
AN invertiertes Bit des Vergleichswortes
A0 . . . A9 Transistoren
C0 . . . C10 Transistoren
D0 . . . D4 Transistoren
Φ1 Phase
Φ1N Prechargephase
Tc Laufzeit aus Anlegen der Compare & Data
Te Durchlaufzeit durch den Prioritäts-Encoder
Tz Durchlaufzeit durch eine Zeile
Multi-Match Logic
n row of storage elements
m column of storage elements
I1. , , I4 inverter
A created bit of the comparison word
ON inverted bit of the comparison word
A0. , , A9 transistors
C0. , , C10 transistors
D0. , , D4 transistors
Φ1 phase
Φ1N precharge phase
Tc runtime from creation of Compare & Data
Te throughput time through the priority encoder
Tz lead time through a line

Claims (8)

1. Inhaltsadressierbarer Speicher (CAM = content addres­ sable memory) mit einem Speicherfeld (4) bestehend aus einer Speichermatrix (4.n.m) mit n Zeilen und m Spalten aus k-bit tiefen Speicherelementen, einer Steuerlogik zum Einlesen von zu übersetzenden Adressen mit einer Höchstwortlänge von m*k bit in ein Register und einer Decoderlogik zum Auslesen der zu den Adressen korrespon­ dierenden Daten, dadurch gekennzeichnet, daß die Speichermatrix (4.n.m) in mindestens zwei Teilmatrizen (4.1.1-4.20.X - 1 und 4.1.X + 1 bis 4.20.X + 15) mit n Zei­ len aufgeteilt, zwischen diesen Teilmatrizen eine Pipe­ line-Spalte (7) mit Zwischenspeicherelementen (4.1.X . . . 4.20.X) vorgesehen und in einer dynamischen NOR-Struktur aufgebaut ist.1. Content-addressable memory (CAM) with a memory field ( 4 ) consisting of a memory matrix (4.nm) with n rows and m columns of k-bit deep memory elements, a control logic for reading in addresses to be translated with a Maximum word length of m * k bit in a register and a decoder logic for reading out the data corresponding to the addresses, characterized in that the memory matrix (4.nm) in at least two sub-matrices (4.1.1-4.20.X - 1 and 4.1. X + 1 to 4.20.X + 15) divided with n rows, a pipe line column ( 7 ) with intermediate storage elements (4.1.X... 4.20.X) is provided between these submatrices and is constructed in a dynamic NOR structure , 2. Inhaltsadressierbarer Speicher (CAM) gemäß dem voranste­ henden Anspruch 1, dadurch gekennzeichnet, daß ausgabeseitig eine weitere Pipeline-Spalte (8) mit Zwi­ schenspeicherelementen vorgesehen ist.2. Content-addressable memory (CAM) according to the preceding claim 1, characterized in that a further pipeline column ( 8 ) with intermediate storage elements is provided on the output side. 3. Inhaltsadressierbarer Speicher (CAM) gemäß einem der voranstehenden Ansprüche 1 bis 2, dadurch gekenn­ zeichnet, daß eingabeseitig ein Pipeline-Register (9) und/oder ausgabeseitig ein Multimatch-Logic (10) vorgesehen ist.3. Content-addressable memory (CAM) according to one of the preceding claims 1 to 2, characterized in that a pipeline register ( 9 ) and / or a multimatch logic ( 10 ) is provided on the input side. 4. Inhaltsadressierbarer Speicher (CAM) gemäß einem der voranstehenden Ansprüche 1 bis 3, dadurch gekenn­ zeichnet, daß die Decoderlogik (3) entsprechend einer XOR-Struktur aufgebaut ist.4. Content-addressable memory (CAM) according to one of the preceding claims 1 to 3, characterized in that the decoder logic ( 3 ) is constructed according to an XOR structure. 5. Inhaltsadressierbarer Speicher (CAM) gemäß einem der voranstehenden Ansprüche 1 bis 3, dadurch gekenn­ zeichnet, daß die Decoderlogik (3) entsprechend einer NAND-Struktur aufgebaut ist. 5. Content-addressable memory (CAM) according to one of the preceding claims 1 to 3, characterized in that the decoder logic ( 3 ) is constructed in accordance with a NAND structure. 6. Inhaltsadressierbarer Speicher (CAM) gemäß einem der voranstehenden Ansprüche 1 bis 5, dadurch gekenn­ zeichnet, daß die Speicherelemente des Speicherfeldes aus 9 Transistoren aufgebaut sind.6. Content Addressable Memory (CAM) according to one of the preceding claims 1 to 5, characterized records that the memory elements of the memory array are made up of 9 transistors. 7. Inhaltsadressierbarer Speicher (CAM) gemäß einem der voranstehenden Ansprüche 1 bis 6, dadurch gekenn­ zeichnet, daß die Zwischenspeicherelemente aus 8 Transistoren (C0-C7) aufgebaut sind.7. Content Addressable Memory (CAM) according to one of the preceding claims 1 to 6, characterized records that the intermediate storage elements from 8 Transistors (C0-C7) are constructed. 8. Inhaltsadressierbarer Speicher (CAM) gemäß einem der voranstehenden Ansprüche 1 bis 7, dadurch gekenn­ zeichnet, daß die Speichermatrix in gleich große Teilmatrizen unterteilt ist.8. Content Addressable Memory (CAM) according to one of the preceding claims 1 to 7, characterized records that the memory matrix in equal size Sub-matrices is divided.
DE2000122765 2000-05-10 2000-05-10 Content addressable memory Expired - Fee Related DE10022765C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2000122765 DE10022765C2 (en) 2000-05-10 2000-05-10 Content addressable memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2000122765 DE10022765C2 (en) 2000-05-10 2000-05-10 Content addressable memory

Publications (2)

Publication Number Publication Date
DE10022765A1 DE10022765A1 (en) 2001-11-22
DE10022765C2 true DE10022765C2 (en) 2002-11-07

Family

ID=7641445

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2000122765 Expired - Fee Related DE10022765C2 (en) 2000-05-10 2000-05-10 Content addressable memory

Country Status (1)

Country Link
DE (1) DE10022765C2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818786A (en) * 1995-05-24 1998-10-06 Kawasaki Steel Corporation Layout method of semiconductor memory and content-addressable memory
US5978246A (en) * 1997-09-08 1999-11-02 Nec Corporation Content addressable memory device
US5999434A (en) * 1992-01-10 1999-12-07 Kawasaki Steel Corporation Hierarchical encoder including timing and data detection devices for a content addressable memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999434A (en) * 1992-01-10 1999-12-07 Kawasaki Steel Corporation Hierarchical encoder including timing and data detection devices for a content addressable memory
US5818786A (en) * 1995-05-24 1998-10-06 Kawasaki Steel Corporation Layout method of semiconductor memory and content-addressable memory
US5978246A (en) * 1997-09-08 1999-11-02 Nec Corporation Content addressable memory device

Also Published As

Publication number Publication date
DE10022765A1 (en) 2001-11-22

Similar Documents

Publication Publication Date Title
DE69535672T2 (en) Synchronous NAND DRAM architecture
DE69827714T2 (en) Associative memory system
DE60214773T2 (en) CIRCUIT AND METHOD FOR REDUCING ELECTRICAL CONSUMPTION IN A CONTINUOUS ADSABLE STORE
DE3588247T2 (en) Dynamic semiconductor memory with a static data storage cell
DE10084440B4 (en) Dynamic content-addressable memory cell
DE19740695C2 (en) Multi-level hierarchy data storage
DE102016015773B3 (en) Multiple reading storage device
DE2548564A1 (en) SEMI-CONDUCTOR STORAGE WITH OPTIONAL ACCESS
DE2718454A1 (en) STORAGE DEVICE DESIGNED AS A SEMI-CONDUCTOR CIRCUIT
DE3207210A1 (en) MONOLITHIC STORAGE DEVICE
DE4022149C2 (en)
DE102011053359A1 (en) Latch-based storage device
DE60133513T2 (en) Programmable and electrically erasable serial read-out memory by pre-reception
EP0393436B1 (en) Static memory with pipe-line registers
DE2614297A1 (en) MOS STORAGE
DE69821691T2 (en) Associative storage system
DE69835116T2 (en) Content-aware storage
DE10201865B4 (en) Storage device with a prefetch data order
DE4233249A1 (en) DUAL PORT STORAGE
EP1262060A1 (en) Method and device for reading out image data of a section of an image
DE1933935C3 (en) Associative memory
DE10022765C2 (en) Content addressable memory
DE10211957B4 (en) Ternary content addressable memory cell
DE1295656B (en) Associative memory
DE2519195A1 (en) ASSOCIATIVE MEMORY

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20131203