DE69827121T2 - Verfahren zur Adressenkompression für zellbasierte und paketbasierte Protokolle und Hardware-Ausführungen davon - Google Patents

Verfahren zur Adressenkompression für zellbasierte und paketbasierte Protokolle und Hardware-Ausführungen davon Download PDF

Info

Publication number
DE69827121T2
DE69827121T2 DE69827121T DE69827121T DE69827121T2 DE 69827121 T2 DE69827121 T2 DE 69827121T2 DE 69827121 T DE69827121 T DE 69827121T DE 69827121 T DE69827121 T DE 69827121T DE 69827121 T2 DE69827121 T2 DE 69827121T2
Authority
DE
Germany
Prior art keywords
sst
incoming
tables
cssa
incvect
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69827121T
Other languages
English (en)
Other versions
DE69827121D1 (de
Inventor
Marco Pavesi
Riccardo Gemelli
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.)
Italtel SpA
Original Assignee
Italtel SpA
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 Italtel SpA filed Critical Italtel SpA
Priority claimed from EP98830481A external-priority patent/EP0978966B1/de
Publication of DE69827121D1 publication Critical patent/DE69827121D1/de
Application granted granted Critical
Publication of DE69827121T2 publication Critical patent/DE69827121T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

  • 1.1 DEFINITION DES PROBLEMS DER ADRESSENKOMPRIMIERUNG
  • Beachtenswert dabei ist, dass für jedes Kommunikationsprotokoll ein eingehender Adressraum (die maximale Anzahl von Kanälen, die ein spezifisches Protokoll handhaben kann) definiert ist. In dieser Schrift wird der sogenannte Adressraum der Größe 2N Bits als die Menge eingehender Adressen bezeichnet.
  • Andererseits kann ein Telekommunikationsgerät nur einige verwaltete Kanäle handhaben. Die Anzahl gleichzeitig verwaltbarer Kanäle ist endlich und ein typisches Ziel bei der Auslegung. Jeder verwaltete Kanal muss mittels einer internen Kennung adressierbar sein, die eine Teilmenge der eingehenden Adresse ist. In dieser Schrift wird der Raum von 2Ncpr Bits der internen Kennungen als die Menge komprimierter Adressen bezeichnet.
  • Bei einem Telekommunikationsgerät soll eine Funktion implementiert werden, die einige zur Gesamtheit der eingehenden Adressen (2N Bits) gehörige Punkte auf eine Menge komprimierter Kennungen (2Ncpr Bits) abbildet. Diese Funktion wird als Adresskompressionsfunktion bezeichnet.
  • Aus Netzverwaltungsgründen ist der eingehende Adressraum sehr groß. Andererseits ist die Anzahl von Kanälen, die heutzutage gleichzeitig von Telekommunikationsgeräten verwaltet werden müssen, ebenfalls sehr hoch. Darüber hinaus steigt die Übertragungsgeschwindigkeit der Datenverbindung mit beeindruckender Geschwindigkeit: in zehn Jahren von 64 kBit/s auf 155 MBit/s und nunmehr auf 1,2 GBit/S.
  • Aufgrund dieser Tatsache ist die Effizienz der Auslegung der Adresskompressionsfunktion ein Schlüsselfaktor bei Geräten wie Datenvermittlern (Router) und Verteilern (Switches). Insgesamt ist die Auslegung kritisch geworden, da aufgrund der gestiegenen Datengeschwindigkeit weniger Zeit für die Durchführung der Adresskompressionsfunktion verbleibt. Andererseits führt die steigende Anzahl verwaltbarer Kanäle zu einer Kostenerhöhung aufgrund der steigenden Anzahl von zur Durchführung der Adresskompressionsfunktion erforderlichen Ressourcen.
  • 1.1.1 DEFINITION DES ADRESSENKOMPRIMIERUNGSPROBLEMS
  • Ziel des Algorithmus ist eine Komprimierung einer definierten Menge von Adressen S, der Menge zu komprimierender Adressen, die zur Menge U gehört, dem Gesamtadressraum, wie 1 zeigt. Für jede dieser Adressen muss der Algorithmus eine und nur eine Adresse kennzeichnen, die zu C gehört, der Menge komprimierter Adressen (d. h. eine Transformation S → C durchführen).
    n Dimension des Gesamtadressraums
    Figure 00020001

    ncpr Dimension des Raums komprimierter Adressen
    Figure 00020002
    wobei: ncpr < n, C ⊂ U.
  • Dabei muss die Kardinalität von S gleich der Kardinalität von C sein.
  • 1.1.2 ADRESSKOMPRESSIONSFUNKTION UND IP-ANWENDUNG
  • Die grundlegendste Operation bei jedem IP-Routingprodukt ist der Routingtabellen-Suchvorgang.
  • Es wird ein Paket mit einer spezifischen Zieladresse (engl. destination address, DA) empfangen, die bei Implementierungen der aktuellen IP-Version 4 durch ein eindeutiges 32-Bit Feld gekennzeichnet ist. Der Router muss unter Verwendung der IP-Zieladresse als seinen Schlüssel eine Weiterleittabelle durchsuchen und bestimmen, welcher Eintrag in der Tabelle für das Paket bei dessen „Reise" durch das Netz an sein Ziel die beste Route darstellt.
  • Eine „flache" Weiterleittabelle hätte eine Größe von 232 Adressen, d. h. 4 GBytes Adressraum (16 GBytes Daten). Die Zieladresse (DA) muss komprimiert werden, um auf eine angemessene Tabellengröße zu verweisen.
  • Der Routensuchvorgang ist die zeitaufwendigste aller heutzutage in Routern durchzuführenden Einzeloperationen, und er definiert im typischen Fall die Obergrenze des Routers hinsichtlich dessen Fähigkeit zur Paketvermittlung.
  • In den letzten Jahren ist das Problem zu einer noch größeren Herausforderung geworden.
  • Datenverbindungen arbeiten jetzt routinemäßig mit 100 MBit/s und erzeugen beinahe 150000 Pakete pro Sekunde, für die ein Routing erforderlich ist.
  • Neue Protokolle, beispielsweise RSVP, erfordern eine Routenwahl, die nicht nur auf der Zieladresse basiert, sondern möglicherweise auch auf Protokollnummer, Quelladresse, Zielport und Quellport.
  • Durch die IP-Version 6 erhöht sich die Größe des Adressfelds von 32 Bits auf 128 Bits, wobei Netzpräfixe bis zu 64 Bits lang sind. Die ausgedehnte Verwendung von IP-Multicasting macht es erforderlich, dass Suchen große Anzahlen von Adressen der Klasse D (Multicast-Gruppe) mit großen Anzahlen von Nutzern einschließen.
  • Darüber hinaus führt die stetig zunehmende Anzahl von Netzen und Hostrechnern im Internet dazu, dass auch die Größen von Routingtabellen immer umfangreicher werden.
  • 1.1.3 ADRESSKOMPRESSIONSFUNKTION UND ATM-ANWENDUNGEN
  • Um Spezifikationen der ITU- und ATM-Foren zu erfüllen, müssen ATM-Datengeräte ATM-Zellen für jeden zulässigen Wert der Headerfelder VPI.VCI empfangen können. Die Gesamtlänge dieser Felder beträgt 24 Bit (16,7 Millionen zulässige Werte).
  • Andererseits sind die ATM-Geräte so ausgelegt, dass sie eine Anzahl interner Kanäle verwalten, die (mindestens) gleich der maximalen Anzahl belegbarer Kanäle ist. Diese Anzahl ist anwendungsabhängig: von eins bis zu Hunderten im Fall von Datenendgeräte; mehrere Tausend (4K, 64K) im Fall von Geräten des Kernnetzes.
  • In der nachfolgenden Beschreibung ist die eindeutig bestimmte (kürzere) Kennung interner Kanäle als Kanalkennung (engl. Channel IDentifier, CID) bezeichnet.
  • Dadurch ergibt sich das Erfordernis, dass die Verarbeitung in der Lage sein muss, von jedem beliebigen möglichen Wert von VPI.VCI (24 Bits) auf jede mögliche CID (z. B. 12 Bits) abzubilden.
  • 1.2 ALGORITHMUSKATEGORIEN
  • Eine zur Abbildung von einer Folge der Länge N Bits auf eine (eindeutige) Folge der Länge Ncpr (Ncpr < N) fähige Kompressionsfunktion lässt sich auf verschiedene Weise implementieren.
  • Dabei gibt es zwei Hauptkategorien: die Algorithmen mit einer nicht vorhersehbaren Dauer gehören zu einer ersten Kategorie; die anderen, mit einer vorhersehbaren Dauer, fallen in die zweite Kategorie.
  • Bei den in die erste Kategorie fallenden Algorithmen ist es nicht möglich im voraus zu ermitteln, für welche Zeitdauer (Mikroprozessoranweisungen oder Taktzyklen) der Algorithmus ablaufen wird, bis er auf die komprimierte Kennung trifft. Dies hängt von der Anzahl aktiver Verbindungen ab. Diese Algorithmen lassen sich im Normalfall leichter implementieren, benötigen nicht viele Ressourcen und können lediglich durch Verbesserung der RAM-Zugriffszeit der Speicher, in denen sich die Suchtabellen befinden, beschleunigt werden.
  • Bei den Algorithmen der zweiten Kategorie (Algorithmen mit vorhersehbarer Dauer) ist es UNTER JEDER BEDINGUNG möglich im voraus zu ermitteln, in welcher Zeitdauer (Mikroprozessoranweisungen oder Taktzyklen) der Algorithmus ablaufen wird, bis er auf die komprimierte Kennung trifft. Diese Algorithmen benötigen häufig viele Ressourcen.
  • Ein zur zweiten Kategorie gehöriger Algorithmus stellt sicher, dass die maximale Suchzeit weniger beträgt als die zum Empfang des kürzesten Pakets verwendete Zeit, dies garantiert den maximal zulässigen Durchsatz des Geräts.
  • 1.2.1 ALGORITHMEN VON NICHT VORHERSEHBARER DAUER
  • Hersteller von IP-Routern haben die in diese Kategorie fallenden Algorithmen bereits vor einigen Jahren entwickelt. Sie können daher als „klassische Routensuchtechniken" bezeichnet werden. Die Hauptalgorithmen werden für einen IP-Kontext erläutert, um dem Leser nützlichen historischen Hintergrund zu vermitteln.
  • 1.2.1.1 DER PATRICIA-BAUM
  • Dies ist der beliebteste Algorithmus, der in „langsamen Pfaden" von Routern verwendet wird. Die Weiterleittabelle (die jeden Präfix-Eintrag mit einem Ausgangsport und der MAC-Adresse für die nächste Teilstrecke („Hop") assoziiert) ist in Form eines „binären Wurzel-Baums" gespeichert.
  • Die Tabelle ist als Reihe von „Knoten" organisiert, von denen jeder eine Route unterschiedlicher Länge enthält, und jeder zwei „Zweige" zu nachfolgenden Knoten im Baum hat. An den Enden der Zweige befinden sich „Blätter", die entweder volle 32 Bit Host-Routen darstellen (für direkt am Router angebrachte Geräte) oder für ein bestimmtes Teilnetz verfügbare, detaillierteste Routen.
  • Der Algorithmus kann JEDEN BELIEBIGEN eingehenden Vektor auf eine eindeutige ausgehende Kennung abbilden. Leider muss im schlechtesten Fall der Algorithmus den ganzen Weg zum Ende des Baums durchlaufen, um ein Blatt zu finden, und die dafür erforderliche Zeit kann nicht absolut vorhersehbar sein.
  • Der PATRICIA-Baum-Ansatz verhält sich nicht gut bei Schicht-2-Paketvermittlung: bei einem Nachschlagevorgang im schlechtesten Fall kommt es zu einer großen Anzahl von Speicherzugriffen, was weitaus mehr als die mit Gigabitraten zur Verfügung stehende Zeit in Anspruch nimmt. Überdies sind Hardware-Implementierungen ziemlich komplex. Dieser Algorithmus wurde für Allzweck-Softwareimplementierungen entwickelt.
  • 1.2.1.2 HASH-CODE-TABELLEN
  • Das „Hash-Code-Verfahren" stellt einen alternativen Ansatz dar. Im Gegensatz zum PATRICIA-Baum arbeitet das Hash-Code-Verfahren strikt auf einer Grundlage einer genauen Übereinstimmung, und geht davon aus, dass die Anzahl von „Kanälen" (IP Zieladressen, VPI/VCIout), die das System zu jeder bestimmten Zeit handhaben muss, auf ein paar Tausend begrenzt ist.
  • Eine „Hash"-Funktion – eine Art Kompressionsalgorithmus – wird zur Verdichtung einer jeden eingehenden Kennung (24 oder 32 Bits) in der Tabelle auf einen Eintrag geringerer Größe (im typischen Fall 8–10 Bits) verwendet.
  • Bei Empfang eines Pakets wird anhand seiner eingehenden Kennung schnell ein entsprechender „Hash-Wert" berechnet. Dieser Wert verweist auf einen Hash-Code-Tabellenabschnitt (einen sogenannten „Slot"), der einer oder mehreren ausgehenden Kennungen entspricht. Durch die von einer Hash-Code-Abbildungsfunktion bewirkte Komprimierung wird die Tabelle klein genug, um unter Verwendung einfacher, hardwarebasierter Techniken zum genauen Abgleich schnell sequentiell durchsucht werden zu können.
  • Das Hauptproblem beim Hash-Code-Verfahren liegt darin, dass es von einer „flachen" Verteilung der Werte eingehender Kennungen ausgeht. Die „Hash"-Funktion bildet den Raum möglicher Werte eingehender Kennungen auf eine Vielzahl von Teilräumen ab.
  • In 2 steht die Ellipse für den Raum U, und die eingehenden gültigen Kennungen, also der Raum S, sind als winzige Kreise dargestellt. Die „Hash"-Funktion erzeugt die Grenzen zwischen Teilräumen. Müssen – wie in 3 gezeigt – auf einen Teilraum eine Anzahl von Kennungen größer als die „Slot"- Größe (Hash-Tabelle) abgebildet werden, dann muss die Hash-Funktion wieder angemessen neuberechnet werden.
  • Dabei kommt es zu einer Sortierung der Einträge in Hash-Tabellen, die sich nicht in Echtzeit durchführen lässt.
  • Dieses Verfahren lässt sich leicht auf Hardwarebasis implementieren und erzielt normalerweise ziemlich gute Leistung, wenn auch auf eine mit Unwägbarkeiten behaftete Weise.
  • Leider hat dieser Algorithmus einige Nachteile. Bei einer Hardwareimplementierung ist es nicht möglich, die „Hash"-Funktion im laufenden Betrieb zu ändern, was eine volle Sortierung der Einträge nach sich zieht. Also besteht die einzige Möglichkeit zur Überwindung des Problems in einer Erhöhung der „Slot"-Länge, was jedoch natürlich nicht immer möglich ist.
  • Die Hauptentwickler von ATM IC (Motorola, IDT, Transwitch) haben einen Algorithmus dieser Art implementiert. Eine typische Architektur ist in 4 gezeigt.
  • Ein Hauptproblem besteht darin, dass die Verarbeitungszeit für eingehende Kennungen nicht vorherbestimmbar ist (bei einigen Fällen ist eine sequentielle Suche erforderlich) und schlussendlich länger ausfallen wird als eine Paket- oder Zelldauer.
  • Die Adresskompressionsfunktion wird mittels mehrerer Alternativen (Readings) in den Hash-Tabellen implementiert, die vom steuernden Mikroprozessor „offline" geschrieben werden.
  • Der Algorithmus basiert auf der subtilen Annahme, dass die Sequenz eingehender Kennungen auf die gesamte Menge von Teilräumen „verteilt" wird und dass in jedem Teilraum die durchschnittliche Suchzeit geringer als die Paket- oder Zelldauer ist.
  • Darüber hinaus muss ein ziemlich langer FIFO (10 bis 20 Pakete/Zellpositionen) verwendet werden, um die eingehende Rate bzw. Geschwindigkeit von der Geschwindigkeit des Kompressionsalgorithmus zu entkoppeln, die im Durchschnitt die gleiche wäre.
  • In einigen Fällen kann es zu einem Verlust oder einer Fehlleitung des Pakets (bzw. der Zelle) kommen. Die einzige Möglichkeit zur Überwindung dieses Problems liegt in der Erhöhung der Geschwindigkeit der Hash-Tabelle.
  • Da diese Architektur kostengünstiger ist, wird sie von NIC-Chipherstellern bevorzugt; jedoch ist sie nicht fähig, das Abbilden einer beliebigen möglichen eingehenden Kennung auf lokale Kennungen zu unterstützen.
  • Im vorliegenden Kontext werden bisweilen unterschiedliche Ausdrücke zur Bezeichnung eines im Wesentlichen identischen Sachverhalts verwendet. Insbesondere wird die selbe N-Bit-Kette oder der selbe Ncpr-Bit Zeichensatz häufig mit folgenden Ausdrücken bezeichnet: Kennung der physikalischen Schicht, virtuelle Pfadkennungsadresse, Vektor. Diese Ausdrücke werden gewöhnlich in der Fachwelt verwendet und ohne weiteres verstanden, und die verschiedenen Bezeichnungen werden häufig bei der Beschreibung eines Algorithmus oder einer Datenverarbeitungsstruktur usw. benutzt.
  • 1.2.2 ALGORITHMEN MIT VORHERSEHBARER DAUER
  • Bei Algorithmen mit vorhersehbarer Dauer wird die Adresskompressionsfunktion in jeder Situation in einer Zeit durchgeführt, die kleiner oder sogar gleich der Paketdauer (Zelldauer) sein kann. Eine typische Architektur ist in 5 gezeigt.
  • Da die Dauer des Algorithmus bekannterweise kürzer als ein Paket- bzw. Zellzyklus sein kann, ist es möglich, JEDE BELIEBIGE Art von eingehendem Verkehr zuzulassen. Andererseits sind zur Implementierung der Funktion mehr Chip- oder Systemressourcen erforderlich als sie diejenigen Funktionen benötigen, die für einen Algorithmus von nicht vorhersehbarer Dauer erforderlich wären.
  • Es gibt drei wohlbekannte Techniken, die zur Durchführung der Adresskompressionsfunktion auf vorhersehbare Weise in weniger als einer Paket- bzw. Zelldauer fähig sind:
    • • CAM
    • • sequentielle Suche
    • • binärer Baum
  • 1.2.2.1 CAM
  • Gemäss diesem Verfahren wird die eingehende Adresse (z. B. VPI.VCI) einem Kontextzugriffsspeicher (engl. Context Access Memory, CAM) übergeben. Der CAM findet den richtig komprimierten Wert. Gibt es keinen Treffer, dann wird die Zelle verworfen.
  • Der CAM ist so breit wie die eingehende Adresse und tief genug, um die maximale Anzahl von Verbindungen unterbringen zu können.
  • Die Ausführungszeit der Adresskompressionsfunktion beträgt typischerweise ein paar Taktzyklen. Sie liegt in jedem Fall unter einer Zelldauer. Das Hauptproblem dieser Architektur ist die Verfügbarkeit des CAM-Moduls.
  • 1.2.2.2 SEQUENTIELLE SUCHE
  • Zum Erhalt einer komprimierten Kennung aus einer eingehenden Adresse kann eine sequentielle Suche auf einem RAM für eine Anzahl von Zyklen kleiner oder gleich der Paket- bzw. Zelldauer durchgeführt werden. Alles, was man dazu braucht, ist ein relativ kleiner RAM, ein Zähler zur Erzeugung von Adressen und ein eindeutiger 24-Bit-Komparator, wie es in 6 dargestellt ist.
  • 1.2.2.3 ERWEITERTE SEQUENTIELLE SUCHE
  • Zur Erhöhung des Umfangs der sequentiellen Suche ohne Überschreitung der Anzahl zur Verfügung stehender Taktzyklen ist es möglich, mehrere RAMs, mehrere Zähler zur Erzeugung der Adressen und mehrere 24-Bit-Komparatoren sowie einen Vorrangcodierer zu verwenden, wie 7 zeigt.
  • 1.2.2.4 BINÄRER BAUM
  • Die Abbildung der gültigen eingehenden Vektoren auf die zugehörige komprimierte Kennung wird mittels einer Verkettung von Speichern implementiert.
  • Ein Verweiskettenglied muss in diese Speicher geschrieben werden, um jedweden gültigen eingehenden Vektor mit der richtigen komprimierten Kennung zu verknüpfen.
  • Der erste Speicher wird durch einen Bitteil der eingehenden Adresse adressiert (im typischen Fall die höchstwertigen Bits). Der Inhalt desselben ist ein Zeiger zum zweiten (Speicher).
  • Der zweite Speicher wird durch den im ersten enthaltenen Zeiger adressiert, der mit einem weiteren Teil des eingehenden Vektors verkettet ist. Der Inhalt ist ein Zeiger zum dritten (Speicher).
  • Der dritte Speicher wird durch den im zweiten enthaltenen Zeiger adressiert, der mit einem weiteren, zum eingehenden Vektor gehörenden Teil verkettet ist. Die Kette endet, wenn jeder Bitteil der eingehenden Adresse verwendet wurde.
  • Um eine Wahrscheinlichkeit sicherzustellen, dass es nicht einem Blockieren kommt, muss die Breite eines jeden Speichers gleich Ncpr sein.
  • Leider ergibt sich dadurch eine ziemlich schlechte Speicherausnutzung (ca. 5 bis 10%).
  • 8 zeigt die Organisation der zur Implementierung einer Suche in einem binären Baum erforderlichen Speicher.
  • In 9 stellt die Ellipse den Raum U dar und die Menge gültiger eingehender Kennungen, also der Raum S, ist durch die winzigen Kreise dargestellt. Beim Binärbaumverfahren wird der Raum U mittels einer Direktadressierungstabelle, kurz DAT, in Bereiche gleicher Größe aufgeteilt; dann werden die Teilräume mittels RTis erneut aufgeteilt, um sicherzustellen, dass nicht mehr als ein zu S gehöriger Punkt in einem bestimmten Teilraum vorhanden ist.
  • 10 zeigt eine typische Implementierung bezüglich 24-Bit-ATM-Wörtern der eingehenden VPI.VCI-Paare, die in korrekte Kanalkennungen CID mit einer Breite von 12 Bits umgewandelt werden müssen. Die grundlegende Annahme besteht darin, einen Suchpfad auf einer externen RAM-Bank zu implementieren, die durch VPI.VCI-Felder adressiert wird.
  • Für eine Gesamtmenge von 392 kBytes werden vier RAM-Banken (ATM-Kompressionsblöcke) adressiert, um bis zu 4096 verschiedene CIDs zu erhalten. Es sind vier Adressierungszyklen erfor derlich. Die Dimensionierungen der Speicher hängen von der maximalen Anzahl erforderlicher CIDs ab.
  • Im US-Patent Nr. 5,414,701 ist ein Verfahren und eine Struktur zur Durchführung einer Adressenkomprimierung in einem ATM-System gemäss einem sogenannten Assoziativspeicher (engl. content addressable memory, CAM) wie oben erwähnt beschrieben.
  • Angesichts des Erfordernisses der Durchführung der erforderlichen Abbildung eingehender N-Bit-Kennungen auf virtuelle Pfadkennungen mit Ncpr Bit innerhalb einer Zellendauer hat die Implementierung einer konsequenten Datenverarbeitungsstruktur zur Durchführung einer derartigen Adresskompressionsfunktion gemäss einem der bekannten Ansätze wie den voranstehend erläuterten die Verwendung relativ großer Mengen physikalischer Ressourcen im Sinne von RAM-Speichern zur Folge.
  • Ungeachtet des verfolgten Ansatzes stellt die RAM-Speicheranforderung für einen zuverlässigen Betrieb der zur Durchführung der Adressenkomprimierung verwendeten Datenverarbeitungsstruktur einen wesentlichen Kostenfaktor dar, und es bietet sich offensichtlich die Gelegenheit, Verfahren zur effizienteren Durchführung der Adressenkomprimierung als mit gegenwärtig bekannten Verfahren möglich zu finden, die gleichzeitig unter geringeren Kosten realisierbar sind.
  • 2 AUFGABE UND ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist nunmehr ein weitaus effizienteres Verfahren als die bekannten Verfahren zur Adressenkomprimierung gefunden worden, mit dem sich die RAM-Speicheranforderung für vergleichbare Leistungen im Sinne der Anzahl von zur vollständigen Durchführung des Kompressionsalgorithmus erforderlichen Taktzyklen verringern lässt.
  • Geht man von einer Optimierung der Datenverarbeitungsstruktur der Erfindung aus, dann ist darüber hinaus die Leistung im Sinne der beiden Parameter Speicheranforderung und Anzahl von erforderlichen Taktzyklen erheblich besser als die Leistung, die mittels jedwedem der gemäss den bekannten Ansätzen realisierten Systeme erhalten werden kann.
  • Diese wichtigen Vorteile werden gemäss vorliegender Erfindung durch ein Verfahren erzielt, das bestimmte Aspekte eines Algorithmus mit nicht vorhersehbarer Dauer mit denjenigen eines klassischen sequentiellen Suchalgorithmus kombiniert. Die synergistische Kombination unterschiedlicher Ansätze ergibt die berichtete herausragende Leistung.
  • Im Grunde genommen kombiniert das Verfahren der Erfindung die Aufteilung des eingehenden Adressraums (U) in eine Vielzahl von Teilräumen, einen Baum-Such-Algorithmus zur Gruppierung (Clusterung) einer definierten Menge (S) von Kennungen, die in den Teilräumen enthalten sind, in die der Raum der eingehenden Adressen (U) aufgeteilt worden ist.
  • Nach einer derartigen Gruppierung der Elemente der definierten Menge (S) von Kennungen erfolgt eine sequentielle Suche innerhalb eines jeden derart gebildeten Clusters, um die Ncpr-Bit-Kennung zu identifizieren, die zum komprimierten Adressraum (C) gehört.
  • Die Durchführung einer derart eingeschränkten sequentiellen Suche über eine voridentifizierte Gruppe (Cluster) bekannter Größe gewährleistet die Identifizierung innerhalb einer gegebenen Anzahl von Taktzyklen (einer kalkulierbaren Zeitspanne). Das System kann weiter optimiert werden, entweder zur Verringerung der für die sequentielle Suche erforderlichen Anzahl von Taktzyklen oder zur Verringerung der Speicheranforderung.
  • Das erfindungsgemäße Verfahren ist im unabhängigen Anspruch 1 für einen unklassifizierten Adressraum definiert, während eine Ausführungsform des Verfahrens mit einem klassifizierten Adressraum im abhängigen Anspruch 5 definiert ist. Die Datenverarbeitungsstruktur, die das erfindungsgemäße Verfahren implementiert, ist im unabhängigen Anspruch 6 für einen unklassifizierten Adressraum definiert, während eine Ausführungsform der Struktur mit einem klassifizierten Adressraum im abhängigen Anspruch 10 definiert ist.
  • 1 KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 – Darstellung des Problems der Adressenkomprimierung
  • 2 – Beispiel der „Treffer"-Verteilung
  • 3 – Neukompilierung der „Hash"-Funktion
  • 4 – typische Implementierung der Kategorie mit nicht vorhersehbarer Dauer
  • 5 – typische Implementierung der Kategorie mit vorhersehbarer Dauer
  • 6 – Struktur einer sequentiellen Suche
  • 7 – Struktur einer erweiterten sequentiellen Suche
  • 8 – Suchstruktur eines binären Baums
  • 9 – Aufteilung des U-Raums mittels des Binärbaumverfahrens
  • 10 – Kanalkompressions-Blockdatenstruktur in ATM-Umgebung
  • 11 – Aufteilung des U-Raums mittels der erfindungsgemäßen CSSA-Technik
  • 12 – Blockdiagramm eines erfindungsgemäßen CSSA-Systems
  • 13 – Layout von DAT-, RTi- und SST-Blöcken
  • 14 – Beispiel 1 des CSSA-Betriebs
  • 15 – Beispiel 2 des CSSA-Betriebs
  • 16 – alternative Ausführungsformen des erfindungsgemäßen Systems
  • 17 – erweiterter CSSA#1 – sequentielle Suchtabelle mit verschiedenen SSTi
  • 18 – erweiterter CSSA#2 – sequentielle Suchtabelle mit einer einzigen, breiten SST
  • 19 – erweiterter CSSA#3 – FIFOs in Pipelineschaltung, abgestufte Architektur
  • 20 – Problemdarstellungsbeispiel für erweiterten CSSA#4
  • 21 – Architektur des erweiterten CSSA#4
  • 22 – Implementierungsbeispiel für erweiterten CSSA#4
  • 23 – Funktion zur Komprimierung einer generischen Adresse
  • 24 – Leistungsauswertungsverfahren
  • 25 – rein sequentielle Suchstruktur
  • 26 – erweiterte sequentielle Suchstruktur
  • 27 – Binärbaum-Suchstruktur
  • 28 – clusterbildende sequentielle Suchstruktur
  • BESCHREIBUNG EINER AUSFÜHRUNGSFORM DER ERFINDUNG
  • 3.1 DER CLUSTERBILDENDE SEQUENTIELLE SUCH-ALGORITHMUS (CSSA) GEMÄSS DER ERFINDUNG
  • Das neuartige CSSA-Verfahren der Erfindung teilt den Raum U mittels einer DAT, die vorzugsweise so klein wie möglich gemacht wird, in Bereiche gleicher Größe auf; anschließend werden die Teilräume wiederum effektiv aufgeteilt, mittels einer Kaskade von Rtis, um sicherzustellen, dass nicht mehr als SSLL zu S gehörige Punkte in einem bestimmten Teilraum vorhanden sind. In dem in 11 gezeigten Beispiel ist SSLL auf 4 eingestellt.
  • Um in den adressierten Teilräumen die einzigen zu S gehörigen Punkte zu identifizieren, wird mittels einer SST (sequentiellen Suchtabelle) eine sequentielle Suche durchgeführt.
  • In den nachfolgenden Absätzen wird nunmehr der Algorithmus ausführlich erläutert.
  • 3.1.1 BESCHREIBUNG DES CSSA
  • Der vorgeschlagene Algorithmus kombiniert die Clusterunterteilung eines Raums mit der sequentiellen Suche.
  • Die Menge S wird in Gruppen (Cluster) aufgeteilt, und innerhalb eines jeden Clusters wird eine sequentielle Suche durchgeführt. Genauer gesagt wird der CSSA in drei Hauptschritten durchgeführt:
    • 1. Aufteilung von U in gleiche Teilräume (wobei jeder Teilraum entweder die gesamte Menge S oder einige Elemente aus S oder ein beliebiges Element aus S enthalten kann);
    • 2. Clusterunterteilung von S (Elemente aus S werden auf eine Menge von Clustern aufgeteilt);
    • 3. sequentielle Suche innerhalb eines jeden Clusters.
  • Die Aufteilung wird in der Direktadressierungstabelle (DAT) durchgeführt, die Clusterbildungsphase wird in einer Kaskade von Verteilertabellen (engl. routing tables, RTi) durchgeführt, während die lineare Suche in der sequentiellen Suchtabelle (SST) stattfindet. Diese Struktur ist in 12 dargestellt.
  • Wie 12 zeigt, versorgt diese Struktur eine abschließende Übersetzungstabelle (engl. translation table, TT), gemäß einer üblichen Technik.
  • Die aufgeführten Tabellen haben das in 13 dargestellte Layout. Die zu jeder Tabelle gehörigen Felder sind in den nachstehenden Kästchen beschrieben.
  • Figure 00190001
  • Die CSSA-Struktur hat drei verschiedene Betriebsmodi:
    • • Initialisierungsmodus;
    • • Konfigurationsmodus;
    • • Normalbetriebsmodus.
  • Im Initialisierungsmodus werden die Inhalte von DAT, RTi, SST und SSTPF mit Ausgangsparametern initialisiert. Im Konfigurationsmodus müssen die Inhalte von DAT, RTi und SST auf zur Komprimierung einer definierten Menge zu komprimierender Adressen S geeignete Werte eingestellt werden. Im Normalbetriebsmodus findet der Algorithmus für jeden ihm zugeführten eingehenden Vektor (engl. incoming vector, INCVECT) einen ent sprechenden ausgehenden Vektor (engl. outcoming vector, OUTVECT), der zum INCVECT passt.
  • 3.1.2 INITIALISIERUNGSMODUS
  • Im Initialisierungsmodus werden die Inhalte von DAT, RTi, SST und SSTPF mit Ausgangsparametern initialisiert:
    .USED Felder werden mit 0 initialisiert;
    .PTR Felder werden mit UNASSIGNED initialisiert;
    .ADDR Felder werden mit UNASSIGNED initialisiert;
  • Der Pseudocode für den Initialisierungsmodus ist:
  • Figure 00200001
  • Figure 00210001
  • 3.1.3 NORMALBETRIEBSMODUS
  • Im Normalbetriebsmodus teilt der Algorithmus mittels der DAT den gesamten Raum U in Nsubspace gleiche Teilräume (engl. subspaces) auf. Dann werden die Elemente von S, die vielleicht in einen beliebigen (und sogar in mehr als einen) der erwähnten Teilräume fallen, durch die Kaskade von RTi zu Ncluster Mengen gruppiert. Das Ergebnis dieses Clusterbildungsvorgangs (den man sich als eine weitere Aufteilung der Menge S vorstellen kann), ist eine Clusterkennung (CLID, engl. CLuster Identifier), in dem die sequentielle Suche durchgeführt wird; dies findet in der SST statt. Zur sequentiellen Suche: Stimmt eine der im ausgewählten Cluster (d. h. demjenigen an Position SSLPOS (Sequentielle SuchListenPOSition) gespeicherten Adressen mit dem eingehenden Vektor INCVECT überein (in der Praxis wird das Vergleichsergebnis überwacht), dann ist der eingehende Vektor komprimierbar und seine komprimierte Form c wird durch das Paar (CLID, SSLPOS) dargestellt; ansonsten wird der eingehende Vector INCVECT nicht komprimiert.
  • Es ist auch möglich, die komprimierte Form c als die absolute Adresse der von der sequentiellen Suchphase in der SST identifizierte Zeile zu definieren:
  • Zusammenfassung
    • • falls für einen gegebenen INCVECT γ S φ!c = (CLID, SSLPOS)|{OUTVECT = SST(c) = INCVECT} → dann ist INCVECT komprimierbar;
    • • falls für einen gegebenen INCVECT γ S /φc = (CLID, SSLPOS)|{OUTVECT = SST(c) = INCVECT} → dann ist INCVECT nicht zur Komprimierung konfiguriert;
    • • alle INCVECT γ (U – S) sind nicht zur Komprimierung konfiguriert;
  • In 12 ist eine Übersetzungstabelle (TT) gezeigt. Dieser Block ist nicht Teil der Struktur und ist fakultativ. Er interveniert nicht im erfindungsgemäßen Algorithmus und ist als einfaches Werkzeug zur Durchführung auch einer Adressenübersetzung gezeigt, deren Ergebnis eine ausgehende TAG ist.
  • Der Pseudocode für den Algorithmus (Zweig des Normalbetriebsmodus) ist:
  • Figure 00220001
  • Figure 00230001
  • Figure 00240001
  • 3.1.4 KONFIGURATIONSMODUS
  • Angesichts der Menge S zu komprimierender Adressen und der Menge C komprimierter Adressen besteht die Einrichtung (Setup) des CSSA in der Zuweisung all der Parameter DAT[i].PTR, DAT[i].USED, RTi[i].PTR, RTi[i].USED zur Konfigurierung aller Elemente der Menge S zur Komprimierung. Der CSSA unterstützt sowohl einen absoluten als auch einen inkrementellen Konfigurationsmodus:
    • • bei einem absoluten Modus werden alle Elemente von S in einem einzigen Konfigurationsmodusdurchgang zur Komprimierung eingestellt, d. h. alle Parameter von DAT, RTi, SST, SSTPF werden komplett neu geschrieben;
    • • bei einem inkrementellen Modus werden neue Elemente zur Komprimierung inkrementell konfiguriert oder entkonfiguriert; d. h. ohne alle Parameter von DAT, RTi, SST, SSTPF komplett neu zu schreiben.
  • Der Pseudocode für den Konfigurationsmodus lautet wie folgt:
    Figure 00240002
    Figure 00250001
    wobei dat_rowsel(s), rt_pagesel(i,s), rt_rowsel(i,s), sst_pagesel(s) und sst_rowsel(s) miteinander verbundene Funktionen sind, um zur Vermeidung von Routingüberlastung für eine spezifische Tabelle (DAT, RTi, SST, SSTPF) die geeignetste Zeile oder Seite zu berechnen, beginnend als Eingangsdaten aus der zur Komprimierung ausgewählten Adresse s. Der Pseudocode für die aufgeführten Funktionen lautet wie folgt:
  • Figure 00260001
  • Figure 00270001
  • Figure 00280001
  • 3.1.4.1 ANMERKUNG ZU BETRIEBSMODI
  • Der Teil des Algorithmus, der im Normalbetriebsmodus ausgeführt wird, ist vollständig hardwareimplementiert, während der Teil, der im Konfigurationsmodus ausgeführt wird, vollständig softwareimplementiert ist (die implementierte Architektur gibt lediglich die Grundbausteine vor, die die Konfigurationssoftware zum Schreiben der physikalischen Tabellen benötigt). Das Feld USED ist nicht wirklich in den physikalischen Tabellen vorhanden, es ist nur in einem Softwarebild der physikalischen Tabellen vorhanden, wie es von der Konfigurationssoftware während der Konfigurationsphase verwendet wird.
  • 3.1.5 BEISPIELE
  • Beispiel 1
  • In 14 ist ein Betriebsbeispiel des erfindungsgemäßen CSSA-Verfahrens gezeigt. Dieses Beispiel trägt zum Verständnis sowohl des Konfigurationsmodus als auch des Normalbetriebsmodus bei. Bei diesem Beispiel wird der gesamte Raum U von allen Adressen mit acht Bits dargestellt. Wir interessieren uns für die Komprimierung der zu U gehörigen achten, nämlich: addr0, addr1, addr2, addr3, addr4, addr5, addr6, addr7, die die Menge S bilden.
  • Zusammenfassung
    • U ∴ {a0, .... a255};
    • S ∴ {a0, ..., a7} ∴ {addr0, addr1, addr2, addr3, addr4, addr5, ^addr6, addr7};
    • C ∴ {a0, ... a7};
  • Die Anzahl von Cluster wird als Ncluster = 4 gewählt und die Länge eines jeden Clusters ist auf SSLL = 4 eingestellt. Der Parameter Nsubspace = 4 wurde gewählt, damit der gesamte Raum U in vier gleiche Teilräume aufgeteilt wird: Sub0, Sub1, Sub2, Sub3. Die zur Komprimierung konfigurierten Adressen sind sowohl hexadezimal als auch binär codiert (d. h. addr0 = 42(hex)/01-00-00-10 (bin)).
  • Bei der binären Schreibweise sind die Ziffern paarweise angeordnet (jeweils getrennt durch „-„): das 1. Paar wird geladen, um U in vier Teilräume aufzuteilen (Sub0, Sub1, Sub2, Sub3); das 2., 3. und 4. Paar wird geladen, um die Position innerhalb einer jeden Seite auszuwählen, wohin jede addri für die Routingtabellen RT1, RT2 bzw. RT3 geleitet werden soll (dieser Freiheitsgrad wird vom Konfigurationsteil des Algorithmus verwendet, um eine Routingüberlastung einer Tabelle RTi zu vermeiden). Die Gruppierung der Elemente der Menge S zu Ncluster Mengen erfolgt durch geeignete Wahl der Zeiger RTi[j.k].PTR.
  • Beispiel 2
  • 15 zeigt ein weiteres Beispiel des Algorithmusbetriebs.
  • 3.1.6 ALGORITHMUSBEWEIS
  • Der Algorithmusbeweis wird durch eine Dimensionierung von DAT, RTi, SST und SSTPF für ein gegebenes allgemeines Problem sowie durch konstruktiven Nachweis geführt, dass bei der berechneten Dimensionierung für alle möglichen Paare (INCVECT, OUTVECT) eine Menge von Parametern W existiert, die die gewünschte Transformation S → C ermöglicht.
  • Die Beweisführung erfolgt gemäß diesem Schema:
    • 1. für jede Stufe wird eine Anzahl von Verknüpfungen (Zeilen*Seiten), die zur Zuweisung aller zu komprimierender Adressen ausreicht, zugewiesen (hinreichende Bedingung);
    • 2. zwischen jedem Paar benachbarter Tabellen wird eine passende, zur Vermeidung von Routingüberlastung geeignete Aufteilung (Seitenanzahl, Zeilenanzahl) definiert (hinreichende Bedingung);
  • Die Schritte (1), (2) beweisen, dass zwischen jedem Tabellenpaar alle Adressen ohne Überlastung zugewiesen und geroutet werden können. Dies beweist den Algorithmus, da die Schritte (1) und (2) über alle Tabellen iteriert werden, wobei mit der SST begonnen wird und sich das Ganze zurück zur DAT fortsetzt.
  • 3.1.6.1 DIMENSIONIERUNG VON SST UND SSTPF
  • Die Menge S zu komprimierender Adressen hat n Elemente. Daher: ncpr = ceil(log2(ns)) (1)
  • Die Anzahl von Clustern Ncluster (die eine Potenz von 2 sein muss), wird in Abhängigkeit von der erforderlichen maximalen Dauer der sequentiellen Suchphase ausgewählt, welche von der Länge einer jeden sequentiellen Suchliste (SSLL) abhängt.
  • Figure 00300001
  • Somit ist SST eine Tabelle mit Ncluster Seiten, bei der jede Seite SSLL Zeilen hat. SSTPF ist eine Tabelle mit Ncluster Zeilen.
  • 3.1.6.2 DIMENSIONIERUNG VON RTI-Einleitung
  • Die Dimensionierung der Verteilertabellen RTi beginnt mit der einen in der Nähe der SST (RTnst) und setzt sich rückwärts fort bis zur RT1. Zur Kennzeichnung einer jeden RTi sind drei Dimensionen erforderlich:
    PGLRTi Seitenlänge für i-nte RTT (PGLRTi ist eine Potenz von 2,
    Figure 00310001
    );
    NpgRTi Seitenanzahl von RTi;
    WLRTi Wortlänge von RTi (ausgedrückt in Bits).
  • Es ist äußerst wichtig, die Werte von NpgRTi und
    Figure 00310002
    groß genug zu wählen, um eine Routingüberlastung zu vermeiden. Dafür muss ein Satz von Gleichungen erstellt werden, wobei jede der Gleichungen jede mögliche unterschiedliche Art von Blockzustand in Betracht zieht.
  • 3.1.6.3 DIMENSIONIERUNG VON RTNST
  • Ausgehend von der Tabelle RTnst (die mit SST verbundene versorgende) muss zur Adressierung jeder Seite von SST folgende Beziehung verifiziert werden: WLRTnst = log2Ncluster, (3)
  • Figure 00310003
  • Gleichung (4) definiert ein Inkrement der Anzahl komprimierter Adressen, das ausreicht, um sicherzustellen, dass in RTnst eine ausreichende Anzahl von Verknüpfungen zur Zuordnung aller zu S gehöriger n Adressen (Fall der vollkommen ungeordneten Adressen) vorhanden ist. Um einen angemessenen Wert von NpgRTnst einzustellen, muss eine Strategie zur Vermeidung von Routingüberlastung verfolgt werden.
  • 3.1.6.3.1 Bedingung, dass es zu keiner Überlastung kommt
  • Ein Schlüsselfaktor, der bei jedem Routingprozess unter Kontrolle gehalten werden muss, ist die Überlastung von Ver teilertabellen; jede eingehende Adresse wird nämlich bei ihrem Verlauf durch die Wegleittabellen an das korrekte Cluster „geroutet". Die Überlastung tritt in denjenigen Zeilen auf, bei denen die USED-Felder einen relativ hohen Wert haben; dieser Fall tritt ein, wenn viele unterschiedliche Adressen den selben Bitausschnitt s (b1, ..., bm) in der selben RTi aufweisen (Fall der vollständig zusammengefallenen Adressen). In diesem Fall müssen diese zusammenfallenden Adressen auf verschiedene Seiten aufgeteilt werden und dies setzt die Seitenanzahl für jede RTi. In der folgenden Gleichung kommt dieser Umstand zum Ausdruck:
  • Figure 00320001
  • Gleichung (5) drückt einen Umstand aus, der auf einer Eigenschaft binärer Zahlen beruht:
    die Anzahl von Vektoren von n Bits, die das selbe Muster von
    Figure 00320002
    benachbarter Bits (in jeder beliebigen jedoch festen Position im Vektor) aufweisen ist
    Figure 00320003
    . Die Anzahl in Betracht zu ziehender Adressen ist durch
    Figure 00320004
    nach oben hin begrenzt. Daher muss das Minimum von
    Figure 00320005
    und
    Figure 00320006
    gewählt werden.
  • In Gleichung (5) nimmt der Ausdruck min (
    Figure 00320007
    ,
    Figure 00320008
    ) in jedem praktischen Fall den Wert
    Figure 00320009
    an, folglich wird daher Gleichung (5) zu: NpgRtnstΣNcluster; (5')
  • Gleichung (5/5') definiert eine hinreichende Bedingung zur Vermeidung von Überlastung in Stufe nst (RTnst).
  • Durch Einsetzen von Gleichung (5') in Gleichung (4) erhalten wir nun:
  • Figure 00330001
  • Die letztere Beziehung, die für
    Figure 00330002
    zu verifizieren ist, wird durch eine Erreichbarkeitsbedingung bestimmt.
  • 3.1.6.3.2 Erreichbarkeitsbedingung
  • Diese Bedingung erlegt auf, dass alle Seiten von SST von jeder vollständig gerouteten Seite von RTnst (eine Seite, in der das USED.Feld für mindestens eine Zeile ungleich Null ist) aus erreicht werden können
  • Figure 00330003
  • Die Gleichungen (5') und (6) und (7) ergeben die erforderliche Dimension von RTnst.
  • Neben der Dimensionierung muss ein weiterer Parameter definiert werden, um den im vorhergehenden Absatz vorgestellten Algorithmus durchführen zu können: d. h. die maximale Wiederverwendung für jede Zeile von RTnst, d. h. es muss der maximal annehmbare Wert für das Feld RTnst[j,k].USED bestimmt werden; dieser Wert wird als
    Figure 00330004
    bezeichnet.
  • Dieser Wert wird auf der Grundlage einer Zuweisbarkeitsbedingung berechnet.
  • 3.1.6.3.3 Zuweisbarkeitsbedingung
  • Übersteigt in einer beliebigen Reihe einer beliebigen Seite von RTnst das USED-Feld den Parameter SSLL, dann werden die zu dieser Zeile gehörigen Adressen von keiner beliebigen Seite von SST zuweisbar sein (nicht einmal von einer leeren Seite, da eine leere Seite maximal SSLL Einträge zuweisen kann). Zur Verhinderung dieses Umstands muss der Wert für
    Figure 00340001
    durch SSLL begrenzt sein:
  • Figure 00340002
  • Ist diese Gleichung verifiziert, dann ist die Dimensionierung von RTnst abgeschlossen.
  • Zusammenfassung
    • WLRTnst = log2Ncluster;
    • NpgRTnstΣNcluster;
      Figure 00340003
  • Zur Einsparung von Speicherplatz und zur Vereinfachung der Hardwareimplementierung:
  • Figure 00340004
  • 3.1.6.4 DIMENSIONIERUNG VON RTI
  • Für alle anderen RTi ungleich RTnst bleibt das Obengenannte durch Substitution von Ncluster mit NpgRTnst gültig. Somit ist: WLRTi = log2(NpgRTi); (9)und die folgende Gleichung setzt ein Inkrement für die Anzahl komprimierter Adressen
    Figure 00350001
    das ausreicht um sicherzustellen, dass in der i-nten Stufe (RTi) eine ausreichende Anzahl von Verknüpfungen zur Zuweisung aller ns Adressen zur Verfügung steht, die zu S gehören (Fall der vollständig ungeordneten Adressen).
  • Was RTnst anbelangt, so muss die maximale Wiederverwendung für jede Zeile von RTi, d. h. der maximale annehmbare Wert für das Feld RTi[j,k].USED, bestimmt werden, um den im voranstehenden Absatz vorgestellten Algorithmus durchführen zu können; dieser Wert wird als
    Figure 00350002
    bezeichnet und wird auf der Grundlage der Zuweisbarkeitsbedingung berechnet.
  • 3.1.6.4.1 Zuweisbarkeitsbedingung
  • Wenn in einer beliebigen Zeile einer beliebigen Seite einer beliebigen RTi das USED-Feld eine bestimmte Funktion der nächsten RTi(RTi + 1) übersteigt, dann können die zu dieser Zeile gehörigen Adressen durch eine beliebige Zeile einer beliebigen Seite von RTi + 1 nicht zugewiesen werden (nicht einmal durch eine leere Seite, da eine leere Seite von RTi + 1 maximal
    Figure 00350003
    Einträge zuweisen kann). Wird diese Grenze überschritten, dann wird
    Figure 00350004
    irgendwo in RTi + 1 überschritten und so weiter hoch bis zum Erreichen von RTnst und schließlich SST, wo der Überzuweisungsfehler (RTnst[j,k].USED>SSLL) in Erscheinung tritt. Die Grenze
    Figure 00360001
    ist gültig, wenn die von einer Zeile von RTi gerouteten Adressen symmetrisch unter den PGLRTi+1 Zeilen einer Seite von RTi + 1 aufgeteilt wird; dies ist ein optimistischer Umstand. Im schlechtesten Fall fallen alle diese Adressen in die selbe Zeile und folglich wird die Grenze
    Figure 00360002
    sein. Zusammenfassung
    Figure 00360003
    alle Adressen werden symmetrisch auf PGLRTi+1 Zeilen einer Seite von RTi + 1 aufgeteilt;
    Figure 00360004
    alle Adressen fallen in die selbe Zeile einer Seite von Ti + 1;
  • Um die weniger strenge Bedingung als Grenze zu setzen, müssen ein paar Gleichungen gleichzeitig sowohl bezüglich RTi als auch RTi + 1 verifiziert werden; daher muss das folgende System für jedes Paar benachbarter RTi verifiziert werden.
  • Figure 00360005
  • Zieht man in Betracht, dass
    Figure 00360006
    nicht überschritten werden kann, dann kann dieser Wert als SSLL für SST im Fall vollständig zusammenfallenden Adressen betrachtet werden, daher bleibt die "Keine-Überlastung"-Bedingung durch Substitution von Ncluster durch NpgRTi+1 gültig:
    Figure 00360007
    wobei NpgRTi+1 bekannt ist. Gleichung (14) kann, wie zuvor bei Gleichung (5) geschehen, vereinfacht werden, und dies ergibt NpgRTi ≥ NpgRTi+1; (14')
  • Gleichung (14/14') stellt eine hinreichende Bedingung zur Vermeidung von Überlastung an der i-nten Stufe dar.
  • Durch Substitution von Gleichung (14') in Gleichung (10) ergibt sich nunmehr:
  • Figure 00370001
  • Zur Einsparung von Speicherplatzbedarf kann die selbe Anzahl von Seiten für jede RTi zugewiesen werden: NpgRTi = NpgRTi+1.
  • Die letzte Bedingung, die für
    Figure 00370002
    verifiziert werden muss, wird noch immer durch die Erreichbarkeitsbedingung gesetzt.
  • 3.1.6.4.2 Erreichbarkeitsbedingung
  • Diese Bedingung erlegt auf, dass alle Seiten von RTi + 1 von jedweder vollständig gerouteten Seite von RTi (einer Seite, in der das USED-Feld für eine beliebige Zeile ungleich Null ist) erreicht werden können:
  • Figure 00370003
  • Gleichung (14') und (15) und (16) geben die Dimension von RTi⎕i < nst an. Zusammenfassung: WLRTi = log2(NpgRTi+1); NpgRTi ≥ NpgRTi+1;
  • Figure 00380001
  • Zur Speichereinsparung und zur Vereinfachung der Hardwareimplementierung:
  • Figure 00380002
  • 3.1.6.5 DIMENSIONIERUNG VON DAT
  • Die Ausschnitte von Bits, die die Zeilen einer jeden DAT oder RTi adressieren, stehen durch folgende Gleichung in Beziehung zueinander:
    Figure 00380003
    daher
  • Figure 00380004
  • Was den Parameter WLDAT anbelangt, so wird dieser durch Gleichung (19) eingestellt. WLDAT = log2(NpgRTi). (19)
  • Die Gleichungen (18) und (19) geben die Dimension von DAT an
    Figure 00390001
    WLDAT = log2(NpgRTi).
  • Geht man von NpgRTi = Ncluster aus, wie zuvor bei RTi:
    Figure 00390002
    WLDAT = log2(Ncluster).
  • 3.1.7 DER ALGORITHMUS AN SICH
  • Wie bereits angenommen wurde, impliziert ein Beweis, dass eine Routingüberlastung vermieden wird, dass eine Zuweisung von nreuseRTi Verknüpfungen nicht überschritten wird. Dies geschieht durch Überwachung aller Felder RTi[j,k].USED während einer Konfigurationsmodusphase unter gleichzeitiger Zuweisung von Verknüpfungen auf die leersten Seiten. Diese Zuweisungsstrategie kann als „Maximalverteilung" bezeichnet werden, da sie die Adressen auf die größtmögliche Anzahl von Seiten verteilt.
  • 3.2 ERWEITERUNGEN DER CSSA-TECHNIK
  • Die Leistungen eines CSSA-Systems lassen sich durch Modifikation des Algorithmus weiter verbessern. Diese alternativen Ausführungsformen der grundlegenden CSSA-Technik der Erfindung werden als ERWEITERTER CSSA bezeichnet, gefolgt von jeweils der Nummerierung #1, #2, #3, #4 zur Kennzeichnung ebenso vieler alternativer Ausführungsformen. Damit lassen sich zwei Arten von Verbesserungen erzielen:
    • 1) eine weitere Reduzierung der Speichergröße (engl. memory size, kurz: Msize);
    • 2) eine weitere Verringerung der zur Ausführung des Algorithmus erforderlichen Anzahl von Taktzyklen (engl. number of clock cycles, kurz: Nclk).
  • 3.2.1 ERWEITERTER CSSA #1
  • Der grundlegende CSSA-Algorithmus lässt sich unter Modifikation der sequentiellen Suchphase weiter verbessern. Die Erweiterung wird als ERWEITERTER CSSA #1 bezeichnet. Zwei Arten von Verbesserungen lassen sich dabei erzielen: eine weitere Reduzierung der Speichergröße (Msize) oder eine weitere Verringerung der zur Ausführung des Algorithmus erforderlichen Anzahl von Taktzyklen (Nclk).
  • Diese weiter verbesserten Ausführungsformen implizieren allgemein das Ersetzen des Schritts „Sequentielle Suche" durch einen Schritt „Erweiterte Sequentielle Suche". Im Sinne der Architektur bedeutet dies das Ersetzen der SST (Sequentielle Suchtabelle) durch eine ESST (Erweiterte Sequentielle Suchtabelle) wie in 16.
  • Eine Architektur eines ESST-Blocks gemäss einer ersten Ausführungsform (ERWEITERTER CSSA #1) ist in 17 gezeigt.
  • Der ESST-Block wird mit einer Bank von Nsst SSTI mit Nsst unabhängigen Adressengeneratoren gebaut, wobei jeder Adressengenerator eine Adresse für die entsprechende SSTi erzeugt. Eine Menge von Nssti Komparatoren, die das Suchergebnis für jede SSTi mit dem eingehenden Vektor (INCVECT) vergleichen, vervollständigt die Architektur. Sobald die Clusterkennung (CLID) bereitgestellt ist, beginnt die Suchphase parallel in allen SSTis. Sobald eine SSTi die komprimierte Adresse findet, hält die Suche an, die komprimierte Adresse wird ausgegeben und durch die Validierung des ausgehenden Vektors validiert.
  • Zum besseren Verständnis des Ausmaßes der Verbesserung ist es zweckdienlich, ein grundlegendes CSSA-System mit einem System eines ERWEITERTEN CSSA #1 zur Lösung des selben Komprimierungsproblems zu vergleichen.
    • a) Die SST im CSSA ist durch diese Parameter definiert:
      • Ncluster_sst Anzahl von Clustern (Seiten) von SST;
      • SSLL_sst Anzahl der Zeilen einer jeden Seite von SST.
      Bezüglich des Speicherbedarfs ist der CSSA durch diese Parameter gekennzeichnet:
      • Msize_dat_cssa von der DAT im CSSA benötigte Menge an Speicher
      • Msize_rt_cssa von allen RTi im CSSA benötigte Menge an Speicher
      • Msize_sst von der SSTim CSSA benötigte Menge an Speicher
      • Msize_cssa = Msize_dat_cssa + Msize_rt_cssa + Msize_sst.
      Bezüglich der Geschwindigkeitsanforderungen ist der CSSA durch diese Parameter gekennzeichnet:
      • Nclk_dat_cssa Anzahl der für die Durchführung des CSSA-Algorithmus durch die DAT im CSSA benötigten Taktzyklen;
      • Nclk_rt_cssa Anzahl der für die Durchführung des CSSA-Algorithmus durch alle RTi im CSSA benötigten Taktzyklen;
      • Nclk_sst für die Durchführung des CSSA-Algorithmus durch die SST im CSSA benötigte Anzahl von Taktzyklen;
      • Nclk_cssa = Nclk_dat_cssa + Nclk_rt_cssa + Nclk_sst_cssa (Gesamtanzahl der für die Durchführung des CSSA-Algorithmus erforderlichen Taktzyklen).
    • b) Die ESST im ERWEITERTEN CSSA #1 ist durch diese Parameter definiert:
      • Nssti Anzahl der in ESST instanziierten SSTi;
      • Ncluster_ssti Anzahl von Clustern (Seiten) einer jeden SSTi;
      • SSLL_ssti Anzahl der Zeilen einer jeden Seite einer jeden SSTi.
      Bezüglich des Speicherbedarfs ist der Erweiterte CSSA #1 durch diese Parameter gekennzeichnet:
      • Msize_dat_ecssa von der DAT im ERWEITERTEN CSSA #1 benötigte Menge an Speicher;
      • Msize_rt_ecssa von allen RTi im ERWEITERTEN CSSA #1 benötigte Menge an Speicher;
      • Msize_esst_ecssa von allen SSTi im ERWEITERTEN CSSA #1 benötigte Menge an Speicher;
      Bezüglich der Geschwindigkeitsanforderungen ist der Erweiterte CSSA #1 durch diese Parameter gekennzeichnet:
      • Nclk_dat_ecssa Anzahl der für die Durchführung des CSSA-Algorithmus durch die DAT im ERWEITERTEN CSSA #1 benötigten Taktzyklen;
      • Nclk_rt_ecssa Anzahl der für die Durchführung des CSSA-Algorithmus durch alle RTi im ERWEITERTEN CSSA #1 benötigten Taktzyklen;
      • Nclk_esst_ecssa Anzahl der für die Durchführung des CSSA-Algorithmus durch alle SSTi im ERWEITERTEN CSSA #1 benötigten Taktzyklen;
      • Nclk_ecssa=Nclk_dat_ecssa+Nclk_rt_ecssa+Nclk_esst_ecssa (Gesamtanzahl der Taktzyklen für die Durchführung des ERWEITERTEN CSSA #1-Algorithmus).
  • Liegt die Zielsetzung in einer Verringerung von Msize, dann werden die Parameter so eingestellt, dass sich die maximale Einsparung an Speicherbedarf ergibt und das Verhältnis zwischen einem grundlegenden CSSA-System und einem System gemäss der Ausführungsform ERWEITERTER CSSA #1 folgendes ist:
    • • Ncluster_ssti = Ncluster_sst für jedes i;
    • • SSLL_ssti = SSLL_sst;
    jedes Cluster im ERWEITERTEN CSSA #1 wird mit einem Faktor Nssti multipliziert, da jedoch Nssti SSTi Tabellen parallel verwendet werden, ist die gesamte Phase der sequentiellen Suche noch immer die selbe wie beim normalen CSSA.
  • Als Folge dieser Parametereinstellung sind die Zeitleistungen wie folgt:
    • • Nclk_dat_ecssa = Nclk_dat_cssa;
    • • Nclk_rt_ecssa = Nclk_rt_cssa;
    • • Nclk_esst_ecssa = Nclk_sst_cssa.
  • Als von Nclk_esst_ecssa im ERWEITERTEN CSSA #1 und von Nclk_sst_cssa im CSSA dominierte Gesamtanzahl von Taktzyklen kann folgendes ausgesagt werden:
    • • Nclk_ecssa ≅ Nclk_cssa;
    dies ist nur eine grobe Schätzung; die effektive Zeitleistung ist sogar noch besser, aufgrund der möglichen Verringerung der Anzahl von RTi Stufen infolge der erhöhten Dimension von Clustern im Fall des ERWEITERTEN CSSA #1.
  • Die Speicheranforderungen sind:
    • • Msize_esst_ecssa ≅ Msize_sst_cssa*Nssti;
    dies ist die einzige Speichererhöhung, da (wie im nächsten Absatz, der dem Leistungsvergleich gewidmet ist, bewiesen werden wird),
    • • Msize_dat_ecssa < Msize_dat_cssa;
    • • Msize_rt_ecssa < Msize_rt_cssa;
    folglich,
    • • Msize_ecssa < Msize_cssa.
  • Liegt die Zielsetzung in einer Verringerung von Nclk, dann werden die Parameter so eingestellt, dass sich unter Konstanthaltung der Gesamtspeichermenge die maximale Geschwindigkeitserhöhung ergibt, wobei das Verhältnis zwischen einem grundlegenden CSSA-System und einem System gemäss der Ausführungsform ERWEITERTER CSSA #1 folgendes ist:
    • • Ncluster_ssti = Ncluster_sst für jedes i;
    • • SSLL_ssti = SSLL_sst/Nssti;
    Nssti ist so zu wählen, dass SLL_ssti Σ 1.
  • Jedes Cluster im ERWEITERTEN CSSA #1 hat noch immer die selbe Größe wie im CSSA, da jedoch Nssti ssti parallel verwendet werden, verringert sich die gesamte Phase der sequentiellen Suche um einen Faktor Nssti.
  • Als Folge dieser Parametereinstellung sind die Speicheranforderungen
    • • Msize_dat_ecssa = Msize_dat_cssa;
    • • Msize_rt_ecssa = Msize_rt_cssa;
    • • Msize_esst_ecssa = Msize_sst_cssa;
    somit,
    • • Msize_ecssa = Msize_cssa;
  • Bezüglich der Zeitleistungen ergibt sich:
    • • Nclk_dat_ecssa ∴ Nclk_dat_cssa;
    • • Nclk_rt_ecssa ∴ Nclk_rt_cssa;
    • • Nclk_esst_ecssa ∴ Nclk_sst_cssa/Nssti.
  • Als die von Nclk esst ecssa im ERWEITERTEN CSSA #1 und von Nclk_sst_cssa im CSSA dominierte Gesamtanzahl von Taktzyklen kann Folgendes angegeben werden:
    • • Nclk_ecssa ∴ Nclk_cssa/Nssti;
  • 3.2.2 ERWEITERTER CSSA #2
  • Eine weitere Ausführungsform des grundlegenden CSSA lässt sich mit einer weiteren ESST-Implementierung realisieren.
  • Diese Ausführungsform ist in 18 gezeigt.
  • Anstelle einer Vielzahl von SST so breit wie der eingehende Vektor, wie beim ERWEITERTEN CSSA #1, ist es möglich, einen einzigen breiten Speicher zu verwenden, der so groß ist wie die Breite des eingehenden Vektors multipliziert mit Nsst. In diesem Fall ist nur ein einziger Adressengenerator erforderlich, jedoch werden Nsst Komparatoren benötigt.
  • In jedem Fall sind die mit dem ERWEITERTEN CSSA #1 und dem ERWEITERTEN CSSA #2 erhaltenen Leistungen gleichwertig.
  • 3.2.3 ERWEITERTER CSSA #3
  • Eine weitere mögliche Ausführungsform des CSSA, der ERWEITERTE CSSA #3, basiert auf einer Aufteilung des Algorithmus in zwei verschiedene Schritte, die jeweils als Clustererfassung bzw. sequentielle Suche bezeichnet werden. Jeder Schritt kann bis zu einer Zell- bzw. Paketzeit dauern, aufgrund der Pipelineschaltung mit zwei FIFOs, die wie in 19 gezeigt implementiert ist.
  • In der ersten Phase (Clustererkennung) werden die DAT- und RTi-Analysen durchgeführt, und eine Clusterkennung (CLID) wird erfasst.
  • Im zweiten Schritt erfolgt die sequentielle Suche zum Auffinden der komprimierten Kennung.
  • Diese Ausführungsform ermöglicht eine Erhöhung der Clustergröße, mit erheblichen Vorteilen im Sinne einer Speichergrößenverringerung. Der dafür zu zahlende Preis ist eine Latenzzeit von zwei Zellen (Paketen) im Vergleich zur „Standard"-CSSA-Latenzzeit von einer Zelle.
  • In jedem Fall ist die Verringerung von Msize durch die Größe der SST begrenzt, die mindestens gleich der minimalen theoretischen Größe sein muss (CAM).
  • Diese Ausführungsform lässt sich leicht mit der Architektur entweder des ERWEITERTEN CSSA #1 oder des ERWEITERTEN CSSA #2 koppeln, um die Clustergröße wieder zu erhöhen.
  • 3.2.4 ERWEITERTER CSSA #4
  • Eine weitere und besonders effiziente Ausführungsform der grundlegenden CSSA-Technik dieser Erfindung kann zur Komprimierung verschiedener Klassen oder Mengen von Adressen S1, S2, ..., SNclasses, d. h. den Mengen zu komprimierender Adressen (deren Gesamtheit als S bezeichnet wird), die der Menge U, also dem Gesamtadressraum, angehören, geeignet sein.
  • Für jede zur generischen Menge Sj gehörige Adresse muss der Algorithmus eine und nur eine Adresse identifizieren, die zu Cj, der Menge komprimierter Adressen, gehört, die der Menge Sj entspricht (d. h. eine Transformation Sj → Cj durchführen); dies ist ⎕jι1, ..., Nclass zu verifizieren.
  • Ein graphisches Darstellungsbeispiel dieses Problems ist in 20 gezeigt.
  • Gemäss dieser Ausführungsform (ERWEITERTER CSSA #4) wird eine Kombination der drei grundlegenden Schritte des Basisalgorithmus verwendet, nämlich Aufteilen von S in Teilräume durch die Direktadressierungstabelle (DAT), Clusterbildung durch Routingtabellen (RTij) und sequentielle Suche über mindestens Nclass sequentielle Suchtabellen (SSTj).
  • Das System dieser Ausführungsform kombiniert jedoch in einem Baum, mit einer willkürlichen Anzahl von Ebenen, verschiedene Clusterbildungsphasen (RTi,j-nter Zweig), die parallel arbeiten und von einem gemeinsamen Zweig ausgehen, wobei dieser gemeinsame Zweig der Endpunkt einer Aufteilungsphase (DAT) plus einer Clusterbildungsphase (RT1_Wurzel, RTi_Wurzel, ..., RTn_Wurzel) ist, welche der gemeinsame Vorfahre aller Zweige ist, wobei jedes Blatt des Baums durch eine sequentielle Suchphase (SST j-nter Zweig) gebildet wird. Dies führt zu einer Struktur, die als „RT-Baum" beschrieben werden kann.
  • 21 zeigt den allgemeinen Aufbau eines Systems ERWEITERTER CSSA #4.
  • Das System verhält sich in Abhängigkeit von den eingehenden Vektordomänen unterschiedlich, und die verschiedenen Zweige SST j-nter Zweig und RTi,j-nter_Zweig sind höchst effizient abgestimmt. Diese Architektur ermöglicht Speichereinsparungen, indem es sich vor irgendeiner Abzweigung die DAT und einen Zweig RTi,j-nter_Zweig teilt.
  • Ein Implementierungsbeispiel ist in 22 gezeigt.
  • Diese Ausführungsform ist besonders geeignet für IP- und Multicast-Anwendungen.
  • 3.3 LEISTUNGSVERGLEICH
  • Zur Durchführung einer korrekten vergleichenden Bewertung diverser Adressenkomprimierungstechniken ist es zweckdienlich, die Hauptparameter einer generischen „Adresskompressionsfunktion" zu definieren.
  • 23 zeigt die zur Auswertung der Architektur verwendeten Parameter.
    2N ist die Anzahl möglicher eingehender Kennungen (dabei ist N die Länge in Bits)
    2Ncpr ist die Anzahl möglicher komprimierter Kennungen (dabei ist Ncpr die Länge in Bits)
    AVclk ist die minimale Paket-„Interarrival"-/Zellen-Zeit (in Taktzyklen)
    Nclk ist die für die Durchführung einer Adressenkomprimierung erforderliche Anzahl von Taktzyklen
    Msize ist die für die Durchführung einer Adressenkomprimierung erforderliche Gesamtspeichergröße
    Nmem ist die erforderliche Anzahl physikalischen Speichers.
  • Der Parameter N dominiert typischerweise das Speicherbedarfserfordernis und der Parameter Ncpr die Komplexität des Komprimierungsprozesses.
  • Jede Architektur wird gezwungen sein, nicht mehr Taktzyklen (Nclk) zu verbrauchen als AVclk.
  • Das RAM-Erfordernis Msize stellt den Indikator der Effizienz der Verarbeitungsstruktur dar.
  • Es wurden zwei Szenarien untersucht: „ATM" und „IP". Beide Szenarien wurden unter der Annahme eines vollen Durchsatzes von 622 Mbit/s (STM-4) getestet. Offensichtlich implizieren andere Geschwindigkeitsannahmen (z. B. 155 Mbit/s oder 1,3 Gbit/s) vollkommen andere Vergleichsergebnisse. Ein Durchsatz von 622 Mbit/s wurde gewählt, um den gegenwärtigen Trends bei ATM-Verteilern und IP-Routertechnik gerecht zu werden.
  • Das „ATM"-Szenario impliziert N = 24 Bits. Unter der Annahme von 53 Bytes/Zelle bedeutet dies für den Beweis dieser Architekturen mit 622 Mbit/s AVclk = 26.
  • Das „IP"-Szenario impliziert N = 32 Bits. Unter der Annahme von 64 Bytes für das kürzeste Paket bedeutet dies für den Beweis dieser Architekturen bei 622 Mbit/s AVclk = 32.
  • Figure 00510001
    Tabelle 1: Eingabeparameter zur vergleichenden Bewertung
  • Jede Architektur wird für jedes Szenario für jeden beliebigen Wert von Ncpr zwischen 2 und 16 getestet: dies bedeutet eine Untersuchung der Leistung über einen sehr breiten Bereich möglicher Anwendungen.
  • Durch Ausdrücken der Leistung in Form einer Gleichung und der Randbedingung als Ungleichung kann folgendes festgestellt werden: Msize = F(N, Ncpr, P1, P2, ...) für Ncpr ι (2..16) Nclk = G(N, Ncpr, P1, P2, ...) Ρ AVclk für Ncpr γ (2..16)
  • P1, P2 etc. sind «technikabhängige freie Parameter». Zum Beispiel ist im Fall eines Binärbaumalgorithmus der freie Parameter die Anzahl von Stufen Nst; bei Verwendung eines Cluster-bildenden Sequentiellen Such-Algorithmus ist der freie Parameter die Clustergröße, SSLL.
  • Um zu einer objektiven Leistungsauswertung zu gelangen, wurde für jede Technik die Analyse unter Verwendung des „guten Designeransatzes" durchgeführt; für jede Technik, für jedes W, für jede Ncpr wurde der beste Wert des freien Parameter (der zu einer Minimierung der Speichergröße Msize führende Wert) identifiziert und angewandt. 24 zeigt dieses Konzept.
  • Was die Ungleichung Nclk Ρ AVclk anbelangt, kann argumentiert werden, dass wenn der Takt, der die Speicher M1 ... MMmem liest, schneller (z. B. doppelt so schnell) als der Takt des eingehenden seriellen Stroms (Adresse) ist, die Leistung des Systems verbessert werden kann. Dies trifft zwar zu, da jedoch der selbe „Trick" unter Erzielung der selben Vorteile auf jede beliebige Technik angewandt werden könnte, wurde zur Durchführung eines echten Vergleichs ein „gemeinsamer Referenztakt" definiert.
  • Der angewandte „Referenztakt" ist der auf die eingehende Adresse bezogene Takt.
  • 3.3.1 CAM-LEISTUNG
  • Die Analyse von CAM ist wirklich schnell. Die Anzahl angeforderter Bits ist Msize = N*2Ncpr (Bits)
  • Es gibt keine freien Parameter, und Nclk wird in jedem Fall unter AVclk liegen. Nmem ist offensichtlich 1
  • Figure 00530001
  • Bei Ncpr = 16 (2^16 = 64K komprimierte Kennungen) sind ca. 1,5 und 2 Mbits CAM erforderlich.
  • Es muss betont werden, dass eine CAM-Zelle bezüglich herkömmlichen RAMs komplexer ist, und dass sich bei der Erhöhung ihrer Größe ernsthafte Technikprobleme ergeben.
  • 3.3.2 LEISTUNG EINES REIN SEQUENTIELLEN SUCH-ALGORITHMUS
  • Eine Analyse der Effizienz eines sequentiellen Such-Algorithmus ergibt sich ziemlich unmittelbar.
  • Der Add-Vektor tastet den Speicher M ab und wenn Daten im Speicher dem eingehenden Adresswert entsprechen, dann wird die komprimierte Kennung auf gleich den Speicher-Add gesetzt.
  • Der Prozess ist in 25 zusammenfassend dargestellt.
  • Die Anzahl der angeforderten Bits beträgt Msize = N*2Ncpr (Bits) (1)und die erforderlichen Taktzyklen betragen Nclk = 2Ncpr (2)
  • Offensichtlich lässt sich diese Technik nur mit kleinen Ncpr-Werten (2 bis 4,5) anwenden. Nmem ist 1. Die nachstehenden Tabellen beschreiben die Anforderungen für die beiden in Betracht gezogenen Szenarien.
  • Figure 00540001
  • Figure 00550001
  • 3.3.3 LEISTUNG DES ERWEITERTEN SEQUENTIELLEN SUCH-ALGORITHMUS
  • In diesem Fall existiert ein freier Parameter. Es ist die Anzahl von Speichern, bei denen eine gleichzeitige Durchführung einer sequentiellen Suche möglich ist (Nmem). Für jeden Speicher wird eine Add(i)-Vektor Abtastung M(i) durchgeführt, und wenn ein Bezug (Datum) in einem Speicher (i) mit dem eingehenden Adresswert übereinstimmt, dann wird die komprimierte Kennung auf gleich den mit Add verketteten Speicher (i) gesetzt. Der Prozess ist zusammengefasst in
    Die Anzahl der angeforderten Bits beträgt Msize = N *2Ncpr (Bits) (1)und die erforderlichen Taktzyklen betragen Nclk = (2Ncpr/Nmem) (2)
  • Bedauerlicherweise ist die mögliche einsetzbare Anzahl von Speichern begrenzt, und 8 (höchstens 16!) kann als der größtmögliche Wert für Nmem betrachtet werden. Dies begrenzt 2Ncpr auf 256,512. In den nachstehenden Tabellen ist das Erfordernis für die beiden Szenarien dargestellt.
  • Figure 00560001
  • 3.3.4 LEISTUNG DES BINÄRBAUM-ALGORITHMUS
  • 27 zeigt die Struktur für eine Binärbaumsuche. Die N Bit breite eingehende Adresse wird in verschiedene Vektoren der Größe W0, W1, W2, W(Nst – 1) aufgeteilt, was offensichtlich bedingt N = ⎕ Wi, für i = 0, (Nst – 1) (1)
  • Diese Adressen werden an Nst verschiedene Speicherbänke gesendet (diese Bänke können in einer einzigen physikalischen Speicheranordnung organisiert sein: Nmem = 1). Die zur Bank i gehörigen Ausgabedaten werden mit W(i + 1) verkettet zur Adressierung der Bank (i + 1) verwendet.
  • Auf diese Weise ist jede Bank Ncpr Bits breit, und die erforderliche Anzahl von Adressbits beträgt Add(DAT) = W0 (2) Rdd(RTi) = Wi + Ncpr (3)
  • Da es keinen Vorteil bringt, verschiedene Werte für Add(RTi) zu haben, kann er eingestellt werden auf Wi = W^, für i = 1, Nst – 1 (4)
  • Durch Anwendung von (4) auf (1) ergibt sich: N = W0 + (Nst – 1)*W^ (5)
  • Zur Minimierung des global erforderlichen Speichers muss die Tiefe der DAT kleiner oder gleich der Tiefe der anderen Speicher sein W0ΡW^ + Ncpr (6)
  • Durch Kombination von (5) und (6) ergibt sich W^Σ(N – Ncpr)/Nst (7)daher wird folgendes implementiert W^ = ceil((N – Ncpr)/Nst) (8)
  • Die Gleichung (8) wird zur Größenfestlegung eines jeden in der Technik angewandten Speichers unter Verwendung von Nst als freier Parameter verwendet.
  • Die erforderliche Anzahl von Taktzyklen beträgt Nclk = 2*Nst (9)
  • Der Faktor „2" erscheint, da die zum Zugriff auf die „nächste" Speicherbank verwendete Adresse in der „aktuellen" geschrieben wird: ein Taktzyklus ist zum Lesen der „aktuellen" erforderlich und ein weiterer zur Vorbereitung der Adresse für die „nächste".
  • Figure 00580001
    Tabelle 8: Nclk in Abhängigkeit von Nst
  • Dies zeigt, dass die Technik in jedem beliebigen Szenario gültig bleibt.
  • Die Leistung ist: Msize = (Ncpr + 1)*2W0 + (Nst – 1)*(Ncpr + 1)*2(W^+Ncpr) (10)
  • Jede Bank wird als (Ncpr + 1) Bits breit betrachtet, da ein. „aktives" Bit für jede Adresse benötigt wird.
  • Als Beispiel der zur Auswertung der Technik durchgeführten Arbeit zeigt Tabelle 9 den Parameter W^, der durch Anwendung von Gleichung (7) auf das „ATM"-Szenario berechnet wird.
  • Figure 00590001
    Tabelle 9: W^ in Abhängigkeit von Ncpr und Nst, mit N = 24
  • Die Tabellen 10 und 11 zeigen die Gleichung Msize = F(N, Ncpr, Nst).
  • In den letzten zwei Spalten ist der Wert der besten Leistung im Sinne eines niedrigsten Wertes von Msize(N, Ncpr) dargestellt, zusammen mit dem dazugehörigen Wert von Nst.
  • Figure 00600001
    Tabelle 10: Msize in Abhängigkeit von Nst und Ncpr im ATM-Szenario
  • Figure 00610001
    Tabelle 11: Msize in Abhängigkeit von Nst und Ncpr im IP-Szenario
  • In den Tabellen sind die Gesamtleistungen für eine Binärbaumsuchtechnik angegeben, die mit jedem beliebigen Ncpr-Wert angewandt werden können.
  • Figure 00620001
  • Für „IP"-
  • Die Tatsache ist offensichtlich, dass eine Implementierung eines Binärbaumsuchalgorithmus fast 10 Zeilen umständlicher ist als die Implementierung einer CAM-Technik.
  • 3.3.5 LEISTUNG DES CLUSTERBILDENDEN SEQUENTIELLEN SUCHALGORITHMUS
  • 28 zeigt die Struktur, die einen clusterbildenden sequentiellen Suchalgorithmus gemäss der Erfindung implementiert.
  • Dabei sei Cs die Größe der Cluster, die bislang als SSLL bezeichnet wurde
  • Für jedes Cluster ist die Anzahl von Speicherstellen 2Cs.
  • Es sei 2Cn die Anzahl von Cluster, die zuvor als Ncluster bezeichnet wurde. Darüber hinaus sei Cj das j-te Cluster.
  • Die N Bits breite eingehende Adresse wird in unterschiedliche Vektoren der Größe W0, W1, W(Nst – 1) aufgeteilt, wodurch offensichtlich verifiziert wird, dass W = ⎕ Wi, für i = 0, (Nst – 1) (1)
  • Diese Adressen werden an Nst verschiedene Speicherbänke geschickt, die als DAT bzw. RTi bezeichnet werden. Diese Speicherbänke können im selben physikalischen Speicher untergebracht sein.
  • Die mit W(i + 1) verketteten, zu Rti gehörigen Ausgabedaten werden zur Adressierung von RT(i + 1) verwendet.
  • Der letzte Zeiger, der aus RT(Nst – 1) ausgelesen wird, wird zur Adressierung eines Clusters Cj innerhalb eines anderen Speichers verwendet, der als SST bezeichnet wird: Der SST speichert die „aktiven" eingehenden Adressenwerte (d. h. die von der Struktur verarbeiteten Adressen), die im richtigen Cluster verteilt sind.
  • Normalerweise unterscheidet sich die Größe des Speichers SST von derjenigen des Speichers, der die DAT und die RTi beherbergt.
  • Bei dem clusterbildenden sequentiellen Suchalgorithmus ist Nmem = 2.
  • Es wird eine sequentielle Suche, von der ersten zur letzten zum Cluster Cj gehörigen Speicherstelle durchgeführt. Ist die eingehende Adresse gleich den im SST gespeicherten Daten, dann wird die Adresse des SST selbst als die entsprechende komprimierte Kennung validiert.
  • Was die Tiefe des SST anbelangt, so gibt es 2Cn Cluster, mit einer Tiefe von jeweils 2Cs. Die Gesamttiefe von SST beträgt 2Ncpr. Daher kann folgendes ausgesagt werden: 2Cn*2Cs = 2Ncpr (2)und Ncpr = Cn + Cs (4)
  • Durch diese Verhältnisse ist die Größe von SST gegeben als: SSTsize = N*2Ncpr (5)
  • Natürlich müssen die aus dem „Maximalverteilungs"-Ansatz stammenden und in Absatz 4 ausgeführten Regeln auf RTi angewendet werden.
  • In RTi (iι1, Nst – 1) werden Cn „Seiten" durch den in RTMi–1 gespeicherten Wert adressiert. Innerhalb einer „Seite" sind Cs Speicherstellen nötig, um ein Blockieren zu verhindern. Der gespeicherte Wert ist Cn Bit breit. Dies ergibt die RTMi Größe. (6)RTisize = Cn*2Ncpr mit (iι1, Nst – 1) (6)
  • Die erste Bank, DAT, führt eine flache Adressierungsfunktion vom Vektor W0 auf den ersten Zeiger mit einer Breite von Cn Bit durch. Zur Minimierung des Gesamtspeicherbedarfs muss die Tiefe von DAT kleiner oder gleich der Tiefe der anderen, den RTi bildenden Speicher sein. Nämlich W0Ρ(Cn + Cs) = Ncpr (7)darüber hinaus N = W0 + (Nst – 1)*Cs (8)
  • Durch Kombinieren von (5) und (6) ergibt sich NstΣ(N – Ncpr + Cs)/Cs (9)was somit verifiziert: Nst = ceil((N – Ncpr + Cs)/Cs) (10)
  • Die Gleichung (10) wird zur Bestimmung von Msize unter Verwendung von Cs als freien Parameter verwendet. In den nachstehenden Tabellen sind die relativen Werte von Cs und Ncpr gezeigt.
  • Figure 00660001
  • Die schattierten Werte spiegeln eine Situation wieder, in der Ncpr Ρ Cs ist.
  • Die erforderliche Anzahl von Taktzyklen beträgt Nclk = 2*Nst + 2Cs (11)
  • Der Faktor „2" erscheint, da die zum Zugriff auf die „nächste" Speicherbank verwendete Adresse in der „aktuellen" geschrieben wird: ein Taktzyklus wird zum Lesen der „aktuellen" und ein weiterer zur Vorbereitung der Adresse für die „näch ste" Speicherbank benötigt. Während der SST-Suche ist nur ein Taktzyklus pro Adresse erforderlich.
  • Die folgenden Tabellen zeigen die Relationswerte von Cs und Ncpr.
  • Figure 00670001
  • Die beiden Tabellen zeigen, dass die CSS-Technik nur mit kleinen Cs-Werten, 3 oder 4, angewandt werden kann (dies bedeutet Cluster mit 8, 16 Stellen).
  • Die Leistung ist Msize = Cn*2W0 + (Nst – 1)*Cn*2Ncpr + W*2Ncpr (12)
  • Die Tabellen 18 und 19 zeigen die Ergebnisse der obigen Gleichung. Msize = F(N, Ncpr, Cs)
  • In den letzten zwei Spalten ist der beste Leistungswert für Msize(N, Cs) angegeben, zusammen mit dem zugehörigen Wert von Cs.
  • Figure 00680001
    Tabelle 18: Msize in Abhängigkeit von Cs und Ncpr im ATM-Szenario
  • Figure 00690001
    Tabelle 19: Msize in Abhängigkeit von Cs und Ncpr im IP-Szenario
  • Dies sind die Gesamtleistungswerte des clusterbildenden sequentiellen Such-Algorithmus der Erfindung.
  • Es sind zwei physikalische Speicher erforderlich (Nmem = 2): davon beinhaltet der erste die DAT und die Mehrzahl von RTi-Bänken, der zweite die SST.
  • Das Verfahren der Erfindung lässt sich mit verschiedenen Ncpr-Werten implementieren. Das Verfahren bleibt gültig, solange Ncpr extrem klein ist (2,3).
  • Im Bereich Ncpr γ (8,16) beträgt die adressierte Clustergröße 4 (das heißt ein Cluster mit 16 Positionen).
  • Die praktizierbaren Rahmenbedingungen sind in den nachstehenden Tabellen aufgeführt:
  • Figure 00700001
  • Natürlich ist es durch parallele Durchführung der sequentiellen Suche in verschiedenen SSMs (wie bei der erweiterten sequentiellen Suche) möglich, größere Cs-Werte ohne Erhöhung von Nclk anzunehmen. Bei einer Ausführungsform dieser Art kann Msize weiter verringert werden.
  • 3.3.6 GESAMTLEISTUNGSVERGLEICH
  • Tabelle 22 zeigt einen Vergleich zwischen den verschiedenen bekannten Techniken und der erfindungsgemäßen CSSA-Technik für das „ATM"-Szenario, Tabelle 23 zeigt den selben Vergleich für das „IP"-Szenario.
  • Figure 00710001
    Tabelle 22: Msize für „ATM"-Szenario-Vergleich (Bits)
  • Figure 00720001
    Tabelle 23: Msize für „IP"-Szenario-Vergleich (Bits)
  • Die Technik, die das ganze Ncpr-Feld mit der kleinsten Msize abdeckt, ist offensichtlich die CAM-Technik, aber in diesem Fall kommt es zu gravierenden Implementierungsproblemen, insbesondere bei relativ hohen Ncpr-Werten; außerdem muss man sich vor Augen halten, dass Msize in Form von „CAM"-Bits gegeben ist, die weitaus komplexere Speicherstrukturen als gewöhnliche „RAM"-Strukturen sind.
  • Die Gebiete, auf die ein sequentieller Such-Algorithmus (rein oder erweitert) anwendbar ist, decken nur relativ kleine Ncpr-Werte ab. Andererseits ist die Msize-Anforderung minimal. Dieser Ansatz kann ein Kandidat bei Geräten bleiben, die eine begrenzte Anzahl von Kanälen (bis zu 512) benötigen.
  • Die klassische Binärbaumsuche und die clusterbildende sequentielle Suche gemäss der Erfindung scheinen die einzigen zwei Techniken zu sein, die in der Lage sind, das gesamte Anwen dungsspektrum abzudecken. Angesichts der weiteren Tabellen ist es klar, dass der zur Implementierung der CSS erforderliche Speicher weitaus kleiner ist als derjenige für eine klassische Binärbaumsuche.
  • Figure 00730001
  • In den voranstehenden Tabellen wird der Msize-Wert für die CSS und für den Binärbaum bezüglich einer CAM-Msize normalisiert. Dann wird der normalisierte Binärbaum-Wert durch den korrekten normalisierten CSS-Wert geteilt. Dies ergibt eine Angabe der durch Anwendung der CSS-Technik anstelle des Binärbaums erhaltenen Verbesserung. Wie ohne weiteres erkennbar ist, beläuft sich die Verbesserung auf ein Neun- bis Fünffaches bei einem ATM-Szenario, und auf ein 15 bis 6-Faches bei einem IP-Szenario.
  • Dies bedeutet, dass für Ncpr größer als 8 oder 9 die clusterbildende sequentielle Suchtechnik der Erfindung die Technik ist, die bei weitem die beste Gesamtleistung ergibt.
  • Überdies ist mit der CSS eine beträchtliche Verringerung der Implementierungskosten möglich.
  • Zum Beispiel ist der erforderliche Speicher für einen Binärbaum im ATM-Szenario mit Ncpr = 12 (4096 Einträge) 1491 kBits, und für die CSS 229 kBits.
  • Wird die Adresskompressionsfunktion mittels eines ASIC implementiert, dann kann es bei Verwendung der Binärbaumtechnik erforderlich sein, einen externen Speicher zu verwenden. Dies lässt sich durch Verwendung des CSSA dieser Erfindung vermeiden, wodurch die Pin-Anforderung verringert wird.

Claims (10)

  1. Adresskompressionsverfahren für einen Datenstrom, welcher in Pakete oder Zellen strukturiert ist, welche jede eine Zielkennung umfasst, welche aus einer Folge von N Bits (INCVECT) besteht, welche einen Adressraum (U) der Größe 2N bildet, welches aus einen Algorithmus besteht, welcher in einer vorhersehbaren Zeitdauer ausführbar ist, welches 2Ncpr Punkte des Adressraums (U), welche zu einem Untersatz (S) von Kennungen gehören, welche zu komprimieren sind, auf eine passende Folge von Ncpr Bits abbildet, welche einen komprimierten Adressraum (C) der Größe 2Ncpr bildet, wobei Ncpr < N ist, dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte umfasst: a) Aufteilen des Adressraums (U) der eingehenden N-Bit-Kennungen in mehrere gleich abgeschätzte Unterräume durch die Verwendung einer Direktadressierungstabelle (DAT), wobei auf eine Zeile davon durch eine erste vordefinierte Scheibe der eingehenden N-Bit-Kennung (INCVECT) zum Ausgeben eines ersten Zeigerbezugs verwiesen wird; b) Gruppieren des Untersatzes (S) von N-Bit-Kennungen, welche in den Unterräumen enthalten sind, durch die Verwendung von mehreren Leitwegtabellen (RTi) mit der gleichen Anzahl an Seiten, wobei die Tabellen in einer Schaltkette verkoppelt sind, wobei durch den ersten Zeigerbezug auf eine Seite der ersten Tabelle (RT1) verwiesen wird und die Zeile der verwiesenen Seite durch eine vordefinierte zweite Scheibe der eingehenden N-Bit-Kennung (INCVECT) zum Ausgeben eines zweiten Zeigerbezugs ausgewählt wird, wobei auf eine Seite jeder der folgenden Tabellen der Schaltkette durch die Zeigerbezugausgabe durch die vor hergehende Tabelle verwiesen wird und die Zeile der verwiesenen Seite durch eine jeweilige vordefinierte Scheibe der eingehenden N-Bit-Kennung (INCVECT) zum Ausgeben eines abschließenden Zeigerbezugs aus der letzten Leitwegtabelle (RTn) ausgewählt wird, wobei folglich eine Folge von Gruppen gekennzeichnet wird, welche in mindestens einer sequentiellen Suchtabelle (SST) lokalisiert sind, wobei jede Gruppe kleiner oder gleich einer vordefinierten Zahl (SSLL) ist und nur Punkte der Untersätze speichert, welche zu dem Untersatz (S) gehören; c) Durchführen einer sequentiellen Suche in mindestens einer Tabelle (SST) mit einer Gruppe des ersten Untersatzes (S) mit einer Größe äquivalent zu der vordefinierten Zahl (SSLL), wie in Schritt b) definiert, wobei die Tabelle in Seiten organisiert ist, wobei jede Seite einer Gruppe entspricht, welche aus einer Anzahl von Zeilen gleich der vordefinierten Zahl (SSLL) zusammengesetzt ist, innerhalb eines gegebenen Paket- oder Zellzeitschlitzes durch Verweisen mit dem Zeigerbezug, welcher durch die letzte der Leitwegtabellen (RTi) in einer Schaltkette ausgegeben wurde, auf eine Seite, auf welcher die sequentielle Suche durchgeführt wurde. d) Verifizieren der Übereinstimmung mit einer eingehenden N-Bit-Kennung (INCVECT), welche die komprimierte Adresse von Ncpr Bits bildet, durch den Zeigerbezug, welcher durch die letzte Leitwegtabelle ausgegeben wurde, welche mit dem Zeilenindexbezug der ausgewählten Seite der sequentiellen Suchtabelle (SST) oder der mehreren Tabellen verkettet ist.
  2. Verfahren nach Anspruch 1, wobei mehr als eine sequentielle Suchtabelle (SST) mit der gleichen Anzahl von Seiten verwendet wird, wobei der gleiche Zeigerbezug, welcher durch die letzte der Leitwegtabellen (RTi) in einer Schaltkette ausgegeben wurde, auf eine Seite jeder sequentiellen Suchtabelle (SSTj) verweist und die sequentielle Suche parallel auf allen ausgewählten Seiten der sequentiellen Suchtabellen (SSTj) durchgeführt wird, bis der Zeileninhalt jeder der sequentiellen Suchtabellen, welche parallel durchsucht wurden, die Übereinstimmung mit der eingehenden N-Bit-Kennung (INCVECT) verifiziert.
  3. Verfahren nach Anspruch 1, wobei jede Zeile der sequentiellen Suchtabelle (SST) angepasst wird, um eine vorbestimmte Anzahl von Vektoren (OUTVECT) zu speichern, welche mit der eingehenden N-Bit-Kennung (INCVECT) übereinstimmen müssen.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Schritte a) und b) während einer einzelnen Zell- oder Paketdauer durchgeführt werden und der Schritt c) während der aufeinander folgenden Zell- oder Paketdauer in einer zeitverschachtelten Anordnung durchgeführt wird.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die vorhergehenden Schritte weiterhin Folgendes umfassen: – Abbilden unterschiedlicher Punkte oder Domänen des Adressraums (U), welche zu einer bestimmten Anzahl (Nclasses) von Untersätzen (S1, S2, Sj, SNclasses) von Kennungen gehören, welche zu gleich vielen Folgen zu komprimieren sind, welche unterschiedliche komprimierte Adressräume (C1, C2, Cj, CNclasses) bilden; – in Schritt b) Gruppieren der Untersätze (S1, S2, Sj, SNclasses) durch die Verwendung mehrerer Leitwegtabellen (RTij), wobei die Tabellen in einem Baum organisiert sind, wobei durch den ersten Zeigerbezug, welcher in Schritt a) erhalten wurde, auf eine Seite der ersten Tabelle (RT11) verwiesen wird und die Zeile der verwiesenen Seite durch eine vordefinierte zweite Scheibe der eingehenden N-Bit-Kennung (INCVECT) zum Ausgeben eines zweiten Zeigerbezugs, welcher verwendet wird, um auf eine Seite der folgenden Tabellen der Schaltkette (RT12) zu verweisen, falls der gleiche Untersatz (S1) gruppiert werden muss, oder um auf mindestens zwei unterschiedliche Tabellen (RT21 und RT22, ...), welche einer Verzweigung des Baums nachgeschaltet sind, zu verweisen, falls unterschiedliche Untersätze auf unterschiedliche komprimierte Adressräume gruppiert werden müssen, zum Auswählen von mindestens zwei unterschiedlichen Zeigerbezügen, welche geeignet sind, auf eine nächste Ebene der Leitwegtabelle des Baums (RTij) zu verweisen, mittels einer vordefinierten Scheibe der eingehenden N-Bit-Kennung (INCVECT) und so weiter ausgewählt wird, bis alle Bits der eingehenden N-Bit-Kennung (INCVECT) verwendet wurden, aus den letzten verwiesenen Leitwegtabellen (RTnj) Ausgeben mehrerer abschließender Zeigerbezüge (CLID1, CLID2, CLIDj, CLIDNclasses), welche gleich viele Gruppen in unterschiedlichen sequentiellen Suchtabellen (SST1, SST2, SSTj, SSTNclasses) kennzeichnen, welche jede in Seiten organisiert ist, welche durch eine Anzahl von Zeilen gleich der vordefinierten Zahl (SSLLj) gebildet werden, wobei jede Seite einer Gruppe entspricht und jede sequentielle Suchtabelle Punkten oder Domänen oder Untersätzen Sj entspricht, welche zum Adressraum (U) gehören, wobei jede Gruppe kleiner oder gleich der vordefinierten Zahl von Zeilen (SSLL1, SSLL2, SSLLj, SSLLNclasses) ist, und Speichern nur von Punkten, welche zum Untersatz der N-Bit-Kennungen (S1, S2, Sj, SNclasses) gehören, welche die entsprechenden (C1, C2, Cj, CNclasses) Untersätze komprimierter Adressen abbilden; – in Schritt c) Durchführen einer sequentiellen Suche mittels unterschiedlicher Adresserzeugern, einer für jede sequentielle Suchtabelle, auf den Gruppen, welche zu jeder sequentiellen Suchtabelle (SST1, SST2, SSTj, SSTNclasses) gehören, auf welche durch die abschließenden Zeigerbezüge (CLID1, CLID2, CLIDj, CLIDNclasses) verwiesen wird; – in Schritt d) Verifizieren der Übereinstimmung der Daten, welche in den sequentiellen Suchtabellen (OUTVECTj) gespeichert sind, mit der eingehenden N-Bit-Kennung (INCVECT), welche die komprimierten Adressenuntersätze (C1, C2, Cj, CNclasses) komprimierter Adressen kennzeichnet.
  6. Datenverarbeitungsstruktur zum Durchführen einer Adresskompression für einen Datenstrom, welcher in Pakete oder Zellen strukturiert ist, welche jede eine Zielkennung umfasst, welche aus einer Folge von N Bits (INCVECT) besteht, welche einen Adressraum (U) von einer Größe 2N bildet, welche Abbildungsmittel (DAT, RTi, SST, =) zum Abbilden von 2Ncpr Punkten des Adressraums (U) in einer vorhersehbaren Zeitdauer umfasst, welcher zu mindestens einem Untersatz (S) von Kennungen gehört, welche zu einer passenden Folge von Ncpr Bits zu komprimieren sind, welche einen komprimierten Adressraum (C) der Größe 2Ncpr bildet, wobei Ncpr < N, wobei die Abbildungsmittel (DAT, RTi, SST, =) eine eingehende N-Bit-Kennung (INCVECT) empfangen, welche zum Adressraum (U) gehört, welcher nach einem Verifizieren einer Übereinstimmung der Zielinformationen, welche in der eingehenden N-Bit-Kennung (INCVECT) enthalten sind, mit einem ausgehenden N-Bit-Vektor (OUTVECT) unter mehreren 2Ncpr Elementen, welches jedes in direkter Beziehung mit einer komprimierten Adresse steht, eindeutige Adressinformationen enthält, dadurch gekennzeichnet, dass die Abbildungsmittel Folgendes umfassen: a) eine Direktadressierungstabelle (DAT) zum Aufteilen des Adressraums (U) in mehrere gleich abgeschätzte Unterräume und zum Ausgeben eines ersten Zeigerbezugs aus einer Zeile, auf welche eine erste vordefinierte Scheibe der eingehenden N-Bit-Kennung (INCVECT) verweist; b) eine Schaltkette von Leitwegtabellen (RT1, ..., RTn), welche in der gleichen Anzahl von Seiten organisiert sind, wobei die erste davon an die Direktadressierungstabelle (DAT) verkettet gekoppelt ist, welche jede in auswählbaren Seiten organisiert ist, auf welche durch den Zeigerbezug der vorhergehenden Tabelle in der Schaltkette verwiesen wird, wobei die erste Tabelle der Schaltkette (RT1) eine Seite aufweist, auf welche durch den ersten Zeigerbezug verwiesen wird, welcher durch die Direktadressierungstabelle (DAT) ausgegeben wurde, und wobei auf eine Zeile der folglich verwiesen Seite aller Leitwegtabellen der Schaltkette durch jeweilige Scheiben der eingehenden N-Bit-Kennung (INCVECT) verwiesen wird, welche in jede Leitwegtabelle eingegeben wurde; c) mindestens eine sequentielle Suchtabelle (SST), welche in mehreren Seiten oder Gruppen organisiert ist, auf welche durch den Bezug verwiesen wird, welcher durch die letzte Tabelle (RTn) der Schaltkette von Leitwegtabellen ausgegeben wurde; d) ein Validierungsmittel (=), welches das Zusammentreffen der Zielinformationen, welche in den eingehenden N-Bit-Kennungen (INCVECT) enthalten sind, mit den Informationen verifiziert, welche in den sequentiell durchsuchten Zeilen (OUTVECT) der verwiesenen Seite der sequentiellen Suchtabelle (SST) oder der mehreren Tabellen enthalten sind.
  7. Datenverarbeitungsstruktur nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass sie zwei oder mehrere sequentielle Suchtabellen (SST) umfasst, welche in der gleichen Anzahl von Seiten organisiert sind, auf welche durch den gleichen Bezug verwiesen wird, welcher durch die letzte Tabelle (RTn) der Schaltkette von Leitwegtabellen ausgegeben wurde, und gleichzeitig parallel durchsucht werden.
  8. Datenverarbeitungsstruktur nach Anspruch 6, dadurch gekennzeichnet, dass sie eine sequentielle Suchtabelle (SST) umfasst, bei welcher jede Zeile mehr als einen Vektor (OUTVECT) beherbergt, welcher mit der eingehenden N-Bit-Kennung (INCVECT) übereinstimmen muss.
  9. Datenverarbeitungsstruktur nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass die Operationen, welche von der Direktadressierungstabelle (DAT) durchgeführt werden, und die Operationen, welche von der Schaltkette der Leitwegtabellen (RT1, ..., RTn) durchgeführt werden, während einer einzelnen Zell-(Paket-)Dauer ausgeführt werden, und die Operationen, welche von der mindestens einen sequentiellen Suchtabelle (SST) durchgeführt werden, während der aufeinanderfolgenden Zell-(Paket-)Dauer ausgeführt werden, wobei die Direktadressierungstabelle (DAT) und der Baum der Leitwegtabellen (RTij) und die sequentielle Suchtabelle (SSTj) in einer Pipeline-Verarbeitung organisiert sind, welche zwei First-In-First-Out-Register von zwei Zellen gleichzeitig einsetzt.
  10. Datenverarbeitungsstruktur nach Anspruch 6, dadurch gekennzeichnet, dass die Abbildungsmittel (DAT; RT11, ..., RTij; RTnNclasses, SSTj) zum Abbilden unterschiedlicher Punkte oder Domänen des Adressraums (U) geeignet sind, welche zu einer bestimmten Anzahl (Nclasses) von Untersätzen (S1, S2, Sj, SNclasses) von Kennungen gehören, welche auf genauso viele Folgen zu komprimieren sind, welche unterschiedliche komprimierte Adressräume (C1, C2, Cj, CNclasses) bilden, die Abbildungsmittel weiterhin umfassend: – einen Baum von Leitwegtabellen (RT11, ..., RTij, ..., RTnNclasses), deren erste an die Direktadressierungstabelle (DAT) verkettet gekoppelt ist, wobei jede Leitwegtabelle in auswählbaren Seiten organisiert ist, auf welche durch Zeigerbezüge verwiesen wird, welche durch vorangehende Tabellen in der baumartigen Schaltkette ausgegeben wurden, wobei die erste Tabelle der baumartigen Schaltkette (RT11) eine Seite aufweist, auf welche der erste Zeigerbezug verweist, welcher durch die Direktadressierungstabelle (DAT) ausgegeben wurde, und auf eine Kette von Leitwegtabellen verweist oder in mindestens zwei Ketten verzweigt, wobei durch jeweilige Scheiben der eingehenden N-Bit-Kennung (INCVECT), welche in jede Leitwegtabelle eingegeben wurde, auf eine Zeile der folglich verwiesenen Seite aller Leitwegtabellen der baumartigen Schaltkette verwiesen wird, wobei die letzte Leitwegtabelle (RTnj) jedes Zweigs in der baumartigen Schaltkette einen abschließenden Zeigerbezug (CLID1, CLID2, CLIDj, CLIDNclasses) erzeugt; – mindestens eine Anzahl sequentieller Suchtabellen (SSTj) gleich der bestimmten Anzahl (Nclasses) von Untersätzen (S1, S2, Sj, SNclasses), wobei jede Tabelle in mehreren Seiten oder Gruppen organisiert ist, auf welche durch den Bezug verwiesen wird, welcher durch die letzte Tabelle (CLIDj) der baumartigen Schaltkette von Leitwegtabellen ausgegeben wurde; – Validierungsmittel (=), welches das Zusammentreffen der Zielinformationen, welche in der eingehenden N-Bit-Kennung (INCVECT) enthalten sind, mit den Daten (OUTVECTj) verifiziert, welche in den Seiten enthalten sind, welche zur sequentiellen Suchtabelle (SSTj) gehören, auf welche durch abschließende Zeigerbezüge (CLID1, CLID2, CLIDj, CLIDNClasses) verwiesen wird, welche durch die letzte Leitwegtabelle (RTnj) jedes Zweigs in der baumartigen Schaltkette erzeugt wurden.
