DE60029467T2 - Netzwerkschalter und komponenten und betriebsverfahren - Google Patents

Netzwerkschalter und komponenten und betriebsverfahren Download PDF

Info

Publication number
DE60029467T2
DE60029467T2 DE60029467T DE60029467T DE60029467T2 DE 60029467 T2 DE60029467 T2 DE 60029467T2 DE 60029467 T DE60029467 T DE 60029467T DE 60029467 T DE60029467 T DE 60029467T DE 60029467 T2 DE60029467 T2 DE 60029467T2
Authority
DE
Germany
Prior art keywords
data
frame
interface
processors
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60029467T
Other languages
English (en)
Other versions
DE60029467D1 (de
Inventor
Mitchell Brian Apex BASS
Louis Jean Cary CALVIGNAC
Matteo Anthony Apex GALLO
C. c/o IBM United Kingdom Limited Marco Winchester HEDDES
Sridhar Raleigh RAO
Steven Michael Raleigh SIEGEL
Alan Brian Cary YOUNGMAN
Jean Fabrice 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
Publication of DE60029467D1 publication Critical patent/DE60029467D1/de
Application granted granted Critical
Publication of DE60029467T2 publication Critical patent/DE60029467T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3036Shared queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Oscillators With Electromechanical Resonators (AREA)
  • Multi Processors (AREA)

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft eine Vorrichtung für Datenübertragungsnetze, wie sie zum Verbinden von Datenverarbeitungssystemen oder Computern unterschiedlicher Art und Leistungsfähigkeit verwendet wird, und Komponenten für eine solche Vorrichtung. Insbesondere betrifft die vorliegende Erfindung eine skalierbare Vermittlungsvorrichtung und zum Aufbau einer solchen Vorrichtung geeignete Komponenten. Die vorliegende Erfindung betrifft eine verbesserte und multifunktionale Schnittstelleneinheit und die Kombination dieser Einheit mit anderen Elementen zum Erstellen einer Netzvermittlungseinheit (Netzwerkschalter) für Mediengeschwindigkeiten. Ferner betrifft die Erfindung Verfahren zum Betreiben eines solchen Vorrichtung, welche die Datenverarbeitungsleistung von Netzvermittlungseinheiten verbessert.
  • ZUGRUNDELIEGENDE TECHNIK
  • Die folgende Beschreibung setzt Kenntnisse über Datenübertragungsnetze und die in solchen Datenübertragungsnetzen verwendeten Vermittlungseinheiten (switch) und Leitwegrechner (router) voraus. Insbesondere setzt die Beschreibung die Kenntnis des ISO-Modells der Netzwerkarchitektur voraus, welche den Netzbetrieb in Schichten aufteilt. Eine typische auf dem ISO-Modell basierende Architektur geht aus von der Schicht 1 (oft auch als „L1" bezeichnet), die den physischen Pfad oder das Medium darstellt, durch welches Signale zu den Schichten 2, 3, 4 und so weiter bis zur Schicht 7 gelangen, wobei in der letzteren Schicht die Anwendungsprogramme in einem mit dem Netz verbundenen Computersystem laufen. Im vorliegenden Dokument beziehen sich die Begriffe L1, L2 und so weiter auf die entsprechende Schicht einer Netzwerkarchitektur. Die Beschreibung setzt ferner grundlegende Kenntnisse von Bitfolgen voraus, die bei einer solchen Datenübertragung in Netzwerken in Form von Paketen und Rahmen bekannt sind.
  • In der vernetzten Welt von heute stellt die Bandbreite eine kritische Größe dar. Mit dem zunehmenden Datenverkehr im Netz, der durch das Internet und weitere neuere Anwendungen ausgelöst wird, wird die Leistungsfähigkeit von Netzwerkarchitekturen belastet. Um Schritt halten zu können, suchen die beteiligten Unternehmen nach besseren Technologien und Methoden, um den zunehmenden Datenverkehr sowie das Zusammenwachsen von Sprache und Daten zu unterstützen und zu bewältigen.
  • Der gegenwärtig dramatisch zunehmende Datenverkehr im Netz lässt sich auf die Beliebtheit des Internet, einen steigenden Bedarf für den Fernzugriff auf Informationen und neue Anwendungen zurückführen. Allein das Internet mit seiner explosionsartigen Zunahme des elektronischen Handels (e-commerce) belastet die zentralen Netzwerkleitungen mitunter bis an die Leistungsgrenze. Für sich genommen stellt dies den wichtigsten Grund für das zunehmende Volumen des Datenverkehrs dar, das zum ersten Mal den Umfang der Sprachübertragung überschreitet. Die zunehmende Nachfrage nach Anwendungen für den Fernzugriff einschließlich eMail, Datenbankzugriffen und Dateiübertragung belastet die Netze noch weiter.
  • Für die Entwicklung moderner Netzwerkumgebungen wird das Zusammenwachsen von Sprache und Daten eine große Rolle spielen. Gegenwärtig ist die Übertragung von Daten über IP-Netze (gemäß Internetprotokoll) gebührenfrei. Da selbstverständlich auch die Sprachübertragung den Weg mit den niedrigsten Kosten einschlagen wird, wird es zwangsläufig zum Zusammenwachsen von Sprache und Daten kommen. In diesem sich verändernden Markt stellen Technologien wie VoIP (Voice over IP, Sprache über Internetprotokoll), AoATM (Voice over ATM, Sprache über asynchronen Übertragungsmodus) und VoFR (Voice over Frame Relay, Sprache über Frame-Relay-Übertragung) kostengünstige Alternativen dar. Um jedoch den Übergang zu diesen Technologien zu ermöglichen, muss die Industrie die Dienstqualität (Quality of Service, QoS) für die Sprachübertragung gewährleisten und die Bezahlung der Sprachübertragung über Datenleitungen regeln. Diese Umgebung wird durch das Telecommunications Deregulation Act von 1996 noch stärker kompliziert. Diese Gesetzgebung verstärkt noch die gegenseitige Beziehung zwischen dem bevorzugten Sprachprotokoll ATM und dem bevorzugten Datenprotokoll IP.
  • In dem Maße, wie neue Produkte und Kapazitäten verfügbar werden, spielt für die Unternehmen die Eigentumssicherung ebenfalls eine enorme Rolle. Um ihre vorhandenen Investitionen in Anlagen und Software zu sichern, fordern die Unternehmen Lösungen, die ihnen den Wechsel zu neuen Technologien gestatten, ohne ihre derzeitigen Aktivitäten zu unterbrechen.
  • Die Beseitigung von Engpässen im Netz hat für die Diensteanbieter (service providers) weiterhin allerhöchste Priorität. Router sind oft die Ursache für diese Engpässe. Allerdings wird der Datenstau im Internet im Allgemeinen oft fälschlicherweise als Bandbreitenproblem angesehen und durch die Suche nach höheren Bandbreiten gelöst. Dieses Problem haben die Hersteller heute erkannt. Sie gehen zu Technologien mit Netzwerkprozessoren über, um die vorhandenen Bandbreiten besser auszunutzen und die in Routern und Netzwerk-Anwendungsservern angebotenen neuen Datendienste mit Leitungsgeschwindigkeit bereitzustellen. Zu diesen Diensten gehören die Lastausgleichung, QoS, Gateways, Firewalls, Sicherheit und Webcaching (Zwischenspeichern im Internet).
  • Bei Anwendungen für den Fernzugriff sind die Leistungsparameter, die Bandbreitenbereitstellung bei Bedarf, die Sicherheit und der Nachweis der Identität (authentication) von größter Bedeutung. Die Forderung nach Verbindung von QoS und CoS, integrierter Sprachverarbeitung und ausgefeilten Sicherheitslösungen werden die Ausgestaltung von zukünftigen Netzvermittlungseinheiten für den Fernzugriff ebenfalls beeinflussen. Darüber hinaus muss für den Fernzugriff eine zunehmende Anzahl von physischen Medien berücksichtigt werden, zum Beispiel ISDN, T1, E1, OC-3 bis OC-48, Kabel und xDSL-Modems.
  • Industriefachleute haben für eine programmierbare integrierte Datenübertragungsschaltung einen Netzwerkprozessor (im Folgenden als „NP" bezeichnet) definiert, der in der Lage ist, eine oder mehrere der folgenden Funktionen auszuführen:
    Paketklassifizierung – Einstufen eines Paketes nach bekannten Eigenschaften, zum Beispiel der Adresse oder dem Protokoll
    Paketmodifizierung – Veränderung des Paketes zum Anpassen an IP, ATM oder andere Protokolle (zum Beispiel beim IP das Aktualisieren des Feldes Verweildauer im Datenvorsatz (header))
    Warteschlangen-/Strategiesteuerung – widerspiegelt die Aufbaustrategie für das Einreihen von Paketen in und das Entnehmen von Paketen aus Warteschlangen sowie die Ablaufsteuerung für Pakete in besonderen Anwendungen
    Paketweiterleitung – Senden und Empfangen von Daten über das Koppelnetz und Weiterleiten oder Transportieren des Pakets zur richtigen Adresse.
  • Obwohl diese Definition eine genaue Beschreibung der Hauptmerkmale von früheren NPs ist, müssen deren ganze Möglichkeiten und Vorteile erst noch in die Wirklichkeit umgesetzt werden. Netzwerkprozessoren können bei einer Vielzahl von Anwendungen zur Vergrößerung der Bandbreite und zur Lösung von Latenzproblemen beitragen, indem bisher durch Software ausgeführte Netzaufgaben durch Hardware erledigt werden. Außerdem können NPs die Geschwindigkeit durch Architekturen steigern, zum Beispiel durch verteilte Parallelverarbeitung und Pipelineverarbeitung. Durch diese Fähigkeiten wird es möglich, leistungsfähige Suchmaschinen zu schaffen, den Durchsatz zu steigern und komplexe Aufgaben schnell auszuführen.
  • Netzwerkprozessoren dürften bald ebenso zum Grundbaustein von Netzwerken werden wie CPUs in Rechnern. Typische Eigenschaften eines NP sind Echtzeitverarbeitung, Sicherheit, Speichern und Weiterleiten, Koppelnetzvermittlung, Verarbeitung von IP-Paketen und Lernfähigkeit. NPs arbeiten in den ISO-Schichten zwei bis fünf und sind auf die Optimierung von netzspezifischen Aufgaben ausgerichtet.
  • Der NP gemäß dem Prozessormodell beinhaltet mehrere Standardprozessoren und eine spezielle Schaltlogik. Die Hersteller kehren zu diesem Aufbau zurück, um skalierbare flexible Lösungen zu schaffen, die schnelle und kostengünstige Änderungen ermöglichen. Ein NP gemäß dem Prozessormodell gestattet die verteilte Verarbeitung mit niedrigerem Integrationsgrad und ermöglicht einen höheren Datendurchsatz sowie eine bessere Flexibilität und Steuerung. Durch Programmierbarkeit kann der Übergang zu neuen Protokollen und Technologien erleichtert werden und auf neue ASIC-Entwicklungen verzichtet werden. Bei Prozessormodell-NPs profitieren NEVs von den verringerten Einmalkosten für Entwicklungsarbeiten und einer schnelleren Vermarktung.
  • BESCHREIBUNG DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung besteht darin, eine skalierbare Vermittlungsarchitektur zur Verwendung in einem Datenübertragungsnetz bereitzustellen, mit dem die Verarbeitungsressourcen an eine Größenordnung des zu erwartenden Bedarfs angepasst werden können und gleichzeitig die Verarbeitungsgeschwindigkeit der zu übertragenden Daten erhöht werden kann. Diese Aufgabe wird durch die Bereitstellung von Komponenten und deren Verknüpfung gelöst, die den beteiligten Verarbeitungseinheiten einen größeren Umfang an Datenverarbeitung abnehmen, als dies bisher der Fall war.
  • Eine anderes Ziel besteht darin, eine Schnittstelleneinheit oder einen Netzwerkprozessor (die beiden Ausdrücke werden synonym gebraucht) bereitzustellen, die eine Vielzahl von Untereinheiten beinhalten, die auf einem einzigen Substrat integriert sind und gemeinsam die Vermittlung von Rahmen der Schichten 2 bis 5 mit Mediengeschwindigkeit durchführen. Die Schnittstelleneinheit kann als unabhängige Einzellösung (standalone) zur Schaffung einer ersten Ebene von Fähigkeiten für eine Arbeitsgruppenvermittlung, als verknüpfte Lösung zur Schaffung einer höheren Ebene von Fähigkeiten für eine Arbeitsgruppenvermittlung verwendet werden oder durch Zusammenarbeit mit einem Koppelnetz mit weiteren Fähigkeiten aufgewertet werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Während einige der Ziele der Erfindung bereits erwähnt wurden, zeigen sich andere im Laufe der Beschreibung in Verbindung mit den beiliegenden Zeichnungen, wobei:
  • 1 ein Blockschaltbild einer Schnittstelleneinheit gemäß der vorliegenden Erfindung zeigt.
  • 1A ein Blockschaltbild für die MAC zeigt.
  • die 2A bis 2D die mit anderen Komponenten verbundene Schnittstelleneinheit in verschiedenen Systemkonfigurationen zeigen.
  • 3 den Datenfluss und die Verarbeitung eines gekapselten geleiteten Rahmens zeigt.
  • 4 den Datenfluss und die Verarbeitung eines internen geleiteten Rahmens zeigt.
  • 5 das verallgemeinerte Format einer geleiteten Zelle zeigt.
  • 6 das Format von Rahmensteuerdaten zeigt.
  • 7 das Format des Korrelators zeigt.
  • 8 das Format der Befehlssteuerdaten zeigt.
  • 9 das Format der Adressdaten zeigt.
  • 10 die allgemeine Form der Strukturadressierung zeigt.
  • 11 eine Tabelle der Adressierung mit Bereichscodierung zeigt.
  • 12A ein Blockschaltbild des integrierten Prozessorkomplexes zeigt.
  • 12B ein Schema der integrierten Prozessoren zeigt.
  • 12C eine Struktur eines GxH-Prozessors zeigt.
  • 13 ein Blockschaltbild des Speicherkomplexes zeigt.
  • 14 ein Flussdiagramm des Suchalgorithmus für feste Übereinstimmungen (Fixed Match, FM) zeigt.
  • 15 Datenströme zeigt, welche die Datenstruktur mit oder mit ohne Verwendung einer Zuordnungstabelle veranschaulichen.
  • 16 ein Blockschaltbild eines Vermittlungssystems wie zum Beispiel PRIZMA zeigt.
  • 17 ein Blockschaltbild eines Steuerpunkts (CP) zeigt.
  • 18 ein Blockschaltbild des Einchip-Netzwerkprozessors zeigt, in dem die Funktionen im EDS-UP, EDS-DOWN und im EPC hervorgehoben ist.
  • BETRIEBSART(EN) ZUM DURCHFÜHREN DER ERFINDUNG
  • Während die vorliegenden Erfindungen im Folgenden unter Bezug auf die beiliegenden Zeichnungen ausführlich beschrieben werden, in denen bevorzugte Ausführungsarten der vorliegenden Erfindung dargestellt sind, ist bei der folgenden Beschreibung von vornherein klar, dass ein Fachmann die hier beschriebenen Erfindungen modifizieren und dabei dennoch die vorteilhaften Ergebnisse der Erfindungen erzielen kann. Demzufolge ist die folgende Beschreibung nicht als Einschränkung der vorliegenden Erfindungen, sondern als umfassende Beschreibung zur Unterrichtung von Fachleuten zu verstehen.
  • Die hier beschriebene Vorrichtung kann skaliert werden und dient zur Verbindung von Einzelrechner- oder Arbeitsgruppenvermittlungen, zur Einbindung solcher Vermittlungen in eine zentrale Netzwerkleitung und zur Bereitstellung von Vermittlungsdiensten für zentrale Netzwerkleitungen. Die Vorrichtung kann durch Hardware die Weiterleitung von Daten in Schicht 2, Schicht 3 und Schicht 4+ unterstützen. Bestimmte Ausführungen der Vorrichtung sind zur Zusammenschaltung von Einzelrechner- oder Arbeitsgruppenvermittlungen und andere für zentrale Netzwerkleitungen vorgesehen.
  • Die für die Vorrichtung verwendete Architektur basiert auf einer Schnittstelleneinheit oder einem Netzwerkprozessor als Hardwareteilsystem und einer an einem Steuerpunkt betriebene Softwarebibliothek, die im vorliegenden Dokument an anderer Stelle ausführlich beschrieben werden. Das Teilsystem in Form einer Schnittstelleneinheit oder eines Netzwerkprozessors stellt eine Hochleistungseinheit zur Rahmenweiterleitung dar, die zum Analysieren und Übersetzen von Protokoll-Datenvorsätzen (protocol headers) in den Schichten L2, L3 und L4+ geeignet ist. Durch den Einsatz dieser Hardware können Protokolle mit höherer Geschwindigkeit vermittelt werden. Das Teilsystem in Form einer Schnittstelleneinheit oder eines Netzwerkprozessors stellt einen schnellen Pfad durch die Einheit zur Verfügung, während die Softwarebibliothek und der Steuerpunktprozessor die zur Sicherung des schnellen Pfades erforderlichen Steuerungs- und Routingfunktionen übernehmen. Der Steuerpunktprozessor und die darin aktive Softwarebibliothek definieren gemeinsam den Steuerpunkt (Control Point, CP) des Systems. Im CP werden die eigentlichen Brücken- und Routingprotokolle ausgeführt, zum Beispiel Transparent Bridging und OSPF. Dieser kann auch als langsamer Pfad des Systems bezeichnet werden.
  • Während die vorliegende Vorrichtung durch Hardware die Weiterleitung in mehreren Schichten unterstützt, kann sie auch als Vermittlung ausschließlich in L2 fungieren, was ihrem Standardbetriebsmodus in der einfachsten beschriebenen Form entspricht. Jeder Anschluss (Port) wird einem einzigen Bereich zugeordnet, damit jede Einheit mit jeder anderen Einheit in Verbindung treten kann. Die Vorrichtung kann in L2 konfiguriert werden, sodass ein Systemadministrator Merkmale wie: Zusammenfassen von Anschlüssen zu separaten Bereichen oder Leitungsbündeln, virtuelle LAN-Segmente (Virtual LAN, VLAN) oder Filter zur Steuerung des Rundsendens (broadcast) und des selektives Rundsendens (multicast traffic).
  • Diese skalierbare Vorrichtung weist viele Vorteile auf. Zum Ersten ist der Systemadministrator in der Lage, die Weiterleitung und das Routing von IP- und IPX-Datenverkehr in L3 unter Verwendung derselben Hardware wie für L2 und mit derselben Geschwindigkeit zu konfigurieren. Zum Zweiten entfällt die Notwendigkeit externer Router zur Verbindung von mehreren zusammengehörigen Gebäuden, während die Leistungsfähigkeit gleichzeitig verbessert wird. Zum Dritten wird die Steuerung des L2/L3-Dienstes für ein Gebäude zu einem einzigen Steuerpunkt zusammengefasst und somit vereinfacht.
  • Und schließlich bietet die Vorrichtung zusätzliche Merkmale mit L4+-Funktionen, die es dem Systemadministrator ermöglichen, dem Datenverkehr verschiedene Klassifikationen zuzuweisen, um Anwendungen mit kritischen Aufgaben zu unterstützen, und die Abwicklung der Lastausgleichung zwischen Servern im Netz.
  • Die Vorrichtung ist modular ausgelegt und verwendet als Grundbausteine eine Schnittstelleneinheit oder einen Netzwerkprozessor, einen Steuerpunkt (CP) und optional ein Koppelnetz. Die Schnittstelleneinheit stellt vorzugsweise die Datenweiterleitung über einen schnellen Pfad in L2/L3/L4+ sicher, während der CP für die zur Sicherung des schnellen Pfades erforderlichen Steuerungs- und Routingfunktionen sorgt. Das optionale Koppelnetz wird eingesetzt, wenn mehr als zwei Teilsysteme in Form einer Schnittstelleneinheit miteinander verbunden werden.
  • Ein geeignetes optionales Koppelnetz wird in der US-Patentschrift 5 008 878 mit dem Titel „High Speed Modular Switching Apparatus for Circuit and Packet Switched Traffic", erteilt am 16. April 1991, beschrieben.
  • Für die Vorrichtung ist vorgesehen, dass sie aus Leiterplattenelementen zusammengesetzt wird, die in der englischen Literatur auch als „blades" (Lamellen, Blätter) bezeichnet werden. Die Leiterplattenelemente sind mit Schaltkreisbauteilen bestückt und in Steckplätze eingesetzt, die sich in Gehäusen der Vorrichtung befinden. Ähnliche Einheiten sind als „Wechselkarten" bekannt. Die Vorrichtung sieht vor, dass die Leiterplattenelemente zwischen verschiedenen Chassis oder Gehäusen ausgetauscht werden können, wenn an der Rückwandplatine geeignete Steckplätze und elektrische Kontakte vorhanden sind. Die Grundkomponente aller Leiterplattenelemente ist ein Trägerteilsystem. Ausgehend von dem Trägerteilsystem können drei Arten von Leiterplattenelementen hergestellt werden. Die erste Art ist das Nur-CP-Leiterplattenelement, das aus einem Trägerteilsystem und einem CP-Teilsystem besteht. Das Nur-CP-Leiterplattenelement wird vor allem dort eingesetzt, wo die Redundanz von besonderer Wichtigkeit ist. Die zweite Art ist ein CP+Medien-Leiterplattenelement, das aus einem Trägerteilsystem, einem CP-Teilsystem und 1 bis 3 Medienteilsystemen besteht. Ein CP+Medien-Leiterplattenelement wird vorrangig dort eingesetzt, wo die Anschlussdichte als wichtiger angesehen wird als die Redundanz. Die dritte Art ist ein Medien-Leiterplattenelement, das aus einem Trägerteilsystem und 1 bis 4 Medienteilsystemen besteht. Die Medien-Leiterplattenelemente können in jedem Chassis eingesetzt werden und die Art des verwendeten Medienteilsystems kann konfiguriert werden.
  • Zu den Aufgaben eines Leiterplattenelements gehören Fehlererkennung, Verwaltung der Stromaufnahme, Erkennung neuer Einheiten, Initialisierung und Konfigurierung. Diese Aufgaben werden unter Verwendung verschiedener Register, E/A-Signale und einer Schnittstelle für geleitete Zellen ausgeführt, die zur Datenübertragung zwischen dem CP und den Trägerteilsystemen dient. Im Gegensatz zum Chassis gibt es auf allen Leiterplattenelementen programmierbare Einheiten und Speicher. Das Ausmaß der Programmierbarkeit hängt von der Art des Leiterplattenelements ab. Wenn sich das CP-Teilsystem auf einem Leiterplattenelement befindet, sind sowohl das CP- als auch das Trägerteilsystem programmierbar. Die Medienteilsysteme können ebenfalls programmiert werden, aber nur indirekt über das Trägerteilsystem.
  • Bei leistungsfähigeren Produkten gibt es auch ein Vermittlungs-Leiterplattenelement mit einem Koppelnetzteilsystem. Zu den Aufgaben dieses Leiterplattenelements gehören Fehlererkennung, Verwaltung der Stromaufnahme, Erkennung neuer Geräte und Initialisierung. Diese Aufgaben werden unter Verwendung verschiedener Register und E/A-Signale erledigt, die im CP-Teilsystem gespeichert sind.
  • In ihrer einfachsten Form weist eine Vermittlungsvorrichtung im Sinne der vorliegenden Erfindung einen Steuerpunktprozessor und eine funktionell mit dem Steuerpunktprozessor verbundene Schnittstelleneinheit auf. Vorzugsweise und gemäß der vorliegenden Beschreibung ist die Schnittstelleneinheit (auch unter der Bezeichnung Netzwerkprozessor bekannt) ein einziges (hochintegriertes) VLSI-Bauelement bzw. ein Chip, der Folgendes aufweist: ein Halbleitersubstrat; eine Vielzahl auf dem Substrat gebildeter Schnittstellenprozessoren; einen auf dem Substrat gebildeten internen Befehlsspeicher zur Speicherung von Befehlen, auf welche die Schnittstellenprozessoren zugreifen können; einen auf dem Substrat gebildeten internen Datenspeicher zur Speicherung der durch die Einheit gelangenden Daten, auf welche die Schnittstellenprozessoren zugreifen können; und eine Vielzahl von Eingangs-/Ausgangs-Anschlüssen. Im vorliegenden Dokument werden die Schnittstellenprozessoren mitunter auch als Picoprozessoren oder Verarbeitungseinheiten bezeichnet. Die zur Verfügung stehenden Anschlüsse beinhalten mindestens einen Anschluss zum Verbinden des internen Datenspeichers mit einem externen Datenspeicher und mindestens zwei andere Anschlüsse zum Austauschen der durch die Schnittstelleneinheit geleiteten Daten mit einem externen Netzwerk unter der Steuerung der Schnittstellenprozessoren. Der Steuerpunkt arbeitet mit der Schnittstelleneinheit zusammen, indem durch die Schnittstellenprozessoren auszuführende Befehle in den Befehlsspeicher lädt und so den Datenaustausch zwischen den für den Datenaustausch bestimmten Eingangs-/Ausgangsanschlüssen und den Datenstrom durch den Datenspeicher steuert.
  • Der hier beschriebene Netzwerkprozessor ist im Sinne der Erfindung als unabhängig von den Vermittlungseinheiten anzusehen, in die er eingebaut wird. Ferner ist davon auszugehen, dass an den Elementen des hier beschriebenen Netzwerkprozessors noch andere und weitere Erfindungen, die hier nicht vollständig erörtert werden, beteiligt sind.
  • 1 zeigt ein Blockschaltbild für den Chip der Schnittstelleneinheit, der ein Substrat 10 und eine Vielzahl auf dem Substrat integrierter Teilschaltungen beinhaltet. Die Teilschaltungen sind als Aufwärtskonfiguration und als Abwärtskonfiguration angeordnet.
  • Im vorliegenden Dokument bezieht sich der Ausdruck „Aufwärts" auf Datenströme, die von einem Netzwerk in die hier beschriebene Vorrichtung gelangen, während sich der Ausdruck „Abwärts" auf Daten bezieht, die aus der Vorrichtung in ein durch die Vorrichtung versorgtes Netzwerk gelangen. Der Datenfluss verläuft entlang den entsprechenden Konfigurationen. Daraus ergibt sich, dass es einen Aufwärts-Datenfluss und einen Abwärts-Datenfluss gibt. Die Teilschaltungen im Aufwärtszweig beinhalten eine EDS-UP-Logik 16 (Enqueue-Dequeue-Scheduling, Steuerung für das Speichern und Lesen einer Aufwärts-Warteschlange), eine gemultiplexte MAC-UP 14 (PPM-UP), eine SDM-UP (Switch Data Mover, Vermittlungsdatenübertrager) 18, eine Systemschnittstelle 20 (System Interface, SIF), eine DASL A 22 (Data Align Serial Link A, serielle Leitung A für die Datenanpassung) und eine DASL B 24 (Data Align Serial Link B, serielle Leitung B für die Datenanpassung). Eine serielle Leitung für die Datenanpassung wird in der gleichzeitig anhängigen US-Patentanmeldung 09/330 968 mit dem Titel „High Speed Parallel/Serial Link for Data Communication", eingereicht am 11. Juni 1999, genauer beschrieben. Obwohl die bevorzugte Form der Vorrichtung der hier beschriebenen vorliegenden Erfindung eine DASL-Leitung verwendet, können für die vorliegende Erfindung auch andere Formen von Leitungen verwendet werden, um relativ hohe Datenraten zu erreichen, insbesondere da, wo die Datenströme auf die VLSI-Struktur begrenzt sind.
  • Die Teilschaltungen im Abwärtszweig beinhalten Folgendes: DASL-A 26, DASL-B 28, SIF 30, SDM-DN 32, EDS-DN 34 und PPM-DN 36. Der Chip beinhaltet auch eine Vielzahl von internen SRAMs, eine Datenverkehrs-Ablaufsteuerung 40 und einen integrierten Prozessorkomplex 12 (Embedded Processor Complex, EPC). Eine Schnittstelleneinheit 38 ist durch entsprechende DMU-Busse mit den PMM 14 und 36 verbunden. Als Schnittstelle 38 kann eine beliebige geeignete L1-Schaltung dienen, zum Beispiel ENET PHY (Ethernet Physical), ATM Framer usw. Die Art der Schnittstelle hängt zum Teil vom Netzwerkmedium ab, an das der Chip angeschlossen ist. Dem Chip stehen eine Vielzahl externer DRAMs und SRAMs zur Verfügung.
  • Obwohl die vorliegende Erfindung insbesondere für Netzwerke beschrieben wurde, in denen der normale Datenfluss außerhalb der jeweiligen Vermittlungs- und Routingeinheiten durch elektrische Leiter wie beispielsweise Drähte und Kabel verläuft, die in Gebäuden verlegt sind, geht die vorliegende Erfindung davon aus, dass die hier beschriebenen Netzwerkvermittlungen und deren Komponenten ebenso in einer drahtlosen Umgebung verwendet werden können. Beispielsweise können die hier beschriebenen MAC-Elemente (Media Access Control, Medienzugriffssteuerung) durch geeignete Funkfrequenzelemente, möglicherweise nach der bekannten Silicium-Germanium-Technologie hergestellt, ersetzt werden, so dass die hier beschriebenen Elemente direkt mit einem Funknetz verbunden werden können. Bei geeigneter Anwendung einer solchen Technologie können die Funkfrequenzelemente durch einen technisch versierten Fachmann in die hier beschriebenen VLSI-Strukturen integriert werden. Alternativ können auch Funkfrequenzeinheiten oder andere drahtlose Einheiten, die zum Beispiel auf Infrarot ansprechen, zusammen mit anderen hier beschriebenen Elementen auf einem Leiterplattenelement angebracht werden, um eine für drahtlose Netzwerksysteme geeignete Vermittlungsvorrichtung zu erhalten.
  • Die Pfeile zeigen den allgemeinen Datenfluss in der Schnittstelleneinheit. Von einem Ethernet-MAC (Media Access Controller, Medienzugriffssteuerung) empfangene Rahmen werden durch die EDS-UP in interne Datenpufferspeicher eingetragen. Diese Rahmen werden entweder als normale Datenrahmen oder als geleitete Rahmen (Guided Frames) zur Systemsteuerung erkannt und im EPC als Warteschlange gespeichert (1). Der EPC enthält N Protokollprozessoren, die bis zu N Rahmen (N > 1) parallel verarbeiten können. Bei einer Ausführungsart mit zehn Protokollprozessoren (12B) sind zwei der zehn Protokollprozessoren spezialisiert; einer auf die Verarbeitung geleiteter Rahmen (Generic Central Handler, GCH) und einer auf die Erstellung von Suchdaten im Steuerspeicher (Generic Tree Handler, GTH). 12A zeigt, dass der EPC auch eine Abwicklungseinheit (Dispatcher) zur Zuteilung neuer Rahmen auf freie Prozessoren enthält, ferner eine Abschlusseinheit zur Fortführung der Rahmensequenz, einen von allen zehn Prozessoren genutzten gemeinsamen Befehlsspeicher, eine Routine zur Klassifizierungshardwareunterstützung für die Ermittlung der Rahmenklassifizierung und einen Coprozessor zur Ermittlung der Anfangsbefehlsadresse des Rahmens, Schnittstellen für Eingangs- und Ausgangsdatenspeicher zur Steuerung der Lese- und Schreiboperationen von Rahmenpufferspeichern, eine Steuerspeicherzugriffssteuerung (Control Memory Arbiter) zur gemeinsamen Nutzung des Steuerspeichers durch die zehn Prozessoren, eine Websteuereinheit, einen Zuteiler (arbiter) und eine Schnittstelle zur Fehlersuche beim Zugriff auf Datenstrukturen der internen Schnittstelleneinheit sowie weitere Hardwareeinheiten.
  • Geleitete Rahmen werden durch die Abwicklungseinheit zum GCH-Prozessor gesendet, sobald dieser frei wird. Dort werden Operationen ausgeführt, die im geleiteten Rahmen codiert sind, zum Beispiel Registerschreiboperationen, Zählerleseoperationen, Konfigurationsänderungen des Ethernet-MAC und so weiter. Änderungen der Suchtabelle, zum Beispiel das Eingeben von MAC- oder IP-Einträgen, werden zum Suchdatenprozessor weitergegeben, um Steuerspeicheroperationen auszuführen, zum Beispiel Speicherlese- und -schreiboperationen. Einige Befehle, zum Beispiel für MIB- Zählerleseoperationen, erfordern das Erstellen und Weiterleiten eines Antwortrahmens zum passenden Anschluss in der entsprechenden Schnittstelleneinheit. In manchen Fällen ist der geleitete Rahmen für die Ausgangsseite der Schnittstelleneinheit codiert. Diese Rahmen werden zur Ausgangsseite der abgefragten Schnittstelleneinheit weitergeleitet, welche dann die codierten Operationen ausführt und einen passenden Antwortrahmen erstellt.
  • Datenrahmen werden zur Ausführung von Rahmensuchoperationen dem nächsten freien Protokollprozessor zugeteilt. Rahmendaten werden zusammen mit den Ergebnissen der Routine zur Klassifizierungshardwareunterstützung (CHA) zum Protokollprozessor geschickt. Die CHA unterscheidet nach IP oder IPX. Die Ergebnisse sind dann bestimmend für den Baumsuchalgorithmus und die allgemeine Anfangsbefehlsadresse (Common Instruction Address, CIA). Zu den unterstützten Baumsuchalgorithmen gehören Suchbäume mit festen Übereinstimmungen (Muster mit feststehender Größe, deren Übereinstimmung genau sein muss, zum Beispiel L2-Ethernet-MAC-Tabellen), Suchbäume für längste Präfixübereinstimmung (Muster mit variabler Länge, bei denen nach Übereinstimmungen mit variabler Länge gesucht wird, zum Beispiel IP-Teilnetz-Weiterleitung) und softwaregesteuerte Bäume (bei denen zwei Muster einen Bereich oder eine Bitmaskengruppe definieren, wie es für Filterregeln gebräuchlich ist).
  • Die Suche wird mit Hilfe des TSE-Koprozessors (Tree Search Engine, Baumsuchroutine) durchgeführt, der Bestandteil jedes Protokollprozessors ist. Der TSE-Koprozessor führt die Zugriffe auf den Steuerspeicher aus, sodass der Protokollprozessor seine Arbeit fortsetzen kann. Im Steuerspeicher sind alle Tabellen, Zähler und andere für den Picocode benötigte Daten gespeichert. Die Steuerspeicheroperationen werden durch die Steuerspeicherzugriffssteuerung verwaltet, der die Speicherzugriffe zwischen den zehn Prozessorkomplexen regelt.
  • Die Rahmendaten werden durch den Datenspeicher-Koprozessor abgerufen. Der Datenspeicher-Koprozessor enthält einen primären Datenpuffer (der bis zu acht 16-Byte-Segmente der Rahmendaten aufnimmt), einen Arbeitsdatenpuffer (der ebenfalls bis zu acht 16-Byte-Segmente der Rahmendaten aufnimmt) und einige Steuerregister für Datenspeicheroperationen. Sobald eine Übereinstimmung gefunden wurde, kann der Eingangsrahmen verändert werden, indem beispielsweise ein VLAN-Datenvorsatz eingefügt oder überschrieben wird. Diese Veränderung wird nicht durch den Prozessorkomplex der Schnittstelleneinheit erledigt, sondern es werden Hardwaremarkierungen angebracht und die Veränderungen durch eine andere Hardware in Form der Eingangsschnittstelle der Vermittlung durchgeführt. Andere Veränderungen des Rahmens können durch den Picocode und den Datenspeicher-Koprozessor durchgeführt werden, indem der im Eingangsdatenspeicher gespeicherte Rahmeninhalt modifiziert wird.
  • Außerdem werden noch Daten erfasst, um Vermittlungs-Datenvorsätze und Rahmen-Datenvorsätze zu erzeugen, bevor die Rahmen zum Koppelnetz gesendet werden. Als Steuerdaten dienen Vermittlungsdaten, zum Beispiel über das Ziel-Leiterplattenelement des Rahmens, sowie Daten für die Ausgangsschnittstelle, um die Suche nach den Zielanschlüssen des Rahmens, sowie Multicast- oder Unicast-Operationen (unidirektionale Übertragung) und Änderungen des Ausgangsrahmens zu beschleunigen.
  • Wenn das erledigt ist, erzeugt der Warteschlangen-Koprozessor die für das Speichern des Rahmens in den Warteschlangen im Koppelnetz erforderlichen Formate und sendet diese zur Abschlusseinheit. Die Abschlusseinheit sorgt für die Einhaltung der Rahmenreihenfolge von den zehn Protokollprozessoren bis zu den Warteschlangen des Koppelnetzes. Rahmen aus den Warteschlangen des Koppelnetzes werden in 64-Byte-Zellen segmentiert, in die Rahmen-Datenvorsatzbytes und Vermittlungs-Datenvorsatzbytes eingefügt werden, wenn die Rahmen zur PRIZMA-E-Vermittlung übertragen werden.
  • Vom Koppelnetz übertragene Rahmen werden durch einen Ausgangs-EDS (34) in Ausgangsdatenspeicher-Puffern (Egress Data Store, Egress DS) gespeichert und in die Warteschlange des EPC (integrierter Prozessorkomplex) eingegeben. Einen Teil des Rahmens sendet die Abwicklungseinheit an einen freien Protokollprozessor, um die Rahmensuche durchzuführen. Rahmendaten werden zusammen mit Daten von der Klassifizierungshardwareunterstützung dem Protokollprozessor zugeführt. Die Klassifizierungshardwareunterstützung nutzt die von der Eingangs-Schnittstelleneinheit erzeugten Rahmensteuerdaten, um die Ermittlung der Codebefehl-Anfangsadresse (Code Instruction Address, CIA) zu unterstützen.
  • Die Ausgangsbaumsuche unterstützt dieselben Algorithmen, die für die Eingangssuche unterstützt werden. Die Suche erfolgt mit Hilfe des TSE-Koprozessors, sodass der Protokollprozessor seine Arbeit fortsetzen kann. Alle Steuerspeicheroperationen werden durch die Steuerspeicherzugriffssteuerung verwaltet, welcher die Speicherzugriffe der zehn Prozessorkomplexe regelt.
  • Die Ausgangsrahmendaten werden durch den Datenspeicher-Koprozessor abgerufen. Der Datenspeicher-Koprozessor enthält einen primären Datenpuffer (der bis zu acht 16-Byte-Segmente Rahmendaten aufnimmt), einen Arbeitsdatenpuffer (der ebenfalls bis zu acht 16-Byte-Segmente Rahmendaten aufnimmt) und Steuerregister für Datenspeicheroperationen. Das Ergebnis einer erfolgreichen Suche besteht aus Weiterleitungsdaten und in manchen Fällen aus Rahmenänderungsdaten. Zu Rahmenänderungen können das Löschen des VLAN-Datenvorsatzes, die Verlängerung (IPX) oder Verkürzung der Aufenthaltsdauer, die Neuberechnung der Prüfsummen der IP-Datenvorsätze, das Überschreiben oder Einfügen von Ethernetrahmen-CRC und das Überschreiben oder Einfügen von MAC-DA/SA gehören. Die Prüfsummen der IP-Datenvorsätze werden durch den Prüfsummen-Koprozessor ermittelt. Änderungen werden nicht durch den Prozessorkomplex der Schnittstelleneinheit durchgeführt, sondern es werden nur Hardwaremarkierungen erzeugt und die Änderungen selbst durch eine PMM-Ausgangshardware durchgeführt. Nachdem das geschehen ist, werden mit Hilfe des Warteschlangen-Koprozessors die erforderlichen Formate erzeugt, um die Rahmen in den EDS-Ausgangswarteschlangen zu speichern und zur Abschlusseinheit zu senden. Die Abschlusseinheit sorgt dafür, dass die Reihenfolge der Rahmen von den zehn Protokollprozessoren bis zu den EDS-Ausgangswarteschlangen beibehalten wird, von wo sie zu den Ausgangs-Ethernet-MACs 36 gelangen.
  • Die fertigen Rahmen werden zum Schluss durch eine PMM-Ausgangshardware zu den Ethernet-MACs gesendet und verlassen dann die Ethernetanschlüsse.
  • Ein interner Bus, der auch als das Web bezeichnet wird, ermöglicht den Zugriff auf interne Register, Zähler und Speicher. Das Web beinhaltet auch eine interne Schnittstelle, welche zum Zwecke der Fehlersuche und -auswertung die Befehlsschritte und die Unterbrechungen steuert.
  • Der Suchmaschinen-Koprozessor kann Speicherbereiche prüfen, unzulässige Speicherzugriffe melden und führt Baumsuchbefehle aus (zum Beispiel Speicher Lesen, Schreiben oder Lesen-Einfügen-Schreiben), die parallel zur Arbeit der Protokollprozessoren abgewickelt werden.
  • Der allgemeine Befehlsspeicher besteht aus einem RAM 1024 × 128 und zwei Gruppen eines doppelten RAM 512 × 128. Jede Gruppe der doppelten RAMs liefert zwei Exemplare desselben Picocodes, sodass die Prozessoren innerhalb desselben Adressbereichs unabhängig voneinander auf Befehle zugreifen können. Jedes 128-Bit-Wort enthält vier 32-Bit-Befehle, sodass insgesamt ein Vorrat von 8192 Befehlen zur Verfügung steht.
  • Die Abwicklungssteuerung steuert die Weiterleitung von Rahmen zu den zehn Protokollprozessoren und verwaltet die Unterbrechungen und die Zeitgeber.
  • Die Abschlusseinheit sorgt für die Einhaltung der Reihenfolge der Rahmen vom Prozessorkomplex bis zum Koppelnetz und den Zielausgangswarteschlangen. Ein umfangreicher Befehlssatz beinhaltet bedingte Ausführung, Packen (für Eingabe- Hashschlüssel), bedingte Verzweigung, signierte und unsignierte Operationen, Zählung führender Nullen und mehr.
  • Die Klassifizierungs-Hardwareunterstützungsroutine analysiert den L2- und L3-Protokolldatenvorsatz jedes Rahmens und liefert diese Information zusammen mit den Rahmen, während sie den Protokollprozessoren zugestellt werden.
  • Die Steuerspeicherzugriffssteuerung steuert den Zugriff der Prozessoren sowohl auf das Internet als auch auf externe Speicher.
  • Als externe Steuerspeicher sind 5 bis 7 DRAM-Teilsysteme möglich, die jeweils ein Paar von 2M × 16Bit × 4-Gruppen oder ein Paar von 4M × 16Bit × 4-Gruppen DDR-DRAMs unterstützen. Die DDR-DRAM-Schnittstelle läuft mit einer Taktrate von 133 MHz und einer Datenabtastrate von 266 MHz und unterstützt eine konfigurierbare CAS-Latenz und Signalstärke. Zusätzlich kann ein ZBT-SRAM mit einer Taktfrequenz von 133 MHz und einer Konfiguration von 128K × 36, 2 × 256K × 18 oder 2 × 512K × 18 hinzugefügt werden.
  • Ausgangsrahmen können entweder in einem externen Datenpuffer (z.B. DS0) oder zwei externen Datenpuffern (DS0 und DS1) gespeichert werden. Jeder Puffer kann aus einem Paar von 2M × 16Bit × 4-Gruppen DDR-DRAM (die bis zu 256K 64-Byte-Rahmen aufnehmen) oder aus einem Paar von 4M × 16Bit × 4-Gruppen DDR-DRAM bestehen (die bis zu 512K 64-Byte-Rahmen aufnehmen). Man kann sich mit dem einzelnen externen Datenpuffer (z.B. DS0) für eine Rate von 2,28 MBit/s zufrieden geben oder zusätzlich den zweiten Puffer (z.B. DS1) verwenden, um die L2- und L3-Vermittlung mit 4,57 MBit/s zu unterstützen. Durch das Hinzufügen des zweiten Puffers nimmt zwar die Leistung, nicht aber die Rahmenkapazität zu. Die Schnittstelle des externen Datenpuffers läuft mit einer Taktrate von 133 MHz und einer Datenabtastrate von 266 MHz und unterstützt die konfigurierbare CAS-Latenz und Signalstärke.
  • Der interne Steuerspeicher beinhaltet zwei RAMs zu 512 × 128 Bit, zwei RAMs zu 1024 × 36 Bit und einen RAM zu 1024 × 64 Bit.
  • Der interne Datenspeicher gestattet die Pufferung von bis zu 2048 64-Byte-Rahmen in Eingangsrichtung (Aufwärts, UP).
  • Als Änderungen an fest vorgegebenen Rahmen kommen die Einfügung von VLAN-Markierungen in Eingangsrichtung und das Löschen von VLAN-Markierungen, Verlängerung/Verkürzung(IP, IPx) der Aufenthaltsdauer, Ethernet-CRC-Überschreiben/Einfügen und MAC-DA/SA-Überschreiben/Einfügen in Ausgangsrichtung (Abwärts, DOWN) in Frage.
  • Durch Spiegelung der Anschlüsse können ein Empfangsanschluss und ein Sendeanschluss ohne Inanspruchnahme von Ressourcen des Protokollprozessors in einen Beobachtungsanschluss des Systems kopiert werden. Gespiegelte Anschlüsse der Schnittstelleneinheit sind für das Hinzufügen von Rahmen- und Vermittlungssteuerdaten konfiguriert. Über einen separaten Datenpfad können Rahmen direkt in einer Warteschlange für die Eingangs-Vermittlungsschnittstelle gespeichert werden.
  • Die Schnittstelleneinheit vereint in sich vier Ethernet-Makros. Jedes Makro kann einzeln so konfiguriert werden, dass es entweder im 1-Gigabit-Modus oder im 10/100-Fast-Ethernet-Modus arbeitet. Jeder Ethernet-Modus unterstützt für jedes der vier Makros bis zu 10 10/100-MBit/s MACs oder einen 1000 MBit/s MAC.
  • 1A zeigt ein Blockschaltbild für den MAC-Kern. Jedes Makro beinhaltet für den Ethernet-Kern drei verschiedene Ausführungen; den 10/100-MBit/s MAC-Multiportkern (Fenet), den 1000-MBit/s-MAC-Kern (Genet) und den 1000-MBit/s-Kern der Bitübertragungs-Codierungsteilschicht (Physical Coding Sublayer – PCS).
  • Der 10/100-Multiport-Ethernet-MAC-Kern weist die folgenden Merkmale auf:
    Unterstützung von 10 seriellen medienunabhängigen Schnittstellen zur Bitübertragungsschicht (physical layer).
    Verarbeitung von zehn Anschlüssen mit Mediengeschwindigkeiten von 10 MBit/s oder 100 MBit/s in beliebiger Kombination.
    Versorgung aller zehn Anschlüsse mit einem einzigen MAC über eine Zeitmultiplex-Schnittstelle.
    Unterstützung von Voll-/Halbduplexoperationen an allen Anschlüssen mit Mediengeschwindigkeit.
    Unterstützung der binären exponentiellen Verzichtszeit nach IEEE 802.3
  • Der 1000-MBit/s-Ethernet-MAC-Kern weist die folgenden Merkmale auf:
    Unterstützung der unabhängigen Gigabit-Medienschnittstelle (Gigabit Medium Independent Interface, GMII) zur PCS-Bitübertragungschicht oder direkt zur Bitübertragungschicht.
    Unterstützung einer kompletten TBI(8b/10b)-Lösung mittels des PCS-Kerns.
    Unterstützung von Vollduplex-Punkt-zu-Punkt-Verbindungen mit Mediengeschwindigkeit.
    Unterstützung mit dem IBM PCS-Kern die Anzeige der gültigen Bytes.
  • Der 1000-MBit/s-Kern der Bitübertragungs-Codierungsteilschicht (PCS) weist die folgenden Merkmale auf:
    Durchführen der 7b/10b-Codierung und Decodierung.
    Unterstützen der PMA(10-Bit)-Dienstschnittstelle nach IEEE 802.3z, die zu jedem PMA gemäß IEEE 802.3z passt.
    Synchronisieren der vom PMA empfangenen (zweiphasigen) Daten mit dem MAC empfangenen (einphasigen) Takt.
    Unterstützen der Auto-Navigation einschließlich zwei Folgeseiten.
    Umwandeln eines in den Standards definierten Systems mit zweiphasigem Takt in einen einphasigen Takt.
    Liefern eines Signals zum MAC, um diejenigen Taktzyklen anzuzeigen, die neue Daten enthalten.
    Prüfen der empfangenen Codegruppen (10 Bits) auf COMMAs und Herstellung der Wortsynchronisation.
    Berechnen und Prüfen der Laufzeitunterschiede nach 8b/10b.
  • Die 2A bis 2D zeigen verschiedene Konfigurationen für den Chip der Schnittstelleneinheit. Diese Konfigurationen werden durch DASL und Verbindung mit einem Koppelnetz ermöglicht. Jede DASL enthält zwei Kanäle, einen Sendekanal und einen Empfangskanal.
  • 2A zeigt eine Rückkopplungskonfiguration für eine einzelne Schnittstelleneinheit. Bei dieser Konfiguration ist der Sendekanal zum Empfangskanal rückgekoppelt.
  • 2B zeigt die Konfiguration, bei der zwei Chips mit Schnittstelleneinheiten miteinander verbunden sind. Jeder Chip einer Schnittstelleneinheit ist mit mindestens zwei DASLs versehen. Bei dieser Konfiguration sind die Kanäle einer DASL auf einem Chip funktionell mit den Kanälen einer passenden DASL auf dem anderen Chip verbunden. Die jeweils andere DASL auf jedem Chip ist rückgekoppelt.
  • 2C zeigt die Konfiguration, bei der mehrere Schnittstelleneinheiten mit einem Koppelnetz verbunden sind. Doppelpfeile zeigen die bidirektionale Übertragung an.
  • 2D zeigt die Konfiguration, bei der eine Hauptvermittlung und eine Reservevermittlung mit mehreren Schnittstelleneinheiten verbunden sind. Wenn die Hauptvermittlung ausfällt, springt die Reservevermittlung ein.
  • Ein Steuerpunkt (Control Point, CP) enthält einen Systemprozessor, der mit jeder der Konfigurationen verbunden ist. Der Systemprozessor am CP besorgt für den Chip unter anderem die Initialisierung und Konfigurierung. Der CP kann sich an einer von drei Stellen befinden: auf dem Chip der Schnittstelleneinheit; auf dem Leiterplattenelement, auf welchem der Chip installiert ist; oder außerhalb des Leiterplattenelements. Wenn sich der CP außerhalb des Leiterplattenelements befindet, kann er fern von diesem, d.h. an einer beliebigen Stelle, angeordnet sein und über das Netzwerk erreicht werden, an das die Schnittstelleneinheit und der CP angeschlossen sind. Die Elemente eines CP sind in 17 dargestellt und beinhalten Speicherelemente (Cache-Speicher, Flash-Speicher und SDRAM), eine Speichersteuerung, einen PCI-Bus und Steckplätze für eine Rückwandplatine und für L1-Netzwerkmedien.
  • 18 zeigt den Einchip-Netzwerkprozessor und die durch den EDS-UP, die Datenverkehrssteuerung (MGT) und den EDS-DOWN (DN) ausgeführten Funktionen. Die U-förmigen Symbole stellen Warteschlangen dar, und die Steuerblöcke (CB), die den Inhalt in den Warteschlangen verfolgen, sind durch Rechtecke dargestellt.
  • Im Folgenden werden die Elemente, ihre Funktionen und Wirkungen beschrieben.
    PMM: Dieser Teil des Netzwerkprozessors enthält die MACs (FEnet, POS, GEnet) und ist an die externen PHY-Einheiten angeschlossen.
    UP-PMM: Diese Logik übernimmt Bytes von den PHYs, formatiert diese als FISH (16 Bytes) und leitet sie zum UP-EDS weiter. Im PMM gibt es 4 DMUs, die mit 1 GEnet- oder 10 FEnet-Einheiten zusammenarbeiten können.
    UP-EDS: Diese Logik übernimmt die FISH-Bytes vom UP-PMM und speichert diese im UP-Datenspeicher (interner RAM). Sie kann 40 Rahmen gleichzeitig verarbeiten und stellt den Rahmen nach dem Empfangen der entsprechenden Anzahl von Bytes in die Warteschlange des EPC ein. Wenn der EPC den Rahmen fertig verarbeitet hat, speichert der UP-EDS den Rahmen in der Warteschlange des zuständigen Zielanschlusses und beginnt mit dem Senden des Rahmen zum UP-SDM. Der UP-EDS ist für die Verwaltung aller Puffer und Rahmen zuständig und überführt diese wieder in das Reservoir der freien Puffer/Rahmen zurück, wenn die Übertragung zum UP-SDM abgeschlossen ist.
    EPC: Diese Logik enthält die Picoprozessoren und kann einen integrierten Leistungs-Prozessorkomplex (PowerPC) enthalten. Die Logik kann den Rahmen-Datenvorsatz lesen und entscheiden, was mit dem Rahmen geschehen soll (Weiterleiten, Verändern, Filtern, usw.). Der EPC kann auf mehrere Suchtabellen und Hardwareunterstützung zugreifen, damit die Picoprozessoren die hohen Bandbreitenanforderungen des Netzwerkprozessors erfüllen können.
    UP-SDM: Diese Logik übernimmt die Rahmen und formatiert sie zu PRIZMA-Zellen zur Übertragung zum Koppelnetz. Diese Logik kann auch den VLAN-Datenvorsatz in den Rahmen einfügen.
    UP-SIF: Diese Logik enthält die UP-DASL-Makros und ist mit den externen E/A-Anschlüssen der Vermittlung verbunden.
    DN-SIF: Diese Logik enthält die DN-DASL-Makros und empfängt die PRIZMA-Zellen von den externen E/A-Anschlüssen.
    DN-SDM: Diese Logik empfängt die PRIZMA-Zellen und beginnt mit deren Verarbeitung, um die Wiederherstellung der Rahmen vorzubereiten.
    DN-EDS: Diese Logik übernimmt jede Zelle und ordnet sie wieder als Rahmen an. Die Zelle wird im externen Datenspeicher gespeichert, und die Rahmen werden durch miteinander verbundene Puffer erzeugt. Wenn der gesamte Rahmen empfangen wurde, wird dieser in der Warteschlange des EPC gespeichert. Wenn der Rahmen im EPC fertig verarbeitet worden ist, wird er in der Warteschlange der Ablaufsteuerung (falls vorhanden) oder in den Warteschlangen des Zielanschlusses gespeichert. Dann sendet der DN-EDS die Rahmen zum entsprechenden Anschluss, indem er den Rahmen, alle Änderungsinformationen und Steuerinformationen zum DN-PMM sendet.
    DN-PMM: Übernimmt die Informationen vom DN-EDS und formatiert den Rahmen als Ethernet, POS, usw. und sendet den Rahmen zur externen PHY-Einheit.
    Speichermanager: Diese Logik dient der Verbindung des Netzwerkprozessors mit externen Einheiten (PHY, LED, FLASH, usw.), benötigt dafür jedoch nur 3 E/A-Anschlüsse. Der Netzwerkprozessor benutzt für die Kommunikation mit dem SPM eine serielle Schnittstelle und dieser führt die erforderlichen Funktionen zur Verwaltung dieser externen Einheiten aus.
  • Aufwärts-Datenfluss
    • 1) Rahmen kommt bei PHY an
    • 2) Bytes werden durch den UP-PMM empfangen
    • 3) UP-PMM sendet FISH zum UP-EDS (FISH ist Teil eines Rahmens)
    • 4) UP-EDS speichert FISH im UP-DS
    • 5) UP-EDS sendet Datenvorsatz zum EPC
    • 6) EPC verarbeitet den Datenvorsatz und sendet Daten zur Warteschlangenspeicherung zurück zum UP-EDS
    • 7) UP-EDS empfängt nun den Rest des Rahmens vom UP-PMM
    • 8) UP-EDS sendet Daten zum UP-SDM, wenn genügend Daten bereitstehen, um sie zur Vermittlung zu senden
    • 9) UP-SDM liest Rahmendaten und formatiert diese zu PRIZMA-Zellen
    • 10) UP-SDM sendet Zellen zum UP-SIF
    • 11) UP-SIF überträgt Zellen über serielle DASL-Leitungen an PRIZMA
    • 12) UP-EDS leert Puffer/Rahmen, wenn alle Daten übernommen worden sind
  • Abwärts-Datenfluss
    • 1) DN-SIF empfängt PRIZMA-Zellen
    • 2) DN-SDM speichert Zellen und beginnt mit deren Verarbeitung für die Wiederherstellungsdaten
    • 3) DN-EDS empfängt die Zellendaten und die Wiederherstellungsdaten und verknüpft die Zelle mit einem neuen Rahmen auf der Abwärtsseite
    • 4) DN-EDS speichert die Zelle im DN-DS
    • 5) DN-EDS speichert die Zelle in der Warteschlange des EPC, wenn alle Daten empfangen worden sind
    • 6) EPC verarbeitet den Datenvorsatz und sendet Information über die Speicherung in der Warteschlange zurück zum DN-EDS
    • 7) DN-EDS stellt den Rahmen in eine Warteschlange der Ablaufsteuerung (falls vorhanden) oder in eine Warteschlange des Zielanschlusses ein
    • 8) DN-EDS verarbeitet die Warteschlangen und sendet Rahmendaten zum PCB
    • 9) DN-EDS benutzt den PCB zum „Sortieren" des Rahmens, liest die entsprechenden Daten und sendet diese zum DN-PMM
    • 10) DN-PMM formatiert die Daten (und ändert sie gegebenenfalls) und sendet den Rahmen zur externen PHY-Einheit
    • 11) DN-PMM teilt dem DN-EDS mit, wenn Puffer nicht mehr benötigt werden, damit dieser die Ressourcen wieder freigeben kann
  • Datenfluss der Rahmensteuerung
    • 1) Datenvorsatz wird vom UP-Datenspeicher oder DN-Datenspeicher zum EPC gesendet.
    • 2) EPC sucht in Suchtabellen nach Datenvorsatzinformationen und empfängt Daten zur Speicherung des Rahmens in der Warteschlange
    • 3) EPC sendet die Daten zur Speicherung in der Warteschlange wieder zum EPC zurück und speichert den Rahmen in der entsprechenden Warteschlange
    • 4) Die Zellen-Datenvorsätze und Rahmen-Datenvorsätze werden zusammen mit den Rahmendaten gesendet, um die Neuordnung und Weiterleitung des Rahmens zu unterstützen
  • Datenfluss des Steuerpunktes CP
    • 1) Der Steuerpunkt formatiert einen geleiteten Rahmen und sendet diesen zum Netzwerkprozessor
    • 2) Der Netzwerkprozessor speichert den geleiteten Rahmen in der Warteschlange des GCH-Picoprozessors
    • 3) Der GCH verarbeitet den geleiteten Rahmen und liest oder schreibt die verlangten Bereiche des Rainier-Prozessors
    • 4) Der GCH übergibt GTH alle Anforderungen zur Tabellenaktualisierung
    • 5) Der GTH aktualisiert die entsprechende Tabelle durch die Daten des geleiteten Rahmens
    • 6) Zum CP wird eine Bestätigung des geleiteten Rahmens zurückgesendet
  • Datenfluss der Netzwerkprozessorsteuerung
    • 1) Ein Picoprozessor kann einen geleiteten Rahmen erzeugen, um Daten zu einem anderen Rainier-Prozessor oder zum Steuerpunkt zu senden
    • 2) Der geleitete Rahmen wird zur Verarbeitung an die entsprechende Stelle gesendet.
  • Eine einzelne Schnittstelleneinheit bedient bis zu 40 Fast-Ethernet-Anschlüsse (2A) mit Mediengeschwindigkeit. 80 Fast-Ethernet-Anschlüsse werden unterstützt, wenn zwei Schnittstelleneinheiten nach der DASL-Technologie (Data Aligned Synchronous Link, synchrone Leitung mit Datenanpassung) unterstützt werden. Jedes DASL-Differenzialpaar überträgt 440 MBit/s Daten. Zwei Gruppen zu acht Paaren bilden eine Duplexverbindung mit 3,5 GBit/s (8 mal 440 MBit/s in jeder Richtung). 2C und 2D zeigen, dass durch Verbinden mehrerer Schnittstelleneinheiten zu einer Vermittlung, zum Beispiel zu einer IBM PRIZMA-E-Vermittlung, größere Systeme aufgebaut werden können. Die Schnittstelleneinheit liefert zwei (eine primäre und eine sekundäre) Duplex-DASL-Verbindungen mit 3,5 GBit/s, die als gemeinsamer Rückkopplungspfad für lokalen Rahmenverkehr (wenn zwei Schnittstelleneinheiten gemäß 2B direkt miteinander verbunden sind) oder als Verbindung mit einem redundanten Koppelnetz (2D, Reservevermittlungseinheit) genutzt werden können. Aus dem oben Gesagten ergibt sich, dass der einfache Netzwerkprozessor-Chip insofern skaliert werden kann, als ein Chip für ein System mit geringer (mit relativ wenigen, zum Beispiel 40 Anschlüssen) bis zu hoher Leistungsfähigkeit (mit relativ vielen, zum Beispiel 80 Anschlüssen) ausgelegt werden kann.
  • Eine Schnittstelleneinheit im System ist über einen der bis zu zehn Fast-Ethernet-Anschlüsse zu 10/100 MBit/s oder einen Ethernet-Anschluss zu 1000 MBit/s mit dem Systemprozessor verbunden. Die Ethernet-Konfiguration mit dem Systemprozessor ist auf einem EEPROM in der Schnittstelleneinheit untergebracht, der während der Initialisierung geladen wird. Der Systemprozessor tauscht mit allen Schnittstelleneinheiten in einem System (siehe 2) oder mit anderen Schnittstellen Daten mittels spezieller geleiteter Rahmen aus, die zum Beispiel als Ethernet-Rahmen gekapselt sind. Die gekapselten geleiteten Rahmen werden über die DASL-Leitung zu anderen Einheiten weitergeleitet, wodurch alle Schnittstelleneinheiten im System von einem einzigen Punkt aus gesteuert werden können.
  • Geleitete Rahmen werden zum Übertragen von Steuerdaten zwischen dem Steuerpunkt (CP) und dem integrierten Prozessorkomplex und innerhalb der Schnittstelleneinheit verwendet. Eine frühere Beschreibung von geleiteten Zellen in der US-Patentschrift 5 724 348 mit dem Titel „Efficient Hardware/Software Interface for a Data Switch", erteilt am 3. März 1998, trägt zur Klärung der obigen Sachverhalte bei.
  • Der vom CP ausgehende Datenverkehr der geleiteten Rahmen wird durch den CP in Datenpuffern in dessen lokalem Speicher gespeichert. Der Einheitentreiber des CP sendet den geleiteten Rahmen zu einer der Medienschnittstellen des Netzwerkprozessors. Die MAC-Hardware ruft den geleiteten Rahmen ab und speichert ihn in ihrem internen Datenspeicher (U_DS). Der geleitete Rahmen wird zum entsprechenden Leiterplattenelement weitergeleitet, dort verarbeitet und bei Bedarf wieder zum CP zurückgeschickt. Zwischen einem externen CP und der Schnittstelleneinheit transportierte geleitete Rahmen werden so gekapselt, dass sie mit dem Protokoll des externen Netzwerks vereinbar sind. Wenn das externe Netzwerk zum Beispiel ein Ethernet ist, werden die geleiteten Rahmen folglich als Ethernet-Rahmen gekapselt und so weiter.
  • Die Ethernet-Kapselung stellt ein Transportmittel für die Übertragung von geleiteten Rahmen zwischen dem CP und der Schnittstelleneinheit dar. Die Ethernet-MAC (Enet MAC) der Schnittstelleneinheit analysiert beim Empfang der Rahmen weder die Zieladresse (Destination Address, DA) noch die Quelladresse (Source Address, SA). Diese Analyse wird durch den EPC-Picocode vorgenommen. Der geleitete Rahmenverkehr geht davon aus, dass die Schnittstelleneinheit nicht konfiguriert worden ist und die DA und die SA durch den EPC-Picocode nicht analysiert werden können. Deshalb sind diese Rahmen von Haus aus so beschaffen, dass sie die Leitwegwahl selbst vornehmen (Self-Routing). Die Enet-MAC hingegen analysiert das Feld Ethernet-Typ, um den geleiteten Rahmenverkehr vom Datenverkehr zu unterscheiden. Der Wert dieses Feldes Ethernet-Typ des geleiteten Rahmens muss mit dem in das Register E_Type_C geladenen Wert übereinstimmen. Dieses Register wird durch den Boot-Picocode der Schnittstelleneinheit aus dem Flash-Speicher geladen.
  • Der CP speichert den geleiteten Rahmen in Datenpuffern in seinem lokalen Speicher. Der Inhalt eines 32-Bit-Registers im CP-Prozessor wird im Big-Endian-Format (Adressierung des höchstwertigen Bits) im lokalen Speicher gemäß 3 gespeichert. Nach dem Erzeugen des geleiteten Rahmens sendet der Einheitentreiber des CP einen Ethernet-Rahmen, der eine DA für den speziellen Prozessor für geleitete Zellen (Guide Cell Handler, GCH), eine der globalen MAC-Adressen für den CP oder der MAC-Adresse für die spezielle Schnittstelle entsprechende SA, ein spezielles Feld Ethernet-Typ zum Anzeigen eines geleiteten Rahmens und die Daten des geleiteten Rahmens enthält. Alle am Anschluss ankommenden Ethernet-Rahmen werden durch die MAC empfangen und analysiert. Bei Rahmen, bei denen der Wert des Feldes Ethernet-Typ dem Inhalt des Registers E_Type_C entspricht, entfernt die Enet-MAC die Felder DA, SA und Ethernet-Typ und speichert die Daten des geleiteten Rahmens im U_DS-Speicher. Die Bytes werden durch die Enet-MAC gleichzeitig zu einem 16 Byte großen Block mit der Bezeichnung FISH (Flash International Semiconductor Harddrive, internationaler Flash-Halbleiterspeicher) zusammengefasst. Diese Bytes werden im Bit-Endian-Format gespeichert, wobei das erste Byte des geleiteten Rahmens an dem Speicherplatz des höchstwertigen Bytes (Byte 0) des FISH gespeichert wird. Die folgenden Bytes werden im FISH an den folgenden Speicherplätzen (Byte 1, Byte 2, ..., Byte 15) gespeichert. Diese 16 Bytes werden dann beginnend mit dem Speicherplatz FISH 0 in einem Puffer im U_DS gespeichert. Nachfolgende FISH-Daten werden auf anschließenden FISH-Speicherplätzen im Puffer gespeichert (FISH 1, FISH 2, FISH 3, usw.). Bei Bedarf können weitere Puffer aus einem Reservoir freier Speicher genutzt werden, um den Rest des geleiteten Rahmens zu speichern.
  • Der Fluss des geleiteten Datenverkehrs in der Schnittstelleneinheit 10 ist in 4 dargestellt. Die Funktion Enet-MAC der Schnittstelleneinheit prüft die Rahmen-Datenvorsatzinformationen und ermittelt, ob es sich bei dem Rahmen um einen geleiteten Rahmen handelt. Die Enet-MAC entfernt den Rahmen-Datenvorsatz aus dem geleiteten Rahmen und puffert den restlichen Inhalt im internen U_DS-Speicher der Schnittstelleneinheit. Die Enet-MAC zeigt an, dass der Rahmen zur Verarbeitung durch den GCH in der allgemeinen Steuerwarteschlange (General Control, GC) gespeichert werden soll. Sobald das Ende des geleiteten Rahmens erreicht worden ist, speichert die Logik zum Speichern, Lesen und Steuern (Enqueue, Dequeue and Schedule, EDS) den Rahmen in der GC-Warteschlange.
  • Der auf dem Leiterplattenelement lokal im CP gespeicherte GCH-Picocode prüft die Rahmensteuerdaten (siehe 6) und ermittelt, ob der geleitete Rahmen für andere Leiterplattenelemente im System vorgesehen ist und ob der geleitete Rahmen auf der Abwärtsseite der Schnittstelleneinheit verarbeitet werden soll. Wenn der Rahmen für weitere Leiterplattenelemente neben dem lokalen Leiterplattenelement vorgesehen ist, aktualisiert der GCH-Picocode den Wert TB im Rahmensteuerblock (Frame Control Block, FCB) durch den Wert TB aus den Rahmensteuerdaten des geleiteten Rahmens und weist den EDS an den Rahmen in der Multicast-Warteschlange für den Rahmenanfang im Ziel-Leiterplattenelement (Target Blade Start of Frame, TB_SOF) zu speichern. Zur Leistungssteigerung wird der gesamte geleitete Rahmenverkehr unabhängig von der Anzahl der angegebenen Ziel-Leiterplattenelemente in der TB_SOF-Multicast-Warteschlange gespeichert.
  • Wenn der Rahmen nur für das lokal angeschlossene Leiterplattenelement vorgesehen ist, prüft der GCH-Picocode das Feld Aufwärts/Abwärts in den Rahmensteuerdaten und ermittelt, ob der geleitete Rahmen auf der Aufwärtsseite oder der Abwärtsseite der Schnittstelleneinheit ausgeführt werden soll (siehe 6). Wenn der geleitete Rahmen auf der Abwärtsseite der Schnittstelleneinheit ausgeführt werden soll, aktualisiert der GCH-Picocode den Wert TB im FCB durch den Wert TB aus den Rahmensteuerdaten des geleiteten Rahmens und weist den EDS an, den Rahmen in der Multicast-Rahmenanfangswarteschlange des Ziel-Leiterplattenelements (TB_SOF) zu speichern. Wenn die Rahmensteuerdaten anzeigen, dass der geleitete Rahmen auf der Aufwärtsseite ausgeführt werden soll, prüft der GCH-Picocode den geleiteten Rahmen und führt die Operationen der in ihm enthaltenen geleiteten Befehle aus.
  • Vor der Ausführung der geleiteten Befehle prüft der Picocode den Wert des Feldes ack/noack (Bestätigung/keine Bestätigung) der Rahmensteuerdaten. Wenn dieser Wert gleich „0"b ist, wird der geleitete Rahmen nach der Verarbeitung gelöscht. Geleitete Lesebefehle gehören nicht zu dieser Kategorie.
  • Wenn der Wert des Feldes ack/noack gleich „1"b und der Wert des Feldes early/late (früh/spät) gleich „1"b ist, erzeugt der Picocode vor der Verarbeitung eines geleiteten Befehls im geleiteten Rahmen einen geleiteten Rahmen Early_Ack (frühe Bestätigung), wobei der Wert des Feldes TB der Rahmensteuerdaten gleich dem Inhalt des geleiteten Rahmens Early_Ack und der Wert des Feldes TB der Rahmensteuerdaten gleich dem Inhalt des Registers My_TB ist. Der Picocode schickt den geleiteten Rahmen Early_Ack zurück zum CP, indem er den Wert TB im FCB des Rahmens mit dem im Feld TB des Adressregisters des LRN-Steuerpunktes (LAN_CP_Addr) enthaltenen Wert aktualisiert und den EDS anweist, den Rahmen in der Multicastwarteschlange TB_SOF zu speichern. Dann verarbeitet der Picocode die geleiteten Befehle des geleiteten Rahmens und löscht den geleiteten Rahmen. Die geleiteten Lesebefehle gehören nicht zu dieser Kategorie.
  • Wenn hingegen der Wert des Feldes ack/noack gleich „1"b und der Wert des Feldes early/late gleich „0"b ist, ändert der Picocode das Feld resp/req der Rahmensteuerdaten in „1"b und zeigt so eine Antwort des geleiteten Rahmens an, ersetzt das Feld TB durch den Inhalt des Registers My_TB und führt jeden geleiteten Befehl im geleiteten Rahmen aus. Während der Ausführung eines geleiteten Befehls aktualisiert der Picocode das Feld Abschlusscode des nächsten geleiteten Befehls mit dem Codewert Abschlussstatus für den aktuellen geleiteten Befehl.
  • Der Picocode leitet die Antwort zurück zur Quelle, indem er den Wert TB im FCB mit dem dem Ziel-Leiterplattenelement entsprechenden Wert (Registerwert LAN_CP_Addr für den CP) aktualisiert, und weist den EDS an, den Rahmen in der Multicast-Warteschlange TB_SOF zu speichern.
  • In der TB_SOF-Warteschlange befindliche Rahmen werden durch den EDS der Reihe nach weitergeleitet. Der Vermittlungsdatenübertrager (Switch Data Mover, SDM) erzeugt aus den im FCB enthaltenen Daten den Koppelnetz-Zellendatenvorsatz und den Schnittstelleneinheit-Rahmendatenvorsatz. Diese Zellen gelangen durch das Koppelnetz und kommen am Ziel-Leiterplattenelement an, wo die Zellen im D-DS-Speicher wieder zu einem Rahmen zusammengesetzt werden. Der SDM auf der Abwärtsseite erkennt den Rahmen als geleiteten Rahmen und teilt dem EDS mit, dass dieser in der GC-Warteschlange gespeichert werden soll.
  • Auf Veranlassung durch die GC-Warteschlange und die GT-Warteschlange greift der Picocode auf die geleiteten Rahmen zu und analysiert diese. Alle auf der Abwärtsseite ankommenden geleiteten Rahmen werden zuerst in der GC-Warteschlange gespeichert. Der Wert gth/gch der Rahmensteuerdaten für diese Rahmen wird durch den GCH-Picocode geprüft. Wenn der Wert gth/gch gleich „0"b ist, wird der geleitete Rahmen in der GT-Warteschlange gespeichert. Ansonsten prüft der GCH-Picocode das Feld resp/req der Rahmensteuerdaten und ermittelt, ob der geleitete Rahmen bereits verarbeitet worden ist. Wenn der Wert resp/req gleich „1"b ist, ist der geleitete Rahmen bereits verarbeitet worden und wird zum CP weitergeleitet. Die Werte der den CP-Anschlüssen entsprechenden Zielanschlüsse werden durch den EPC-Picocode unverändert gelassen. Rahmen aus den Warteschlangen dieser Zielanschlüsse werden von der Schnittstelleneinheit zum CP zurück übertragen.
  • Wenn der Wert des Feldes resp/req gleich „0"b ist, kann es sich um ein bezüglich des CP lokales oder fernes Leiterplattenelement handeln. Diese Unterscheidung wird durch den Vergleich zwischen dem Wert des Feldes TB des Registers LAN_CP_Addr mit dem Inhalt des Registers My Target Blade (My-TB) getroffen. Wenn die beiden Werte übereinstimmen, handelt es sich um ein bezüglich des CP lokales Leiterplattenelement, ansonsten um ein vom CP fernes Leiterplattenelement. In beiden Fällen prüft der Picocode den Wert up/down der Rahmensteuerdaten. Wenn der Wert up/down gleich „1"b ist, wird der Rahmen in der Warteschlange Wrap TP gespeichert, um ihn von dort zum U_DS weiterzuleiten und auf der Aufwärtsseite durch den GCH zu verarbeiten. Ansonsten führt der Picocode (GCH oder Gth) die Operationen aus, die durch die im geleiteten Rahmen enthaltenen geleiteten Befehle angezeigt werden. Vor der Ausführung der geleiteten Befehle prüft der Picocode den Wert des Feldes ack/noack der Rahmensteuerdaten. Wenn der Wert gleich „0"b ist, wird der geleitete Rahmen nach der Verarbeitung gelöscht. Die geleiteten Lesebefehle gehören nicht zu dieser, Kategorie.
  • Wenn der Wert des Feldes ack/noack gleich „1"b und der Wert des Feldes early/late gleich „1"b ist, erzeugt der Picocode vor der Ausführung eines der geleiteten Befehle im geleiteten Rahmen einen geleiteten Rahmen Early Ack, wobei der Wert des Feldes TB der Rahmensteuerdaten gleich dem Inhalt des Registers My_TB ist. Wenn das Leiterplattenelement vom CP fern ist, leitet der Picocode den geleiteten Rahmen Early Ack zum Rückkopplungsanschluss. Ansonsten ist es ein bezüglich des CP lokales Leiterplattenelement, und der Rahmen wird zu der dem CP entsprechenden Anschlusswarteschlange geleitet. Der Picocode führt die geleiteten Befehle aus, während entweder der Rückkopplungsanschluss den geleiteten Rahmen Early Ack vom D_DS zum U_DS transportiert und den Rahmen in der GC-Warteschlange auf der Aufwärtsseite speichert oder der Rahmen von der Anschlusswarteschlange zurück zum CP übertragen wird. Bei den wieder zum U_DS zurückgeleiteten Rahmen erkennt der GCH-Picocode wieder diesen Rahmen, wobei jedoch der Wert des Feldes resp/req gleich „1"b ist. Der GCH-Picocode leitet den Rahmen wieder zurück zum CP, indem er das Feld TB im FCB durch den im Feld TB des Registers LAN_CP_Addr enthaltenen Wert aktualisiert und den EDS anweist, den Rahmen in der Multicast-Warteschlange TB_SOF zu speichern. In der Warteschlange TB_SOF gespeicherte Rahmen werden der Reihe nach zum EDS geleitet. Der SDM erzeugt aus den im FCB enthaltenen Daten den PRIZMA-Zellen-Datenvorsatz und den Rahmen-Datenvorsatz der Schnittstelleneinheit. Die Zellen dieses Rahmens gelangen durch die PRIZMA-Einheit und werden im lokalen Leiterplattenelement des CP wieder zu einem Rahmen zusammengesetzt. Der SDM auf der Abwärtsseite erkennt den Rahmen als geleiteten Rahmen und weist den EDS an, den Rahmen in der GC-Warteschlange zu speichern. Zu dem Zeitpunkt, da der GCH-Picocode den Rahmen analysiert, ist der Wert des Feldes resp/req gleich „1"b. Das bedeutet, dass dieses Leiterplattenelement lokal mit dem CP verbunden ist und der geleitete Rahmen zu der Anschlusswarteschlange geleitet wird, die zu dem CP gehört. Die Rahmen aus dieser Warteschlange werden von der Schnittstelleneinheit wieder zurück zum CP übertragen.
  • Wenn hingegen der Wert des Feldes ack/noack gleich „1"b und der Wert des Feldes early/late gleich „0"b ist, ändert der Picocode den Wert des Feldes resp/req in „1"b, um eine Antwort auf den geleiteten Rahmen anzuzeigen, und ersetzt den Wert des Feldes TB durch den Inhalt des Registers My_TB und führt dann jeden geleiteten Befehl im geleiteten Rahmen aus. Während der Ausführung eines geleiteten Befehls aktualisiert der Picocode das Feld Abschlusscode des nächsten geleiteten Befehls durch den Wert des Abschlussstatuscodes für den aktuellen geleiteten Befehl. Wenn das Leiterplattenelement fern vom CP ist, leitet der Picocode den geleiteten Rahmen zum Rückkopplungsanschluss. Andernfalls handelt es sich bezüglich des CP um ein lokales Leiterplattenelement, und der Rahmen wird zu der dem CP entsprechenden Anschlusswarteschlange geleitet. Entweder überträgt der Rückkopplungsanschluss den geleiteten Rahmen vom D_DS zum U_DS und speichert den Rahmen in der GC-Warteschlange an der Aufwärtsseite oder der Rahmen wird von der Anschlusswarteschlange zurück zum CP übertragen. Bei den zum U_DS zurück übertragenen Rahmen erkennt der GCH-Picocode wiederum diesen Rahmen, wobei jedoch der Wert des Feldes resp/req gleich „1"b ist. Der GCH-Picocode leitet den Rahmen wieder zurück zum CP, indem er das Feld TB im FCB durch den im Feld TB des Registers LAN_CP_Addr enthaltenen Wert aktualisiert und den EDS anweist, den Rahmen in der Multicast-Warteschlange TB_SOF zu speichern. In der Warteschlange TB_SOF gespeicherte Rahmen werden durch den EDS der Reihe nach weitergeleitet. Der SDM erzeugt aus den im FCB enthaltenen Daten den PRIZMA-Zellendatenvorsatz und den Rahmen-Datenvorsatz der Schnittstelleneinheit. Zellen dieses Rahmens gelangen durch die PRIZMA-Einheit und werden auf der Abwärtsseite des lokalen Leiterplattenelements des CP wieder zu einem Rahmen zusammengesetzt. Der SDM der Abwärtsseite erkennt den Rahmen als geleiteten Rahmen und weist den EDS, den Rahmen in der GC-Warteschlange zu speichern. Zu dem Zeitpunkt, da der GCH-Picocode den Rahmen aus dem D_DS analysiert, ist der Wert des Feldes resp/req gleich „1"b. Das bedeutet, dass dieses Leiterplattenelement lokal mit dem CP verbunden ist und der geleitete Rahmen zu der Anschlusswarteschlange geleitet wird, die dem CP entspricht. Rahmen aus dieser Warteschlange werden von der Schnittstelleneinheit wieder zurück zum CP übertragen.
  • Wenn der GCH-Picocode aus irgendeinem Grunde einen geleiteten Rahmen verarbeiten soll, bei dem der Wert des Feldes TB der Rahmensteuerdaten gleich „0000"h ist, geht der GCH-Picocode davon aus, dass dieser Rahmen ausschließlich zu diesem Leiterplattenelement gehen soll, und handelt entsprechend. Diese Maßnahme muss während der Initialisierung durchgeführt werden, wenn der Wert des Registers My_TB für alle Leiterplattenelementgleich „0000"h ist. Der CP initialisiert das Register My_TB des lokal angeschlossenen Leiterplattenelements durch Senden eines geleiteten Befehls Schreiben in einem geleiteten Rahmen, dessen Feld TB in den Rahmensteuerdaten einen Wert „0000"h hat.
  • Jeder der Picoprozessoren im EPC kann einen geleiteten Rahmen erzeugen. Dieser Rahmen kann ein nicht erwarteter geleiteter Rahmen oder eine andere Form eines geleiteten Rahmens sein. Intern erzeugte Rahmen dieser Art werden auf eine Weise erzeugt, die keine Bestätigung zulassen (d.h. ack/noack = „0"b). Diese Rahmen können zu einem der beiden Picoprozessoren (GCH oder GTH) innerhalb desselben EPC oder zum GCH oder FTH eines anderen Leiterplattenelements gesendet werden.
  • Nicht erwartete geleitete Rahmen können ebenfalls zum CP gesendet werden. Für denselben EPC vorgesehene geleitete Rahmen werden unter Verwendung der Datenpuffer im D_DS erzeugt. Diese Rahmen werden dann zur weiteren Verarbeitung in der GC- oder der GT-Warteschlange gespeichert. Diese Rahmen werden dann in der üblichen Weise verarbeitet und anschließend gelöscht. Für den lokal angeschlossenen CP vorgesehene nicht erwartete geleitete Rahmen werden unter Verwendung der Datenpuffer im D_DS erzeugt. Diese Rahmen werden auf eine Weise erzeugt, dass klar ist, dass sie durch den EPC verarbeitet worden sind (d.h. resp/req = „1"b und TB = My_TB). Diese Rahmen werden in der dem CP entsprechenden Anschlusswarteschlange gespeichert. Die Rahmen aus dieser Warteschlange werden wieder zurück zum CP übertragen.
  • Für ein anderes Leiterplattenelement vorgesehene geleitete Rahmen können unter Verwendung der Datenpuffer im D_DS oder im U_DS erzeugt werden. Für den CP vorgesehene nicht erwartete geleitete Rahmen werden auf eine Weise erzeugt, dass klar ist, dass die durch den EPC verarbeitet worden sind (d.h. resp/req = „1"b und TB = My_TB). Die unter Verwendung der Puffer des D_DS erzeugten Rahmen werden in der Warteschlange des Rückkopplungsanschlusses gespeichert. Diese Rahmen werden zum U_DS übertragen und in der GC-Warteschlange auf der Aufwärtsseite gespeichert. Nicht erwartete geleitete Rahmen mit einem Wert resp/req gleich „1"b werden anhand des Wertes TB im Register LAN_CP_Addr zum CP geleitet. Ansonsten leitet der GCH-Picocode diese Rahmen anhand des Wertes TB der Rahmensteuerdaten des geleiteten Rahmens weiter. Beim Empfang an einem entsprechenden Leiterplattenelement wird der Rahmen in der GC-Warteschlange auf der Abwärtsseite gespeichert. Der GCH dieses Leiterplattenelements verarbeitet den Rahmen und löscht ihn anschließend (resp/req = „0"b und gth/gch = „1") oder speichert den Rahmen in der GT-Warteschlange (resp/req = „0"b und gth/gch = „0") oder speichert den Rahmen in der dem CP entsprechenden Anschlusswarteschlange (resp/req = „1"b). Die unter Verwendung der Datenpuffer im U_DS erzeugten Rahmen werden direkt in der GC-Warteschlange auf der Aufwärtsseite gespeichert. Von hier ab werden diese Rahmen genauso verarbeitet wie die unter Verwendung der Datenpuffer des D_DSA erzeugten Rahmen und folgen demselben Weg. 5 zeigt das verallgemeinerte Format für geleitete Rahmen.
  • Das Format wird als logische Darstellung gezeigt, bei der das höchstwertige Byte links und das niedrigstwertige Byte rechts steht. Vier Bytewörter beginnen oben mit dem Wort 0 und werden nach unten zu größer.
  • Da geleitete Rahmen weitergeleitet und verarbeitet werden müssen, bevor die Schnittstelleneinheit durch den CP konfiguriert worden ist, müssen diese Rahmen ihre Weiterleitung selbst durchführen. Die normalerweise durch Suchen und Klassifizieren erhaltenen Ergebnisse sind in diesem Feld Rahmensteuerdaten des geleiteten Rahmens enthalten, sodass der Chip den FCB ohne Ausführen einer Suchoperation durch diese Daten aktualisieren kann. Die in dem geleiteten Rahmen enthaltene Information zum Ziel-Leiterplattenelement wird von der Steuerroutine für geleitete Rahmen dazu verwendet, das Feld Blattseite im FCB zu erstellen. Die Ziel-Leiterplattenelement-Daten kommen vom CP, während der GCH-Picocode die anderen Felder des FCB ausfüllt. Diese FCB-Daten werden durch den SDM zum Erstellen der Zellen- und Rahmen-Datenvorsatz verwendet. Das Format des Feldes Rahmensteuerdaten des geleiteten Rahmens ist in 6 dargestellt.
  • Im Folgenden werden die Abkürzungen für jede Bitposition in 6 erläutert:
    resp/req Wert der Anzeige Antwort und Keine Anforderung. Dieses Feld dient der Unterscheidung zwischen geleiteten Anforderungsrahmen (nicht verarbeitet) und Antwortrahmen. 0 Anforderung 1 Antwort
    ack/noack Steuerwert Bestätigung oder Keine Bestätigung. Dieses Feld dient der Prüfung, ob der GCH-Picocode den geleiteten Rahmen bestätigt (ack) oder nicht bestätigt (noack). Geleitete Rahmen, die nicht bestätigt werden sollen, enthalten keinerlei geleitete Befehle in irgendeiner Form, die eine Leseoperation bewirken. 0 Keine Bestätigung 1 Bestätigung
    early/late Steuerwert Frühe und späte Bestätigung. Dieses Feld dient der Prüfung, ob die angeforderte Bestätigung (ack/noack = „1"b) vor (früh) oder nach (spät) der Verarbeitung des geleiteten Rahmens ausgegeben wurde. Dieses Feld wird übergangen, wenn ack/noack = „0"b ist. 0 Bestätigung nach Verarbeitung des geleiteten Rahmens 1 Bestätigung vor Verarbeitung des geleiteten Rahmens
    neg/all Steuerwert Negative Bestätigung oder Alle bestätigen. Dieses Feld wird übergangen, wenn der Wert des Feldes ack/noack gleich „0"b ist, nicht aber, wenn ein geleiteter Befehl nicht vollständig ausgeführt worden ist. 0 Alle geleiteten Rahmen bestätigen, wenn ack/noack = „1"b ist. Frühe oder späte Bestätigung wird durch den Wert von early/late bestimmt. 1 Nur die geleiteten Rahmen bestätigen, die nicht vollständig ausgeführt worden sind. Diese Bestätigung erfolgt unabhängig von den Werten ack/noack und early/late und stellt natürlich eine späte Bestätigung dar.
    up/down Steuerwert Aufwärts- oder Abwärtsseite. Mit diesem Wert wird geprüft, ob der Rahmen auf der Aufwärtsseite oder auf der Abwärtsseite verarbeitet wird. Dieses Feld wird übergangen, wenn der Wert des Feldes resp/req gleich „1"b ist. Der Wert des Feldes up/down von allen geleiteten Multicast-Rahmen ist gleich „0"b. Außerdem ist der Wert des Feldes up/down von geleiteten Befehlen, die der Verwendung von Befehlen zur Unterstützung der GTH-Hardware bedürfen, gleich „0"b. 0 Verarbeitung auf der Abwärtsseite 1 Verarbeitung auf der Aufwärtsseite
    gth/gch Steuerwert GTH-Prozessor oder GCH-Prozessor. Dieser Wert leitet die geleiteten Rahmen zum richtigen Picoprozessor. 0 GCH-Picoprozessor 1 GTH-Picoprozessor
    TB Steuerwert Ziel-Leiterplattenelement. Wenn der Wert des Feldes resp/req gleich „0"b ist, enthält dieses Feld Leitwegdaten zur Nutzung durch PRIZMA. Jede Bitposition entspricht einem Ziel-Leiterplattenelement. Wenn dieser Wert gleich „0000"h ist, heißt dies, dass der geleitete Rahmen zu diesem Leiterplattenelement gehört und entsprechend verarbeitet wird. Ein Wert „1"b an einer oder mehreren Bitpositionen im Feld TB zeigt an, dass die Zelle zu dem(den) entsprechenden Ziel-Leiterplattenelement(en) geleitet wird. Wenn der Wert des Feldes resp/req gleich „1"b ist, enthält das Feld den Wert My_TB des entsprechenden Leiterplattenelements.
  • Das Wort 1 des geleiteten Rahmens enthält einen Korrelatorwert (7). Dieser wird durch die CP-Software zugewiesen und ordnet die Antworten der geleiteten Rahmen den entsprechenden Anforderungen zu. Der Korrelator enthält eine Vielzahl von Bits, zu denen jeweils eine Funktion gehört.
  • Am Anfang jedes geleiteten Befehls steht ein Feld Befehlssteuerdaten. Diese Befehlssteuerung enthält Daten zum Unterstützen der Verarbeitung eines geleiteten Rahmens durch den GCH-Picocode. Das Format dieser Daten ist in 8 dargestellt.
  • Wert Länge: Dieser Wert zeigt die Gesamtzahl der 32-Bit-Wörter an, die in den Steuerdaten (Befehlswort 0), den Adressdaten (Befehlswort 1) und in den Operanden (Befehlswörter 2+) des geleiteten Rahmens enthalten sind.
  • Wert Abschlusscode: Dieses Feld wird durch den CP initialisiert und bei der Verarbeitung der geleiteten Befehle durch den GCH-Picocode modifiziert. Der GCH-Picocode nutzt dieses Feld als Abschlussstatus für den vorangehenden geleiteten Befehl in der Befehlsliste. Da am Ende aller Listen der geleiteten Befehle der geleitete Schlussbefehl steht, ist der Abschlussstatus des letzten Befehls im Feld Abschlusscode des Schlussbefehls enthalten.
  • Typwerte der geleiteten Befehle (symbolische Bezeichnung)
    Figure 00500001
  • Figure 00510001
  • Die in dem geleiteten Rahmen enthaltenen Adressdaten kennzeichnen ein Element in der Adressstruktur des Netzwerkprozessors. Die allgemeine Form des Feldes Adressstruktur ist in 9 dargestellt.
  • Die Schnittstelleneinheit verwendet eine 32-Bit-Adressstruktur. Dieses Adressierungssystem weist jeder zugänglichen Struktur der Schnittstelleneinheit einen Adresswert zu. Diese Strukturen sind entweder im Prozessor angelegt oder gehören zu den durch den Prozessor gesteuerten Schnittstellen. Auf einige dieser Strukturen greift der integrierte Prozessorkomplex (EPC) über eine interne Schnittstelle mit der Bezeichnung Web-Schnittstelle zu. Der Zugriff auf den Rest der Strukturen erfolgt über die Schnittstellen der Speichersteuerung. Auf alle Fälle trifft die in 10 dargestellte allgemeine Form der Adressen zu.
  • Die Netzwerksteuereinheit ist auf eine Reihe größerer Chipbereiche verteilt. Jeder Bereich erhält eine eindeutige Bereichs-ID. Diese 5-Bit-Bereichs-ID entspricht den 5 höchstwertigen Bits der Adresse für die durch diesen Chipbereich beherrschten Strukturen. Die Zuordnung zwischen der codierten Bereichs-ID und dem Namen des Chipbereichs ist in 11 dargestellt. Der zweite Teil der Webadresse besteht aus den nächsten 23 höchstwertigen Bits. Dieses Adressfeld ist in einen Teil für die Strukturadresse und einen Teil für die Elementadresse unterteilt. Die Anzahl der für jedes Segment verwendeten Bits kann von Bereich zu Bereich variieren. Manche Bereiche können nur wenige große Strukturen, andere Bereiche viele kleine Strukturen enthalten. Aus diesem Grunde ist die Größe dieser Adresssegmente nicht fest vorgegeben. Der Teil für die Strukturadresse dient zur Adressierung einer Matrix innerhalb des Bereichs und der Teil für die Elementadresse für die Adressierung eines Elements innerhalb der Matrix. Der Rest der Adresse soll der Beschränkung des Datenbusses der Web-Schnittstelle auf die Breite von 32 Bit Rechnung tragen. Diese aus einem 4-Bit-Wort bestehende Adresse dient zum Auswählen von 32 Bit breiten Segmenten des adressierten Elements. Das ist erforderlich, damit Strukturelemente mit einer Breite von über 32 Bit über den Webdatenbus des Netzwerkcontrollers transportiert werden können. Der Wert „0"h der Wortadresse bezieht sich auf die 32 höchstwertigen Bits des Strukturelements, während die nachfolgenden Werte der Wortadresse den nächsten niedrigerwertigen Segmenten des Strukturelements entsprechen. Der Wortadressteil der Adresse wird für Strukturen, auf die über die Web-Schnittstelle nicht zugegriffen wird, nicht benötigt. Aus diesem Grunde verwenden der Aufwärts-Datenspeicher, die Steuerspeicher und der Abwärts-Datenspeicher alle 27 niedrigstwertigen Bits der Adresse für den Zugriff auf Strukturelemente. Eine weitere Ausnahme von diesem Format stellt die Adresse für die SPM- Schnittstelle dar. In diesem Fall werden alle 27 Bits der Adresse verwendet, wobei kein Element breiter als 32 Bit ist.
  • Der integrierte Prozessorkomplex (EPC) gewährleistet und steuert die Programmierbarkeit des Chips der Schnittstelleneinheit. Er enthält die folgenden Komponenten (siehe auch 12A):
    N Verarbeitungseinheiten GxH: Die GxHs führen gleichzeitig den in einem allgemeinen Befehlsspeicher gespeicherten Picocode aus. Jede GxH besteht aus einem Kern der Verarbeitungseinheit (Processing Unit Core, CLP), der eine dreistufige Pipeline, 16 GPRs und eine ALU enthält. Jede GxH enthält auch mehrere Koprozessoren, zum Beispiel die Baumsuchroutine.
    Befehlsspeicher: Dieser Speicher wird während der Initialisierung geladen und enthält Picocode zum Weiterleiten von Rahmen und zum Verwalten des Systems.
    Eine Abwicklungseinheit: Diese entnimmt Rahmenadressen aus den Warteschlangen der Aufwärts- und Abwärts-Abwicklungseinheiten. Nach dem Entnehmen der Adressen ruft die Abwicklungseinheit vorab einen Teil des Rahmen-Datenvorsatzes aus dem Aufwärts- oder Abwärts-Datenspeichers (DS) ab und speichert diesen in einem internen Speicher. Sobald eine GxH frei wird, schickt die Abwicklungseinheit den Rahmen-Datenvorsatze zusammen mit den passenden Steuerdaten, zum Beispiel der Codebefehlsadresse (CIA), zur GxH. Die Abwicklungseinheit verwaltet auch Zeitgeber und Unterbrechungen.
    Ein Zuteiler für den Baumsuchspeicher (Tree Search Memory, TSM): Für jede GxH stehen eine Anzahl gemeinsam genutzter interner und externer Speicherplätze zur Verfügung. Da dieser Speicher der gemeinsamen Nutzung unterliegt, steuert der Zuteiler den Zugriff auf den Speicher. Der Zugriff auf den TSM kann mittels des Picocodes direkt erfolgen, der zum Beispiel zur Speicherung von Verweildauertabellen im TSM verwendet werden kann.
    Die Abschlusseinheit (Completion Unit, CU): Die Abschlusseinheit führt zwei Funktionen aus. Erstens verbindet sie die N Verarbeitungseinheiten mit dem Aufwärts- und einem Abwärts-EDS (Speichern und Lesen der Warteschlange und Steuerung der Chipbereiche). Der EDS führt die Speicheraufgaben aus: eine Rahmenadresse wird zusammen mit entsprechenden Parametern mit der Bezeichnung FCBPage entweder in einer Sendewarteschlange, einer Löschwarteschlange oder einer Ausgabe-Warteschlange gespeichert. Zweitens sorgt die Abschlusseinheit für die Einhaltung der Reihenfolge der Rahmen. Da es vorkommen kann, dass mehrere GxHs zu ein und demselben Datenfluss gehörende Rahmen verarbeiten, muss dafür gesorgt werden, dass diese Rahmen in der richtigen Reihenfolge in der Aufwärts- oder Abwärts-Sendewarteschlange gespeichert werden. Die Abschlusseinheit verwendet eine Markierung, die nach der Verteilung des Rahmens durch die Klassifizierungshardwareunterstützung erzeugt wird.
    Klassifizierungshardwareunterstützung: Für Rahmen in Aufwärtsrichtung führt die Klassifizierungshardwareunterstützung eine Klassifizierung von allgemein bekannten Rahmenformaten durch. Die Klassifizierungsergebnisse werden während der Verteilung der Rahmen entsprechend der CIA und dem Inhalt eines oder mehrerer Register zur GxH übertragen. Für Rahmen in Abwärtsrichtung ermittelt die Klassifizierungshardwareunterstützung die CIA in Abhängigkeit vom Rahmen-Datenvorsatz. Sowohl für die Verteilung der Rahmen in Aufwärtsrichtung als auch in Abwärtsrichtung erzeugt die Klassifizierungshardwareunterstützung eine Markierung, mit deren Hilfe die Abschlusseinheit die Reihenfolge der Rahmen einhält.
    Schnittstelle und Zuteiler für Datenspeicherung in Aufwärts- und Aufwärtsrichtung: Jede GxH kann auf den Aufwärts- und den Abwärts-Datenspeicher zugreifen: der Lesezugriff erfolgt, wenn „mehr Fish-Daten" gelesen werden, und der Schreibzugriff, wenn der Inhalt des Reservoirs FishPool in den Datenspeicher zurückgeschrieben wird. Da N Verarbeitungseinheiten zur Verfügung stehen und jeweils nur eine gleichzeitig auf den Aufwärts-Datenspeicher und den Abwärts-Datenspeicher zugreifen kann, wird für jeden Datenspeicher eine Zugriffssteuerung benötigt.
    WEB-Zuteiler und WEBWatch-Schnittstelle: Der WEB-Zuteiler steuert den Zugriff aller GxHs auf das WEB. Da alle GxHs auf das WEB zugreifen können, können sie auf alle Speicher und Register in einer Schnittstelleneinheit zugreifen. Dadurch kann jede GxH alle Konfigurierungsbereiche modifizieren oder lesen. Das WEB kann als Speicherabbildung der Schnittstelleneinheit angesehen werden. Die WEBWatch-Schnittstelle vermittelt von außerhalb des Chips über 3 E/A-Anschlusskontakte des Chips den Zugriff auf das gesamte WEB.
    Fehlersuche, Unterbrechungen und Einzelschrittsteuerung: Das WEB gestattet dem GCH oder dem WEBWatch, bei Bedarf jede GxH auf dem Chip zu kontrollieren. Zum Beispiel kann das WEB vom GCH oder vom WEBWatch für Einzelschrittbefehle auf einer GxH genutzt werden.
  • Einen integrierten Universalprozessor, zum Beispiel einen PowerPC.
  • Es gibt drei Arten von GxH-Verarbeitungseinheiten (12B):
    GDH (General Data Handler, Allgemeine Datenverarbeitungseinheit). Es gibt acht GDHs. Jede GDH hat einen vollen CLP mit den fünf Koprozessoren (die im nächsten Abschnitt beschrieben werden). Die GDHs werden vor allem zum Weiterleiten von Rahmen verwendet.
    GCH (Verarbeitungseinheit für geleitete Zellen). Die GCH weist genau dieselbe Hardware die eine GDH auf. Ein geleiteter Rahmen kann jedoch nur durch die GCH verarbeitet werden. Diese kann im WEB (Register CLP_Ena) programmiert werden, wenn sie auch zur Verarbeitung von Datenrahmen in der Lage ist (in diesem Fall fungiert sie als GDH). Die GCH weist zusätzlich zur GDH noch weitere Hardware auf: Hardwareunterstützung zum Ausführen von drei Einfügungen und Löschungen. Die GCH dient zur Ausführung von Picocode für geleitete Zellen, von Picocode für die Chip- und Baumverwaltung, zum Beispiel die Verweildauertabelle, und zum Austauschen von Steuerdaten mit dem CP und/oder anderen GCHs. Wenn keine derartigen Aufgaben anstehen, führt die GCH den Picocode für die Weiterleitung von Rahmen aus, sodass sie sich genauso wie eine. GDH verhält.
    GTH (General Tree Handler, Allgemeine Baumverarbeitungseinheit). Die GTH verfügt über zusätzliche Hardwareunterstützung zum Ausführen von drei Einfügungen, drei Löschungen und Warteschlangensteuerung. Die GTH verarbeitet Datenrahmen, wenn sich in der GPQ keine Rahmen (welche Befehle zur Baumverwaltung enthalten) befinden.
    GPH (General PowerPC Handler, Allgemeine PowerPC-Verarbeitungseinheit). Die GPH verfügt im Vergleich zur GDH und zur GTH über zusätzliche Hardware. Die GPH ist über eine Mailboxschnittstelle (i/f) mit dem Universalprozessor verbunden.
  • Die Anzahl der GxHs (zehn) ist von Fall zu Fall zu ermitteln. Aus der Leistungsprüfung ergibt sich die Anzahl der wirklich benötigten GxHs. Die Architektur und die Struktur können im Prinzip unbegrenzt durch GxHs erweitert werden, wobei die Grenzen lediglich durch die zur Verfügung stehende Chip-Fläche gesetzt sind (weil außerdem auch der Zuteiler und der Befehlsspeicher vergrößert werden müssen).
  • Jede GxH ist wie in 12C dargestellt strukturiert. Zusätzlich zum CLP mit Universalregistern (General Purpose Register, GPR) und der Arithmetischen Logikeinheit (Arithmetic Logic Unit, ALU) enthält jede GxH die folgenden fünf Prozessoren:
    (DS) Koprozessor-Schnittstelle. Diese verbindet die Abwicklungseinheit und die Teilbereiche auf dem Chip miteinander, um den Schreib- und Lesezugriff auf die Aufwärts- und Abwärts-Datenspeicher zu ermöglichen. Die DS-Schnittstelle enthält das so genannte FishPool-Reservoir.
    Der Koprozessor für die Baumsuchroutine (Tree Search Engine, TSE). Der TSE-Koprozessor sucht in den Bäumen und stellt eine Verbindung zum Baumsuchspeicher (Tree Search Memory, TSM) her.
    Warteschlangen-Koprozessor. Dieser ist mit der Schnittstelle der Abschlusseinheit verbunden und enthält die FCBPage. Dieser Koprozessor enthält ein 256-Bit-Register mit zusätzlicher Hardwareunterstützung, derer sich der Picocode bei der Erstellung der FCBPage bedienen muss, welche die Warteschlangenparameter enthält. Nach der Erstellung der FCBPage kann der Picoprozessor einen Speicherbefehl für die Warteschlange ausführen, sodass dieser Koprozessor die FCBPage zur Abschlusseinheit weiterleitet.
    WEB-Schnittstellenkoprozessor (WEB InterfaceCoprocessor). Dieser Koprozessor stellt eine Schnittstelle zum WEB-Zuteiler bereit und ermöglicht das Lesen und Schreiben von der bzw. in die WEB-Schnittstelleneinheit.
    Prüfsummen-Koprozessor. Dieser Koprozessor erzeugt Prüfsummen für die im (nachfolgend beschriebenen) FishPool gespeicherten Rahmen.
  • Die Verarbeitungseinheiten stehen für die Eingangsverarbeitung und die Ausgangsverarbeitung gleichermaßen zur Verfügung. Es kann programmiert werden, wie viel Bandbreite für die Eingangsverarbeitung und wie viel Bandbreite für die Ausgangsverarbeitung reserviert werden soll. Bei der vorliegenden Ausführungsform gibt es zwei Betriebsmodi: 50/50 (d.h., Eingang- und Ausgangsverarbeitung erhalten dieselbe Bandbreite zugeteilt) oder 66/34 (d.h., der Eingang erhält doppelt so viel Bandbreite wie der Ausgang).
  • Die Arbeit der Verarbeitungseinheiten ist ereignisgesteuert. Das heißt, die Ankunft eines Rahmens sowie das Aufrufen eines Zeitgebers oder einer Unterbrechung wird als Ereignis behandelt. Die Abwicklungseinheit behandelt unterschiedliche Ereignisse gleich, obwohl es hierfür eine Priorität gibt (zuerst die Unterbrechungsereignisse, dann die Zeitgeberereignisse und zum Schluss die Rahmenankunftsereignisse). Wenn einer Verarbeitungseinheit ein Ereignis übergeben wird, erhält diese dafür entsprechende Daten. Bei Rahmenankunftsereignissen sind dies ein Teil des Rahmen-Datenvorsatzes und Daten aus der Klassifizierungshardware. Bei Zeitgebern und Unterbrechungen sind dies der Code-Eingangspunkt sowie andere das Ereignis betreffende Daten.
  • Wenn ein Rahmen an der Eingangsseite ankommt und die Anzahl der empfangenen Bytes dieses Rahmens einen programmierten Schwellenwert überschritten hat, wird die Adresse des Rahmensteuerblocks in eine GQ geschrieben.
  • Wenn ein kompletter Rahmen an der Ausgangsseite wieder zusammengesetzt worden ist, wird die Rahmenadresse in eine GQ geschrieben. Es gibt vier Arten von GQs (und wie in 12B für jede Art eine Eingangsversion und eine Ausgangsversion):
    GCQ: diese Warteschlange muss durch die GCH verarbeitet werden.
    GTQ: diese Warteschlange muss durch die GTH verarbeitet werden.
    GPQ: diese Warteschlange enthält Rahmen, die durch die GPH verarbeitet werden müssen.
    GDQ: diese Warteschlange enthält Rahmen, die durch eine beliebige GDH (oder eine GCH/GTH, wenn diese zur Verarbeitung von Datenrahmen freigegeben sind) verarbeitet werden können. Für die GDQ gibt es mehrere Prioritäten, wobei die in einer GDQ mit höherer Priorität gespeicherten Rahmen vorrangig vor Rahmen verarbeitet werden, die in einer Warteschlange mit niedrigerer Priorität gespeichert sind.
  • Einige Verarbeitungseinheiten können spezialisiert sein. Bei der vorliegenden Ausführungsform gibt es vier Arten von Verarbeitungseinheiten (GxH) (siehe auch 12B):
    GDH (General Data Handler, Allgemeine Datenverarbeitungseinheit). Die GDHs dienen vor allem zur Weiterleitung von Rahmen.
    GCH (Verarbeitungseinheit für geleitete Zellen). Die GCH weist genau dieselbe Hardware wie eine GDH auf. Ein geleiteter Rahmen kann jedoch nur durch die GCH verarbeitet werden. Diese kann im WEB (Register CLP_Ena) programmiert werden, wenn sie auch zur Verarbeitung von Datenrahmen in der Lage ist (in diesem Fall fungiert sie als GDH).
    GTH (General Tree Handler, Allgemeine Baumverarbeitungseinheit). Die GTH verfügt gegenüber der GDH/GCH über zusätzliche Hardware: Hardwareunterstützung zum Ausführen von drei Einfügungen, drei Löschungen und Warteschlangensteuerung. Die GTH verarbeitet Datenrahmen, wenn sich in der GPQ keine Rahmen (welche Befehle zur Baumverwaltung enthalten) befinden.
    GPH (General PowerPC Handler, Allgemeine PowerPC-Verarbeitungseinheit). Die GPH verfügt im Vergleich zur GDH/GTH über zusätzliche Hardware. Die GPH ist über eine Mailboxschnittstelle mit dem integrierten PowerPC verbunden.
  • Bei der vorliegenden Ausführungsform kann die Funktion der GCH, GTH und GPH durch eine einzige Verarbeitungseinheit realisiert werden. Bei einer Ausführungsform kann beispielsweise eine Verarbeitungseinheit für die GCH und die GPH eingesetzt werden. Dasselbe gilt für die GCQ, die GTQ und die GPQ.
  • Die Aufgabe des Datenspeicher-Koprozessors besteht in Folgendem:
    Eine Verbindung zum Aufwärts-Datenspeicher, der vom Medium empfangene Rahmen enthält, und zum Abwärts-Datenspeicher herstellen, der die wieder zusammengesetzten und vom PRIZMA-Atlantic-Vermittlungssystem empfangenen Rahmen enthält.
  • Der Datenspeicher-Koprozessor empfängt während der Abwicklung eines Zeitgeberereignisses oder einer Unterbrechung auch Konfigurierungsdaten.
  • Der Datenspeicher-Koprozessor kann auch Prüfsummen von Rahmen berechnen.
  • Der Datenspeicher-Koprozessor enthält einen FishPool (der 8 Fish aufnehmen kann), einen Arbeitsdatenspeicher (der 8 Fish aufnehmen kann) sowie Steuerregister zum Lesen/Schreiben von FishPool-Inhalten aus dem bzw. in den Aufwärts- oder Abwärts-Datenspeicher. Der FishPool kann als eine Art Arbeitsbereich für den Datenspeicher angesehen werden: anstatt einen Datenspeicher direkt auszulesen/in ihn zu schreiben, wird eine größere Menge von Rahmendaten aus dem Datenspeicher gelesen und im FishPool gespeichert oder eine größere Menge von Rahmendaten aus dem FishPool in den Datenspeicher geschrieben. Ein Fish ist eine Übertragungseinheit von 16 Bytes.
  • Der FishPool kann als Speicher angesehen werden, der 8 Fish bzw. 8 Wörter zu je 128 Bit aufnehmen kann. Bei der CLP-Prozessorarchitektur ist der FishPool eine Registeranordnung von 128 Byte. Jedes Byte im FishPool hat eine Byteadresse von 7-Bit (0 ... 127) und der Zugriff erfolgt in Schritten zu 16 Bits oder 32 Bits. Wie alle Registeranordnungen weist auch der FishPool ein Ringadressiersystem auf. Das heißt, die Adressierung eines Wortes (d.h. von vier Bytes) ab dem Speicherplatz 126 im FishPool umfasst die Bytes 126, 127, 0 und 1. Aus der Sicht des Datenspeicher-Koprozessors haben die Fish-Speicherplätze im FishPool eine 3-Bit-Fish-Adresse.
  • Nach der Abwicklung des Rahmens werden die ersten N Fish eines Rahmens automatisch durch die Abwicklungseinheit in den FishPool kopiert. Der Wert N kann im Speicher PortConfigMemory programmiert werden. Üblicherweise ist N gleich vier für die Abwicklung von Rahmen in Aufwärtsrichtung, gleich zwei für die Abwicklung von Unicast-Rahmen in Abwärtsrichtung, gleich vier für die Abwicklung von Multicast-Rahmen in Abwärtsrichtung und gleich null für Unterbrechungen und Zeitgeber.
  • Der Picocode kann aus einem Rahmen mehr Bytes lesen, wobei der Datenspeicher-Koprozessor die Rahmendaten automatisch unter der nächsten Fish-Adresse im FishPool speichert und automatisch wieder auf null zurückspringt, wenn die Grenze des FishPool erreicht wurde. Darüber hinaus kann der Picocode den Aufwärts/Abwärtsspeicher an einer absoluten Adresse auslesen bzw. in ihn hineinschreiben.
  • Der WEB-Koprozessor ist mit dem EPC-WEB-Zuteiler verbunden. Der EPC-WEB-Zuteiler regelt die Prioritäten zwischen den zehn GxH und der WEB-Überwachung und kontrolliert die WEB-Schnittstelle der Schnittstelleneinheit komplett. Dadurch können alle GxH im WEB lesen und schreiben.
  • Der Speicherkomplex der Schnittstelleneinheit stellt Speicherkapazität für den integrierten Prozessorkomplex (Embedded Processing Complex, EPC) in 12A bereit. Der Speicherkomplex enthält den Baumsuch-Zuteiler (Tree-Search Memory, TSM) und eine Vielzahl von Speichern auf dem Chip und externen Speichern. Die Speicher speichern Baumstrukturen, Zähler und alles Mögliche, auf das der Picocode zugreifen muss. Außerdem dienen die Speicher zur Speicherung von Datenstrukturen, die durch die Hardware angewendet werden, zum Beispiel leere Listen, Warteschlangen-Steuerblöcke usw. Alle Speicherplätze, die nicht für Bäume reserviert sind oder durch die Hardware nicht genutzt werden, stehen grundsätzlich für Anwendungen des Picocodes zur Verfügung, zum Beispiel für Zähler und Verweildauertabellen.
  • 13 zeigt ein detaillierteres Blockschaltbild des Speicherkomplexes. Der Baumsuchspeicher(TSM)-Zuteiler stellt die Datenübertragungsverbindung zwischen den integrierten Prozessoren (GxH) und den Speichern zur Verfügung. Zu den Speichern gehören fünf auf dem Chip befindliche SRAMs, ein externer SRAM und sieben externe DRAMs. Der TSM-Zuteiler enthält zehn Anforderungssteuereinheiten (die jeweils mit einem der integrierten Prozessoren GxH verbunden sind) und 13 Speicher-Zugriffssteuereinheiten, von denen für jeden Speicher jeweils eine vorgesehen ist. Eine Busstruktur verbindet die Anforderungssteuereinheiten und die Zuteilereinheiten so, dass jede Steuereinheit und die mit ihr verbundene GxH auf alle Speicher zugreifen kann.
  • Die Steuereinheit enthält die erforderliche Hardware zur Steuerung der Daten zwischen dem integrierten Prozessor (GxH) und den Zuteilern.
  • Die SRAM-Zuteilereinheiten steuern unter Anderem den Datenfluss zwischen dem integrierten Prozessor GxH und den SRAMs auf dem Chip sowie den externen SRAMs.
  • Die DRAM-Zuteilereinheiten steuern unter Anderem den Datenfluss zwischen dem integrierten Prozessor (GxH) und den externen DRAM-Speichern.
  • Jeder Zuteiler (Speicherzugriffssteuerung) enthält eine Zugriffsmöglichkeit „durch die Hintertür", die normalerweise durch andere Teile des Chips genutzt wird und die höchste Zugriffspriorität aufweist.
  • Die DRAM-Speicher können in zwei Betriebsmodi betrieben werden:
    TDM-Modus. Der Speicherzugriff auf die vier Gruppen im DDRAM erfolgt abwechselnd zwischen Lese-„Fenstern" und Schreibfenstern, wobei in einem Lesefenster ein Nur-Lesezugriff auf eine der vier Speichergruppen und in einem Schreibfenster ein Nur-Schreibzugriff auf eine der vier Speichergruppen erfolgt. Durch die Verwendung des TDM-Modus für mehrere DDRAMs können einige Steuersignale in den DDRAMs gemeinsam genutzt und somit einige (der knappen) E/A-Anschlüsse des Chips eingespart werden.
    Nicht-TDM-Modus. Der Speicherzugriff auf die vier Speichergruppen im DDRAM kann als Kombination von Lese- und Schreibzugriffen erfolgen, der einigen speziellen Regeln unterliegt. Zum Beispiel kann innerhalb eines Zugriffsfensters ein Lesezugriff auf die Speichergruppe A und ein Schreibzugriff auf die Speichergruppe C erfolgen.
    Der TSM-Zuteiler ermöglicht N anfordernden Einheiten den gleichzeitigen Zugriff auf M Speicher. Wenn mehrere anfordernde Einheiten auf ein und denselben Speicher zugreifen wollen, wird die Zuteilungsreihenfolge im Umlaufverfahren geregelt.
    Die M Speicher können unterschiedliche Eigenschaften haben. Bei der vorliegen Ausführungsform liegen drei Arten von Speichern vor: interner SRAM, externer SRAM und externer DDRAM.
    Die M Speicher und die N anfordernden Einheiten sind homogen: jede anfordernde Einheit kann auf jeden Speicher zugreifen.
    Einige Speicher sind logisch in mehrere Teilspeicher (zum Beispiel vier Gruppen im DDRAM) eingeteilt, auf die logisch gleichzeitig zugegriffen werden kann.
    Teile der M Speicher werden als Steuerspeicher verwendet, in denen intern verwendete Datenstrukturen gespeichert sind, auf welche die Picoprozessoren mit höherer Priorität zugreifen können. Da die Picoprozessoren den Inhalt der Steuerspeicher lesen können, wird so die Fehlersuche auf dem Chip ermöglicht.
    Der Zuteiler unterstützt den Lesezugriff, den Schreibzugriff und den Lese-Einfüge-Schreibzugriff, wobei in einer autarken Operation eine N-Bit-Ganzzahl in den Inhalt des Speicher eingefügt wird.
    Für den Zugriff auf die M Speicher wird ein allgemeines Adressierungssystem in der Weise verwendet, dass der physische Speicherplatz eines Objektes im Speicher transparent ist.
  • Zum Speichern und Abrufen von Daten bedient sich die Baumsuchroutine des Konzeptes der Baumstruktur. Das Abrufen, d.h. die Suche in der Baumstruktur, sowie die Einfügungen und Löschungen werden anhand eines Schlüssels durchgeführt, der entweder aus einem Bitmuster wie beispielsweise einer MAC-Quellenadresse oder der Verkettung einer IP-Quellenadresse und einer IP-Zieladresse besteht. Die Daten werden in einem Steuerblock mit der Bezeichnung Blatt Leaf) gespeichert, der zumindest den Schlüssel enthält (später wird gezeigt werden, dass das gespeicherte Bitmuster eigentlich der hashcodierte Schlüssel ist). Ein Blatt kann auch noch weitere Daten wie Verweildauerdaten oder Benutzerdaten enthalten, zum Beispiel Daten für die Weiterleitung wie die Nummern der Ziel-Leiterplattenelemente und der Zielanschlüsse.
  • Es gibt verschiedene Arten von Baumstrukturen (FM, LPM und SMT) und entsprechend verschiedene Suchprozeduren: feste Übereinstimmung, softwaregesteuerter Baum und längste Präfixübereinstimmung. Als weiteres Kriterium für das Durchsuchen eines Blattes während der Baumsuche kann die VectorMask (Vektormaske) in Frage kommen. Zur Verbesserung der Suchleistung werden die Verkettung, die Prioritätssteuerung nach Verweildauer und ein Signalspeicher verwendet.
  • 14 zeigt den Suchalgorithmus für FM-Baumstrukturen. Der Suchalgorithmus verwendet Eingabeparameter, zum Beispiel den Schlüssel, führt an dem Schlüssel eine Hash-Operation aus, greift auf eine Zuordnungstabelle (Direct Table, DT) zu, durchläuft die Mustersuch-Steuerblöcke der Baumstruktur (Pattern Search Control Block, PSCB) und kommt bei einem Blatt an (14). Es gibt drei Arten von Baumstrukturen mit jeweils einem eigenen Suchalgorithmus, der die Suche in der Baumstruktur nach unterschiedlichen Regeln verlaufen lässt. Bei FM-Bäumen (Fixed Match, feste Übereinstimmung) besteht die Datenstruktur beispielsweise aus einem Patricia-Baum. Wenn ein Blatt gefunden worden ist, kommt dieses Blatt als einziges für eine Übereinstimmung mit dem Eingabeschlüssel in Frage. Bei softwaregesteuerten Baumstrukturen kann es mehrere Blätter geben, die in einer verknüpften Liste aneinandergereiht sind. In diesem Fall werden alle Blätter in der Reihe mit Hilfe des Eingabeschlüssels geprüft, bis entweder eine Übereinstimmung gefunden wurde oder die Reihe ohne Ergebnis abgearbeitet wurde. Eine so genannte abschließende Vergleichsoperation („compare at the end") vergleicht den Eingabeschlüssel mit dem im Blatt gespeicherten Muster und bestätigt, ob das Blatt wirklich mit dem Eingabeschlüssel übereinstimmt. Das Suchergebnis ist positiv, wenn das Blatt gefunden und eine Übereinstimmung nachgewiesen wurde, in allen anderen Fällen jedoch negativ.
  • Die Eingabe für eine Suchoperation besteht aus den folgen Parametern:
    Key (128 Bit). Der Schlüssel muss vor der Suche (oder dem Einfügen/Löschen) durch spezielle Picocodebefehle erzeugt werden. Es gibt nur ein Schlüssel-Register. Nach Beginn der Suche in der Baumstruktur kann das Schlüssel-Register jedoch durch den Picocode wieder zum Erzeugen des Schlüssels für die nächste Suche genutzt werden, wobei die TSE gleichzeitig die Suche fortsetzt. Dies ist möglich, weil die TSE den Schlüssel einer Hash-Operation unterzieht und das Ergebnis in einem internen Register HashedKey speichert (auf diese Weise gibt es in Wirklichkeit zwei Schlüssel-Register).
    KeyLength (7 Bit). Dieses Register enthält die in Bit ausgedrückte Länge des Schlüssels. Das Register wird während der Erzeugung des Schlüssels automatisch durch die Hardware aktualisiert.
    LUDefindes (8 Bit). Dieser Index wird in die Tabelle LUDefTable eingetragen, welche die gesamte Definition der Baumstruktur enthält, in der gesucht wird. Die Tabelle LUDefTable wird später ausführlich beschrieben.
    TSRNr (1 Bit). Die Suchergebnisse können entweder im TSR0 (Tree Search Result Area 0, Baumsuchergebnisspeicher 0) oder TSR1 gespeichert werden. Dieser Speicherbereich wird durch den Wert TSRNr bezeichnet. Während die TSE mit der Suche fortfährt, kann der Picocode auf die anderen TSR zugreifen, um die Ergebnisse einer vorangehenden Suche zu analysieren.
    VectorIndex (6 Bit). Für Baumstrukturen, bei denen die Maske VectorMask (die in der Tabelle LUDefTable aufgeführt ist) aktiviert wurde, stellt der Wert VectorIndex ein Bit in der VectorMask dar. Nachdem die Suche beendet wurde, wird der Wert dieses Bits zurückgegeben und kann durch den Picocode verwendet werden.
  • Der Eingabeschlüssel wird durch eine Hash-Operation zum HashedKey (siehe 14). Es stehen sechs fertige Hash-Algorithmen zur Verfügung (wobei ein „Algorithmus" keine Hash-Operation ausführt). In der Tabelle LUDefTable ist angegeben, welcher Algorithmus zu verwenden ist. Durch eine programmierbare Hash-Funktion kann die Flexibilität weiter verbessert werden.
  • Das Ergebnis der Hash-Funktion ist immer eine 128-Bit-Zahl, deren Eigenschaft darin besteht, dass immer eine Eins-zu-eins-Beziehung zwischen dem ursprünglichen Eingabeschlüssel und dem Ergebnis der Hash-Funktion besteht. Durch diese Eigenschaft wird, wie im Folgenden erläutert wird, die Suchtiefe der Baumstruktur verringert, mit der nach der Zuordnungstabelle begonnen wird.
  • Wenn sich die Suche in der Baumstruktur, wie bei dem Beispiel von 14, auch auf Farben erstrecken soll, wird in das 128-Bit-Ergebnis der Hash-Funktion das 16-Bit-Farbregister eingefügt. Die Einfügung erfolgt unmittelbar nach der Zuordnungstabelle, d.h., wenn die Zuordnungstabelle 2N Einträge enthält, wird der 16-Bit-Farbwert gemäß der Figur an der Bitposition N eingefügt. Das Ergebnis der Hash-Funktion wird zusammen mit dem eingefügten Farbwert (falls aktiviert) im Register HashedKey gespeichert.
  • Die Hash-Funktion ist so definiert, die größte Entropie in ihrem Ergebnis in den höchsten Bits zu finden ist. Die N höchsten Bits des Registers HashedKey werden zur Berechnung eines Index für die Zuordnungstabelle (DT) herangezogen.
  • Die Suche beginnt mit einem Zugriff auf die Zuordnungstabelle: aus der Zuordnungstabelle wird ein Eintrag DTEntry gelesen. Die zum Lesen des DTEntry verwendete Adresse wird aus den N höchsten Bits des Wertes HashedKey sowie anhand der in der Tabelle LUDefTable definierten Eigenschaften der Baumstruktur berechnet. Dies wird im Folgenden ausführlich erläutert. Der DTEntry kann als Stamm einer Baumstruktur angesehen werden. Die tatsächlich verwendete Datenstruktur hängt von der Art der Baumstruktur ab. An diesem Punkt reicht die Aussage, dass eine Patricia-Baum-Datenstruktur für FM-Bäume verwendet wird, während Erweiterungen der Patricia-Baume für LPM- und SMT-Bäume verwendet werden.
  • 15 zeigt ein Beispiel für die Verwendung einer DT mit 8 Einträgen. Zu sehen ist, dass die Suchzeit (d.h. die Anzahl der erforderlichen PSCB-Zugriffe) durch die Verwendung einer DT verringert werden kann. Auf diese Weise kann durch Vergrößerung der DT ein Optimum zwischen Speicheraufwand und Suchleistung erzielt werden.
  • 15 zeigt, dass ein DTEntry die folgenden Informationen enthalten kann:
    Leer. Mit diesem DTEntry sind keine Blätter verknüpft. Zeiger auf ein Blatt. Mit diesem DTEntry ist ein einziges Blatt verknüpft.
    Zeiger auf einen PSCB. Mit diesem DTEntry sind mehrere Blätter verknüpft. Der DTEntry definiert den Stamm einer Baumstruktur.
  • Der Suchalgorithmus für eine softwaregesteuerte Baumstruktur und ein Algorithmus zur Erzeugung des Baums sind in der US-Patentanmeldung 09/312 148 beschrieben.
  • Ein Algorithmus mit der Bezeichnung „Choice Bit Algorithm" wendet zur Erstellung eines binären Suchbaums eine bestimmte Maßzahl an und geht dabei von Bits aus, die von bestimmten „Regeln" aus einer Gesamtheit von Regeln ausgewählt werden. Alle hier angegebenen Beispiele sind in Form von IP-Headern (Internetprotokoll-Datenvorsatz) formuliert, jedoch kann auch ein beliebiger anderer Datenvorsatz mit fest vorgegebenem Format verwendet werden.
  • Im Internetprotokoll ist jede Regel bestimmten Schlüsseln zugeordnet, die aus den folgenden Abschnitten bestehen können: Quellenadresse (Source Address, Station), Zieladresse (Destination Address, DA), Quellenanschluss (Source Port, SP), Zielanschluss (Destination Port, DP) und Protokoll (P). Diese Daten sind 32, 32, 16, 16 bzw. 8 Bit lang, sodass der zu prüfende Schlüssel aus 104 Bits besteht. Der Choice-Bit-Algorithmus ermittelt daraus bestimmte Bits, die besonders nützlich sind. Dadurch, dass nur diese wenigen Bits geprüft werden müssen, kann letztlich bis auf eine oder einige wenige Regeln auf die Anwendung von Regeln verzichtet werden. Bei einigen Regeln ist auch die Prüfung von Ungleichheiten durch einfache Vergleichsoperationen denkbar. Die Bitprüfungen und Vergleichsoperationen sind logisch als binärer Baum organisiert. Die Baumstruktur ist auf eine hardwaregestützte Struktur abgebildet, welche die Bitprüfung mit hoher Geschwindigkeit vornimmt. Eine solche Prüfung erfordert nur eine oder nur wenige Regeln (die als Blattkette bezeichnet werden), die der Schlüssel erfüllen kann. Im ersteren Falle wird der Schlüssel dann regelkonform geprüft. Im letzteren Falle wird der Schlüssel nach einem System von Tests geprüft, das Vergleichsoperationen und regelkonforme Prüfungen umfasst.
  • Jede aus der Gruppe der Regeln ist mit einer Aktion verknüpft, die ausgeführt wird, wenn diese Regel die höchste Priorität für den Schlüssel hat. Regeln können sich auch überschneiden (ein Schlüssel erfüllt zwei oder mehr Regeln.). In diesem Falle können den Regeln Prioritäten (1, 2, 3, ...) zugewiesen werden, sodass zwei sich überschneidende Regeln verschiedene Prioritäten haben (dabei muss ein Administrator entscheiden, welche Regel Vorrang hat, wenn ein Schlüssel zwei oder mehr Regeln erfüllt). Wenn also nach den Bitprüfungen und den Vergleichsoperationen noch mehr als eine Regel geprüft werden muss, werden die Regeln in der Reihenfolge ihrer Prioritäten geprüft. Eine niedrigere Prioritätszahl kennzeichnet eine Regel mit einer höheren Priorität.
  • Wenn überhaupt keine Übereinstimmung gefunden wurde, können Standardlösungen vorgegeben werden.
  • Der Suchalgorithmus für das Verfahren zur Suche nach der längsten Präfixübereinstimmung wird in der US-Patentschrift 5 787 430 beschrieben. Bei dem Verfahren sind folgende Schritte erforderlich: Einsteigen an einem Knoten der Datenbank (Stammknoten); Ermitteln eines Suchpfades durch die baumartige Datenbank von einem zu einem anderen Knoten der Reihe nach durch Verarbeitung von Segmenten des Sucharguments, die nur diejenigen Teile der Einträge enthalten, die zur Erkennung des nächsten Knotens (Kindknoten) erforderlich sind, und durch Verarbeitung der zweiten Verbindungsinformation, bis die Segmente abgearbeitet sind oder ein (Blatt-)Knoten erreicht wurde, dem die zweite Verbindungsinformation fehlt; Vergleichen eines in dem Knoten, an welchem der Suchpfad ankommt, gespeicherten Eintrags mit dem Suchargument; und, wenn im aktuellen Knoten nicht wenigstens eine Teilübereinstimmung zwischen dem Suchargument und dem Eintrag gefunden wurde, Zurückverfolgen des Suchpfades durch Verarbeitung der ersten Verbindungsinformation des aktuellen Knotens; und Wiederholen der beiden obigen Schritte, bis zumindest eine Teilübereinstimmung gefunden oder der Stammknoten erreicht wurde.
  • 16 zeigt eine Ausführungsart des Hauptkoppelnetzes. Vorzugsweise ist jeder Chip einer Schnittstelleneinheit mit mindestens zwei integrierten Parallel-Seriell-Anschlüssen ausgestattet, die Daten parallel empfangen und die Daten in einen seriellen Hochgeschwindigkeitsdatenstrom umsetzen, der über eine serielle Verbindung zum Koppelnetz weitergeleitet wird. Die durch das Koppelnetz über eine serielle Hochgeschwindigkeitsverbindung empfangenen Daten werden durch eine andere DASL in parallele Daten übertragen. Im Folgenden wird eine Ausführungsart des Seriell/Parallel-Umsetzers mit der Bezeichnung serielle Leitung für die Datenanpassung (Data Align Serial Link, DASL) beschrieben.
  • Mindestens eine DASL verbindet das Koppelnetz mit den seriellen Leitungen. Von den seriellen Leitungen kommende Daten werden in parallele Daten umgesetzt, die zum Koppelnetz geleitet werden. Desgleichen werden vom Koppelnetz kommende parallele Daten in serielle Daten umgesetzt, die zu den seriellen Leitungen geleitet werden. Die seriellen Leitungen können gebündelt werden, um den Durchsatz zu erhöhen.
  • Ferner zeigt 16, dass das Vermittlungssystem ein Koppelnetz 11, Eingangs-Vermittlungsadapter 13 (13-l ... 13-k), die mit den Eingangsanschlüssen 15 (15-l ... 15-k) des Koppelnetzes verbunden sind, und Ausgangs-Vermittlungsadapter 17 (17-l ... 17-p), die mit den Ausgangsanschlüssen 19 (19-l ... 19-p) des Koppelnetzes verbunden sind, beinhaltet.
  • Die ankommenden und die abgehenden Übertragungsleitungen 21 (21-l ... 21-q) und 23 (23-l ... 23-r) sind durch Leitungsadapter 25 (25-l ... 25-q) bzw. 27 (27-l ... 27-r) mit dem Vermittlungssystem verbunden. Über die Übertragungsleitungen läuft leitungsvermittelter oder paketvermittelter Datenverkehr von oder zu solchen Einheiten wie Arbeitsplatzrechnern, Telefonapparaten oder Ähnlichem (Leitungen mit WS gekennzeichnet), von oder zu lokalen Netzen (Leitungen mit LAN gekennzeichnet) zu oder von digitalen Netzen mit integrierten Diensten (Leitungen mit ISDN gekennzeichnet) oder von und zu einem anderen Datenübertragungssystem. Darüber hinaus können direkt an die Vermittlungsadapter 13 und 17 Prozessoren angeschlossen sein. Die Leitungsadapter (LA) und die Vermittlungsadapter (SA) haben eine gemeinsame Schnittstelle.
  • An den Eingangs-Vermittlungsadaptern kommen von paketvermittelten und leitungsvermittelten Schnittstellen verschiedene Dienste an, die in gleich große Minipakete (mit einer von mehreren möglichen fest vorgegebenen Längen) umgewandelt werden, deren Datenvorsatz Routingdaten über den benötigten Ausgangsanschluss (und die entsprechende Abgangsleitung) enthält. Einige Einzelheiten über das Format und die Erzeugung von Minipaketen in den Eingangs-Vermittlungsadaptern und das Entpacken der Minipakete in den Ausgangs-Vermittlungsadaptern werden in den nächsten Abschnitten beschrieben.
  • Das Koppelnetz leitet die Minipakete von einem beliebigen Eingangsanschluss über ein schnelles Selbstvermittlungsnetz zu einem beliebigen Ausgangsanschluss. Die Struktur des Selbstvermittlungsnetzes ist so beschaffen, dass Minipakete intern gleichzeitig konfliktfrei weitergeleitet werden können.
  • Das Koppelnetz ist das Herzstück des Vermittlungssystems. Zwei verschiedene Ausführungsformen sollen ins Auge gefasst und einzeln beschrieben werden. Bei einer Ausführungsform umfasst das Koppelnetz einen selbstvermittelnden binären Baum für jeden Eingangsanschluss, der den betreffenden Eingangsanschluss mit allen Ausgangsanschlüssen verbindet; das Koppelnetz umfasst insgesamt k solcher Bäume (wenn k Eingangsanschlüsse vorhanden sind). Bei der anderen Ausführungsform wird als Scheibe für jeden Ausgangsanschluss eine Busstruktur mit einem Ausgangs-RAM bereitgestellt, der alle Eingangsanschlüsse mit dem jeweiligen Ausgangsanschluss verbindet; das Koppelnetz umfasst insgesamt p solcher Scheiben (wenn p Ausgangsanschlüsse vorhanden sind).
  • Die DASL wird in der US-Patentanmeldung 09/330 968, eingereicht am 11. Juni 1999, beschrieben. Die DASL-Schnittstelle empfängt Daten von einer parallelen Schnittstelle wie beispielsweise einer CMOS ASIC, verteilt die von der parallelen Schnittstelle kommenden Bits auf eine kleinere Anzahl paralleler Bitströme. Die kleinere Anzahl paralleler Bitströme wird dann in einen seriellen Hochgeschwindigkeitsstrom umgesetzt, der dann über ein Übertragungsmedium zum Empfänger des anderen Moduls transportiert wird. Ein differenzieller Treiber mit Steuerfunktion schickt den seriellen Bitstrom der Daten auf das Übertragungsmedium.
  • Durch die DASL wird das Verfahren zur Aufteilung eines Datenstroms von N parallelen Bits in eine Vielzahl von Abschnitten zu je n Bits realisiert, wobei n ein Bruchteil von N ist; jeder Abschnitt des Datenstroms zu je n Bits wird serialisiert; jeder serialisierte Abschnitt wird über einen entsprechenden aus einer Vielzahl von parallelen Kanälen übertragen; und jeder übertragene Abschnitt des Datenstroms wird wieder deserialisiert, um den Datenstrom wiederherzustellen und in der Form von N parallelen Bits darzustellen. Während die DASL bei bestimmten oben beschriebenen Ausführungsarten verwendet wird, ist klar, dass an solchen Stellen in einem Netzwerkprozessor zur Realisierung der hier beschriebenen Erfindungen andere Formen der Datenübertragung verwendet werden können.
  • Obwohl in den Zeichnungen und der Beschreibung bevorzugte Ausführungsarten der Erfindungen dargelegt und spezielle Begriffe verwendet wurden, ist die zur Beschreibung verwendete Terminologie lediglich im allgemeingültigen Sinne und zum Zwecke der Beschreibung zu verstehen, nicht aber als Begrenzung aufzufassen.

Claims (13)

  1. Vorrichtung, die Folgendes umfasst: einen Steuerpunktprozessor; eine Schnittstelleneinheit, die durch eine Steuerleitung funktionell mit dem Steuerpunktprozessor verbunden ist und eine Hochgeschwindigkeitsdatenleitung bereitstellt, wobei die Schnittstelleneinheit Folgendes umfasst: ein Halbleitersubstrat (10); eine Vielzahl auf dem Substrat gebildeter Schnittstellenprozessoren (12), wobei die Anzahl der Prozessoren mindestens fünf beträgt; einen auf dem Substrat gebildeten internen Befehlsspeicher zur Speicherung von Befehlen, auf welche die Schnittstellenprozessoren zugreifen können; einen auf dem Substrat gebildeten internen Datenspeicher zur Speicherung von Daten, die durch die Einheit geleitet werden und auf welche die Schnittstellenprozessoren zugreifen können; und eine Vielzahl auf dem Substrat gebildeter Eingangs-/Ausgangsanschlüsse; wobei mindestens einer der Eingangs-/Ausgangsanschlüsse den internen Datenspeicher mit einem externen Datenspeicher verbindet; wobei mindestens zwei andere der Eingangs-/Ausgangsanschlüsse unter der Steuerung der Schnittstellenprozessoren durch die Schnittstelleneinheit geleitete Daten mit Mediengeschwindigkeit mit einem externen Netzwerk austauschen; wobei der Steuerpunktprozessor mit der Schnittstelleneinheit zusammenarbeitet, indem er durch die Schnittstellenprozessoren auszuführende Befehle in den Befehlsspeicher lädt und so den Datenaustausch zwischen den für den Datenaustausch bestimmten Eingangs-/Ausgangsanschlüssen und den Datenstrom durch den Datenspeicher steuert.
  2. Vorrichtung nach Anspruch 1, welche ferner Folgendes umfasst: eine zweite mit dem Steuerpunktprozessor funktionell verbundene Schnittstelleneinheit, die Folgendes aufweist: ein Halbleitersubstrat; eine Vielzahl auf dem Substrat gebildeter Schnittstellenprozessoren, wobei die Anzahl der Prozessoren mindestens fünf beträgt; einen auf dem Substrat gebildeten internen Befehlsspeicher zur Speicherung von Befehlen, auf welche die Schnittstellenprozessoren zugreifen können; einen auf dem Substrat gebildeten internen Datenspeicher zur Speicherung von Daten, die durch die Einheit geleitet werden und auf welche die Schnittstellenprozessoren zugreifen können; und eine Vielzahl auf dem Substrat gebildeter Eingangs-/Ausgangsanschlüsse; wobei mindestens einer der Eingangs-/Ausgangsanschlüsse den internen Datenspeicher mit einem externen Datenspeicher verbindet; wobei mindestens zwei andere der Eingangs-/Ausgangsanschlüsse unter der Steuerung der Schnittstellenprozessoren durch die Schnittstelleneinheit geleitete Daten mit einem externen Netzwerk austauschen; wobei der Steuerpunktprozessor mit der Schnittstelleneinheit zusammenarbeitet, indem er durch die Schnittstellenprozessoren auszuführende Befehle in den Befehlsspeicher lädt und so den Datenaustausch zwischen den für den Datenaustausch bestimmten Eingangs-/Ausgangsanschlüssen und den Datenstrom durch den Datenspeicher steuert.
  3. Vorrichtung nach Anspruch 1, welche ferner Folgendes umfasst: einen zweiten Steuerpunktprozessor; wobei die Schnittstelleneinheit entweder mit dem ersten oder mit dem zweiten Steuerpunktprozessor funktionell verbunden ist; eine zweite Schnittstelleneinheit, die mit dem anderen der beiden Steuerpunktprozessoren funktionell verbunden ist und Folgendes aufweist: ein Halbleitersubstrat; eine Vielzahl auf dem Substrat gebildeter Schnittstellenprozessoren, wobei die Anzahl der Prozessoren mindestens fünf beträgt; einen auf dem Substrat gebildeten internen Befehlsspeicher zur Speicherung von Befehlen, auf welche die Schnittstellenprozessoren zugreifen können; einen auf dem Substrat gebildeten internen Datenspeicher zur Speicherung von Daten, die durch die Einheit geleitet werden und auf welche die Schnittstellenprozessoren zugreifen können; und eine Vielzahl auf dem Substrat gebildeter Eingangs-/Ausgangsanschlüsse; wobei mindestens einer der Eingangs-/Ausgangsanschlüsse den internen Datenspeicher mit einem externen Datenspeicher verbindet; wobei mindestens zwei andere der Eingangs-/Ausgangsanschlüsse unter der Steuerung der Schnittstellenprozessoren durch die Schnittstelleneinheit geleitete Daten mit einem externen Netzwerk austauschen; wobei der andere Steuerpunktprozessor mit der zweiten Schnittstelleneinheit zusammenarbeitet, indem er durch die Schnittstellenprozessoren auszuführende Befehle in den Befehlsspeicher lädt und so den Datenaustausch zwischen den für den Datenaustausch bestimmten Eingangs-/Ausgangsanschlüssen und den Datenstrom durch den Datenspeicher steuert.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, bei welcher der Steuerpunktprozessor von der Schnittstelleneinheit entfernt angeordnet und über die beiden anderen Eingangs-/Ausgangsanschlüsse funktionell mit dieser verbunden ist.
  5. Vorrichtung nach einem der Ansprüche 1 bis 4, welche ferner eine Leiterplatteneinheit umfasst, wobei die auf der Leiterplatteneinheit montierten Schaltkreisbauelemente die in einem der Ansprüche 1 bis 4 aufgeführten Bauelemente umfassen.
  6. Vorrichtung nach Anspruch 5, welche ferner Folgendes umfasst: eine automatische Leitweg-Koppelnetzeinheit, die mit der Schnittstelleneinheit funktionell verbunden ist und von ermittelbaren Adressen in der Vorrichtung ankommende Daten dem von der Vorrichtung an bekannte Adressen abgehenden Datenstrom zuordnet.
  7. Vorrichtung nach einem der Ansprüche 1 bis 4, welche ferner Folgendes umfasst: ein Gehäuse; eine im Gehäuse angebrachte Rückwandplatine; und eine Vielzahl in der Rückwandplatine angebrachter Leiterplatteneinheiten; wobei die Schaltkreisbauelemente auf einer der Leiterplatteneinheiten die in einem der Ansprüche 1 bis 4 aufgeführten Bauelemente umfassen.
  8. Vorrichtung nach Anspruch 7, bei welcher der Steuerpunktprozessor auf dem Halbleitersubstrat gebildet ist.
  9. Vorrichtung nach Anspruch 7, bei welcher die Schaltkreisbauelemente auf einer zweiten Leiterplatteneinheit einen anderen Satz der in einem der Ansprüche 1 bis 4 aufgeführten Bauelemente umfassen.
  10. Verfahren, welches die folgenden Schritte umfasst: Speichern von Befehlen zum Verarbeiten der eine Schnittstelleneinheit durchlaufenden Daten in einem Befehlsspeicher; Ausführen von im Befehlsspeicher gespeicherten Befehlen in einer Vielzahl von Schnittstellenprozessoren (12); Empfangen eines mit Mediengeschwindigkeit über einen Eingangsanschluss ankommenden Datenstroms; Übermitteln des Datenstroms an die Vielzahl von Schnittstellenprozessoren; und Steuern des mit Mediengeschwindigkeit über an Ausgangsanschluss abgehenden Datenstroms in Abhängigkeit von der Ausführung der Befehle durch die Schnittstellenprozessoren.
  11. Verfahren nach Anspruch 10, welches ferner das Gliedern des Datenstroms in eine Vielzahl von Teilen, das Speichern ausgewählter Teile des gegliederten Datenstroms in einem Datenspeicher und das Weiterleiten anderer ausgewählter Teile des gegliederten Datenstroms zu einem Koppelnetz zur Ermittlung einer Abgangsrichtung.
  12. Verfahren nach Anspruch 10, welches ferner das erneute verknüpfen der gespeicherten und der anderen ausgewählten Teile des Datenstroms vor dem Weiterleiten des über den Ausgangsanschluss abgehenden Datenstroms umfasst.
  13. Verfahren nach Anspruch 10, bei welchem der Schritt des Übermittelns des Datenstroms durch die Vielzahl der Schnittstellenprozessoren das Gliedern des Datenstroms in Teile und das Verteilen der gegliederten Teile auf die Vielzahl von Schnittstellenprozessoren zur parallelen Verarbeitung umfasst.
DE60029467T 1999-08-27 2000-08-24 Netzwerkschalter und komponenten und betriebsverfahren Expired - Lifetime DE60029467T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/384,692 US6985431B1 (en) 1999-08-27 1999-08-27 Network switch and components and method of operation
US384692 1999-08-27
PCT/US2000/020795 WO2001016763A1 (en) 1999-08-27 2000-08-24 Network switch and components and method of operation

Publications (2)

Publication Number Publication Date
DE60029467D1 DE60029467D1 (de) 2006-08-31
DE60029467T2 true DE60029467T2 (de) 2007-07-19

Family

ID=23518351

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60029467T Expired - Lifetime DE60029467T2 (de) 1999-08-27 2000-08-24 Netzwerkschalter und komponenten und betriebsverfahren

Country Status (9)

Country Link
US (5) US6985431B1 (de)
EP (1) EP1226501B1 (de)
JP (2) JP2003508954A (de)
KR (1) KR100466083B1 (de)
CN (1) CN1307564C (de)
AT (1) ATE333678T1 (de)
DE (1) DE60029467T2 (de)
ES (1) ES2265971T3 (de)
WO (1) WO2001016763A1 (de)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985431B1 (en) * 1999-08-27 2006-01-10 International Business Machines Corporation Network switch and components and method of operation
US8300534B2 (en) * 2000-05-24 2012-10-30 Alcatel Lucent Programmable packet processor with flow resolution logic
US8619793B2 (en) * 2000-08-21 2013-12-31 Rockstar Consortium Us Lp Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
EP1193918B1 (de) * 2000-09-20 2007-08-22 Broadcom Corporation Vermittlungsanordnung mit mehreren Modulen in einem Rahmen
US8762581B2 (en) * 2000-12-22 2014-06-24 Avaya Inc. Multi-thread packet processor
US6987760B2 (en) 2001-03-05 2006-01-17 International Business Machines Corporation High speed 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
KR100902513B1 (ko) * 2001-04-13 2009-06-15 프리스케일 세미컨덕터, 인크. 데이터 스트림 프로세서들에서 데이터 스트림들의 조작
US7398271B1 (en) * 2001-04-16 2008-07-08 Yahoo! Inc. Using network traffic logs for search enhancement
US8195705B2 (en) 2001-12-11 2012-06-05 International Business Machines Corporation Hybrid search memory for network processor and computer systems
CN100399778C (zh) * 2001-12-30 2008-07-02 联想(北京)有限公司 物理层自适应不同网络传输链路介质的装置及控制方法
TW561740B (en) * 2002-06-06 2003-11-11 Via Tech Inc Network connecting device and data packet transferring method
US8015303B2 (en) * 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
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
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
US20040143682A1 (en) * 2003-01-21 2004-07-22 Brocade Communications Systems, Inc. Network switch containing a hard disk drive
US20050044261A1 (en) * 2003-07-18 2005-02-24 Rahul Saxena Method of operating a network switch
US20050102474A1 (en) * 2003-11-06 2005-05-12 Sridhar Lakshmanamurthy Dynamically caching engine instructions
US7558890B1 (en) * 2003-12-19 2009-07-07 Applied Micro Circuits Corporation Instruction set for programmable queuing
US20050172132A1 (en) 2004-01-30 2005-08-04 Chen Sherman (. Secure key authentication and ladder system
US9461825B2 (en) 2004-01-30 2016-10-04 Broadcom Corporation Method and system for preventing revocation denial of service attacks
US9094699B2 (en) * 2004-02-05 2015-07-28 Broadcom Corporation System and method for security key transmission with strong pairing to destination client
US7480308B1 (en) * 2004-03-29 2009-01-20 Cisco Technology, Inc. Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly
US7646770B1 (en) * 2004-03-30 2010-01-12 Extreme Networks, Inc. Systems for supporting packet processing operations
US20050223984A1 (en) * 2004-04-08 2005-10-13 Hee-Gyoun Lee Chemical vapor deposition (CVD) apparatus usable in the manufacture of superconducting conductors
US7746846B2 (en) * 2004-07-15 2010-06-29 Broadcom Corporation Method and system for a gigabit Ethernet IP telephone chip with integrated security module
US7533092B2 (en) * 2004-10-28 2009-05-12 Yahoo! Inc. Link-based spam detection
US7600115B2 (en) * 2005-04-05 2009-10-06 Cisco Technology, Inc. Control key capable of storing multiple and variable data packet classification results
US7719966B2 (en) * 2005-04-13 2010-05-18 Zeugma Systems Inc. Network element architecture for deep packet inspection
US7606147B2 (en) * 2005-04-13 2009-10-20 Zeugma Systems Inc. Application aware traffic shaping service node positioned between the access and core networks
ATE437507T1 (de) * 2005-05-23 2009-08-15 Nxp Bv Integrierte schaltung mit internem kommunikationsnetz
US7719995B2 (en) * 2005-09-09 2010-05-18 Zeugma Systems Inc. Application driven fast unicast flow replication
US7508764B2 (en) * 2005-09-12 2009-03-24 Zeugma Systems Inc. Packet flow bifurcation and analysis
US7733891B2 (en) * 2005-09-12 2010-06-08 Zeugma Systems Inc. Methods and apparatus to support dynamic allocation of traffic management resources in a network element
US7672236B1 (en) * 2005-12-16 2010-03-02 Nortel Networks Limited Method and architecture for a scalable application and security switch using multi-level load balancing
US7843927B1 (en) * 2006-12-22 2010-11-30 Extreme Networks, Inc. Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device
US8429177B2 (en) * 2006-02-08 2013-04-23 Yahoo! Inc. Using exceptional changes in webgraph snapshots over time for internet entity marking
US7852843B2 (en) * 2006-07-21 2010-12-14 Cortina Systems, Inc. Apparatus and method for layer-2 to layer-7 search engine for high speed network application
US7630385B2 (en) * 2006-08-04 2009-12-08 Oyadomari Randy I Multiple domains in a multi-chassis system
JP2008078768A (ja) * 2006-09-19 2008-04-03 Denso Corp ネットワークシステム,ネットワークデバイスおよびプログラム
US8219789B2 (en) * 2007-03-14 2012-07-10 XMOS Ltd. Interface processor
US7773510B2 (en) 2007-05-25 2010-08-10 Zeugma Systems Inc. Application routing in a distributed compute environment
US20080298230A1 (en) * 2007-05-30 2008-12-04 Luft Siegfried J Scheduling of workloads in a distributed compute environment
US8290986B2 (en) * 2007-06-27 2012-10-16 Yahoo! Inc. Determining quality measures for web objects based on searcher behavior
US20090013033A1 (en) * 2007-07-06 2009-01-08 Yahoo! Inc. Identifying excessively reciprocal links among web entities
US7706291B2 (en) * 2007-08-01 2010-04-27 Zeugma Systems Inc. Monitoring quality of experience on a per subscriber, per session basis
US8374102B2 (en) * 2007-10-02 2013-02-12 Tellabs Communications Canada, Ltd. Intelligent collection and management of flow statistics
CN101685401B (zh) * 2008-09-22 2013-07-24 中国科学院计算技术研究所 一种远程无线编程的方法及支持远程无线编程的芯片
US8842688B2 (en) * 2009-01-20 2014-09-23 The Regents Of The University Of California Reducing cabling complexity in large-scale networks
TW201044371A (en) * 2009-06-15 2010-12-16 Novatek Microelectronics Corp Memory architecture of display device and reading method thereof
US8665879B2 (en) * 2009-07-14 2014-03-04 Broadcom Corporation Flow based path selection randomization using parallel hash functions
US8565239B2 (en) * 2009-07-14 2013-10-22 Broadcom Corporation Node based path selection randomization
US20110145837A1 (en) * 2009-12-14 2011-06-16 Bower Kenneth S Filtering Broadcast Recipients In A Multiprocessing Environment
US8331373B2 (en) 2010-03-15 2012-12-11 Extreme Networks, Inc. Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device
US9319335B1 (en) * 2010-12-07 2016-04-19 Pluribus Networks, Inc. Distributed operating system for a layer 2 fabric
US8934783B2 (en) 2011-02-17 2015-01-13 International Business Machines Corporation Adaptor system for an ethernet network
US10122653B2 (en) * 2011-04-28 2018-11-06 International Business Machines Corporation Energy management system for a data center network
US8582437B2 (en) 2011-06-21 2013-11-12 Broadcom Corporation System and method for increasing input/output speeds in a network switch
US8861401B2 (en) 2012-04-03 2014-10-14 International Business Machines Corporation Layer 2 packet switching without look-up table for ethernet switches
US8838871B2 (en) 2012-04-09 2014-09-16 Dell Products L.P. Methods and systems for virtualization of storage services in an integrated chassis
US8902896B2 (en) 2012-04-16 2014-12-02 International Business Machines Corporation Packet switching without look-up table for ethernet switches
WO2014045175A1 (en) * 2012-09-21 2014-03-27 Koninklijke Philips N.V. Method and apparatus for dynamic address assignment
US9652216B2 (en) * 2012-10-04 2017-05-16 Dell Products L.P. System and method for providing out-of-band software or firmware upgrades for a switching device
WO2014195804A2 (en) * 2013-06-04 2014-12-11 Marvell World Trade Ltd. Internal search engine architecture
US8966074B1 (en) * 2013-09-13 2015-02-24 Network Kinetix, LLC System and method for real-time analysis of network traffic
AU2013245529A1 (en) * 2013-10-18 2015-05-07 Cisco Technology, Inc. Network Interface
US9935898B2 (en) * 2014-09-20 2018-04-03 Innovasic, Inc. Ethernet interface module
KR102365113B1 (ko) * 2015-05-27 2022-02-18 삼성전자주식회사 적응적 인터럽트 처리 방법 및 장치와 이를 적용하는 호스트, i/o 디바이스 및 시스템
US10200309B2 (en) 2016-08-12 2019-02-05 Samsung Electronics Co., Ltd. Two-headed switch including a drive bay for fabric-attached devices
CN113923080B (zh) * 2021-10-11 2023-12-19 中认车联网技术服务(深圳)有限公司 基于车载以太网的视频信号监控平台及数据分析方法

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2573394B1 (fr) * 1984-11-16 1986-12-12 Panzani Milliat Freres Sa Nouvel ensemble pour le stockage, le transport et la distribution des objets du type bouteilles, flacons et analogues, et procede pour sa fabrication
US4736362A (en) * 1985-07-26 1988-04-05 Advanced Micro Devices, Inc. Programmable data-routing multiplexer
DE3788649T2 (de) * 1987-10-20 1994-06-23 Ibm Schnelle modulare Vermittlungseinrichtung für Durchschaltverkehr und paketvermittelten Verkehr.
FR2637440B1 (fr) 1988-08-18 1994-05-13 Bull Sa Procede de transmission de donnees sur un bus interne d'une station de travail, dispositif a bus interne, permettant la mise en oeuvre du procede, et circuit d'adaptation pour ce bus interne
FR2638260B1 (fr) * 1988-10-26 1994-04-29 Onera (Off Nat Aerospatiale) Dispositifs de commutation et reseaux de communication de donnees pour systemes multiprocesseurs
US5495482A (en) 1989-09-29 1996-02-27 Motorola Inc. Packet transmission system and method utilizing both a data bus and dedicated control lines
US5226125A (en) * 1989-11-17 1993-07-06 Keith Balmer Switch matrix having integrated crosspoint logic and method of operation
US6070003A (en) * 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US5404550A (en) * 1991-07-25 1995-04-04 Tandem Computers Incorporated Method and apparatus for executing tasks by following a linked list of memory packets
DE69230093T2 (de) 1991-11-19 2000-04-13 International Business Machines Corp., Armonk Multiprozessorsystem
DE69124743T2 (de) * 1991-11-29 1997-08-14 Ibm Vorrichtung zur Speicherung und Durchschaltung und Verfahren zur Datensicherung während der Speicherung
EP0544963A1 (de) 1991-11-29 1993-06-09 International Business Machines Corporation Parallelverarbeitungsverfahren für empfangende und übertragende Bitströme
JP2647330B2 (ja) 1992-05-12 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 超並列コンピューティングシステム
US5331315A (en) * 1992-06-12 1994-07-19 Universities Research Association, Inc. Switch for serial or parallel communication networks
DE59310083D1 (de) 1993-09-24 2000-09-07 Siemens Ag Verfahren zum Lastausgleich in einem Multiprozessorsystem
JPH07152501A (ja) 1993-11-30 1995-06-16 Kawasaki Steel Corp 媒体集合型装置駆動命令発行装置
US5557609A (en) * 1993-12-01 1996-09-17 Kabushiki Kaisha Toshiba Switching apparatus for ATM
JPH07320742A (ja) * 1994-05-20 1995-12-08 Sumitomo Electric Ind Ltd アルカリ蓄電池用電極およびその製造方法
GB2291562B (en) 1994-05-21 1998-09-23 Northern Telecom Ltd Communications system
US5787430A (en) 1994-06-30 1998-07-28 International Business Machines Corporation Variable length data sequence backtracking a trie structure
US5583868A (en) * 1994-07-25 1996-12-10 Microsoft Corporation Method and system for combining data from multiple servers into a single continuous data stream using a switch
EP0719065A1 (de) * 1994-12-20 1996-06-26 International Business Machines Corporation Mehrzweck-Paketvermittlungsknoten für ein Datenübertragungsnetz
US5598410A (en) * 1994-12-29 1997-01-28 Storage Technology Corporation Method and apparatus for accelerated packet processing
US5724348A (en) * 1995-04-05 1998-03-03 International Business Machines Corporation Efficient hardware/software interface for a data switch
CN1148211A (zh) * 1995-06-05 1997-04-23 北京航空航天大学 耦合度可调并行计算机群系统及其构造方法
US5651002A (en) 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5748633A (en) 1995-07-12 1998-05-05 3Com Corporation Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
US5568471A (en) 1995-09-06 1996-10-22 International Business Machines Corporation System and method for a workstation monitoring and control of multiple networks having different protocols
US5841777A (en) * 1996-08-30 1998-11-24 Hewlett-Packard Company System and method for accommodating ABR and CBR traffic on a shared communications channel
US5864535A (en) 1996-09-18 1999-01-26 International Business Machines Corporation Network server having dynamic load balancing of messages in both inbound and outbound directions
US5854787A (en) * 1996-12-13 1998-12-29 Rockwell International Method for reducing message error rate within real-time exchange radio-frequency communications systems
US6791947B2 (en) * 1996-12-16 2004-09-14 Juniper Networks In-line packet processing
US5898667A (en) 1996-12-31 1999-04-27 Northern Telecom Limited SS7 network management primeship
US6172990B1 (en) * 1997-06-19 2001-01-09 Xaqti Corporation Media access control micro-RISC stream processor and method for implementing the same
US6301257B1 (en) * 1997-03-19 2001-10-09 Nortel Networks Limited Method and apparatus for transmitting data frames between switches in a meshed data network
JP3607466B2 (ja) 1997-09-05 2005-01-05 株式会社東芝 ルータ装置及び制御フレーム処理方法
US6304910B1 (en) 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6064674A (en) * 1997-10-22 2000-05-16 International Business Machines Corporation Method and apparatus for hardware forwarding of LAN frames over ATM networks
US6195334B1 (en) * 1997-12-18 2001-02-27 Advanced Micro Devices, Inc. Apparatus and method for terminating a data transfer in a network switch in response to a detected collision
US6259699B1 (en) * 1997-12-30 2001-07-10 Nexabit Networks, Llc System architecture for and method of processing packets and/or cells in a common switch
JPH11205339A (ja) 1998-01-19 1999-07-30 Hitachi Ltd Atm交換機
TW358911B (en) * 1998-01-23 1999-05-21 Accton Technology Corp Data package sorting transmission method
US6307860B1 (en) * 1998-04-03 2001-10-23 Mmc Networks, Inc. Systems and methods for data transformation and transfer in networks
US6330584B1 (en) * 1998-04-03 2001-12-11 Mmc Networks, Inc. Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6266340B1 (en) * 1998-04-03 2001-07-24 Vertical Networks, Inc. Systems and methods for multiple voice data communication which includes interface cards including configurable clocks that are dynamically coupled to a TDS bus
US6490281B1 (en) * 1998-06-04 2002-12-03 International Business Machines Corporation Apparatus including a scalable multiprotocol communications adapter using modular components and a method for transmitting data frames via scalable multiprotocol communication adapters
US6560228B2 (en) * 1998-07-01 2003-05-06 Agilent Technologies, Inc. Generation of informative MAC headers for analysis of ATM routed LAN frames
US6393457B1 (en) * 1998-07-13 2002-05-21 International Business Machines Corporation Architecture and apparatus for implementing 100 Mbps and GBPS Ethernet adapters
US6400717B1 (en) * 1998-10-16 2002-06-04 Samsung Electronics Co., Ltd. Device for booting a multiprocessor embedded system and method of operation
US6873630B1 (en) * 1999-05-19 2005-03-29 Sun Microsystems, Inc. Method and apparatus for a multi-gigabit ethernet architecture
US6393479B1 (en) * 1999-06-04 2002-05-21 Webside Story, Inc. Internet website traffic flow analysis
US6985431B1 (en) * 1999-08-27 2006-01-10 International Business Machines Corporation Network switch and components and method of operation
US6766381B1 (en) * 1999-08-27 2004-07-20 International Business Machines Corporation VLSI network processor and methods
US6404752B1 (en) * 1999-08-27 2002-06-11 International Business Machines Corporation Network switch using network processor and methods
US6671725B1 (en) * 2000-04-18 2003-12-30 International Business Machines Corporation Server cluster interconnection using network processor
US6772218B1 (en) * 2000-04-18 2004-08-03 International Business Machines Corporation Server acceleration 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
US6829697B1 (en) * 2000-09-06 2004-12-07 International Business Machines Corporation Multiple logical interfaces to a shared coprocessor resource
US7047303B2 (en) * 2001-07-26 2006-05-16 International Business Machines Corporation Apparatus and method for using a network processor to guard against a “denial-of-service” attack on a server or server cluster
US7310685B2 (en) * 2002-08-29 2007-12-18 International Business Machines Corporation Method and system for reducing look-up time in packet forwarding on computer networks

Also Published As

Publication number Publication date
CN1399738A (zh) 2003-02-26
ATE333678T1 (de) 2006-08-15
WO2001016763A1 (en) 2001-03-08
EP1226501A4 (de) 2003-10-01
US7620048B2 (en) 2009-11-17
JP2003508954A (ja) 2003-03-04
EP1226501A1 (de) 2002-07-31
KR100466083B1 (ko) 2005-01-13
US6985431B1 (en) 2006-01-10
JP2006020371A (ja) 2006-01-19
US20050232270A1 (en) 2005-10-20
KR20020024330A (ko) 2002-03-29
ES2265971T3 (es) 2007-03-01
US20050232205A1 (en) 2005-10-20
US20050232204A1 (en) 2005-10-20
US7257616B2 (en) 2007-08-14
EP1226501B1 (de) 2006-07-19
US20050243850A1 (en) 2005-11-03
DE60029467D1 (de) 2006-08-31
US7590057B2 (en) 2009-09-15
CN1307564C (zh) 2007-03-28
JP4066382B2 (ja) 2008-03-26

Similar Documents

Publication Publication Date Title
DE60029467T2 (de) Netzwerkschalter und komponenten und betriebsverfahren
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
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
DE60030737T2 (de) Hochleistungs-Vermittlungselement und -Vermittlungssystem
DE69319757T2 (de) Verfahren zur Verbindung einer Leitungskarte mit einer Adressenerkennungseinheit
DE60131596T2 (de) Stapelbare Sucheinrichtung
DE60309947T2 (de) Hochgeschwindigkeitsprotokoll für die Verbindung von modularen Netzwerkelementen
DE69233588T2 (de) ATM-Vermittlungsanordnung
DE19947430A1 (de) Datenpaket-Verarbeitungsvorrichtung und -verfahren sowie Datenpaket-Vermittlung
DE60112011T2 (de) Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen
DE69733741T2 (de) Vermittlungssystem
DE60217988T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen mit Blockierung der Einfügung
DE69031885T2 (de) Leitweglenkungsvorrichtung und -verfahren für lokales Maschennetzwerk hoher Geschwindigkeit
DE69737676T2 (de) Vermittlungssystem zur Verbindung von Leitungsadaptern, das verteilte Elemente enthält
DE69107929T2 (de) Fernmeldesteuerungsanordnung zwischen einem Rechner und einer Mehrheit von ISDN-artigen Endgeräten.

Legal Events

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