[go: up one dir, main page]

DE60033529T2 - Netzprozessor, speicherorganisation und verfahren - Google Patents

Netzprozessor, speicherorganisation und verfahren Download PDF

Info

Publication number
DE60033529T2
DE60033529T2 DE60033529T DE60033529T DE60033529T2 DE 60033529 T2 DE60033529 T2 DE 60033529T2 DE 60033529 T DE60033529 T DE 60033529T DE 60033529 T DE60033529 T DE 60033529T DE 60033529 T2 DE60033529 T2 DE 60033529T2
Authority
DE
Germany
Prior art keywords
data
frame
memory
die
frames
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60033529T
Other languages
English (en)
Other versions
DE60033529D1 (de
Inventor
Brian Mitchell Apex BASS
Jean Louis Cary CALVIGNAC
Marco C. Winchester HEDDES
Piyush Chunilal Cary PATEL
Juan Guillermo Austin REVILLA
Michael Steven Raleigh SIEGEL
Fabrice Jean Verplanken
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE60033529D1 publication Critical patent/DE60033529D1/de
Publication of DE60033529T2 publication Critical patent/DE60033529T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Saccharide Compounds (AREA)

Description

  • Technisches Gebiet
  • Diese Erfindung betrifft Datenübertragungs-Netzvorrichtungen, wie sie beispielsweise zum Verbinden von Datenbearbeitungssystemen oder Computern von verschiedenem Typ und verschiedenen Fähigkeiten verwendet werden, oder Komponenten einer solchen Vorrichtung. Insbesondere betrifft diese Erfindung skalierbare Vermittlungsvorrichtungen und Komponenten, die beim Bereitstellen solcher Vorrichtungen hilfreich sind. Diese Erfindung betrifft eine verbesserte und multifunktionale Schnittstelleneinheit und die Verknüpfung dieser Einheit mit anderen Elementen zur Bereitstellung einer Netzvermittlungsstelle mit Mediengeschwindigkeit (media speed network switch). Außerdem betrifft die Erfindung Verfahren zum Betreiben solcher Vorrichtungen, die die Möglichkeit von Netzvermittlungsstellen zur Datenflussbearbeitung verbessern.
  • Stand der Technik
  • Die folgende Beschreibung setzt Kenntnisse von Netzdatenübertragungsvorgängen sowie Vermittlungsstellen und Routern voraus, wie sie in solchen Datenübertragungsnetzen verwendet werden. Insbesondere setzt die Beschreibung Vertrautheit mit dem ISO-Modell der Netzarchitektur voraus, bei dem Netzvorgänge in Schichten unterteilt werden. Eine typische Architektur auf der Grundlage des ISO-Modells erstreckt sich von der Schicht 1 (manchmal auch als „L1" bezeichnet), die den physischen Pfad oder das Medium darstellt, durch das Signale aufwärts durch die Schichten 2, 3, 4 und so weiter zur Schicht 7 geleitet werden, wobei die letztgenannte die Schicht von Anwendungsprogrammen ist, die in einem mit dem Netz verbundenen Computersystem ausgeführt werden. In diesem Dokument bezieht sich die Erwähnung von L1, L2 und so weiter auf die entsprechende Schicht einer Netzarchitektur. Die Beschreibung setzt außerdem ein grundlegendes Verständnis von Bitfolgen voraus, die in einer solchen Netzdatenübertragung als Pakete oder Rahmen bekannt sind.
  • In der heutigen vernetzten Welt ist die Bandbreite eine entscheidende Ressource. Ein steigender Netzdatenverkehr, der durch das Internet und andere aufkommende Anwendungen verursacht wird, belastet die Kapazität von Netzinfrastrukturen. Um Schritt halten zu können, suchen Organisationen nach besseren Technologien zur Unterstützung und Verwaltung des wachsenden Datenverkehrs und der Sprach-Daten-Konvergenz.
  • Die gegenwärtig dramatische Zunahme des Netzdatenverkehrs ist der Beliebtheit des Internet, einem wachsenden Bedarf an einem Fernzugriff auf Daten und aufkommenden Anwendungen zuzuschreiben. Das Internet allein stellt mit seinem sprungartig ansteigenden Wachstum im elektronischen Handel eine manchmal kaum zu bewältigende Belastung für Netzwerk-Verbindungsleitungen (network backbones) dar. Es ist auch die bedeutendste einzelne Ursache für die Zunahme des Datenverkehrs, der zum ersten Mal den Sprachdatenverkehr übersteigt. Der wachsende Bedarf an Fernzugriffsanwendungen, darunter eMail, Datenbankzugriff und Dateiübertragung, stellt eine weitere Belastung für Netze dar.
  • Die Sprach-Daten-Konvergenz spielt eine wichtige Rolle bei der Definition der künftigen Netzumgebung. Derzeit ist die Übertragung von Daten über auf dem Internet Protocol (IP) beruhenden Netzen kostenlos. Da Sprachübertragungen natürlich den Weg der niedrigsten Kosten wählen, führt dies zwangsläufig zur Sprach-Daten-Konvergenz. Technologien wie Voice over IP (VoIP), Voice over ATM (VoATM) und Voice over Frame Relay (VoFR) sind kostengünstige Alternativen auf diesem sich ständig ändernden Markt. Um eine Migration zu diesen Technologien zu ermöglichen, muss die Industrie jedoch eine gewisse Dienstqualität (quality of service – QoS) für Sprachübertragung sicherstellen und die Gebühren für eine Sprachübertragung über Datenleitungen festlegen. Der „Telecommunications Deregulation Act" von 1996 gestaltet diese Umgebung noch komplizierter. Diese Gesetzgebung verstärkt eine symbiotische Beziehung zwischen dem Sprachprotokoll nach Wahl (voice protocol of choice), ATM, und dem Datenprotokoll nach Wahl, IP.
  • Die Integration traditioneller Systeme ist auch unabdingbar für Organisationen, wenn neue Produkte und Funktionseigenschaften verfügbar werden. Um ihre Investitionen in bestehende Anlagen und Software nicht zu verlieren, fordern Organisationen Lösungen, die ihnen die Migration zu neuen Technologien ermöglichen, ohne aktuelle Vorgänge zu unterbrechen.
  • Das Beseitigen von Netzengpässen hat weiterhin eine hohe Priorität für Dienstleister. Router sind oftmals die Quelle dieser Engpässe. Ein Netzstau wird im Allgemeinen jedoch häufig als Bandbreitenproblem missverstanden und durch die Suche nach Lösungen mit höherer Bandbreite angegangen. Heutzutage erkennen Hersteller diese Schwierigkeit. Sie wenden sich Netzprozessortechnologien zu, um Bandbreitenressourcen wirkungsvoller zu verwalten und die erweiterten Datendienste mit Kabelgeschwindigkeit bereitzustellen, die in Routern und Netzanwendungsservern im Allgemeinen zu finden sind. Zu diesen Diensten gehören die Auslastungsverteilung (load balancing), QoS, Gateways, Firewalls, Zugriffsschutz und Web-Zwischenspeicherung (web caching).
  • Bei Fernzugriffsanwendungen haben Leistungsfähigkeit, bedarfsorientierte Bandbreite (bandwidth-on-demand), Zugriffsschutz und Berechtigungsüberprüfung die höchste Priorität. Der Bedarf an einer Integration von QoS und CoS, einer integrierten Sprachbearbeitung (integrated voice handling) und hochentwickelteren Sicherheitslösungen bestimmt die Entwicklung von zukünftigen Netzvermittlungsstellen mit Fernzugriff. Außerdem muss der Fernzugriff eine steigende Anzahl von physischen Medien aufnehmen, beispielsweise ISDN, T1, E1, OC-3 bis OC-48, Kabel- und xDSL-Modems.
  • Industrieberater haben einen Netzprozessor (hierin auch als „NP" bezeichnet) als einen programmierbaren integrierten Schaltkreis für Datenübertragungen (programmable communications integrated circuit) mit der Fähigkeit zum Ausführen einer oder mehrerer der folgenden Funktionen definiert:
    • Paketklassifizierung – Kennzeichnen eines Paketes auf der Grundlage bekannter Eigenschaften, beispielsweise einer Adresse oder eines Protokolls
    • Paketänderung – Ändern des Pakets, so dass es IP, ATM oder andere Protokolle erfüllt (zum Beispiel Aktualisieren des Feldes „Lebensdauer" (time-to-live field) im Vorsatz für IP)
    • Warteschlangen-/Richtlinienverwaltung – spiegelt die Ausführungsstrategie für das Stellen von Paketen in eine Warteschlange, das Entnehmen aus der Warteschlange und die zeitliche Planung von Paketen für spezifische Anwendungen wider
    • Paketweiterleitung – Übertragung und Empfang von Daten über die Vermittlungsstruktur (switch fabric) und Weiterleiten oder Leitvermitteln des Pakets an die entsprechende Adresse.
  • Obwohl diese Definition eine genaue Beschreibung der grundlegenden Merkmale früher NPs ist, muss das gesamte Potenzial der Fähigkeiten und Vorteile von NPs noch realisiert werden. Netzprozessoren können die Bandbreite erhöhen und Latenzzeitprobleme in einem breiten Spektrum von Anwendungen lösen, indem sie es ermöglichen, dass vernetzte Tasks, die zuvor in Software bearbeitet wurden, in Hardware ausgeführt werden. Außerdem können NPs Geschwindigkeitsverbesserungen durch Architekturen bereitstellen, beispielsweise durch Ausführungen mit verteilter Verarbeitung und Pipeline-Verarbeitung. Diese Fähigkeiten können leistungsfähige Suchmaschinen ermöglichen, den Durchsatz steigern und eine schnelle Ausführung komplexer Tasks bereitstellen.
  • Es wird damit gerechnet, dass Netzprozessoren in gleicher Weise grundlegende Netzbausteine für Netzwerke werden, wie CPUs dies für PCs sind. Typische von einem NP gebotene Fähigkeiten sind Echtzeit-Verarbeitung, Zugriffsschutz, Speichern und Weiterleiten, eine Vermittlungsstruktur sowie IP-Paketbearbeitung und Lernfähigkeiten. NPs richten sich an die ISO-Schichten zwei bis fünf und werden zur Optimierung netzspezifischer Tasks entwickelt.
  • Das Prozessormodell NP beinhaltet mehrere Universalprozessoren und eine spezialisierte Logik. Lieferanten verfolgen derartige Anordnungen zur Bereitstellung skalierbarer, flexibler Lösungen, die Änderungen auf zeitgemäße und kostengünstige Weise integrieren können. Ein Prozessormodell NP ermöglicht eine verteilte Verarbeitung mit niedrigerem Integrationsgrad, wobei ein höherer Durchsatz, eine höhere Flexibilität sowie eine bessere Steuerung bereitgestellt werden. Die Programmierbarkeit kann eine problemlose Migration zu neuen Protokollen und Technologien bereitstellen, ohne dass neue ASIC-Entwicklungen erforderlich werden. Mit dem Prozessormodell der NPS profitieren NEVs von verringerten nichterstattungsfähigen technischen Kosten und einer verbesserten Produkteinführungszeit (time-to-market).
  • US-4 803 617 beschreibt ein System, in dem mehrere Prozessoren über mehrere Busse und Zuteilungseinrichtungen (arbiters) auf mehrere Speichermodule zugreifen.
  • Beschreibung der Erfindung
  • Die Erfindung wird durch die angehängten Ansprüche definiert.
  • Kurze Beschreibung der Zeichnungen
  • Einige der Erfindungszwecke wurden dargelegt, andere gehen aus der folgenden Beschreibung hervor, wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen wird, in denen:
  • 1 ein Blockschaltbild für eine Schnittstelleneinheit gemäß dieser Erfindung zeigt.
  • 1A ein Blockschaltbild für die MAC-Schicht zeigt.
  • Die 2A bis 2D die mit anderen Komponenten verbundene Schnittstelleneinheit in verschiedenen Systemkonfigurationen zeigen.
  • 3 den Fluss und die Verarbeitung eines eingebundenen gelenkten Rahmens (encapsulated guided frame) zeigt.
  • 4 den Fluss und die Verarbeitung einer internen gelenkten Rahmens (guided frame) zeigt.
  • 5 das verallgemeinerte Format für eine gelenkte Zelle (Guided Cell) zeigt.
  • 6 das Format für Rahmensteuerdaten (Frame Control Information) zeigt.
  • 7 das Format für den Korrelator zeigt.
  • 8 das Format für Befehlssteuerdaten (Command Control Information) zeigt.
  • 9 das Adressierdatenformat (Addressing Information Format) zeigt.
  • 10 die allgemeine Form der Strukturadressierung (Structure Addressing) zeigt.
  • 11 ein Diagramm für Adressierung und Codierung von Inseln zeigt.
  • 12A ein Blockschaltbild des eingebetteten Prozessorkomplexes zeigt.
  • 12B eine schematische Darstellung der eingebetteten Prozessoren zeigt.
  • 12C eine Struktur für einen GxH-Prozessor zeigt.
  • 13 ein Blockschaltbild des Speicherkomplexes zeigt.
  • 14 ein Flussdiagramm für den Suchalgorithmus mit feststehender Übereinstimmung (Fixed Match (FM) search algorithm) zeigt.
  • 15 Flüsse zeigt, die die Datenstruktur ohne Verwendung einer Steuertabelle (Direct Table) und mit Verwendung einer Steuertabelle veranschaulichen.
  • 16 ein Blockschaltbild eines Vermittlungssystems wie Prizma zeigt.
  • 17 ein Blockschaltbild eines CP zeigt.
  • 18 ein Blockschaltbild der Hervorhebungsfunktion des Netzprozessors mit einzelnem Chip in EINGANGS-EDS (EDS-UP), AUSGANGS-EDS (EDS DOWN) und EPC zeigt.
  • Ausführungsart(en) der Erfindung
  • Obwohl die vorliegenden Erfindungen im Folgenden in Bezug auf die begleitenden Zeichnungen ausführlicher beschrieben werden, in denen bevorzugte Ausführungsformen der vorliegenden Erfindungen gezeigt werden, muss am Anfang der folgenden Beschreibung verstanden werden, dass entsprechende Fachleute die hier beschriebenen Erfindungen verändern können, wobei dennoch die vorteilhaften Ergebnisse der Erfindungen erreicht werden. Dementsprechend muss die folgende Beschreibung als eine umfassende, lehrende Beschreibung, die an entsprechende Fachleute gerichtet ist, und nicht als die vorliegenden Erfindungen begrenzend verstanden werden.
  • Die hier beschriebene Vorrichtung ist skalierbar und kann funktionsmäßig zum Verbinden von Desktop- oder Arbeitsgruppen-Vermittlungsstellen (desktop or workgroup switches) verwendet werden, solche Vermittlungsstellen in einem Netzwerk-Leitungsstrang (network backbone) bündeln und Leitungs-Vermittlungsdienste (backbone switching services) bereitstellen. Die Vorrichtung kann die Weiterleitung von Schicht 2, Schicht 3 und Schicht 4+ in Hardware unterstützen. Bestimmte Formen der Vorrichtung werden für eine Desktop- oder Arbeitsgruppen-Vermittlungsbündelung (workgroup switch aggregation) entwickelt, während andere als Kernleitungs-Vermittlungsstellen (core backbone switches) dienen.
  • Die für die Vorrichtung verwendete Architektur beruht auf einer Schnittstelleneinheit oder einem Netzprozessor-Hardwareteilsystem und einer Softwarebibliothek, die in einem Steuerpunkt ausgeführt werden, wie an anderer Stelle in diesem Dokument ausführlicher beschrieben wird. Die Schnittstelleneinheit oder das Netzprozessorteilsystem ist eine Hochleistungs-Rahmenweiterleitungsmaschine (high Performance frame forwarding engine), die zur Syntaxanalyse und Umsetzung von Protokollvorsätzen von L2, L3 und L4+ entwickelt wurde. Dadurch wird es möglich, dass Protokolle unter Verwendung von Hardware mit höheren Geschwindigkeiten umgeschaltet werden. Die Schnittstelleneinheit oder das Netzprozessorteilsystem stellt einen schnellen Durchgangspfad bereit, während die Softwarebibliothek und der Steuerpunktprozessor Verwaltungs- und Leitwegerkundungsfunktionen (route discovery functions) bereitstellen, die zum Aufrechterhalten des schnellen Pfades benötigt werden. Der darin betriebene Steuerpunktprozessor und die Softwarebibliothek definieren zusammen den Steuerpunkt (Control Point – CP) des Systems. Am CP werden die eigentlichen Überbrückungs- und Leitvermittlungsprotokolle (bridging and routing protocols) ausgeführt, beispielsweise transparente Brücken (Transparent Bridging) und OSPF. Er kann auch als der langsame Pfad (slow-path) des Systems bezeichnet werden.
  • Obwohl die hier beschriebene Vorrichtung eine Weiterleitung mit mehreren Schichten in Hardware unterstützt, kann sie auch als ausschließliche L2-Vermittlungsstelle (L2 only switch) betrieben werden, und dies ist ihre Standardbetriebsart in der einfachsten beschriebenen Form. Jeder Anschluss wird in eine einzelne Domäne platziert, wobei jeder Einheit der Datenaustausch mit einer beliebigen anderen Einheit ermöglicht wird. Die Vorrichtung kann in L2 konfiguriert werden, wobei Systemadministratoren die Konfiguration von Merkmalen ermöglicht wird, unter anderem die Gruppierung von Anschlüssen in gesonderte Domänen oder Verbindungsleitungen (trunks), die Konfiguration von Virtual-LAN-(VLAN-)Segmenten oder Filtern zum Steuern von Rundsendebetrieb (broadcast) und selektivem Rundsendeverkehr (multicast traffic).
  • Diese skalierbare Vorrichtung hat viele Vorteile. Erstens ermöglicht sie dem Systemadministrator die Konfiguration von L3-Weiterleitung und Leitvermittlung von IP- und IPX-Datenverkehr unter Verwendung derselben Hardware, die für L2 und mit derselben Geschwindigkeit verwendet wird. Zweitens entfällt die Notwendigkeit, externe Router zum Verbinden von Campusgebäuden zu verwenden, wobei gleichzeitig die Leistungsfähigkeit erhöht wird. Drittens vereinfacht oder verknüpft sie die Verwaltung des L2/L3-Dienstes für ein Gebäude in Form eines einzigen Steuerpunktes. Schließlich stellt sie Mehrwertmerkmale (value added features) bei Funktionen in L4+ bereit, die Systemadministratoren die Zuweisung unterschiedlicher Datenverkehrsklassifizierung zur Unterstützung unternehmenswichtiger Anwendungen und Netzzuteilungseinrichtungen zur Auslastungsverteilung zwischen Servern ermöglichen.
  • Die Vorrichtung ist als eine modulare Einheit unter Verwendung einer Schnittstelleneinheit oder eines Netzprozessors, eines Steuerpunktes (CP) und einer zusätzlichen Vermittlungsstruktureinheit als grundlegende Bausteine gestaltet. Die Schnittstelleneinheit stellt vorzugsweise L2/L3/L4+-Weiterleitungsdienste mit schnellem Pfad bereit, während der CP die Verwaltungs- und Leitwegerkundungsfunktionen bereitstellt, die zum Aufrechterhalten des schnellen Pfades benötigt werden. Die zusätzliche Vermittlungsstruktureinheit wird verwendet, wenn mehr als zwei Schnittstelleneinheiten-Teilsysteme miteinander verbunden werden. Die wahlweise Vermittlungsstruktureinheit kann der Einheit entsprechen, die in der US-Patentschrift 5 008 878, Patent erteilt am 16. April 1991, mit dem Titel „High Speed Modular Switching Apparatus for Circuit and Packet Switched Traffic", beschrieben wird.
  • Die Vorrichtung wird erwartungsgemäß unter Verwendung von Leiterplattenelementen zusammengesetzt, die hierin auch als „Platinen" („blades") bezeichnet werden. Auf den Leiterplattenelementen sind Schaltungselemente angeordnet, und sie werden in Steckleisten eingesteckt, die in Vorrichtungsgehäusen bereitgestellt werden. Ähnliche Einheiten sind auch als „Zusatzkarten" („option cards") bekannt. Die Vorrichtung sieht vor, dass Platinen mit unterschiedlichem Gehäuse ausgetauscht werden können, vorausgesetzt, es werden entsprechende Anschlüsse und elektrische Verbindungen der Rückwandplatine bereitgestellt. Die auf allen Platinen zu findende grundlegende Komponente ist ein Trägerteilsystem (carrier subsystem). Beginnend mit dem Trägerteilsystem können drei Typen von Platinen hergestellt werden. Der erste Typ ist eine Platine mit nur einem CP (CP only Blade), die aus einem Trägerteilsystem und einem CP-Teilsystem besteht. Hauptsächlich findet eine Platine mit nur einem CP Verwendung in einem Produkt, bei dem Redundanz das Hauptanliegen ist. Der zweite Typ ist eine Platine mit CP und Medien (CP+Media Blade), die aus einem Trägerteilsystem und 1 bis 3 Medienteilsystemen besteht. Hauptsächlich findet eine Platine mit CP und Medien Verwendung in einem Produkt, bei dem die Anschlussdichte für wichtiger erachtet wird als die Redundanz. Der dritte Typ ist eine Medienplatine (Media Blade), die aus einem Trägerteilsystem und 1 bis 4 Medienteilsystemen besteht. Die Medienplatinen können in einem beliebigen Gehäuse verwendet werden, und der Typ von verwendetem Medienteilsystem ist konfigurierbar.
  • Die Platinenverwaltung beinhaltet die Fehlererkennung, die Stromverbrauchssteuerung, die Erkennung neuer Einheiten, die Initialisierung und die Konfigurierung. Diese Verwaltung erfolgt unter Verwendung verschiedener Register, E/A-Signale und einer Schnittstelle für gelenkte Zellen (guided cell interface), die für den Datenaustausch zwischen dem CP und den Trägerteilsystemen verwendet wird. Im Gegensatz zum Gehäuse gibt es jedoch programmierbare Einheiten und Speicher auf allen Platinen. Der Grad der Programmierbarkeit hängt vom Platinentyp ab. Wenn das CP-Teilsystem auf einer Platine vorliegt, sind sowohl der CP als auch die Trägerteilsysteme programmierbar. Die Medienteilsysteme sind ebenfalls programmierbar, jedoch nur indirekt über das Trägerteilsystem.
  • In Produkten mit erweiterten Fähigkeiten gibt es auch eine Vermittlungsplatine (Switch Blade), die das Teilsystem der Vermittlungsstruktureinheit enthält. Die Verwaltung dieser Platine beinhaltet die Fehlererkennung, die Stromverbrauchssteuerung, die Erkennung neuer Einheiten und die Initialisierung. Diese Verwaltung erfolgt unter Verwendung verschiedener Register und E/A-Signale, die in das CP-Teilsystem abgebildet werden.
  • In ihrer einfachsten Form weist eine von dieser Erfindung vorgesehene Vermittlungsvorrichtung einen Steuerpunktprozessor und eine funktionsmäßig mit diesem verbundene Schnittstelleneinheit auf. Vorzugsweise und gemäß der vorliegenden Beschreibung ist die Schnittstelleneinheit (auch als Netzprozessor bekannt) eine einheitliche höchstintegrierte Schaltkreiseinheit (Very Large Scale Integrated (VLSI) circuit device) oder ein höchstintegrierter Chip, die bzw. der Folgendes aufweist: ein Halbleitersubstrat; eine Vielzahl von auf diesem Substrat geformten Schnittstellenprozessoren; einen internen Befehlsspeicher, der auf diesem Substrat geformt wird und Befehle speichert, auf die die Schnittstellenprozessoren zugreifen können; einen internen Datenspeicher, der auf dem Substrat geformt wird und durch die Einheit geleitete Daten speichert, auf die die Schnittstellenprozessoren zugreifen können; und eine Vielzahl von Ein-/Ausgabeanschlüssen. Die Schnittstellenprozessoren werden hierin manchmal auch als Picoprozessoren oder Verarbeitungseinheiten bezeichnet. Zu den bereitgestellten Anschlüssen gehört mindestens ein Anschluss, der den internen Datenspeicher mit einem externen Datenspeicher verbindet, und mindestens zwei andere Anschlüsse, die unter der Steuerung der Schnittstellenprozessoren durch die Schnittstelleneinheit geleitete Daten mit einem externen Netz austauschen. Der Steuerpunkt arbeitet mit der Schnittstelleneinheit zusammen, indem er Befehle in den Befehlsspeicher lädt, die von den Schnittstellenprozessoren bei der Steuerung des Datenaustauschs zwischen den Datenaustausch-Ein-/Ausgabeanschlüssen und des Datenflusses durch den Datenspeicher ausgeführt werden müssen.
  • Der hier beschriebene Netzprozessor wird erfindungsgemäß getrennt von den Vermittlungsbauelementen betrachtet, in die er integriert ist. Außerdem weist der hier beschriebene Netzprozessor in seinen hier beschriebenen Elementen andere und weiterreichende Erfindungen auf, die hier nicht vollständig erläutert werden.
  • 1 zeigt ein Blockschaltbild für den Schnittstelleneinheitchip, der das Substrat 10 und eine Vielzahl von auf dem Substrat integrierten Teilbaugruppen beinhaltet. Die Teilbaugruppen sind in einer Eingangskonfiguration (Upside configuration) und einer Ausgangskonfiguration (Downside configuration) angeordnet. Der hierin verwendete Begriff „Eingang" bezieht sich auf Datenflüsse, die aus einem Netz in die hier beschriebene Vorrichtung eingehen, während „Ausgang" sich auf Datenflüsse bezieht, die aus der Vorrichtung in ein von der Vorrichtung bedientes Netz ausgehen. Der Datenfluss folgt den jeweiligen Konfigurationen. Infolgedessen gibt es einen Eingangsdatenfluss und einen Ausgangsdatenfluss. Zu den Teilbaugruppen auf der Eingangsseite gehören eine Logik 16 zur Zeitplanung von Eingangs-Wartschlangeneinreihung und -entnahme (Enqueue-Dequeue-Scheduling UP (EDS-UP) logic), eine gemultiplexte Zugangssteuerung 14 auf der Eingangsseite (multiplexed MAC'S-UP) (EINGANGS-PPM – PPM-UP), eine Eingangs-Vermittlungsdaten-Übertragungseinrichtung 18 (Switch Data Mover-UP – SDM-UP), eine Systemschnittstelle (SIF) 20, eine serielle Verbindung zum Ausrichten von Daten A (Data Align Serial Link A – DASLA) 22 und eine serielle Verbindung zum Ausrichten von Daten B (Data Align Serial Link B – DASLB) 24. Eine serielle Verbindung zum Ausrichten von Daten wird in der gleichzeitig anhängigen US-Patentanmeldung mit der Seriennummer 09/330 968, eingereicht am 11. Juni 1999, mit dem Titel „High Speed Parallel/Serial Link for Data Communication", ausführlicher beschrieben. Obwohl die hier beschriebene bevorzugte Form der Vorrichtung dieser Erfindung eine DASL-Verbindung verwendet, sieht die vorliegende Erfindung vor, dass andere Formen von Verbindungen verwendet werden können, um verhältnismäßig hohe Datenflussgeschwindigkeiten zu erzielen, insbesondere wenn die Datenflüsse auf die VLSI-Struktur begrenzt sind.
  • Zu den Teilbaugruppen auf der Ausgangsseite gehören eine DASL-A 26, eine DASL-B 28, eine SIF 30, eine AUSGANGS-SDM (SDM-DN) 32, eine AUSGANGS-EDS (EDS-DN) 34 und eine AUSGANGS-PPM (PPM-DN) 36. Außerdem enthält der Chip eine Vielzahl von internen S-RAMs, eine Planungseinrichtung 40 zur Datenverkehrsverwaltung (Traffic Mgt Scheduler) und einen eingebetteten Prozessorkomplex (Embedded Processor Complex – EPC) 12. Eine Schnittstelleneinheit 38 ist durch entsprechende DMU-Busse mit den PMM 14 und 36 verbunden. Die Schnittstelle 38 könnte eine beliebige geeignete L1-Schaltung sein, beispielsweise ein Ethernet-Bitübertragungsschicht (ethernet Physical – ENET PHY), eine ATM-Rahmeneinrichtung (ATM Framer) usw. Der Schnittstellentyp wird zum Teil durch die Netzmedien vorgegeben, mit denen der Chip verbunden ist. Eine Vielzahl externer D-RAMs und S-RAMs sind zur Verwendung durch den Chip verfügbar.
  • Obwohl die vorliegende Erfindung hier insbesondere für Netze beschrieben wird, in denen der allgemeine Datenfluss außerhalb der entsprechenden Vermittlungs- und Weiterleitungseinheiten durch elektrische Leiter, beispielsweise in Gebäuden installierte Drähte und Kabel, geleitet wird, ist es vorgesehen, dass die hier beschriebenen Netzvermittlungsstellen und deren Komponenten ebenso in einer drahtlosen Umgebung verwendet werden können. Mit Hilfe eines veranschaulichenden Beispiels können die hier beschriebenen Media Access Control-(MAC-)Elemente durch geeignete Funkelemente ersetzt werden, möglicherweise unter Verwendung der bekannten Silizium-Germanium-Technologie, woraus sich die Möglichkeit einer direkten Verbindung der hier beschriebenen Elemente mit einem drahtlosen Netz ergeben würde. Wenn eine solche Technologie entsprechend verwendet wird, können die Funkelemente von Fachleuten in die hier beschriebenen VLSI-Strukturen integriert werden. Alternativ können Funkeinheiten oder andere drahtlose Antworteinheiten, beispielsweise auf Infrarot ansprechende Einheiten, mit anderen hier beschriebenen Elementen auf eine Platine montiert werden, um eine Vermittlungsvorrichtung auszuführen, die in drahtlosen Netzsystemen verwendet werden kann.
  • Die Pfeile zeigen den allgemeinen Datenfluss in der Schnittstelleneinheit. von einer Ethernet-MAC-Schicht empfangene Rahmen werden durch die EINGANGS-EDS in interne Datenspeicherpuffer gestellt. Diese Rahmen werden als normale Datenrahmen oder gelenkte Rahmen der Systemsteuerung gekennzeichnet und in den EPC eingereiht (1). Der EPC enthält N Protokollprozessoren, die bis zu N Rahmen parallel bearbeiten können (N > 1). In einer Ausführungsform mit zehn Protokollprozessoren (12B) sind zwei der zehn Protokollprozessoren spezialisiert; einer zum Bearbeiten der gelenkten Rahmen (das generische zentrale Bedienprogramm (Generic Central Handler – GCH)) und einer zum Erstellen von Suchdaten (Lookup Data) im Steuerspeicher (das generische Baumbedienprogramm (Generic Tree Handler – GTH)). Wie in 12A gezeigt wird, enthält der EPC außerdem eine Abwicklungsseinrichtung (dispatcher), die neue Rahmen mit betriebsbereiten Prozessoren vergleicht, eine Ausführungseinheit, die eine Rahmenfolge aufrechterhält, einen von allen zehn Prozessoren gemeinsam genutzten allgemeinen Befehlsspeicher (Common Instruction Memory), eine Klassifizierungshardware-Unterstützung (Classifier Hardware Assist), die die Rahmenklassifizierung festlegt, und einen Coprozessor, der beim Feststellen der Startbefehlsadresse des Rahmens hilft, Ein- und Ausgangsdatenspeicher-Schnittstellen (Ingress and Egress Data Store interfaces), die Lese- und Schreibvorgänge von Rahmenpuffern steuern, eine Steuerspeicherzuteilungseinrichtung (Control Memory Arbiter), die den zehn Prozessoren die gemeinsame Nutzung des Steuerspeichers ermöglicht, eine Web-Steuerung, -Zuteilungseinrichtung und -Schnittstelle, die einen Zugriff auf interne Schnittstelleneinheiten-Datenstrukturen ermöglicht, sowie andere Hardwarekonstrukte.
  • Gelenkte Rahmen werden von der Abwicklungsseinrichtung an den GCH-Prozessor übertragen, wenn er verfügbar wird. Im gelenkten Rahmen codierte Vorgänge werden ausgeführt, beispielsweise Registerschreibvorgänge, Zählerlesevorgänge, Ethernet-MAC-Konfigurationsänderungen und so weiter. Referenztabellenänderungen (lookup table changes), beispielsweise das Hinzufügen von MAC- oder IP-Einträgen, werden für Steuerspeichervorgänge, beispielsweise Speicherlese- und Schreibvorgänge, an den Suchdatenprozessor (Lookup Data processor) weitergeleitet. Einige Befehle, beispielsweise MIB-Zählerlesevorgänge, erfordern die Erstellung und Weiterleitung eines Antwortrahmens an den entsprechenden Anschluss in der entsprechenden Schnittstelleneinheit. In einigen Fällen wird der gelenkte Rahmen für die Ausgangsseite der Schnittstelleneinheit codiert. Diese Rahmen werden an die Ausgangsseite der abgefragten Schnittstelleneinheit weitergeleitet, die die codierten Vorgänge sodann ausführt und einen entsprechenden Antwortrahmen erstellt.
  • Datenrahmen werden dem nächsten verfügbaren Protokollprozessor zum Ausführen von Rahmensuchvorgängen zugeteilt. Rahmendaten werden zusammen mit Ergebnissen von der Klassifizierungshardware-Unterstützungsmaschine (Classifier Hardware Assist (CHA) Engine) an den Protokollprozessor geleitet. Die CHA analysiert IP oder IPX syntaktisch. Die Ergebnisse legen den Baumsuchalgorithmus (Tree Search Algorithm) und die allgemeine Befehlsstartadresse (starting Common Instruction Address – CIA) fest. Zu unterstützten Baumsuchalgorithmen gehören Baumstrukturen mit feststehender Übereinstimmung (Fixed Match Trees) (Muster mit feststehender Größe, die eine genaue Übereinstimmung erforderlich machen, beispielsweise Ethernet-MAC-Tabellen der Schicht 2), Baumstrukturen mit längster Präfixübereinstimmung (longest prefix Match Trees) (Muster mit veränderlicher Länge, die Übereinstimmungen mit veränderlicher Länge benötigen, beispielsweise die Teilnetz-IP-Weiterleitung (subnet IP forwarding)) und softwareverwaltete Baumstrukturen (Software Managed Trees) (zwei Muster, die einen Bereich oder einen Bitmaskensatz (bit mask set) definieren, wie sie beispielsweise für Filterregeln verwendet werden).
  • Ein Suchvorgang wird mit Unterstützung des Baumsuchmaschinen-Coprozesors (Tree Search Engine (TSE) Coprocessor) ausgeführt, der Teil jedes Protokollprozessors ist. Der TSE-Coprozessor führt Steuerspeicherzugriffsvorgänge aus, wodurch der Protokollprozessor zum Fortsetzen von Ausführungsvorgängen freigegeben wird. Der Steuerspeicher speichert alle Tabellen, Zählwerte und andere vom Picocode benötigte Daten. Steuerspeichervorgänge werden von der Steuerspeicher-Zuteilungseinrichtung verwaltet, die den Speicherzugriff unter den zehn Prozessorkomplexen aufteilt.
  • Auf Rahmendaten wird durch den Datenspeicher-Coprozessor zugegriffen. Der Datenspeicher-Coprozessor enthält einen primären Datenpuffer (der bis zu acht 16-Byte-Segmente von Rahmendaten zwischenspeichert), einen Zwischenregister-Datenpuffer (scratch pad data buffer) (der ebenfalls bis zu acht 16-Byte-Segmente von Rahmendaten zwischenspeichert) und einige Steuerregister für Datenspeichervorgänge. Sobald eine Übereinstimmung gefunden wird, können Eingangsrahmenänderungen eine VLAN-Vorsatzeinfügung oder -überlagerung beinhalten. Diese Änderung wird nicht vom Prozessorkomplex der Schnittstelleneinheit ausgeführt, sondern stattdessen werden Hardwaremarkierungen abgeleitet, und eine andere Eingangsvermittlungs-Schnittstellenhardware (Ingress Switch Interface hardware) führt die Änderungen aus. Andere Rahmenänderungen können vom Picocode und dem Datenspeicher-Coprozessor ausgeführt werden, indem der im Eingangsdatenspeicher zwischengespeicherte Rahmeninhalt geändert wird.
  • Andere Daten werden gesammelt und zum Erstellen von Vermittlungsvorsätzen (Switch Headers) und Rahmenvorsätzen verwendet, bevor Rahmen an die Vermittlungsstruktureinheit übertragen werden. Steuerdaten enthalten Vermittlungsdaten, beispielsweise die Zielplatine des Rahmens, sowie Daten für die Ausgangsschnittstelleneinheit, die diese beim Ausführen von Rahmensuchvorgängen von Zielanschlüssen, Punkt-zu-Mehrpunkt- oder Punkt-zu-Punkt-Vorgängen und Ausgangsrahmenänderungen zu unterstützen.
  • Nach der Ausführung erstellt der Einreihungs-Coprozessor (Enqueue Coprocessor) die notwendigen Formate zum Einreihen des Rahmens in die Warteschlange der Vermittlungsstruktur und überträgt sie an die Ausführungseinheit (Completion Unit). Die Ausführungseinheit garantiert die Rahmenreihenfolge von den zehn Protokollprozessoren bis zu den Warteschlangen der Vermittlungsstruktur. Rahmen aus den Warteschlangen der Vermittlungsstruktur werden in 64-Byte-Zellen segmentiert, wobei Rahmenvorsatzbytes und Vermittlungsvorsatzbytes eingefügt werden, wenn sie an die -Vermittlungsstelle (Prizma-E Switch) übertragen werden.
  • Von der Vermittlungsstruktur empfangene Rahmen werden von einer Ausgangs-EDS (34) in Ausgangsdatenspeicherpuffern platziert und in eine Warteschlange zum EPC eingereiht. Ein Teil des Rahmens wird von der Abwicklungseinrichtung zum Ausführen von Rahmensuchvorgängen an einen betriebsbereiten Protokollprozessor übertragen. Rahmendaten werden dem Protokollprozessor zusammen mit Daten von der Klassifizierungshardware-Unterstützung zugeteilt. Die Klassifizierungshardware-Unterstützung verwendet Rahmensteuerdaten, die von der Eingangsschnittstelleneinheit erzeugt wurden, um bei der Feststellung der Befehlscode-Startadresse (CIA) zu unterstützen.
  • Ausgangsbaumsuchvorgänge unterstützen denselben Algorithmus, der für Eingangssuchvorgänge unterstützt wird. Ein Suchvorgang wird mit dem TSE-Coprozesssor ausgeführt, wodurch der Protokollprozessor zum Fortsetzen der Ausführung frei wird. Alle Steuerspeichervorgänge werden von der Steuerspeicher-Zuteilungseinrichtung verwaltet, die den Speicherzugriff unter den zehn Prozessorkomplexen aufteilt.
  • Auf Ausgangsrahmendaten wird durch den Datenspeicher-Coprozessor zugegriffen. Der Datenspeicher-Coprozessor enthält einen primären Datenpuffer (der bis zu acht 16-Byte-Segmente von Rahmendaten zwischenspeichert), einen Zwischenregister-Datenpuffer (der ebenfalls bis zu acht 16-Byte-Segmente von Rahmendaten zwischenspeichert) und einige Steuerregister für Datenspeichervorgänge. Das Ergebnis eines erfolgreichen Suchvorgangs enthält Weiterleitungsdaten und in einigen Fällen Rahmenänderungsdaten. Zu Rahmenänderungen können eine VLAN-Vorsatzlöschung, eine Erhöhung (IPX) oder Verminderung (IP) der Lebensdauer, eine Neuberechnung der IP-Vorsatzkontrollsumme (IP Header Checksum recalculation), eine Ethernet-Rahmen-CRC-Überlagerung oder -Einfügung und eine MAC-DA/SA-Überlagerung oder -Einfügung gehören. IP-Vorsatzkontrollsummen werden vom Kontrollsummen-Coprozessor vorbereitet. Änderungen werden nicht vom Prozessorkomplex der Schnittstelleneinheit ausgeführt, sondern stattdessen werden Hardwaremarkierungen erzeugt, und die PMM-Ausgangshardware führt die Änderungen aus. Nach der Ausführung wird der Einreihungs-Coprozessor veranlasst, die Erstellung der notwendigen Formate zum Einreihen des Rahmens in die EDS-Ausgangswarteschlangen und zum Übertragen derselben an die Ausführungseinheit zu unterstützen. Die Ausführungseinheit garantiert die Rahmenreihenfolge von den zehn Protokollprozessoren bis zu den EDS-Ausgangswarteschlangen, die den Ausgangs-Ethernet-MAC-Schichten 36 zugeführt werden.
  • Die fertig gestellten Rahmen werden schließlich von der PMM-Ausgangshardware an die Ethernet-MAC-Schichten und aus den Ethernet-Anschlüssen übertragen.
  • Ein interner Bus, der auch als Web bezeichnet wird, ermöglicht den Zugriff auf interne Register, Zähler und Speicher. Das Web beinhaltet auch eine externe Schnittstelle zum Steuern der Befehlsschritt- und Unterbrechungssteuerung für Fehlerbereinigung (debugging) und Diagnoseprogramme.
  • Der Baumsuchmaschinen-Coprozssor stellt eine Speicherbereichprüfung sowie eine Meldung illegaler Speicherzugriffe bereit und führt Baumsuchbefehle (beispielsweise Speicherlesevorgänge, Schreibvorgänge oder Lese-/Hinzufügungsvorgänge) aus, wobei er parallel zur Protokollprozessorausführung betrieben wird.
  • Der allgemeine Befehlsspeicher besteht aus einem 1024 × 128-RAM und zwei Sätzen von dualen 512 × 128-RAMs. Jeder Satz von dualen RAMs stellt zwei Kopien desselben Picocode bereit, wodurch Prozessoren ein unabhängiger Zugriff auf Befehle im selben Adressbereich ermöglicht wird. Jedes 128-Bit-Wort enthält vier 32-Bit-Befehle, wobei ein Gesamtbereich von 8192 Befehlen bereitgestellt wird.
  • Die Abwicklungseinrichtung steuert das Leiten von Rahmen an die zehn Protokollprozessoren und verwaltet Unterbrechungen und Zeitgeber.
  • Die Ausführungseinheit garantiert die Rahmenreihenfolge vom Prozessorkomplex bis zur Vermittlungsstruktur und den Zielanschlusswarteschlangen. Ein umfangreicher Befehlssatz enthält eine bedingte Ausführung, eine Komprimierung (packing) (für Eingangs-Hash-Schlüssel), eine bedingte Verzweigung, vorzeichenbehaftete und vorzeichenlose Vorgänge, Zählwerte von führenden Nullen und Weiteres.
  • Die Klassifizierungshardware-Unterstützungsmaschine analysiert syntaktisch den Protokollvorsatz der Schicht 2 und Schicht 3 jedes Rahmens und stellt diese Daten mit Rahmen bereit, wenn sie den Protokollprozessoren zugeteilt werden.
  • Die Steuerspeicher-Zuteilungseinrichtung steuert den Prozessorzugriff sowohl auf den internen als auch auf den externen Speicher.
  • Zu externen Steuerspeicheroptionen gehören 5 bis 7 DDR-DRAM-Teilsysteme, die jeweils ein Paar von DDR-DRAMs mit 2M × 16 Bit × 4 Bank oder ein Paar von DDR-DRAMs mit 4M × 16 Bit × 4 Bank unterstützen. Die DDR-DRAM-Schnittstelle wird mit einer Taktfrequenz von 133 MHz und einem Datenstrobe von 266 MHz betrieben, wobei eine konfigurierbare CAS-Latenzzeit und Treiberstärke unterstützt werden. Wahlweise kann ein ZBT-SRAM mit 133 MHz in einer von folgenden Konfigurationen hinzugefügt werden: 128 Kilobyte × 36, 2 × 256 Kilobyte × 18 oder 2 × 512 Kilobyte × 18.
  • Ausgangsrahmen können in einem externen Datenpuffer (z.B. DS0) oder zwei externen Datenpuffern (DS0 und DS1) gespeichert werden. Jeder Puffer kann aus einem Paar von DDR-DRAM mit 2M × 16 Bit × 4 Bank (speichern bis zu 256 Kilobyte 64-Byte-Rahmen) oder ein Paar von DDR-DRAM mit 4M × 16 Bit × 4 Bank (speichern bis zu 512 Kilobyte 64-Byte-Rahmen) bestehen. Der einzelne externe Datenpuffer (z.B. DS0) wird für 2,28 MBit/s gewählt, oder es wird der zweite Puffer (z.B. DS1) hinzugefügt, um eine Schicht-2- und Schicht-3-Vermittlung mit 4,57 MBit/s zu unterstützen. Das Hinzufügen des zweiten Puffers verbessert die Leistungsfähigkeit, erhöht jedoch nicht die Rahmenkapazität. Der externe Datenpuffer wird mit einer Taktfrequenz von 133 MHz mit einem Datenstrobe von 266 MHz betrieben und unterstützt eine konfigurierbare CAS-Latenzzeit und Treiberstärke.
  • Der interne Steuerspeicher enthält zwei RAMs mit 512 × 128 Bit, zwei RAMs mit 1024 × 36 Bit und einen RAM mit 1024 × 64 Bit.
  • Der interne Datenspeicher stellt eine Zwischenspeicherung von bis zu 2048 64-Byte-Rahmen in der Eingangsrichtung (UP) bereit.
  • Zu Änderungen an feststehenden Rahmen gehören das Einfügen von VLAN-Kennzeichungen in der Eingangsrichtung und das Löschen von VLAN-Kennzeichnungen, das Erhöhen/Vermindern der Lebensdauer (IP, IPX), die Ethernet-CRC-Überlagerung/-Einfügung und die MAC-DA/SA-Überlagerung/-Einfügung in der Ausgangsrichtung (DOWN).
  • Eine Anschlussspiegelung ermöglicht es, dass ein Empfangsanschluss und ein Sendeanschluss auf einen vom System bezeichneten Beobachtungsanschluss kopiert werden, ohne dass Protokollprozessorressourcen verwendet werden. Gespiegelte Schnittstelleneinheitenanschlüsse werden so konfiguriert, dass Rahmen- und Vermittlungssteuerdaten hinzugefügt werden können. Ein gesonderter Datenpfad ermöglicht ein direktes Einreihen von Rahmen in die Warteschlange der Eingangsvermittlungsschnittstelle.
  • Die Schnittstelleneinheit integriert vier Ethernet-Makros. Jedes Makro kann einzeln konfiguriert werden, so dass es im 1-Gigabit- oder 10/100-Fast-Ethernet-Modus betrieben werden kann. Jedes Ethernet-Makro unterstützt bis zu zehn MAC-Schichten mit 10/100 MBit/s oder eine MAC-Schicht mit 1000 MBit/s für jedes von vier Makros.
  • 1A zeigt ein Blockschaltbild für den MAC-Kern. Jedes Makro enthält drei Ethernet-Kernausführungen; nämlich den MAC-Kern (Fenet) mit mehreren Anschlüssen und 10/100 MBit/s (multiport 10/100 Mbps MAC Core (Fenet)), den MAC-Kern (Genet) mit 1000 MBit/s und den Kern der Teilschicht für physische Codierung (PCS) mit 100 MBit/s (Physical Coding Sublayer Core (PCS)).
  • Merkmale der Ethernet-10/100-MAC-Schicht mit mehreren Anschlüssen:
    • Unterstützt zehn serielle medienunabhängige Schnittstellen (Serial Medium Independent Interfaces) zur Bitübertragungsschicht (physical layer)
    • Kann zehn Anschlüsse mit Mediengeschwindigkeiten von 10 MBit/s oder 100 MBit/s mit beliebigem Geschwindigkeitsmix verwalten
    • Eine einzelne MAC-Schicht bedient alle zehn Anschlüsse mit einer Zeitmultiplexschnittstelle
    • Unterstützt Vollduplex/Halbduplex-Vorgänge mit Mediengeschwindigkeit auf allen Anschlüssen
    • Unterstützt das Binary Exponential Backoff-Verfahren nach IEEE 802,3
  • Merkmale des Ethernet-MAC-Kerns mit 1000 MBit/s:
    • Unterstützt eine GMII-Schnittstelle (Gigabit Medium Independent Interface – GMII) zur PCS-Schicht oder direkt zur Bitübertragungsschicht
    • Unterstützt mit dem PCS-Kern eine komplette TBI-Lösung (8B/10B)
    • Unterstützt Vollduplex-Punkt-zu-Punkt-Verbindungen mit Mediengeschwindigkeit
    • Unterstützt die Signalübertragung gültiger Bytes des IBM PCS-Kerns
  • Merkmale des Ethernet-Kerns der Teilschicht für physische Codierung mit 1000 MBit/s:
    • Führt eine 8B/10B-Codierung und -Decodierung aus
    • Unterstützt die PMA-Dienstschnittstelle (10 Bit), wie sie in IEEE 802,3z definiert wird, diese Schnittstelle kann mit jedem PMA verbunden werden, der IEEE 802,3z erfüllt
    • Synchronisiert vom PMA (Zweiphasentakt) empfangene Daten mit dem MAC-(Einphasen-)Takt
    • Unterstützt Autonegotiation, die zwei nächste Seiten beinhaltet
    • Führt eine Umsetzung von einem in den Standards definierten Zweiphasentaktsystem in einen Einphasentakt aus
    • Überträgt ein Signal an die MAC-Schicht, das jene Taktzyklen anzeigt, die neue Daten enthalten
    • Überprüft die empfangenen Codegruppen (10 Bit) auf COMMAs und richtet eine Wortsynchronisierung ein
    • Berechnet und prüft die 8B/10b-Ungleichheit (8b/10b running disparity)
  • Die 2A bis 2D zeigen verschiedene Konfigurationen für den Schnittstelleneinheit-Chip. Die Konfigurationen werden durch DASL und die Verbindung mit einer Vermittlungsstruktureinheit ermöglicht. Jede DASL enthält zwei Kanäle; nämlich einen Übertragungskanal und einen Empfangskanal.
  • 2A zeigt eine Rückverbindungskonfiguration (wrap configuration) für eine einzelne Schnittstelleneinheit. In dieser Konfiguration ist der Übertragungskanal mit dem Empfangskanal rückverbunden (wrapped).
  • 2B zeigt die Konfiguration, in der zwei Schnittstelleneinheiten-Chips verbunden sind. Jeder Schnittstelleneinheit-Chip ist mit mindestens zwei DASLs ausgestattet. In dieser Konfiguration sind die Kanäle einer DASL auf einem Chip funktionsmäßig mit den Kanälen einer übereinstimmenden DASL auf dem anderen Chip verbunden. Die andere DASL auf jedem Chip ist rückverbunden.
  • 2C zeigt die Konfiguration, in der mehrere Schnittstelleneinheiten mit einer Vermittlungsstruktur verbunden sind. Die Pfeile mit Doppelspitze zeigen eine Übertragung in beide Richtungen an.
  • 2D zeigt die Konfiguration, in der eine Hauptvermittlungsstelle (Main Switch) und eine Sicherungsvermittlungsstelle (Backup Switch) mit mehreren Schnittstelleneinheiten verbunden sind. Falls die Hauptvermittlungsstelle ausfällt, ist die Sicherungsvermittlungsstelle zur Verwendung verfügbar.
  • Ein Steuerpunkt (CP) enthält einen Systemprozessor, der mit jedem Element der Konfiguration verbunden ist. Der Systemprozessor im CP stellt unter anderem Initialisierungs- und Konfigurierungsdienste für den Chip bereit. Der CP kann sich in einer beliebigen von drei Positionen befinden: im Schnittstelleneinheit-Chip; auf der Platine, auf der der Chip montiert ist, oder außerhalb der Platine. Falls der CP sich außerhalb der Platine befindet, kann er sich an einer fernen Position befinden; das heißt, er befindet sich an anderer Stelle und tauscht Daten über das Netz aus, mit dem die Schnittstelleneinheit und der CP verbunden sind. Die Elemente eines CP werden in 17 gezeigt und beinhalten Speicherelemente (Cachespeicher, Flash-Speicher und SDRAM), eine Speichersteuereinheit, einen PCI-Bus und Anschlüsse für eine Rückwandplatine und für L1-Netzmedien.
  • 18 zeigt den Netzprozessor mit einzelnem Chip und die durch die EINGANGS-EDS, die Verkehrsverwaltungs-Planungseinrichtung (traffic Management (MGT) Scheduler) und die AUSGANGS-EDS (DN) bereitgestellten Funktionen. Die U-förmigen Symbole stellen Warteschlangen dar, und der Steuerblock (Control Block – CB), der den Inhalt in den Warteschlangen protokolliert, wird durch rechteckige Symbole dargestellt.
  • Es folgt eine Beschreibung der Elemente, ihrer jeweiligen Funktionen und ihrer Interaktion.
  • PMM:
    Dies ist der Teil des Netzprozessors, der die MAC-Schichten enthält (FEnet POS, GEnet) und mit den externen PHY-Einheiten verbunden ist.
    EINGANGS-PPM (UP-PMM):
    Diese Logik nimmt Bytes von den PHYs entgegen und formatiert diese in FISH (16 Bytes), um sie an die EINGANGS-EDS weiterzuleiten. Es gibt 4 DMUs im PMM, von denen jede mit 1 GEnet- oder 10 FEnet-Einheiten arbeiten kann.
    EINGANGS-EDS:
    Diese Logik entnimmt FISH-Bytes aus dem EINGANGS-PMM und speichert sie im EINGANGS-Datenspeicher (interner RAM). Sie kann mit 40 Rahmen gleichzeitig arbeiten, und nach dem Empfang einer entsprechenden Anzahl von Bytes reiht sie den Rahmen in die Warteschlange des EPC ein. Wenn der EPC mit dem Rahmen fertig ist, reiht die EINGANGS-EDS den Rahmen in die entsprechende Warteschlange des Zielanschlusses ein und beginnt mit der Übertragung des Rahmens an die EINGANGS-SDM (UP-SDM). Die EINGANGS-EDS ist für die gesamte Puffer- und Rahmenverwaltung zuständig und rücküberträgt die Puffer/Rahmen an freie Pools, wenn die Übertragung an die EINGANGS-SDM ausgeführt wurde.
    EPC:
    Diese Logik enthält die Picoprozessoren und kann einen eingebetteten PowerPC enthalten. Diese Logik kann anhand des Rahmenvorsatzes entscheiden, was mit dem Rahmen zu tun ist (weiterleiten, ändern, filtern usw.). Der EPC hat Zugang zu verschiedenen Referenztabellen und Hardware-Unterstützungen (hardware assists), um zu ermöglichen, dass die Picoprozessoren mit den hohen Bandbreitenanforderungen des Netzprozessors Schritt halten können.
    EINGANGS-SDM:
    Diese Logik nimmt die Rahmen und formatiert sie in PRIZMA-Zellen zur Übertragung an die Vermittlungsstruktur. Diese Logik kann außerdem den VLAN-Vorsatz in den Rahmen einfügen.
    EINGANG-SIF:
    Diese Logik enthält die EINGANGS-DASL-Makros und ist mit den externen Vermittlungsein-/ausgängen verbunden.
    AUSGANGS-SIF:
    Diese Logik enthält die AUSGANGS-DASL-Makros und empfängt PRIZMA-Zellen von den externen Ein-/Ausgängen.
    AUSGANGS-SDM:
    Diese Logik empfängt die PRIZMA-Zellen und vorverarbeitet diese zur Unterstützung bei der Wiederzusammensetzung der Rahmen.
    AUSGANGS-EDS:
    Diese Logik nimmt jede Zelle und setzt sie wieder zu Rahmen zusammen. Die Zelle wird im externen Datenspeicher gespeichert, und Puffer werden miteinander verbunden, um Rahmen zu erstellen. Wenn der gesamte Rahmen empfangen wird, wird er in die Warteschlange des EPC eingereiht. Nachdem der EPC mit dem Rahmen fertig ist, wird er in die Warteschlangen der Planungseinrichtung (falls vorhanden) oder des Zielanschlusses eingereiht. Die AUSGANGS-EDS überträgt die Rahmen sodann an den entsprechenden Anschluss, indem der Rahmen, alle Änderungsdaten und einige Steuerdaten an die AUSGANGS-PMM übertragen werden.
    AUSGANGS-PMM:
    Entnimmt die Daten aus der AUSGANGS-EDS, formatiert den Rahmen in Ethernet, POS usw. und überträgt den Rahmen an die externe PHY.
    SPM:
    Diese Logik wird verwendet, um dem Netzprozessor die Bildung einer Schnittstelle mit externen Einheiten (PHYs, LEDs, FLASH usw.) zu ermöglichen, benötigt jedoch nur 3 Ein-/Ausgänge. Der Netzprozessor verwendet eine serielle Schnittstelle zum Datenaustausch mit SPM, und anschließend führt SPM die notwendigen Funktionen zum Verwalten dieser externen Einheiten aus.
  • Fluss auf der EINGANGSSEITE
    • 1) Rahmen trifft in PHY ein
    • 2) Bytes werden von EINGANGS-PMM empfangen
    • 3) EINGANGS-PMM überträgt FISH an EINGANGS-EDS („Fish" bedeutet einen Teil eines Rahmens)
    • 4) EINGANGS-EDS speichert FISH in EINGANGS-DS
    • 5) EINGANGS-EDS überträgt Vorsatz an EPC
    • 6) EPC verarbeitet Vorsatz und rücküberträgt Daten zum Einreihen an EINGANGS-EDS
    • 7) EINGANGS-EDS setzt Empfang des restlichen Rahmens von EINGANGS-PMM fort
    • 8) EINGANGS-EDS überträgt Daten an EINGANGS-SDM, wenn entsprechende Daten bereit zur Übertragung an Vermittlungsstelle sind
    • 9) EINGANGS-SDM liest Rahmendaten und formatiert sie in PRIZMA-Zellen
    • 10) EINGANGS-SDM überträgt Zellen an EINGANGS-SIF
    • 11) EINGANGS-SIF überträgt die Zellen über die seriellen DASL-Verbindungen an PRIZMA
    • 12) EINGANGS-EDS gibt Puffer/Rahmen frei, wenn alle Daten entnommen wurden
  • Fluss auf der AUSGANGSSEITE
    • 1) AUSGANGS-SIF empfängt PRIZMA-Zellen
    • 2) AUSGANGS-SDM speichert Zellen und vorverarbeitet sie für Wiederzusammensetzungsdaten
    • 3) AUSGANGS-EDS empfängt die Zellendaten und Wiederzusammensetzungsdaten und verbindet die Zelle in einen neuen Rahmen auf der Ausgangsseite
    • 4) AUSGANGS-EDS speichert die Zelle in AUSGANGS-DS
    • 5) AUSGANGS-EDS stellt den Rahmen in die EPC-Warteschlange, wenn alle Daten empfangen wurden
    • 6) EPC verarbeitet den Vorsatz und rücküberträgt Daten zum Einreihen an AUSGANGS-EDS
    • 7) AUSGANGS-EDS stellt den Rahmen in eine Warteschlange der Planungseinrichtung (falls vorhanden) oder des Zielanschlusses
    • 8) AUSGANGS-EDS bedient die Warteschlangen und überträgt Rahmendaten in PCB
    • 9) AUSGANGS-EDS verwendet PCB zum „Auftrennen" des Rahmens, liest die entsprechenden Daten und überträgt diese an AUSGANGS-PMM
    • 10) AUSGANGS-PMM formatiert die Daten (mit Änderung, falls angefordert) und überträgt den Rahmen an die externe PHY 11) AUSGANGS-PMM informiert AUSGANGS-EDS, wenn Puffer nicht mehr benötigt werden, und AUSGANGS-EDS gibt diese Ressourcen frei
  • RAHMEN-Steuerfluss
    • 1) Vorsatz wird von EINGANGS-DS oder AUSGANGS-DS an EPC übertragen
    • 2) EPC sucht Vorsatzdaten in Referenztabellen und empfängt Daten zum Einreihen des Rahmens in eine Warteschlange
    • 3) EPC rücküberträgt die Daten zum Einreihen an die EDS, und der Rahmen wird in die entsprechende Warteschlange gestellt
    • 4) Zellenvorsätze und Rahmenvorsätze werden zusammen mit den Rahmendaten übertragen, um die Wiederzusammensetzung und die Rahmenweiterleitung zu unterstützen
  • CP-Steuerfluss
    • 1) Steuerpunkt formatiert einen gelenkten Rahmen und überträgt diesen an den Netzprozessor
    • 2) Der Netzprozessor stellt den gelenkten Rahmen in die Warteschlange zum GCH-Picoprozessor
    • 3) Der GCH verarbeitet den gelenkten Rahmen und liest oder schreibt die angeforderten Rainier-Bereiche
    • 4) Der GCH leitet alle Tabellenaktualisierungsanforderungen an das GTH
    • 5) Das GTH aktualisiert die entsprechende Tabelle mit Daten aus dem gelenkten Rahmen
    • 6) Eine gelenkter Rahmen wird zur Bestätigung an den CP rückübertragen
  • Netzprozessor-Steuerfluss
    • 1) Ein Picoprozessor kann einen gelenkten Rahmen erstellen, um Daten an einen anderen Rainier oder den Steuerpunkt zu übertragen
    • 2) Der gelenkte Rahmen wird zur Verarbeitung an die entsprechende Stelle übertragen
  • Eine einzelne Schnittstelleneinheit stellt eine Vermittlung mit Mediengeschwindigkeit für bis zu 40 Fast-Ethernet-Anschlüsse (2A) bereit. 80 Fast-Ethernet-Anschlüsse werden unterstützt, wenn zwei Schnittstelleneinheiten unter Verwendung einer IBM DASL-Verbindung (Data Aligned Synchronous Link – DASL) miteinander verbunden werden. Jedes DASL-Differenzialpaar (DASL differential pair) überträgt 440 MBit/s an Daten. Zwei Sätze von acht Paaren stellen eine Duplexverbindung mit 3,5 GBit/s bereit (achtmal 440 MBit/s in jede Richtung). Wie in den 2C und 2D gezeigt wird, können größere Systeme erstellt werden, indem mehrere Schnittstelleneinheiten zu einer Vermittlungsstelle miteinander verbunden werden, beispielsweise einer IBM Prizma-E-Vermittlungsstelle. Die Schnittstelleneinheit stellt zwei der DAS1-Duplexverbindungen mit 3,5 GBit/s bereit, eine primäre und eine sekundäre, die zum Bereitstellen eines Rückverbindungspfades (wrap-backpath) für den lokalen Rahmenverkehr (wenn zwei Schnittstelleneinheiten direkt miteinander verbunden werden, 2B) oder eine Verbindung mit einer redundanten Vermittlungsstruktur (2D, Sicherungsvermittlungsstelle) verwendet werden können. Im Hinblick auf die obige Beschreibung ist der einzelne Netzprozessorchip insofern skalierbar, als ein Chip verwendet werden kann, um ein System im unteren Kostenbereich (low end System) (mit einer verhältnismäßig niedrigen Anschlussdichte – z.B. 40) bis hin zu einem System im höheren Kostenbereich (high end system) (mit einer verhältnismäßig hohen Anschlussdichte, z.B. 80-n Anschlüssen) bereitzustellen.
  • Eine Schnittstelleneinheit im System ist über bis zu zehn Fast-Ethernet-Anschlüssen mit 10/100 MBit/s oder einem einzigen Ethernet-Anschluss mit 1000 MBit/s mit dem Systemprozessor verbunden. Die Ethernet-Konfiguration zum Systemprozessor wird in einem EEPROM platziert, der mit der Schnittstelleneinheit verbunden ist und während der Initialisierung aufgeladen wird. Der Systemprozessor tauscht Daten mit allen Schnittstelleneinheiten in einem System aus (siehe 2), indem er spezielle gelenkte Rahmen erstellt, die als Ethernet-Rahmen eingebunden werden. Die eingebundenen gelenkten Rahmen werden über die DASL-Verbindung an andere Einheiten weitergeleitet, wodurch die Steuerung aller Schnittstelleneinheiten im System von einem einzigen Punkt aus ermöglicht wird.
  • Gelenkte Rahmen werden zum Austauschen von Daten zwischen dem Steuerpunkt (CP) und dem eingebetteten Prozessorkomplex und innerhalb der Schnittstelleneinheit verwendet. Eine vorausgehende Beschreibung von gelenkten Zellen, die zum Verständnis der vorliegenden Erläuterung beitragen kann, ist in der US-Patentschrift 5 724 348 zu finden, Patent erteilt am 3. März 1998, mit dem Titel „Efficient Hardware/Software Interface for a Data Switch".
  • Bei gelenktem Rahmenverkehr, der vom CP stammt, erstellt dieser den gelenkten Rahmen in Datenpuffern in seinem lokalen Speicher. Der Einheitentreiber des CP überträgt den gelenkten Rahmen an eine der Medienschnittstellen des Netzprozessors. Media Access Control- (MAC-) Hardware stellt den gelenkten Rahmen wieder her und speichert diesen in ihrem internen Datenspeicher (U_DS). Der gelenkte Rahmen wird an die entsprechende Platine geleitet, verarbeitet und gegebenenfalls an den CP zurückgeleitet. Gelenkte Rahmen, die zwischen einem externen CP und der Schnittstelleneinheit geleitet werden, werden zur Anpassung an das Protokoll des externen Netzes eingebunden. Falls das externe Netz Ethernet beinhaltet, werden die gelenkten Rahmen infolgedessen als Ethernet-Rahmen eingebunden und so weiter.
  • Die Ethernet-Einbindung stellt ein Transportmittel für gelenkten Verkehr zwischen dem CP und der Schnittstelleneinheit bereit. Die Ethernet-MAC-Schicht (Enet MAC) der Schnittstelleneinheit analysiert beim Empfang von Rahmen nicht die Zieladresse (Destination Address – DA) oder Quellenadresse (Source Address – SA). Diese Analyse wird vom EPC-Picocode ausgeführt. Der gelenkte Verkehr setzt voraus, dass die Schnittstelleneinheit nicht konfiguriert wurde und die DA und SA nicht vom EPC-Picocode analysiert werden können. Daher leiten diese Rahmen sich quasi selbst weiter (selfrouting). Die Enet-MAC analysiert jedoch das Ethernet-Typenfeld, um gelenkten Verkehr von Datenverkehr zu unterscheiden. Der Wert dieses Ethernet-Typenfelds muss mit dem in das Register E_Type_C geladenen Wert übereinstimmen. Dieses Register wird vom Urlade-Picocode (boot Picocode) der Schnittstelleneinheit aus dem Flash-Speicher geladen.
  • Der CP erstellt den gelenkten Rahmen in Datenpuffern in seinem lokalen Speicher. Der Inhalt eines 32-Bit-Registers im CP-Prozessor wird im Big-Endian-Format im lokalen Speicher gespeichert, wie in 3 gezeigt wird. Nach der Erstellung des gelenkten Rahmens überträgt der Einheitentreiber des CP einen Ethernet-Rahmen, der Folgendes enthält: eine DA für das spezifische Bedienprogramm für gelenkte Zellen (Guided Cell Handler – GCH), eine SA, die der globalen MAC-Adresse für den CP oder der MAC-Adresse für eine spezifische Schnittstelle entspricht, ein spezielles Ethernet-Typenfeld, das einen gelenkten Rahmen anzeigt, und die Daten des gelenkten Rahmens. Alle im Anschluss eingehenden Ethernet-Rahmen werden von Enet-MAC empfangen und analysiert. Bei Rahmen mit einem Ethernet-Typenwert, der dem Inhalt des Registers E_Type_C entspricht, entnimmt die Enet-MAC die DA, die SA und die Ethernet-Typenfelder und speichert die Daten des gelenkten Rahmens in den Speicher U_DS. Die Bytes werden eines nach dem anderen von der Enet-MAC in einen Block von 16 Bytes gesammelt, der als „Fish" bezeichnet wird. Diese Bytes werden im Big-Endian-Format gespeichert, wobei das erste Byte des gelenkten Rahmens in der höchstwertigen Byteposition des Fish (Byte 0) gespeichert wird. Nachfolgende Bytes werden in aufeinanderfolgenden Bytepositionen im Fish (Byte 1, Byte 2, ..., Byte 15) gespeichert. Diese 16 Bytes werden sodann in einem Puffer im U_DS gespeichert, beginnend an der Fish-Position 0. Nachfolgende Fishes werden in aufeinanderfolgenden Fish-Positionen im Puffer gespeichert (Fish 1, Fish 2, Fish 3 usw.). Bei Bedarf werden zusätzliche Puffer aus einem freien Pool erhalten, um den Rest des gelenkten Rahmens zu speichern.
  • Der Fluss des gelenkten Verkehrs in der Schnittstelleneinheit 10 wird in 4 gezeigt. Die Enet-MAC-Funktion der Schnittstelleneinheit prüft den Rahmenvorsatz und ermittelt, ob der Rahmen ein gelenkter Rahmen ist. Die Enet-MAC entfernt den Rahmenvorsatz vom gelenkten Rahmen und puffert den Rest seines Inhalts im internen Speicher U_DS der Schnittstelleneinheit. Die Enet-MAC zeigt an, dass der Rahmen zur Verarbeitung durch das GCH in die Warteschlange der allgemeinen Steuerung (GC) gestellt werden muss. Wenn das Ende des gelenkten Rahmens erreicht worden ist, stellt die Logik zur Warteschlangeneinreihung, -entnahme und Zeitplanung (EDS) den Rahmen in die GC-Warteschlange.
  • Der GCH-Picocode auf der lokal mit dem CP verbundenen Platine prüft die Rahmensteuerdaten (siehe 6), um festzustellen, ob der gelenkte Rahmen für andere Platinen im System vorgesehen ist und ob der gelenkte Rahmen auf der Ausgangsseite der Schnittstelleneinheit ausgeführt werden muss. Falls der Rahmen für andere als die lokal angeschlossene oder zusätzliche Platinen vorgesehen ist, aktualisiert der GCH-Picocode den TB-Wert im Rahmensteuerblock (Frame Control Block – FCB) mit dem TB-Wert aus den Rahmensteuerdaten des gelenkten Rahmens und weist die EDS an, den Rahmen in die Warteschlange „Rahmenbeginn der Zielplatine" (Target Blade Start of Frame – TB_SOF) zur selektiven Rundsendung zu stellen. Aus Gründen der Leistungsfähigkeit wird der gesamte gelenkte Verkehr unabhängig von der Anzahl angezeigter Zielplatinen in die Warteschlange TB_SOF zur selektiven Rundsendung gestellt.
  • Falls der Rahmen lediglich für die lokal angeschlossene Platine vorgesehen ist, prüft der GCH-Picocode das Feld „Eingang/Ausgang" (up/down field) der Rahmensteuerdaten, um festzustellen, ob der gelenkte Rahmen auf der Eingangs- oder der Ausgangsseite der Schnittstelleneinheit ausgeführt werden muss (siehe 6). Falls der gelenkte Rahmen auf der Ausgangsseite der Schnittstelleneinheit ausgeführt werden muss, aktualisiert der GCH-Picocode den TB-Wert im FCB mit dem TB-Wert aus den Rahmensteuerdaten des gelenkten Rahmens und weist die EDS an, den Rahmen in die Warteschlange „Rahmenbeginn der Zielplatine" (TB_SOF) zur selektiven Rundsendung zu stellen. Falls die Rahmensteuerdaten anzeigen, dass der gelenkte Rahmen auf der Eingangsseite ausgeführt werden muss, analysiert der GCH-Picocode den gelenkten Rahmen und führt die Vorgänge aus, die von den in ihm enthaltenen gelenkten Befehlen angezeigt werden.
  • Vor der Verarbeitung von gelenkten Befehlen prüft der Picocode den Wert des Feldes „ack/noack" (ack/noack field) der Rahmensteuerdaten. Falls dieser Wert '0'b ist, wird der gelenkte Rahmen nach der Verarbeitung gelöscht. Gelenkte Lesebefehle dürfen dieser Kategorie nicht angehören.
  • Falls der Wert des Feldes „ack/noack" '1'b und der Wert des Feldes früh/spät (early/late field),1'b ist, erstellt der Picocode vor der Verarbeitung von irgendeinem der gelenkten Befehle im gelenkten Rahmen einen gelenkten Rahmen mit früher Bestätigung (Early_Ack Guided Frame), wobei der Wert des TB-Feldes der Rahmensteuerung gleich dem Inhalt des gelenkten Rahmens mit früher Bestätigung ist, wobei Wert des TB-Feldes der Rahmensteuerung gleich dem Inhalt des Registers My_TB ist. Der Picocode leitet den gelenkten Rahmen mit früher Bestätigung zurück an den CP, indem er den TB-Wert im FCB des Rahmens mit dem im TB-Feld des Registers „LAN-Steuerpunktadresse" (LAN Control Point Address – LAN_CP_Addr) aktualisiert und die EDS anweist, den Rahmen in die Warteschlange TB_SOF zur selektiven Rundsendung zu stellen. Der Picocode verarbeitet sodann die gelenkten Befehle des gelenkten Rahmens und löscht den gelenkten Rahmen. Gelenkte Lesebefehle dürfen dieser Kategorie nicht angehören.
  • Falls der Wert des Feldes „ack/noack" andererseits '1'b und der Wert des Feldes „früh/spät" '0'b ist, ändert der Picocode das Feld „resp/req" (resp/req field) der Rahmensteuerdaten auf '1'b, um eine gelenkte Rahmenantwort anzuzeigen, ersetzt das TB-Feld durch den Inhalt des Registers My_TB und verarbeitet jeden gelenkten Befehl im gelenkten Rahmen. Im Verlauf der Verarbeitung eines gelenkten Befehls aktualisiert der Picocode das Feld „Ausführungscode" (Completion Code field) des nächsten gelenkten Befehls mit dem Ausführungsstatuscodewert für den aktuellen gelenkten Befehl. Der Picocode leitet die Antwort zurück an die Quelle, indem er den TB-Wert im (FCB) mit dem Wert der Quellenplatine entsprechenden Wert (Wert des Registers LAN_CP Addr für CP) aktualisiert und die EDS anweist, den Rahmen in die Wartschlange TB_SOF zur selektiven Rundsendung zu stellen.
  • In der Warteschlange TB_SOF befindliche Rahmen werden zur Weiterleitung durch die EDS zeitlich geplant. Die Vermittlungsdaten-Übertragungseinrichtung (Switch Data Mover – SDM) erstellt den Zellenvorsatz der Vermittlungsstruktur und den Rahmenvorsatz der Schnittstelleneinheit aus dem im FCB enthaltenen Daten. Diese Zellen werden durch die Vermittlungsstruktureinheit geleitet und treffen in der Zielplatine ein, wo die Zellen im Speicher D_DS wieder zu einem Rahmen zusammengesetzt werden. Die SDM der Ausgangsseite erkennt, dass der Rahmen ein gelenkter Rahmen ist und benachrichtigt die EDS, diesen in die GC-Warteschlange zu stellen.
  • Druck von der GC-Warteschlange oder der GT-Warteschlange stimuliert den Picocode zum Zugreifen auf die und Analysieren der gelenkten Rahmen. Alle auf der Ausgangsseite eintreffenden gelenkten Rahmen werden anfänglich in die GC-Warteschlange gestellt. Der Wert „gth/gch" der Rahmensteuerdaten für diese Rahmen wird vom GCH-Picocode überprüft. Falls der gth/gch-Wert '0'b ist, wird der gelenkte Rahmen in die GT-Warteschlange gestellt. Andernfalls prüft der GCH-Picocode das Feld „resp/req" der Rahmensteuerdaten, um festzustellen, ob der gelenkte Rahmen bereits ausgeführt wurde. Falls das Feld „resp/req" einen Wert von '1'b hat, wurde der gelenkte Rahmen bereits ausgeführt und wird an den CP geleitet. Zielanschlusswerte, die CP-Verbindungen entsprechen, werden vom EPC-Picocode verwaltet. Rahmen aus diesen Zielanschlusswarteschlangen werden von der Schnittstelleneinheit an den CP rückübertragen.
  • Falls das Feld „resp/req" einen Wert von '0'b hat, kann die Platine in Bezug auf den CP lokal oder fern sein. Dies wird erkannt, indem der Wert des TB-Feldes des Registers LAN_CP Addr mit dem Inhalt des Registers „Meine Zielplatine" (My Target Blade – My_TB) verglichen wird. Falls sie übereinstimmen, ist die Platine in Bezug auf den CP lokal, andernfalls ist sie vom CP entfernt. In jedem Fall prüft der Picocode den Wert „Eingang/Ausgang" (up/down) der Rahmensteuerdaten. Falls „up/down" gleich '1'b ist, wird der Rahmen zur Weiterleitung an U_DS und Verarbeitung durch das GCH auf der Eingangsseite in die Warteschlange „Wrap TP" (Wrap TP queue) gestellt. Andernfalls führt der Picocode (GCH oder GTH) die von den im gelenkten Rahmen enthaltenen gelenkten Befehlen angegebenen Vorgänge aus. Vor der Verarbeitung der gelenkten Befehle prüft der Picocode den Wert des Feldes „ack/noack" der Rahmensteuerdaten. Falls dieser Wert '0'b ist, wird der gelenkte Rahmen nach der Verarbeitung gelöscht. Gelenkte Lesebefehle dürfen dieser Kategorie nicht angehören.
  • Falls der Wert des Feldes „ack/noack" '1'b und der Wert des Feldes „early/late" '1'b ist, erstellt der Picocode vor der Verarbeitung irgendeines der gelenkten Befehle im gelenkten Rahmen einen gelenkten Rahmen mit früher Bestätigung, wobei der Wert des TB-Feldes der Rahmensteuerdaten gleich dem Inhalt des Registers My_TB ist. Falls die Platine vom CP entfernt ist, leitet der Picocode den gelenkten Rahmen mit früher Bestätigung an den Rückverbindungsanschluss (Wrap Port). Andernfalls ist die Platine in Bezug auf den CP lokal, und der Rahmen wird an die dem CP entsprechende Anschlusswarteschlange (Port Queue) geleitet. Der Picocode verarbeitet die gelenkten Befehle, während der Rückverbindungsanschluss den gelenkten Rahmen mit früher Bestätigung aus dem D_DS in den U_DS überträgt, und stellt den Rahmen in die GC-Warteschlange auf der Eingangsseite, oder der Rahmen wird aus der Anschlusswarteschlange an den CP rückübertragen. Bei Rahmen, die an den U_DS rückgeführt werden, sieht der GCH-Picocode diesen Rahmen erneut, das Feld „resp/req" hat jedoch einen Wert von '1'b. Der GCH-Picocode leitet den Rahmen zurück an den CP, indem er das TB-Feld im FCB mit dem im TB-Feld des Registers LAN_CP_Addr enthaltenen Wert aktualisiert und die EDS anweist, den Rahmen in die Warteschlange TB_SOF zur selektiven Rundsendung zu stellen. In der Warteschlange TB_SOF befindliche Rahmen werden zur Weiterleitung durch die EDS zeitlich geplant. Die SDM erstellt den Prizma-Zellenvorsatz und den Rahmenvorsatz der Schnittstelleneinheit aus im FCB enthaltenen Daten. Zellen aus diesem Rahmen werden durch Prizma geleitet und in der lokalen Platine des CP wieder zu einem Rahmen zusammengesetzt. Die SDM der Ausgangsseite erkennt, dass der Rahmen ein gelenkter Rahmen ist und benachrichtigt die EDS, diesen in die GC-Warteschlange zu stellen. Wenn der GCH-Picocode dieses Mal den Rahmen analysiert, hat das Feld „resp/req" einen Wert von '1'b. Dies bedeutet, dass diese Platine lokal mit dem CP verbunden ist, und der gelenkte Rahmen wird an die dem CP entsprechende Anschlusswarteschlange geleitet. Rahmen aus dieser Warteschlange werden von der Schnittstelleneinheit an den CP rückübertragen.
  • Falls andererseits der Wert des Feldes „ack/noack" '1'b und der Wert des Feldes „early/late" '0'b ist, ändert der Picocode das Feld „resp/req" zu '1'b, um eine gelenkte Rahmenantwort anzuzeigen, ersetzt das TB-Feld durch den Inhalt des Registers My_TB und verarbeitet sodann jeden gelenkten Befehl im gelenkten Rahmen. Im Laufe der Verarbeitung eines gelenkten Befehls aktualisiert der Picocode das Feld „Ausführungscode" des nächsten gelenkten Befehls mit dem Ausführungsstatuscodewert für den aktuellen gelenkten Befehl. Falls die Platine vom CP entfernt ist, leitet der Picocode den gelenkten Rahmen an den Rückverbindungsanschluss. Andernfalls ist die Platine in Bezug auf den CP lokal, und der Rahmen wird an die dem CP entsprechende Anschlusswarteschlange geleitet.
  • Entweder überträgt der Rückverbindungsanschluss den gelenkten Rahmen aus dem D_DS in den U_DS und stellt den Rahmen in die GC-Warteschlange auf der Eingangsseite, oder der Rahmen wird aus der Anschlusswarteschlange an den CP rückübertragen. Bei Rahmen, die an den U_DS rückgeführt werden, sieht der GCH-Picocode diesen Rahmen erneut, das Feld „resp/req" hat jedoch einen Wert von '1'b. Der GCH-Picocode leitet den Rahmen zurück an den CP, indem er das TB-Feld im FCB mit dem im TB-Feld des Registers LAN_CP_Addr enthaltenen Wert aktualisiert und die EDS anweist, den Rahmen in die Warteschlange TB_SOF zur selektiven Rundsendung zu stellen. In der Warteschlange TB_SOF befindliche Rahmen werden zur Weiterleitung durch die EDS zeitlich geplant. Die SDM erstellt den Prizma-Zellenvorsatz und den Rahmenvorsatz der Schnittstelleneinheit aus im FCB enthaltenen Daten. Zellen aus diesem Rahmen werden durch Prizma geleitet und auf der Ausgangsseite der lokalen Platine des CP wieder zu einem Rahmen zusammengesetzt. Die SDM der Ausgangsseite erkennt, dass der Rahmen ein gelenkter Rahmen ist und benachrichtigt die EDS, diesen in die GC-Warteschlange zu stellen. Wenn der GCH-Picocode dieses Mal den Rahmen aus dem D_DS analysiert, hat das Feld „resp/req" einen Wert von '1'b. Dies bedeutet, dass diese Platine lokal mit dem CP verbunden ist, und der gelenkte Rahmen wird an die dem CP entsprechende Anschlusswarteschlange geleitet. Rahmen aus dieser Warteschlange werden von der Schnittstelleneinheit an den CP rückübertragen.
  • Falls der GCH-Picocode aus irgendeinem Grund auf einen gelenkten Rahmen trifft, bei dem das TB-Feld der Rahmensteuerdaten gleich '0000'h ist, interpretiert der GCH-Picocode den Rahmen als nur für diese Platine vorgesehen und handelt dementsprechend. Dieser Vorgang wird während der Initialisierung benötigt, wenn der Wert des Registers My_TB für alle Platinen '0000'h ist. Der CP initialisiert das Register My_TB der lokal angeschlossenen Platine durch das Übertragen eines gelenkten Schreibbefehls in einem gelenkten Rahmen, dessen Rahmensteuerdaten einen TB-Wert von '0000'h haben.
  • Jeder der Picoprozessoren im EPC kann einen gelenkten Rahmen erzeugen. Dieser Rahmen kann der unerwartete gelenkte Rahmen (Unsolicited Guided Frame) oder irgendeine andere Form von gelenktem Rahmen sein. Intern erzeugte Rahmen dieses Typs werden auf eine Weise erstellt, die keine Bestätigung ermöglicht (d.h., ack/noack = '0'b). Diese Rahmen können an einen der beiden Picoprozessoren (GCH oder GTH) im selben EPC oder an das GCH oder GTH einer anderen Platine übertragen werden.
  • Unerwartete gelenkte Rahmen können auch an den CP übertragen werden. Gelenkte Rahmen, die für denselben EPC bestimmt sind, werden unter Verwendung von Datenpuffern im D_DS erstellt. Diese Rahmen werden sodann zur Verarbeitung in die GC- oder GT-Warteschlange gestellt. Anschließend werden diese Rahmen auf die übliche Weise verarbeitet und gelöscht. Unerwartete gelenkte Rahmen, die für den lokal verbundenen CP bestimmt sind, werden unter Verwendung von Datenpuffern im D_DS erstellt. Diese Rahmen werden auf eine Weise erstellt, die anzeigt, dass sie vom EPC ausgeführt wurden (d.h., resp/req = '1'b, und TB = My_TB). Diese Rahmen werden in die dem CP entsprechende Anschlusswarteschlange gestellt. Rahmen aus dieser Warteschlange werden an den CP rückübertragen.
  • Gelenkte Rahmen, die für eine andere Platine bestimmt sind, können unter Verwendung von Datenpuffern im D_DS oder U_DS erstellt werden. Unerwartete gelenkte Rahmen, die für den CP bestimmt sind, werden auf eine Weise erstellt, die anzeigt, dass sie vom EPC ausgeführt wurden (d.h., resp/req = '1'b und TB = My_TB). Rahmen, die unter Verwendung von Puffern aus dem D_DS erstellt wurden, werden in die Warteschlange zum Rückverbindungsanschluss gestellt. Diese Rahmen werden in den U_DS übertragen und in die GC-Warteschlange auf der Eingangsseite gestellt. Unerwartete gelenkte Rahmen mit einem resp/req-Wert von '1'b werden unter Verwendung des TB-Wertes im Register LAN_CP Addr an den CP geleitet. Andernfalls leitet der GCH-Picocode diese Rahmen unter Verwendung des TB-Wertes der Rahmensteuerdaten des gelenkten Rahmens weiter. In der empfangenden Platine wird der Rahmen in die GC-Warteschlange der Ausgangsseite gestellt. Der GCH dieser Platine führt den Rahmen aus und löscht diesen (resp/req = '0'b und gth/gch = '1') oder stellt den Rahmen in die GT-Warteschlange (resp/req = '0'b und gth/gch = '0') oder stellt den Rahmen in die dem CP entsprechende Anschlusswarteschlange (resp/req = '1'b). Rahmen, die unter Verwendung von Datenpuffern im U_DS erstellt wurden, werden direkt in die GC-Warteschlange der Eingangsseite gestellt. Von diese Punkt aus folgen diese Rahmen demselben Leitweg und werden auf dieselbe Weise bearbeitet wie jene, die unter Verwendung von D_DS-Datenpuffern erstellt wurden. 5 zeigt das verallgemeinerte Format für gelenkte Rahmen.
  • Das gezeigte Format ist eine logische Darstellung mit dem höchstwertigen Byte auf der linken Seite und dem niedrigstwertigen Byte auf der rechten Seite. Vier-Byte-Wörter beginnen mit dem Wort 0 am Anfang und werden zum Ende der Seite hin länger.
  • Da gelenkte Rahmen leitvermittelt und verarbeitet werden müssen, bevor die Schnittstelleneinheit vom CP konfiguriert worden ist, müssen diese Rahmen selbstvermittelnd (selfrouting) sein. Die Ergebnisse, die normalerweise durch Suchfunktion und Klassifizierung erhalten werden, sind in diesem Rahmensteuerdaten-Feld des gelenkten Rahmens enthalten, wodurch es dem Chip ermöglicht wird, den FCB mit diesen Daten zu aktualisieren, ohne einen Suchvorgang ausführen zu müssen. Die im gelenkten Rahmen enthaltenen Zielplatinen-Daten werden vom Bedienprogramm für gelenkte Rahmen verwendet, um das Feld „Blattknoten-Seite" (Leaf Page field) des FCB vorzubereiten. Der CP stellt die Zielplatinen-Daten bereit, während der GCH-Picocode die anderen Felder im FCB ausfüllt. Diese FCB-Daten werden von der SDM verwendet, um die Zellen- und Rahmenvorsätze vorzubereiten. Das Format des Rahmensteuerdaten-Feldes des gelenkten Rahmens wird in 6 gezeigt.
  • Es folgt eine Erläuterung für die Abkürzung in jeder Bitposition in 6:
  • resp/req
    Anzeigewert für „Antwort" und „keine Anforderung" (Response and Not Request indicator value). Dieses Feld wird verwendet, um zwischen gelenkten Anforderungs- (unverarbeitet) und Antwortrahmen zu unterscheiden. 0 Anforderung 1 Antwort
    ack/noack
    Steuerwert für „Bestätigung" (Acknowledgement) oder „keine Bestätigung". Dieses Feld wird verwendet, um zu steuern, ob der GCH-Picocode den gelenkten Rahmen bestätigt (ack) oder nicht (noack). Gelenkte Rahmen, die nicht bestätigt werden müssen, dürfen keine Form von gelenktem Befehl enthalten, der einen Lesevorgang ausführt. 0 Keine Bestätigung 1 Bestätigung
    early/late
    Steuerwert für frühe und späte Bestätigung. Dieses Feld wird verwendet, um zu steuern, ob die angeforderte Bestätigung (ack/noack = '1'b) vor (früh) oder nach (spät) der Verarbeitung des gelenkten Rahmens erfolgt. Dieses Feld wird ignoriert, wenn ack/noack = '0'b ist. 0 Bestätigung nach Verarbeitung des gelenkten Rahmens 1 Bestätigung vor Verarbeitung des gelenkten Rahmens
    neg/all
    Steuerwert für „negative Bestätigung" oder „Alle Bestätigen". Dieses Feld wird ignoriert, wenn das Feld ack/noack einen Wert von '0'b hat, es sei denn, dass ein gelenkter Befehl nicht erfolgreich ausgeführt wird. 0 Bestätigung aller gelenkten Rahmen, falls ack/noack = '1'b. Frühe oder späte Bestätigung wird durch den Wert von early/late festgelegt. 1 Lediglich Bestätigung von gelenkten Rahmen, die nicht erfolgreich ausgeführt werden. Diese Bestätigung erfolgt unabhängig von den Werten von ack/noack und early/late und ist selbstverständlich eine späte Bestätigung.
    up/down
    Steuerwert für Eingang (Up) oder Ausgang (Down). Dieser Wert wird verwendet, um zu steuern, ob der Rahmen auf der Eingangsseite oder der Ausgangsseite verarbeitet wird. Dieses Feld wird ignoriert, wenn resp/req '1'b ist. Alle gelenkten Rahmen zur selektiven Rundsendung müssen einen up/down-Wert von '0'b haben. Außerdem müssen gelenkte Befehle, die die Verwendung von GTH-Hardware-Unterstützungsbefehlen erforderlich machen, einen up/down-Wert von '0'b haben. 0 Verarbeitung auf der Ausgangsseite 1 Verarbeitung auf der Eingangsseite
    gth/gch
    Steuerwert für allgemeines Baumbedienprogramm oder Bedienprogramm für gelenkte Zellen. Dieser Wert wird verwendet, um gelenkte Rahmen zum geeigneten Picoprozessor zu leiten. 0 GCH-Picoprozessor 1 GTH-Picoprozessor
    TB
    Zielplatinenwert. Wenn resp/req '0'b ist, enthält dieses Feld Leitvermittlungsdaten, die von Prizma verwendet werden. Jede Bitposition entspricht einer Zielplatine. Falls dieser Wert '0000'h ist, wird angenommen, dass der gelenkte Rahmen für diese Platine bestimmt ist, und er wird dementsprechend ausgeführt. Ein Wert von '1'b in einer oder mehreren Bitpositionen des TB-Felds zeigt an, dass die Zelle an die entsprechende(n) Zielplatine(n) geleitet wird. Wenn resp/req = '1'b, enthält das Feld den Wert My_TB der antwortenden Platine.
  • Das Wort 1 des gelenkten Rahmens enthält einen Korrelatorwert (7). Dieser Wert wird von der CP-Software zugewiesen, um gelenkte Rahmenantworten mit ihren Anforderungen zu korrelieren. Der Korrelator enthält eine Vielzahl von Bits mit zugewiesenen Funktionen.
  • Jeder gelenkte Befehl beginnt mit einem Feld „Befehlssteuerdaten" (Command Control Information field). Diese Befehlssteuerung enthält Daten, die den GCH-Picocode bei der Verarbeitung eines gelenkten Rahmens unterstützen. Das Format für diese Daten wird in 8 gezeigt.
  • Längenwert: Dieser Wert zeigt die Gesamtanzahl von 32-Bit-Wörtern an, die in den Steuerdaten- (Befehlswort 0 (Cmd Word 0)), den Adressdaten- (Befehlswort 1) und den Operandenteilen (Befehlswörter 2+) des gelenkten Rahmens enthalten sind.
  • Ausführungscodewert: Dieses Feld wird vom CP initialisiert und vom GCH-Picocode geändert, wenn gelenkte Befehle verarbeitet werden. Der GCH-Picocode verwendet dieses Feld für den Ausführungsstatus für den vorhergehenden gelenkten Befehl in der Befehlsliste. Da alle Listen von gelenkten Befehlen mit dem gelenkten Endbegrenzer-Befehl (End Delimiter Guided Command) enden, ist der Ausführungsstatus des letzten Befehls im Ausführungscodefeld des Endbegrenzers enthalten. Typenwert von gelenkten Befehlen (symbolischer Name)
    Figure 00520001
    Figure 00530001
  • Die im gelenkten Rahmen enthaltenen Adressierdaten kennzeichnen ein Element im Adressierschema des Netzprozessors. Die allgemeine Form für das Adressdatenfeld wird in 9 gezeigt.
  • Die Schnittstelleneinheit verwendet ein 32-Bit-Adressierschema. Dieses Adressierschema weist jeder Struktur der Schnittstelleneinheit, auf die zugegriffen werden kann, einen Adresswert zu. Diese Strukturen befinden entweder intern im Prozessor oder sind unter der Steuerung des Prozessors mit Schnittstellen verbunden. Auf einige dieser Strukturen greift der eingebettete Prozessorkomplex (EPC) über eine interne, als Web-Schnittstelle bezeichnete Schnittstelle zu. Auf die restlichen Strukturen wird über Schnittstellen der Speichersteuereinheit zugegriffen. In allen Fällen wird die allgemeine Form der Adresse in 10 gezeigt.
  • Die Netzsteuereinheit ist in Hauptchipinseln unterteilt. Jeder Insel wird ein eindeutiger Inselkennungswert zugeordnet. Dieser 5-Bit-Inselkennungswert bildet die 5 höchstwertigen Bits der Adresse für von dieser Chipinsel gesteuerte Strukturen. Die Entsprechung zwischen dem codierten Inselkennungswert und dem Namen der Chipinsel wird in 11 gezeigt. Der zweite Teil der Web-Adresse besteht aus den nächsten höchstwertigen 23 Bits. Dieses Adressfeld ist in einen Strukturadressenteil und einen Elementadressenteil segmentiert. Die für jedes Segment verwendete Anzahl von Bits kann von Insel zu Insel unterschiedlich sein. Einige Inseln enthalten möglicherweise nur wenige große Strukturen, während andere viele kleine Strukturen enthalten. Aus diesem Grund gibt es keine feststehende Größe für diese Adressensegmente. Der Strukturadressenteil wird zum Adressieren eines Feldes in der Insel verwendet, während der Elementadressenteil zum Adressieren eines Elements innerhalb des Feldes verwendet wird. Der verbleibende Teil der Adresse muss die 32-Bit-Datenbusbegrenzung der Web-Schnittstelle aufnehmen. Diese 4-Bit-Wortadresse wird zum Auswählen von 32 Bitsegmenten des adressierten Elements verwendet. Dies ist notwendig zum Bewegen von Strukturelementen über mehr als 32 Bits über den Web-Datenbus der Netzsteuereinheit. Ein Wortadressenwert von '0'h bezeichnet die 32 höchstwertigen Bits des Strukturelements, während sequenzielle Wortadressenwerte aufeinanderfolgenden niedrigerwertigen Segmenten des Strukturelements entsprechen. Bei Strukturen, auf die nicht über die Web-Schnittstelle zugegriffen wird, wird der Wortadressenteil der Adresse nicht benötigt. Aus diesem Grund verwenden der Eingangsdatenspeicher, die Steuerspeicher und der Ausgangsdatenspeicher die gesamten 27 niedrigstwertigen Bits der Adresse, um auf Strukturelemente zuzugreifen. Eine andere Ausnahme zu diesem Format ist die Adresse für die SPM-Schnittstelle. In diesem Fall werden alle 27 Adressbits verwendet, und kein Element ist breiter als 32 Bit.
  • Der eingebettete Prozessorkomplex (EPC) stellt die Programmierbarkeit des Schnittstelleneinheit-Chips bereit und steuert diese. Er enthält die folgenden Komponenten (siehe auch 12A):
    • N als GxH bezeichnete Verarbeitungseinheiten: Die GxHs führen gleichzeitig den Picocode aus, der in einem allgemeinen Befehlsspeicher gespeichert ist. Jede GxH besteht aus einem als CLP bezeichneten Verarbeitungseinheitkern, der eine 3-Stufen-Pipeline (3-stage pipeline), 16 GPRs und eine ALU enthält. Jede GxH enthält außerdem mehrere Coprozessoren, wie beispielsweise die Baumsuchmaschine.
    • Einen Befehlsspeicher: wird während der Initialisierung geladen und enthält den Picocode zum Weiterleiten von Rahmen und zum Verwalten des Systems.
    • Eine Abwicklungseinrichtung: entnimmt Rahmenadressen aus den Warteschlangen der Eingangs- und Ausgangszuteilungseinrichtung. Nach der Entnahme aus der Warteschlange führt die Abwicklungsseinrichtung einen Vorabruf eines Teils des Rahmenvorsatzes aus dem Eingangs- oder Ausgangsdatenspeicher (DS) aus und speichert diesen in einem internen Speicher. Sobald eine GxH frei wird, leitet die Abwicklungsseinrichtung den Rahmenvorsatz mit entsprechenden Steuerdaten wie der Codebefehlsadresse (CIA) an die GxH. Die Abwicklungseinrichtung bearbeitet außerdem Zeitgeber und Unterbrechungen.
    • Eine Baumsuchspeicher-(TSM-)Zuteilungseinrichtung (Tree Search Memory (TSM) Arbiter): Es gibt eine Anzahl von gemeinsam genutzten internen und externen Speicherpositionen, die jeder GxH zur Verfügung stehen. Da dieser Speicher gemeinsam genutzt wird, wird eine Zuteilungseinrichtung verwendet, um den Zugriff auf den Speicher zu steuern. Auf den TSM kann direkt durch den Picocode zugegriffen werden, der beispielsweise verwendet werden kann, um Alterungstabellen im TSM zu speichern. Außerdem greift die TSE wird während Baumsuchvorgängen auf den TSM zu.
    • Die Ausführungseinheit (CU): Die Ausführungseinheit führt zwei Funktionen aus. Erstens bildet sie eine Schnittstelle zwischen den N Verarbeitungseinheiten und der EINGANGS- und AUSGANGS-EDS (Insel für Warteschlangeneinreihung, -entnahme und Zeitplanung). Die EDS führt den Vorgang der Warteschlangeneinreihung aus: eine Rahmenadresse wird zusammen mit entsprechenden als „FCB-Seite" („FCBPage") bezeichneten Parametern in eine Übertragungswarteschlange, eine Löschwarteschlange oder eine Abwicklungsswarteschlange gestellt. Zweitens garantiert die Ausführungseinheit die Rahmenfolge. Da es vorkommen kann, dass mehrere GxHs Rahmen verarbeiten, die zu demselben Fluss gehören, müssen Vorsichtsmaßnahmen getroffen werden, dass diese Rahmen in der richtigen Reihenfolge in die Eingangs- oder Ausgang-Übertragungswarteschlangen gestellt werden. Die Ausführungseinheit verwendet einen Kennsatz, der nach der Rahmenzuteilung von der Klassifizierungshardware-Unterstützung erzeugt wird.
    • Klassifizierungshardware-Unterstützung: Bei Eingangsrahmen stellt die Klassifizierungshardware-Unterstützung eine Klassifizierung für bereits bekannte Fälle von Rahmenformaten bereit. Klassifizierungsergebnisse werden während der Rahmenzuteilung in Form von der CIA und des Inhaltes von einem oder mehreren Registern an die GxH geleitet. Bei Ausgangsrahmen stellt die Klassifizierungshardware-Unterstützung in Abhängigkeit vom Rahmenvorsatz die CIA fest. Sowohl bei Eingangs- als auch bei Ausgangs-Rahmenzuteilungen erzeugt die Klassifizierungshardware-Unterstützung einen Kennsatz, der von der Ausführungseinheit zum Aufrechterhalten der Rahmenabfolge verwendet wird.
    • Eingangs- und Ausgangsdatenspeicher-Schnittstelle und -Zuteilungseinrichtung (Up and dn DataStore Interface and arbiter): Jede GxH hat Zugang zum Eingangs- und Ausgangsdatenspeicher: ein Lesezugriff wird bereitgestellt, wenn „mehr Fish" gelesen wird, und ein Schreibzugriff wird bereitgestellt, wenn der Inhalt des Fish-Pools in den Datenspeicher rückgeschrieben wird. Da es N Verarbeitungseinheiten gibt und nur eine von diesen zu einem bestimmten Zeitpunkt auf den Eingangsdatenspeicher und nur eine zu einem bestimmten Zeitpunkt auf den Ausgangsdatenspeicher zugreifen kann, wird für jeden Datenspeicher eine Zuteilungseinrichtung benötigt.
    • WEB-Zuteilungseinrichtung (WEB Arbiter) und WEBWatch-Schnittstelle (WEBWatch interface): Die WEB-Zuteilungseinrichtung teilt den WEB-Zugriff unter den GxHs zu. Alle GxHs haben Zugang zum WEB, wodurch der Zugriff auf alle Speicher und Registerfunktionen in der Schnittstelleneinheit ermöglicht wird. Dies ermöglicht es jeder GxH, alle Konfigurationsbereiche zu ändern oder zu lesen. Das WEB kann als die Speicherabbildung der Schnittstelleneinheit gedacht werden. Die WEBWatch- Schnittstelle stellt unter Verwendung von 3 Chip-Ein-/Ausgabeanschlüssen den Zugriff auf das gesamte WEB von außerhalb des Chips bereit.
    • Fehlerbereinigung (Debug), Unterbrechungen und Einzelschrittsteuerung (Single Step Control): Das WEB ermöglicht dem GCH oder WEBWatch bei Bedarf die Steuerung jeder GxH auf dem Chip. Beispielsweise kann das WEB vom GCH oder WEBWatch für Einzelschrittbefehle in einer GxH verwendet werden.
    • Einen eingebetteten Universalprozessor, beispielsweise einen PowerPC.
  • Es gibt vier Typen von GxH (12B):
  • GDH
    (Allgemeines Datenbedienprogramm (General Data Handler)). Es gibt acht GDHs. Jedes GDH hat einen kompletten CLP mit den fünf Coprozessoren (die im nächsten Abschnitt beschrieben werden). Die GDHs werden hauptsächlich zur Weiterleitung von Rahmen verwendet.
    GCH
    (Bedienprogramm für gelenkte Zellen). Das GCH hat genau dieselbe Hardware wie ein GDH. Ein gelenkter Rahmen kann jedoch nur vom GCH verarbeitet werden. Es ist im WEB programmierbar (Register CLP_Ena), falls das GCH auch Datenrahmen bearbeiten kann (in diesem Fall übernimmt es die Rolle eines GDH). Im Vergleich zum GDH hat das GCH zusätzliche Hardware: eine Hardwareunterstützung zum Ausführen von Baumeinfügungs- und -löschvorgängen. Das GCH wird zum Ausführen eines gelenkte Zellen betreffenden Picocode, zum Ausführen eines die Chip- und Baumverwaltung betreffenden Picocode, beispielsweise Alterung, und zum Austauschen von Steuerdaten mit dem CP und/oder einem anderen GCH verwendet. Wenn keine solche Task ausgeführt werden muss, führt das GCH den die Rahmenweiterleitung betreffenden Picocode aus und verhält sich in diesem Fall genau wie ein GDH.
    GTH
    (Allgemeines Baumbedienprogramm). Das GTH hat eine zusätzliche Hardwareunterstützung zum Ausführen von Baumeinfügungsvorgängen, Baumlöschvorgängen und zur Verwaltung von Binärbäumen mit Zeichenfeldern (rope management). Das GTH verarbeitet Datenrahmen, wenn keine Rahmen (die Baumverwaltungsbefehle enthalten) in der GPQ vorliegen.
    GPH
    (Allgemeines PowerPC-Bedienprogramm (General PowerPC Handler)). Das GPH hat im Vergleich zum GDH und GTH zusätzliche Hardware. Das GPH bildet eine Schnittstelle mit dem Universalprozessor durch eine Mailbox-Schnittstelle (i/f).
  • Die Anzahl von GxHs (zehn) ist eine „beste Vermutung" („bestguess"). Eine Leistungsbewertung legt fest, wie viele GxH tatsächlich benötigt werden. Die Architektur und die Struktur sind vollständig skalierbar in Richtung weiterer GxHs, und die einzige Begrenzung ist die verfügbare Menge von Siliziumfläche (die dann ebenfalls eine größere Zuteilungseinrichtung und einen größeren Befehlsspeicher enthalten muss).
  • Jede GxH ist gemäß der Darstellung in 12C strukturiert. Außer dem CLP mit den Universalregistern (GPR) und der arithmetischen Logikeinheit (Arithmetic Logic Unit – ALU) enthält jede GxH die folgenden fünf Coprozessoren:
    (DS)-Coprozessorschnittstelle. Bildet eine Schnittstelle mit der Abwicklungseinrichtung und mit den Teilinseln, die einen Lese- und Schreibzugriff auf die Eingangs- und Ausgangsdatenspeicher bereitstellen. Die DS-Schnittstelle enthält den sogenannten Fish-Pool.
  • Baumsuchmaschinen-Coprozessor (Tree Search Engine Coprocessor – TSE). Die TSE führt Suchvorgänge in den Baumstrukturen aus und bildet außerdem eine Schnittstelle mit dem Baumsuchspeicher (TSM).
  • Coprozessor zum Einreihen in Warteschlangen. Bildet eine Schnittstelle zur Ausführungseinheit und enthält die FCB-Seite. Dieser Coprozessor enthält ein 256-Bit-Register mit zusätzlicher Hardwareunterstützung, die der Picocode zum Erstellen der FCB-Seite verwenden muss, die die Einreihungsparameter enthält. Sobald die FCB-Seite erstellt worden ist, kann der Picoprozessor einen Einreihungsbefehl ausführen, der diesen Coprozessor zum Weiterleiten der FCB-Seite an die Ausführungseinheit veranlasst.
  • WEB-Schnittstellen-Coprozessor. Dieser Coprozessor stellt eine Schnittstelle zur WEB-Zuteilungseinrichtung bereit und ermöglicht Lese- und Schreibvorgänge in die/aus der WEB-Schnittstelleneinheit.
  • Kontrollsummen-Coprozessor (Checksum Coprocessor). Erzeugt Kontrollsummen zu im Fish-Pool gespeicherten Rahmen (im Folgenden beschrieben).
  • Die Verarbeitungseinheiten werden von Eingangsverarbeitung und Ausgangsverarbeitung gemeinsam genutzt. Es ist programmierbar, wie viel Bandbreite für die Eingangsverarbeitung bzw. die Ausgangsverarbeitung reserviert wird. In der vorliegenden Ausführung gibt es zwei Modi: 50/50 (d.h., Eingang und Ausgang erhalten dieselbe Bandbreite) oder 66/34 (d.h., der Eingang erhält zweimal so viel Bandbreite wie der Ausgang).
  • Die Funktionsweise der Verarbeitungseinheiten ist ereignisgesteuert. Das heißt, ein Rahmeneingang wird ebenso als ein Ereignis gehandhabt wie das Starten (popping) eines Zeitgebers oder eine Unterbrechung. Die Abwicklungseinrichtung behandelt unterschiedliche Ereignisse auf identische Weise, obwohl es eine Priorität gibt (als Erstes Unterbrechung, dann Zeitgeberereignisse und schließlich Rahmeneingangsereignisse). Wenn ein Ereignis einer Verarbeitungseinheit zugeteilt wird, werden dieser entsprechende Daten geliefert. Bei Rahmeneingangsereignissen gehören dazu ein Teil des Rahmenvorsatzes und von der Hardwareklassifizierungseinrichtung stammende Daten. Bei Zeitgebern und Unterbrechungen gehören dazu der Codeeingangspunkt und andere das Ereignis betreffende Daten.
  • Wenn ein Rahmen auf der Eingangsseite eintrifft und die Anzahl empfangener Bytes dieses Rahmens einen programmierbaren Schwellenwert überschritten hat, wird die Adresse des Rahmensteuerblocks in eine GQ geschrieben.
  • Wenn auf der Ausgangsseite ein vollständiger Rahmen wieder zusammengesetzt worden ist, wird die Rahmenadresse in eine GQ geschrieben. Es gibt vier Typen von GQs (und für jeden Typ gibt es eine Eingangsversion und eine Ausgangsversion, siehe 12B):
  • GCQ:
    enthält Rahmen, die vom GCH verarbeitet werden müssen.
    GTQ:
    enthält Rahmen, die vom GTH verarbeitet werden müssen.
    GPQ:
    enthält Rahmen, die vom GPH bearbeitet werden müssen.
    GDQ:
    enthält Rahmen, die von irgendeinem GDH verarbeitet werden können (oder einem GCH/GTH, wenn sie zur Verarbeitung von Datenrahmen befähigt sind). Für die GDQ gibt es mehrere Prioritäten, wobei Rahmen, die in eine GDQ mit einer höheren Priorität eingereiht wurden, vor Rahmen verarbeitet werden, die in einer Warteschlange mit niedrigerer Priorität eingereiht wurden.
  • Einige Verarbeitungseinheiten können spezialisiert sein. In der vorliegenden Ausführung gibt es vier Typen von Verarbeitungseinheiten (GxH) (siehe auch 12B): GDH (Allgemeines Datenbedienprogramm). Die GDHs werden hauptsächlich zur Weiterleitung von Rahmen verwendet.
  • GDH
    (Bedienprogramm für gelenkte Zellen). Das GCH hat genau dieselbe Hardware wie das GDH. Ein gelenkter Rahmen kann jedoch nur vom GCH verarbeitet werden. Es ist im WEB (Register CLP_Ena) programmierbar, ob das
    GCH
    auch Datenrahmen verarbeiten kann (in diesem Fall übernimmt es die Rolle eines GDH).
    GTH
    (Allgemeines Baumbedienprogramm). Das GTH hat im Vergleich zum GDH/GDH zusätzliche Hardware: eine Hardwareunterstützung zum Ausführen von Baumeinfügungsvorgängen, Baumlöschvorgängen und zur Verwaltung von Binärbäumen mit Zeichenfeldern. Das GTH verarbeitet Datenrahmen, wenn keine (Baumverwaltungsbefehle enthaltende) Rahmen in der GPQ vorhanden sind.
    GPH
    (Allgemeines PowerPC-Bedienprogramm). Das GPH hat im Vergleich zum GDH/GTH zusätzliche Hardware. Das GPH bildet eine Schnittstelle zum eingebetteten PowerPC mittels einer Mailbox-Schnittstelle.
  • In einer realen Ausführung können die Funktionen von GCH, GTH und GPH in einer einzigen Verarbeitungseinheit untergebracht werden. Beispielsweise könnte eine Ausführung eine Verarbeitungseinheit für GCH und GPH aufweisen. Ähnliches gilt für GCQ, GTQ und GPQ.
  • Der Datenspeicher-Coprozessor erfüllt die folgenden Zwecke:
    Bildung einer Schnittstelle zum Eingangsdatenspeicher, der von den Medien empfangene Rahmen enthält, und zum Ausgangsdatenspeicher, der von Prizma Atlantic empfangene, wieder zusammengesetzte Rahmen enthält.
  • Der Datenspeicher-Coprozessor empfängt außerdem Konfigurationsdaten während der Zuteilung eines Zeitgeberereignisses oder einer Unterbrechung.
  • Der Datenspeicher-Coprozessor kann Kontrollsummen zu Rahmen berechnen.
  • Der Datenspeicher-Coprozessor enthält einen Fish-Pool (der 8 Fish zwischenspeichern kann), einen Zwischenspeicher (der 8 Fish zwischenspeichern kann) und einige Steuerregister zum Lesen/Schreiben von Inhalten des Fish-Pool in den/aus dem Eingangs- oder Ausgangsdatenspeicher. Der Fish-Pool kann als eine Art von Arbeitsbereich für den Datenspeicher angesehen werden: anstelle von direkten Lese-/Schreibvorgängen aus einem bzw. in einen Datenspeicher wird eine größere Menge von Rahmendaten aus dem Datenspeicher in den Fish-Pool gelesen oder eine größere Menge von Daten aus dem Fish-Pool in den Datenspeicher geschrieben. Die Übertragungseinheit ist ein Fish, was 16 Byte entspricht.
  • Der Fish-Pool kann als ein Speicher angesehen werden, der 8 Fish enthalten kann, das heißt, 8 Wörter von jeweils 128 Bit. In der CLP-Prozessorarchitektur ist der Fish-Pool eine Registeranordnung von 128 Byte. Jedes Byte im Fish-Pool hat eine 7-Byte-Adresse (0 .. 127), und der Zugriff erfolgt auf einer 16-Bit- oder 32-Bit-Basis. Wie alle Registeranordnungen hat der Fish-Pool ein zirkuläres Adressierschema. Das heißt, die Adressierung eines Wortes (d.h. 4 Bytes), das bei Position 126 im Fish-Pool beginnt, liefert die Bytes 126, 127, 0 und 1. Aus der Sicht eines Datenspeicher-Coprozessors haben Fish-Positionen im Fish-Pool außerdem eine 3-Bit-Fish-Adresse.
  • Bei einer Rahmenzuteilung werden die ersten N Fish eines Rahmens von der Abwicklungseinrichtung automatisch in den Fish-Pool kopiert. Der Wert von N ist programmierbar im Anschlusskonfigurationsspeicher (PortConfigMemory). Normalerweise ist N bei einer Rahmenzuteilung auf der Eingangsseite gleich 4, bei einer Punkt-zu-Punkt-Rahmenzuteilung (unicast frame dispatch) auf der Ausgangsseite 2, bei einer Punkt-zu-Mehrpunkt-Rahmenverteilung (multicast frame dispatch) auf der Ausgangsseite 4 und bei Unterbrechungen und Zeitgebern 0.
  • Der Picocode kann mehr Bytes aus einem Rahmen lesen, wobei in diesem Fall der Datenspeicher-Coprozessor die Rahmendaten automatisch bei der nächsten Fish-Adresse in den Fish-Pool liest, wobei automatisch eine Rückverbindung zu 0 erfolgt, wenn die Grenze des Fish-Pool erreicht worden ist. Außerdem kann der Picocode bei einer absoluten Adresse aus dem Eingangs-/Ausgangsdatenspeicher lesen bzw. in diesen schreiben.
  • Der WEB-Coprozessor bildet eine Schnittstelle zur EPC-WEB-Zuteilungseinrichtung. Die EPC-WEB-Zuteilungseinrichtung führt eine Zuteilung unter den zehn GxH und WEBWatch durch, um eine übergeordnete Einheit (master) in der WEB-Schnittstelle der Schnittstelleneinheit zu werden. Dies ermöglicht allen GxH das Lesen und Schreiben aus dem bzw. in das WEB.
  • Der Speicherkomplex der Schnittstelleneinheit stellt Speichereinrichtungen für den eingebetteten Prozessorkomplex (EPC) bereit (12A). Der Speicherkomplex beinhaltet die Baumsuchspeicher- (TSM-) Zuteilungseinrichtung und eine Vielzahl von auf dem und außerhalb des Chip befindlichen Speichern. Die Speicher speichern Baumstrukturen, Zähler und was der Picocode sonst noch zum Speicherzugriff benötigt. Außerdem werden die Speicher zum Speichern von Datenstrukturen verwendet, die von der Hardware verwendet werden, beispielsweise freie Listen, Warteschlangensteuerblöcke usw. Jede Speicherposition, die nicht Baumstrukturen zugeordnet wurde oder von der Hardware verwendet wird, steht standardmäßig der Picocodenutzung zur Verfügung, wie beispielsweise Zähler und Alterungstabellen.
  • 13 zeigt eine ausführlichere Darstellung des Speicherkomplexes. Die Baumsuchspeicher- (TSM-) Zuteilungseinrichtung stellt die Übertragungsverbindung zwischen den eingebetteten Prozessoren (GxH) und den Speichern bereit. Die Speicher enthalten 5 auf dem Chip befindliche SRAMs, einen außerhalb des Chip befindlichen SRAM und 7 außerhalb des Chip befindliche DRAMs. Die TSM-Zuteilungseinrichtung enthält zehn Anforderungssteuereinheiten (von denen jede mit einem der eingebetteten Prozessoren (GxH) verbunden ist) und 13 Speicherzuteilungseinheiten, eine für jeden Speicher. Eine Busstruktur verbindet die Anforderungssteuereinheiten und die Zuteilungseinheiten auf eine solche Weise, dass jede Steuereinheit und ihre zugeordnete GxH Zugriff auf alle Speicher haben.
  • Die Steuereinheit enthält die notwendige Hardware zum Leiten von Daten zwischen dem eingebetteten Prozessor (GxH) und den Zuteilungseinrichtungen.
  • Die SRAM-Zuteilungseinrichtungen verwalten u.a. den Datenfluss zwischen dem eingebetteten Prozessor (GxH) und den auf dem sowie außerhalb des Chip befindlichen SRAMs.
  • Die DRAM-Zuteilungseinrichtungen verwalten u.a. den Datenfluss zwischen dem eingebetteten Prozessor (GxH) und den außerhalb des Chip befindlichen DRAM-Einheiten.
  • Jede Speicherzuteilungseinrichtung enthält einen „Hintertür"-Zugriff, der normalerweise von anderen Teilen des Chip verwendet wird und die höchste Zugriffspriorität hat.
  • Die DRAM-Speicher können in zwei Betriebsarten betrieben werden:
    • TDM-Modus. Der Speicherzugriff auf die vier Speicherbänke im DDRAM erfolgt abwechselnd mit Lese-„Fenstern" und Schreibfenstern, wobei der Zugriff auf irgendeine der vier Bänke in einem Lesefenster ein Nur-Lese-Vorgang ist und der Zugriff auf irgendeine der vier Bänke in einem Schreibfenster ein Nur-Schreib-Vorgang ist. Die Verwendung des TDM-Modus für mehrere DDRAMs ermöglicht die gemeinsame Nutzung von einigen Steuersignalen zwischen den DDRAMs, und daher spart dies einige E/As des Chip (was eine sehr knappe Ressource ist).
    • Nicht-TDM-Modus. Der Speicherzugriff auf die vier Bänke im DDRAM kann eine Kombination aus Lese- und Schreibvorgang sein, die spezifischen Regeln folgen muss. Beispielsweise können ein Lesevorgang in der Bank A und ein Schreibvorgang in der Bank C in einem Zugriffsfenster erfolgen.
    • Die TSM-Zuteilungseinrichtung ermöglicht N Anforderern den gleichzeitigen Zugriff auf M Speicher. Wenn mehrere Anforderer auf denselben Speicher zugreifen wollen, wird eine Rotation der Prioritätenzuteilung (round robin arbitration) ausgeführt.
    • Die M Speicher können unterschiedliche Eigenschaften haben. In unserer vorliegenden Ausführung gibt es drei Speichertypen: einen internen SRAM, einen externen SRAM und einen externen DDRAM.
    • Die M Speicher und N Anforderer sind homogen: jeder Anforderer kann auf jeden Speicher zugreifen.
    • Einige Speicher sind logisch in mehrere Teilspeicher unterteilt (wie vier Bänke im DDRAM), auf die gleichzeitig logisch zugegriffen werden kann.
    • Ein Teil der M Speicher wird für Steuerspeicher verwendet, die intern verwendete Datenstrukturen enthalten, die im Vergleich zu den Picoprozessoren einen Zugriff mit hoher Priorität haben. Dies ermöglicht außerdem eine Fehlerbereinigung (debugging) des Chip, da die Picoprozessoren den Inhalt der Steuerspeicher lesen können.
    • Die Zuteilungseinrichtung unterstützt den Lesezugriff, den Schreibzugriff und Lesen-Hinzufügen-Schreiben, wobei in einem unteilbaren Vorgang eine ganzzahliger Wert mit N Bit zum Inhalt des Speichers hinzugefügt wird.
    • Zum Zugriff auf die M Speicher wird ein allgemeines Adressierschema verwendet, so dass die physische Position eines Objekts im Speicher transparent ist.
  • Das Konzept von Baumstrukturen, wie es von der Baumsuchmaschine zum Speichern und Abrufen von Daten verwendet wird. Ein Abruf, d.h. Baumsuchvorgänge sowie auch Einfügungs- und Löschvorgänge, erfolgt auf der Grundlage eines Schlüssels, der ein Bitmuster ist, beispielsweise eine MAC-Quellenadresse oder die Verkettung einer IP-Quellenadresse und einer IP-Zieladresse. Daten werden in einem als Blattknoten (Leaf) bezeichneten Steuerblock gespeichert, der zumindest den Schlüssel enthält (wie an späterer Stelle zu erkennen ist, ist das gespeicherte Bitmuster tatsächlich der Hash-Schlüssel). Ein Blattknoten kann außerdem zusätzliche Daten wie Alterungsdaten oder Benutzerdaten enthalten, bei denen es sich beispielsweise um Weiterleitungsdaten wie Zielplatinen und Zielanschlussnummern handeln kann.
  • Es gibt Baumtypen (FM, LPM und SMT) und zugeordnete Baumtypsuchvorgänge, nämlich: feststehende Übereinstimmung (fixed match), softwareverwalteter Baum und größte Präfixübereinstimmung (largest prefix match). Ein wahlweises zusätzliches Kriterium zum Überprüfen des Blattknotens während eines Baumsuchvorgangs ist die Vektormaske (VectorMask). Die Erzeugung von Binärbäumen mit Zeichenfeldern (Roping), Alterung und Zwischenspeicherung (latch) werden zum Steigern der Suchleistung verwendet.
  • Der Suchalgorithmus für FM-Bäume wird in 14 gezeigt. Der Suchalgorithmus arbeitet mit Eingangsparametern, die den Schlüssel beinhalten, erzeugt einen Hash-Wert des Schlüssels, greift auf eine Steuertabelle (Direct Table – DT) zu, durchsucht den Baum durch Mustersuch-Steuerblöcke (Pattern Search Control Blocks – PSCBs) und endet bei einem Blattknoten (14). Es gibt drei Typen von Bäumen, von denen jeder seinen eigenen Suchalgorithmus aufweist, wodurch bewirkt wird, dass die Baumdurchsuchung gemäß unterschiedlichen Regeln stattfindet. Bei Bäumen mit feststehender Übereinstimmung (FM-Bäumen) ist die Datenstruktur beispielsweise ein Patricia-Baum (Patricia Tree). Wenn ein Blattknoten gefunden wurde, ist dieser Blattknoten der einzig mögliche Kandidat, der mit dem Eingabeschlüssel übereinstimmen kann. Bei softwareverwalteten Bäumen kann es mehrere Blattknoten geben, die in einer Verknüpfungsliste (linked list) verkettet sind. In diesem Fall werden alle Blattknoten mit dem Eingabeschlüssel überprüft, bis eine Übereinstimmung gefunden oder bis die Kette vollständig überprüft worden ist. Ein sogenannter „Endvergleich"-Vorgang („compare at the end" operation), der den Eingabeschlüssel mit dem im Blattknoten gespeicherten Muster vergleicht, prüft, ob der Blattknoten wirklich mit dem Eingabeschlüssel übereinstimmt. Das Ergebnis der Suche lautet „Ja" (OK), wenn der Blattknoten gefunden wurde und eine Übereinstimmung vorliegt, oder "Nein" (KO) in allen anderen Fällen.
  • Die Eingabe für einen Suchvorgang besteht aus den folgenden Parametern:
    • Schlüssel (128 Bit). Der Schlüssel muss unter Verwendung spezieller Picocodebefehle vor dem Suchvorgang (oder dem Einfügungs-/Löschvorgang) erstellt werden. Es gibt nur ein Schlüsselregister. Nach dem Beginn des Baumsuchvorgangs kann das Schlüsselregister jedoch vom Picocode verwendet werden, um den Schlüssel für den nächsten Suchvorgang zu erstellen, während die TSE gleichzeitig den Suchvorgang ausführt. Der Grund hierfür besteht darin, dass die TSE einen Hash-Wert des Schlüssels erzeugt und das Ergebnis in einem internen Hash-Schlüsselregister (HashedKey register) speichert (folglich gibt es in Wirklichkeit 2 Schlüsselregister).
    • Schlüssellänge (KeyLength) (7 Bit). Dieses Register enthält die Länge des Schlüssel in Bit. Es wird während des Erstellens des Schlüssels von Hardware automatisch aktualisiert.
    • LUDef-Index (LuDefIndex) (8 Bit). Dies ist ein Index in die LUDef-Tabelle (LUDefTable), die eine vollständige Definition des Baums enthält, in dem die Suche stattfindet. Die LUDef-Tabelle wird an späterer Stelle ausführlich beschrieben.
    • TSR-Nummer (TSRNr)(1 Bit). Die Suchergebnisse können im Baumsuchergebnisbereich 0 (Tree Search Result Area 0 – TSR0) oder TSR 1 gespeichert werden. Dies wird von der TSR-Nummer angegeben. Während die TSE den Suchvorgang ausführt, kann der Picocode auf den anderen TSR zugreifen, um die Ergebnisse einer früheren Suche zu analysieren.
    • Vectorindex (VectorIndex) (6 Bit). Bei Bäumen, deren Vektormaske aktiviert ist (was in der LUDef-Tabelle angegeben wird), bezeichnet der Vektorindex ein Bit in der Vektormaske. Am Ende des Suchvorgangs wird der Wert dieses Bits rückübertagen und kann vom Picocode verwendet werden.
  • Es wird ein Hash-Wert des Eingabeschlüssels erzeugt, so dass ein Hash-Schlüssel entsteht, wie in 14 gezeigt wird. Es sind sechs feststehende Hash-Algorithmen verfügbar (ein „Algorithmus" führt keine Hash-Funktion aus). In der LUDef-Tabelle wird angegeben, welcher Algorithmus verwendet wird. Für mehr Flexibilität kann eine programmierbare Hash-Funktion verwendet werden.
  • Die Ausgabe der Hash-Funktion ist stets eine 128-Bit-Zahl, die die Eigenschaft aufweist, dass eine Eins-zu-eins-Entsprechung zwischen dem ursprünglichen Eingabeschlüssel und der Ausgabe der Hash-Funktion besteht. Wie im Folgenden erläutert wird, setzt diese Eigenschaft die Tiefe des Baums, der nach der Steuertabelle beginnt, auf ein Mindestmaß herab.
  • Falls Farben für den Baum aktiviert sind, was im Beispiel von 14 der Fall ist, wird das 16-Bit-Farbregister in die Ausgabe der 128-Bit-Hash-Funktion eingefügt. Die Einfügung erfolgt direkt nach der Steuertabelle. D.h., falls die Steuertabelle 2N Einträge enthält, wird der 16-Bit-Farbwert bei der Bitposition N eingefügt, wie in der Figur gezeigt wird. Die Ausgabe der Hash-Funktion wird zusammen mit dem eingefügten Farbwert (wenn möglich) im Hash-Schlüsselregister gespeichert.
  • Die Hash-Funktion ist so definiert, dass der größte Teil des Informationsgehaltes in ihrer Ausgabe sich in den höchstwertigen Bits befindet. Die N höchstwertigen Bits des Hash-Schlüsselregisters werden zum Berechnen eines Indexes in die Steuertabelle (DT) verwendet.
  • Der Suchvorgang beginnt mit einem Zugriff auf die Steuertabelle: ein DT-Eintrag (DTEntry) wird aus der Steuertabelle gelesen. Die zum Lesen des DT-Eintrags verwendete Adresse wird aus den N höchstwertigen Bits des Hash-Schlüssels sowie aus Baumeigenschaften berechnet, wie sie in der LUDef-Tabelle definiert sind. Dies wird im Folgenden ausführlich erläutert. Der DT-Eintrag kann als die Wurzel eines Baums angesehen werden. Die genaue Baumdatenstruktur, die verwendet wird, hängt vom Baumtyp ab. An dieser Stelle genügt es, darauf hinzuweisen, dass bei FM-Bäumen eine Patricia-Baumdatenstruktur und bei LPM- und SMT-Bäumen Erweiterungen zu Patricia-Bäumen verwendet werden.
  • Ein Beispiel für die Verwendung einer DT mit 8 Einträgen wird in 15 gezeigt. Es ist zu erkennen, dass die Suchzeit (d.h. die Anzahl von PSCBs, auf die zugegriffen werden muss), durch die Verwendung einer DT verringert werden kann. Folglich kann durch eine Erhöhung der DT-Größe ein Kompromiss zwischen der Speichernutzung und der Suchleistung erreicht werden.
  • Wie aus 15 zu erkennen ist, kann ein DT-Eintrag die folgenden Daten enthalten:
    • Leer. Es gibt keine mit diesem DT-Eintag verbundenen Blattknoten.
    • Ein Zeiger auf einen Blattknoten. Es gibt einen einzigen mit diesem DT-Eintrag verbundenen Blattknoten.
    • Ein Zeiger auf einen PSCB. Es gibt mehr als einen mit diesem DT-Eintrag verbundenen Blattknoten. Der DT-Eintag definiert die Wurzel eines Baums.
  • Der Suchalgorithmus für einen softwareverwalteten Baum und der Algorithmus zur Erzeugung des Baums werden in der US-Patentanmeldung mit der Seriennummer 09/312 148 dargelegt.
  • Ein als „Wahlbit-Algorithmus" („Choice Bit Algorithm") bezeichneter Algorithmus verwendet eine bestimmte Maßzahl zum Erstellen eines binären Suchbaums auf der Grundlage von Bits, die aus Elementen ausgewählt wurden, die als „Regeln" in einem Satz oder einer Grundgesamtheit von Regeln bezeichnet werden. Alle unsere Beispiele werden in Form von Internet Protocol(IP-) Vorsätzen ausgedrückt, stattdessen könnte jedoch auch ein Vorsatz mit einem feststehenden Format eines beliebigen Typs verwendet werden.
  • In IP gehört jede Regel zu bestimmten Schlüsseln, die mit den folgenden Teilabschnitten erstellt werden könnten:
    Quellenadresse (SA), Zieladresse (DA), Quellenanschluss (SP), Zielanschluss (DP) und Protokoll (P). Diese Daten sind 32, 32, 16, 16 bzw. 8 Bit lang, und folglich ist ein zu prüfender Schlüssel 104 Bit lang. Der Wahlbit-Algorithmus findet bestimmte der 104 Bits, die besonders hilfreich sind. Das Testen der wenigen Bits führt in der Tat dazu, dass alle bis auf eine oder alle bis auf einige Regeln für eine mögliche Anwendung wegfallen. Bei einigen Regeln ist das Prüfen von Ungleichheiten mittels einfacher Vergleichsvorgänge ebenfalls geeignet. Die Bittests und -vergleiche werden logisch in einem Binärbaum organisiert. Der Baum wird in eine in die Hardware integrierte Struktur (hardware enabled structure) abgebildet, die Bits mit hohen Geschwindigkeiten testet. Ein solcher Testvorgang führt zu nur einer Regel oder einer geringen Anzahl von Regeln (als Blattknotenkette (leaf chain) bezeichnet), zu denen der Schlüssel passen könnte. Im ersteren Fall wird sodann der Schlüssel im Ganzen durch die Regel getestet. Im letzteren Fall wird der Schlüssel sodann in mehreren Tests unter Verwendung von Vergleichen und Tests mit kompletter Regel getestet.
  • Jeder Regel im Regelsatz ist eine Maßnahme zugeordnet, die ergriffen wird, falls es sich bei der Regel um die Regel mit der höchsten Priorität handelt, mit der der Schlüssel zusammenpasst. Regeln können sich überschneiden (ein Schlüssel passt zu zwei oder mehr Regeln). In diesem Fall können Prioritätszahlen 1, 2, 3, ... für die Regeln vergeben werden, so dass zwei sich überschneidende Regeln unterschiedliche Prioritäten haben (ein Administrator muss deklarieren, welche Regel dominiert, falls ein Schlüssel zu zweien oder mehreren passt). Falls nach den Bittests und -vergleichen mehr als eine Regel zu testen bleibt, werden die Regeln folglich in der Reihenfolge der Priorität getestet. Eine niedrigere Prioritätszahl bezeichnet eine Regel mit einer höheren Priorität.
  • Falls überhaupt keine Entsprechung gefunden wird, kann eine Standardvorschrift angegeben werden.
  • Der Suchalgorithmus für das Verfahren mit der längsten Präfixübereinstimmung wird in der US-Patentschrift 5 787 430 dargelegt. Das Verfahren erfordert das Eintreten bei einem Knoten der Datenbank (Wurzelknoten); das Festlegen eines Suchpfades von einem Knoten zu einem anderen durch die baumähnliche Datenbank, indem aufeinanderfolgende Segmente des Suchargumentes verarbeitet werden, die nur jene Teile der Einträge, die zum Identifizieren des nächsten (Kind-)Knotens notwendig sind, und die zweiten Verbindungsdaten umfassen, bis die Segmente aufgebraucht sind oder ein (Blatt-)Knoten, dem die zweiten Verbindungsdaten fehlen, erreicht wird; Vergleichen eines Eintrags, der in dem Knoten gespeichert ist, an dem der Suchpfad endete, mit dem Suchargument; und falls im vorliegenden Knoten keine zumindest teilweise Übereinstimmung zwischen dem Suchargument und dem Eintrag gefunden wird, Rückverfolgen des Suchpfades durch Verarbeiten der ersten Verbindungsdaten des vorliegenden Knotens; und Wiederholen der vorhergehenden zwei Schritte, bis die zumindest teilweise Übereinstimmung gefunden oder der Wurzelknoten erreicht wird.
  • 16 zeigt eine Ausführungsform der Hauptvermittlungsstruktureinheit. Vorzugsweise hat jeder Schnittstelleneinheit-Chip mindestens zwei integrierte Parallel-Serien-Anschlüsse, die parallele Daten empfangen und diese in einen seriellen Hochgeschwindigkeits-Datenstrom umsetzen, der über eine serielle Verbindung an die Vermittlungsstruktureinheit weitergeleitet wird. Daten, die von der Vermittlungsstruktureinheit auf einer seriellen Hochgeschwindigkeitsverbindung empfangen werden, werden von einer anderen DASL in parallele Daten umgesetzt. Eine Ausführungsform des als serielle Verbindung zum Ausrichten von Daten (DASL) bezeichneten Parallel-Serien/Serien-Parallel-Wandlers (Serializer/Deserializer) wird hierin beschrieben.
  • Mindestens eine DASL bildet eine Schnittstelle zwischen der Vermittlungsstruktureinheit und den seriellen Verbindungen. Daten von der seriellen Verbindung werden in parallele Daten umgesetzt, die der Vermittlungsstruktureinheit zugeführt werden. Ebenso werden parallele Daten von der Vermittlungsstruktureinheit in serielle Daten umgesetzt, die den seriellen Verbindungen zugeführt werden. Die seriellen Verbindungen können gebündelt werden, um den Durchsatz zu erhöhen.
  • Noch immer mit Bezugnahme auf 16 beinhaltet das Vermittlungssystem die Vermittlungsstruktur 11, die Eingangsvermittlungsadapter 12 (13-1...13-k), die mit den Eingangsanschlüssen 15 (15-1...15-k) der Vermittlungsstruktur und Ausgangsvermittlungsadaptern 17 (17-1...17-p) verbunden sind, die an den Ausgangsanschlüssen 19 (19-1...19-p) mit der Vermittlungsstruktur verbunden sind.
  • Eingehende und ausgehende Übertragungsverbindungen 21 (21-1...21-q) und 23 (23-1...23-r) sind durch die Leitungs(Verbindungs-)Adapter 25 (25-1...25-q) bzw. 27 (27-1...27-r) mit dem Vermittlungssystem verbunden. Die Übertragungsverbindungen übertragen leitungsvermittelten oder paketvermittelten Datenverkehr von verbundenen und an verbundene Einheiten, beispielsweise Arbeitsplatzrechner, Telefonapparate oder dergleichen (als WS-Verbindungen bezeichnet), von lokalen und an lokale Netze (als LAN-Verbindungen bezeichnet), von dienstintegrierenden und an dienstintegrierende digitale Fernmeldenetzeinrichtungen (Integrated Services Digital Network facilities) (als ISDN-Verbindungen bezeichnet) oder von anderen und an andere Datenübertragungssysteme. Außerdem können Prozessoren direkt mit Vermittlungsadaptern 13 und 17 verbunden werden. Die Leitungsadapter (line adapters – LA) und Vermittlungsadapter (switch adapters – SA) haben eine gemeinsame Schnittstelle.
  • Bei den Eingangsvermittlungsadaptern werden verschiedene Dienste von paketvermittelten und leitungsvermittelten Schnittstellen gesammelt und in einheitliche Minipakete umgesetzt (die eine von mehreren möglichen, feststehenden Längen aufweisen), wobei ein Vorsatz Leitvermittlungsdaten enthält, die den benötigten Ausgangsanschluss (und die ausgehende Verbindung) der Vermittlungsstelle kennzeichnen. Einzelheiten zu dem Minipaketformat und zur Minipaketerzeugung in den Eingangsvermittlungsadaptern und zur Depaketierung (depacketization) in den Ausgangsvermittlungsadaptern werden in den nächsten Abschnitten angegeben.
  • Die Vermittlungsstruktur leitet die Minipakete über ein schnelles selbstvermittelndes Verbindungsnetz von einem beliebigen Eingangsanschluss an einen beliebigen Ausgangsanschluss. Die Struktur des selbstvermittelnden Netzes ist so, dass Minipakete intern ohne Konflikte gleichzeitig leitvermittelt werden können.
  • Das Herz eines Vermittlungssystems ist die Vermittlungsstruktur. Zwei verschiedene Ausführungsformen werden betrachtet und gesondert beschrieben. In einer Ausführung umfasst die Vermittlungsstruktur für jeden Eingangsanschluss einen selbstvermittelnden Binärbaum, der den betreffenden Eingangsanschluss mit allen Ausgangsanschlüssen verbindet; die Vermittlungsstruktur umfasst k solcher Bäume in einer bestimmten Kombination (falls k Eingangsanschlüsse bereitgestellt werden). In der anderen Ausführung wird eine Busstruktur mit einem Ausgangs-RAM als Sektor für jeden Ausgangsanschluss bereitgestellt, die alle Eingangsanschlüsse mit dem jeweiligen Ausgangsanschluss verbindet; die Vermittlungsstruktur umfasst p solcher Sektoren in einer bestimmten Kombination (falls p Ausgangsanschlüsse bereitgestellt werden).
  • DASL wird in der Patentanmeldung mit der Seriennummer 09/330 968, eingereicht am 11. Juni 1999, beschrieben. Die DASL-Schnittstelle empfängt Daten von einer parallelen Schnittstelle, beispielsweise CMOS ASIC, und partitioniert die Bits von der parallelen Schnittstelle in eine geringere Anzahl von parallelen Bitströmen. Die geringere Anzahl von parallelen Bitströmen wird sodann in einen seriellen Hochgeschwindigkeitsstrom umgesetzt, der über ein Übertragungsmedium an den Empfänger des anderen Moduls transportiert wird. Ein Differenzialtreiber (differential driver) mit Impedanzkontrolle treibt den seriellen Bitstrom von Daten in das Übertragungsmedium.
  • DASL führt das folgende Verfahren aus: syntaktisches Analysieren eines als parallele N Bits dargestellten Datenstroms in eine Vielzahl von Teilen mit jeweils n Bits, wobei n ein Bruchteil von N ist; Parallel/Serien-Umsetzung jedes Teils von n Bit des Datenstroms; Übertragen jedes in eine serielle Form umgesetzten Teils über einen entsprechenden aus einer Vielzahl von parallelen Kanälen; und Serien/Parallel-Umsetzung jedes übertragenen Teils des Datenstroms, um den Datenstrom zur Darstellung als N parallele Bits wiederherzustellen.
  • In den Zeichnungen und Beschreibungen wurden bevorzugte Ausführungsformen der hier beschriebenen Erfindungen dargelegt, und obwohl spezifische Begriffe verwendet werden, verwendet die so dargelegte Beschreibung eine Terminologie lediglich in einem generischen und beschreibenden Sinn und nicht zur Begrenzung.