DE69827121T 1998-08-05 1998-08-05 Verfahren zur Adressenkompression für zellbasierte und paketbasierte Protokolle und Hardware-Ausführungen davon Expired - Fee Related DE69827121T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP98830481A EP0978966B1 (de) 1998-08-05 1998-08-05 Verfahren zur Adressenkompression für zellbasierte und paketbasierte Protokolle und Hardware-Ausführungen davon

Publications (2)

Publication Number Publication Date
DE69827121D1 DE69827121D1 (de) 2004-11-25
DE69827121T2 true DE69827121T2 (de) 2006-02-02

Family

ID=33396198

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69827121T Expired - Fee Related DE69827121T2 (de) 1998-08-05 1998-08-05 Verfahren zur Adressenkompression für zellbasierte und paketbasierte Protokolle und Hardware-Ausführungen davon

Country Status (1)

Country Link
DE (1) DE69827121T2 (de)

Also Published As

Publication number Publication date
DE69827121D1 (de) 2004-11-25

Similar Documents

Publication Publication Date Title
DE60026229T2 (de) Verfahren und Vorrichtung für Klassifizierung von Datenpaketen
DE60316696T2 (de) Verfahren zum Routen von Datenpaketen und Routing-Vorrichtung
DE60129643T2 (de) Verfahren und Gerät für die Ermittlung vom längsten Prefixzusammenbringen in einem Kommunikationsnetz
DE69726995T2 (de) Mehrfachsende-Leitweglenkung in mehrstufigen Netzen
DE60131596T2 (de) Stapelbare Sucheinrichtung
DE69733703T2 (de) Puffer von Mehrfachsendezellen in Vermittlungsnetzen
EP0447841B1 (de) Verfahren zum Einrichten von virtuellen Verbindungen in nach einem asynchronen Transfermodus arbeitenden Vermittlungseinrichtungen
DE60305035T2 (de) Anpassen des längsten präfix unter verwendung von baumartigen &#34;bitmap&#34; datenstrukturen
DE60021846T2 (de) Leitweglenkungsanordnung
DE60307241T2 (de) Vlan tabellenverwaltungssystem in hardwarebasierten paketvermittlungsstellen für speichereffizientes auslesen und einschreiben
DE602004011721T2 (de) Zugriffssteurungsmechanismus für Router
DE60222622T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE60103789T2 (de) Wiederabbildung von Prioritäten basierend auf einen virtuellen Bündelwert für eine Datenkommunikationsvermittlungsstelle
DE69926109T2 (de) Paketversendegerät mit einer Flussnachweistabelle
DE10085387T5 (de) Verfahren und Vorrichtung zur Adresssuche längster Übereinstimmung
DE10058443A1 (de) Verfahren zum Klassifizieren von Datenpaketen
DE102005046702B4 (de) Verfahren und Prozessor zum Klassifizieren von Datenpaketeinheiten
DE19743266C1 (de) Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten Suchbaum
EP0619667A1 (de) Verfahren zum Zugriff auf Adressmerkmale von Kommunikationsteilnehmern mit einem ersten Adress Bereich, beim Versenden von Datenpaketen
DE60032674T2 (de) Verfahren zum Suchen von Adressen
DE60316662T2 (de) Komprimierung von zellkopfteilen zur datenkommunikation
DE69932892T2 (de) System zur Konsolidierung von Telekommunikationsverkehr
DE602004012210T2 (de) Verfahren and System für eine beschleunigte Paketverarbeitung
DE60309611T2 (de) Verfahren und Vorrichtung zur Verarbeitung von Datenpaketen
DE69817672T2 (de) Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: ITALTEL S.P.A., SETTIMO MILANESE, IT

8339 Ceased/non-payment of the annual fee