DE102004006102A1 - Search machine architecture for a packet network router in which ternary content-addressable memory is combined with conventional dynamic RAM to enable the use of very large routing tables for quick packet forwarding - Google Patents

Search machine architecture for a packet network router in which ternary content-addressable memory is combined with conventional dynamic RAM to enable the use of very large routing tables for quick packet forwarding Download PDF

Info

Publication number
DE102004006102A1
DE102004006102A1 DE200410006102 DE102004006102A DE102004006102A1 DE 102004006102 A1 DE102004006102 A1 DE 102004006102A1 DE 200410006102 DE200410006102 DE 200410006102 DE 102004006102 A DE102004006102 A DE 102004006102A DE 102004006102 A1 DE102004006102 A1 DE 102004006102A1
Authority
DE
Germany
Prior art keywords
address
dram
page
search
memory
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.)
Granted
Application number
DE200410006102
Other languages
German (de)
Other versions
DE102004006102B4 (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

Search machine architecture for a packet network router combines ternary content-addressable memory with conventional dynamic RAM by use of the physical properties of the dynamic RAM. This enables use of very large routing tables to quickly forward packets in a hardware based manner.

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 EP1155537 oder US5909440 beschrieben oder auf eine geschachtelte Darstellung wie in US6631419 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 such as in EP1155537 or US5909440 described or on a nested representation as in US6631419 shown. Conventional memory is nowadays very inexpensive with large capacity available due to considerable progress of semiconductor technology, the common name in the art 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 US6658002 eingesetzt wird.Another approach is the use of simple content-oriented memory, abbreviated CAM (Content Addressable Memory), as it is used in US6658002 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.

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 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, whose function 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 and on the other hand contain the forwarding information such as the address of the next router (Next Hop), the outgoing interface and possibly 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 12 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 12 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 11 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 11 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 these administrative tasks described here is usefully done by running on a control computer Software, the administrative tasks are in contrast to the actual Process of packet forwarding usually not time critical.

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 2. 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 2. by means of direct coupling to 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 3., 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 3., 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 4. 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 4 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 according to the invention according to claim 4. 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 4 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 5. 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 5. 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 9. 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 9. 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 7. 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 Under claim 7. described.

Besonders einfach gestaltet sich eine Suche in Hardware, wenn gemäß Unteranspruch 8. 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 8. 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.An example should clarify this: Gege Let ben be a relative binary start address 1000. If the first comparison results in a match, the search is completed. For a searched data word, which is smaller than the entry at the start address, the top two bits are replaced by the pattern 01, thus results in 0100 as the next address for an entry to be tested. In the case of a larger data word, on the other hand, the top two bits are replaced by the pattern 11, so 1100 is created as the next test address. In the former case, a hit can again be made directly under 0100, or it is now shifted by one bit to the right, the address by replacement according to the same scheme, but now for the second and third most significant bit, 0010 for a smaller keyword or 0110 manipulated. In the second case, if no direct hit was achieved, 1010 is searched for with a smaller search word or 1110. In this case, it would continue 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 11 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 11 to use.

Eine andere Möglichkeit ist die Verwendung einer Hash-Funktion gemäß Unteranspruch 13. 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 13. 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 14. mit einer sequentiellen Suche gemäß Unteranspruch 15., 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 14 with a Sequential search according to dependent claim 15., 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 over a line, the ancillary unit can then store the pointer's destination address in a free entry of a DRAM line of the invention defined by the destination address and pointer address combination , 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 (15)

Datenverarbeitungseinrichtung zur schnellen Suche von Datenworten in einer Datenbasis, insbesondere 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, dadurch gekennzeichnet, dass (1) das zu findende Datenwort, insbesondere die Zieladresse, zunächst an mindestens einen ternären inhaltsadressierbaren Speicher (im folgenden TCAM genannt) zur Abfrage angelegt wird, das TCAM ordnet durch parallelen Vergleich des angelegten Datenwortes mit seinem Inhalt dem Datenwort mindestens einen Index eines übereinstimmenden Inhaltsdatenwortes des TCAM zu, wobei der Vergleich infolge der Ternäreigenschaft des Speichers auf ausgewählte Bits pro Inhaltsdatenwort beschränkt wird und wobei im Fall keines derart teilweise übereinstimmenden Inhaltsdatenwortes dieser Suchvorgang beendet wird, (2) der so vom TCAM ermittelte und ausgegebene Index über mindestens eine Adresszuordnung mindestens einer Seiten- oder Zeilenadresse eines dynamischen RAM Speichers (im folgenden auch bei synchronen dynamischen Speicher allgemein DRAM genannt) zugeordnet wird, (3) mindestens eine so adressierte Seite oder Zeile des DRAM nach Bereitstellung des Index und nach Ausführung der Adresszuordnung durch eine Steuerlogik, insbesondere eine mit der erfolgreichen Bereitstellung des Index gestartete Ablaufsteuerung, selektiert und zum Lesen – insbesondere durch Ladungstransfer in die Leseverstärker oder Zeilenregister – geöffnet wird, (4) in den so bereitgestellten Daten der Seite oder Zeile eine weitere konventionelle Suche nach mindestens einem zu dem Datenwort passenden Eintrag durchgeführt wird. Der Zugriff auf diese Daten kann dabei entweder direkt oder über mindestens eine Zwischenlogik oder über mindestens ein Zwischenregister oder über mindestens einen Cache-Speicher erfolgen.Data processing device for rapid search of data words in a database, in particular for the search of network address ranges based on a given address, here again preferably for quickly determining the forwarding information of a data packet in a router or switch in a data network based on the destination address of the data packet, characterized in that (1) the data word to be found, in particular the destination address, initially to at least one ternary content addressable memory (hereinafter called TCAM) is applied for query, the TCAM assigns by parallel comparison of the applied data word with its contents the data word at least one index of a matching content data word the TCAM, wherein the comparison is limited to selected bits per content data word due to the ternary nature of the memory, and in the case of no such partially matching content data word, this search is terminated, (2) the index thus determined and output by the TCAM via at least one address assignment of at least one page or row address of a dynamic RAM memory (hereinafter also generally referred to as synchronous dynamic memory DRAM (3) at least one page or row of the DRAM addressed after the index has been provided and after execution of the address assignment by a control logic, in particular a sequence control started with the successful provision of the index, selected and read - in particular by charge transfer in the sense amplifier or row register - is opened, (4) in the thus provided data of the page or line, a further conventional search for at least one entry matching the data word is performed. The access to this data can be done either directly or via at least one intermediate logic or at least one intermediate register or at least one cache memory. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass die Zuordnung zu (2) 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 assignment to (2) is a linear assignment 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 Zuordnung zu (2) durch mindestens eine arithmetische Recheneinheit aus dem Index mittels vorgegebener Rechenvorschrift vorgenommen wird.Device according to claim 1, characterized that the assignment to (2) 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 Zuordnung zu (2) 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 assignment to (2) by means of at least one further assignment memory, especially static RAM memory, is produced thereby, that the index is created as an address to the branch memory and the data word thus addressed in that allocation memory Includes page or row address of the DRAM. Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass die Einträge zu (4) in der Seite oder Zeile des DRAM Bereichsgrenzen, insbesondere Ober- oder Untergrenzen sind oder zur Trennung von zwei Bereichen geeignete Zwischenwerte (Teilungswerte) sind.Device according to claim 1, characterized that the entries to (4) in the page or row of the DRAM area boundaries, in particular Upper or lower limits are or for the separation of two areas are suitable intermediate values (division values). Einrichtung nach Anspruch 1., dadurch gekennzeichnet, dass die Einträge zu (4) 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, characterized that the entries to (4) in the page or row of the DRAM address prefix from base address and prefix length - the latter in particular encoded as the 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 zu (4) 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 to (4) are stored sorted in the page or row of the DRAM and the conventional search a binary search or a tree search is. Einrichtung nach Anspruch 1. oder 6. oder 7., dadurch gekennzeichnet, dass die zugeordneten Einträge zu (3) 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 6 or 7, characterized characterized in that the associated entries to (3) in the respective Page or line of the DRAM are stored in such a way that this in the Frame of a binary 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 9., 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 9, 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 5. oder 6. oder 7. oder 8., 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 5 or 6 or 7. or 8., characterized in that for at least one side or Line of the DRAM there is another (default) entry which then selected in the context of the search if it does not find a more appropriate entry in this line, in particular, a hierarchical nesting of address prefixes to map efficiently to 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 in that for the construction of the content data words of the TCAM at least one defined division criterion and in the case of dynamic changes of the database content at least one summing criterion is used, which in case of overflow of one page or row of the DRAM due to further required entries distribution to others Sets pages or rows of the DRAM uniquely and leaves only the bits common to all entries of a page unmounted as valid bits in the corresponding TCAM content data words. In the case of dynamic changes, the summary criterion si If a page or line is not used, it may be merged with its logical neighbors. Einrichtung nach Anspruch 1. oder 5. oder 6., 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 5 or 6, 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 14. und 5. oder 14. und 6., 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 claims 14 and 5 or 14 and 6., characterized in that the data in the context of burst transfers immediately be passed to a comparator successively, which is based on the range boundaries or based on the expanded to a mask Prefix length specification, which 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 surgery 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 true DE102004006102A1 (en) 2005-09-08
DE102004006102B4 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
DE102004006102B4 (en) 2005-12-08

Similar Documents

Publication Publication Date Title
DE602004010922T2 (en) STORAGE AND STROMEFFICIENT MECHANISM FOR FAST TABLE HUNTING
DE60216938T2 (en) SIMULTANEOUSLY SCROLLING DIFFERENT TABLES IN A CONTENTABLE MEMORY
DE2131066C3 (en) Arrangement for addressing a table memory
DE19810843B4 (en) Method and access device for determining the storage address of a data value in a storage device
DE60305035T2 (en) ADAPT THE LONGEST PRÄFIX USING TIRE "BITMAP" DATA STRUCTURES
DE2749850C3 (en) Hybrid semiconductor memory with associative page addressing, page exchange and control on the chip
US20030093613A1 (en) Compressed ternary mask system and method
DE60307241T2 (en) VLAN TABLE MANAGEMENT SYSTEM IN HARDWARE-BASED PACKAGING INSTRUMENTS FOR STORAGE-EFFICIENT READING AND REGISTRATION
DE2807476C2 (en) Storage device with several virtual address spaces
DE69636761T2 (en) SAVING AND RE-RELEASING ORDERED KEY QUANTITIES IN A COMPACT 0-COMPLETE TREE
DE2227882C2 (en) Virtual storage arrangement
DE10085387T5 (en) Longest match address search method and apparatus
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
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
DE10116639A1 (en) Write/read comparator system for reducing ports in a multi port SRAM buffer memory
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
DE69933043T2 (en) METHOD AND DEVICE FOR AN ADAPTIVE GENERATOR OF ADDRESS ENTRY TABLE
DE60217526T2 (en) TERTIARY CAM CELL
DE60114299T2 (en) A method and apparatus for translating IP telecommunications network addresses with a controlled leaky memory
DE102004006102B4 (en) Data processing device for fast search of data words
DE19810784B4 (en) computer system

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