Claims (9)

  1. Vorrichtung, die Folgendes umfasst: ein Halbleitersubstrat; eine Vielzahl von auf diesem Substrat geformten Schnittstellenprozessoren; einen Speicher, der Befehle speichert, auf die die auf dem Halbleitersubstrat geformten Prozessoren zugreifen können; eine Vielzahl von auf dem Substrat befindlichen SRAMs, die auf dem Halbleitersubstrat gefertigt wurden; eine Vielzahl von außerhalb des Substrates befindlichen SRAMs, die außerhalb des Halbleitersubstrates gefertigt wurden; eine Vielzahl von außerhalb des Halbleitersubstrates gefertigten DRAMs; eine Vielzahl von Anforderungssteuereinheiten, wobei jede aus der Vielzahl von Anforderungssteuereinheiten funktionsmäßig mit einem aus der Vielzahl von Schnittstellenprozessoren verbunden ist; eine Vielzahl von Speicherzuteilungseinrichtungen, darunter ein erster Satz, wobei jede aus dem ersten Satz funktionsmäßig mit einem der auf dem Substrat befindlichen SRAMs verbunden ist; ein zweiter Satz, wobei jede aus dem zweiten Satz mit einem der außerhalb des Substrates befindlichen SRAMs verbunden ist; und ein dritter Satz, wobei jede aus dem dritten Satz funktionsmäßig mit einem der DRAMs verbunden ist; und eine Vielzahl von Übertragungsbussen, wobei jeder eine aus der Vielzahl von Anforderungssteuereinheiten funktionsmäßig mit der Vielzahl von Zuteilungseinrichtungen verbindet, so dass jeder Prozessor Zugriff auf die SRAMs und DRAMs hat.
  2. Vorrichtung nach Anspruch 1, die außerdem eine Vielzahl von auf dem Substrat geformten Ein-/Ausgabeanschlüssen enthält, wobei mindestens einer der Ein-/Ausgabeanschlüsse die auf dem Substrat befindlichen SRAMs mit dem außerhalb des Substrats befindlichen SRAM und den DRAMs verbindet und andere der Ein-/Ausgabeanschlüsse Daten mit einem externen Netz austauschen.
  3. Vorrichtung nach Anspruch 1 oder Anspruch 2, die außerdem einen auf dem Substrat befindlichen Speicher enthält, der durch die Vorrichtung geleitete Daten speichert.
  4. Vorrichtung nach Anspruch 1, wobei eine Speicherzuteilungseinrichtung auf Befehl eines Prozessors betrieben werden kann, um einen DRAM in einer ersten Betriebsart zu konfigurieren, in der mehrere aufeinander folgende Lese- oder Schreibvorgänge mit Datenbanken in den DRAMs in einem einzigen Zugriffszyklus ausgeführt werden können, oder in einer zweiten Betriebsart, in der Lese- und Schreibvorgänge mit ausgewählten Datenbanken in den DRAMs innerhalb eines Zugriffszyklus ausgeführt werden können.
  5. Vorrichtung nach Anspruch 1, wobei eine Speicherzuteilungseinrichtung auf einen einzigen Befehl von einem Prozessor hin so betrieben werden kann, dass sie eine Adresse aus dem SRAM oder DRAM liest, mit dem sie verbunden ist, einen Wert zum Inhalt der Adresse hinzufügt und die Ergebnisse in die Adresse schreibt.
  6. Vorrichtung nach Anspruch 1, wobei jede der Speicherzuteilungseinrichtungen so betrieben werden kann, dass sie einer Leseanforderung von einem einzigen Schnittstellenprozessor einen Speicherzugriff mit der höchsten Priorität erteilt.
  7. Vorrichtung nach Anspruch 6, wobei jede der Speicherzuteilungseinrichtungen so betrieben werden kann, dass sie einer Vielzahl von gleichzeitigen Leseanforderungen für allgemeine Daten von einer Vielzahl von Schnittstellenprozessoren einen Speicherzugriff mit der zweithöchsten Priorität erteilt.
  8. Vorrichtung nach Anspruch 7, wobei jede der Speicherzuteilungseinrichtungen so betrieben werden kann, dass sie einer Vielzahl von gleichzeitigen Schreibanforderungen von einer Vielzahl von Schnittstellenprozessoren einen Speicherzugriff mit der dritthöchsten Priorität erteilt.
  9. Vorrichtung nach Anspruch 8, wobei jede der Speicherzuteilungseinrichtungen so betrieben werden kann, dass sie einer Vielzahl von gleichzeitigen Lese-/Änderungs-/Schreibanforderungen von einer Vielzahl von Schnittstellenprozessoren einen Speicherzugriff mit der vierthöchsten Priorität erteilt.
