DE69933043T2 - Verfahren und vorrichtung für einen adaptiven generator von adressennachschlagtabellen - Google Patents

Verfahren und vorrichtung für einen adaptiven generator von adressennachschlagtabellen Download PDF

Info

Publication number
DE69933043T2
DE69933043T2 DE69933043T DE69933043T DE69933043T2 DE 69933043 T2 DE69933043 T2 DE 69933043T2 DE 69933043 T DE69933043 T DE 69933043T DE 69933043 T DE69933043 T DE 69933043T DE 69933043 T2 DE69933043 T2 DE 69933043T2
Authority
DE
Germany
Prior art keywords
address
bits
memory location
lookup table
pointed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69933043T
Other languages
English (en)
Other versions
DE69933043D1 (de
Inventor
Shinkyo San Jose KAKU
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.)
Allied Telesyn International Corp
Original Assignee
Allied Telesyn International Corp
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 Allied Telesyn International Corp filed Critical Allied Telesyn International Corp
Application granted granted Critical
Publication of DE69933043D1 publication Critical patent/DE69933043D1/de
Publication of DE69933043T2 publication Critical patent/DE69933043T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Adressenverweistabellen, die in Computer-Netzwerk-Komponenten verwendet werden und im Besonderen ein Verfahren und eine Vorrichtung zur Erstellung einer solchen Adressenverweistabelle.
  • Beschreibung des Gebiets der Erfindung
  • Lokale Netzwerke werden regelmäßig zur Vernetzung mehrerer Knoten, wie etwa Personal-Computern, Arbeitsplatzrechnern, Servern, etc. verwendet, um den Knoten den Austausch von Informationen und Ressourcen untereinander zu ermöglichen. Für kleinere Netzwerke kann eine einfache Konfiguration verwendet werden, in der jeder Knoten direkt mit einem Netzwerk-Backbone gekoppelt ist. Für komplexere Netzwerke mit größeren Knotenanzahlen ist die direkte Kopplung jedoch äußerst ineffizient. Damit die Effizienz der komplexeren Netzwerke gesteigert wird, wird oft das Verfahren der „Segmentierung" angewendet.
  • In Übereinstimmung mit dem Segmentierungsverfahren werden die verschiedenen Knoten im Netzwerk in eine Vielzahl von Gruppen, als „Segmente" bezeichnet, eingeteilt, wobei üblicherweise jedes Segment eine Vielzahl an Knoten umfasst, die regelmäßig miteinander kommunizieren. Alle Knoten eines Segments sind miteinander in Form eines Subnetzwerks miteinander vernetzt und das Segment ist mit dem Netzwerk-Backbone durch einen einzigen Segmentport gekoppelt. Durch die Kopplung der Knoten mit dem Netzwerk und aneinander auf diese Art und Weise, wird die Konnektivität des Netzwerk-Backbones erhalten, während die Anzahl der tatsächlich mit dem Backbone gekoppelten Ports gering gehalten wird. Für noch komplexere Netzwerke wird jedes Segment in Subsegmente aufgeteilt und diese Subsegmente werden wiederum in Super-Subsegmente eingeteilt, um eine komplexe Hierarchie zu schaffen. Das Segmentierungsprinzip kann auf jedes gewünschte Niveau erweitert werden. Es hat sich gezeigt, dass auf diese Art und werden. Es hat sich gezeigt, dass auf diese Art und Weise erstellte Segmentierungsknoten die Effizienz eines Netzwerks verbessern.
  • Eine herkömmlicherweise in Segmentierungsanwendungen verwendete Vorrichtung ist eine Brücke. Die Brücke stellt eine Verbindung zwischen zwei Einheiten dar. Die miteinander gekoppelten Einheiten können zwei separate Segmente oder ein Netzwerk und ein Segment sein. Derzeit ist eine große Vielfalt an Brücken vorhanden, wobei viele Brücken Universalbrücken mit zwei Seiten sind und jede Seite mit einer großen Anzahl Knoten sowie anderen Brücken zugeteilt ist. Eine herkömmliche Brücke umfasst einen ersten Controller, welcher einer ersten Seite der Brücke zugeteilt ist und einen zweiten Controller, der einer zweiten Seite der Brücke zugeteilt ist. Eine Brücke ist jedoch nur ein Beispiel für eine Netzwerkkomponente, die zur Kopplung einer Vielzahl an Knoten mit einem Netzwerk verwendet wird. Andere Netzwerkkomponenten sind beispielsweise Hubs, Verteiler, Router, Gateways, etc.
  • Die verschiedenen Netzwerkkomponenten, die zur Kopplung einer Vielzahl an Knoten zu einem Netzwerk verwendet werden, umfassen herkömmlicherweise eine Vielzahl an Arbeitsports zur Kopplung mit einer Vielzahl an Knoten, eine Adressenverweistabelle zur Speicherung der Adressen der Arbeitsports, einen Anschlussport zur Kopplung mit einem Netzwerk sowie einen Controller für eingehende Pakete und einen für ausgehende Pakete. Während des Betriebs, erhalten diese Komponenten ein eingehendes Datenpaket vom Netzwerk durch den Anschlussport. Das Paket wird dann zum weiter zum Controller für Eingangspakete geleitet. Der Controller extrahiert aus dem Paket heraus eine Zieladresse und stellt fest, ob die Adresse einer der in der Adressenverweistabelle gespeicherten Adressen entspricht. Die Adressenverweistabelle enthält Informationen, die den spezifischen Port anzeigen, dem jede Adresse zugeordnet ist. Wenn eine entsprechende Adresse gefunden wurde, dann wird ermittelt, dass das Paket für einen der Arbeitsports bestimmt ist und als Reaktion darauf, sendet der Controller das eingehende Paket zu diesem Arbeitsport.
  • Die Zieladresse, die aus dem Packet extrahiert wird, umfasst herkömmlicherweise eine große Anzahl an Bits, etwa 48-Bits. Obwohl die gesamten 48-Bit-Zieladressen und die entsprechenden Informationen über den Port üblicherweise als Daten in der Adressenverweistabelle gespeichert werden, werden die gesamten 48-Bit-Zieladressen normalerweise nicht dazu verwendet, auf die Adressenverweistabelle zu weisen oder auf Speicherpositionen darin zu zeigen. Mit anderen Worten, die gesamten 48-Bit-Zieladressen werden herkömmlicherweise nicht zum Anzeigen der spezifischen Speicherpositionen und -plätze innerhalb der Adressenverweistabelle verwendet, in der die Zieladressen und entsprechenden Portinformationen gespeichert sind. Die gesamten 48-Bit werden nicht zum Zeigen der Speicherpositionen innerhalb der Adressenverweistabelle benutzt, da dafür eine sehr umfangreiche Adressenverweistabelle erforderlich wäre, die den Betrieb unpraktisch werden ließe.
  • Statt dessen wird auf die Speicherpositionen innerhalb der Adressenverweistabelle verwiesen oder auf sie gezeigt und zwar durch einen Teil der gesamten 48-Bits der Zieladressen. Durch die Verwendung einer geringeren Anzahl an Bits, kann die Größe der Adressenverweistabelle auf eine praktischere Größe minimiert werden, wie etwa im Patent Nr. US-A-4.922.503 offenbart wurde. Ein Verfahren, das zum Verweisen auf die Adressenverweistabelle mittels eines Teils der 48-Bit-Zieladressen verwendet wird, komprimiert zuerst die 48-Bit-Zieladressen zu einer komprimierten Adresse mit weniger als 48-Bits. Beispielsweise kann die 48-Bit-Zieladresse zu einer komprimierten Adresse mit 32-Bits komprimiert werden. Dann wird eine Anzahl an benachbarten Bits, weniger als die gesamten 32-Bits, der komprimierten Adresse zum Verweisen auf die Adressenverweistabelle verwendet. So können etwa die 5 niederwertigsten Bits der 32-Bits der komprimierten Adresse zum Zeigen auf die Adressenverweistabelle verwendet werden.
  • Die Verwendung der beispielsweise 5 niederwertigsten Bits der 32-Bits der komprimierten Adresse zum Verweisen auf die Adressenverweistabelle funktioniert gut, sobald die Adressenverweistabelle erstellt wurde. Dieses Verfahren kann jedoch Probleme verursachen, wenn die Adressenverweistabelle erstellt wird. Die Adressenverweistabelle wird im Besonderen üblicherweise erstellt, wenn während des Betriebs Datenpakete empfangen werden. Wenn ein Datenpaket empfangen wird, wird die 48-Bit-Zieladresse extrahiert, die komprimierte Adresse mit 32-Bits erstellt, die 5 nie derwertigsten Bits aus den 32-Bits der komprimierten Adresse ausgewählt und dann die Speicherposition, auf welche die 5 niederwertigsten Bits zeigen, überprüft, um festzustellen, ob sie bereits die 48-Bit-Zieladresse und die entsprechenden Portinformationen beinhaltet. Wenn die Speicherposition nicht besetzt ist, wird die 48-Bit-Zieladresse darin gespeichert. Wenn die Speicherposition schon besetzt ist und die Inhalte mit der 48-Bit-Zieladresse übereinstimmen, dann ist es nicht nötig die 48-Bit-Zieladresse zu speichern, da diese schon in der Adressenverweistabelle vorhanden ist. Auf diese Weise wird die Adressenverweistabelle allmählich erstellt.
  • Probleme können auftreten, wenn die von den 5 niederwertigsten Bits angezeigte Speicherposition bereits besetzt ist, aber die Inhalte nicht der 48-Bit-Zieladresse entsprechen. Da die 5 niederwertigsten Bits der 32-Bits der komprimierten Adresse in zwei oder mehreren unterschiedlichen 48-Bit-Zieladressen übereinstimmen können, kann dieser Fall eintreten. Mit anderen Worten, wenn weniger als die gesamten 48-Bits der Zieladresse zum Verweisen auf die Adressenverweistabelle verwendet werden, kann es vorkommen, dass zwei oder mehrere unterschiedliche 48-Bit-Zieladressen auf ein und dieselbe Speicherposition in der Adressenverweistabelle zeigen. Tritt dieser Fall ein, dann muss ein anderes Verfahren zum Verweisen auf die Adressenverweistabelle angewendet werden, da schlussendlich nicht jede 48-Bit-Zieladresse auf die eigene Speicherposition innerhalb der Adressenverweistabelle zeigen wird.
  • Demzufolge wird ein Verfahren sowie eine Vorrichtung zur Erstellung von Adressenverweistabellen benötigt, die sich auf eine Situation anpassen und einstellen kann, in der schließlich zwei oder mehrere unterschiedliche Zieladressen auf ein und dieselbe Speicherposition in der Adressenverweistabelle zeigen.
  • Kurzzusammenfassung der Erfindung
  • Die vorliegende Erfindung stellt ein Verfahren zur Erstellung von Verweistabellen zur Verfügung. Das Verfahren umfasst den Empfang einer Eingabe-Adresse; das Erzeugen einer komprimierten Adresse aus einer Eingabe-Adresse, wobei die komprimier te Adresse weniger Bits aufweist als die Eingabe-Adresse, das Auswählen eines ersten Bitsatzes aus einer komprimierten Adresse; das Bestimmen, ob eine Speicherposition in einer Adressenverweistabelle, auf die der erste Bitsatz zeigt, einen unbesetzten Speicherplatz umfasst; das Bestimmen, ob die Eingabe-Adresse einer der Adressen entspricht, die in der Speicherposition in der Adressenverweistabelle gespeichert sind, auf die der erste Bitsatz zeigt; und das Auswählen eines zweiten Bitsatzes aus der komprimierten Adresse als Reaktion darauf, dass kein unbesetzter Speicherplatz in der Speicherposition vorliegt, auf die der erste Bitsatz zeigt, und dass die Eingabe-Adresse keiner der Adressen entspricht, die in der Speicherposition gespeichert sind, auf die der erste Bitsatz zeigt.
  • Die vorliegende Erfindung stellt ebenfalls eine Verweistabellen-Erstellungsvorrichtung zur Verfügung. Die Verweistabellen-Erstellungsvorrichtung umfasst eine Adressenkomprimierungsvorrichtung, die so konfiguriert ist, dass sie eine Eingabe-Adresse empfängt und eine komprimierte Adresse erzeugt, die weniger Bits als die Eingabe-Adresse aufweist. Eine Schiebelogik ist mit der Adressenkomprimierungsvorrichtung gekoppelt und so konfiguriert, dass ein erster Bitsatz aus der komprimierten Adresse ausgewählt wird. Eine Adressenverweistabelle ist mit der Schiebelogik gekoppelt und umfasst eine Speicherposition, auf die der erste Bitsatz zeigt. Die Speicherposition umfasst zumindest einen Speicherplatz. Eine Steuerzustandvorrichtung ist mit der Schiebelogik so gekoppelt, dass der zweite Bitsatz aus der komprimierten Adresse als Reaktion darauf ausgewählt wird, dass kein nicht besetzter Speicherplatz in der vom ersten Bitsatz angezeigten Speicherposition vorhanden ist und die Eingabe-Adresse mit keiner Adresse übereinstimmt, die in der vom ersten Bitsatz angezeigten Speicherposition gespeichert ist.
  • Ein besseres Verständnis der Charakteristika und der Vorteile der vorliegenden Erfindung wird im Folgenden durch eine detaillierte Beschreibung der Erfindung sowie die beigefügten Zeichnungen erreicht, in denen eine anschauliche Ausführungsform, in der die Grundsätze der Erfindung verwendet wurden, dargestellt wird.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Funktionsdiagramm zur Veranschaulichung einer anpassungsfähigen Verweistabellen-Erstellungsvorrichtung gemäß der vorliegenden Erfindung.
  • 2 ist ein Blockdiagramm zur Veranschaulichung des von der in 1 abgebildeten Adressenverweistabelle verwendeten Adressenverweistabellen-Formats.
  • 3 ist ein Blockdiagramm zur detaillierteren Darstellung des in 2 abgebildeten Verweistabellen-Datenformats.
  • 4 ist ein Blockdiagramm zur Veranschaulichung der Bitauswahl durch die in 1 dargestellte Schiebelogik.
  • Die 5A, 5B und 5C stellen Flussdiagramme zur Veranschaulichung des Arbeitsvorgangs einer in 1 abgebildeten Steuerzustandvorrichtung dar.
  • 6 ist ein Funktionsdiagramm zur Veranschaulichung einer weiteren anpassungsfähigen Verweistabellen-Erstellungsvorrichtung gemäß der vorliegenden Erfindung.
  • 7 ist ein Blockdiagramm zur Veranschaulichung des Adressenverweistabellen-Formats, das von der in 6 dargestellten Adressenverweistabelle verwendet wird.
  • 8 ist ein Flussdiagramm zur Veranschaulichung des Arbeitsvorgangs der in 6 abgebildeten Steuerzustandvorrichtung.
  • Die 9A und 9B sind Blockdiagramme zur Veranschaulichung einer anpassungsfähigen Verweistabellen-Erstellungsvorrichtung, die in den 1 und 6 abgebildet und in Netzwerkkomponenten integriert ist.
  • Detaillierte Beschreibung der Erfindung
  • In 1 ist eine anpassungsfähige Verweistabellen-Erstellungsvorrichtung 20 gemäß der vorliegenden Erfindung dargestellt. Die Verweistabellen-Erstellungsvorrichtung 20 ist besonders nützlich, wenn sie in eine der verschiedenen, oben erwähnten Netzwerkkomponenten (etwa eine Netzwerkbrücke) integriert ist, die zur Kopplung einer Vielzahl an Knoten mit einem Netzwerk (etwa einer lokalen Netzwerk) verwendet werden. Die Verweistabellen-Erstellungsvorrichtung 20 kann in diesen Netzwerkkomponenten zur Erstellung einer Adressenverweistabelle eingesetzt werden.
  • Wie oben beschrieben, empfängt eine Komponente, die zur Kopplung einer Vielzahl an Knoten mit einem Netzwerk verwendet wird, üblicherweise ein eingehendes Datenpaket von einem Netzwerk mithilfe eines Anschlussports. Das Paket wird dann zum Controller für eingehende Pakete weitergeleitet, der aus dem Paket eine Zieladresse extrahiert. Die Verweistabellen-Erstellungsvorrichtung 20 empfängt die extrahierte Zieladresse am Adresseneingangsknoten 22. Die extrahierte Zieladresse, die am Adresseneingangsknoten 22 empfangen wird, kann beispielsweise eine 48-Bit-Eingangs-Adresse sein.
  • Die Verweistabellen-Erstellungsvorrichtung 20 umfasst eine Adressenkomprimierungsvorrichtung 24, die zum Empfangen der Eingabe-Adresse (etwa der extrahierten Zieladresse) aus einem Knoten 22 und zur Erstellung einer komprimierten Adresse daraus, welche weniger Bits als die Eingabe-Adresse aufweist, konfiguriert ist. Die Adressenkomprimierungsvorrichtung 24 kann eine CRC32-Erstellungsvorrichtung sein, die eine 48-Bit-Eingabe-Adresse zu 32-Bit-Daten komprimiert, die hiernach als komprimierte Adresse bezeichnet werden, sowie eine Eingabe-Adresse in einzelne Daten umwandelt.
  • Eine Schiebelogik 26 ist mit dem Ausgang der Adressenkomprimierungsvorrichtung 24 gekoppelt. Die Schiebelogik 26 ist so konfiguriert, dass sie einen Datensatz aus der komprimierten Adresse auswählt, die von der Adressenkomprimierungs-vorrichtung 24 erstellt wurde. Der ausgewählte Datensatz aus der komprimierten Adresse ist vorzugsweise eine vorbestimmte Anzahl an benachbarten Bits aus der komprimierten Adresse. Der ausgewählte Datensatz muss jedoch nicht zwangsweise aus benachbarten Bits bestehen. Wie in der in 1 abgebildeten Ausführungsform zu sehen, wählt die Schiebelogik weiters zehn Bits aus der komprimierten Adresse aus. Es ist hierbei anzumerken, dass die Verwendung von 10 Bits lediglich als Beispiel dient und dass jede Anzahl an Bits aus der komprimierten Adresse ausgewählt werden kann.
  • Eine Adressenverweistabelle 28 ist mit der Schiebelogik 26 gekoppelt. Die Adressenverweistabelle 28 umfasst Speicherpositionen, auf die der erste, aus der komprimierten Adresse von der Schiebelogik 26 ausgewählte Bitsatz gerichtet ist oder zeigt. Der aus der komprimierten Adresse ausgewählte Bitsatz wird im Besonderen als Zugriffsschlüsselzeiger der Adressenverweistabelle 28 verwendet. Wie im Folgenden im Detail beschrieben werden wird, können die Speicherpositionen, hiernach als „Buckets" bezeichnet, in der Adressenverweistabelle 28 einen oder mehrere Speicherplätze beinhalten.
  • Eine Steuerzustandvorrichtung 30 ist mit der Schiebelogik 26 und der Adressenverweistabelle gekoppelt. Die Steuerzustandvorrichtung 29 überwacht den Betrieb der Verweistabellen-Erstellungsvorrichtung 20. So ist die Steuerzustandvorrichtung 30 beispielsweise so konfiguriert, dass eine Schiebesteuereingabe erstellt wird, um die Schiebelogik 26 so zu verschieben, dass ein anderer Datensatz aus der komprimierten Adresse von der Schiebelogik 26 ausgewählt wird. Im Allgemeinen ist diese Verschiebung eine Reaktion darauf, dass kein nicht besetzter Speicherplatz in der Speicherposition (der Adressenverweistabelle) vorhanden ist, auf die der erste, durch die Schiebelogik ausgewählte Bitsatz zeigt, und dass die am Knoten 22 empfangene Eingabe-Adresse mit keiner der Adressen übereinstimmt, die in der Speicherposition gespeichert sind, auf die der erste Bitsatz zeigt.
  • Die Steuerzustandvorrichtung 30 koordiniert die Bestimmung, ob eine Speicherposition, auf die der erste Bitsatz in einer Adressenverweistabelle zeigt, einen unbesetzten Speicherplatz enthält und die Bestimmung, ob die Eingabe-Adresse mit einer der Adressen übereinstimmt, die in der Speicherposition, auf die der erste Bitsatz in der Adressenverweistabelle zeigt, gespeichert sind. Die Bestimmung bezüglich unbesetzter Speicherplätze wird im Folgenden im Detail erläutert. Die Bestimmung, ob die Eingabe-Adresse mit gespeicherten Adressen übereinstimmt, wird durch einen Adressenkomparator 32 erleichtert. Der Adressenkomparator 32 vergleicht die am Knoten 22 empfangene Eingabe-Adresse mit den Inhalten der aktuellen Speicherposition und dem Speicherplatz der Verweistabelle 28. Die Steuerzustandvorrichtung 30 erzeugt das Freigabesignal für den Adressenkomparator 32. Wenn die Eingabe-Adresse mit einem der Inhalte der Adressenverweistabelle 28 übereinstimmt, gibt der Adressenkomparator 32 ein Adressenübereinstimmungssignal 34 aus, um anzuzeigen, dass die Eingabe-Adresse bereits in der Adressenverweistabelle 28 vorhanden ist.
  • Ein 64-Bit-Adresseneingabe-Datenregister 36 ist mit dem Adresseneingangsknoten 22 und der Adressenverweistabelle 28 gekoppelt. Das Register 36 enthält die 48-Bit-Adresseneingabe und die 16-Bit-Kontrolldaten. Die Kontrolldaten werden von der Steuerzustandvorrichtung 30 weg transferiert. Der Inhalt des Registers 36 wird, wenn nötig, in der Adressenverweistabelle 28 gespeichert. Ein 64-Bit-Adressenausgabe-Datenregister 38 ist mit der Adressenverweistabelle 28 und dem Adressenkomparator 32 gekoppelt. Das Register 38 enthält eine 48-Bit-Adresse und 16-Bit-Kontrolldaten, die aus der Adressenverweistabelle 28 gelesen werden.
  • Die Steuerzustandvorrichtung 30 erzeugt ein Lesesignal, um die Daten aus der Adressenverweistabelle 28 abzulesen und in das Adressenausgabe-Datenregister 38 einzulesen, sowie ein Schreibsignal, um Daten aus dem Adresseneingabe-Datenregister 36 in die Adressenverweistabelle 28 zu schreiben. Die Steuerzustandvorrichtung 30 erzeugt ein eindeutiges Befehlssignal, um die Inhalte der Adressenverweistabelle 28 zu löschen. Die Steuerzustandvorrichtung 30 erstellt ebenfalls die Kontrolldaten für jede Eingabe-Adresse in Übereinstimmung mit dem Zustand und den Eingabesignalen.
  • Die Ausführungsform der Verweistabellen-Erstellungsvorrichtung 20, die in 1 abgebildet ist, verwendet eine Adressenverweistabelle vom Bucket-Typ und enthält somit einen Bucket-Indexzeiger 40. Die Adressenverweistabelle vom Bucket-Typ und der Bucket-Indexzeiger 40 sind wahlweise Eigenschaften der vorliegenden Erfindung. Eine Verweistabellen-Erstellungsvorrichtung gemäß der vorliegenden Erfindung umfasst keine Adressenverweistabelle vom Bucket-Typ und der Bucket-Indexzeiger 40 wird unten näher beschrieben.
  • Die Arbeitsweise des Bucket-Indexzeigers 40 lässt sich am besten unter Bezug auf 2 erläutern, die ein Format darstellt, welches für die Adressenverweistabelle 28 verwendet werden könnte. Die Adressenverweistabelle 28 ist in mehrere Speicherpositionen oder „Buckets" aufgeteilt. Wie abgebildet, zeigen Zugriffsschlüssel auf oder verweisen auf die Buckets. Die Zugriffsschlüssel entsprechen dem von der Schiebelogik 26 ausgewählten Bitsatz. Mit anderen Worten, die zehn von der Schiebelogik (aus den 32-Bits der komprimierten Adresse) ausgewählten Bits entsprechen den 10 höchstwertigsten Bits (MSB) des Zugriffsschlüsselzeigers. Durch die Verwendung dieser 10 Bits durch den Zugriffsschlüsselzeiger kann die Adressenverweistabelle 1024 Buckets (oder Speicherpositionen) aufnehmen.
  • Jeder Bucket (oder Speicherposition), wie in 2 abgebildet, umfasst eine Vielzahl an Speicherplätzen. So enthält beispielsweise Bucket #0 acht Speicherplätze 42 für acht verschiedene Eingabe-Adressen. Jeder Bucket wird üblicherweise die gleiche Anzahl an Speicherplätzen aufweisen. Wie in 2 zu sehen, umfasst jeder Bucket z. B. acht Speicherplätze. Auf die Speicherplätze jedes Buckets weist oder zeigt der Bucket-Indexzeiger 40. Der Bucket-Indexzeiger 40 wird herkömmlicherweise genügend Bits umfassen, um die Anzahl an Speicherplätzen in jedem Bucket zu unterstützen. So erzeugt etwa der in 1 dargestellte Bucket-Indexzeiger 40 drei Bits, die jedem Bucket die Unterstützung von bis zu acht Speicherplätzen ermöglichen. Die drei vom Bucket-Indexzeiger 40 erzeugten Bits dienen als die drei niederwertigsten Bits (LSB) des Zugriffsschlüsselzeigers. Da jeder Bucket acht Speicherplätze umfasst, kann die Adressenverweistabelle bis zu 8.192 Adresseneingaben enthalten.
  • In 3 ist ein Beispiel für die Formatierung die in jedem der in 2 dargestellten Speicherplätze gespeicherten Daten abgebildet. Jeder der acht Speicherplätze enthält die ursprünglichen 48-Bits der Eingabe-Adresse mit den 16-Bit-Kontrolldaten. Die 48-Bit-Adressen werden im Besonderen in Bits 0–47 gespeichert, die 16-Bit-Kontrolldaten und die Portinformationen in Bits 48–62 und ein besetztes Bit wird in Bit 63 gespeichert. Wenn ein besetztes Bit eins ist, enthält der Speicherplatz bereits eine Adresse; wenn das besetzte Bit null ist, enthält der Speicherplatz keine Adresse.
  • Wie oben erwähnt, können Probleme auftreten, wenn ein Speicherplatz bereits besetzt ist, aber dessen Inhalte nicht mit der aktuellen 48-Bit-Eingabe-Adresse übereinstimmen. Diese Situation kann eintreten, da zwei oder mehrere unterschiedliche 48-Bit-Eingabe-Adressen zur Folge haben können, dass die Adressenkomprimierungsvorrichtung 24 die gleiche Ausgabe erstellt. Wenn dies eintritt, wird der Bucket-Indexzeiger 40 um eins zum nächsten Speicherplatz inkrementiert, wobei angenommen wird, dass der Bucket-Indexzeiger 40 noch nicht dem Maximalwert entspricht. Die Steuerzustandvorrichtung 30 erzeugt ein Inkrementierungssignal für den Bucket-Indexzeiger 40. Wenn der nächste Speicherplatz ebenfalls besetzt ist und dessen Inhalte nicht mit der aktuellen 48-Bit-Eingabe-Adresse übereinstimmen, wird der Bucket-Indexzeiger 40 wiederum um eins zum nächsten Speicherplatz inkrementiert. Dieser Vorgang setzt sich solange fort, bis ein unbesetzter Speicherplatz gefunden wird. Wenn ein unbesetzter Speicherplatz entdeckt wurde, wird die Eingabe-Adresse darin gespeichert.
  • Wenn der Bucket keinen unbesetzten Speicherplatz mehr aufweist und keine der im Bucket gespeicherten Adressen mit der aktuellen Eingabe-Adresse übereinstimmen, schiebt, gemäß der vorliegenden Erfindung, daraufhin die Steuerzustandvorrichtung 30 die Schiebelogik 26 über eine Schiebesteuereingabe. Unter Bezugnahme auf 4 bewirkt dieser Verschiebevorgang, dass die Schiebelogik 26 einen anderen Bitsatz aus der Ausgabe der Adressenkomprimierungsvorrichtung 24 auswählt. Doe Schiebelogik 26 kann um ein Bit verschoben werden, so dass der vorherige Bitsatz 44 um ein Bit verschoben wird, um einen anderen (neuen) Bitsatz 46 zu bilden. Es ist versteht sich jedoch, dass die Schiebelogik 26 um mehr als ein Bit verschoben werden kann, um einen anderen Bitsatz auszuwählen. Durch das Auswählen eines anderen Bitsatzes aus der Ausgabe der Adressenkomprimierungsvorrichtung 24, weist jede 48-Bit-Eingabe-Adresse schließlich auf einen anderen Bucket oder eine andere Speicherposition in der Adressenverweistabelle 28. Die Schiebesteuereingabe der Schiebelogik 26 wird durch die Steuerzustandvorrichtung 30 überwacht, die ein Schiebesteuerregister 31 inkrementiert, das in der Steuerzustandvorrichtung 30 enthalten ist.
  • Zusätzlich zum Verschiebevorgang der Schiebelogik 26, erzeugt die Steuerzustandvorrichtung 30 ein eindeutiges Befehlssignal, um alle Inhalte der Adressenverweistabelle 28 zu löschen, so dass die Verweistabellen-Erstellungsvorrichtung 20 den Vorgang zur Erstellung von Verweistabellen wieder von neuem beginnen kann. Die Steuerzustandvorrichtung 30 erzeugt außerdem ein Resetsignal, um mit dem Bucket-Indexzeiger 40 ein Reset durchzuführen. Da das Auswählen neuer Bitsätze aus der Adressenkomprimierungsvorrichtung 24 und das Löschen der Inhalte der Adressenverweistabelle 28 fortgesetzt wird, wird die Verweistabellen-Erstellungsvorrichtung 20 schließlich einen Bitsatz in der Ausgabe der Adressenkomprimierungsvorrichtung 24 finden, der zur Folge hat, dass jede der verschiedenen Eingabe-Adressen auf einen anderen Speicherplatz in der Adressenverweistabelle 28 zeigt. Auf diese Weise wird die Schiebelogik 26 die für die Zugriffsschlüssel verwendeten Bits verändern, bis sich die Zugriffsschlüssel an alle unterschiedlichen Eingabe-Adressen angepasst haben.
  • Unter Bezugname auf die 5A, 5B und 5C wird nun die Arbeitsweise der Steuerzustandvorrichtung 30 im Detail erläutert. Nach dem Beginn des Betriebs 50 kommt die Steuerzustandvorrichtung 30 in einen Initialisierungszustand 52, in dem die gesamten Inhalte der Adressenverweistabelle 28 durch Aktivieren des eindeutigen Befehlssignals gelöscht werden. Die Steuerzustandvorrichtung 30 führt auch mit dem Bucket-Indexzeiger 40, dem Schiebesteuerregister und der Adressenkomprimierungsvorrichtung 24 einen Reset durch.
  • Wenn der Initialisierungszustand 52 beendet ist, geht die Steuerzustandvorrichtung in einen Ruhezustand 54 über. Während des Ruhezustands 54 wartet die Steuerzustandvorrichtung 30 auf das Adresseneingabe-Funktionssignal 23. In Schritt 56 kontrolliert die Steuerzustandvorrichtung 30, ob das Adresseneingabe-Funktionssignal 23 empfangen wurde. Wenn das Adresseneingabe-Funktionssignal 23 auf HIGH geht, verschiebt sich die Steuerzustandsvorrichtung 30 in den Zustand 58.
  • In Zustand 58 wird die 48-Bit-Eingabe-Adresse in das Adresseneingabe-Datenregister 36 geladen und in Zustand 60 wird die 48-Bit-Eingabe-Adresse in die Adressenkomprimierungsvorrichtung 24 geladen. In Zustand 62 komprimiert die Adressenkomprimierungsvorrichtung 24 die 48-Bit-Eingabe-Adresse und erstellt eine komprimierte Adresse mit 32 Bits.
  • Nach dem die komprimierte Adresse erstellt wurde, geht die Steuerzustandvorrichtung 30 in den Zugriffszustand 64 der Adressenverweistabelle 28 über. In Zustand 64 erzeugt die Steuerzustandvorrichtung 30 ein Speicherlesesignal, das dazu führt, dass die Inhalte eines Speicherplatzes in der Adressenverweistabelle 28 gelesen werden. Der gelesene Speicherplatz befindet sich im Bucket, auf den die 10-Bits (MSB 10) der Ausgabe der Adressenkomprimierungsvorrichtung 24 zeigen, die von der Schiebelogik 26 ausgewählt wurden und der spezifische Speicherplatz ist jener, auf den die vom Bucket-Indexzeiger 40 erstellten 3-Bits (LSB 3) zeigen. Wenn der Lesezugriffsvorgang des Zustands 64 beendet ist, werden die 64-Bits des Lesedaten in das Adressenausgabe-Datenregister 38 in Zustand 66 geladen.
  • Nach dem Laden der Lesedaten in das Adressenausgabe-Datenregister 38, geht die Steuerzustandvorrichtung 30 dazu über, die besetzten Bitzustände 68 zu kontrollieren. In Zustand 68 prüft die Steuerzustandvorrichtung 30 das besetzte Bit des Registers 38. Wie in 3 zu sehen, ist das besetzte Bit Bitnummer 63 des Registers 38. Wenn das besetzte Bit gleich eins ist, geht die Steuerzustand-vorrichtung 30 auf den Adressenkomparator-Freigabezustand 70 über.
  • In Zustand 70 aktiviert die Steuerzustandvorrichtung 30 das Freigabesignal für den Adressenkomparator 32. In Zustand 72 vergleicht der Adressenkomparator 32 die 48-Bit-Eingabe-Adresse mit der 48-Bit-Adresse im Adressenausgabe-Datenregister 38 (Bits 0–47), die von der Adressenverweistabelle 28 gelesen wurden. Wenn die Eingabe-Adresse und die Inhalte des Adressenausgabe-Datenregisters 38 übereinstimmen, wird das Adressenausgabe-Übereinstimmungssignal 34 in Zustand 74 aktiviert und die Steuerzustandvorrichtung 30 kehrt in den Ruhezustand 54 zurück. Wenn die Eingabe-Adresse und die Inhalte des Adressenausgabe-Datenregisters 38 nicht übereinstimmen, kehrt die Steuerzustandvorrichtung 30 zurück zum Bucket-Indexzeiger-Kontrollzustand 76.
  • Im Bucket-Indexzeiger-Kontrollzustand 76 bestimmt die Steuerzustandvorrichtung 30, ob der Bucket-Indexzeiger 40 seinen Maximalwert erreicht hat oder nicht, der in diesem Beispiel sieben beträgt. Wenn der Bucket-Indexzeiger 40 gleich sieben ist, ist dieser spezielle Bucket (oder Speicherposition) voll. Die Bucket ist voll, da es nur acht Speicherplätze im Bucket gibt. Dieser Umstand zeigt, dass mehr als acht verschiedene Eingabe-Adressen die Erstellung der gleichen komprimierten Adresse an der Ausgabe der Adressenkomprimierungsvorrichtung 24 hervorgerufen haben, was dazu führt, dass die durch die Schiebelogik 26 ausgewählten 10-Bits identisch sind. Daher gibt es schließlich mehr als acht verschiedene Eingabe-Adressen, die zum gleichen Bucket in der Adressenverweistabelle 28 zeigen und jeder Bucket verfügt über acht Speicherplätze. Wenn dieser Fall eintritt, geht die Steuerzustandvorrichtung 30 in den Inkrementierungsschub-Kontrollregisterzustand 78 über.
  • Sobald Zustand 78 erreicht wurde, werden drei Schritte ausgeführt bevor die Steuerzustandvorrichtung 30 wieder in den Adressenverweistabellen-Zugriffszustand 68 übergehen kann. Zuerst wird in Zustand 78 das Schiebesteuerregister 31 inkrementiert, was zur Verschiebung der Schiebelogik 26 führt. Die Verschiebung der Schiebelogik 26 bewirkt, dass ein anderer Bitsatz aus 10-Bits von der Ausgabe der Adressenkomprimierungsvorrichtung 24 ausgewählt wird, was wiederum dazu führt, dass andere 10 MSB für das Verweisen auf die Adressenverweistabelle verwendet werden. In Zustand 80 führt dann die Steuerzustandvorrichtung 30 mit dem Bucket- Indexzeiger 40 einen Reset durch und löscht alle Inhalte der Adressenverweistabelle 28 durch Aktivierung des CLEAR-Befehlssignals. Wenn diese Schritte durchgeführt wurden, kehrt die Steuerzustandvorrichtung 30 wieder zum Adressenverweistabellen-Zugriffszustand 64 zurück, um den ersten Speicherplatz des Buckets zu lesen, auf den die anderen 10 MSB zeigen.
  • Wenn jedoch in Zustand 76 der Bucket-Indexzeiger 40 nicht gleich sieben ist, wird der Bucket-Indexzeiger 40 in Zustand 82 inkrementiert. Die Steuerzustandvorrichtung 30 kehrt dann zum Adressenverweistabellen-Zugriffszustand 64 zurück, wo der Speicherplatz, auf den der inkrementierte Bucket-Indexzeiger 40 (des gleichen Buckets) zeigt, gelesen wird.
  • Zurück zu Zustand 68, wenn das besetzte Bit nicht gleich eins ist, dann wird das besetzte Bit in Zustand 84 auf eins gesetzt und die Steuerzustandvorrichtung 30 kehrt zum Adressenverweistabellen-Schreibzugriffszustand 86 zurück. In Zustand 86 gibt die Steuerzustandvorrichtung 30 ein Schreibzugriffssignal aus. Während des Adressenverweistabellen-Schreibzugriffsvorgangs setzt die Steuerzustand-vorrichtung 30 das besetzte Bit in dem Adresseneingabe-Datenregister 36 fest und speichert dann die Inhalte des Adresseneingabe-Datenregisters 36 im aktuellen Speicherplatz der Adressenverweistabelle 28. Wenn dies beendet ist, kehrt die Steuerzustandvorrichtung 30 in den Ruhezustand 54 zurück.
  • Wie zuvor erwähnt, umfasst die vorliegende Erfindung auch eine Verweistabellen-Erstellungsvorrichtung, die keine Adressenverweistabelle vom Bucket-Typ und keinen Bucket-Indexzeiger 40 enthält. Unter Bezug auf 6 wird eine Verweistabellen-Erstellungsvorrichtung 100 in Übereinstimmung mit der vorliegenden Erfindung dargestellt, die keine Adressenverweistabelle vom Bucket-Typ und keinen Bucket-Indexzeiger 40 beinhaltet.
  • Die Verweistabellen-Erstellungsvorrichtung 100 verwendet das Bucket-Verfahren nicht. Sie umfasst jedoch viele gleiche Komponenten mit gleicher Funktion wie die Verweistabellen-Erstellungsvorrichtung 20. So umfasst die Verweistabellen-Erstel lungsvorrichtung 100 beispielsweise einen Adressenkomparator 32, der die 48-Bit-Eingabe-Adresse, die am Knoten 22 empfangen wird, mit den Inhalten des Adressenausgabe-Datenregisters 38 vergleicht. Wenn die Eingabe-Adresse mit den Inhalten des Adressenausgabe-Datenregisters 38 übereinstimmt, gibt der Adressenkomparator ein Adressenübereinstimmungssignal 34 aus, um die Adresseneingabe darüber zu informieren, dass sie schon in der Adressenverweistabelle 102 registriert wurde. Die Verweistabellen-Erstellungsvorrichtung 100 umfasst ebenfalls eine Adressenkomprimierungsvorrichtung 24, die die 48-Bit-Eingabe-Adresse zu einer aus 32-Bit bestehenden komprimierten Adresse komprimiert, sowie die Eingabe-Adresse in einzelne Daten umwandelt.
  • Das 64-Bit-Adresseneingabe-Datenregister 36 enthält die 48-Bit-Eingabe-Adresse mit den 16-Bit-Kontrolldaten. Die Inhalte dieses Registers werden schließlich, wie oben beschrieben, wenn nötig in der Adressenverweistabelle 102 gespeichert. Das 64-Bit-Adresseausgabe-Datenregister 38 enthält die 48 Bits der Ausgabe-Adresse und die 16 Bits der Kontrolldaten. Die Inhalte dieses Registers werden von der Adressenverweistabelle 102 gelesen.
  • Die Verweistabellen-Erstellungsvorrichtung 100 verwendet eine Adressenverweistabelle 102 vom linearen Typ. In 7 wird das Adressenverweistabellenformat anschaulich dargestellt. Ein einziger Speicherplatz wird für jeden Zugriffsschlüssel verwendet, was sie von der Adressenverweistabelle 28 unterscheidet, die mehr als einen Speicherplatz für jeden Zugriffsschlüssel oder Bucket zur Verfügung stellt. Jeder Speicherplatz enthält die ursprüngliche 48-Bit-Eingabe-Adresse mit den 16-Bits der Kontrolldaten.
  • Da jeder Zugriffsschlüssel nur einen ihm zugewiesenen Speicherplatz hat, braucht die Verweistabellen-Erstellungsvorrichtung 100 keinen Bucket-Indexzeiger zum Anzeigen der Speicherplätze in einem Bucket. Statt dessen verweisen oder zeigen einzig die von der Schiebelogik 26 aus der Ausgabe der Adressenkomprimierungsvorrichtung 24 ausgewählten Bits auf die einzelnen Speicherplätze. Damit die gleiche Anzahl an Speicherplätzen wie in der Adressenverweistabelle 28 aufgenommen werden kann, wählt die Schiebelogik 26 in der Verweistabellen-Erstellungsvorrichtung 100 13 Bits anstelle der zehn Bits für den Zugriffsschlüsselzeiger aus. Die Auswahl der 13 Bits aus den 32 Bits der komprimierten Adresse stellt 8.192 Zugriffsschlüssel zur Verfügung. Dies entspricht 8.192 Speicherplätzen, was bedeutet, dass die Adressenverweistabelle 102 bis zu 8.192 Adresseneingaben aufnehmen kann. Es ist dabei jedoch verständlich, dass die Anzahl an Bits, die aus der komprimierten Adresse durch die Schiebelogik 26 ausgewählt werden, von der nach Anzahl der benötigten Speicherplätze abhängt.
  • Die Steuerzustandvorrichtung 104 steuert die Arbeitsvorgänge der Verweistabellen-Erstellungsvorrichtung 100. Die Steuerzustandvorrichtung 104 verfügt über viele gleiche Funktionen wie die oben beschriebene Steuerzustandvorrichtung 30. So erzeugt beispielsweise die Steuerzustandvorrichtung 104 das Freigabesignal für den Adressenkomparator 32, das Schiebesteuersignal für die Schiebelogik 26, die Lese-, Schreib- und eindeutigen Befehlssignale für die Adressenverweistabelle 102 und erstellt die Kontrolldaten für jede 48-Bit-Eingabe-Adresse in Übereinstimmung mit den Zustands- und Eingabesignalen.
  • Die Steuerzustandvorrichtung 104 geht jedoch anders vor als die Steuerzustandvorrichtung 30 und zwar in dem Sinne, dass die Steuerzustandvorrichtung 104 keinen Bucket-Indexzeiger zu kontrollieren hat. Wenn zwei oder mehrere unterschiedliche 48-Bit-Eingabe-Adressen die gleiche, von der Adressenkomprimierungsvorrichtung 24 erstellte komprimierte Adresse ergeben, erfolgt daher sofort die Verschiebung der Schiebelogik 26 zur Auswahl eines anderen 13-Bit-Satzes gemäß der vorliegenden Erfindung, als einen Bucket-Indexzeiger zu inkrementieren, um unterschiedliche Speicherplätze innerhalb eines Buckets anzuzeigen. Die Steuerzustandvorrichtung 104 löscht ebenfalls zu diesem Zeitpunkt alle Inhalte der Adressenverweistabelle 102. Mit anderen Worten, die Schiebelogik 26 wird früher verschoben und die Adressenverweistabelle 102 wird früher gelöscht, als es in Verweistabellen-Erstellungsvorrichtung 20 der Fall wäre. Auf diese Weise wird die Schiebelogik 26 so lange verschoben, bis die Zugriffsschlüssel an die verschiedenen Eingabe-Adressen angepasst sind.
  • Hinsichtlich der detaillierten Beschreibung der Vorgänge der Steuerzustandvorrichtung 104, sind die Vorgänge bis zum Einsetzen des Adressenkomparators 32 im Großen und Ganzen dieselben wie in 5A, mit der Ausnahme des Adressenverweistabellen-Zugriffszustands 64. In Zustand 64 erzeugt die Steuerzustandvorrichtung ein Speicherlesesignal, welches dazu führt, dass die Inhalte eines Speicherplatzes in der Adressenverweistabelle 102 gelesen werden. Der zu lesende Speicherplatz ist jener einzige Speicherplatz, auf den die 13 Bits der Ausgabe der Adressenkomprimierungsvorrichtung 24 zeigen, die von der Schiebelogik 26 ausgewählt wurden. Ein Bucket-Indexzeiger wird hier im Gegensatz zur Verweistabellen-Erstellungsvorrichtung 20 nicht verwendet. Wenn der Lesezugriffsvorgang des Zustands 64 beendet ist, werden die 64-Bits der gelesenen Daten in das Adressenausgabe-Datenregister 38 in Zustand 66 geladen.
  • In ähnlicher Weise wie für den 5C dargestellten Adressenverweistabellen-Schreibzugriffszustand funktioniert jener für die Verweistabellen-Erstellungsvorrichtung 100, außer, dass die Daten in einen einzigen Speicherplatz geschrieben werden, auf den die von der Schiebelogik 26 ausgewählten 13 Bits zeigen. Im Besonderen in Zustand 86 gibt die Steuerzustandvorrichtung 104 ein Schreibzugriffssignal aus. Während des Adressenverweistabellen-Schreibzugriffsvorgangs, setzt die Steuerzustandvorrichtung 104 das besetzte Bit im Adresseneingabe-Datenregister 36 in einen einzigen Speicherplatz der Adressenverweistabelle 102 fest, auf den die von der Schiebelogik 26 ausgewählten 13 Bits zeigen.
  • Ein Unterschied zwischen den Vorgängen der Steuerzustandvorrichtung 104 und den Vorgängen der Steuerzustandvorrichtung 30 ist im Bezug auf den fehlenden Bucket-Indexzeiger in der Steuerzustandvorrichtung 104 ersichtlich. Daher sind einige der in 5B abgebildeten Vorgänge für die Steuerzustandvorrichtung 104 abgeändert und in 8 dargestellt. Unter Bezug auf 8 sind die Zustände 72 und 74 im Grunde die gleichen. Mit anderen Worten, der Adressenkomparator 32 vergleicht die 48-Bit-Eingabe-Adresse mit der 48-Bit-Adresse im Adressenausgabe-Datenregister 38 (Bits 0–47), die von der Adressenverweistabelle 102 ausgelesen wurde. Wenn die Eingabe-Adresse und die Inhalte der Adressenausgabe-Datenregister 38 überein stimmen, wird das Adressenübereinstimmungssignal 34 in Zustand 74 aktiviert und die Steuerzustandvorrichtung 104 kehrt in den Ruhezustand 54 zurück.
  • Die Unterschiede in den Arbeitsvorgängen der Steuerzustandvorrichtung 104 beziehen sich darauf, was passiert, wenn die Eingabe-Adresse und die Inhalte des Adressenausgabe-Datenregisters 38 nicht übereinstimmen. Anstatt damit weiter zu verfahren den Bucket-Indexzeiger-Zustand zu kontrollieren, geht die Steuerzustandvorrichtung 104 direkt in den Inkrementierungsschub-Kontrollregisterzustand 108 über.
  • Sobald zu Zustand 108 übergegangen wurde, werden zwei Schritte, im Gegensatz zu den drei Schritten, die hinsichtlich der Steuerzustandvorrichtung 30 oben beschrieben wurde, durchgeführt bevor die Steuerzustandvorrichtung 104 wieder zum Adressenverweistabellen-Zugriffszustand 64 zurückkehren kann. Zuerst wird in Zustand 108 das Schiebesteuerregister 106 inkrementiert, was zur Verschiebung der Schiebelogik 26 führt. Die Verschiebung der Schiebelogik 26 bewirkt, dass ein anderer 13-Bit-Satz aus der Ausgabe der Adressenkomprimierungsvorrichtung 24 ausgewählt wird, was dazu führt, dass andere 13 Bits zum Verweisen auf die Adressenverweistabelle 102 verwendet werden. Dann löscht in Zustand 110 die Steuerzustandvorrichtung 104 alle Inhalte der Adressenverweistabelle 102 durch Aktivieren des eindeutigen Befehlssignals. Wenn die Durchführung dieser Schritte beendet ist, kehrt die Steuerzustandvorrichtung 104 wieder zum Adressenverweistabellen-Zugriffszustand 64 zurück, um den einzigen Speicherplatz zu lesen, auf den andere 13-Bits zeigen. Hierbei ist anzumerken, dass Zustand 110 keinen Reset des Bucket-Indexzeigers vorsieht, das die Verweistabellen-Erstellungsvorrichtung 100 keinen Bucket-Indexzeiger umfasst.
  • Unter Bezug auf die 9A und 9B können die Verweistabellen-Erstellungsvorrichtung 20 und 100 auch in andere Netzwerkkomponenten 120 bzw. 122 integriert werden, wobei diese einige Ports P1, P2,... Pn umfassen und zur Kopplung mit einem Netzwerk mittels einer Vielzahl an Knoten N1, N2,...Nm verwendet werden. Beispiel für derartige Netzwerkkomponenten 120 und 122 sind Hubs, Verteiler, Router, Gateways, etc.
  • Es ist verständlich, dass verschiedene Alternativen zu den hierin beschriebenen Ausführungsform der vorliegenden Erfindung im Zuge der praktischen Anwendung der Erfindung verwendet werden können. Es ist beabsichtigt, dass die folgenden Patentansprüche den Schutzumfang der Erfindung definieren und dass die Strukturen und Verfahren innerhalb des Schutzumfangs dieser Ansprüche und deren Äquivalente dadurch abgedeckt sind.

