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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
Abstract
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
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
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)
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)
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 |
-
2004
- 2004-02-06 DE DE200410006102 patent/DE102004006102B4/en not_active Expired - Fee Related
Patent Citations (6)
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)
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 |