DE60033529T 1999-08-27 2000-08-24 Netzprozessor, speicherorganisation und verfahren Expired - Lifetime DE60033529T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/384,744 US6460120B1 (en) 1999-08-27 1999-08-27 Network processor, memory organization and methods
US384744 1999-08-27
PCT/US2000/020794 WO2001016779A1 (en) 1999-08-27 2000-08-24 Network processor, memory organization and methods

Publications (2)

Publication Number Publication Date
DE60033529D1 DE60033529D1 (de) 2007-04-05
DE60033529T2 true DE60033529T2 (de) 2007-11-15

Family

ID=23518576

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60033529T Expired - Lifetime DE60033529T2 (de) 1999-08-27 2000-08-24 Netzprozessor, speicherorganisation und verfahren

Country Status (8)

Country Link
US (1) US6460120B1 (de)
EP (1) EP1208447B1 (de)
JP (1) JP3832816B2 (de)
KR (1) KR100468800B1 (de)
CN (1) CN1204509C (de)
AT (1) ATE354830T1 (de)
DE (1) DE60033529T2 (de)
WO (1) WO2001016779A1 (de)

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020071321A1 (en) * 2000-11-29 2002-06-13 International Business Machines Corporation System and method of maintaining high bandwidth requirement of a data pipe from low bandwidth memories
US6934250B1 (en) 1999-10-14 2005-08-23 Nokia, Inc. Method and apparatus for an output packet organizer
US6882642B1 (en) 1999-10-14 2005-04-19 Nokia, Inc. Method and apparatus for input rate regulation associated with a packet processing pipeline
US6757249B1 (en) * 1999-10-14 2004-06-29 Nokia Inc. Method and apparatus for output rate regulation and control associated with a packet pipeline
EP1234406A1 (de) * 1999-12-01 2002-08-28 BRITISH TELECOMMUNICATIONS public limited company Vorrichtung zur simulation von kommunikationseinrichtungen
US6598088B1 (en) * 1999-12-30 2003-07-22 Nortel Networks Corporation Port switch
US7116680B1 (en) * 2000-03-02 2006-10-03 Agere Systems Inc. Processor architecture and a method of processing
US20020105972A1 (en) * 2000-03-03 2002-08-08 Richter Roger K. Interprocess communications within a network node using switch fabric
US6704794B1 (en) 2000-03-03 2004-03-09 Nokia Intelligent Edge Routers Inc. Cell reassembly for packet based networks
US20020107903A1 (en) * 2000-11-07 2002-08-08 Richter Roger K. Methods and systems for the order serialization of information in a network processing environment
US20050195743A1 (en) * 2000-04-03 2005-09-08 P-Cube Ltd. Real time charging of pre-paid accounts
US6675163B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
US7107265B1 (en) * 2000-04-06 2006-09-12 International Business Machines Corporation Software management tree implementation for a network processor
GB2371381B (en) * 2000-04-06 2004-09-01 Ibm Search algorithm implementation for a network processor
US6785734B1 (en) * 2000-04-10 2004-08-31 International Business Machines Corporation System and method for processing control information from a general through a data processor when a control processor of a network processor being congested
US6675223B1 (en) * 2000-04-10 2004-01-06 International Business Machines Corporation Method and apparatus for processing frames using static and dynamic classifiers
US6799207B1 (en) * 2000-04-10 2004-09-28 International Business Machines Corporation Method and system for downloading software managed trees in a network processing system
US6671725B1 (en) * 2000-04-18 2003-12-30 International Business Machines Corporation Server cluster interconnection using network processor
US6965922B1 (en) * 2000-04-18 2005-11-15 International Business Machines Corporation Computer system and method with internal use of networking switching
US7013394B1 (en) * 2000-04-18 2006-03-14 International Business Machines Corporation Data flow pattern recognition and manipulation
US6772218B1 (en) * 2000-04-18 2004-08-03 International Business Machines Corporation Server acceleration using network processor
US7020139B2 (en) * 2000-06-09 2006-03-28 Broadcom Corporation Trunking and mirroring across stacked gigabit switches
US7047317B1 (en) * 2000-06-14 2006-05-16 Altera Corporation High performance network address processor system
US6721313B1 (en) * 2000-08-01 2004-04-13 International Business Machines Corporation Switch fabric architecture using integrated serdes transceivers
US7143185B1 (en) * 2000-08-29 2006-11-28 Advanced Micro Devices, Inc. Method and apparatus for accessing external memories
US6990098B1 (en) * 2000-09-11 2006-01-24 Sun Microsystems, Inc. Reliable multicast using merged acknowledgements
US20070192863A1 (en) * 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US20100042565A1 (en) * 2000-09-25 2010-02-18 Crossbeam Systems, Inc. Mezzazine in-depth data analysis facility
US6792423B1 (en) * 2000-11-28 2004-09-14 International Business Machines Corporation Hybrid longest prefix match and fixed match searches
EP1344350A1 (de) * 2000-11-29 2003-09-17 Telefonaktiebolaget LM Ericsson (publ) Verfahren und vorrichtung zum weiterleiten von telekommunikationsverkehr
US20020120769A1 (en) * 2000-12-21 2002-08-29 Ammitzboell Benny Loenstrup Multicast traffic control protocol pruning in a layer 2 switch
US6987760B2 (en) 2001-03-05 2006-01-17 International Business Machines Corporation High speed network processor
US6813620B2 (en) * 2001-03-07 2004-11-02 Broadcom Corporation Binary search engine and method
US7085266B2 (en) 2001-03-21 2006-08-01 International Business Machines Corporation Apparatus, method and limited set of messages to transmit data between components of a network processor
US7149212B2 (en) 2001-03-21 2006-12-12 International Business Machines Corporation Apparatus, method and limited set of messages to transmit data between scheduler and a network processor
US6940854B1 (en) * 2001-03-23 2005-09-06 Advanced Micro Devices, Inc. Systems and methods for determining priority based on previous priority determinations
US6987775B1 (en) 2001-08-15 2006-01-17 Internet Machines Corp. Variable size First In First Out (FIFO) memory with head and tail caching
US6934264B2 (en) * 2001-08-30 2005-08-23 Qualcomm, Incorporated Method and apparatus for acknowledging a reception of a data packet in a CDMA communication system
US7362751B2 (en) 2001-10-03 2008-04-22 Topside Research, Llc Variable length switch fabric
US7426572B1 (en) * 2001-10-31 2008-09-16 Juniper Networks, Inc. Network router using embedded and external memory based on packet destination
US7203203B2 (en) * 2001-12-05 2007-04-10 Internet Machines Corp. Message ring in a switching network
US7042886B2 (en) * 2001-12-06 2006-05-09 P-Cube Ltd. Apparatus, method, and computer program for wire-speed classification and pre-processing of data packets in an ATM network
TW550508B (en) * 2001-12-21 2003-09-01 Via Tech Inc Configuration method for auto-negotiation mode and the associated devices
US6967951B2 (en) 2002-01-11 2005-11-22 Internet Machines Corp. System for reordering sequenced based packets in a switching network
US7680043B2 (en) * 2002-03-20 2010-03-16 International Business Machines Corporation Network processor having fast flow queue disable process
US7254632B2 (en) * 2002-04-26 2007-08-07 P-Cube Ltd. Apparatus and method for pattern matching in text based protocol
US20030214949A1 (en) * 2002-05-16 2003-11-20 Nadim Shaikli System for reordering sequenced based packets in a switching network
US8015303B2 (en) * 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
US7596621B1 (en) * 2002-10-17 2009-09-29 Astute Networks, Inc. System and method for managing shared state using multiple programmed processors
US7814218B1 (en) 2002-10-17 2010-10-12 Astute Networks, Inc. Multi-protocol and multi-format stateful processing
US20040098509A1 (en) * 2002-11-14 2004-05-20 Vic Alfano System for reordering sequenced based packet segments in a switching network
US7596634B2 (en) * 2002-12-12 2009-09-29 Millind Mittal Networked application request servicing offloaded from host
US7114041B2 (en) * 2002-12-20 2006-09-26 Lsi Logic Corporation AMBA modular memory controller
US7680769B2 (en) * 2003-01-14 2010-03-16 International Business Machines Corporation Method of creating a database and search keys and for searching the database
US7000052B2 (en) * 2003-02-24 2006-02-14 Cisco Technology, Inc. System and method for configuring and deploying input/output cards in a communications environment
US8190858B2 (en) * 2003-02-25 2012-05-29 Topside Research, Llc Interface device for interfacing a main processor to processing engines and classifier engines, and methods for configuring and operating interface devices
US7990987B2 (en) * 2003-02-25 2011-08-02 Topside Research, Llc Network processor having bypass capability
US7278162B2 (en) * 2003-04-01 2007-10-02 International Business Machines Corporation Use of a programmable network processor to observe a flow of packets
US7398322B1 (en) * 2003-05-20 2008-07-08 Sun Microsystems, Inc. System using routing bridges to transparently interconnect multiple network links to form a single virtual network link
US8843604B2 (en) 2003-06-19 2014-09-23 International Business Machines Corporation Method for interlocking a server to a server system and a computer system utilizing the same
US7480720B2 (en) * 2003-06-25 2009-01-20 International Business Machines Corporation Method and system for load balancing switch modules in a server system and a computer system utilizing the same
US6954387B2 (en) * 2003-07-15 2005-10-11 International Business Machines Corporation Dynamic random access memory with smart refresh scheduler
US7464181B2 (en) * 2003-09-11 2008-12-09 International Business Machines Corporation Method for caching lookups based upon TCP traffic flow characteristics
US7421532B2 (en) * 2003-11-18 2008-09-02 Topside Research, Llc Switching with transparent and non-transparent ports
US7454552B2 (en) * 2003-11-18 2008-11-18 Topside Research, Llc Switch with transparent and non-transparent ports
US7539190B2 (en) * 2004-01-05 2009-05-26 Topside Research, Llc Multicasting in a shared address space
US7426602B2 (en) * 2004-01-08 2008-09-16 Topside Research, Llc Switch for bus optimization
US7487542B2 (en) * 2004-01-14 2009-02-03 International Business Machines Corporation Intrusion detection using a network processor and a parallel pattern detection engine
US7457241B2 (en) * 2004-02-05 2008-11-25 International Business Machines Corporation Structure for scheduler pipeline design for hierarchical link sharing
US8468337B2 (en) * 2004-03-02 2013-06-18 International Business Machines Corporation Secure data transfer over a network
US7564976B2 (en) 2004-03-02 2009-07-21 International Business Machines Corporation System and method for performing security operations on network data
US7586851B2 (en) * 2004-04-26 2009-09-08 Cisco Technology, Inc. Programmable packet parsing processor
US7599361B2 (en) * 2004-07-02 2009-10-06 P-Cube Ltd. Wire-speed packet management in a multi-pipeline network processor
US7478426B2 (en) * 2004-07-20 2009-01-13 International Busines Machines Corporation Multi-field classification dynamic rule updates
US7747599B1 (en) 2004-07-23 2010-06-29 Netlogic Microsystems, Inc. Integrated search engine devices that utilize hierarchical memories containing b-trees and span prefix masks to support longest prefix match search operations
US7725450B1 (en) 2004-07-23 2010-05-25 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations
US7603346B1 (en) 2004-07-23 2009-10-13 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and b-tree maintenance sub-engines therein
US7653619B1 (en) 2004-07-23 2010-01-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height
US8886677B1 (en) 2004-07-23 2014-11-11 Netlogic Microsystems, Inc. Integrated search engine devices that support LPM search operations using span prefix masks that encode key prefix length
US7769875B1 (en) * 2004-08-03 2010-08-03 Juniper Networks, Inc. Managing a network flow using application classification information and active signaling relay
US8055787B2 (en) * 2004-09-10 2011-11-08 Invensys Systems, Inc. System and method for managing industrial process control data streams over network links
US7376809B2 (en) * 2005-03-09 2008-05-20 International Business Machines Corporation Systems and methods for multi-frame control blocks
US7466715B2 (en) * 2005-03-28 2008-12-16 International Business Machines Corporation Flexible control block format for frame description and management
US7903687B2 (en) * 2005-04-01 2011-03-08 International Business Machines Corporation Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US7694287B2 (en) 2005-06-29 2010-04-06 Visa U.S.A. Schema-based dynamic parse/build engine for parsing multi-format messages
US7774402B2 (en) * 2005-06-29 2010-08-10 Visa U.S.A. Adaptive gateway for switching transactions and data on unreliable networks using context-based rules
US7698498B2 (en) * 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
JP2007265019A (ja) * 2006-03-28 2007-10-11 Sony Computer Entertainment Inc 演算処理装置
TW200813724A (en) * 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US7697518B1 (en) 2006-09-15 2010-04-13 Netlogic Microsystems, Inc. Integrated search engine devices and methods of updating same using node splitting and merging operations
US7831626B1 (en) 2006-11-27 2010-11-09 Netlogic Microsystems, Inc. Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node
US7987205B1 (en) 2006-11-27 2011-07-26 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
US8086641B1 (en) 2006-11-27 2011-12-27 Netlogic Microsystems, Inc. Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same
US7953721B1 (en) 2006-11-27 2011-05-31 Netlogic Microsystems, Inc. Integrated search engine devices that support database key dumping and methods of operating same
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US8046527B2 (en) * 2007-02-22 2011-10-25 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US7996520B2 (en) * 2007-09-19 2011-08-09 Cisco Technology, Inc. Behavioral classification of communication sessions using active session initiation
US7886176B1 (en) 2007-09-24 2011-02-08 Integrated Device Technology, Inc. DDR memory system for measuring a clock signal by identifying a delay value corresponding to a changed logic state during clock signal transitions
US8028124B2 (en) * 2007-12-20 2011-09-27 International Business Machines Corporation Fast processing memory array
US7716204B1 (en) 2007-12-21 2010-05-11 Netlogic Microsystems, Inc. Handle allocation managers and methods for integated circuit search engine devices
US7801877B1 (en) 2008-04-14 2010-09-21 Netlogic Microsystems, Inc. Handle memory access managers and methods for integrated circuit search engine devices
KR20100026509A (ko) * 2008-08-29 2010-03-10 삼성전자주식회사 복수의 데이터 플로우를 전송하는 반도체 장치
CN102640462B (zh) * 2009-11-11 2015-12-09 新思科技有限公司 用于缓冲服务请求的集成电路布置
US8880739B1 (en) * 2010-05-19 2014-11-04 Amazon Technologies, Inc. Point backbones for network deployment
SG186910A1 (en) 2010-07-09 2013-02-28 Visa Int Service Ass Gateway abstraction layer
US8850137B2 (en) 2010-10-11 2014-09-30 Cisco Technology, Inc. Memory subsystem for counter-based and other applications
US9465662B2 (en) * 2011-10-17 2016-10-11 Cavium, Inc. Processor with efficient work queuing
US9324397B1 (en) * 2015-01-16 2016-04-26 Qualcomm Incorporated Common die for supporting different external memory types with minimal packaging complexity
EP3251021B1 (de) 2015-01-30 2023-07-19 Hewlett Packard Enterprise Development LP Speichernetzwerk zur priorisierung der verarbeitung einer speicherzugangsanfrage
CN106878440B (zh) * 2017-02-27 2019-08-06 多林科技(武汉)有限公司 正向编址和反向重编址互联通信方法、设备和系统
CN107040523B (zh) * 2017-03-21 2020-09-11 百富计算机技术(深圳)有限公司 交易数据传输方法、装置和电子设备
CN110830408B (zh) * 2019-11-13 2022-02-22 天津德力仪器设备有限公司 一种应用于embms系统中快速捕获cas的方法
US20240037550A1 (en) * 2022-07-29 2024-02-01 Ncr Corporation Information encoding and transmission techniques
CN118337733B (zh) * 2024-06-13 2024-09-20 苏州元脑智能科技有限公司 一种带宽补偿方法、装置、设备及计算机可读存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4803617A (en) * 1986-02-10 1989-02-07 Eastman Kodak Company Multi-processor using shared buses
US4933846A (en) 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US4969088A (en) 1988-04-26 1990-11-06 International Business Machines Corporation Hardware mechanism for automatically detecting hot-spot references and diverting same from memory traffic in a multiprocessor computer system
US5163149A (en) 1988-11-02 1992-11-10 International Business Machines Corporation Combining switch for reducing accesses to memory and for synchronizing parallel processes
DE68928980T2 (de) 1989-11-17 1999-08-19 Texas Instruments Inc. Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern
GB9206126D0 (en) * 1992-03-20 1992-05-06 Maxys Circuit Technology Limit Parallel vector processor architecture
US5761455A (en) * 1995-02-06 1998-06-02 Cpu Technology, Inc. Dynamic bus reconfiguration logic
US5802278A (en) 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
JP3365705B2 (ja) 1995-05-24 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散型データ処理システム
US5982459A (en) * 1995-05-31 1999-11-09 8×8, Inc. Integrated multimedia communications processor and codec
US5664116A (en) 1995-07-07 1997-09-02 Sun Microsystems, Inc. Buffering of data for transmission in a computer communication system interface
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5875470A (en) * 1995-09-28 1999-02-23 International Business Machines Corporation Multi-port multiple-simultaneous-access DRAM chip