Claims (15)

  1. Verfahren zur Erstellung einer Verweistabelle, wobei das Verfahren Folgendes umfasst: das Empfangen einer Eingabe-Adresse; das Erzeugen einer komprimierten Adresse aus der Eingabe-Adresse, wobei die komprimierte Adresse weniger Bits umfasst als die Eingabe-Adresse; wobei das Verfahren durch Folgendes gekennzeichnet ist: das Auswählen eines ersten Bitsatzes aus der komprimierten Adresse; das Bestimmen, ob eine Speicherposition in einer Adressenverweistabelle, auf die der erste Bitsatz zeigt, einen unbesetzten Speicherplatz umfasst; das Bestimmen, ob die Eingabe-Adresse einer der Adressen entspricht, die in der Speicherposition in der Adressenverweistabelle gespeichert sind, auf die der erste Bitsatz zeigt; und das Auswählen eines zweiten Bitsatzes aus der komprimierten Adresse als Reaktion darauf, dass kein unbesetzter Speicherplatz in der Speicherposition vorliegt, auf die der erste Bitsatz zeigt, und dass die Eingabe-Adresse keiner der Adressen entspricht, die in der Speicherposition gespeichert sind, auf die der erste Bitsatz zeigt.
  2. Verfahren nach Anspruch 1, worin der Schritt des Auswählens eines ersten Bitsatzes aus der komprimierten Adresse Folgendes umfasst: das Auswählen einer vorbestimmten Anzahl an benachbarten Bits aus der komprimierten Adresse.
  3. Verfahren nach Anspruch 2, worin der Schritt des Auswählens eines zweiten Bitsatzes aus der komprimierten Adresse Folgendes umfasst: das Verschieben der vorbestimmten Anzahl an benachbarten Bits um ein Bit.
  4. Verfahren nach Anspruch 1, worin die Speicherposition, auf die der erste Bitsatz zeigt, eine Vielzahl an Speicherplätzen umfasst, und worin der Schritt des Bestimmens, ob die Speicherposition in einer Adressenverweistabelle, auf die der erste Bitsatz zeigt, einen unbesetzten Speicherplatz umfasst, Folgendes umfasst: das Bestimmen, ob ein erster Speicherplatz, auf den mithilfe eines Indexzeigers gezeigt wird, besetzt ist; das Inkrementieren des Indexzeigers um eins als Reaktion darauf, dass der erste Speicherplatz besetzt ist, die Eingabe-Adresse einer im ersten Speicherplatz gespeicherten Adresse nicht entspricht, und der Indexzeiger nicht einem Maximalwert gleich ist; und das Bestimmen, ob ein zweiter Speicherplatz, auf den mithilfe des inkrementierten Indexzeigers gezeigt wird, besetzt ist.
  5. Verfahren nach Anspruch 4, worin der Schritt des Bestimmens, ob die Eingabe-Adresse einer der Adressen entspricht, die in der Speicherposition der Adressenverweistabelle gespeichert sind, auf die der erste Bitsatz zeigt, Folgendes umfasst: das Vergleichen der Eingabe-Adresse mit einer in einem besetzen Speicherplatz gespeicherten Adresse.
  6. Verfahren nach Anspruch 1, worin die Speicherposition, auf die der erste Bitsatz zeigt, einen Speicherplatz umfasst, und worin der Schritt des Bestimmens, ob die Speicherposition in der Adressenverweistabelle, auf die der erste Bitsatz zeigt, einen unbesetzten Speicherplatz umfasst, das Bestimmen umfasst, ob der eine Speicherplatz besetzt ist, und worin der Schritt des Bestimmens, ob die Eingabe-Adresse einer der Adressen entspricht, die in der Speicherposition der Adressenverweistabelle gespeichert sind, auf die der erste Bitsatz zeigt, das Vergleichen der Eingabe-Adresse mit einer in dem einen Speicherplatz gespeicherten Adresse als Reaktion darauf, dass der eine Speicherplatz besetzt ist, umfasst.
  7. Verfahren nach Anspruch 1, weiters umfassend: das Löschen aller Inhalte der Adressenverweistabelle als Reaktion darauf, dass kein unbesetzter Speicherplatz in der Speicherposition vorliegt, auf die der erste Bitsatz zeigt, und die Eingabe-Adresse keiner der Adressen entspricht, die in der Speicherposition gespeichert sind, auf die der erste Bitsatz zeigt.
  8. Vorrichtung, umfassend eine Verweistabellen-Erstellungsvorrichtung (20), wobei die Verweistabellen-Erstellungsvorrichtung Folgendes umfasst: eine Adressenkomprimierungsvorrichtung (24), die konfiguriert ist, um eine Eingabe-Adresse zu empfangen und eine komprimierte Adresse, die weniger Bits als die Eingabe-Adresse umfasst, zu erzeugen; wobei die Erstellungsvorrichtung durch Folgendes gekennzeichnet ist: eine Schiebelogik (26), die mit der Adressenkomprimierungsvorrichtung gekoppelt ist und konfiguriert ist, um einen ersten Bitsatz aus der komprimierten Adresse auszuwählen; eine Adressenverweistabelle (28), die mit der Schiebelogik gekoppelt ist und eine Speicherposition umfasst, auf die der erste Bitsatz zeigt, wobei die Speicherposition zumindest einen Speicherplatz umfasst; und eine Steuerzustandvorrichtung (30), die mit der Schiebelogik und der Adressenverweistabelle gekoppelt ist und konfiguriert ist, um die Schiebelogik so zu verschieben, dass als Reaktion darauf, dass kein unbesetzter Speicherplatz in der Speicherpositi on, auf die der erste Bitsatz zeigt, vorliegt und die Eingabe-Adresse keiner der Adressen entspricht, die in der Speicherposition, auf die der erste Bitsatz zeigt, gespeichert sind, ein zweiter Bitsatz aus der komprimierten Adresse ausgewählt wird.
  9. Vorrichtung nach Anspruch 8, worin die Schiebelogik konfiguriert ist, den ersten Bitsatz aus der komprimierten Adresse auszuwählen, indem sie eine vorbestimmte Anzahl an benachbarten Bits aus der komprimierten Adresse auswählt.
  10. Vorrichtung nach Anspruch 9, worin die Steuerzustandvorrichtung konfiguriert ist, die Schiebelogik so zu verschieben, dass ein zweiter Bitsatz aus der komprimierten Adresse ausgewählt wird, indem die vorbestimmte Anzahl an benachbarten Bits um ein Bit verschoben wird.
  11. Vorrichtung nach Anspruch 8, worin die Speicherposition, auf die der erste Bitsatz zeigt, eine Vielzahl an Speicherplätzen umfasst, und worin die Verweistabellen-Erstellungsvorrichtung Folgendes umfasst: einen Indexzeiger (40), der konfiguriert ist, um auf einen der Vielzahl an Speicherplätzen zu zeigen.
  12. Vorrichtung nach Anspruch 11, worin die Steuerzustandvorrichtung weiters konfiguriert ist, um zu bestimmen, ob in der Speicherposition, auf die der erste Bitsatz zeigt, ein unbesetzter Speicherplatz vorliegt, indem: bestimmt wird, ob ein erster Speicherplatz, auf den der Indexzeiger zeigt, besetzt ist; der Indexzeiger als Reaktion darauf, dass der erste Speicherplatz besetzt ist, die Eingabe-Adresse einer im ersten Speicherplatz gespeicherten Adresse nicht entspricht, und der Indexzeiger nicht einem Maximalwert gleich ist, um eins inkrementiert wird; und bestimmt wird, ob ein zweiter Speicherplatz, auf den der inkrementierte Indexzeiger zeigt, besetzt ist.
  13. Vorrichtung nach Anspruch 12, worin die Verweistabellen-Erstellungsvorrichtung weiters Folgendes umfasst: einen Komparator (32), der gekoppelt ist, um die Eingabe-Adresse und die in der Verweistabelle gespeicherten Adressen zu empfangen; worin die Steuerzustandvorrichtung weiters konfiguriert ist, um zu bestimmen, ob die Eingabe-Adresse einer der Adressen entspricht, die in der Speicherposition gespeichert sind, auf die der erste Bitsatz zeigt, indem der Komparator freigegeben wird, die Eingabe-Adresse mit einer in einem besetzen Speicherplatz gespeicherten Adresse zu vergleichen.
  14. Vorrichtung nach Anspruch 8, worin die Steuerzustandvorrichtung weiters konfiguriert ist, um alle Inhalte der Adressenverweistabelle als Reaktion darauf, dass kein unbesetzter Speicherplatz in der Speicherposition vorliegt, auf die der erste Bitsatz zeigt, und die Eingabe-Adresse keiner der Adressen entspricht, die in der Speicherposition gespeichert sind, auf die der erste Bitsatz zeigt, zu löschen.
  15. Vorrichtung nach Anspruch 8, worin die Vorrichtung eine Netzwerkvorrichtung (120, 122) mit einer Vielzahl an Ports (P1...Pn) zur Kopplung einer Vielzahl an Knoten (N1...Nn) mit einem Netzwerk umfasst.
