DE102004006102B4 - Data processing device for fast search of data words - Google Patents

Data processing device for fast search of data words Download PDF

Info

Publication number
DE102004006102B4
DE102004006102B4 DE200410006102 DE102004006102A DE102004006102B4 DE 102004006102 B4 DE102004006102 B4 DE 102004006102B4 DE 200410006102 DE200410006102 DE 200410006102 DE 102004006102 A DE102004006102 A DE 102004006102A DE 102004006102 B4 DE102004006102 B4 DE 102004006102B4
Authority
DE
Germany
Prior art keywords
address
dram
page
search
data
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
DE200410006102
Other languages
German (de)
Other versions
DE102004006102A1 (en
Inventor
Oliver Bartels
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE200410006102 priority Critical patent/DE102004006102B4/en
Publication of DE102004006102A1 publication Critical patent/DE102004006102A1/en
Application granted granted Critical
Publication of DE102004006102B4 publication Critical patent/DE102004006102B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags

Abstract

Die Erfindung betrifft eine neuartige Architektur einer Datenverarbeitungseinrichtung zur schnellen Suche von Datenworten, besonders Paketzieladressen, welche sich insbesondere für einen Router für paketorientierte Netzwerke eignet. Durch die geschickte Kombination von ternärem inhaltsadressierbarem Speicher mit konventionellem dynamischem RAM-Speicher unter Ausnutzung der physikalischen Eigenschaften des dynamischen RAM-Speichers ergibt sich die Möglichkeit, auch bei Vorliegen sehr großer Routingtabellen eine schnelle Paketweiterleitung in Hardware sicherzustellen und gleichzeitig mit einer wirtschaftlich vorteilhaften Größe des ternären Speichers auszukommen.The invention relates to a novel architecture of a data processing device for the rapid search of data words, in particular packet destination addresses, which is particularly suitable for a router for packet-oriented networks. The skillful combination of ternary content addressable memory with conventional dynamic random access memory utilizing the physical characteristics of the dynamic random access memory provides the ability to ensure fast packet routing in hardware, even with very large routing tables, and with economically advantageous ternary size Get along memory.

Description

Der Erfindung liegt die Aufgabe zugrunde, einen Router für paketorientierte Datennetzwerke zu bauen, der das Paketrouting auch bei sehr großen Routentabellen sehr schnell durchführt, ohne dabei die Grenzen der Wirtschaftlichkeit zu sprengen.Of the Invention is based on the object, a router for packet-oriented To build data networks, the packet routing even with very large route tables very fast, without breaking the limits of cost-effectiveness.

Bisherige Router setzen auf eine baumorientierte Darstellung in einem konventionellen Speicher wie beispielhaft in EP1155537A1 der US5909440A beschrieben oder auf eine geschachtelte Darstellung wie in US6631419B1 gezeigt. Konventioneller Speicher ist heutzutage infolge erheblicher Fortschritte der Halbleitertechnologie sehr preiswert mit großer Kapazität erhältlich, die allgemeine Bezeichnung in der Fachwelt hierfür lautet RAM (Random Access Memory).Previous Routers rely on a tree-oriented representation in a conventional Memory as exemplified in EP1155537A1 of US5909440A or a nested representation as shown in US6631419B1. Conventional storage is nowadays due to considerable progress Semiconductor technology very inexpensive with large capacity available, the common name in the professional world for this is RAM (Random Access Memory).

Die größten Kapazitäten bieten dabei dynamische Speicher (DRAM), bei denen die Information durch eine Ladung einer Kapazität repräsentiert wird und lediglich ein weiterer MOS-Transistor zur Ankopplung an die Speichermatrix benötigt wird. Allerdings haben dynamische Speicher den Nachteil, dass eine schnelle Adressierung nur innerhalb einer bereits selektierten Seite und Zeile einer Speichermatrix möglich ist, da beim Vorgang der Selektierung dieser Seite und Zeile Ladungen aus den Speicherkondensatoren der jeweiligen Zeile in die Leseverstärker transferiert werden und zuvor die Inhalte der zuvor angewählten Zeile durch einen Rücktransfer wieder hergestellt werden müssen (Precharge). Hingegen kann auf ein oder mehrere Bits aus einer im Leseverstärker gehaltenen Zeile durch einen Multiplexer oder Burst Transfer sehr schnell zugegriffen werden.The offer the largest capacities doing dynamic memory (DRAM), where information through a charge of a capacity represents is and only another MOS transistor for coupling the memory matrix is needed becomes. However, dynamic memory has the disadvantage of having a Fast addressing only within an already selected page and line of a memory matrix possible is because in the process of selecting this page and line loads transferred from the storage capacitors of each row in the sense amplifier and previously the contents of the previously selected line by a return transfer again must be made (Precharge). On the other hand, one or more bits may be held by one in the sense amplifier Line can be accessed very quickly by a multiplexer or burst transfer.

Eine andere Alternative ist der Einsatz statischer RAM Speicher, diese halten die Information durch rückgekoppelte Speicherzellen, welche jedenfalls zwei Zustände statisch einnehmen können. Der Zugriff kann hier auf jedes einzelne Speicherelement ohne die Einschränkungen des Ladungstransfers erfolgen, allerdings benötigt jede Speicherzelle erheblich mehr Platz auf dem Halbleiter, da eine Vielzahl von platzverbrauchenden MOS-Transistoren pro Speicherzelle erforderlich ist.A Another alternative is the use of static RAM memory, these keep the information fed back Memory cells, which can take two states statically anyway. The access can apply here to every single storage element without the limitations charge transfer, however, each memory cell requires significantly more space on the semiconductor, as a variety of space-consuming MOS transistors per memory cell is required.

Üblich ist auch eine Kopplung von dynamischen Speicher mit statischem Speicher durch sogenannte Cache-Architekturen, dabei werden im Bedarfsfall ganze Datenblöcke aus dem dynamischen in den statischen Speicher transferiert, um dort für erwartete künftige Zugriffe zwecks schnellem Abruf vorgehalten zu werden.It is usual also a coupling of dynamic memory with static memory by so-called cache architectures, thereby becoming necessary whole data blocks transferred from the dynamic to the static memory to there for expected future Accesses for quick retrieval.

Für den Einsatz im Netzwerkrouting hat diese Architektur jedoch den Nachteil, dass bei plötzlich aufkommendem Datenverkehr in unterschiedlichste Richtungen zum Beispiel durch grassierende Computervirenprogramme (auch als „Schlechtwetterbedingung" in der Fachwelt bezeichnet) extrem viele Zugriffe auf unterschiedlichste Adressen stattfinden und somit eine Cache Architektur, unabhängig davon, ob sie sich auf das RAM oder bereits gefundene Routingziele bezieht, ihren Vorteil verliert und dieser sich durch den zusätzlichen Verwaltungsaufwand sogar in einen Nachteil umkehren kann, im Extremfall hat dies schon zu Netzzusammenbrüchen geführt.For use In network routing, however, this architecture has the disadvantage that with suddenly rising Traffic in different directions for example through rampant computer virus programs (also called "bad weather condition" in the professional world called) extremely many accesses to different addresses take place and thus a cache architecture, regardless of whether it refers to the RAM or already found routing destinations, loses its advantage and this by the additional Administrative effort can even turn into a disadvantage, in extreme cases this already to network breakdowns guided.

Ein weiterer Ansatz ist der Einsatz von einfachem inhaltsorientiertem Speicher, abgekürzt CAM (Content Adressable Memory), wie er beispielsweise in US6658002B1 eingesetzt wird.One Another approach is the use of simple content-oriented Memory, abbreviated CAM (Content Addressable Memory), as described, for example, in US6658002B1 is used.

Bei inhaltsadressierbarem Speicher wird typischerweise von statischem RAM ausgegangen und jeder Speicherzelle ein Vergleicher zugeordnet. Wird nun ein Datenwort an den Speicher angelegt, so erkennt eine Speicherzeile mittels der Vergleicher eine vollständige Übereinstimmung und gibt somit ein Signal beispielsweise an einen Prioritätsencoder, der seinerseits hieraus die Adresse der Zeile codiert. Ein typischer Einsatzbereich ist die Auflösung von MAC Adressen auf einem lokalen IEEE 802.3 LAN Netzwerk in zugeordnete Switch Ports oder IP Adressen.at Content-addressable memory is typically static RAM and each memory cell associated with a comparator. If a data word is now applied to the memory, then one recognizes Memory line using the comparator a full match and thus, for example, gives a signal to a priority encoder, which in turn codes the address of the line from this. A typical one Field of application is the resolution of MAC addresses on a local IEEE 802.3 LAN network in mapped Switch ports or IP addresses.

Eine weitere Möglichkeit ist die Nutzung von ternärem inhaltsadressierbarem Speicher, abgekürzt TCAM. Dieser Speichertyp wird üblicherweise nicht in konventionellen Computersystemen eingesetzt, sondern wurde primär für Netzwerkhardware entwickelt, um eine schnelle Routingentscheidung für bestimmte Ziele anhand der IP Adresse zu fällen oder um Filtermaßnahmen anhand der Quell- und Zieladresse zu steuern. Dazu befindet sich als Besonderheit dieses Speichertyps an je zwei Speicherzellen für jeweils ein Bit eine Logikschaltung, die den Inhalt dieser Speicherzellen mit einem angelegten Datenmuster vergleicht. Dabei bestimmt das erste Bit eines Speicherzellenpaars, welches Datenbit erwartet wird, während das zweite Bit festlegt, ob überhaupt ein Vergleich stattfinden soll, dieses Bit wird daher auch als Maskenbit bezeichnet, da es das Vergleichsergebnis für diese ternäre Speicherzelle im Bedarfsfall maskiert. Alternativ kann auch ein Bit ein Pflicht-Eins-Datum oder alternativ keinen Vergleich selektieren, während das andere Bit ein Pflicht-Null-Datum oder keinen Vergleich bestimmt, die Umsetzung zwischen beiden Darstellungen ergibt sich aus einer einfachen Logiktabelle.A another possibility is the use of ternary content-addressable memory, abbreviated TCAM. This storage type becomes common not used in conventional computer systems, but became primary for network hardware designed to make a quick routing decision for certain Destinations based on the IP address or to filter measures based on the source and destination address. This is located as a special feature of this type of memory to two memory cells for each One bit is a logic circuit that stores the contents of these memory cells compared with a created data pattern. It determines that first bit of a memory cell pair, which data bit is expected while the second bit sets, if any a comparison should take place, this bit is therefore also as a mask bit as it is the comparison result for this ternary memory cell masked if necessary. Alternatively, a bit may also have a compulsory one date or alternatively do not select a comparison while the other bit determines a compulsory zero date or no comparison that Conversion between both representations results from a simple Logic table.

Bei dem TCAM Speicher besteht nun zusätzlich zu den üblichen Schreib-/Lesevorgängen bei normalem RAM die Möglichkeit, dass an das Speicherfeld ein externes Datenwort zu Vergleichszwecken angelegt wird. Um eine Übereinstimmung für ein Datenwort innerhalb des Speicherfeldes mit dem externen Datenwort feststellen zu können, müssen alle Logikschaltungen der Speicherzellenpaare eines Datenwortes dieser Feststellung zustimmen (Und-Verknüpfung), entweder in dem eine direkte Übereinstimmung des jeweiligen Datenbits festgestellt wird oder indem das Maskenbit des Speicherzellenpaares signalisiert, dass keine Übereinstimmung notwendig ist. Da es jedenfalls drei sinnvolle Zustände für ein Speicherelement gibt („Gleich-Eins", „Gleich-Null", „Kein-Vergleich-erforderlich") wird dieser Speichertyp auch als ternärer inhaltsadressierbarer Speicher bezeichnet, auch wenn z.B. mit „Datenwort gesperrt" ein vierter Zustand für ein Speicherzellenpaar denkbar wäre.In the TCAM memory is now in addition to the usual read / write normal RAM in the possibility that the memory field, an external data word for comparison purposes is created. In order to be able to determine a match for a data word within the memory field with the external data word, all logic circuits of the memory cell pairs of a data word must agree to this determination (AND link), either by detecting a direct match of the respective data bit or by the mask bit of the memory cell pair signals that no match is necessary. Since there are at least three sensible states for a memory element ("equal-one", "zero-zero", "no-compare-required"), this memory type is also referred to as a ternary content-addressable memory, even if, for example, with "data word disabled" on fourth state for a memory cell pair would be conceivable.

Sofern durch einen solchen Vergleich ein Datenwort gefunden wird, wird entweder direkt die Adresse des Datenwortes zurückgegeben oder über diesen Adressindex ein weiterer statischer RAM Speicher adressiert, welcher seinerseits assoziierte Daten zu diesem Wort, z.B. einen Zeiger auf ein Objekt, zurückliefern kann. Im IP Routing Bereich findet sich hier üblicherweise die Adresse des nachfolgenden Routers und die Bezeichnung des Ziel-Interfaces.Provided is found by such a comparison, a data word is either directly the address of the data word returned or over this Address Index addressed another static RAM memory, which its associated data for that word, e.g. a pointer to an object, to return can. In the IP routing area you will usually find the address of the subsequent router and the name of the destination interface.

Zum Stand der Technik bei TCAM Speichern wird auf US 2003/0233516 A1 und US 2003/0179623 A1 sowie Narlikar, Girija; Zane, Francis: CooICAMs: Power Efficient TCAMs for Forwarding Engines, Proceedings of Infocom 2003, San Francisco, April 2003 verwiesen.To the Prior Art TCAM Saving is based on US 2003/0233516 A1 and US 2003/0179623 A1 and Narlikar, Girija; Zane, Francis: CooICAMs: Power Efficient TCAMs for Forwarding Engines, Proceedings of Infocom 2003, San Francisco, April 2003.

Nachteilig ist dabei jedoch, dass sich trotz Fortschritten in der Halbleitertechnologie bisher nur relativ kleine Speichergrößen in der Region bis maximal ein Megaworte realisieren lassen, zudem haben TCAM Speicher eine relativ hohe Verlustleistung. Bereits die heutige globale Routingtabelle läßt sich nur unter erheblichen Einschränkungen oder Kosten in einem solchen Speicher ablegen, weswegen er hauptsächlich für Switche mit nur lokalen Zielen eingesetzt wird.adversely is, however, that despite advances in semiconductor technology so far only relatively small memory sizes in the region up to a maximum a megaworld can be realized, also have TCAM memory one relatively high power dissipation. Already today's global routing table let yourself only under considerable restrictions or store costs in such a store, which is why he mainly for switches with only local targets.

Hingegen stellt die geplante Umstellung des globalen Internet Routings von 32 Bit Adressen im Rahmen des IPv4 Protokolls auf 128 Bit Adressen im Rahmen des IPv6 Protokolls ganz neue Anforderungen an die Internet Router, welche von den heutigen Geräten nur unzureichend erfüllt werden und daher derzeit eine Einschränkung des IPv6 auf lediglich provideraggregierbaren Adressraum bedingen, welche dem Ziel einer lebenslangen Zuteilung eines Adressraums an eine Person, Organisation oder an ein Gerät völlig zuwiderlaufen und damit den kommerziellen Erfolg des neuen IPv6 sehr in Frage stellen.On the other hand Represents the planned migration of global Internet routing from 32 bit addresses within the scope of the IPv4 protocol to 128 bit addresses in the context of the IPv6 protocol completely new demands on the Internet Routers that are insufficiently met by today's devices and therefore currently a limitation of the IPv6 condition on only provideraggregierbaren address space, which is the goal of a lifelong allocation of an address space a person, organization or to a device completely contrary to and thus very much question the commercial success of the new IPv6.

Ein besonderes Problem ist dabei die Mischung sehr großer mit einer Vielzahl kleiner Adressbereiche, hierdurch kommt es bei einer baumorientierten Suche zu großen Baumtiefen und langen Suchzeiten, gleichzeitig verbietet die Größe der Routingtabelle bei weitem eine komplette Ablage in einem TCAM Speicher schon alleine aus wirtschaftlichen Gründen.One special problem is the mixture very large with a multitude of small address ranges, this leads to a tree-oriented search too big Tree depths and long seek times, while prohibiting the size of the routing table by far a complete filing in a TCAM memory alone because of economical reasons.

Das Problem wird erfindungsgemäß durch die in Patentanspruch 1. beschriebene Einrichtung gelöst, deren Funktion im folgenden anhand eines Ausführungsbeispiels erläutert wird:
Die einzelnen Routingziele werden durch Tabelleneinträge repräsentiert, welche einerseits den zu routenden Bereich beschreiben – entsprechend des Einsatzes gemäß Unteranspruch 2 – und andererseits die Weiterleitungsinformationen wie die Adresse des nächsten Routers (Next Hop), das abgehende Interface und gegebenenfalls weitere Filter- und Bearbeitungsregeln beinhalten. Weiterhin möglich ist auch die Codierung der Datenquelle, um mehrere getrennte Routingtabellen beispielsweise für virtuelle Router kombinieren zu können.
The problem is solved according to the invention by the device described in claim 1, the function of which will be explained below with reference to an embodiment:
The individual routing destinations are represented by table entries which on the one hand describe the area to be routed - corresponding to the insert according to subclaim 2 - and on the other hand the forwarding information such as the address of the next router (Next Hop), the outgoing interface and optionally further filtering and processing rules. It is also possible to encode the data source in order to be able to combine several separate routing tables, for example for virtual routers.

Mehrere Tabelleneinträge werden nun mittels eines geeigneten Algorithmus kombiniert, hierfür bieten sich insbesondere Clusteralgorithmen oder in einer vorteilhaften Ausführung der Erfindung gemäß Unteranspruch 13 auch Algorithmen mit definierten Teilungskriterien ähnlich einem B-Baum an.Several table entries are now combined by means of a suitable algorithm to provide this in particular cluster algorithms or in an advantageous execution the invention according to dependent claim 13 also algorithms with defined partition criteria similar to one B-tree on.

Nach der Gruppierung der Tabelleneinträge werden nun zusammengehörende Einträge in einer Zeile eines dynamischen RAM Speichers abgelegt und der dieser DRAM Zeile zugeordnete Eintrag im TCAM Speicher so gesetzt, dass nur alle dem Cluster gemeinsamen Bits der Zieladresse im TCAM als gültig gekennzeichnet werden, hingegen alle Bits, welche Unterscheidungen aufweisen, ausmaskiert werden.To The grouping of the table entries will now be related entries in a row a dynamic RAM memory and that of this DRAM line assigned entry in the TCAM memory set so that only all the Cluster common bits of the destination address in the TCAM marked as valid On the other hand, all bits which have distinctions are masked out become.

Da das TCAM typischerweise entsprechend der Reihenfolge der Einträge eine Priorität vergibt, kann gemäß Unteranspruch 12 auch ein hierarchisch geteilter Adressbereich gut abgebildet werden. So können beispielsweise mehrere Ziele mit kleinen Adressbereichen in einer DRAM Zeile untergebracht werden, welcher seinerseits in dem Fall, dass keiner dieser Bereiche getroffen wird, mittels Defaulteintrag auf den übergeordneten größeren Adressbereich verweist. Dieser würde auch direkt durch seinen niedriger priorisierten Eintrag im TCAM gefunden, falls die Adresse nicht innerhalb des Clusters der kleinen Ziele liegt und somit gleich dieser niedriger priorisierte, aber einen größeren Adressbereich abdeckende Eintrag mit der ihm zugeordneten DRAM Zeile zum Tragen kommt.There the TCAM is typically one according to the order of entries priority assigns, can according to dependent claim 12 also a hierarchically shared address range well mapped become. So can For example, multiple destinations with small address ranges in one DRAM line, which in turn, in the case, that none of these areas is hit, by default entry the parent larger address range refers. This one would also directly through its lower priority entry in the TCAM found if the address is not within the cluster of the small Goals and therefore equal this lower prioritized, but a larger address range covering entry with its associated DRAM line to bear comes.

Die eigentliche Wahrnehmung dieser hier beschriebenen Verwaltungsaufgaben erfolgt sinnvollerweise durch eine auf einem Steuerrechner ablaufende Software, die Verwaltungsaufgaben sind im Gegensatz zum eigentlichen Prozess der Paketweiterleitung gewöhnlich nicht zeitkritisch.The actual perception of this here The administration tasks described are expediently carried out by software running on a control computer; the administration tasks are usually not time-critical, in contrast to the actual process of packet forwarding.

In dem im folgenden beschriebenen Ausführungsbeispiel der Erfindung wird genau deren Anwendung zur schnellen Ermittlung von Paket-Weiterleitungsinformationen gezeigt, die einzelnen Zieladressbereichen für die Zieladressen der Datenpakete zugeordnet sind.In the embodiment of the invention described below is exactly its application for the rapid determination of packet forwarding information shown, the individual destination address ranges for the destination addresses of the data packets assigned.

Wie in Bild 1 gezeigt erfolgt beim Eintreffen der Zieladresse die Abfrage des TCAM Speichers (TC1), dieser wird im Fall, dass die Adresse im Adressbereich eines bekannten Routingeintrags liegt, einen Index ausgeben. Dieser kann nun gemäß Unteranspruch 3. mittels direkter Kopplung mit dem dynamischen DRAM Speicher oder dem zugeordneten Controller des Speichers, im letzteren Fall typischerweise bestehend aus Multiplexern und Registern im Adresspfad zum DRAM, zur Adressierung einer Zeile des DRAM Speichers verwendet werden.As Figure 1 shows the query when the destination address arrives of the TCAM memory (TC1), this becomes in the case that the address in the address range of a known routing entry, an index output. This can now according to dependent claim 3. by means of direct coupling with the dynamic DRAM memory or the associated controller of the memory, in the latter case typically consisting of multiplexers and registers in the address path to the DRAM, used to address a row of the DRAM memory.

Eine weitere Möglichkeit ist die vorherige Umrechnung des Index zu einer Adresse mittels eines Rechenwerks gemäß Unteranspruch 4., um beispielsweise einen Offset zur Mehrfachnutzung des DRAM auch für andere Speicherzwecke zu schaffen oder unterschiedliche Tabellen verschiedener virtueller Router zu adressieren.A another possibility is the previous conversion of the index to an address using an arithmetic unit according to dependent claim 4., for example, an offset for multiple use of the DRAM also for to create other storage or different tables various virtual routers to address.

Gemäß einer besonders vorteilhaften Ausführung der Erfindung entsprechend Unteranspruch 5. findet ein weiteres, insbesondere statisches RAM zur Festlegung der Adresszuordnung (Mapping) Verwendung, hierdurch brauchen bei dynamischen Änderungen der Routingtabelle entsprechend neu eintreffender Routen über dynamische Protokolle keine Datenblöcke im dynamischen RAM verschoben werden, es reicht hierzu aus, bei Verschiebungen infolge Prioritätsänderungen im TCAM die Abbildung der Indexwerte auf die DRAM Seiten und Zeilen im weiteren statischen RAM zu ändern. Sinnvollerweise wird man bei der Belegung des TCAM Speichers zunächst Zwischenräume durch komplett ungültige Suchworte freihalten, um auch hier eine Verschiebung ganzer Bereiche zunächst zu vermeiden. Sollte dies jedoch nicht mehr möglich sein, so wird gemäß Unteranspruch 5 zumindest eine Datenverschiebung im DRAM weitgehend vermieden. Diese Variante wurde in Bild 1 mit dem Mapping-RAM (MR1) gewählt.According to one particularly advantageous embodiment the invention according to dependent claim 5 finds another, in particular static RAM for determining the address mapping Use, thereby need with dynamic changes the routing table according to new incoming routes via dynamic protocols no data blocks in dynamic RAM are moved, it is sufficient for this, during shifts as a result of priority changes in the TCAM the mapping of the index values to the DRAM pages and lines in the further static RAM to change. It makes sense to be in the assignment of the TCAM memory initially gaps completely invalid search words To keep clear here, too, a shift of whole areas initially avoid. However, if this is no longer possible, then according to dependent claim 5 at least one data shift in the DRAM largely avoided. This variant was selected in Figure 1 with the mapping RAM (MR1).

Nachdem die Seiten- und Zeilenadresse am dynamischen RAM (DR1) vorliegt, kann nun diesem Speicher der Befehl zum Lesen der selektierten Zeile gegeben werden. Der Vorgang wird erfindungsgemäß durch eine Steuerlogik (CL1) eingeleitet, welche bei Vorliegen des Index und nach durchgeführter Adressumsetzung tätig wird. Für den nun folgenden Suchvorgang innerhalb der Zeile kann diese entweder offengehalten werden oder es wird der gesamte Zeileninhalt mittels eines Burst Modus in ein Zwischenregister oder Zwischenspeicher transferiert und sogleich der Precharge zur Vorbereitung des nächsten Zugriffs ausgelöst.After this the page and row address is present at the dynamic RAM (DR1), Now this memory can be given the command to read the selected line become. The process is inventively by a control logic (CL1) initiated, which in the presence of the index and after executed address translation becomes active. For the Now following search within the line can do this either be kept open or it will be the entire contents of the line a burst mode into an intermediate register or cache transferred and immediately the precharge to prepare for the next access triggered.

Hier zeigt sich der besondere Vorteil der Erfindung: Durch die eindeutige Zuordnung eines Clusters von Einträgen auf eine Zeile des DRAM Speichers werden weitere zeitaufwendige Zugriffe vermieden, trotzdem kann preisgünstiger DRAM Speicher zum Halten einer extrem großen Tabelle verwendet werden. Die langsame Zeilenzugriffsgeschwindigkeit des DRAM ist somit entschärft.Here shows the particular advantage of the invention: By the unique Assignment of a cluster of entries to a row of the DRAM Memory is avoided further time consuming access, nevertheless can be cheaper DRAM memory can be used to hold an extremely large table. The slow line access speed of the DRAM is thus defused.

Nachdem sich der Zeileninhalt nun im schnellen Zugriff befindet, kann innerhalb dieser Zeile die Suche nach der Zieladresse fortgesetzt werden. Im in Bild 1 gezeigten Beispiel macht dies eine Suchmaschine (SE1), diese stellt auch die Weiterleitungsdaten für das Paket bereit. Genauso ist jedoch der Einsatz der Haupt-CPU des Routers denkbar. Diese ist zumeist ohnehin zur Pflege der Datenbestände in den verschiedenen Speicherbaugruppen erforderlich. Gemäß Unteranspruch 6. sind die Routingziele als Bereiche abgelegt, wobei für die weitere Suche prinzipiell nur eine Bereichsgrenze oder ein Trennwert benötigt wird.After this The contents of the line can now be accessed quickly This line continues the search for the destination address. In the example shown in Figure 1, this makes a search engine (SE1), it also provides the forwarding data for the package. Just like that However, the use of the main CPU of the router is conceivable. These is usually required anyway for the maintenance of the data in the various memory modules. According to dependent claim 6. The routing destinations are filed as areas, taking for further search In principle, only one range limit or one cut-off value is required.

Eine weitere Möglichkeit ist die unmittelbare Ablage der Startadresse eines Zieladressblocks und der Größe dieses Blocks, wobei insbesondere die Codierung der Anzahl der gültigen Adressbits in der gängigen IP-Prefix-Notation gemäß Unteranspruch 6. sinnvoll ist.A another possibility is the immediate storage of the start address of a destination address block and the size of this Blocks, in particular the coding of the number of valid address bits in the common IP prefix notation according to dependent claim 6. makes sense.

Besonders vorteilhaft ist letztere Codierung in Zusammenspiel mit einem parallelen Vergleicher gemäß Unteranspruch 10. Eine besonders hohe Suchgeschwindigkeit ergibt ein unmittelbar auf dem DRAM integriertes paralleles ternäres Register, welches über die – entsprechend der Anzahl der in der Zeile gespeicherten Adresseinträge wiederholt aneinandergereihte – gesuchte Adresse, gegebenenfalls zuzüglich mittels Maskierung übersprungener Datenfelder, abgefragt wird. Über Prioritätsencoder kann der übereinstimmende Bereich ermittelt werden, hieraus folgt unmittelbar der gesuchte Eintrag.Especially advantageous is the latter coding in interaction with a parallel Comparator according to dependent claim 10. A particularly high search speed results in an immediate on the DRAM integrated parallel ternary register, which over the - accordingly the number of address entries stored in the line strung together - searched Address, if necessary plus skipped by masking Data fields, is queried. about priority encoder may be the same Determined area, from which immediately follows the sought Entry.

Jedoch läßt sich auch mit marktüblichen Standard-Speicherbausteinen eine schnelle Suche innerhalb der selektierten DRAM Zeile durchführen, ein vorteilhafter Weg ist mit der sortierten Ablage und einer Binärsuche in Unteranspruch 8. beschrieben.however let yourself also with commercially available standard memory modules perform a quick search within the selected DRAM line Advantageous way is with the sorted bin and a binary search in Subclaim 8. described.

Besonders einfach gestaltet sich eine Suche in Hardware, wenn gemäß Unteranspruch 9. beispielsweise immer zwei Bits der relativen Adresse des Eintrags in der DRAM Zeile ersetzt werden.Especially simply designed a search in hardware, if according to dependent claim 9. For example, always two bits of the relative address of the entry be replaced in the DRAM line.

Ein Beispiel soll dies verdeutlichen: Gegeben sei eine relative binäre Startadresse 1000. Sollte der erste Vergleich eine Übereinstimmung ergeben, so ist die Suche beendet. Bei einem gesuchten Datenwort, welches kleiner ist als der Eintrag an der Startadresse, werden die obersten beiden Bits durch das Muster 01 ersetzt, somit ergibt sich 0100 als nächste Adresse für einen zu testenden Eintrag. Bei einem größeren Datenwort werden hingegen die obersten beiden Bits durch das Muster 11 ersetzt, somit entsteht 1100 als nächste Testadresse. Im ersteren Fall kann wieder unter 0100 direkt ein Treffer erzielt werden, oder es wird, jetzt um ein Bit nach rechts geschoben, die Adresse durch Ersetzung nach dem gleichen Schema, jetzt aber für das zweit und drittwertigste Bit, zu 0010 bei kleinerem Suchwort oder 0110 manipuliert. Im zweiten Fall wird, so kein direkter Treffer erzielt wurde, auf 1010 bei kleinerem Suchwort oder auf 1110 weitergesucht. In diesem Fall ginge es ohne Treffer bei 1101 oder 1111 weiter, danach ist die Suche abgeschlossen.One Example should clarify this: Given is a relative binary start address 1000. If the first comparison results in a match, then the search is over. For a searched data word, which is smaller is considered the entry at the start address, the top two Replaced by the pattern 01, so 0100 results as the next address for one to be tested entry. For a larger data word, on the other hand replaced the top two bits by the pattern 11, thus arises 1100 next Test address. In the former case can again directly under 0100 a Hits are made, or it's shifted right by one bit, the address by substitution according to the same scheme, but now for the second and third valued bits, to 0010 if the search term is smaller or 0110 manipulated. In the second case, no direct hit is achieved was moved on to 1010 with a smaller keyword or 1110. In this case, it would go on without hits at 1101 or 1111, then the search is completed.

Die relative Adresse 0000 wird bei diesem Verfahren nie erreicht, es liegt auf der Hand, diese zum Abspeichern des Default Eintrages gemäß Unteranspruch 12 zu verwenden.The relative address 0000 is never reached in this procedure, it is obvious, this to save the default entry according to dependent claim 12 to use.

Eine andere Möglichkeit ist die Verwendung einer Hash-Funktion gemäß Unteranspruch 14. Im einfachsten Fall eines linearen Hashes bietet sich hier an, mittels Barrel-Shifter das erste Bit, welches infolge Maskierung nicht mehr durch den TCAM Eintrag eindeutig bestimmt ist, als oberstes Bit der zeilenrelativen Adresse zu verwenden, die auf dieses Bit folgenden Bits werden entsprechend mit verschoben. Hierdurch kann beispielsweise der TCAM Eintrag einen /20 IP Prefix abdecken, der Hash Key könnte dann bei beispielsweise 64 Einträgen pro DRAM Zeile jeweils ein /26 Netz codieren, wobei hingegen ein /25 Netz auf zwei /26 Einträge verteilt würde.A different possibility is the use of a hash function according to dependent claim 14. The simplest Case of a linear hash offers itself here, by means of barrel shifter the first bit, which due to masking no longer by the TCAM Entry is uniquely determined as the topmost bit of the line-relative Address to use following bits following this bit accordingly with postponed. As a result, for example, the TCAM entry a / 20 IP Prefix cover, the hash key could then be for example 64 entries code one / 26 network per DRAM line, whereas one / 25 Network on two / 26 entries would be distributed.

Eine weitere Möglichkeit ist die Kombination eines Burst Transfers gemäß Unteranspruch 15. mit einer sequentiellen Suche gemäß Unteranspruch 16., wobei sich dieses Verfahren nur bei kleineren DRAM Zeilenlängen und schnellen DRAM's anbietet, da ansonsten die sequentielle Suche zuviel Zeit in Anspruch nimmt.A another possibility is the combination of a burst transfer according to dependent claim 15 with a Sequential search according to dependent claim 16., this process only works for smaller DRAM line lengths and fast DRAM's otherwise the sequential search takes too much time takes.

Selbstverständlich kann die hier beschriebene Zieladresse auch weitere Daten codiert enthalten, beispielsweise Informationen über die Auswahl einer aus mehreren bereitstehenden Routingtabellen oder über einen Protokolltyp, eine gewünschte Serviceklasse oder Dienstleistungsqualität oder Datenwegbandbreite.Of course you can the target address described here also contain further data encoded, for example information about the selection of one of several available routing tables or one Protocol type, a desired Service class or service quality or data path bandwidth.

Generell eignet sich die Erfindung nicht nur zur Ermittlung von Zielen von Datenpaketen, naheliegend ist zunächst die Mitbenutzung einer solchen Einrichtung in einem Router zur Realisierung von Filterlisten für bestimmte Quell- und Zieladressen oder Protokolle, hier ist auch eine gestaffelte mehrfache Suche in der ausgewählten DRAM Zeile möglich.As a general rule The invention is not only suitable for determining targets of Data packets, obvious is first the shared use of a such device in a router for the realization of filter lists for certain Source and destination addresses or protocols, here is also a staggered multiple search in the selected DRAM line possible.

Des weiteren ist die Anwendung als Datenbankprozessor denkbar, oder auch die Verwendung als Zusatzeinheit einer Zentraleinheit (CPU) eines Rechners zur Unterstützung der Garbage Collection, wie im folgenden Beispiel beschrieben:
Es wird ein konventioneller Rechner eingesetzt, mit einem speziellen Befehl zum Speichern von Zeigern auf Datenblöcke. Hierbei signalisiert die Haupt-CPU bei einem Schreibvorgang eines Zeigers in den konventionellen Speicher über eine Leitung die Zeigereigenschaft, die Zusatzeinheit kann sodann die Zieladresse des Zeigers in einem freien Eintrag einer DRAM Zeile der Erfindung ablegen, welcher durch die Kombination aus Zieladresse und Zeigeradresse definiert wird. Wird nun der Zeiger verändert, so kann dieser schnell durch vorheriges Lesen der alten Zieladresse und Rekombination mit der Zeigeradresse zum Suchwort wieder ausgetragen werden. Im Fall der Untersuchung eines Speicherblocks im Rahmen der Garbage Collection kann jetzt die Basisadresse dieses Blocks als mittels Maske auf lediglich die Zieladresse verkürztes Suchwort genutzt werden, die Erfindung stellt dann eine Auflistung der betroffenen Zeiger bereit, welche bei einer Verschiebung dieses Blocks zu korrigieren sind. Bei einem Nullergebnis der Suche wird der Block nicht mehr referenziert und kann freigegeben werden.
Furthermore, the application as a database processor is conceivable, or even the use as an optional unit of a central processing unit (CPU) of a computer to support garbage collection, as described in the following example:
A conventional computer is used, with a special command to store pointers to data blocks. Hereby, when a pointer is written to the conventional memory, the main CPU signals the pointer property via a line, the ancillary unit can then store the destination address of the pointer in a free entry of a DRAM line of the invention, which is defined by the combination of destination address and pointer address , Now, if the pointer is changed, it can be quickly discharged again by previously reading the old destination address and recombining with the pointer address to the search word. In the case of examining a memory block in the context of garbage collection, the base address of this block can now be used as a search term shortened to only the destination address by means of a mask; the invention then provides a list of the affected pointers which are to be corrected when this block is moved. With a zero result of the search, the block is no longer referenced and can be released.

Claims (16)

Datenverarbeitungseinrichtung zur schnellen Suche von Datenworten in einer Datenbasis, welche sich durch einen Cluster- oder Sortieralgorithmus zu Gruppen zusammenfassen lassen, die Datenworte mit möglichst vielen gleichen Bits oder ähnlicher Länge beinhalten – im folgenden Cluster-Gruppen genannt –, dadurch gekennzeichnet, dass (1) jeweils mindestens eine Cluster-Gruppe in jeweils mindestens einer Seite oder Zeile eines dynamischen RAM Speichers – im folgenden als DRAM bezeichnet – abgelegt ist, auf die nach einmaliger Auswahl der Seiten- oder Zeilenadresse ein gegenüber der vollständigen Adressierung beschleunigter Zugriff möglich ist, (2) zu jeder Cluster-Gruppe in mindestens einem ternären inhaltsadressierbaren Speicher – im folgenden als TCAM bezeichnet – mindestens ein passender Sucheintrag existiert, welcher gleiche Bits oder andere gleichartige Eigenschaften der Datenworte einer Cluster-Gruppe als ternär definierte Bits (0,1) enthält, ungleiche Bits der Datenwörter der Cluster-Gruppe hingegen durch den dritten Zustand (X) aus einer Suche ausgeklammert werden, (3) das zu findende Datenwort zunächst an mindestens einen solchen TCAM-Speicher zur Abfrage angelegt wird, das TCAM ordnet durch parallelen Vergleich des angelegten Datenwortes mit seinem Inhalt dem Datenwort – sofern ein passender Sucheintrag existiert – mindestens einen Index eines übereinstimmenden Sucheintrags des TCAM zu, wobei der Vergleich infolge der Ternäreigenschaft des TCAM auf die für den jeweiligen Cluster gleichen definierten Bits (0,1) pro TCAM Sucheintrag beschränkt wird, (4) der so vom TCAM ermittelte und ausgegebene Index über mindestens eine Adresszuordnung mindestens einer Seiten- oder Zeilenadresse des DRAM zugeordnet wird und mindestens eine so adressierte Seite oder Zeile des DRAM nach Bereitstellung des Index und nach Ausführung der Adresszuordnung durch eine mit der erfolgreichen Bereitstellung des Index gestartete Ablaufsteuerung selektiert und zum Lesen geöffnet wird, (5) in den so bereitgestellten Daten der DRAM Seite oder Zeile eine weitere konventionelle Suche nach mindestens einem zu dem Datenwort passenden Eintrag durchgeführt wird.Data processing device for quickly searching for data words in a database, which can be grouped by a clustering or sorting algorithm into groups containing data words with as many identical bits or similar lengths as possible - hereinafter referred to as cluster groups -, characterized in that (1) in each case at least one cluster group is stored in at least one page or row of a dynamic RAM memory - hereinafter referred to as DRAM - to which, after a single selection of the page or row address, an access accelerated compared to the complete addressing is possible (2) at least one suitable search entry exists for each cluster group in at least one ternary content-addressable memory - hereinafter referred to as TCAM - which contains the same bits or other similar properties of the data words of a cluster group as ternary-defined bits (0,1), On the other hand, unequal bits of the data words of the cluster group are excluded from a search by the third state (X). (3) The data word to be found is first applied to at least one such TCAM memory for polling, which TCAM arranges by parallel comparison of the applied ones Data word with its content the data word - if a matching search entry exists - at least one index of a matching search entry of the TCAM, the comparison due to the ternary nature of the TCAM is limited to the same for the respective cluster defined bits (0,1) per TCAM search entry (4) the index thus determined and output by the TCAM is allocated via at least one address assignment of at least one page or row address of the DRAM and at least one so-addressed page or row of the DRAM after provision of the index and after execution of the address assignment by one with the successful one Provision of index started expiration euerung is selected and opened for reading, (5) in the thus provided data of the DRAM page or line another conventional search for at least one matching the data word entry is performed. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass diese zur Suche von Netzwerk-Adressbereichen anhand einer gegebenen Adresse, hier wiederum bevorzugt zur schnellen Ermittlung der Weiterleitungsinformationen eines Datenpaketes in einem Router oder Switch in einem Datennetzwerk anhand der Zieladresse des Datenpaketes, eingesetzt wird.Device according to claim 1, characterized to search network address ranges based on a given address, Here again preferred for the rapid determination of the forwarding information a data packet in a router or switch in a data network based on the destination address of the data packet is used. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass die Adresszuordnung eine lineare Zuordnung des Index zur Seiten- oder Zeilenadresse ist, welche durch direkte Zuordnung der Index-Signalleitungen zu den Adressleitungen des dynamischen RAM Speichers hergestellt wird.Device according to claim 1, characterized that the address mapping is a linear mapping of the index to the page or row address is, which by direct assignment of the index signal lines to the address lines of the dynamic RAM memory becomes. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass die Adresszuordnung durch mindestens eine arithmetische Recheneinheit aus dem Index mittels vorgegebener Rechenvorschrift vorgenommen wird.Device according to claim 1, characterized that the address assignment by at least one arithmetic arithmetic unit made from the index by means of predetermined calculation rule becomes. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass die Adresszuordnung mittels mindestens eines weiteren Zuordnungsspeichers, insbesondere statischen RAM Speichers, dadurch hergestellt wird, dass der Index als Adresse an den Zurdnungsspeicher angelegt wird und das so adressierte Datenwort in diesem Zuordnungsspeicher die Seiten- oder Zeilenadresse des DRAM beinhaltet.Device according to claim 1, characterized that the address assignment by means of at least one further allocation memory, in particular static RAM memory, which is produced by the index is created as an address to the memory allocation and so addressed Data word in this allocation memory the page or row address of the DRAM. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass die DRAM Seiten Bereichsgrenzen, insbesondere Ober- oder Untergrenzen oder zur Trennung von zwei Bereichen geeignete Zwischenwerte (Teilungswerte) enthalten.Device according to claim 1, characterized that the DRAM pages range limits, especially upper or lower bounds or suitable intermediate values (division values) for the separation of two ranges contain. Einrichtung nach Anspruch 1. oder 2., dadurch gekennzeichnet, dass die Einträge in der Seite oder Zeile des DRAM Adressprefixe bestehend aus Basisadresse und Prefixlänge – letztere insbesondere codiert als Anzahl der gültigen Adressbits – sind, wobei die Prefixlänge indirekt die Größe des Adressbereichs des jeweiligen Eintrags über deren dualen Logarithmus codiert. Alternativ kann die Prefixlänge auch als Bitmaske, welche die adressrelevanten Bits codiert, abgelegt sein.Device according to claim 1 or 2, characterized that the entries in the page or line of the DRAM address prefix consisting of base address and prefix length - the latter coded in particular as number of valid address bits - are, where the prefix length indirectly the size of the address range of the respective entry whose dual logarithm encodes. Alternatively, the prefix length can also stored as a bit mask, which encodes the address-relevant bits be. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass die zugeordneten Einträge in der Seite oder Zeile des DRAM sortiert abgelegt sind und die konventionelle Suche eine Binärsuche oder eine Baumsuche ist.Device according to claim 1, characterized that the associated entries are stored in the page or row of the DRAM and the conventional search a binary search or a tree search. Einrichtung nach Anspruch 1. oder 7. oder 8., dadurch gekennzeichnet, dass die zugeordneten Einträge in der jeweiligen Seite oder Zeile des DRAM dergestalt abgelegt sind, dass diese im Rahmen einer binären Suche durch iterative Bildung der seiten- oder zeilenrelativen (Spalten-) Adresse gefunden werden können. Hierzu wird ausgehend von einer Startadresse schrittweise jeweils eine bitweise Adressveränderung, insbesondere an benachbarten Bitpaaren ausgehend vom höchstwertigen Adressbit, dergestalt durchgeführt, dass zunächst ein Vergleich des gesuchten Datenwortes mit dem zu diesem Zeitpunkt adressierten Eintrag vorgenommen wird und, sofern nicht unmittelbar eine Übereinstimmung festgestellt wird, abhängig vom Vergleichsergebnis eine Ersetzung an der zu dieser Iteration gehörenden Ersetzungsstelle im Adresswort gemäß einer festgelegten Ersetzungsregel vorgenommen wird und daraufhin der nächste Iterationsschritt gestartet wird.Device according to claim 1 or 7 or 8, characterized characterized in that the associated entries in the respective page or line of the DRAM are stored in such a way that these in the frame a binary one Search by iterative formation of the page or line relative (column) Address can be found. For this purpose, starting from a starting address step by step a bitwise address change, in particular on adjacent bit pairs starting from the most significant Address bit, performed in this way, that first a comparison of the searched data word with that at this time addressed entry and, if not immediately a match is determined, depending from the comparison result a replacement at the to this iteration belonging Replacement point in the address word according to a fixed substitution rule is made and then the next iteration step started becomes. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass zur schnelleren Suche des zu findenden Datenwortes nach dem Zugriff auf die Seiten- oder Zeilenadresse des DRAM parallel mehrere Inhalte der so adressierten Seite oder Zeile des DRAM in eine parallele Vergleichseinheit geleitet werden.Device according to claim 1, characterized that for faster search of the data word to be found after the Access to the page or row address of the DRAM in parallel multiple Contents of the thus addressed page or row of the DRAM in a parallel Comparative unit to be conducted. Einrichtung nach Anspruch 10., dadurch gekennzeichnet, dass es sich bei der Vergleichseinheit wiederum um ein ternäres Register oder um einen weiteren Ternärspeicher handelt, dieser kann auch in Form eines Cache Speichers auf dem DRAM Chip selbst integriert sein.Device according to claim 10, characterized again, the comparison unit is a ternary register or another ternary storage This can also be in the form of a cache memory on the DRAM chip itself integrated. Einrichtung nach Anspruch 1. oder 6. oder 7. oder 8. oder 9., dadurch gekennzeichnet, dass für mindestens eine Seite oder Zeile des DRAM ein weiterer (Default-) Eintrag besteht, welcher im Rahmen der Suche dann ausgewählt wird, falls diese keinen passenderen Eintrag in dieser Zeile findet, insbesondere um eine hierarchische Schachtelung von Adressprefixen auf die Datenbasis effizient abzubilden.Device according to claim 1 or 6 or 7 or 8 or 9, characterized in that for at least one page or line of the DRAM another (default) entry exists, which is then selected in the context of the search, if this no finds more suitable entry in this line, in particular in order to efficiently map a hierarchical nesting of address prefixes onto the database. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass zum Aufbau der Inhaltsdatenworte des TCAM mindestens ein definiertes Teilungskriterium und im Fall dynamischer Änderungen des Datenbankinhalts mindestens ein Zusammenfassungskriterium verwendet wird, welches bei Überlauf einer Seite oder Zeile des DRAM infolge weiterer geforderter Einträge die Verteilung auf weitere Seiten oder Zeilen des DRAM eindeutig festlegt und lediglich die allen Einträgen einer Seite gemeinsamen Bits als gültige Bits in den entsprechenden TCAM Inhaltsdatenworten unmaskiert läßt. Im Fall dynamischer Änderungen stellt das Zusammenfassungskriterium sicher, dass bei Unterbelegung einer Seite oder Zeile diese gegebenenfalls mit ihren logischen Nachbarn zusammengelegt wird.Device according to claim 1, characterized at least one defined one for constructing the content data words of the TCAM Division criterion and in case of dynamic changes of the database content at least one summary criterion is used, which at overflow a page or row of the DRAM due to further required entries the distribution clearly specifies on further pages or lines of the DRAM and only the all entries one page of common bits as valid bits in the corresponding ones TCAM leaves content data unmasked. In case of dynamic changes The merge criterion ensures that under-occupancy a page or line this optionally with their logical Neighbors merged. Einrichtung nach Anspruch 1. oder 6. oder 7., dadurch gekennzeichnet, dass jedem Indexwert des TCAM oder jeder Seiten- oder Zeilenadresse des DRAM ein weiteres Datenwort, welches insbesondere die Startposition des ersten maskierten Bits des jeweiligen TCAM Inhaltsdatenwortes codiert, zur Bildung eines Hash-Schlüssels zugeordnet wird, welcher insbesondere durch Bitverschiebung des Suchdatenwortes mit einer aus der Startposition abgeleiteten Verschiebungsdistanz gewonnen werden kann. Anhand dieses Hash-Schlüssels kann dann in der selektierten Seite oder Zeile des DRAM mindestens ein mit hoher Wahrscheinlichkeit unmittelbar passender Eintrag zum Vergleich herangezogen werden.Device according to claim 1 or 6 or 7, characterized characterized in that each index value of the TCAM or each page or row address of the DRAM another data word, which in particular the starting position of the first masked bit of the respective TCAM Content data word encoded, assigned to form a hash key is, which in particular by bit shifting of the search data word with a displacement distance derived from the starting position can be won. Based on this hash key can then in the selected Side or row of the DRAM at least one with high probability directly matching entry can be used for comparison. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass zur Durchführung der Suche ein Burst-Transfer der Seiten- oder Zeilendaten aus dem DRAM vorgenommen wird.Device according to claim 1, characterized that to carry look for a burst transfer of the page or row data from the DRAM is made. Einrichtung nach Anspruch 15., dadurch gekennzeichnet, dass die Daten im Rahmen des Burst-Transfers unmittelbar einem Vergleicher nacheinander übergeben werden, welcher anhand der Bereichsgrenzen oder anhand der zu einer Maske expandierten Prefixlängenangabe, welche die Differenz aus der Basisadresse des Adressprefix und der gesuchten Adresse maskiert, oder anhand unmittelbar in der Seite oder Zeile abgelegter Maskendaten einen passenden Adressprefix als Ergebnis der Suche ermittelt. Die Differenz wird hierbei insbesondere durch eine Exklusiv-Oder Operation gebildet.Device according to claim 15, characterized that the data in the context of the burst transfer directly a comparator handed over in succession which is based on the range limits or on the basis of a Mask expanded prefix length specification, which is the difference from the base address of the address prefix and the searched Address masked, or based directly on the page or line filed mask data a matching address prefix as a result the search determined. The difference is here in particular by an exclusive or Operation formed.
DE200410006102 2004-02-06 2004-02-06 Data processing device for fast search of data words Expired - Fee Related DE102004006102B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200410006102 DE102004006102B4 (en) 2004-02-06 2004-02-06 Data processing device for fast search of data words

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410006102 DE102004006102B4 (en) 2004-02-06 2004-02-06 Data processing device for fast search of data words

Publications (2)

Publication Number Publication Date
DE102004006102A1 DE102004006102A1 (en) 2005-09-08
DE102004006102B4 true DE102004006102B4 (en) 2005-12-08

Family

ID=34832556

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410006102 Expired - Fee Related DE102004006102B4 (en) 2004-02-06 2004-02-06 Data processing device for fast search of data words

Country Status (1)

Country Link
DE (1) DE102004006102B4 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909440A (en) * 1996-12-16 1999-06-01 Juniper Networks High speed variable length best match look-up in a switching device
EP1155537A1 (en) * 1999-02-26 2001-11-21 Redstone Communications, Inc. Network router search engine using compressed tree forwarding table
US20030179623A1 (en) * 2002-03-20 2003-09-25 Mitsubishi Denki Kabushiki Kaisha CAM cell array, TCAM cell, TCAM cell array, address search memory, and network address search apparatus
US6631419B1 (en) * 1999-09-22 2003-10-07 Juniper Networks, Inc. Method and apparatus for high-speed longest prefix and masked prefix table search
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US20030233516A1 (en) * 2002-06-18 2003-12-18 International Business Machines Corporation Method and system for performing range rule testing in a ternary content addressable memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909440A (en) * 1996-12-16 1999-06-01 Juniper Networks High speed variable length best match look-up in a switching device
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
EP1155537A1 (en) * 1999-02-26 2001-11-21 Redstone Communications, Inc. Network router search engine using compressed tree forwarding table
US6631419B1 (en) * 1999-09-22 2003-10-07 Juniper Networks, Inc. Method and apparatus for high-speed longest prefix and masked prefix table search
US20030179623A1 (en) * 2002-03-20 2003-09-25 Mitsubishi Denki Kabushiki Kaisha CAM cell array, TCAM cell, TCAM cell array, address search memory, and network address search apparatus
US20030233516A1 (en) * 2002-06-18 2003-12-18 International Business Machines Corporation Method and system for performing range rule testing in a ternary content addressable memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NARLIKAR, Girija, ZANE, Francis: CooICAMs: Power Efficient TCAMs for Forwarding Engines. Procee- dings of Infocom 2003, San Francisco, April 2003 *

Also Published As

Publication number Publication date
DE102004006102A1 (en) 2005-09-08

Similar Documents

Publication Publication Date Title
DE60216938T2 (en) SIMULTANEOUSLY SCROLLING DIFFERENT TABLES IN A CONTENTABLE MEMORY
DE602004010922T2 (en) STORAGE AND STROMEFFICIENT MECHANISM FOR FAST TABLE HUNTING
DE19810843B4 (en) Method and access device for determining the storage address of a data value in a storage device
DE2131066C3 (en) Arrangement for addressing a table memory
DE60307241T2 (en) VLAN TABLE MANAGEMENT SYSTEM IN HARDWARE-BASED PACKAGING INSTRUMENTS FOR STORAGE-EFFICIENT READING AND REGISTRATION
US20030093613A1 (en) Compressed ternary mask system and method
DE60313371T2 (en) Use of tree-like "bitmap" data structures
US9269411B2 (en) Organizing data in a hybrid memory for search operations
DE602004011721T2 (en) Access control mechanism for routers
DE60220088T2 (en) CIRCUIT AND METHOD FOR CARRYING OUT VARIABLE WIDE SEARCH OPERATIONS IN A CONTENTABLE MEMORY
DE2807476C2 (en) Storage device with several virtual address spaces
DE10085387T5 (en) Longest match address search method and apparatus
US20060155915A1 (en) Database query processor
DE2712575C2 (en) Associative storage system in highly integrated semiconductor technology
US7539772B2 (en) Method for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
DE2749850B2 (en) Hybrid semiconductor memory with associative page addressing, page exchange and control on the chip
DE10058443A1 (en) Method for classifying data packets converts an original control database into a control outline table format for storing in memory while splitting an input code into multiple sub-codes.
WO1999017226A1 (en) Method for entering or erasing an address in an unbalanced and partially occupied binary tree
DE112017001775T5 (en) Hash table in a pipeline with reduced collisions
DE60032674T2 (en) Method for searching for addresses
DE60038307T2 (en) ASSOCIATIVE MEMORY FOR CACHE STORAGE
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
DE10116639A1 (en) Write/read comparator system for reducing ports in a multi port SRAM buffer memory
DE102021209768A1 (en) CUCKOO HASHING INVOLVES ACCESSING HASH TABLES USING AN AFFINITY TABLE
DE102004006102B4 (en) Data processing device for fast search of data words

Legal Events

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

Effective date: 20130903