Also Published As

Publication number Publication date
JP3832816B2 (ja) 2006-10-11
JP2003508851A (ja) 2003-03-04
WO2001016779A1 (en) 2001-03-08
CN1369074A (zh) 2002-09-11
KR20020024332A (ko) 2002-03-29
EP1208447A4 (de) 2004-10-20
KR100468800B1 (ko) 2005-02-02
EP1208447A1 (de) 2002-05-29
US20020099855A1 (en) 2002-07-25
DE60033529D1 (de) 2007-04-05
ATE354830T1 (de) 2007-03-15
US6460120B1 (en) 2002-10-01
CN1204509C (zh) 2005-06-01
EP1208447B1 (de) 2007-02-21

Similar Documents

Publication Publication Date Title
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
DE60029467T2 (de) Netzwerkschalter und komponenten und betriebsverfahren
US6647004B2 (en) Network switch using network processor and methods
US6766381B1 (en) VLSI network processor and methods
US6769033B1 (en) Network processor processing complex and methods
DE69900492T2 (de) Grosse kombinierte Breitband und Schmalband Vermittlungsstelle
DE68925830T2 (de) Vorrichtung zur Vermittlung eines konzentrierten Kommunikationspaketverkehrs
DE112011104443B4 (de) Verbinden eines externen Netzwerkcoprozessors mit einem Netzwerkprozessor-Paket-Parser
DE602004009310T2 (de) System und verfahren zur kommunikation über einen bus

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: BASS, BRIAN, MITCHELL, APEX, NC 27502, US

Inventor name: CALVIGNAC, JEAN, LOUIS, CARY, NC 27511, US

Inventor name: HEDDES, MARCO, C., WINCHESTER, HAMPSHIRE SO21 , GB

Inventor name: PATEL, PIYUSH, CHUNILAL, CARY, NC 27513, US

Inventor name: REVILLA, JUAN, GUILLERMO, AUSTIN, TX 78739, US

Inventor name: SIEGEL, MICHAEL, STEVEN, RALEIGH, NC 27613, US

Inventor name: VERPLANKEN, FABRICE, JEAN, F-06610 LA GAUDE, FR

8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)