DE69933043T 1998-11-20 1999-11-19 Verfahren und vorrichtung für einen adaptiven generator von adressennachschlagtabellen Expired - Lifetime DE69933043T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US197485 1998-11-20
US09/197,485 US6279097B1 (en) 1998-11-20 1998-11-20 Method and apparatus for adaptive address lookup table generator for networking application
PCT/US1999/026012 WO2000031926A1 (en) 1998-11-20 1999-11-19 Method and apparatus for adaptive address lookup table generator

Publications (2)

Publication Number Publication Date
DE69933043D1 DE69933043D1 (de) 2006-10-12
DE69933043T2 true DE69933043T2 (de) 2007-03-01

Family

ID=22729604

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69933043T Expired - Lifetime DE69933043T2 (de) 1998-11-20 1999-11-19 Verfahren und vorrichtung für einen adaptiven generator von adressennachschlagtabellen

Country Status (8)

Country Link
US (1) US6279097B1 (de)
EP (1) EP1131921B1 (de)
JP (1) JP4021623B2 (de)
AT (1) ATE338404T1 (de)
AU (1) AU1712800A (de)
DE (1) DE69933043T2 (de)
TW (1) TW465210B (de)
WO (1) WO2000031926A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899052B1 (en) * 1999-01-27 2011-03-01 Broadcom Corporation Memory structure for resolving addresses in a packet-based network switch
US6975637B1 (en) * 1999-01-27 2005-12-13 Broadcom Corporation Apparatus for ethernet PHY/MAC communication
US7032035B2 (en) * 2000-12-08 2006-04-18 Intel Corporation Method and apparatus for improving transmission performance by caching frequently-used packet headers
US20030033430A1 (en) * 2001-07-20 2003-02-13 Lau Chi Leung IP flow discovery for IP probe auto-configuration and SLA monitoring
FR2837587B1 (fr) * 2002-03-22 2008-04-11 St Microelectronics Sa Procede et circuit pour fournir une donnee de contexte d'un dispositif a partir d'une adresse associee a ce dispositif
US20060041734A1 (en) * 2002-07-01 2006-02-23 Lim Swee H Associating mac addresses with addresses in a look-up table
JP4142044B2 (ja) * 2003-08-04 2008-08-27 富士通株式会社 ルックアップテーブル及びデータ取得方法
TWI251745B (en) * 2004-07-27 2006-03-21 Via Tech Inc Apparatus and related method for calculating parity of redundant array of inexpensive disks
US7430560B1 (en) * 2005-07-22 2008-09-30 X-Engines, Inc. Multi-level compressed lock-up tables formed by logical operations to compress selected index bits
US7921088B1 (en) * 2005-07-22 2011-04-05 X-Engines, Inc. Logical operations encoded by a function table for compressing index bits in multi-level compressed look-up tables
US7827218B1 (en) 2006-11-18 2010-11-02 X-Engines, Inc. Deterministic lookup using hashed key in a multi-stride compressed trie structure
JP2010233083A (ja) * 2009-03-27 2010-10-14 Toshiba Corp ネットワークアドレス管理装置およびネットワークアドレス管理方法並びにネットワーク中継装置
RU2538323C1 (ru) * 2013-06-28 2015-01-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Южно-Российский государственный университет экономики и сервиса" (ФГБОУ ВПО "ЮРГУЭС") Способ организации таблицы фильтрации межсетевого коммутатора и устройство для его реализации
KR20220077738A (ko) * 2020-12-02 2022-06-09 삼성전자주식회사 상수 승산을 위한 집적 회로 및 이를 포함하는 장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
US4373181A (en) 1980-07-30 1983-02-08 Chisholm Douglas R Dynamic device address assignment mechanism for a data processing system
US4486739A (en) 1982-06-30 1984-12-04 International Business Machines Corporation Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
US4588987A (en) 1983-09-13 1986-05-13 International Business Machines Corp. Display system for monitoring and alarm system
US4644478A (en) 1983-09-13 1987-02-17 International Business Machines Corp. Monitoring and alarm system for custom applications
US4644532A (en) 1985-06-10 1987-02-17 International Business Machines Corporation Automatic update of topology in a hybrid network
US5038320A (en) 1987-03-13 1991-08-06 International Business Machines Corp. Computer system with automatic initialization of pluggable option cards
US4965772A (en) 1987-06-15 1990-10-23 International Business Machines Corporation Method and apparatus for communication network alert message construction
US4922503A (en) 1988-10-28 1990-05-01 Infotron Systems Corporation Local area network bridge
US5124982A (en) 1990-02-27 1992-06-23 Allied Telesis, Incorporated Multiple port medium attachment unit for a network
WO1994003856A1 (en) * 1992-08-07 1994-02-17 Massachusetts Institute Of Technology Column-associative cache
DE69324204T2 (de) 1992-10-22 1999-12-23 Cabletron Systems Inc Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers
US5615340A (en) 1994-07-21 1997-03-25 Allied Telesyn Int'l Corp. Network interfacing apparatus and method using repeater and cascade interface with scrambling
US5633858A (en) * 1994-07-28 1997-05-27 Accton Technology Corporation Method and apparatus used in hashing algorithm for reducing conflict probability
US5491687A (en) 1994-09-28 1996-02-13 International Business Machines Corporation Method and system in a local area network switch for dynamically changing operating modes
US5774480A (en) 1995-10-10 1998-06-30 Allied Telesyn International Corporation Cyclic code check bits generation and error correction using sum of remainders
US5781549A (en) 1996-02-23 1998-07-14 Allied Telesyn International Corp. Method and apparatus for switching data packets in a data network
US5920900A (en) 1996-12-30 1999-07-06 Cabletron Systems, Inc. Hash-based translation method and apparatus with multiple level collision resolution

Also Published As

Publication number Publication date
JP2002531004A (ja) 2002-09-17
AU1712800A (en) 2000-06-13
TW465210B (en) 2001-11-21
JP4021623B2 (ja) 2007-12-12
US6279097B1 (en) 2001-08-21
DE69933043D1 (de) 2006-10-12
WO2000031926A1 (en) 2000-06-02
EP1131921B1 (de) 2006-08-30
ATE338404T1 (de) 2006-09-15
EP1131921A1 (de) 2001-09-12

Similar Documents

Publication Publication Date Title
DE69933043T2 (de) Verfahren und vorrichtung für einen adaptiven generator von adressennachschlagtabellen
DE602004010922T2 (de) Speicher und stromeffizienter mechanismus für schnelles tabellennachschlagen
DE69636761T2 (de) Speichern und wiederauffinden von geordneten schlüsselmengen in einem kompakten 0-kompletten baum
EP0703534B1 (de) Speicherverwaltungssystem eines Rechnersystems
DE60216938T2 (de) Gleichzeitiges durchsuchen verschiedener tabellen in einem inhaltsadressierbaren speicher
DE3390315T1 (de) Anpassungsfähige Unterteilung eines Chachespeicherraums in Domainen
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE3513473A1 (de) Hochgeschwindigkeits-datenschieberegister
DE2131066B2 (de) Anordnung zum adressieren eines tabellenspeichers
DE2346525B2 (de) Virtuelle Speichereinrichtung
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE60032674T2 (de) Verfahren zum Suchen von Adressen
DE19645128C2 (de) Verfahren zum Verwalten von Dokumenten sowie Gerätetreiber zur Durchführung des Verfahrens
DE19715723A1 (de) Array-Verfahren
EP1332501B1 (de) Speicherverwaltungslogik zur erweiterten nutzung von festwertspeichern
DE19810784B4 (de) Rechnersystem
EP2102766A1 (de) Verfahren zum auslesen von daten aus einem speichermedium
EP1515244A2 (de) Abbildung einer Klassenhierarchie auf ein relationales Datenbanksystem
EP1325412B1 (de) Verfahren zum zugriff auf eine speichereinheit, in der vermerkfolgen gespeichert sind, zugehörige speichereinheit und zugehöriges programm
DE10215719A1 (de) Datenspeicher
DE3432837A1 (de) Datenkompressions- und datenexpandiereinrichtung zum uebertragen bzw. speichern von daten
DE2246405C3 (de) Schaltungsanordnung zum Adressieren eines Speichersystems mit logischen Adressen
EP1099172A1 (de) Verfahren, anordnung und satz mehrerer anordnungen zur behebung mindestens einer inkonsistenz in einer datenbankmenge, die eine datenbank sowie mindestens eine kopiedatenbank der datenbank aufweist
DE3918453C2 (de) LRU-Schaltung
DE69916128T2 (de) Inhaltadressierbare speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition