DE69428186T2 - Mehrfachsendeeinrichtung - Google Patents

Mehrfachsendeeinrichtung

Info

Publication number
DE69428186T2
DE69428186T2 DE69428186T DE69428186T DE69428186T2 DE 69428186 T2 DE69428186 T2 DE 69428186T2 DE 69428186 T DE69428186 T DE 69428186T DE 69428186 T DE69428186 T DE 69428186T DE 69428186 T2 DE69428186 T2 DE 69428186T2
Authority
DE
Germany
Prior art keywords
output
vcn
cell
entry
packet
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
DE69428186T
Other languages
English (en)
Other versions
DE69428186D1 (de
Inventor
David Banks
Calamvokis Costas
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE69428186D1 publication Critical patent/DE69428186D1/de
Application granted granted Critical
Publication of DE69428186T2 publication Critical patent/DE69428186T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/255Control mechanisms for ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf eine Sammelsende (multicasting)-Vorrichtung zum Sammelsenden von Paketen (die Pakete mit festen Längen oder "Zellen" umfassen) und insbesondere, aber nicht ausschließlich, auf einen ATM-Schalter mit einer Fähigkeit zum Sammelsenden von Zellen.
  • Der ATM (asynchroner Übertragungsmodus) ist ein Multiplex- und Schaltverfahren zum Übertragen von Daten über ein Netz, das Zellen mit festen Größen verwendet, die in dem Sinn synchron sind, daß sie streng periodisch auf dem physikalischen Medium erscheinen. Jede Zelle weist einen Nutzlastabschnitt und einen Anfangsblock auf, wobei Letzterer ein Etikett umfaßt, das die Zelle einer Kommunikationsstufe zwischen Sende- und Empfangsnetzendsystemen zuordnet. Diese Kommunikationsstufe kann die Übertragung von vielen Zellen aus dem Sendeendsystem, möglicherweise an mehrere Empfangsendsysteme, einschließen. Der ATM ist in dem Sinn asynchron, daß Zellen, die zu der gleichen Kommunikationsstufe gehören, nicht notwendigerweise zu periodischen Intervallen auftreten.
  • Bei dem ATM sind die Etiketten, die an die Zellen angefügt sind, vom Kontext abhängige Etiketten mit festen Größen, d. h., daß sie nur im Licht der Kontextinformationen, die bereits bei dem Interpretationsnetzknoten festgesetzt werden, verständlich sind, wobei das Etikett allgemein bei einem Knoten durch das Etikett, das für den nächsten Knoten benötigt wird, ersetzt wird. Anders ausgedrückt ist der ATM eine virtuelle Schaltungstechnologie, die eine Aufbauphase für jede Kommunikationsstufe benötigt, um das geeignete Etikettewissen bei jedem Knoten festzulegen.
  • Die ATM-Technologie erfreut sich zunehmender Beliebtheit, weil sie einen annehmbaren Kompromiß beim Kombinieren von Merkmalen der Rechtzeitigkeit (die normalerweise den Schaltungsschalttechnologien zugeordnet sind) und einem statistischen Vorteil (der den Paketschalttechnologien zugeordnet ist) bieten kann. Der ATM stellt eine Einfach- Übertragungsmodus-Technologie zum Tragen aller Verkehrstypen in Aussicht, die Stimmen-, Unterhaltungsdienstleistungs- oder Computerverkehr umfassen.
  • Die vorliegende Erfindung ist im allgemeinen auf ATM- Systeme (und andere Systeme) unabhängig von spezifischen Implementierungsdetails, wie z. B. Zellengröße, anwendbar, wobei der Bezug auf den ATM in den beigefügten Ansprüchen entsprechend interpretiert werden sollte. Dennoch wird bei der folgenden Beschreibung der bestimmte Bezug auf die auftauchenden B-ISDN-ATM-Standards erfolgen, die durch das CCITT und auf das ATM-Forum entwickelt wurden (ersteres befaßt sich vornehmlich mit öffentlichen Netzen und letzteres mit Computerverwandten Benutzernetzen).
  • Tatsächlich variiert sogar bei diesen aufkommenden Standards die Semantik der Informationen, die sich in dem Anfangsblockabschnitt jeder Zelle befinden, abhängig davon, wo in dem Netz die Zelle erscheint (an seinem Rand oder intern), und abhängig von der Natur der darüberliegenden ATM- Adaptionsschicht, die ATM-Zellen in den Netzendsystemen verarbeitet. Wenn nicht anderweitig speziell angegeben, ist bei der folgenden Beschreibung das Zellenformat, das betrachtet wird, das B-ISDN-UNI(UNI = Benutzernetzschnittstelle)-Zellenformat für AAL5-Dienste ("AAL" bezieht sich auf die ATM-Adaptionsschicht, wobei AAL5 ein verbindungsausgerichteter, asynchroner Kommunikationsdienst mit variabler Bitrate ist, der geeignete für eine Computerkommunikation ist)
  • Fig. 1 der beigefügten Zeichnungen zeigt das Format einer derartigen Zelle in einem bytebreiten Format. Wie ersichtlich ist, besteht die Zelle aus einem 5-Byte-Anfangsblock und einer 48-Byte-Nutzlast von Benutzerdaten. Die Anfangsblockfelder sind wie folgt:
  • - GFC 4 Bits allgemeines Flußsteuerungsfeld;
  • - VPI 8 Bits Virtueller-Pfad-Indikatorfeld;
  • - VCI 16 Bits Virtueller-Kanal-Indikatorfeld;
  • - PT 3 Bits Nutzlasttypfeld;
  • - EOP 1 Bit Ende-des-Pakets-Feld;
  • - HEC 8 Bit Anfangsblockfehlerprüffeld;
  • Das VPI und das VCI bilden zusammen das virtuelle Schaltungsetikett für die Zelle bei einer bestimmten Verbindung, wobei dieses Etikett die Basis bildet, auf der die Zelle bei dem nächsten Netzknoten, auf den sie trifft, geleitet wird. Allgemein wird im ATM-Jargon eine virtuelle Schaltung ein "virtueller Kanal" bezeichnet und man kann sich vorstellen, daß die VPI-Felder eine Gruppe von virtuellen Kanälen bei einer Verbindung identifizieren, während das VCI einen bestimmten virtuellen Kanal in dieser Gruppe identifiziert.
  • Das EOP-Bit wird verwendet, um anzuzeigen, daß die Zelle die letzte Zelle einer Sequenz von Zellen ist, die gemeinsam eine Anwendungsdateneinheit (Paket) einer höheren Ebene ausmachen. Der Vorteil davon, dieses Ende von Paketinformationen sichtbar in den Zellenanfangsblock zu geben, ist, daß es allen Zellen, die ein Paket bilden, ermöglicht, gelöscht zu werden, wenn eine der Zellen verloren geht.
  • Eine ATM-Zelle, die bei einem Netzknoten durch ein Tor ankommt, wird gemäß den VPI- und VCI-Informationen, die in dem Zellenanfangsblock gespeichert sind und den Kontextinformationen, die in dem Knoten zur Aufbauzeit festgelegt werden, umgeleitet (oder geschalten). Die VPI- und VCI- Informationen werden verändert und die Zellen ausgegeben. Ein derartiger Knoten wird allgemein als ein ATM-Schalter 10 bezeichnet und weist begrifflich einen N-Tor-Schaltkern auf, der für ein Ausführen der folgenden Operationen bei den Zellen, die er handhabt, verantwortlich ist:
  • - Bestimmen, welche Zelle zu welchem Kanal gehört;
  • - Entscheiden, für welchen Kanal eine Zelle bestimmt ist und Leiten derselben dorthin; und
  • - Entscheiden unter Anforderungen nach einem Zugriff auf das geeignete Ausgangstor.
  • Der Schalter wird auch einen Typ von Prozessoreinheit zum Aufpassen auf einen Kanalaufbau und anderer Verwaltungsfunktionen, sowie eine Schnittstellenschaltungsanordnung zum schnittstellenmäßigen Verbinden des Schalterkerns mit den Verbindungen umfassen, die durch den Schalter verbunden sind, wobei diese Verbindungen mit jeweiligen externen Toren des Schalters verbunden sind.
  • Der Schaltkern ist allgemein konzipiert, um einen hohe Bandbreite aufzuweisen, was es dem Schalter ermöglicht, verwendet zu werden, um eine Mehrzahl von Verbindungen zu bedienen, die entweder von sich aus oder statistisch von niedriger Bandbreite sind, wobei diese Verbindungen zuerst zusammen einem Multiplexen unterzogen werden, bevor sie dem Schalterkern zugeführt werden. Umgekehrt wird der Ausgang des Schaltkerns einem Demultiplexen zum Durchlassen zu der geeigneten Verbindung unterzogen.
  • Fig. 2 zeigt eine bekannte Form eines ATM-Schalters, bei dem ein herkömmlicher Speicher verwendet wird, um zeitweilig alle Zellen, die durch den Schalter geleitet werden, zu speichern. Insbesondere ist eine Zahl von Eingangsverbindungen 4 mit einem Multiplexer 1 verbunden, der einen Schalterkern 2 füttert. Der Schaltkern wiederum gibt Zellen an einen Demultiplexer 3 aus, bei dem diese an die geeignete Ausgangsverbindung 5 verteilt werden. Allgemein liegen die Eingangs- und Ausgangsverbindungen 4, 5 in Paaren vor.
  • Der Multiplexer leitet zyklisch eine Zelle von jeder Eingangsverbindung 4 zu dem Schaltkern 2. Jede Zelle wird durch einen Spalter 6 in ihren Anfangsblock, der zu einem Anfangsblockkonverter 10 über eine Leitung 7 geleitet wird, und den Zellkörper gespalten, der aus dem Spalter bei einer Leitung 9 ausgegeben wird.
  • Der Anfangsblockkonverter 10 untersucht die VPI- und VCI- Informationen, die in jedem Anfangsblock enthalten sind, gemeinsam mit Eingangsverbindungsidentitätsinformationen, die über eine Leitung 8 von dem Multiplexer 1 zu ihm geleitet werden. Auf der Basis dieser Informationen erzeugt der Anfangsblockkonverter 10 einen neuen Anfangsblock mit einem geeigneten VPI und VCI und leitet den Anfangsblock auf einer Leitung 11 zu einem Kombinierer 12, mit dem die Leitung 9, die den Zellkörper trägt, auch verbunden ist. Der Kombinierer 12 rekombiniert dann den Zellanfangsblock und den Zellkörper und speichert die Zelle in einem gemeinsamen Speicher 13 unter einer Adresse, die auf der Leitung 14 ausgegeben wird. Für jede Ausgangsverbindung wird eine entsprechende Ausgangswarteschlange 16 in dem Schaltkern beibehalten. Wenn jede Zelle in dem gemeinsamen Speicher gespeichert ist, wird die entsprechende Adresse zu der Ausgangswarteschlange 16, die für diese Zelle geeignet ist, geleitet, wobei die Identität dieser Ausgangswarteschlange über eine Leitung 15 von dem Anfangsblockkonverter geliefert wird, um zu veranlassen, daß die Adresse in der korrekten Wartschlange gespeichert wird.
  • Der Demultiplexer 3 fragt zyklisch die Ausgangswarteschlange 16 über eine Leitung 17 ab, um jede Ausgangswarteschlange wiederum dazu zu veranlassen, die Adresse der nächsten Zelle, die für die entsprechende Ausgangsverbindung vorgesehen ist, auszugeben. Der Adressausgang von jeder Warteschlange wird durch eine Leitung 18 dem gemeinsamen Speicher 13 zugeführt, um die entsprechende Zelle dazu zu veranlassen, bei einer Leitung 19 an den Demultiplexer 3 ausgegeben zu werden. Der Demultiplexer richtet die Zellen dann zu der geeigneten Ausgangsverbindung 5.
  • Ein Problem bei diesem einfachen Aufbau ist, daß es für ein Sammelsenden, d. h., wo eine Zelle an eine Zahl von verschiedenen Ausgangsverbindungen ausgegeben werden soll, nicht gut angepaßt ist. Wenn z. B. ein Sammelsenden erreicht wird, indem die Adresse einer Zelle, die in allen geeigneten Ausgangswarteschlangen gespeichert ist, aufgewiesen wird, führt das nicht nur dazu, daß die Zelladresse mehrere Male gespeichert wird, sondern auch dazu, daß es nicht einfach ist, einen Mechanismus zu implementieren, um sicherzugehen, wann eine bestimmte Zelle auf alle vorgesehenen Verbindungen ausgegeben wurde.
  • Ein weiterer Nachteil der Anordnung aus Fig. 2 ist, daß die Zellen, die für die Zellenausgangsverbindung vorgesehen sind, auf einer Zuerst-Hinein-Zuerst-Hinaus-Basis bezüglich der betreffenden Ausgangswarteschlangen behandelt, werden.
  • Eine verbesserte Implementierung eines ATM-Schalters ist der Xunet-Schalter, der in "A High-Performance Queuing Engine for ATM Networks" (International Switching Symposium, 1992, C. R. Kalmanek, S. P. Morgan, and R. C. Restnick III) beschrieben wird. Bei diesem Schalter hat jedes Ausgangstor seinen eigenen Speicherbereich, dem die Zellen, die auf Ausgangsströmen, die dem Tor zugeordnet sind, ausgegeben werden sollen, zugeführt werden. Die Zellen, die an ein Ausgangstor geliefert werden, werden jedoch nicht auf einer Zuerst-Hinein-Zuerst-Hinaus-Basis behandelt, sondern statt dessen gemäß einem bestimmten Prioritätsschema geplant. Insbesondere weist jedes Ausgangstor 32k- Ausgangswarteschlangen auf, die permanent vorhanden sind und wie benötigt verwendet werden, um Zellen, die dem gleichen Ausgangsstrom, d. h. der gleichen VPI/VCI-Kombination zugeordnet sind, zu speichern. Jede Warteschlange weist eine gekennzeichnete Warteschlangenzahl QN auf, wobei diese Warteschlangenzahlen in 16 verschiedenen Prioritätslisten gebildet werden. Jede Warteschlangenzahl erscheint nur einmal in allen Prioritätslisten. Beim Bestimmen, welche Zelle als nächstes gesendet wird, sieht ein Planer auf die Prioritätslisten und nimmt die Warteschlangenzahl, die sich an dem Anfangsblock der Liste der Liste mit der höchsten Priorität, die etwas enthält, befindet. Diese Warteschlangenzahl wird dann benutzt, um auf die entsprechende Zellenwarteschlange zuzugreifen. Dann wird die Zelle an dem Anfangsblock dieser Warteschlange ausgegeben. Die Warteschlangenzahl wird dann zurück in die Prioritätslisten in Umlauf gebracht, wobei sie zu der gleichen Liste zurückgebracht werden kann, oder auch nicht, von der sie entnommen wurde.
  • Der Xunet-Schalter sorgt für ein flexibles Planen. Bezüglich eines Sammelsendens jedoch veranlaßt er jede Zelle, die sammelgesendet werden soll, dazu, eine entsprechende Zahl von Malen gemeinsam mit zugeordneten Steuerungsdaten reproduziert zu werden.
  • Ein weiterer Vorschlag zum Implementieren eines Sammelsendens bei Ausgangs-Puffer-Typ-Schaltern wird in "Traffic Management Circuit for the Shared Buffer Memory Switch with Multicasting", J. S. Wu u. a., Computer Communications, Bd. 16, Nr. 11, November 1993, Guilford GB, Seiten 736-739 beschrieben. Der offenbarte Schalter bewerkstelligt ein Sammelsenden, indem er jeder Zelle, die sammelgesendet werden soll, eine besondere Behandlung gibt. Die nächste Sammelsend-Zelle wird aus einem speziellen Ausgangspuffer genommen und in ein Register gegeben. Die Zelle wird dann während des Verlaufs des nächsten Ausgangszyklusses in die geeigneten Ausgangsströmen ausgegeben.
  • Zusammenfassung der Erfindung
  • Gemäß einem Aspekt der vorliegenden Erfindung wird eine Vorrichtung zum Empfangen zumindest eines Eingangsstroms von Paketen, von denen jedes einen Paketkörper aufweist, und zum Sammelsenden dieses Stroms als eine Mehrzahl von Ausgangsströmen von Paketen geschaffen, indem die Paketkörper der Pakete des Eingangsstroms in Pakete des Ausgangsstroms hinüberkopiert werden, wobei die Vorrichtung folgende Merkmale aufweist:
  • - eine Eingangseinrichtung zum Empfangen von Paketen und zum Bestimmen, zu welchem Eingangsstrom jedes Paket gehört,
  • - eine Speichereinrichtung zum Speichern sowohl der Paketkörper der Pakete, die von der Eingangseinrichtung empfangen werden, als auch eines entsprechenden Frequenzdatensatzes für jeden Eingangsstrom, wobei jeder Sequenzdatensatz dazu dient, die Paketkörper, die für den entsprechenden Eingangsstrom empfangen wurden, in der Reihenfolge des Empfangs zu ordnen, wobei die Speichereinrichtung, die eine Eingangssteuerung, auf der ein neuer Paketkörper gespeichert wird, die den Sequenzdatensatz des Eingangsstroms aktualisiert, zu dem das Paket, wie durch die Eingangseinrichtung bestimmt, gehört, und eine Ausgangssteuerung zum Beibehalten, für jeden Ausgangsstrom, eines jeweiligen Sequenzpositionsindikators umfaßt, der in den Sequenzdatensatz des entsprechenden Eingangsstroms verweist, um den nächsten Paketkörper anzuzeigen, der bei dem betreffenden Ausgangsstrom gesendet werden soll, und
  • - eine Ausgangseinrichtung zum Planen eines Ausgangs bei den Ausgangsströmen zum Kommunizieren mit der Ausgangssteuerung der Speichereinrichtung, um den Paketkörper, der als nächstes auf dem gegenwärtig geplanten Ausgangsstrom ausgegeben werden soll, zu identifizieren, und zum Wiedergewinnen und Ausgeben des identifizierten Paketkörpers bei dem geplanten Ausgangsstrom.
  • Durch diese Anordnung werden die Warteschlangen für die Ausgangsströme auf die entsprechenden Listen von Paketen abgebildet, die bei den Eingangsströmen empfangen wurden, wodurch effiziente und flexible Steuerungsstrukturen geschaffen werden.
  • Vorzugsweise werden die Paketkörper und die Sequenzdatensätze separat in der Speichereinrichtung gehalten, wobei jeder Sequenzdatensatz eine verbundene Liste von Paketdetaileinträgen mit jeweils einem Paketkörperzeiger zu einem jeweiligen entsprechenden Paketkörper und einem Nächster- Eintrag-Zeiger zu dem nächsten Eintrag, wenn es einen gibt, in der gleichen Liste aufweist. In diesem Fall baut, wenn ein neuer Paketkörper gespeichert ist, die Eingangssteuerung einen entsprechenden Paketdetaileintrag in der geeigneten verbundenen Liste auf, indem unter anderem der Paketkörperzeiger dieses Eintrages eingestellt wird, um auf den neu gespeicherten Paketkörper zu zeigen. Jeder Sequenzpositionsindikator, der durch die Ausgangssteuerung für jeden Ausgangsstrom beibehalten wird, zeigt auf den Paketdetaileintrag für den Paketkörper, der als nächstes für den betreffenden Ausgangsstrom gesendet werden soll.
  • Vorzugsweise weist jeder Paketdetaileintrag einen Sammelsendezählungsgegenstand auf, der, nachdem der Eintrag aufgebaut ist, durch die Eingangssteuerung, auf den Wert der Zahl von Ausgangsströmen eingestellt wird, die von dem Eingangsstrom, der der verbundenen Liste zugeordnet ist, sammelgesendet werden soll, von der der Paketdetaileintrag ein Teil ist. Die Ausgangssteuerung wird dann angeordnet, um den Zählungsgegenstand eines Paketdetaileintrags jedesmal zu dekrementieren, wenn die Ausgangseinrichtung den entsprechenden Paketkörper ausgibt, bis der Paketkörper an alle relevanten Ausgangsströme gesendet wurde, woraufhin die Ausgangssteuerung die Entfernung des Eintrags von der entsprechenden verbundenen Liste verursacht.
  • Allgemein wird jeder Eingangsstrom in der Vorrichtung durch einen entsprechenden Eingangsidentifizierer identifiziert, wobei die Eingangseinrichtung diesen Identifizierer für jedes neue Paket, das empfangen wurde, schafft, um dadurch anzuzeigen, zu welchem Eingangsstrom das Paket gehört. Ferner behält die Eingangssteuerung der Speichereinrichtung allgemein jeweilige Listenzeiger, die auf das Ende jeder der Listen zeigen, und erhält eine Zuordnung zwischen jedem Eingangsidentifizierer und dem Listenzeiger, der auf die verbundene Liste zeigt, die dem Eingangsstrom zugeordnet ist, der durch den Eingangsidentifizierer identifiziert wurde.
  • Vorzugsweise weist jede verbundene Liste einen Endeintrag ohne paketbezogene Informationen auf, wobei der Listenzeiger, der durch die Eingangssteuerung behalten wird, angeordnet wird, um auf den Endeintrag der entsprechenden verbundenen Liste zu zeigen. In diesem Fall fügt die Eingangssteuerung, wenn ein neuer Paketkörper gespeichert wird, einen neuen Endeintrag zu der relevanten verbundenen Liste hinzu und verwendet den früheren Endeintrag dieser Liste als den Paketdetaileintrag für die neuen Paketkörper, wobei die Steuerungseinrichtung den Listenzeiger für diese Liste entsprechend anpaßt.
  • Vorzugsweise wird jeder Ausgangsstrom in der Vorrichtung durch einen entsprechenden Ausgangsidentifizierer identifiziert, wobei die Ausgangseinrichtung eine Sendesteuerungseinrichtung zum Bewirken eines Ausgangsplanens der Ausgangsströme auf der Basis der Ausgangsidentifizierer und zum Anzeigen des nächsten geplanten Ausgangsstroms durch Ausgeben des entsprechenden Ausgangsidentifizierers umfaßt. In diesem Fall wird die Ausgangssteuerung der Speichereinrichtung eine Zuordnung zwischen jedem Ausgangsidentifizierer und dem Sequenzpositionsindikator für den Ausgangsstrom, der durch den Ausgangsidentifizierer identifiziert wurde, beibehalten. Wenn sie mit einem Ausgangsidentifizierer durch die Ausgangseinrichtung geliefert wird, verwendet die Ausgangssteuerung diese Zuordnung, um den Paketkörperzeiger für den nächsten Paketkörper, der auf dem betreffenden Ausgangsstrom ausgegeben werden soll, wiederzugewinnen.
  • Vorzugsweise weist die Sendesteuerungseinrichtung folgende Merkmale auf:
  • - Planungseinrichtung zum Bewirken eines Ausgangsplanens auf der Basis der Ausgangsidentifizierer und zum Anzeigen des nächsten geplanten Ausgangsstroms durch Ausgeben des entsprechenden Ausgangsidentifizierers, wodurch dieser aus der Planungseinrichtung entfernt wird und,
  • - Injizierungseinrichtung zum Injizieren von Ausgangsidentifizierern in die Planungsvorrichtung, wobei die Injizierungseinrichtung ansprechend auf den Empfang durch die Eingangsvorrichtung von zumindest bestimmten der Pakete, die dabei neu empfangen wurden, ist, um die Ausgangsidentifizierer von zumindest einigen der Ausgangsströme, die den Eingangsströmen zugeordnet sind, zu denen die bestimmten Pakete gehören, in die Planungseinrichtung zu injizieren;
  • wobei die Sendesteuerungseinrichtung derartig ist, daß ein Ausgangsidentifizierer nur einmal zu jedem Zeitpunkt in der Planungseinrichtung vorhanden sein kann, wobei die Sendesteuerungseinrichtung ferner eine Zurückführungseinrichtung aufweist, die ansprechend auf den Zustand des Sequenzdatensatzes, der relevant für den Ausgangsidentifizierer ist, der als letztes durch die Planungseinrichtung ausgegeben wurde, um diesen Ausgangsidentifizierer zu der Planungseinrichtung zurückzubringen, falls der Sequenzdatensatz anzeigt, daß es zumindest einen weiteren Paketkörper gibt, der verfügbar zum Senden auf dem betreffenden Ausgangsstrom ist.
  • Bei einem bevorzugten Ausführungsbeispiel der Erfindung:
  • - wird jeder Paketkörper nur einmal in der Speichereinrichtung gespeichert,
  • - haben die Sequenzdatensätze zusammen einen jeweiligen Eintrag für jeden Paketkörper, wobei jeder Eintrag einen Zeiger auf den entsprechenden Paketkörper umfaßt, und wobei jeder Eintrag nur einmal in allen Sequenzdatensätzen vorhanden ist, und
  • - wird jeder Ausgangsstrom in der Vorrichtung durch einen jeweiligen Ausgangsidentifizierer identifiziert, wobei die Ausgangseinrichtung eine Sendesteuerungseinrichtung zum Bewirken eines Ausgangsplanens auf der Basis der Ausgangsidentifizierer umfaßt, wobei jeder Identifizierer aktiv nicht mehr als einmal zu jedem Zeitpunkt in der Sendesteuerungseinrichtung vorhanden ist.
  • Die vorliegende Erfindung ist für die Implementierung von Sammelsende-ATM-Schaltern (wobei jedes Paket dann eine Zelle mit fester Länge ist) besonders geeignet.
  • Kurze Beschreibung der Zeichnungen
  • Ein ATM-Schalter, den die Erfindung umfaßt, wird nun insbesondere mittels nicht einschränkender Beispiele bezugnehmend auf die beigefügten schematischen Zeichnungen beschrieben. Es zeigen:
  • Fig. 1 ein Diagramm des Formates einer Standard-ATM-UNI- Zelle für eine AAL5-Verbindung, wobei diese Figur bekannter Stand der Technik ist und bereits oben besprochen wurde;
  • Fig. 2 ein Diagramm eines allgemeinen ATM-Schalter- Aufbaus, bei dem Niedriggeschwindigkeitsverbindungen zuerst zusammen einem Multiplexen unterzogen werden, bevor sie einem Tor des ATM- Schaltkerns zugeführt werden, wobei dieser allgemeine Aufbau bekannt ist und bereits oben besprochen wurden;
  • Fig. 3 ein Diagramm auf hoher Ebene des ATM-Schalters, der in der Erfindung ausgeführt wird;
  • Fig. 4 ein Blockdiagramm eines Schaltkernblockes des Schalters aus Fig. 3;
  • Fig. 5 eine Tabelle, die einen Bedienplan für die Schaltkerntore darstellt;
  • Fig. 6 ein Blockdiagramm einer Adapterkarte des Schalters aus Fig. 3.
  • Fig. 7 eine Tabelle, die einen Bedienplan für die externen Schalttore der Adapterkarte aus Fig. 6 darstellt;
  • Fig. 8 ein Funktionsblockdiagramm einer Steuerung des Schaltkernblocks aus Fig. 4;
  • Fig. 9 ein Diagramm, das Torwarteschlangen zeigt, die durch einen Planer der Steuerung aus Fig. 8 behalten werden;
  • Fig. 10 ein Diagramm eines Haupt-VCN-Nachschlagblocks der Steuerung aus Fig. 8;
  • Fig. 11 ein Diagramm, das zwei Verfahren zum Fallenlassen einer AAL5-Verbindungszelle zeigt, nachdem eine Zelle des Pakets fallengelassen wurde;
  • Fig. 12 ein Diagramm von Datenstrukturen, die verwendet werden, um verschiedene Listen und Warteschlangen in einen Zelldetail-Warteschlangenblock der Steuerung aus Fig. 8 zu implementieren;
  • Fig. 13 ein Diagramm, das die Hinzufügung der Details einer neu angekommenen Zelle zu einer Eingangszellenstromliste zeigt;
  • Fig. 14 ein Flußdiagramm, das den Betrieb einer Ausgangssteuerung des Warteschlangenblocks der Steuerung aus Fig. 8 zeigt;
  • Fig. 15 ein Diagramm, das den Zweck und Effekt des Stoppbits zeigt, das in jedem Zellendetaileintrag der Listen und Warteschlangen enthalten ist, die in dem Warteschlangenblock beibehalten werden;
  • Fig. 16 ein Diagramm von Datenstrukturen zum Implementieren eines Sammelsendeexpanders der Steuerung aus Fig. 8;
  • Fig. 17 ein Diagramm, das eine verbesserte Inkrementierung der Datenstrukturen aus Fig. 16 darstellt;
  • Fig. 18 eine Kredit-Eimer-Plan-Tabelle, die für Garantierte-Bandbreite-Bedienungen beibehalten wird;
  • Fig. 19 ein Diagramm, das den Betrieb eines Auswählbarkeitssteuerungsblocks der Steuerung aus Fig. 8 zeigt;
  • Fig. 20 einen Bedienplan, der durch den Auswählbarkeitssteuerungsblock betrieben wird;
  • Fig. 21 ein Diagramm von Datenstrukturen, die bei einem Planungsblock der Steuerung aus Fig. 8 verwendet werden;
  • Fig. 22 ein Funktionsblockdiagramm der Steuerung aus Fig. 8, aber mit im Vergleich zu Fig. 8 veränderten Funktionsblockgrenzen; und
  • Fig. 23 ein Funktionsblockdiagramm, ähnlich dem aus Fig. 22, aber mit einer Variante der Steuerung.
  • Beste Art und Weise zum Ausführen der Erfindung Aufbauübersicht
  • Der ATM-Schalter, der nun beschrieben wird, weist eine hohe Bandbreite, N Tore und einen Schaltkern auf, mit dem Niedriggeschwindigkeitsverbindungen über Multiplexer/Demultiplexereinheiten schnittstellenmäßig verbunden werden, die jeweiligen Schaltkerntoren zugeordnet sind. Der Schaltkern bedient seine Tore zyklisch, um neue Zellen zum Verarbeiten jeweils einer zu einem Zeitpunkt anzunehmen. Es gibt so zwei Pegel des Multiplexens/Demultiplexens, die in dem Aufbau ausgeführt werden (natürlich mit der Ausnahme, wenn N = 1 gilt).
  • Insbesondere bezugnehmend auf Fig. 3 kann man sich auf der oberen Ebene den Schalter, der die Erfindung verkörpert, so vorstellen, daß er aus drei Haupttypen von Blocks besteht. In der Mitte befindet sich der N-Port-Schaltkern 20, wobei jedes Schaltkerntor 21 mit der gleichen vorbestimmten Geschwindigkeit, z. B. mit 662 Mb/s operiert. Eine Adapterkarte 22 ist an jedem der Tore 21 angebracht. Jede Adapterkarte 22 verbindet eine Zahl von externen Schalttoren 23 mit niedrigerer Geschwindigkeit schnittstellenmäßig mit einem Schaltkerntor. Schließlich gibt es die Prozessorplatine 24, die die Funktionen des Signalisierungs- und des virtuellen Kanal-Aufbaus durchführt.
  • Um der Schalterbeschreibung Spezifität zu geben, wird angenommen, daß die Schaltkerntore mit 622 Mb/s operieren. Es ist jedoch zu erkennen, daß diese Torgeschwindigkeit für die vorliegende Erfindung nicht wesentlich ist, wobei höhere und niedrigere Geschwindigkeiten möglich sind.
  • Der Aufbau des Schalters ist ein "Alles gemeinsam"-Aufbau. Das bedeutet, daß es keine wesentlichen Quellen gibt, die einem bestimmten Tor gewidmet sind, wobei ein Puffern und eine Intelligenz zentralisiert sind. So beinhalten die Adapterkarten fast kein Puffern und keine Intelligenz.
  • Ein gemeinsamer Haupttaktgeber 25 führt Taktsignale allen drei Hauptschaltblöcken (Schaltkern 20, Adapterkarten 22, Prozessor 24) zu, wobei lokale Nebentakteinheiten 26 geeignete lokale Taktsignale erzeugen. Diese Anordnung stellt sicher, daß die Taktgeschwindigkeiten eine konstante vorbestimmte Beziehung aufweisen. Eine Leitung 27 liefert ein globales sychronisierendes Signal aus dem Prozessorblock 24 zu dem Schaltkern 20 und den Adapterkarten 22, um einen Betrieb der Blocks beim Start zu synchronisieren.
  • Die folgenden drei Teilabschnitte beschreiben jeweils eine der drei oben erwähnten Hauptblocks detaillierter.
  • N-Port-Schaltkern 20
  • Ein Blockdiagramm des N-Port-Schaltkerns 20 ist in Fig. 4 gezeigt, wobei der Schaltkern, wie ersichtlich ist, eine Schaltstruktur 30 mit Eingangs- und Ausgangstoren 37, 38 aufweist, die im allgemeinen in Paaren vorliegen und als solche die Schaltkerntore, sowie einen gemeinsamen Zellkörperspeicher 31, einen Freie-Adresse-Liste-Speicher 32, eine Steuerung 33 und einen Kommunikationsblock 34 zum Ausführen einer ATM-Adaptionsschicht- und weiterer höherer Kommunikationsschichtenverarbeitung von Zellen, die für die Steuerung gedacht sind oder von ihr kommen (wodurch es letzterer ermöglicht wird, über das Netz zu kommunizieren, von dem der Schalter einen Teil bildet).
  • Bei dieser Abstraktionsebene ist der Betrieb des Schaltkerns sehr einfach. Die N Eingangstore 37 werden in einer strengen Reihenfolge mit jeweils einer Zelle zu einem Zeitpunkt bedient. Wenn eine Zelle in einem der Eingangstore ankommt, schreibt die Struktur 30 den Zellkörper mit einer Adresse in den Gemeinsamer-Zellkörper-Speicher 31, die aus dem Freie-Adresse-Listenspeicher 32 genommen wurde. Diese Adresse wird auch gemeinsam mit dem Anfangsblock der Zelle, auf die sie sich bezieht, zu der Steuerung 33 geleitet. Weil die Eingangstore 37 in einer festen Reihenfolge bedient werden, kann die Steuerung 33 die Quelle der Zelle aus der Ankunftszeit des Anfangsblockes erkennen.
  • Die Steuerung 33 speichert und verarbeitet die Anfangsblöcke und Zellkörperadressen der ankommenden Zellen. Es trifft auch Entscheidungen darüber, welche Zelle als nächstes bei jedem Ausgangstor 38, basierend auf dem Warteschlangenmodell und Planungstaktiken (die hier später beschrieben werden), gesendet werden soll. Um eine Zelle zu senden, gibt die Steuerung den Zellanfangsblock und die Adresse, unter der der Zellkörper gespeichert ist, aus. Die Struktur 30 liest den Zellkörper aus dem Gemeinsamer-Zellkörper- Speicher 31, kombiniert ihn mit dem Anfangsblock und sendet die Zelle bei einem Ausgangstor. Da die Ausgangstore ebenfalls in einer festen Reihenfolge bedient werden, wird das Ziel der Zelle durch die Zeit bestimmt, zu der die Steuerung den Anfangsblock und die Adresse sendet. Ebenso wie die Hauptschaltkerntore (Eingangs/Ausgangstorpaare 37, 38), an die sich die Adapterkarten 22 anheften, unterstützt die Struktur 30 auch zwei langsamere Tore. Eines dieser Tore 39 wird durch den Prozessor 24 verwendet, um Zellen zu senden und zu empfangen, wobei das andere von der Steuerung verwendet wird, um Flußsteuerungszellen über die Einheit 34 zu senden und zu empfangen.
  • Die Bandbreite des Gemeinsamer-Zellkörper-Speichers 31 und der Steuerung 33 ist genügend, um empfangende Zellen aus allen Eingangstoren 37 und sendende Zellen zu allen Ausgangstoren 38 bei der Maximalgeschwindigkeit dieser Tore unterzubringen. Das Takten der Bestandteilselemente des Schaltkerns 20 wird durch die lokale Takteinheit 26 gesteuert.
  • Wenn das Planen des Schaltkernbetriebs detaillierter betrachtet wird, muß, wenn die Periode zwischen aufeinanderfolgenden Zellankünften bei der gegebenen Hauptschaltkerntorgeschwindigkeit (622 Mb/s) gleich T ist, die Struktur 30, für einen N-Tor-Schaltkern, in der Lage sein, N Zellen in jeder Periode T zu empfangen, d. h. eine Zelle von jedem Hauptschaltkerneingangstor 37. Ähnlich muß die Struktur in der Lage sein, N Zellen in der Periode T zu senden, d. h. eine Zelle für jedes Ausgangstor 38. Die Struktur 30 muß auch in der Lage sein, die Übertragung von Zellen durch den Prozessor und Steuerungstore zu handhaben.
  • Die Struktur weist grundlegend eine Mehrzahl von Schieberegistern auf, in die und aus denen Zellen durch Verschieben, durch die Hauptschalttore, übertragen werden, wobei diese Übertragungen zu der gleichen Zeit für alle Tore ablaufen. Die Übertragung von Zellkörperdaten zwischen den Schieberegistern der Struktur 30 und dem gemeinsamen Speicher 31 und der Zellanfangsblöcke zu/aus der Steuerung 33 wird dann durch Parallelübertragung aus/zu den Schieberegistern gemäß einem vorbestimmten Zyklus von Übertragungen getätigt, die sich wiederum mit jedem Tor beschäftigen.
  • Der allgemein Vorgang, der für jede Zelle, die durch ein Schaltkerntor hinein übertragen wird, eingeschlossen ist, ist so, daß der Zellanfangsblock zuerst in die Struktur verschoben wird, gefolgt von dem Zellkörper. Während der Zellkörper hinein verschoben wird, wird der Zellanfangsblock heraus zu der Steuerung übertragen, wobei dann während der nachfolgenden Übertragung des Zellkörpers zu dem Speicher 31 der Anfangsblock der nächsten Zelle für das betreffende Tor dann in die Struktur verschoben wird. Ein ähnlicher, aber entgegengesetzter Vorgang wird eingehalten, um eine Zelle auszugeben.
  • Was die Übertragungen zu dem Zellkörperspeicher 31 anbelangt, geht der Übertragungszyklus einfach wiederum um jedes Hauptschalttor herum (wenn es z. B. vier Eingangstore 37 und vier Ausgangstore 38 gibt, kann der Übertragungszyklus zuerst jedes Eingangstor bedienen, das wiederum Zellkörperdaten an den Speicher 31 überträgt, und dann jedes Ausgangstor bedienen, das wiederum Daten aus dem Speicher 31 an die Struktur überträgt). Die Übertragung von Zellkörperdaten zwischen dem Speicher 31 und den Schieberegistern, die der Steuerung und den Prozessortoren zugeordnet sind, wird durch die Struktur in vorbestimmten redundanten Abschnitten des Zellübertragungszyklusses für die Hauptschaltkerntore gehandhabt.
  • Die Übertragung der Zellanfangsblöcke zwischen der Struktur 30 und der Steuerung 33 kann einem ähnlichen Übertragungszyklus wie dem für die Zellkörperübertragung folgen, vorausgesetzt, daß die Steuerung 33 Anfangsblöcke sequentiell (die Steuerung bewirkt ihr Verarbeiten sequentiell) empfängt und ausgeben kann. So müssen die Steuerung und Prozessortore ihren eigenen Schlitzen in einem Gesamttorbedienzyklus zugeteilt sein, dem die Steuerung folgt. Selbstverständlich werden die Steuerung und Prozessortore nicht so häufig wie die Hauptschaltkerntore bedient und allgemein werden, wenn der Prozessor und die Steuerungstore mit 1/n der Geschwindigkeit der Haupttore laufen, der Prozessor und die Steuerungstore nur einmal bei jeder n-ten Bedienung der Haupttore bedient. Das Ergebnis ist ein Gesamttorbedienzyklus, wie er z. B. in Fig. 5 für einen Schaltkern mit vier Haupttoren P1 bis P4 dargestellt ist, wobei dieser Zyklus sowohl für den Eingang der Anfangsblöcke zu der Steuerung 33 als auch für den Ausgang der Anfangsblöcke aus der Steuerung zutrifft (tatsächlich müssen die Zyklen für Eingang und Ausgang nicht die gleichen sein, im allgemeinen wird dies aber der Fall sein)
  • Die Zellanfangsblöcke, die zu der Steuerung 33 geleitet werden, werden ihren entsprechenden Zellkörpern durch die Adressen zugeordnet, die verwendet werden, um die Zellkörper in dem Speicher 31 zu speichern, wobei diese Adressen mit den Anfangsblockdaten in der Steuerung 33 gespeichert werden. Es wird zu erkennen sein, daß die Adresse, unter der ein Zellkörper gespeichert wird, an die Steuerung 33 mit einem Planen geliefert werden muß, das geeignet ist, um sicherzustellen, daß sie mit dem korrekten Anfangsblock gespeichert wird.
  • Wie später erklärt wird, können bestimmte Zellen, die durch die Hauptschaltkerntore geliefert werden, leere Zellen sein (oder genauer gesagt Zellen, die ignoriert werden sollen), wobei diese Bedingung durch die Werte des VPI und des VCI, die in dem Zellanfangsblock auf Null eingestellt werden, angezeigt wird. Das Vorhandensein einer derartigen Zelle ändert den Vorgang des Übertragens des Zellkörpers zu dem Speicher 31 oder des Zellanfangsblockes zu der Steuerung 33 nicht. Wenn die Steuerung 33 herausfindet, daß das VPI und VCI des gleich Null ist, leitet sie jedoch einfach die zugeordnete Adresse, unter der der Zellkörper gespeichert wurde, zurück zu der freien Adressliste 32, wobei es nicht nötig ist, daß im Speicher 31 selbst eine Handlung erfolgt.
  • Adapterkarte 22
  • Jede Adapterkarte kombiniert eine Zahl von externen Eingangs/Ausgangstorpaaren in ein Schaltkerntor. Die externen Eingangs/Ausgangstore bei einer Adapterkarte können aus jeder Kombination von Verbindungen bestehen, vorausgesetzt, die Bandbreite dieser Verbindungen zusammengezählt ist kleiner als die Schaltkerntorgeschwindigkeit. Wenn z. B. die Schaltkerntorgeschwindigkeit 622 Mb/s ist, kann eine Adapterkarte zwölf 51 Mb/s-Tore oder vier 155 Mb/s-Tore oder eine Mischung von Geschwindigkeiten, wie z. B. drei 155 Mb/s-, ein 100 Mb/s- und ein 51 Mb/s-Tor, enthalten.
  • Der Betrieb der Adapterkarte ist sehr einfach. Größtenteils sieht sie sich die Zellen, die sie handhabt, nicht an. Eine Ausnahme davon ist das Anfangsblock-Fehler-Prüf (HEC) -Feld jeder Zelle, das von der Adapterkarte für Zellen, die herausgehen, erzeugt und von der Adapterkarte für Zellen, die ankommen, geprüft wird. Wenn das HEC für eine ankommende Zelle versagt, wandelt die Adapterkarte die Zelle in eine leere Zelle um, indem das VPI- und das VCI-Feld der Zelle auf Null eingestellt werden.
  • Ein Beispiel einer Adapterkarte 32 ist in Fig. 6 dargestellt, die fünf externe Niedriggeschwindigkeitstore A bis E schnittstellenmäßig mit einem Schaltkerntor verbinden soll. Nur die Tor-A-Komponenten werden aus Gründen der Klarheit gezeigt. Die Adapterkarte 22 weist folgende Elemente auf:
  • - eine jeweilige physikalische Schicht/Rahmen-Einheit 40 für jedes Tor A bis E. Die Einheiten 40 führen die oben erwähnten Anfangsblockfehlerprüffunktionen aus.
  • - ein Kleiner(2 Zellen)-Eingang-FIFO (Zuerst-Hinein- Zuerst-Hinaus) 41 für die Eingangsseite jedes Tors A bis E; diese FIFO helfen, die Geschwindigkeiten der Eingangstore an das Hauptkerntor anzupassen.
  • - eine jeweilige Einheit 42 zum Erfassen, wann der Inhalt eines entsprechenden der Eingangs-FIFO 41 unter eine Menge, die gleich einer Zelle ist, fällt.
  • - ein Kleiner-Ausgang-FIFO 43 für die äußere Seite jedes Tors A bis E; diese FIFO helfen, die Geschwindigkeit des Schaltkerntors an die der Ausgangstore anzupassen.
  • - eine jeweilige Einheit 44 zum Erfassen, wann der Inhalt eines entsprechenden der Ausgangs-FIFO 43 eine Menge, die einer Zelle entspricht, übersteigt.
  • - einen Zeitteilungsmultiplexer (Time-Division- Multiplexer) 45, der Zellen von jedem der Eingangstore einem Multiplexen in ein Schaltkerneingangstor 37 unterzieht. Zellen werden zyklisch in einer vorbestimmten Torordnung (weiter unten besprochen) gesendet, die in einer Eingangstorplaneinheit 46 beibehalten wird; der Start des Torplanzyklusses wird durch das globale Sychronisationssignal diktiert.
  • - einen Zeitteilungsdemultiplexer 47, der Zellen aus dem entsprechenden Schaltkernausgangstor 38 nimmt und diese an das geeignete Ausgangstor A bis E sendet. Zellen kommen in einer vorbestimmten Reihenfolge an, die in einer programmierbaren Ausgangstorplaneinheit 48 gehalten wird, die zu dem globalen Synchronisationssignal synchronisiert wird.
  • - eine lokale Takteinheit 26.
  • Wegen dieser engen funktionalen Zuordnung des Multiplexers 45 und des Demultiplexers 47 auf der einen Seite und dem zugeordneten Schaltkerntor auf der anderen Seite, werden der Multiplexer 45 und der Demultiplexer 47 durch Taktsignale getaktet, die aus dem Schaltkerntor geliefert werden, um eine synchronisierte Übertragung von Zellen zu/aus der Schaltkernstruktur 30 zu schaffen.
  • Das Schaltkerntor wird mit einer Geschwindigkeit betrieben, die etwas größer ist als die Gesamtgeschwindigkeit der externen Tore, die ihm zugeordnet sind (die Ausgangsseite dieser letzteren Tore wird aus der lokalen Takteinheit 26 getaktet, die entsprechend eingestellt wird). Ein Grund dafür ist, eine Variation der tatsächlichen Geschwindigkeit der Verbindungen, die mit den externen Toren verbunden sind, von ihren nominalen Werten unterzubringen. Dieses Überlaufen des Schaltkerntores bedeutet, daß die Eingangs- FIFO 41 schneller geleert werden, als sie gefüllt werden. Um damit fertig zu werden, wann immer der Inhalt eines der FIFO 41 unter eine Menge, die einer Zelle entspricht, fällt, sendet die zugeordnete Einheit 44 Signale an den Multiplexer 45, der eine Leere-Zelle-Einfügungseinheit 49 dazu veranlaßt, eine leere Zelle zu erzeugen und diese in dem geeigneten Zeitschlitz an die Steuerung 33 zu senden. Dadurch kann der Eingangs-FIFO wieder gefüllt werden.
  • Umgekehrt werden die Ausgangs-FIFO 43 schneller gefüllt, als sie geleert werden können. Dies wird durch die geeignete Einheit 44 beim Erfassen gehandhabt, daß der Inhalt ihres zugeordneten Ausgangs-FIFO 43 mehr als eine Zelle ist, wobei eine entsprechende Anzeige an die Steuerung, 33 geliefert wird. Wenn diese Anzeige vorhanden ist, wenn die Steuerung 33 sich vorbereitet, eine Zelle zu dem entsprechenden externen Tor zu senden, wird die Steuerung eine leere Zelle statt dessen an das externe Tor sende. Eine Einheit 50 des Demultiplexers 47 wird angeordnet, um diese leere Zelle zu erfassen und zu löschen, wodurch sich der FIFO 43 entleeren kann.
  • Wenn als nächstes die Reihenfolge des Bedienens der externen Tore, wie durch die Torpläne, die in den Einheiten 46 und 48 gespeichert sind, fest wurde, betrachtet wird, werden die Tore mit höheren Geschwindigkeiten klar ein häufigeres Bedienen benötigen als die Tore mit niedrigeren Geschwindigkeiten. Allgemein ausgedrückt stellt die Zellenperiode des Tors mit der niedrigsten Geschwindigkeit die Gesamtzykluszeit des Torplans ein, wobei dieses Tor mit der niedrigsten Geschwindigkeit nur einmal während des Zyklusses bedient werden muß, während die Tore mit höheren Geschwindigkeiten zweimal oder mehr bedient werden müssen. Fig. 7 zeigt einen möglichen Torplan für die Adapterkarte aus Fig. 6. Während jeder Zellenperiode T des zugeordneten Schaltkerntores wird eine Zelle zu/aus dem Schaltkerntor aus/zu dem externen Tor A bis D, das als nächstes auf dem Torplan steht, übertragen.
  • Prozessor
  • Die Prozessoreinheit 24 führt einen virtuellen Kanalverbindungsaufbau und -verwaltung durch, indem sie Anforderungen nach Verbindungen empfängt und Datenstrukturen in der Steuerung 33 handhabt. Der Prozessor initialisiert auch Steuerungsdatenstrukturen beim Hochfahren.
  • Um diese Funktionen zu erreichen, weist die Prozessoreinheit 24 zwei Schnittstellen zu dem Schaltkern auf. Die erste ist eine Zellenschnittstelle durch die Prozessoreingangs- und Ausgangstore der Schaltstruktur. Dies erlaubt dem Prozessor, Zellen zu senden und zu empfangen, genau so wie er in der Lage sein würde, wenn er an einem der Eingangs/Ausgangstore auf einer Adapterkarte angebracht wäre.
  • Die zweite Schnittstelle befindet sich direkt bei der Steuerung selbst (siehe Fig. 4), um es dem Prozessoren zu ermöglichen, auf interne Datenstrukturen in der Steuerung zuzugreifen, so daß er virtuelle Kanaldaten aufbauen und modifizieren kann. Der Prozessor greift auf die Steuerung zu, während die Steuerung untätig ist, weil eine leere Zelle empfangen wurde. Um sicherzustellen, daß genügend leere Zellen empfangen werden, wird der Schaltkern etwas schneller (ca. 10%) betrieben als die Geschwindigkeit, die benötigt wird, um die Eingangs- und Ausgangstore zu bewältigen, mit dem Ergebnis, daß die Adapterkarten-FIFO 41 periodisch unter ihre Ein-Zellen-Schwellen fallen, was die Leere- Zelle-Einbringungseinheiten 49 dazu veranlaßt, zu wirken.
  • Obwohl der Prozessor vollen Zugriff auf alle Datenstrukturen in der Steuerung hat, hat es keinen beliebigen Zugriff auf den Gemeinsamer-Zellkörper-Speicher.
  • Der Allgemeinbetrieb der Prozessoreinheit 24 beim Bewirken einer Initialisierung und eines Verbindungsaufbaus erfolgt gemäß den in der Technik bekannten Verfahren und wird deshalb nicht weiter beschrieben. Die Identität und Natur der tatsächlichen Steuerungsdatenstrukturen, die durch die Prozessoreinheit 24 aufgebaut und modifiziert werden, werden aus der nun folgenden Beschreibung der Steuerung deutlich werden.
  • Steuerungskonzepte und -überblick
  • Bevor die Datenstrukturen und Prozesse genauer beschrieben werden, die benutzt werden, um die Steuerung 33 zu implementieren, werden zuerst die Hauptkonzepte, die in ihren Betrieb eingebunden sind, bezugnehmend auf Fig. 8 gezeigt. Wie deutlich werden wird, ist die Weise, auf die Sammelsenden in der Steuerung gehandhabt werden, zentral für ihren Gesamtaufbau.
  • Gesamt-Externtor-Plan
  • Es ist wesentlich für die Steuerung 33, zu wissen, von welchem externen (Adapterkarten-) Tor ein Zellenanfangsblock empfangen wurde, weil die (VPI + VCI)-Informationen in jedem Anfangsblock nur eindeutig auf einer Pro-Verbindungs- Basis sind. Die Identität des externen Tors muß so einen Zellanfangsblock eindeutig identifizieren, wie er relevant für eine bestimmte Stufe der Kommunikation durch den Schalter ist. Eine Weise des Informierens der Steuerung über die relevante Externes-Tor-Identität läge darin, die Adapterkarten so anzuordnen, daß sie jeden Zellanfangsblock etikettieren. Es ist jedoch möglich, einen anderen Ansatz für die vorliegende Steuerung zu verwenden, weil sowohl die Reihenfolge, in der jede Adapterkarte ihre zugeordneten externen Tore bedient, als auch die Reihenfolge, in der diese Adapterkarten durch die entsprechenden Schaltkerntore bedient werden, vorbestimmt ist. So wird bei der vorliegenden Steuerung die Externes-Tor-Identität, die einem Zellanfangsblock zugeordnet ist, durch die Steuerung auf der Basis dessen bestimmt, wann der Anfangsblock empfangen wird. Insbesondere wird ein Externes-Tor-Plan beibehalten, der die Reihenfolge anzeigt, in der Zellanfangsblöcke von den externen Toren aller Adapterkarten, die mit dem Schaltplan verbunden sind, empfangen werden. Danach greift die Steuerung 33 auf diesen Plan in Planung mit dem Betrieb der Adapterkarten-Multiplexer 45, der Steuerung 33 und der Multiplexer 45 zu, die anfänglich durch das globale Synchronisationssignal, auf das oben Bezug genommen wurde, synchronisiert wurden. Der Externes-Tor-Plan selbst ist eine Kombination des Schaltkerntorzyklusses aus Fig. 5 (Anzeigen, in welcher Reihenfolge Zellanfangsblöcke von den Schaltkerntoren zu der Steuerung geleitet werden) und des Externes-Tor-Bedienzyklusses für jede Adapterkarte (siehe Fig. 7). Diese Kombination wird dadurch bewirkt, daß der nächste Eintrag bei dem Externes-Tor-Bedienzyklus jedesmal als eine Adapterkarte genommen wird, wenn das entsprechende Schaltkerntor bei dem Schaltkerntorzyklus erscheint. So werden für einen Schaltkern, der den Torzyklus aus Fig. 5 mit dem Schaltkerntor P1 aufweist, das mit einer Adapterkarte verbunden ist, die einen Bedienzyklus, wie in Fig. 7 gezeigt, aufweist, aufeinanderfolgende Bedienungen des Tors P1 in dem Zyklus aus Fig. 5 den aufeinanderfolgenden Bedienungen der externen Tore A bis E gemäß dem Zyklus aus Fig. 7 zugeordnet.
  • Der Externes-Tor-Plan ist natürlich abhängig von der Torkonfiguration der Adapterkarten, die mit dem Schaltkern verbunden sind. Aus diesem Grund wird der Externes-Tor-Plan beim Start des Schalters durch die Prozessoreinheit 24 bestimmt, die jede Adapterkarte abfragt, um ihren Externes- Tor-Bedienzyklus zu entdecken. Die Prozessoreinheit 24 speichert dann den Plan in einer geeignete Datenstruktur 60A der Steuerung 33, was es der Steuerung ermöglicht, auf den Plan wie benötigt zuzugreifen.
  • Der Externes-Tor-Plan wird nicht nur von der Steuerung benötigt, um die Quelle jedes neuen Zellanfangsblockes, den sie empfängt, zu bestimmen, sondern auch, um ihren Ausgang von Anfangsblöcken mit der vorbestimmten Reihenfolge zu koordinieren, in der die externen Tore verfügbar zum Schaltkernausgang gemacht werden (dies wird durch den kombinierten Betrieb der Struktur 30 und der Demultiplexer 47 auf den Adapterkarten bestimmt). Wie bereits angemerkt muß die Reihenfolge, in der Tore für Eingang und Ausgang bedient werden, nicht die gleiche sein, wird in der Regel aber gleich sein. Bei dem vorliegenden Fall wird die gleiche Allgemeinform vom Externes-Tor-Plan zum Ausgang aus der Steuerung verwendet wie zum Eingang, wobei die Externes- Eingangstor- und Ausgangstorpläne in Fig. 8 als 60A bzw. 60B bezeichnet werden.
  • Haupt- und Ausgangs-VCN
  • Um einen Fluß von zugeordneten Zellen in dem Schalter eindeutig zu identifizieren, wird eine VCN (virtual channel number = virtuelle Kanalzahl) von der Steuerung verwendet. Jeder Eingangs-Virtuell-Kanal hat seine eigene VCN, die sogenannte "Haupt-VCN" und jeder Ausgangs-Virtuell-Kanal hat seine eigene "Ausgangs-VCN". Für jede Einsendeverbindung durch den Schalter gibt es so eine Haupt-VCN und eine Ausgangs-VCN, während es für jede Sammelsende- Verbindungsgruppe eine Haupt-VCN und eine Mehrzahl von Ausgangs-VCN gibt. Für den Einsendefall, ist es zweckmäßig, die Haupt-VCN auch als die Ausgangs-VCN zu verwenden. Tatsächlich ist es sogar für den Sammelsendefall zweckmäßig, die Haupt-VCN auch als die erste der Ausgangs-VCN zu verwenden.
  • Die Haupt-VCN wird der von den (VPI + VCI) eines Zellanfangsblockes in Kombination mit der Identität des externen Tors, das die Zelle schafft, beibehalten. Bei jedem Zellanfangsblock, der zu der Steuerung 33 geleitet wird, wird zuerst die Haupt-VCN bestimmt (siehe Block 61 in Fig. 8), wobei diese Haupt-VCN dann verwendet wird, um ein Warteschlangenbilden des Anfangsblockes in der Steuerung zu steuern. Die Ausgangs-VCN sind durch die Prozessoreinheit zugeteilt, wenn eine Verbindung aufgebaut wird, und werden zum Bewirken einer Ausgangswarteschlangenbildung und eines Planens verwendet. Die Ausgangs-VCN werden ihrer entsprechenden Haupt-VCN in geeigneten Datenstrukturen der Steuerung zugeordnet, was eine Translation in beiden Richtung, d. h. die Haupt-VCN zu den entsprechenden Ausgangs-VCN und die Ausgangs-VCN zu der entsprechenden Haupt-VCN, ermöglicht.
  • Zwei Steuerungspfade
  • Wie in Fig. 8 dargestellt gibt es in der Steuerung 33 zwei Pfade, einen zur Warteschlangenbildung von Zelldetails (d. h., bestimmte Zellanfangsblockdaten und die entsprechende Zellkörperadresse für jede Zelle) und den anderen zur Warteschlangenbildung und zum Planen von Ausgangs-VCN, um den Ausgang der Zellanfangsblöcke aus der Steuerung 33 zu steuern.
  • Zelldetailpfad: Dieser Pfad schließt nach dem Nachschlag der Haupt-VCN eines Zellanfangsblockes einen Kontrollblock 62 zum Prüfen, ob die Zelldetails für die betreffende Zelle gespeichert werden können oder gelöscht werden sollen, einen Zelldetailwarteschlangenblock 63 und einen Ausgangsanfangsblockerzeugungsblock 64 ein, der vom Block 63 Zelldetails für den nächsten Anfangsblock, der ausgegeben werden soll, empfängt, den neuen Anfangsblock (einschließlich des Nachschlagens der neuen VPI + VCI) erzeugt und den neuen Anfangsblock und die Adresse des entsprechenden Zellkörpers ausgibt. Die Zelldetails von Zellen mit der gleichen Haupt- VCN (d. h. Zellen von der gleichen VC-Quelle) werden alle in die gleiche Liste 65 gestellt, die in dem Block 63 gespeichert ist, wobei die Zelldetails jeder Zelle als ein jeweiliger Listeneintrag gespeichert werden. Die Liste 65 wird leer durch die Prozessoreinheit erzeugt, nachdem eine Verbindung aufgebaut wurde. Für jede Liste erhält eine Zelldetaileingangssteuerung 66 einen Erzeugerzeiger 67, der auf das Ende der Liste (d. h., wo Einträge hinzugefügt werden) zeigt, und ein leeres Flag, das anzeigt, ob die Liste 65 leer ist oder nicht.
  • Der Kopf jeder Liste 65 ist der Zelldetaileintrag für die älteste Zelle, die noch bezüglich des ankommenden Zellstroms für die betreffende Haupt-VCN gesendet werden soll. Für Einsende-VC identifiziert der Kopflisteneintrag die nächste Zelle, die für den einzigen Ausgangs-VC ausgegeben werden soll. Auf diesen Kopfeintrag wird durch einen Verbraucherzeiger 68 gezeigt, der für die betreffende Ausgangs-VCN durch eine Zelldetailausgangssteuerung 69 beibehalten wird. Für Sammelsenden gibt es natürliche eine Mehrzahl von Ausgangs-VC für jeden Eingangsstrom, wobei es nötig ist, für jeden Ausgangs-VC sein Fortschreiten entlang der entsprechenden Liste 65 in ausgebenden Zellen zu verfolgen. Dies wird durch Schaffen eines jeweiligen Verbraucherzeigers 68 erreicht, der jeder Ausgangs-VCN zugeordnet ist. Tatsächlich wird eine jeweilige Zelldetailwarteschlange 70 für jede Ausgangs-VCN behalten, wobei diese Warteschlange auf der Liste 65 für die zugeordnete Haupt-VCN abgebildet wird, wobei auf den Kopf der Warteschlange durch den entsprechenden Verbraucherzeiger 68 gezeigt wird und auf das Ende der Warteschlange durch den Erzeugerzeiger für die betreffende Haupt-VCN gezeigt wird. Dieses Konzept des Aufweisens einer jeweiligen Zelldetailliste 65, die jeder Haupt-VCN zugeordnet ist, und jeweiliger Warteschlangen 70, die auf der Liste für die zugeordneten Ausgangs-VCN abgebildet sind, ist ein wichtiges Konzept bei dem Betrieb des Zelldetailwarteschlangenbildungsblocks 63.
  • Wenn der Kopfeintrag der Warteschlange 70 durch die Ausgangssteuerung 69 ausgegeben wird, um den Ausgang einer Zelle für die entsprechende Ausgangs-VCN zu verursachen, wird der Verbraucherzeiger 68 für die Warteschlange 70 angepaßt, um diesen Eintrag aus der Warteschlange auszuschließen. Wenn der Kopfeintrag einer Liste 65 aus allen Warteschlangen 70, die auf der Liste abgebildet sind, ausgeschlossen ist, wird dieser Eintrag freigelassen, wobei die Ausgangssteuerung 69 auch die entsprechende Zellkörperadresse dazu veranlaßt wird, zurück auf die Freie-Adresse- Liste 32 gesetzt zu werden.
  • Ausgangs-VCN-Sendesteuerungspfad: Die Reihenfolge des Ausgangs der Zellen von dem Schalter durch die geeigneten externen Schalttore wird durch einen Sendesteuerungspfad bestimmt, der auf der Basis der Ausgangs-VCN operiert, die für die Ausgangs-Virtuell-Kanäle aufgebaut sind. Wie hier später genauer beschrieben wird, werden die Ausgangs-VCN in diesen Pfad durch einen Ausgangs-VCN-Sende-Anstoß-Block 82 injiziert, der selbst durch die Eingangssteuerung 66 des Warteschlangenblocks 63 "angestoßen wird", wann immer eine Liste 65 sich von einem leeren in einen nicht leeren Zustand verändert. Ein Anstoßen des Blocks 82 schließt ein Weiterleiten der Haupt-VCN der betreffenden Liste an den Block ein. Der Anstoßblock 82 wandelt diese Haupt-VCN in die Ausgangs-VCN um, die der Haupt-VCN zugeordnet sind - wobei diese Ausgangs-VCN diejenigen sind, die zugeordnete Warteschlangen 70 aufweisen, die auf der Liste 65 abgebildet sind, die gerade nicht leer geworden ist. Diese Ausgangs-VCN stellen so die virtuellen Kanäle dar, für die eine Zelle nun verfügbar zum Senden geworden ist. Der Anstoßblock 82 injiziert diese Ausgangs-VCN in den Sendesteuerungspfad (insbesondere in einen Auswählbarkeitssteuerungsblock 70). Sobald eine Ausgangs-VCN in den Pfad injiziert wurde, wird sie in dem Pfad im Umlauf sein, und periodisch das Senden einer Zelle melden, bis die entsprechende Zelldetailwarteschlange 70 anzeigt, daß keine weiteren Zellen für ein Senden bezüglich der betreffenden Ausgangs-VCN verfügbar sind.
  • Die Hauptkomponenten des Sendesteuerungspfades sind der Auswählbarkeitssteuerungsblock 77 und ein Planungsblock 75. Das tatsächliche Planen des Zellausgangs wird durch den Planungsblock 75 bewirkt, der eine jeweilige Warteschlangenstruktur (siehe Block 76) für jedes externe Tor erhält. Jede dieser Warteschlangenstrukturen wird verwendet, um die Ausgangs-VCN aller Ausgangs-Virtuell-Kanäle in eine Warteschlange zu stellen, die dem entsprechenden externen Tor zugeordnet sind und für die es zumindest, eine Zelle gibt, die zum Senden auswählbar ist. Ein virtueller Kanal hat eine oder mehr Zellen, die zum Senden auswählbar sind, wenn es zumindest einen Eintrag in der entsprechenden Ausgangs- VCN-Warteschlange 70 gibt (es sei denn, er wird zeitweilig am Senden gehindert - siehe Erklärung von "Stopp-Bit" weiter unten) und wenn der virtuelle Kanal Kredit zum Senden hat (wie weiter unten erklärt), wo ein derartiger Kredit benötigt wird.
  • Es ist die Aufgabe des Auswählbarkeitssteuerungsblocks 77, zu bestimmen, wann eine Ausgangs-Virtuell-Schaltung eine oder mehrere auswählbare Zellen aufweist. Wenn dies bestimmt wird, leitet er die entsprechende Ausgangs-VCN zum Stellen in eine Warteschlange auf der geeigneten Warteschlangenstruktur zu dem Planungsblock 75. Diese Warteschlangenstrukturen können so als Warteschlangen- "Auswählbar"-Ausgangs-VCN betrachtet werden. Das Stellen in eine Warteschlange der auswählbaren Ausgangs-VCN auf die geeignete Warteschlangenstruktur wird durch ein Speichern der Identität der geeigneten Warteschlangenstruktur für jede Ausgangs-VCN in einer Tabelle 81 im Block 77 erreicht, wobei diese Informationen mit jeder Ausgangs-VCN zu dem Block 75 geleitet werden.
  • Der Betrieb des Auswählbarkeitssteuerungsblocks 77 und zugeordneter Blöcke 80, 82 wird weiter unten betrachtet werden. Für den Augenblick wird jedoch angenommen, daß die Warteschlangenstrukturen des Planungsblocks 75 mit auswählbaren Ausgangs-VCN besiedelt wurden.
  • Der Planungsblock 75 umfaßt einen Planer 78, dessen Betrieb mit dem Betrieb der Struktur 30 und der Adapterkartendemultiplexer durch synchronisierten Zugriff auf den Externes- Tor-Plan 60 koordiniert wird. Der Planer 78 prüft die Ausgangs-VCN-Warteschlangenstruktur für jedes externe Tor in dem geeigneten Schlitz des Plans 60 und gibt die VCN (wenn es überhaupt eine gibt) mit der höchsten Priorität für diese Struktur auf einer Leitung 79 zu der Ausgangssteuerung 69 des Zelldetailwarteschlangenblocks 63 aus. Die Ausgangssteuerung 69 verwendet dann den Verbraucherzeiger 68 für die betreffende VCN, um auf den Zelldetaileintrag an dem Kopf der entsprechenden Zelldetailwarteschlange 70 zuzugreifen und leitet diese Details zu dem Ausgangsanfangsblockerzeugungsblock 64, wo der neue Anfangsblock erzeugt wird. In der Zwischenzeit paßt die Ausgangssteuerung 69 den Verbraucherzeiger 68 für die betreffende VCN an, auf den nächsten Eintrag in der entsprechenden Liste 65 zu zeigen.
  • Eine Ausgangs-VCN wird nur einmal in der Warteschlangenstruktur 76, die geeignet für das betreffende externe Tor ist, ungeachtet dessen erscheinen, wie viele auswählbare Zellen es für den entsprechenden VC gibt. Jedesmal, wenn der Planer 78 eine VCN ausgibt, wird sie von der entsprechenden Warteschlangenstruktur entfernt. Die Ausgangssteuerung 69 leitet, nachdem sie Zelldetails an eine Ausgangs- VCN ausgegeben hat, diese Ausgangs-VCN zu dem Auswählbarkeitssteuerungsblock 77, so daß Letzterer den Kredit für diese Ausgangs-VCN dekrementieren kann. Zu der gleichen Zeit wird, wenn die Ausgangssteuerung 69 bestimmt, daß es eine oder mehrere weitere Zellen gibt, die bereit zum Senden auf der entsprechenden Zelldetailwarteschlange 70 sind, sie so den Auswählbarkeitssteuerungsblock 77 informieren, indem sie ihm eine "Mehr-Zellen"-Anzeige zuleitet. Wenn der Auswählbarkeitssteuerungsblock 77 nach einem Aktualisieren weiteren Sendekredit aufweist, der für diese Ausgangs-VCN empfangen wurde (oder wenn kein Kredit benötigt wird), wird die Ausgangs-VCN zurück zu dem Planungsblock 75 geleitet, wo sie zurück zu der entsprechenden Warteschlangenstruktur kehrt. Wenn jedoch kein Sendekredit unmittelbar verfügbar ist (und wenn dies benötigt wird), dann erwartet der Auswählbarkeitssteuerungsblock 77 auf den Empfang eines derartigen Kredits von einem Kreditbereitstellungsblock 80, bevor er die Ausgangs-VCN zu dem Planungsblock 75 leitet. Der Kreditstatus jeder Ausgangs-VCN wird in der Tabelle 81 gehalten, die von dem Auswählbarkeitssteuerungsblock 77 behalten wird.
  • Wenn die Ausgangssteuerung 69 nach dem Ausgeben von Zelldetails für eine bestimmte Ausgangs-VCN bestimmt, daß die entsprechende Warteschlange 70 leer ist, leitet es die "Mehr-Zellen"-Anzeige nicht zurück zu dem Auswählbarkeitssteuerungsblock 77. Wenn jedoch zur gleichen Zeit die Ausgangssteuerung 69 bestimmt, daß keine Einträge in der entsprechenden Liste 65 zurückbleiben (alle Warteschlangen 70, die für die Liste relevant sind, wurden geleert), signalisiert sie dies der Eingangssteuerung 66, um das leere Flag dazu zu veranlassen, die Liste einzustellen.
  • Aus dem vorhergehenden ist es ersichtlich, daß, so bald dem Auswählbarkeitssteuerungsblock 77 durch den Anstoßblock 82 signalisiert wurde, daß eine neue Zelle in der Warteschlange 70 der bestimmten Ausgangs-VCN angekommen ist, jede dieser Ausgangs-VCN zwischen Block 77, dem Planungsblock 75 und der Ausgangssteuerung 69 in Umlauf gebracht wird, bis letztere bestimmt, daß es keine weiteren auswählbaren Zellen für diese Ausgangs-VCN gibt (es ist zu erkennen, daß neue Einträge zu den relevanten Warteschlangen 70 hinzugefügt werden können, während die Ausgangs-VCN ein Planen bezüglich jedes Eintrages erwarten). Die Nichtverfügbarkeit eines Sendekredits kann diesen Prozeß zeitweise anhalten, sobald jedoch ein neuer Kredit verfügbar wird, beginnt der Vorgang wieder.
  • Wenn eine Ausgangs-VCN nicht mehr im Umlauf ist (weil keine weiteren Einträge verfügbar in ihrer Warteschlange 70 sind), muß sie eine Wiederinjizierung in den Sendesteuerungspfad durch den Anstoßblock 82 abwarten, bevor sie wieder zum Senden geplant werden kann.
  • Qualität des Bedienung
  • Der Schalter bietet Verbindungen mit drei unterschiedlichen Bedienqualitäten. Diese sind:
  • - Garantierte Bandbreite mit niedriger Maximallatenzzeit (GB0)
  • - Garantiert e Bandbreite mit höherer Maximallatenzzeit (GB1)
  • - Beste Bemühung (BE)
  • Zu diesem Zweck weist jede Externes-Tor- Warteschlangenstruktur (Block 76) in dem Planungsblock 75 tatsächlich drei Warteschlangen auf, eine für jede Bedienqualität, wobei jede auswählbare Ausgangs-VCN zu der geeigneten Warteschlange hinzugefügt wird (die Identität der Warteschlange wird in Tabelle 81 des Auswählbarkeitssteuerungsblocks gehalten und mit den Ausgangs-VCN zu Block 75 geleitet). Wie zu erkennen sein wird, führt dies zu einer gerechten Warteschlangentaktik in jeder Bedienklasse. Fig. 9 zeigt die Externes-Tor-Ausgangs-VCN-Warteschlangen, die durch den Planungsblock beibehalten werden und zeigt die Bereitstellung von drei Warteschlangen pro externem Tor in dem Fall eines externen Tors, das als Tor 0 identifiziert wird. Jedesmal, wenn der Planer 78 eine Externes-Tor- Warteschlangenstruktur in dem entsprechenden Schlitz des Plans 60 prüft, wird er die Ausgangs-VCN an dem Kopf der nicht leeren Warteschlange mit der höchsten Priorität nehmen, wobei die Prioritätsreihenfolge der Warteschlangen GB0, GB1, BE ist.
  • Für die Garantierte-Bandbreite-Bedienungen wird eine geeignete Menge des gemeinsamen Speichers 31 für jeden Eingangs- VC, der einer derartigen Bedienung unterzogen wird, reserviert. Ferner wird, wie später beschrieben wird, für die Garantierte-Bandbreite-Bedienungen ein Kreditsteuerungsschema basierend auf Token-Eimern betrieben. Sollte eine Garantierte-Bandbreite-Quelle ihre Garantie überschreiten (d. h., daß sie mehr Zellen pro Zeiteinheit erzeugt, als der Schalter garantiert hat, zu handhaben), wird der Auswählbarkeitssteuerungsblock entweder zeitweilig die sendenden Zellen für diese VCN (geformter Ausgang) angehalten oder zeitweilig die Verbindung als eine Beste-Bemühung- Verbindung (ungeformter Ausgang) behandeln.
  • Der Beste-Bemühung-Verkehr kann flußgesteuert sein oder nicht. In dem Fall eines flußgesteuerten Verkehrs wird eine feste Menge von Speicher jeder Eingangs-VC zugeteilt und ein Kredit wird in Verarbeitungsrichtung oberhalb angeordneten Knoten basierend auf der Menge dieses Speichers, die frei ist, erteilt. Für jede Ausgangs-VCN wird auch eine Zählung des Kredits beibehalten, den in Verarbeitungsrichtung unterhalb angeordnete Knoten erteilt haben. Die Oberhalb/Unterhalb-Kreditsteuerung wird durch ein Flußsteuerungsblock 85 verwaltet, wobei die Kreditzählung für eine flußgesteuerte Ausgangs-VCN durch den Auswählbarkeitssteuerungsblock 77 in dem vorliegenden Knoten behalten wird. Wenn diese Kreditzählung Null wird, verhindert der Auswählbarkeitssteuerungsblock, daß die VCN zu der entsprechenden Planungswarteschlange geleitet wird, wodurch eine Übertragung angehalten wird.
  • Beste-Bemühung-Verbindungen, die nicht flußgesteuert sind, können eine willkürliche Menge von Speicher aufweisen, die ihnen zugeteilt ist. Wenn es einen Konflikt über den Ausgang gibt und dieser Speicher erschöpft ist, werden Zellen fallengelassen.
  • Sammelsenden, leere Flags und Stopp-Bits
  • Wie oben beschrieben hat in dem Fall eines Sammelsendens (mehrere Ausgangs-VC für einen Eingangs-VC), die entsprechende Zelldetailliste 65 mehrere Warteschlangen 70, die auf ihr abgebildet sind, wobei jede einer bestimmten Ausgangs-VCN entspricht. Wieder veranlaßt, wie bereits beschrieben, die Ausgangssteuerung 69 für den Warteschlangenblock 63 das leere Flag der Liste 65 nicht dazu, eingestellt zu werden, bis alle Warteschlangen 70, die der Liste 65 zugeordnet sind, leer sind. Der Grund dafür ist, daß die Veränderung des leeren Flags von seinem eingestellten bis zu seinem nicht eingestellten Zustand nach der Ankunft eines neuen Anfangsblockes, dessen Zelldetails auf der Liste 65 in eine Warteschlange gestellt werden sollen, die Eingangssteuerung 66 dazu veranlaßt, den Sendeanstoßblock 8 "anzustoßen", was zu einer Injizierung in den Sendesteuerungspfad aller Ausgangs-VCN führt, die der Liste zugeordnet sind. Wenn das leere Flag einer Liste nur eingestellt würde, nachdem eine zugeordnete Warteschlange 70 leer würde, könnte der Sendeanstoßblock 82 angestoßen werden, um Ausgangs-VCN in den Sendesteuerungspfad auszugeben, wenn einige der Ausgangs-VCN immer noch in dem Pfad vorhanden wären. Das Ergebnis davon wäre ein ungerechtes Ausgangsplanen.
  • Während des Schalterbetriebs kann es vorkommen, daß ein neuer Listeneintrag zwischenzeitlich hinzugefügt wird:
  • (i) eine der Warteschlangen wird leer, folgend auf eine Verbraucherzeigeranpassung, um den Kopfeintrag der Liste 65 von der Warteschlange 70 auszuschließen, nachdem dieser Eintrag zum Ausgeben eines Zellanfangsblockes für den betreffenden Ausgangs-VC verwendet wurde, und
  • (ii) eine andere der Warteschlangen weist den gleichen Listeneintrag auf, der durch Verbraucherzeigeranpassung ausgeschlossen wurde, wieder nachdem der Eintrag zum Ausgeben eines Anfangsblockes für den Ausgangs-VC benutzt wurde, der in Zusammenhang mit dieser Warteschlange steht.
  • Unter diesen Umständen wird die zweite der zuvor genannten Warteschlangen nicht leer sein, wenn sie den Eintrag ausschließt, der die erste der Warteschlangen leer machte, wobei so das leere Flag nicht durch die Ausgangssteuerung 69 eingestellt wird, obwohl alle anderen Warteschlangen leer sind. Es wird offensichtlich sein, daß Warteschlangen, die unter diesen Umständen leer geworden sind, vielleicht keine Gelegenheit bekommen, wieder in den Planungsvorgang zu gelangen, weil neue Zelldetaileinträge weiterhin auf eine Weise zu der Liste hinzugefügt werden könnten, daß die oben genannte nicht leere Liste immer so bleibt. Weil es eine endliche Grenze für die Menge von Speicher gibt, die einem bestimmten Eingangs-VC zugeteilt ist, werden zu· gegebener Zeit Zellen verloren gehen.
  • Um dieses Problem zu vermeiden, weist jeder Zelldetaileintrag in einer Liste 65 eine zugeordnetes "Stopp-Bit" auf. Wenn bei einem Sammelsendefall eine Warteschlange 70 leer wird, stellt die Ausgangssteuerung 69 das Stopp-Bit des Anfangsblockeintrags (d. h. des Eintrags, der gerade von der leeren Warteschlange ausgeschlossen wurde) ein. Nachdem irgendeine Warteschlange bei der gleichen Liste diesen Eintrag ausschließt (weil ein Zellanfangsblock, der auf ihm basiert, für die betreffende Ausgangs-VCN ausgesendet wurde), wird die entsprechende Ausgangs-VCN nicht zurück zu dem Auswählbarkeitssteuerungsblock 77 in Umlauf gebracht. Die Warteschlange wurde effektiv "gestoppt". Wenn jedoch alle Warteschlangen den Eintrag benutzt haben, dessen Stopp-Bit eingestellt ist, wird dieser Eintrag entfernt und der VCN-Sende-Anstoßblock wird durch die Ausgangssteuerung 69 (siehe "nicht gestoppter" Anstoß in Fig. 8) mit der entsprechenden Haupt-VCN angestoßen, um alle relevanten Ausgangs-VCN wieder in den Sendesteuerungspfad zu injizieren.
  • Der Ausgangs-VCN-Sende-Anstoßblock
  • Die allgemeine Funktionalität des Anstoßblockes 82 wurde bereits beschrieben, aber einige zusätzliche Punkte sind bei dieser Stufe eine Anmerkung Wert. Der Block 82 weist einen einen Sammelsendeexpander 83 und eine Ausgangsschaltung 84 auf. Der Sammelsendeexpander 83 ist angeordnet, um alle Ausgangs-VCN entsprechend einer bestimmten Haupt-VCN verfügbar zu machen, wenn der Expander 83 mit dieser Haupt- VCN "angestoßen wird". Der Sammelsendeexpander 83 wird jedesmal (wieder) mit geeigneten Daten von der Prozessoreinheit programmiert, wenn eine Verbindung aufgebaut oder abgesetzt wird, so daß er kontinuierlich aktualisiert und in der Lage bleibt, jede gegenwärtige Haupt-VCN den entsprechenden Ausgangs-VCN zuzuordnen. Die Ausgangs-VCN, die durch den Expander 83 verfügbar gemacht werden, werden eine nach der anderen durch die Ausgangsschaltung 84 zu dem Auswählbarkeitssteuerungsblock 77 geleitet.
  • Der Anstoßblock 82 wird auf eine Weise implementiert, daß er in der Lage ist, alle Anstöße, die er empfängt, zu absorbieren, während er nicht das Verarbeiten komplettieren muß, das jedem Anstoß zugeordnet ist, bevor er einen weiteren empfangen kann. Dies kann z. B. dadurch getan werden, daß ein Eingangs-FIFO für die Anstöße eingeschlossen ist oder möglicherweise dadurch, daß ein Ausgangs-VCN-FIFO geschaffen wird. Im allgemeinen werden Bereitstellungen von FIFO-Puffern bei einem Punkt benötigt, oberhalb von dem an der Block 82 Pro-Ausgangs-VCN-Operationen bewirken muß, wie z. B. Übertragung zu dem Auswählbarkeitssteuerungsblock 81.
  • Die Bedeutung dieser Anordnung und der Umstand, unter denen der Block 83 angestoßen wird, liegt darin, daß die Expansion, die dem Sammelsenden zueigen ist, auf eine Weise gehandhabt wird, die die minimale Verarbeitungsbelastung bei der Steuerung erzeugt. So tritt jede Haupt-VCN und Ausgangs-VCN immer nur einmal im Block 83 auf. Dies ermöglicht es, daß eine besonders effiziente Speicherbenutzung bewirkt werden kann. Ferner muß das Pro-Ausgangs-VCN-Verarbeiten, das jedem bestimmten Anstoß zugeordnet ist, nicht beendet sein, bevor der nächste Anstoß empfangen werden kann.
  • Steuerungsimplementierungsdetails
  • Es folgte eine detailliertere Beschreibung der Hauptkomponenten der Steuerung.
  • Haupt-VCN-Nachschlag-Block
  • Wie bereits beschrieben, wird, wenn eine Zelle an dem Schaltkern ankommt, ihr Anfangsblock zu der Steuerung 33 geleitet. Hier wird er zu Beginn durch den Haupt-VCN- Nachschlag-Block 61 gehandhabt. Nach dem Empfang bei dem Block 61 besteht der Anfangsblock aus folgenden Feldern:
  • - Allgemeine Flußsteuerung (GFC), 4 Bits,
  • - Virtueller-Pfad-Identifizierer (VPI), 8 Bits,
  • - Virtueller-Kanal-Identifizierer (VCI), 16 Bits,
  • - Nutzlasttyp (PT), 3 Bits, und,
  • - ein Bit, das für AAL5-Verbindungen ein Ende-des- Pakets-Bit (EPO) bildet.
  • Es sei angemerkt, daß zu diesem Zeitpunkt das fünfte Byte des Anfangsblockes, der Anfangsblockfehlerprüfer (HEC) entfernt wurde, weil er in der geeigneten Adapterkarte verifiziert wurde. Ein fehlgeschlagenes HEC wird zum Ergebnis haben, daß die Zelle als leer markiert wird (VPI = VCI = 0).
  • Die Zellkörperadresse wird auch gemeinsam mit dem entsprechenden Zellanfangsblock zu dem VCN-Nachschlag-Block 61 geleitet.
  • Die folgenden Operationen werden bei dem Anfangsblock durch den Block 61 durchgeführt:
  • - die Zelle wird gelöscht, wenn ihre VPI und VCI auf Null eingestellt sind, wobei dieses Löschen durch Zurückbringen der Zellkörperadresse zu der Freie- Adresse-Liste 32 geschieht;
  • - das GFC wird gelöscht;
  • - das PT und das EOP werden zur Speicherung mit der Zellkörperadresse extrahiert, so daß der Ausgangsanfangsblock korrekt erzeugt werden kann, wobei diese Gegenstände hier als die "Zelldetails" bezeichnet werden;
  • - das VPI und das VCI werden mit einer Zahl (Torzahl) verkettet, die das externe Tor identifiziert, bei dem die Zelle empfangen wurde, um einen eindeutigen Identifizierer (hier der Langkanalidentifizierer) für die Verbindung zu erzeugen, der die Zelle zugeordnet ist; wobei der Langkanalidentifizierer dann benutzt wird, um die Haupt-VCN nachzuschlagen, die der Zelle zugeordnet ist.
  • Es ist die vierte Funktion, die für den Block 61 die Hauptfunktion ist. Diese wird nun detaillierter beschrieben.
  • Die VPI- und VCI-Informationen, die verwendet werden, um den Langkanalidentifizierer für eine Zelle herzuleiten, sind direkt von dem Zellanfangsblock verfügbar. Die Torzahl, die das externe Eingangstor identifiziert, bei dem die Zelle empfangen wurde, wird bei dem vorliegenden Ausführungsbeispiel aus dem Externes-Eingangstor-Plan 60A erhalten, wobei jedes externe Tor, das in dem Plan erscheint, eine zugeordnete eindeutige Zahl aufweist.
  • Sobald die Eingangstorzahl erhalten wurde, wird sie mit dem VPI und dem VCI verkettet, um den Langkanalidentifizierer zu ergeben, der ca. 30 Bits lang ist (die genaue Länge wird von der Zahl von Toren abhängen, die der Schalter aufweisen kann). Die Zahl wird dann benutzt, um die Haupt-VCN der Verbindungen zu finden, denen die Zelle zugeordnet ist.
  • Da es unpraktisch ist, einen einfachen Nachschlag einer Zahl dieser Größe zu haben, wird ein Mehrstufennachschlagprozeß verwendet.
  • Der Nachschlagprozeß weist die folgenden Schritte auf:
  • 1. Der Langkanalidentifizierer (VPI + VCI + Torzahl) wird in einem Scrambler 90 (vergleiche Fig. 10) verwürfelt. Der Scrambler kann eine Standardform aufweisen, wie z. B. eine, die auf einem linearen Rückkoppelungsschieberegister basiert, bei dem der Kanalidentifizierer als ein Keimwort für das lineare Rückkoppelungsschieberegister verwendet wird, das dann durch die Wortlänge verschoben wird, um das verwürfelte Ausgangswort zu bilden.
  • 2. Der verwürfelte Langkanalidentifizierer wird durch die Spaltereinheit 91 in zwei Teile geteilt. Ein Teil (der obere Teil) wird verwendet, um einen "Zeilenindex" in einer "Hochtabelle" 92 nachzuschlagen und der andere Teil (die untere Hälfte) wird verwendet, um einen "Spaltenindex" in einer "Niedrigtabelle" 93 "nachzuschlagen".
  • 3. Der "Zeilenindex" und der "Spaltenindex" werden dann verwendet, um auf eine zweidimensionale Tabelle 94, die die Haupt-VCN beinhaltet, zuzugreifen.
  • 4. Schließlich wird die Haupt-VCN verwendet, um einen Langkanalidentifizierer in einer Prüftabelle 95 nachzuschlagen, wobei dieser Identifizierer demjenigen entspricht, der im Schritt 1, wenn alles glatt läuft, hätte verwendet werden sollen. Der nachgeschlagene Identifizierer wird mit dem tatsächlichen ursprünglichen Langkanalidentifizierer in einem Komparator 95 verglichen, um zu prüfen, ob der Prozeß der Schritte 1 bis 3 kein falsches Ergebnis ergab (falls dies doch der Fall sein sollte, wird die Zelle durch Hinzufügen der Zellkörperadresse zu der Freie-Adresse-Liste gelöscht).
  • Die Gründe für ein Durchführen jedes der Schritte des Nachschlagprozesses sind wie folgt:
  • Schritt 1. Der Bedarf, den Langkanalidentifizierer zu verwürfeln, entsteht, weil es wahrscheinlich ist, daß die meisten Langkanalidentifizierer für Zellen von der gleichen Verbindung identische obere Hälften (wahrscheinlich 0) aufweisen. Wenn die Langkanalidentifizierer nicht verwürfelt würden, würden sie deshalb alle den gleichen Index in der Hochtabelle 92 indexieren, wodurch nur eine Zeile der Haupt-VCN-Tabelle 94 verwendet werden könnte. Ein Verwürfeln verteilt Unterschiede über den gesamten Identifizierer, wodurch die Verwendung sowohl der Zeilen- als auch der Spaltentabelle verbessert wird, wodurch die Haupt-VCN-Tabelle effizienter genutzt werden kann.
  • Schritt 2. Der verwürfelte Langkanalidentifizierer wird in zwei Hälften geteilt, weil es unpraktisch ist, eine 30-Bit-Zahl nachzuschlagen, während es ziemlich praktisch ist, eine 15-Bit- Zahl (eine 32-K-Eintrags-Tabelle wird benötigt) nachzuschlagen. Ein Teilen der Zahl in mehrere Teile würde zu drei 1-K-Tabellen führen. Während dies auf den ersten Blick attraktiv zu sein scheint, sind die resultierenden Tabellen zu klein, um es vielen VCs zu erlauben, getragen zu werden. Deshalb wäre diese Option nur in speziellen Situationen geeignet.
  • Schritt 3. Das Ergebnis dieser Hochtabellen- und Tieftabellen-Nachschläge wird verwendet, um die Haupt-VCN-Tabelle zu indexieren, weil, obwohl diese beiden Ergebnisse die Verbindung eindeutig identifizieren, die Ergebnisse spärlich sind. Dies ist so, weil der Prozeß nicht gut läuft, wenn die Haupt-VCN-Tabelle mehr als ca. zu einem Viertel gefüllt ist. Deshalb würde ein direktes Verwenden der Hochtabellen- und Tieftabellenergebnisse einen VCN-Raum ergeben, der viermal größer ist als benötigt wird, und würde die Speicheranforderungen bei allen Pro-VCN- Datenstrukturen in dem Rest der Steuerung entsprechend nach oben treiben.
  • Schritt 4. Die Langkanalidentifiziererprüfung wird durchgeführt, weil es möglich ist, daß Zellen bei VC ankommen, die nicht eingestellt wurden. Wenn die Prüfung nicht durchgeführt werden würde und ein derartiger VC ein gültiges Haupt-VCN indexieren würde, würden ihre Zellen so behandelt werden, als wenn sie auf die VC entsprechend dieser Haupt-VCN hereingekommen wären.
  • Der vorhergehende Nachschlagprozeß ermöglicht schnelle Nachschläge von großen Zahlen von VCN, die mit niedrigen Kosten in der Hardware durchgeführt werden sollen. 8000 Haupt-VCN z. B., die bis zu 64 externen Toren zugeordnet sind, würden z. B. eine 32-K-x-8-Hochtabelle, eine 32-K-x-8- Niedrigtabelle, eine 64-K-x-13-Haupt-VCN-Tabelle und eine 8-K-x-30-Prüftabelle benötigen.
  • Wenn ein VC-Verbindung aufgebaut wird, berechnet die Prozessoreinheit 24 die Einträge, die in die verschiedenen Tabellen des Haupt-VCN-Nachschlagblocks 61 gegeben werden sollen. Dadurch ist es möglich, daß die Prozessoreinheit vielleicht herausfindet, daß ein bestimmtes VC nicht in die existierenden Tabellen paßt, ohne mit einem vorher aufgebauten VC in Konflikt zu geraten (insbesondere bilden die verwürfelten Langkanalidentifizierer des neuen und des vorhergegangenen VC beide in den gleichen Haupt-VCN- Tabelleneintrag ab). In diesem Fall wird die Prozessoreinheit 24 angewiesen, die Verwürfelfunktion, die durch den Scrambler 90 benutzt wird, zu verändern, und die Tabelle neu anzuordnen, so daß kein weiterer Konflikt besteht. Um diesen Betrieb zu unterstützen, werden die Hoch-, Niedrig- und Haupt-VCN-Tabellen doppelt gepuffert, wodurch ein Nachschlag in der aktiven Tabelle weiterhin ermöglicht wird, während die Prozessoreinheit die untätige Tabelle neu schreibt.
  • Kontrollblock
  • Die Rolle des Kontrollblocks 62 ist, zu entscheiden, wann Zellen fallengelassen werden sollten. Der Bedarf, Zellen fallenzulassen, entsteht, wenn sie schneller bei einem VC ankommen, als sie gesendet wurden. Dies wird nur unter zwei Umständen auftreten, nämlich wenn:
  • - Beste-Bemühung-Verbindungen um einen Ausgang ringen;
  • - eine Garantierte-Bandbreite-Verbindung ihre Garantie überschritten hat.
  • Die Vorrichtung, die verwendet wird, um zu entscheiden, ob Zellen fallengelassen werden, wird unten beschrieben.
  • Wie bereits erwähnt (siehe "Qualität der Bedienung"- Abschnitt), wird, wenn ein neuer VC durch den Schalter aufgebaut wird, eine feste Menge von Speicher von dem gemeinsamen Speicher 31 der Eingangsseite des VC in Abhängigkeit von der Qualität des Bedienens, die geschaffen werden soll, zugeteilt. Die Menge von Speicher, die zugeteilt wird, wird als "zugeteilte Speicherausnutzung" oder "zugeordnete MU" für den betreffenden Eingangs-VC genannt. Der Kontrollblock 62 behält eine Aufzeichnung der zugeteilten MU jedes Eingangs-VO durch Verweis auf die entsprechende Haupt-VCN.
  • Der gemeinsame Speicher 31 kann als in zwei Bereiche geteilt betrachtet werden: den reservierten Bereich, dessen Größe gleich der Summe aller Zuteilungen ist, und den nicht reservierten Bereich, der den Rest ausmacht. Es kann einem Eingangs-VC erlaubt sein, seine zugeteilte MU zu überschreiten und unter bestimmten Bedingungen Zellen in dem nicht reservierten Speicherbereich zu speichern. Es soll angemerkt werden, daß der Speicher nicht wirklich in separate Bereiche getrennt wird, er verhält sich nur so, als ob dies der Fall wäre.
  • Der Kontrollblock 62 erhält eine Aufzeichnung der Speichermenge von dem gemeinsamen Speicher 31, die gegenwärtig im Verhältnis zu jeder Haupt-VON verwendet wird. Diese Speichermenge wird gegenwärtige Speicherausnutzung oder gegenwärtige MU für jede Haupt-VON genannt. Die gegenwärtige MU einer Haupt-VON wird durch den Block 67 inkrementiert, wenn er einen Zellanfangsblock für die betreffende Haupt-VON empfängt, und dekrementiert, wenn die Ausgangssteuerung 69 des Warteschlangenblocks 63 anzeigt, daß eine Zelle bei allen relevanten Ausgangs-VON gesendet wurde, wobei der entsprechende Bereich des Zellkörperspeichers freigelassen werden kann (dadurch, daß die Zellkörperadresse auf die Freie-Adresse-Liste 32 gesetzt wird).
  • Wenn ein Anfangsblock mit einer bestimmten Haupt-VCN am Block 72 ankommt und die Ankunft eines neuen Zellkörpers in dem Speicher 31 für einen entsprechenden VC anzeigt, muß der Kontrollblock 62 entscheiden, ob die Zelle fallengelassen wird oder nicht. Dies geschieht unter Verwendung der folgenden Kriterien:
  • - wenn die gegenwärtige MU der Haupt-VCN weniger als ihre zugeteilte MU ist, wird die Zelle nicht fallengelassen und die gegenwärtige MU wird inkrementiert;
  • - wenn die gegenwärtige MU der VCN größer äis oder gleich der zugeteilten MU ist, wird die Zelle fallengelassen, es sei denn, die Menge des Raumes, der in dem nicht reservierten Speicherbereich verwendet wird, ist weniger als eine vorbestimmte Schwelle. Wenn die Zelle nicht fallengelassen wird, wird ihre gegenwärtige MU, genau so wie die Aufzeichnung des benutzten Raumes in dem nicht reservierten Speicherbereich inkrementiert.
  • Um die Aufzeichnung von gegenwärtig verwendetem Raum in dem nicht reservierten Speicherbereich zu erhalten, muß der Kontrollblock 62 auch die zugeteilte MU der Haupt-VCN prüfen, wenn eine Zelle zu allen zugeordneten Ausgangs-VCN ausgesandt wurde und die entsprechende gemeinsame Speicheradresse freigemacht wurde. Wenn die gegenwärtige MU der Haupt-VCN vor einem Dekrementieren größer als die entsprechende zugeteilte MU ist, muß die Aufzeichnung für den gegenwärtig benutzten Raum in dem nicht reservierten Bereich auch dekrementiert werden, um den freigemachten Speicherraum zu berücksichtigen.
  • Es soll angemerkt werden, daß das Überwachen der gegenwärtigen MU die einzige Vorrichtung in dem Schalter ist, die Zellen fallenlassen kann. Das bedeutet, daß Zellen, sobald sie diese Prüfung durchlaufen haben, nicht mehr fallengelassen werden können.
  • Es soll auch bezüglich der Garantierte-Bandbreite-Bedienung angemerkt werden, daß der Schalter den Verkehr an seinem Ausgang nicht direkt überwacht, um festzustellen, ob ein VC seine Garantie überschreitet und um so zu bestimmen, ob Zellen fallengelassen werden müssen. Statt dessen verläßt er sich auf die indirekten Vorrichtungen zum Überwachen der gegenwärtigen MU, um festzustellen, wann ein VC versucht, seine Bandbreitengarantie zu überschreiten.
  • Für AAL5-Verbindungen kann die Steuerung das Ende-des- Pakets (EOP) -Bit in dem Zellanfangsblock sehen. So kann die Steuerung, vorausgesetzt, sie wird bei dem Verbindungsaufbau informiert, ob eine bestimmte Verbindung eine AAL5- Verbindung ist, entscheiden, nachdem eine Zelle bei einer AAL5-Verbindung fallengelassen wurde, alle nachfolgenden Zellen in dem gleichen Paket fallenzulassen. Der Vorteil davon ist, daß, wenn diese Zellen hier nicht fallengelassen werden, dieselben unnötigen Verkehr und zugeordnetes Verarbeiten verursachen, da sie auf jeden Fall an dem Bestimmungsort durch die Protokollschicht fallengelassen werden, die für das Sicherstellen verantwortlich ist, daß nur komplette Pakete überleben.
  • Der Kontrollblock 62 kann angeordnet sein, um das Fallenlassen des Restes eines Paketes folgend auf das Fallenlassen einer Zelle bei einer AAL5-Verbindung zu implementieren.
  • Es soll angemerkt werden, daß eine Zelle mit dem eingestellten EOP-Bit ausgesendet werden muß, bevor das nächste AAL5-Paket gesendet wird. Andernfalls wird es auch vernichtet. Es gibt zwei mögliche Verfahren, dies zu tun (siehe Fig. 11):
  • 1. Fallenlassen aller Zellen bei dem Rest des Paketes, bis auf die eine 102 mit dem eingestellten EOP-Bit (d. h. fallenlassen der Zellen, die in einem gestrichelten Kasten 101 in Fig. 11 gezeigt sind);
  • 2. Fallenlassen des Restes des Paketes (einschließlich der Zelle 102 mit dem eingestellten EOP-Bit), aber Einstellen des EOP-Bits 103 auf der letzten Zelle 104, bevor mit dem Fallenlassen begonnen wird. So werden die Zellen, die in dem gestrichelten Kasten 105 gezeigt sind, fallengelassen.
  • Das Verfahren 1 benötigt, wenn das nächste Paket nie betroffen sein soll, einen Extrapuffer für jede AAL5-VCN, so daß Raum für die letzte Zelle garantiert sein kann. Das Verfahren 2 benötigt diesen Extrapuffer nicht, aber macht es notwendig, daß in dem Zellwarteschlangenblock 63 eine Vorrichtung enthalten ist, um das EOP-Bit einer bereits gespeicherten Zelle zu ändern, was die Implementierung komplexer macht. Folglich wird das Verfahren 1 bevorzugt.
  • Die Anforderung des Verfahrens 1, einen Extrapuffer für jede AAL5-Verbindung reservieren zu müssen, kann gehandhabt werden, indem der nicht reservierte Bereich des Speichers 31 zum Speichern der Zellen mit dem eingestellten EOP-Bit verwendet wird, wenn der Bereich, der für die betreffende Verbindung reserviert ist, voll ist, wenn diese Zelle ankommt. Dieser Ansatz wird nur Probleme hervorrufen, wenn sowohl der nicht reservierte Bereich als auch der reservierte Bereich für die Verbindung voll ist. In diesem Fall muß der Schalter weiterhin mit dem Fallenlassen von Zellen bei der Verbindung fortfahren, und so das nächste Paket löschen.
  • Das Fallenlassen von Zellen gemäß dem Verfahren 1 macht es notwendig, daß zwei Extraflags für jede VCN-Verbindung beibehalten werden, wobei diese Flags in Zuordnung zu der Haupt-VCN der Verbindung gespeichert werden. Das erste Flag ist ein AAL5-Flag und wird eingestellt, wenn eine AAL5- Verbindung festgelegt wird. Das zweite Flag ist ein Fallenlassenflag und zeigt an, daß Zellen auf dieser Haupt-VCN bis zu der Zelle, die mit dem eingestellten EOP-Bit gekennzeichnet ist, fallengelassen werden sollen.
  • Diese Kriterien zum Fallenlassen von Zellen hängt dann von dem Zustand des Fallenlassenflags ab. Wenn das Fallenlassenflag nicht eingestellt ist, sind die Kriterien und Aktionen wie zuvor, bis auf die Tatsache, daß, wenn die Zelle fallengelassen wird und das AAL5-Flag eingestellt wird, das Fallenlassenflag eingestellt wird.
  • Wenn das Fallenlassenflag eingestellt ist, sind die Kriterien wie folgt:
  • wenn die Zelle nicht das eingestellte EOP-Bit aufweist, wird sie fallengelassen,
  • wenn die Zelle das eingestellte EOP-Bit aufweist;
  • - wenn die gegenwärtige MU der Haupt-VCN weniger als ihre zugeteilte MU ist, wird die Zelle nicht fallengelassen, die gegenwärtige MU wird inkrementiert und das Fallenlassenflag wird wieder eingestellt,
  • - wenn die gegenwärtige MU der Haupt-VCN größer oder gleich der zugeteilten MU ist, wird die Zelle fallengelassen, es sei denn, die Menge von Raum, die in dem nicht reservierten Bereich (fehlt etwas - in Klammern?) benutzt wird, ist weniger als eine bestimmte Schwelle. Wenn die Zelle nicht fallengelassen wird, wird ihre gegenwärtige MU inkrementiert, ebenso wie die Zählung des verwendeten Raums in dem nicht reservierten Bereich. Wenn die Zelle nicht fallengelassen wird, wird das Fallenlassenflag wieder eingestellt.
  • Zelldetailwarteschlangenblock
  • Sobald eine Zelle die Prüfungen, die ihr durch den Kontrollblock 62 aufgelegt wurden, passiert hat, werden die Zelldetails (einschließlich der Zellkörperadresse im Speicher 31) als ein Eintrag auf die geeignete Haupt-VCN-Liste 65 in eine Warteschlange gestellt. Jede Liste 65 ist eine einzeln aufgeführte Liste und jeder Eintrag weist, wie auch die Zellkörperadresse und Anfangsblockinformationen bei der entsprechenden Zelle, mehrere Felder auf, die zum Erhalten der Liste verwendet werden. Insbesondere und bezugnehmend auf Fig. 12 weist jeder Listeneintrag 110 die, folgenden Felder auf:
  • - ein Feld 112 für die Zellkörperadresse;
  • - ein Feld 113 für den Zelltyp und das EOP-Bit, das gebraucht wird, um den Zellanfangsblock wieder herzustellen;
  • - ein Feld 114 zum Speichern einer Referenzzählung, die zum Sammelsenden verwendet wird, um die Zahl von Malen anzuzeigen, die die Zelle noch gesendet werden muß, bevor sie gelöscht werden kann (d. h. bevor der Speicher, der verwendet wird, um den Zellkörper und den gegenwärtigen Zelldetaileintrag zu speichern, freigemacht werden kann);
  • - ein Feld 115 zum Speichern des Stopp-Bits für den Eintrag, wobei dieses Bit zum Sammelsenden, wie oben erklärt, verwendet wird; und,
  • - ein Feld 116 zum Halten eines Nächster-Eintrag-Zeiger 117, der auf den nächsten Eintrag in der verbundenen Liste zeigt.
  • Der Nächster-Eintrag-Zeiger 117 zeigt weg von dem Kopf der Liste 65 (wobei der Kopfeintrag der älteste in der Liste ist) zu dem nächsten Eintrag in der Richtung des Endes der Liste, wo neue Zelldetails hinzugefügt werden. Der Endeintrag ist immer ein Nulleintrag 111, d. h. alle seine Felder werden auf Null eingestellt. Das Hinzufügen von neuen Zelldetails schließt ein Füllen der Nullfelder des gegenwärtigen Endeintrages mit den neuen Zelldetails und ein Hinzufügen eines neuen Nulleintrags ein.
  • Eine Datenstruktur 120 der Eingangssteuerung 66 erhält für jede Haupt-VCN (und so für jede Liste) die folgenden Felder;
  • - ein Feld 121 für den Erzeugerzeiger 67, der auf den Endeintrag der entsprechenden Liste 65 deutet;
  • - ein Feld 122, das das leere Flag für die Liste hält, wobei dieses Flag eingestellt wird, wenn alle Warteschlangen 70 auf der Liste leer sind; und,
  • - ein Feld 123, das eine Anfangsreferenzzählung hält, die die Zahl der Ausgangs-VCN anzeigt, die der Haupt- VCN zugeordnet sind.
  • Auf die Datenstruktur 120 wird unter Verwendung der Haupt- VCN von Interesse zugegriffen.
  • Eine Datenstruktur 125 der Ausgangssteuerung 69 erhält für jede Ausgangs-VCN die folgenden Felder:
  • - ein Feld 126 für den Verbraucherzeiger der Warteschlange 70, die der betreffenden Ausgangs-VCN zugeordnet ist; und,
  • - ein Feld 127, das die Identität der Haupt-VCN enthält, die der Ausgangs-VCN zugeordnet ist (dies ermöglicht es, auf die Informationen auf der Haupt-VCN, die in der Datenstruktur 120 gehalten wird, zuzugreifen, wobei anfangs nur die Ausgangs-VCN bekannt ist).
  • Auf die Datenstruktur 125 wird unter Verwendung der Ausgangs-VCN von Interesse zugegriffen.
  • Die Verwendung der oben beschriebenen Datenstrukturen ist am besten verständlich, wenn betrachtet wird, was passiert, wenn eine Zelle ankommt, und dann betrachtet wird, was passiert, wenn eine Zelle gesendet wird.
  • Stellen einer Zelle in eine Warteschlange: Wenn eine Zelle ankommt, werden die Haupt-VCN, der Zelltyp, das EOP-Bit und die Zellkörperadresse für diese Zelle zu der Eingangssteuerung 66 des Warteschlangenblocks 63 geleitet, wobei die folgenden Operationen dann durchgeführt werden.
  • 1. Zuerst wird die Haupt-VCN verwendet, um den entsprechenden Erzeugerzeiger, das Leerflag und die Anfangsreferenzzählung in der Datenstruktur 120 nachzuschlagen.
  • 2. Der Erzeugerzeiger wird dann verwendet, um auf den Nullendeintrag der geeigneten Liste 65 zuzugreifen, wobei die Zellkörperadresse, der Zelltyp, das EOP-Bit und die Anfangsreferenzzählung in die entsprechenden Felder des Eintrages geschrieben werden und das Stoppbit auf Null eingestellt wird.
  • 3. Sobald dies durchgeführt wurde, wird die Adresse eines neuen Listeneintrages aus einem Freie-Liste-Eintrag- FIFO (nicht gezeigt) erhalten und in das Nächster- Eintrag-Feld geschrieben.
  • 4. Schließlich wird der relevante Zeiger durch Einstellen desselben auf den Wert, der aus der freien Eintragsliste beibehalten wurde, weiterbewegt.
  • Ein Beispiel des Stellens in eine Warteschlange eines Zelldetaileintrags wird in Fig. 13 für einen Sammelsendefall gezeigt, bei dem es drei Ausgangs-VCN gibt, die der betreffenden Haupt-VCN zugeordnet sind (d. h. die Anfangsreferenzzählung ist gleich 3). Fig. 13A zeigt die relevante Liste 65, bevor ein Hinzufügen des Neueintrages beginnt, Fig. 13B zeigt die Liste, nachdem die neuen Zelldetails in den früheren Null-Endeintrag eingefügt wurden, und Fig. 13C zeigt die Liste, nachdem ein neuer Null-Endeintrag hinzugefügt wurde, um den Eintraghinzufügungsprozeß zu komplettieren.
  • Der wichtige Punkt, der aus dem vorhergegangenen Beispiel angemerkt wird, ist, daß das Stellen in eine Warteschlange des Zelldetaileintrags in dem Sammelsendefall mit der gleichen Zahl von Operationen ausgeführt wurde, wie es für den Einsende-Fall benötigt worden wäre. Dies ist möglich, weil ein Nulleintrag immer an dem Ende jeder Liste behalten wird. So besteht eine leere Liste aus einem einzelnen Nulleintrag, wobei der entsprechende Erzeugerzeiger und der oder jeder Verbraucherzeiger auf ihn zeigen.
  • Nach dem Stellen in eine Warteschlange eines Zelldetaileintrags bei einer Liste 65, bei der ihr leeres Flag eingestellt ist, muß die Eingangssteuerung 66 den Sammelsendeexpander 82 anstoßen, um ihn zu informieren, daß eine Zelle bei der betreffenden Haupt-VCN angekommen ist. Der Anstoß enthält die gegenwärtige Haupt-VCN, und auch eine Flag, um dem Sammelsendeexpander 83 zu sagen, ob die Haupt-VCN sammelgesendet ist. Dieses Flag wird eingestellt, wenn die anfängliche Referenzzählung ungleich 1 ist. Durch das Bereitstellen dieses Flags wird ein Nachschlag in dem Sammelsendeexpander eingespart (dies ist so, weil bei der vorliegenden Implementierung die erste Ausgangs-VCN immer die gleiche ist wie die Haupt-VCN, der sie zugeordnet ist).
  • Sobald der Anstoß gesendet wurde, löscht die Eingangssteuerung 66 das leere Flag für die betreffende Liste. Es sei angemerkt, daß dies das einzige Mal ist, daß das leere Flag gelöscht wird.
  • Senden einer Zelle: Sobald der Planungsblock 75 entschieden hat, daß eine Zelle bei einem bestimmter Ausgang-VCN gesendet werden soll, teilt er dies der Ausgangssteuerung 69 des Warteschlangenblocks 63 mit. Nach Erhalt der Ausgangs-VCN muß die Ausgangssteuerung 69 die Zelldetailinformationen für den Kopfeintrag in der Warteschlange 70 für die Ausgangs-VCN wiedergewinnen. Dies ist einfach, da die Ausgangssteuerung 69 die Ausgangs-VCN einfach verwendet, um den Verbraucherzeiger 68 für die relevante Warteschlange zu beibehalten, wobei sie so unmittelbar auf die benötigten Zelldetails (die Zellkörperadresse, den Zelltyp und das EOP-Bit) zugreifen kann. Diese Informationen werden dann bei dem Ausgangsanfangsblockerzeugungsblock 64 zum Senden weitergeleitet.
  • Sobald die Zelldetails gesendet wurden, gibt es eine Zahl von Organisationsoperationen, die durchgeführt werden müssen, um die relevante Warteschlange 70 und die verbundene Liste 65 zu beibehalten, und um andere Blocks über Veränderungen in der Warteschlange und der Liste zu informieren.
  • Fig. 14 ist eine Flußdiagrammdarstellung des Prozesses des Ausgebens von Zelldetails und des sich ergebenden benötigten Organisierens, wobei die bereits beschriebene Operation des Ausgebens der Zelldetails als Block 130 gezeigt ist. Die Verwendung eines Flußdiagramms sollte nicht vermuten lassen, daß die betreffenden Operationen in der Software durchgeführt werden. Tatsächlich wird aus Gründen der Ausführungsgeschwindigkeit eine Hardwareimplementierung allgemein benötigt.
  • Die nach dem Ausgeben der Zelldetails benötigten Organisationsoperation sind:
  • 1. Ausarbeiten, ob die relevante Warteschlange 70 leer ist (Block 131);
  • 2. Ausarbeiten, ob der Zelldetaileintrag, der gerade ausgegeben wurde, freigelassen werden soll (Block 132);
  • 3. Ausführen des eintragsbezogenen Organisierens; wenn der Eintrag behalten werden, soll (Eintragsorganisationsblock 133);
  • 4. Freilassen des Eintrags und Ausführen des listenbezogenen Organisierens, wenn der Eintrag freigelassen werden soll (Listenorganisierungsblock 134);
  • 5. Bewegen des Verbraucherzeigers (Warteschlangenorganisierungsblock 135); und,
  • 6. Ausarbeiten, ob die Ausgangs-VCN weiterhin für das Planen (Block 136) in Betracht kommen sollte.
  • Diese Operationen werden unten beschrieben.
  • 1. Warteschlange leer (Block 131)?: Um auszuarbeiten, ob die relevante Warteschlange 70 leer ist, wird der Nächster-Zeiger des Warteschlangeneintrags, der gerade ausgegeben wurde, mit der Erzeugerzeiger für die Liste 65 verglichen, auf der die Warteschlange abgebildet ist. Wenn der Nächster-Zeiger und der Erzeugerzeiger übereinstimmen, gibt es keine weiteren Einträge in der Warteschlange, die darauf warten, ausgegeben zu werden. Anders ausgedrückt ist die Warteschlange leer. Um den relevanten Erzeugerzeiger nachzuschlagen, muß die Ausgangssteuerung 69 zuerst die Haupt-VCN entsprechend der gegenwärtigen Ausgangs-VCN identifizieren, wobei dies durch Verweisen auf ein Feld 127 mit Datenstrukturen 125 (siehe Fig. 12) geschieht. Die Ausgangssteuerung verwendet dann die. Haupt-VCN, um auf die Datenstruktur 120 zuzugreifen und um den benötigten Erzeugerzeiger wiederzugewinnen. Für den Einsendefall kann, wenn die einzige Ausgangs-VCN gleich der Haupt- VCN gemacht wurde, natürlich auf die Datenstruktur 120 durch direktes Verwenden der Ausgangs-VCN, um den Erzeugerzeiger nachzuschlagen, zugegriffen werden. Wenn sich nach dem Vergleichen des Nächster-Zeigers und des Erzeugerzeigers herausstellt, daß die Warteschlange 70 leer ist, wird ein temporäres Flag CQE (gegenwärtige Warteschlange leer) durch die Ausgangssteuerung 69 eingestellt, wobei dieses Flag in der Ausgangssteuerung ist.
  • 2. Kann der Eintrag freigelassen werden (Block 132)?: Ein Eintrag kann nur von der Liste 65 freigelassen werden, auf die er in eine Warteschlange gestellt wird, wenn er für alle Ausgangs-VCN ausgegeben wurde, die Warteschlangen 70 aufweisen, die auf der Liste 65 abgebildet sind. Das Referenzzählungsfeld 114 wird verwendet, um zu verfolgen, wie viele Male mehr ein Eintrag ausgegeben werden muß (wie bereits beschrieben wird das Referenzzählen anfänglich durch die Eingangssteuerung 66 auf einen Wert eingestellt, der der Gesamtzahl von Warteschlangen, die auf der Liste abgebildet sind, entspricht). Um zu entscheiden, ob ein Eintrag freigelassen werden kann, muß die Ausgangssteuerung 59 nur das Referenzzählungsfeld 114 prüfen. Wenn es einen Wert von 1 aufweist, kann der Eintrag freigelassen werden (der Wert von 1 ist für das Ausgeben des Eintrages, der gerade im Block 130 aufgetreten ist).
  • 3. Eintragsorganisieren (Block 133): Wenn ein Eintrag noch nicht freigelassen werden soll, wird die Referenzzählung, die im Feld 114 gehalten wird, dekrementiert, um die Zahl der Ausgangs-VC zu verfolgen, für die der Eintrag noch ausgegeben werden soll. Ferner wird, wenn die gegenwärtige Warteschlange nun leer ist (wie durch das CQE-Flag angezeigt, möglicherweise im Block 131 eingestellt), dann das Stopp-Flag des Eintrags eingestellt, wodurch sicher gestellt wird, daß alle Warteschlangen 70 bei einem Sammelsendefall wieder synchron gemacht werden, wie vorher erklärt wurde. Ein Beispiel der Verwendung des Stopp-Bits wird im folgenden gegeben.
  • 4. Listenorganisieren (Block 134): Wenn ein Listeneintrag freigelassen werden soll, wird das dadurch getan, daß die Eintragsadresse auf die Freie-Adresse-Liste plaziert wird, die für Listeneinträge beibehalten wird. Zusätzlich wird die Zellkörperadresse auf die Freie- Adresse-Liste 32 (Fig. 4) plaziert. Als nächstes testet die Ausgangssteuerung 69 das CQE-Flag. Wenn dieses Flag eingestellt ist (und anzeigt, daß die gegenwärtige Warteschlange leer ist), weiß die Ausgangssteuerung, daß die entsprechende Liste ebenfalls leer ist. In diesem Fall veranlaßt die Ausgangssteuerung das entsprechende leere Flag 122 in der Datenstruktur 120 dazu, eingestellt zu werden. Wenn das CQE-Flag nicht eingestellt ist, und anzeigt, daß es weitere Einträge zum Senden gibt, aber das Stopp-Bit des Eintrages, der gerade ausgegeben wurde, eingestellt wurde, weiß die Ausgangssteuerung 69, daß alle Warteschlangen eines Sammelsendefalles nun synchron gemacht wurden, so daß die entsprechenden Ausgangs-VCN zurück in den Sendesteuerungspfad injiziert werden können. Um dies zu tun, sendet die Ausgangssteuerung 69 einen "nicht gestoppten" Anstoß an den VCN-Sende-Anstoßblock 82. Schließlich benachrichtigt die Ausgangssteuerung den Kontrollblock 62, um ihn über die neue Listenlänge nach der Entfernung des Eintrages, der gerade ausgegeben wird, zu informieren.
  • 5. Warteschlangenorganisieren (Block 135): Das einzige Organisieren, das für die gegenwärtige Warteschlange (die Warteschlange, von der Zelldetailinformationen im Block 130 ausgegeben wurden) benötigt wird, ist das Aktualisieren des Verbraucherzeigers 68, um auf den nächsten Eintrag in der Warteschlange zu zeigen. Um dies zu tun, stellt die Ausgangssteuerung 69 einfach den Verbraucherzeiger auf den Nächster-Zeiger-Wert ein, der in dem Eintrag gehalten wird, der gerade ausgegeben wurde.
  • 6. Soll die Ausgans-VCN zurückgeführt werden (Block 136)?: Die Ausgangssteuerung 69 leitet dem Auswählbarkeitssteuerungsblock 77 die gegenwärtige Ausgangs-VCN zu, um es letzterer zu ermöglichen, die entsprechende Kreditzählung zu dekrementieren. Zur gleichen Zeit erwägt die Ausgangssteuerung 69, ob die Ausgangs-VCN, auf die sie gerade gewirkt hat, zurück zu dem Sendesteuerungspfad zurückgeführt werden kann. Die Ausgangs-VCN wird nur zurückgeführt, wenn es mehr Einträge in der entsprechenden Warteschlange 70 gibt (d. h. das CQE-Flag ist nicht eingestellt) und wenn beim Sammelsenden der Eintrag, der gerade gesendet wurde, kein eingestelltes Stopp-Bit aufweist, um anzuzeigen, daß die Sammelsendewarteschlangen bei dem Eintrag ausgerichtet werden. Die Ausgangssteuerung 69 prüft auf diese Kombination von Gegebenheiten und sendet, wenn vorhanden, eine "Mehr-Zellen"-Anzeige gemeinsam mit der Ausgangs-VCN an den Auswählbarkeitssteuerungsblock.
  • Nach Beschreibung des allgemeinen Funktionierens der Listen 65 und der Warteschlangen 70 und der detaillierten Schritte, die von der Eingangs- und Ausgangssteuerung 66, 69 unternommen werden, um dieses Funktionieren zu implementieren, wird nun ein Beispiel gegeben, um ein vollständiges Verständnis zu unterstützen, insbesondere was das Funktionieren des Stopp-Bits beim Regeln des Ausgangs von Einträgen von Sammelsendewarteschlangen, die auf der gleichen Liste 65 abgebildet sind, angeht.
  • Fig. 15A zeigt eine Liste 65 mit fünf Einträgen, die aus Einträgen für Zellen Zelle 1, Zelle 2, Zelle 3, Zelle 4 und einer Null-Eintrag-Zelle an dem Ende der Liste besteht. Zur Klarheit sind nur das Stopp-Bit-Feld und das Nächster- Eintrag-Zeiger-Feld für jeden Eintrag einzeln gezeigt, wobei die anderen Felder wie geeignet durch das Etikett Zelle 1, Zelle 2, Zelle 3, Zelle 4 und Null dargestellt sind. Drei Warteschlangen 70 sind in der Liste mittels jeweiliger Verbraucherzeiger C1, C2 und C3 abgebildet, die auf den Kopf jeder Warteschlange zeigen, wobei das Ende jeder Warteschlange der Nulleintrag ist. So weist die Warteschlange (die erste Warteschlange), die dem Zeiger C1 zugeordnet ist, der auf den Eintrag Zelle 1 zeigt, vier Einträge auf, die auf ein Senden warten (Zelle 1 bis Zelle 4). Die Warteschlange (die zweite Warteschlange), die dem Zeiger C2 zugeordnet ist, der auf den Nulleintrag zeigt, weist keine Einträge auf, die auf das Senden warten. Die Warteschlange (die dritte Warteschlange), die dem Zeiger C3 zugeordnet ist, der zum Eintrag Zelle 2 zeigt, weist drei Einträge auf, die auf das Senden warten (Zelle 2, Zelle 3, Zelle 4).
  • Zu der Zeit, zu der die zweite Warteschlange leer wurde, stellte die Ausgangssteuerung 69 beim Durchführen des Eintragsorganisierens des Blocks 133 aus Fig. 14 das Stopp-Bit des Eintrags, der gerade ausgegeben wurde (des Eintrags Zelle 4) ein, was durch "Stop = 1" in Fig. 15A angezeigt wird. Die Ausgangs-VCN, die der zweiten Warteschlange zugeordnet ist, wurde von der Ausgangssteuerung nicht zurückgeführt.
  • Fig. 15B zeigt die Hinzufügung eines neuen Eintrags Zelle 5 zu der Liste aus Fig. 15A, wobei die Eintragsdetails in den vorhergehenden Null-Eintrag an dem Ende der Liste eingegeben wurden und wobei ein neuer Null-Eintrag der Liste beigefügt wurde. Die Verbraucherzeiger C1, C2, C3 zeigen auf die gleichen Einträge wie zuvor.
  • Obwohl es nun einen neuen Eintrag in der zweiten Warteschlange gibt, wird dieser nicht gesendet werden, da die entsprechende Ausgangs-VCN gegenwärtig nicht in dem Sendesteuerungspfad ist und deshalb für ein Planen nicht zur Verfügung steht. Dennoch sind die Ausgangs-VCN der ersten und dritten Warteschlange noch immer in dem Sendesteuerungspfad und werden geplant. Jede dieser Warteschlangen wird deshalb nach und nach längenmäßig reduziert. Wenn der Listeneintrag zum dritten Mal ausgegeben ist (dies kann bezüglich der ersten oder dritten Warteschlange sein), wird der Eintrag freigelassen. Zur gegebenen Zeit wird der Eintrag Zelle 4 auf entweder der ersten oder der dritten Warteschlange ausgegeben werden und zu dieser Zeit wird die Ausgangs-VCN, die der Warteschlange zugeordnet ist, nicht zurückgeführt, weil das Stopp-Bit des Zelle-4-Eintrags eingestellt ist. Der entsprechende Verbraucherzeiger kommt so bei dem Eintrag Zelle 5 gemeinsam mit dem Zeiger C2 zur Ruhe. Schließlich wird der Zelle-4-Eintrag durch die letzte der drei Warteschlangen ausgegeben, wobei der entsprechende Verbraucherzeiger eingestellt wird, um auf den Eintrag Zelle 5 zu zeigen. Der Eintrag Zelle 4 wird freigelassen und die Ausgangssteuerung 69 erkennt, daß sie den Anstoßblock 82 anstoßen muß, um die Ausgangs-VCN aller drei Warteschlangen zurück in den Sendesteuerungspfad zu injizieren, um das Ausgeben von Einträgen von diesen Warteschlangen erneut zu starten.
  • Sendeanstoßblock
  • Der Ausgangs-VCN-Sende-Anstoßblock 82 macht einen "Anstoß" bei einer bestimmten Haupt-VCN und erweitert ihn in alle zugeordneten Ausgangs-VCN. Bei dem vorliegenden Ausführungsbeispiel wird die erste Ausgangs-VCN mit dem gleichen Wert wie die Haupt-VCN gemacht, so daß für den Einsendefall die Haupt-VCN direkt als die Ausgangs-VCN genommen werden kann. Die Ausgangs-VCN, die durch die Expansionsoperation geschaffen werden, werden von dem Block 82 weiter zu dem Auswählbarkeitssteuerungsblock 77 geleitet, wenn letzterer um sie bittet.
  • Wie bereits beschrieben können Anstöße von der Eingangssteuerung 66, nachdem eine Liste 65, die von einem leeren in einen nicht leeren Zustand ("nicht leere" Anstöße) gelangt, oder von der Ausgangssteuerung 69 herrühren, nachdem sich alle Warteschlangen 70 auf einer Liste bei einem Eintrag ausrichten, der einem folgt, dessen Stopp-Bit eingestellt wurde ("nicht gestoppter" Anstoß). Anstöße von letzterer Quelle werden immer Sammelsendefällen zugeordnet, wohingegen Anstöße von der Eingangssteuerung 66 auf Einsenden oder Sammelsenden bezogen sein können. Die Eingangssteuerung 66 erkennt aus den Daten, die in dem Feld 123 der Datenstruktur 120 gespeichert sind (siehe Fig. 12), ob sich eine Haupt-VCN auf ein Einsenden oder Sammelsenden bezieht und leitet diese Informationen gemeinsam in der Haupt-VCN weiter, wenn ein "nicht leerer" Anstoß bei dem Sende- Anstoßblock 82 ausgeführt wird.
  • So wird der Block 82 nach dem Erhalten eines Anstoßes sowohl die betreffende Haupt-VCN kennen als auch wissen, ob sie sich auf eine Einsende- oder eine Sammelsendeverbindung bezieht.
  • Wie bereits oben angemerkt umfaßt der Sendeanstoßblock ein Puffern, das oberhalb jeder Pro-Ausgangs-VCN-Operation plaziert ist. Eine Art dies zu tun, ist, den Sammelsendeexpander 83 als ein Anstoß-FIFO 140 (siehe Fig. 16) zum Speichern jedes erhaltenen Anstoßes zu implementieren, wobei ein Sammelsendegruppenspeicher 141 für jede Sammelsendeverbindung die Gruppe von zugeordneten Ausgangs-VCN speichert. Der allgemeine Betrieb von Block 82 ist dann wie folgt: Wenn ein Anstoß in den Anstoß-FIFO 140 eingegeben wird, um die betreffende Haupt-VCN aufzuzeichnen, wird ein zugeordnetes Sammelsendeflag geeignet eingestellt, um anzuzeigen, ob sich der Anstoß auf eine Sammelsendeverbindung bezieht oder nicht. Die gespeicherten Anstöße werden dann in der FIFO-Reihenfolge durch den Block 82 verarbeitet, wobei die Ausgangsschaltung 84, wenn durch den Auswählbarkeitssteuerungsblock 77 angefordert, die oder jede Ausgangs-VCN ausgibt, die der Haupt-VCN eines Anstoßes zugeordnet ist. Wenn ein Anstoß sich auf eine Einsende-Haupt-VCN bezieht, dann gibt die Ausgangsschaltung 84 insbesondere einfach die Haupt-VCN als die entsprechenden Ausgangs-VCN aus. Wenn jedoch das Sammelsendeflag eines Anstoßes eingestellt ist, um anzuzeigen, daß es sich auf eine Sammelsende-Haupt-VCN bezieht, dann verwendet die Ausgangsschaltung 84 die Haupt- VCN, um in den Sammelsendegruppenspeicher 41 zu indexieren und wiederum jede zugeordnete Ausgangs-VCN auszugeben.
  • Indem der Anstoß-FIFO groß genug gemacht wird, um einen Anstoß für jede Haupt-VCN zu halten (es wird immer nur einen gegenwärtigen Anstoß pro Haupt-VCN geben), stellt die obige Anordnung sicher, daß keine Anstöße jemals verloren gehen, während die gewünschte Verarbeitungselastizität geschaffen wird, um mit einer Sammelsendeexpansion umzugehen.
  • Das detaillierte Arbeiten der Anordnung aus Fig. 16 ist wie folgt. Das Verfahren zum Hinzufügen des Eintrags (Anstoß) zu dem FIFO 140 hängt davon ab, ob der FIFO gegenwärtig leer ist oder nicht. Dies wird durch ein zugeordnetes leeres Flag 142 angezeigt. Wenn das leere Flag eingestellt ist, ist der FIFO leer und ein Hinzufügen eines neuen Eintrags schließt das Schreiben der neuen Haupt-VCN in die Anstoß-um-zu-lesen-und-zu-schreiben-Zeiger 143, 144 ein, die das Sammelsendeflag 145 in dem Eintrag, auf den der Schreiben-Zeiger zeigt (bei dem vorliegenden Beispiel zeigt ein Wert gleich 1 eine Sammelsendeverbindung an), geeignet einstellen und das leere Flag 142 wieder einstellen.
  • Wenn das leere Flag nicht eingestellt ist, ist der FIFO 140 nicht leer und das Hinzufügen eines neuen Eintrages schließt zwei Schritte ein. Erstens wird die neue Haupt-VCN an die Stelle geschrieben, zu der der Schreiben-Zeiger gegenwärtig zeigt. Zweitens wird die neue Haupt-VCN an den Schreiben-Zeiger geschrieben, wobei das Sammelsende-Flag an der neuen Stelle, auf die der Schreiben-Zeiger zeigt, geeignet eingestellt wird. Bei dem Beispiel aus Fig. 16 würde das Hinzufügen der Haupt-VCN 11 zu dem FIFO 140 das Schreiben von 11 an die Stelle 14 und dann das Schreiben von 11 an den Schreiben-Zeiger und geeignetes Einstellen des Sammelsende-Flags an der Stelle 11 einschließen.
  • Das Lesen des FIFO 140 wird den Wert in dem Lesen-Zeiger 143 gemeinsam mit dem Zustand des Sammelsendeflags, das an der Stelle gehalten wird, auf die der Lesenzeiger zeigt, zurückbringen. Der Lesen-Zeiger wird dann durch das Lesen der Stelle, auf die er zeigt, und durch Speichern des Lesenwertes als den neuen Wert des Lesenzeigers weiterbewegt. Bevor jedoch dieser neue Wert an den Lesenzeiger geschrieben wird, muß der alte Eintrag auf Null geändert werden. Sobald dies geschehen ist, kann der neue Wert an den Lesen- Zeiger geschrieben werden.
  • Der FIFO 140 ist leer, wenn der Wert, der an den Lesen- Zeiger geschrieben wird, NULL ist. In diesem Fall wird das leere Flag eingestellt.
  • Ein Lesen von dem FIFO 140 aus Fig. 16 würde einen Haupt- VCN-Wert von 1 mit einer Anzeige wiederbringen, daß sie sich auf eine Einsendeverbindung bezog. Das Weiterbewegen des Lesen-Zeigers würde das Lesen der Stelle 1 (woraus sich ein Wert von 2 ergibt), das Schreiben von 0 an die Stelle 1 und schließlich das Schreiben von 2 an den Lesenzeiger umfassen.
  • Wo eine Haupt-VCN, die von dem FIFO gelesen wurde, sich auf eine Einsende-Verbindung bezieht, wird die Haupt-VCN einfach als die Ausgangs-VCN ausgegeben. Wo jedoch die Haupt- VCN sich auf eine Sammelsendeverbindung bezieht, muß auf den Sammelsendegruppenspeicher 141 Bezug genommen werden, damit die Ausgangs-VCN ausgegeben werden können.
  • Sammelsendegruppen werden als einzeln verbundene Listen im Speicher 141 gehalten. Diese Listen werden erzeugt, wenn eine Sammelsendeverbindung aufgebaut wird. Das Erweitern eines Anstoßes auf einer bestimmten Sammelsende-Haupt-VCN schließt einfach das anfängliche Benutzen der Haupt-VCN, um die korrekte Liste in den Speicher 141 einzugeben, und dann das Folgen der Liste, die einen Sammelsendezeiger 146 benutzt, und das Kopieren jeder gefundenen Ausgangs-VCN ein.
  • Die Beispieleinträge aus Fig. 16 zeigen folgendes:
  • - Sammelsendegruppenaufbau: 3, 4, 13 5, 6, 10, 12
  • - Eingangssequenz der Haupt-VCN: 1, 2, 5, 8, 14
  • - Ausgangssequenz der Ausgangs-VCN: 1, 2, 5, 6, 10, 12, 8, 14.
  • Fig. 17 zeigt eine Verbesserung der Anordnung aus Fig. 16. Weil die Ausgangs-VCN oder die erste Ausgangs-VCN, die einer Haupt-VCN zugeordnet sind, den gleichen Wert wie letztere aufweist, werden die Ausgangs-VCN in einer Sammelsendegruppe, anders als die erste Ausgangs-VCN, mit Werten ausgewählt sein, die sich von jeder Haupt-VCN unterscheiden. Als ein Ergebnis wird es möglich, daß dafür gesorgt wird, daß der Anstoß-FIFO 140 und der Sammelsendegruppenspeicher 141 den gleichen Speicherblock verwenden, wobei der erste Eintrag in jeder Sammelsendegruppenliste als überflüssig gegenüber dem entsprechenden Haupt-VCN-Eintrag gelöscht wird. Fig. 17 zeigt graphisch dieses effektive Verschmelzen des FIFO 140 und des Speichers 141. Nun wird, wenn eine Sammelsende-Haupt-VCN aus dem Anstoß-FIFO gelesen wird, ihr Wert als die erste Ausgangs-VCN der entsprechenden Sammelsendegruppe ausgegeben, wobei die anderen Ausgangs-VCN dann unter Verwendung der geeigneten verbundenen Liste ausgegeben werden. Tatsächlich muß, um diese Liste zu lokalisieren, eine geeignete Verbindung geschaffen werden. Bei dem vorliegenden Beispiel wird diese Verbindung implizit hergestellt, indem einfach festgelegt wird, daß die zweite Ausgangs-VCN in jeder Sammelsendegruppe immer einen Wert von 1 mehr als die erste Ausgangs-VCN (d. h. als die Haupt-VCN) aufweist. Diese Verbindung könnte explizit (und variabel) gemacht werden, indem ein Extrazeiger, der jeder Haupt-VCN zugeordnet ist, eingeschlossen wird, was jedoch nicht bevorzugt wird.
  • In Fig. 17 wird bemerkbar sein, daß sogar die Einträge, die zu dem Sammelsende-Gruppenspeicher gehören, so gezeigt werden, daß sie ein Sammelsendeflagfeld aufweisen. Der Grund hierfür liegt einfach darin, daß es praktisch ist, wenn alle Einträge, ob sie zu der FIFO-Datenstruktur 140 oder der Speicherdatenstruktur 141 gehören, die gleiche Größe aufweisen.
  • Es kann angemerkt werden, daß die kombinierten Strukturen 140 und 141 aus Fig. 17 auf ein Ausgangs-VCN-FIFO-Speicher allein betrachtet werden können, weil, nachdem jeder Anstoß eingetragen wurde, er effektiv die Verbindungen aufbaut, die die geeigneten Ausgangs-VCN zu der Sequenz von denen hinzufügt, die auf ein Ausgeben warten. Ein Puffern der Ausgangs-VCN und nicht der Anstöße ist möglich, weil keine Pro-Ausgang-VCN-Operationen benötigt werden, um Einträge in die Anordnung aus Fig. 17 zu machen, wobei die einzigen Pro-Ausgang-VCN-Operationen diese sind, die beim Extrahieren der Ausgangs-VCN aus der Anordnung aus Fig. 17 eingeschlossen sind.
  • Kreditbereitstellung
  • Der Kreditbereitstellungsblock 80-(Fig. 8) stellt Sendekredite für den Auswählbarkeitssteuerungsblock 77 bezüglich der Ausgangs-VC bereit, die entweder:
  • (a) Beste-Bemühung, flußgesteuert; oder,
  • (b) Garantierte-Bandbreite sind.
  • Für den Fall (a) spiegelt der Sendekredit die Menge von verfügbarem Pufferraum wieder, die durch den Unterhalbknoten angekündigt wird. Es ist die Verantwortung des Flußsteuerungsblocks 85, die Kreditmeldungen zu interpretieren, die von dem Unterhalbknoten empfangen wurden, und den Kreditbereitstellungsblock 80 über die Kreditmengen zu informieren, die für die betreffenden Ausgangs-VCN angekündigt werden.
  • Für den Fall (b) (Garantierte-Bandbreite-VC), betreibt der Kreditbereitstellungsblock 80 einen Token-Eimer-Plan zum Erzeugen von Token (Kredit) zu regelmäßigen Intervallen, wobei die Durchschnittsgeschwindigkeit, mit der Token bezüglich einem bestimmten Garantierte-Bandbreite-VC erzeugt werden, eingestellt wird, um die Geschwindigkeit wiederzuspiegeln, mit der der VC senden darf. Die erzeugten Kredite werden zu dem Auswählbarkeitssteuerungsblock 77 geleitet, wo sie in Tokeneimer plaziert werden, die den geeigneten Ausgangs-VCN zugeordnet sind. Wenn eine Zelle bezüglich einer Ausgangs-VCN gesendet wird, wird ein Kredit von dem entsprechenden Tokeneimer entfernt.
  • Der Token-Eimer-Plan, der durch den Kreditbereitstellungsblock operiert wird, verwendet eine Tabelle 150 und einen Zähler 151, wie in Fig. 18 dargestellt.
  • Die Tabelle 150 hat eine feste Größe (M Einträge) und enthält die Ausgangs-VCN, die sich auf Garantierte-Bandbreite- VC beziehen. Zugeordnet zu jeder Ausgangs-VCN ist ein Kredit-Inkrementierungswert.
  • Der Zähler 151 ist ein Modul-M-Zähler, der bei regelmäßigen Intervallen inkrementiert wird. Nachdem der Zähler inkrementiert wurde, wird die Ausgangs-VCN und das Kredit- Inkrement aus der Tabelle abgelesen und zu dem Auswählbarkeitssteuerungsblock gesendet. Wenn der Tabelleneintrag leer ist, wird während dieses Intervalls kein Kredit gesendet.
  • Der Grund dafür, daß es das Kreditinkrementfeld gibt und nicht immer ein einzelner Kredit gesendet wird, ist, den Bedarf zu vermeiden, daß der Auswählbarkeitssteuerungsblock bei jeder Zellzeit den Token-Eimer-Plan bedienen muß. Wenn z. B. der Token-Eimer-Plan nur bei jeder zweiten Zellzeit bedient wird, würde, wenn nur ein Kredit bei jedem Bedienen gesendet werden könnte, der Schalter nicht in der Lage sein, mehr als die Hälfte seiner Ausgangsbandbreite den Garantierte-Bandbreite-VCN zuzuordnen. Umgekehrt würde, wenn dieses Problem vermieden würde, indem immer zwei Kredite gesendet würden, die Genauigkeit der Tokeneimer beeinträchtigt werden.
  • Allgemein wird das Kreditinkrementfeld 1 Bit breit sein, so daß es in der Lage ist, anzuzeigen, ob ein oder zwei Kredite gesendet werden sollen. Das Feld könnte breit gemacht werden, um eine größere Flexibilität zu ermöglichen.
  • Die Länge der Tabelle in dem Token-Eimer-Plan wird durch die Auflösung bestimmt, die beim Zuordnen der Bandbreite benötigt wird. Typischerweise kann jeder Tabelleneintrag angeordnet werden, um einer 64-Kb/s-Scheibe der Bandbreite zu entsprechen.
  • Der Token-Eimer-Plan wird zur Zeit der Festlegung der Verbindung aufgebaut. Wenn eine 64-Kb/s-Scheibe für eine bestimmte Ausgangs-VCN benötigt wird, muß die Prozessoreinheit einen leeren Tabelleneintrag finden und die VCN an ihn schreiben. Wenn mehrere Scheiben benötigt werden, muß die Prozessoreinheit die Ausgangs-VCN mehrere Male in den Plan schreiben, die so gleichmäßig wie möglich beabstandet sind.
  • Auswählbarkeitssteuerungsblock
  • Es ist die Funktion des Auswählbarkeitssteuerungsblocks 77, den Sendekredit der Ausgangs-VCN zu verfolgen, die Kredit brauchen, um zu senden, und die Ausgangs-VCN mit Zellen zum Senden zu dem Planungsblock 75 zu leiten, die entweder einen Sendekredit benötigen und haben oder einen derartigen Kredit nicht benötigen.
  • Der Auswählbarkeitssteuerungsblock 77 erhält eine bestimmte Menge von Daten für jede Ausgangs-VCN, wobei diese Daten in der Tabelle 81 gehalten werden und die folgenden Gegenstände aufweisen (siehe Fig. 19):
  • - Kredit, der die Zahl von Zellen ist, für die die Ausgangs-VCN gegenwärtig Kredit zum Senden hat;
  • - Maximalkredit, der der Maximalwert ist, den das Kreditfeld annehmen kann;
  • - das "Zellenflag", das, wenn es eingestellt ist, anzeigt, daß die Ausgangs-VNC Zellen in ihrer Warteschlange hat, aufgrund mangelnden Kredits aber nicht geplant wurde;
  • - die QOS (Bedienqualität), die den Ausgangs-VCN zugeordnet ist. Diese ist eine der folgenden:
  • * GB0: Garantierte Bandbreite mit niedriger Latenzzeit,
  • * GB1: Garantierte Bandbreite mit höherer Latenzzeit,
  • * BE: Beste Bemühung;
  • - das "Ausgangssteuerungsflag", das, wenn es eingestellt ist, anzeigt, daß eine Garantierte-Bandbreite- Ausgangs-VCN einen geformten Ausgang aufweist oder daß eine Beste-Bemühung-Ausgangs-VCN flußgesteuert ist; und,
  • - die Externes-Tor-Zahl.
  • All diese Daten, bis auf den Kredit und das "Zellenflag" werden zur Zeit der Festlegung der Verbindung aufgebaut und danach nicht verändert.
  • Wie Fig. 19 zeigt ist der Auswählbarkeitssteuerungsblock angeordnet, um Eingangsmeldungen von vier unterschiedlichen Quellen zu empfangen. Jede Eingangsmeldung weist eine Ausgangs-VCN und bestimmte Informationen auf, die zu dieser Ausgangs-VCN gehören. Diese Eingänge und ihr Effekt auf den Sendekredit einer Ausgangs-VCN sind wie folgt:
  • 1. Eine Ausgangs-VCN von dem Sendeanstoßblock 82 signalisiert, daß zumindest eine neue Zelle für diese Ausgangs-VCN verfügbar ist. Diese Eingabe hat keine Auswirkung auf die entsprechende Kreditzählung.
  • 2. Eine Ausgangs-VCN und ein Kreditinkrement aus dem Token-Eimer-Plan des Kreditbereitstellungsblocks 80 signalisieren, daß der Token-Eimer der Ausgangs-VCN mehr Kredit in sich haben sollte. Die Kreditzählung wird entsprechend abhängig von dem maximalen Kreditlimit erhöht.
  • 3. Eine Ausgangs-VCN und eine Kreditmenge aus dem Flußsteuerungsblock (über den Kreditbereitstellungsblock 80) zeigen an, daß ein Unterhalbknoten diese Menge von Kredit angekündigt hat. Die, entsprechende Kreditzählung wird entsprechend eingestellt.
  • 4. Eine Ausgangs-VCN, möglicherweise mit einer "Mehr- Zellen"-Anzeige, aus dem Warteschlangenblock 63. Der Empfang der Ausgangs-VCN zeigt an, daß eine Zelle bei dieser Ausgangs-VCN gesendet wurde, so daß der Kredit der letzteren dekrementiert werden muß (es sei denn er ist 0). Die "Mehr-Zellen"-Anzeige zeigt an, daß die Warteschlange der VCN mehr Zellen aufweist und so weiterhin zum Planen in Betracht kommen sollte, vorausgesetzt, sie hat noch Kredit.
  • Nachdem der Auswählbarkeitssteuerungsblock 77 jede benötigte Anpassung an die Kreditzählung einer Ausgangs-VCN gemacht hat, bei der er gerade einen Eingang empfangen hat, erwägt er weiter, ob angesichts dieses Eingangs eine Meldung an den Planungsblock gesendet werden soll, der die Ausgangs-VCN in die geeignete Warteschlange plaziert. Eine Meldung an den Planungsblock wird unter den folgenden Umständen gesendet:
  • 1. Eine Ausgangs-VCN aus dem Sende-Anstoßblock verursacht, daß eine Meldung gesendet wird:
  • * wenn der Kredit größer als Null ist,
  • * oder wenn die VCN Garantierte-Bandbreite mit einem nicht geformten Ausgang ist,
  • * oder wenn die VCN Beste-Bemühung ohne Flußsteuerung ist.
  • 2. Eine Ausgangs-VCN und ein Kreditinkrement aus dem Token-Eimer-Plan verursachen, daß eine Meldung gesendet wird, wenn das "Zellenflag" eingestellt ist und anzeigt, daß die VCN Zellen aufweist, aber aufgrund eines Kreditmangels nicht vorher geplant wurde.
  • 3. Eine Ausgangs-VCN und ein Kredit aus dem Ausgangs- Flußsteuerungsblock verursachen, daß eine Meldung gesendet wird, wenn der Kredit nun ungleich Null und das "Zellenflag" eingestellt ist.
  • 4. Eine Ausgangs-VCN und eine "Mehr-Zellen"-Anzeige aus dem Warteschlangenblock verursachen, daß eine Meldung gesendet wird:
  • * wenn der Kredit nach dem Dekrementieren größer als Null ist,
  • * oder wenn die Ausgangs-VCN Garantierte-Bandbreite mit einem nicht geformten Ausgangs ist,
  • * oder wenn die Ausgangs-VCN Beste-Bemühung ohne Flußsteuerung ist.
  • Die Meldung, die an den Planungsblock gesendet wird, enthält die relevante Externes-Tor-Zahl und Warteschlangenzahl als auch die Ausgangs-VCN. Das Beibehalten der Externes- Tor-Zahl schließt einfaches Nachschlagen derselben in der Tabelle 81 ein. Die Warteschlangenzahl entspricht normalerweise der QOS der VCN. Also gehen GB0-Ausgangs-VCN in Warteschlange 0, GB1-Ausgangs-VCN in Warteschlange 1 und Beste-Bemühung-Ausgang-VCN in Warteschlange 2. Es gibt für diese Regel nur eine Ausnahme: Garantierte-Bandbreite- Ausgangs-VCN, die nicht geformte Ausgänge haben und keinen Kredit aufweisen, werden in Warteschlange 2 gegeben (die Beste-Bemühung-Warteschlange).
  • Die letzte Aufgabe, die der Auswählbarkeitssteuerungsblock durchführen muß, ist, das "Zellenflag" zu aktualisieren. Das "Zellenflag" zeigt an, daß eine Ausgangs-VCN Zellen in einer Warteschlange aufweist, aber nicht an den Planungsblock geleitet wurde, weil sie keinen Kredit hatte. Es gibt zwei Weisen, wie diese Situation entstehen kann:
  • - wenn eine Ausgangs-VCN von dem Sendeanstoßblock ankommt und die Ausgangs-VCN nicht zu dem Planungsblock geleitet wird, weil sie keinen Kredit hat; und,
  • - wenn eine Ausgangs-VCN von dem Warteschlangenblock mit der "Mehr-Zellen"-Anzeige ankommt und nicht zu dem Planungsblock geleitet wird, weil sie keinen Kredit hat;
  • Das "Zellenflag" wird in diesen beiden Fällen eingestellt. In allen anderen Fälle wird das "Zellenflag" gelöscht, bis auf die Situation, in der eine Ausgangs-VCN von dem Flußsteuerungsblock ankommt und die Ausgangs-VCN nicht zu dem Planungsblock geleitet wird, weil sie keinen Kredit hat. In dieser Situation wird das Zellenflag nicht verändert.
  • Ein weiterer Punkt, der über den Auswählbarkeitssteuerungsblock angemerkt werden soll, ist die Frequenz, bei der er Meldungen von jedem Eingang empfängt. Wenn der Block alle vier Eingänge in einer Zellzeit handhaben kann, gibt es kein Problem. Typischerweise wird dies jedoch nicht der Fall sein und es kann z. B. nur möglich sein, zwei Eingaben pro Zellzeit zu handhaben. Die folgenden Erwägungen kommen dann beim Bestimmen ins Spiel, welche Eingänge bei jeder Zellzeit bedient werden müssen:
  • - der Eingang von dem Warteschlangenblock 63 muß zu jeder Zellzeit behandelt werden, weil er in der Lage ist, zu jeder Zellzeit Zelldetails zu senden;
  • - der Token-Eimer-Plan kann entworfen sein, um einen Ausgang weniger als bei jedem Zyklus zu schaffen, weil die Inkrementgröße spezifiziert sein kann;
  • - die Flußsteuerungseingänge werden verglichen mit der Zellenzeit nicht häufig sein und können mittels eines "Fertig"-Signals gesteuert werden, das von dem Auswählbarkeitssteuerungsblock zu dem Flußsteuerungsblock geht; und,
  • - der Sendeanstoßblock wird Anstöße mit einer niedrigeren Geschwindigkeit als einen pro Zellzeit liefern, wobei, selbst wenn pro Zellzeit ein Anstoß ankommt, es den Anstoß-FIFO gibt, um sicherzustellen, daß keine Informationen verloren gehen. So kann dieser Eingang auch mittels eines "Fertig"-Signals gesteuert werden und muß nicht zu jeder Zellzeit gelesen werden.
  • Angesichts dieser Betrachtungen, bei denen nur zwei Eingänge zu jeder Zellzeit gehandhabt werden können, wird der Plan 155 aus Fig. 20 benutzt, bei dem die Warteschlangenblockeingänge zu jeder Zellzeit bedient werden, bei dem die Token-Eimer-Plan-Eingänge zu jeder zweiten Zellzeit bedient werden und bei dem die zurückbleibenden Eingänge zu jeder vierten Zellzeit bedient werden.
  • Planungsblock
  • Wie bereits beschrieben ist es die Aufgabe des Planungsblocks 75, die nächste Ausgangs-VCN zum Weitersenden auszuwählen und die diese Ausgangs-VCN zu der Ausgangssteuerung 69 des Warteschlangenblocks 63 zu leiten.
  • Eine jeweilige Warteschlangenstruktur 76 wird in dem Planungsblock für jedes externe Tor beibehalten, wobei jede Struktur drei FIFO-Warteschlangen aufweist, eine für jede Priorität (GB0, GB1 und BE), wie in Fig. 9 dargestellt.
  • Nach Empfang einer Meldung von dem Auswählbarkeitssteuerungsblock plaziert der Planungsblock die Ausgangs-VCN, die in der Meldung enthalten ist, in die geeignete Warteschlange, wie es durch die anderen Informationen in der Meldung angezeigt wird.
  • Der Planer 78 prüft die Warteschlangenstruktur 76 gemäß dem Externes-Tor-Plan 60B. Da der Planer 78 die nächste Externes-Tor-Zahl von dem Plan beibehalten hat, schaut er nach der nicht leeren Warteschlange mit der höchsten Priorität in der Warteschlangenstruktur für dieses Tor und liest die erste Ausgangs-VCN aus ihr ab.
  • Der Externes-Ausgangstor-Plan 60B in dem Planungsblock 75 ist im wesentlichen der gleiche wie der Plan 60A, der dem Haupt-VCN-Nachschlag-Block 61 zugeordnet ist (angenommen, daß die Externen-Eingangs- und Ausgangstore in Paaren vorliegen). Der Ausgangstorplan 60B benutzt jedoch Eingänge von den Überwachungseinheiten 44 der Adapterkarten, um zu berücksichtigen, wann der Ausgangs-FIFO 42 seine Einzellenschwelle überschritten hat. Insbesondere verhindert der Plan 60B ein Planen bei einem Externes-Ausgangstor, dessen FIFO seine Schwelle überschritten hat, indem eine Null-Tor- Zahl in den entsprechenden Planungszeitschlitz ausgegeben wird, bis der FIFO sich unter die Schwelle leert.
  • Die Datenstrukturen, die die FIFO-Warteschlangen in dem Planungsblock implementieren, ähneln jenen, die in dem Sammelsendeexpander 83 verwendet werden. Diese effizienten Strukturen können verwendet werden, weil es garantiert wird, daß Ausgangs-VCN nur einmal zu jeder Zeit in einer Planungsblockwarteschlange erscheinen. Tatsächlich wird eine Ausgangs-VCN nur in höchstens einer Warteschlange sein. Als ein Ergebnis ist es möglich, alle der FIFO- Warteschlangen in einem kleinen Block von Speicher darüber zu legen, während noch sicher ist, daß keine der FIFO- Warteschlangen jemals voll wird.
  • Die Datenstrukturen, die verwendet werden, um die Planungs- FIFO-Warteschlangen zu implementieren, sind in Fig. 21 gemeinsam mit Musterdaten für die Warteschlangen, die sich auf das externe Tor 0 beziehen, gezeigt. Auch wird in dieser Figur in einem gestrichelten Kasten eine herkömmlichere FIFO-Darstellung der Beispieldaten gezeigt.
  • Jede FIFO-Warteschlange (z. B. Warteschlangentor 0, GB0) wird als eine einzeln verbundene Liste mit einem Anfangsblockzeiger 161, einem Endzeiger 162 und einem leeren Flag 163 gespeichert. Diese Zeiger verweisen auf einen Speicherblock, der groß genug ist, um alle möglichen Ausgangs-VCN zu halten. Daten werden auf die gleiche Weise wie bei dem Anstoß-FIFO, der oben beschrieben wurde, aus jeder FIFO- Warteschlange gelesen und an sie geschrieben.
  • Nach jedem Lesen aus einer FIFO-Warteschlange wird der Endzeiger 162 getestet, um zu sehen, ob die FIFO-Warteschlange leer geworden ist. Wenn der Endzeiger NULL ist, ist der FIFO leer und das leere Flag 163 wird eingestellt. Das Flag wird eingestellt bleiben, bis ein Schreiben zu dieser FIFO- Warteschlange auftaucht.
  • In Fig. 21 ist jedes leere Flag zusammen mit dem entsprechenden Kopf- und Endzeiger angeordnet. In der Praxis jedoch werden die leeren Flags 163 aller Warteschlangen, die dem gleichen externen Tor zugeordnet sind, gemeinsam angeordnet, so daß sie in einer Operation gelesen werden können. Dies erleichtert es dann dem Planer 78, zu entscheiden, welche Warteschlange für das gegenwärtige externe Tor im Plan 60B gelesen werden soll.
  • Ausgangsanfangsblockerzeugungsblock
  • Nachdem der Planer 78 eine Ausgangs-VCN von einer Torwarteschlange genommen hat, leitet er diese Ausgangs-VCN an die Ausgangssteuerung 69 des Zelldetailwarteschlangenblocks 63, der die Zelldetails für die Zelle, die als nächstes bei dieser Ausgangs-VCN gesendet werden soll, wiedergewinnt. Diese Zelldetails und die Ausgangs-VCN werden an den Ausgangsanfangsblockerzeugungsblock 64 geleitet, dessen Aufgabe es ist, den Anfangsblock für die Zelle, die gesendet werden soll, zu erzeugen. Der erste Schritt beim Erzeugen eines Anfangsblockes ist, die Ausgangs-VCN zu verwenden, um die Ausgangs-VPI und -VCI in einer Tabelle 165, die diese Informationen speichert, nachzuschlagen. Diese Tabelle 165 wird bei der Verbindungsfestlegung aufgebaut.
  • Die VPI und VCI werden dann mit dem Zelltyp und AAL5-EOP- Bit aus den Zelldetailinformationen, die zum Block 64 geleitet wurden, kombiniert, um die ersten vier Bytes des Zellanfangsblockes zu bilden. Diese werden dann gemeinsam mit der Adresse des Zellkörpers zu der Struktur 30 geleitet.
  • Es soll angemerkt werden, daß die Anfangsblockfehlerprüfung zu diesem Zeitpunkt nicht berechnet wird. Statt dessen wird diese Berechnung in der relevanten Adapterkarte getätigt.
  • Varianten
  • Es wird zu erkennen sein, daß die oben beschriebenen Funktionsblocks auf eine Vielfalt von Weisen implementiert werden können, obwohl im allgemeinen Hardwareimplementierungen aufgrund der Geschwindigkeit des Verarbeitens bevorzugt werden.
  • Es wird weiter zu erkennen sein, daß die beschriebene Funktionalität zwischen Blocks auf verschiedene Weisen unterteilt werden kann und daß im allgemeinen die Grenzen dieser Blocks willkürlich sind. So kann z. B. bezugnehmend auf Fig. 22 die Funktionalität, die verwendet wird, um die "Anstöße" zu erzeugen, die dem Sammelsendeexpander 83 geliefert werden, so betrachtet werden, daß sie sich in dem Sendesteuerungspfad und nicht in dem Warteschlangenblock befindet. Insbesondere könnte diese Anstoßerzeugungs-Funktionalität als Teil des Sendeanstoßblocks 82 betrachtet werden (siehe Anstoßerzeugungsblock 170 in Fig. 22). Dieser Anstoßerzeugungsblock empfängt in der Tat alle Haupt-VCN von ankommenden Zellen, erzeugt aber nur einen Anstoß, nachdem die Warteschlangendaten 171, die in dem Warteschlangenblock 63 gehalten sind (d. h. die Erzeuger- und Verbraucherzeiger, die leeren Flags und Stopp-Bits) anzeigen, daß die geeigneten Bedingungen (bereits beschrieben) vorhanden sind. Ähnlich kann die Vorrichtung zum Zurückführen von Ausgangs-VCN als Warteschlangendaten ansprechend auf die Funktionalität betrachtet werden, die in dem Sendesteuerungspfad enthalten ist und nicht in den Warteschlangenblock 63 eingebettet ist (siehe Zurückführungsblock 172 in Fig. 22). Wieder können die Ausgangs-VCN, die durch den Planer 78 ausgegeben werden, betrachtet werden, als würden sie einer Zellausgangsvorrichtung zugeführt, die den Block 165 umfaßt, die dann den Warteschlangenblock 63 benutzt, um die Zellkörperadresse zu schaffen. Viele andere Variationen bei Funktionsblockgrenzen können betrachtet werden, ohne dabei die Prinzipien des Betriebs des beschriebenen Schalters grundlegend zu ändern.
  • Wesentlichere Variationen sind auch möglich. Insbesondere kann die Vorrichtung zum Injizieren der Ausgangs-VCN in den Auswählbarkeitssteuerungsblock aus dem Sendeanstoß 82 variiert werden, wie nun bezugnehmend auf Fig. 23 erklärt wird, wobei diese Figur im allgemeinen mit den gleichen Funktionsblockgrenzen wie in Fig. 22 gezeichnet ist. Das grundlegende Prinzip hinter dieser Ausgangs-VCN- Injizierungsvorrichtung aus Fig. 23 ist, daß der Sammelsendeexpander 82 ansprechend auf jede neue Zellankunft gemacht ist, wie es durch jede neue Haupt-VCN, die durch Block 61 erzeugt wurde, angezeigt wird. Nun wird nach Empfangen eines Anstoßes bei einer bestimmten Haupt-VCN der Sammelsendeexpander nur diejenigen zugeordneten Ausgangs-VCN zur Injizierung in eine Warteschlange stellen, die sich noch nicht in der Planungsschleife befinden (d. h. gehalten in dem Auswählbarkeitssteuerungsblock 77, in Warteschlange gestellt in dem Planungsblock 75 oder in dem Prozeß des Zurückführens durch die Zurückführungseinrichtung 72).
  • Ein offensichtlicher Vorteil dieser Anordnung ist, daß es nicht länger notwendig ist, leere Flags und Stopp-Bits zu verwenden, um die Bedingungen aufzubauen und zu bestimmen, bei denen ein Anstoß an den Sammelsendeexpander gesendet wird. Als ein Ergebnis können die Operationen der Eingangs- und Ausgangssteuerung 66 und 69 des Warteschlangenblocks 63 vereinfacht werden, wobei der Anstoßerzeugungsblock 170 aus Fig. 22 insgesamt entfernt werden kann. Um diesen Vorteil zu erreichen, ist es jedoch notwendig, dafür zu sorgen, daß der Sammelsendeexpander 83 weiß, welche Ausgangs-VCN sich nicht in der Planungsschleife befindet. Natürlich sind vor Empfang der ersten Haupt-VCN bei einer neu aufgebauten Verbindung keine Ausgangs-VCN in der Planungsschleife und so kann anfänglich der Sammelsendeexpander mit allen Ausgangs- VCN für diese Haupt-VCN eingestellt werden, die bereit ist, um in die Planungsschleife injiziert zu werden. Ferner wird es, sobald die Ausgangs-VCN, die einer bestimmten Haupt-VCN zugeordnet sind, in die Planungsschleife injiziert wurden, leicht für die Zurückführungseinrichtung 172, den Sammelsendeexpander zu informieren, wann eine Ausgangs-VCN gerade aus der Schleife fallengelassen wird. Die Zurückführungseinrichtung leitet einfach eine Ausgangs-VCN zurück zu dem Sammelsendeexpander anstelle zu dem Auswählbarkeitssteuerungsblock, wenn die Zurückführungseinrichtung bestimmt, daß die Ausgangswarteschlange 70 für diese Ausgangs-VCN leer ist (tatsächlich wird die Ausgangs-VCN auch dann noch zu Krediteinstellungszwecken an den Auswählbarkeitssteuerungsblock geleitet, wobei das "Mehr-Zellen"-Flag jedoch nicht eingestellt wird).
  • Der Sammelsendeexpander 83 muß dann nur eine Liste für jede Haupt-VCN behalten, deren zugeordnete Ausgangs-VCN sich nicht in der Planungsschleife befinden. Nach Empfang einer Haupt-VCN von Block 61 plaziert der Sammelsendeexpander einfach die geeignete Liste von Ausgangs-VCN in einen Ausgangs-FIFO zur Injizierung durch die Ausgangsschaltung 84 in den Auswählbarkeitssteuerungsblock 77.
  • Mögliche Varianten sind unter anderen:
  • - Erlauben von Mehrfacherscheinungen der Ausgangs-VCN in der Planungseinrichtung (der Sammelsendeexpander injiziert immer den vollen Satz von Ausgangsidentifizierern, die einer Haupt-VCN zugeordnet sind, nach Empfang einer entsprechenden Zelle; in diesem Fall würde keine Zurückführungseinrichtung benötigt);
  • - Speichern der Zellkörper direkt in verbundenen Listen anstelle eines separaten Speicherns der Zellkörpersequenzdaten in dem Warteschlangenblock.
  • Aus praktischen Gründen wird keine dieser möglichen Varianten bevorzugt.
  • Es wird zu erkennen sein, daß viele der Konzepte der Steuerung, die oben beschrieben wurden, auf Paket-basierende Systeme, die Pakete mit variabler Länge aufweisen, als auch auf Systeme angewendet werden können, die Zellen (Pakete mit festgesetzten Längen) handhaben.

Claims (9)

1. Vorrichtung zum Empfangen zumindest eines Eingangsstromes von Paketen, wobei jedes Paket einen Paketkörper aufweist, und zum Sammelsenden dieses Stroms als eine Mehrzahl von Ausgangsströmen von Paketen, indem die Paketkörper der Pakete des Eingangsstroms in Pakete des Ausgangsstroms hinüberkopiert werden, wobei die Vorrichtung folgende Merkmale aufweist:
- eine Eingangseinrichtung (30, 61) zum Empfangen von Paketen und zum Bestimmen, zu welchem Eingangsstrom jedes Paket gehört,
- eine Speichereinrichtung zum Speichern sowohl der Paketkörper der Pakete, die durch die Eingangseinrichtung (30, 61) empfangen werden, als auch eines jeweiligen Sequenzdatensatzes (65) für jeden Eingangsstrom, wobei jeder Sequenzdatensatz (65) dazu dient, die Paketkörper, die für den entsprechenden Eingangsstrom empfangen wurden, in der Reihenfolge des Empfangs zu ordnen, wobei die Speichereinrichtung eine Eingangssteuerung (66), die, nachdem ein neuer Paketkörper gespeichert wurde, den Sequenzdatensatz (65) des Eingangsstroms aktualisiert, zu dem das Paket, wie durch die Eingangssteuerung (61) bestimmt, gehört, und eine Ausgangssteuerung (69) zum Halten, für jeden Ausgangsstrom, eines jeweiligen Sequenzpositionsindikators (68) umfaßt, der in den Sequenzdatensatz (65) des entsprechenden Eingangsstroms verweist, um dem nächsten Paketkörper anzuzeigen, der bei dem betreffenden Ausgangsstrom gesendet werden soll, und
- eine Ausgangseinrichtung (30, 75, 77) zum Planen eines Ausgangs bei den Ausgangsströmen zum Kommunizieren mit der Ausgangssteuerung (69) der Speichereinrichtung, um den Paketkörper zu identifizieren, der als nächstes bei dem gegenwärtig geplanten Ausgangsstrom ausgegeben werden soll, und zum Wiedergewinnen und Ausgeben des identifizierten Paketkörpers bei dem geplanten Ausgangsstrom.
2. Vorrichtung gemäß Anspruch 1, bei der die Paketkörper und Sequenzdatensätze (65) separat in der Speichereinrichtung gehalten werden, wobei jeder Sequenzdatensatz eine verbundene Liste von Paketdetaileinträgen aufweist, wobei jeder einen Paketkörperzeiger (112) auf einen jeweiligen entsprechenden Paketkörper und einen Nächster-Eintrag-Zeiger (116) auf den nächsten Eintrag, wenn es einen gibt, in der gleichen Liste aufweist, wobei die Eingangssteuerung (66), nachdem ein neuer Paketkörper gespeichert wird, einen entsprechenden Paketdetaileintrag (110) in der geeigneten verbundenen Liste (65) aufbaut, wobei dieses Aufbauen ein Einstellen des Paketkörperzeigers (112) dieses Eintrags umfaßt, um auf den neu gespeicherten Paketkörper zu zeigen, wobei jeder Sequenzpositionsindikator (68), der durch die Ausgangssteuerung (69) für jeden Ausgangsstrom gehalten wird, auf den Paketdetaileintrag (110) für den Paketkörper zeigt, der als nächstes für den betreffenden Ausgangsstrom gesendet werden soll.
3. Vorrichtung gemäß Anspruch 2, bei der jeder Paketdetaileintrag (110) einen Sammelsendezählgegenstand (114) aufweist, der nach Aufbauen des Eintrags durch die Eingangssteuerung (66) auf den Wert der Zahl von Ausgangsströmen eingestellt wird, die von dem Eingangsstrom, der der verbundenen Liste (65) zugeordnet ist, von der der Paketdetaileintrag ein Teil ist, sammelgesendet werden soll, wobei die Ausgangssteuerung (69) den Zählgegenstand (114) eines Paketdetaileintrages jedesmal dekrementiert, wenn die Ausgangseinrichtung (69) den entsprechenden Paketkörper ausgibt, bis der Paketkörper bei allen relevanten Ausgangsströmen gesendet wurde, woraufhin die Ausgangssteuerung (69) die Entfernung des Eintrages von der entsprechenden verbundenen Liste (65) verursacht.
4. Vorrichtung gemäß Anspruch 2, bei der jeder Eingangsstrom in der Vorrichtung durch einen entsprechenden Eingangsidentifizierer (Haupt-VCN) identifiziert wird, wobei die Eingangseinrichtung (61) diesen Identifizierer für jedes neue Paket, das dadurch empfangen wird, bereitstellt, um dadurch anzuzeigen, zu welchem Eingangsstrom das Paket gehört, wobei die Eingangssteuerung (65) der Speichereinrichtung entsprechende Listenzeiger (67) hält, die auf das Ende jeder Liste zeigen, und eine Zuordnung zwischen jedem Eingangsidentifizierer (Haupt-VCN) und dem Listenzeiger (67) hält, der auf die verbunden Liste (65) zeigt, die dem Eingangsstrom zugeordnet ist, der durch den Eingangsidentifizierer identifiziert wird.
5. Vorrichtung gemäß Anspruch 4, bei der jede verbundene Liste (65) einen Endeintrag (111) ohne paketbezogene Informationen aufweist, wobei der Listenzeiger (67), der durch die Eingangssteuerung gehalten wird, auf den Endeintrag einer entsprechenden verbundenen Liste zeigt, und wobei die Eingangssteuerung (66), nachdem ein neuer Paketkörper gespeichert wurde, einen neuen Endeintrag zu der relevanten verbundenen Liste hinzufügt und den vorherigen Endeintrag dieser Liste als den Paketdetaileintrag für den neuen Paketkörper verwendet, wobei die Eingangssteuerung (66) den Listenzeiger für diese Liste entsprechend anpaßt.
6. Vorrichtung gemäß Anspruch 1, bei der jeder Ausgangsstrom in der Vorrichtung durch einen entsprechenden Ausgangsidentifizierer (O/P VCN) identifiziert wird, wobei die Ausgangseinrichtung (30, 75, 77) eine Sendesteuerungseinrichtung (75, 77) zum Bewirken des Ausgangsplanens der Ausgangsströme auf der Basis der Ausgangsidentifizierer (O/P VCN) und zum Anzeigen des nächsten geplanten Ausgangsstroms durch Ausgeben des entsprechenden Ausgangsidentifizierers umfaßt, wobei die Ausgangssteuerung (69) der Speichereinrichtung eine Zuordnung zwischen jedem Ausgangsidentifizierer (O/P VCN) und dem Sequenzpositionsindikator, (68) für den Ausgangsstrom hält, der durch den Ausgangsidentifizierer identifiziert wurde, und wirksam ist, wenn sie mit einem Ausgangsidentifizierer (O/P VCN) durch die Ausgangseinrichtung (30, 75, 77) versorgt wird, um diese Zuordnung zu verwenden, um den Paketkörperzeiger für den nächsten Paketkörper, der bei dem betreffenden Ausgangsstrom ausgegeben werden soll, wiederzugewinnen.
7. Vorrichtung gemäß Anspruch 6, bei der die Sendesteuerungseinrichtung folgende Merkmale aufweist:
- eine Planungseinrichtung (75) zum Bewirken des Ausgangsplanens auf der Basis der Ausgangsidentifizierer (O/P VCN) und zum Anzeigen des nächsten geplanten Ausgangsstroms durch Ausgeben des entsprechenden Ausgangsidentifizierers, wodurch dieser von der Planungseinrichtung entfernt wird, und,
- eine Injizierungseinrichtung (80, 83, 77) zum Injizieren von Ausgangsidentifizierern in die Planungseinrichtung, wobei die Injizierungseinrichtung auf den Empfang durch die Eingangseinrichtung von zumindest bestimmten der Pakete, die dort neu empfangen wurden, anspricht, um die Ausgangsidentifizierer (O/P VCN) zumindest einiger der Ausgangsströme in die Planungseinrichtung zu injizieren, die den Eingangsströmen zugeordnet sind, zu denen die bestimmten der Pakete gehören;
wobei die Sendesteuerungseinrichtung derartig ist, daß ein Ausgangsidentifizierer nur einmal zu einer bestimmten Zeit in der Planungseinrichtung (75) vorkommen kann, und wobei die Sendesteuerungseinrichtung ferner eine Zurückführungseinrichtung (172) aufweist, die auf den Zustand des Sequenzdatensatzes. (65) anspricht, der relevant für den Ausgangsidentifizierer ist, der als letztes durch die Planungseinrichtung (75) ausgegeben wird, um diesen Ausgangsidentifizierer zurück zu der Planungseinrichtung zu bringen, falls der Sequenzdatensatz anzeigt, daß es zumindest einen weiteren Paketkörper gibt, der zum Senden bei dem betreffenden Ausgangsstrom verfügbar ist.
8. Vorrichtung gemäß Anspruch 1, bei der die Pakete ATM- Zellen sind.
9. Vorrichtung gemäß Anspruch 1, bei der:
- die Paketkörper jeweils nur einmal in der Speichereinrichtung (31, 63) gespeichert sind,
- die Sequenzdatensätze (65) gemeinsam einen jeweiligen Eintrag für jeden Paketkörper aufweisen, wobei jeder Eintrag einen Zeiger (112) auf den entsprechenden Paketkörper umfaßt, und wobei jeder Eintrag nur einmal in allen Sequenzdatensätzen vorhanden ist, und
- jeder Ausgangsstrom in der Vorrichtung durch einen jeweiligen Ausgangsidentifizierer (O/P VCN) identifiziert ist, wobei die Ausgangseinrichtung eine Sendesteuerungseinrichtung (75, 77) zum Bewirken eines Ausgangsplanens auf der Basis der Ausgangsidentifizierer umfaßt, wobei jeder Identifizierer (O/P VCN) nicht mehr als einmal zu einem bestimmten Zeitpunkt in der Sendesteuerungseinrichtung aktiv vorhanden ist.
DE69428186T 1994-04-28 1994-04-28 Mehrfachsendeeinrichtung Expired - Lifetime DE69428186T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP94303120A EP0680179B1 (de) 1994-04-28 1994-04-28 Mehrfachsendeeinrichtung

Publications (2)

Publication Number Publication Date
DE69428186D1 DE69428186D1 (de) 2001-10-11
DE69428186T2 true DE69428186T2 (de) 2002-03-28

Family

ID=8217678

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69428186T Expired - Lifetime DE69428186T2 (de) 1994-04-28 1994-04-28 Mehrfachsendeeinrichtung

Country Status (4)

Country Link
US (1) US5572522A (de)
EP (1) EP0680179B1 (de)
JP (1) JPH07321823A (de)
DE (1) DE69428186T2 (de)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330240B1 (en) * 1987-04-24 2001-12-11 Hitachi, Ltd. ATM cell switching system
US5365519A (en) 1991-03-05 1994-11-15 Hitachi, Ltd. ATM switch1ng system connectable to I/O links having different transmission rates
US5548587A (en) * 1994-09-12 1996-08-20 Efficient Networks, Inc. Asynchronous transfer mode adapter for desktop applications
US5684961A (en) * 1995-04-28 1997-11-04 Sun Microsystems, Inc. System for defining multicast message distribution paths having overlapping virtual connections in ATM networks and assigning identical labels to overlapping portions of the virtual channels
US5675829A (en) * 1995-07-07 1997-10-07 Sun Microsystems, Inc. Method and apparatus for coordinating data transfer between hardware and software by comparing entry number of data to be transferred data to entry number of transferred data
US5872769A (en) 1995-07-19 1999-02-16 Fujitsu Network Communications, Inc. Linked list structures for multiple levels of control in an ATM switch
US5898671A (en) 1995-09-14 1999-04-27 Fujitsu Network Communications, Inc. Transmitter controlled flow control for buffer allocation in wide area ATM networks
AU1697697A (en) 1996-01-16 1997-08-11 Fujitsu Limited A reliable and flexible multicast mechanism for atm networks
US5689500A (en) * 1996-01-16 1997-11-18 Lucent Technologies, Inc. Multistage network having multicast routing congestion feedback
US9530150B2 (en) 1996-01-19 2016-12-27 Adcension, Llc Compensation model for network services
US6264560B1 (en) 1996-01-19 2001-07-24 Sheldon F. Goldberg Method and system for playing games on a network
US5823879A (en) 1996-01-19 1998-10-20 Sheldon F. Goldberg Network gaming system
US6430186B1 (en) * 1996-03-15 2002-08-06 Pmc-Sierra, Inc. Asynchronous bit-table calendar for ATM switch
US5844901A (en) * 1996-03-15 1998-12-01 Integrated Telecom Technology Asynchronous bit-table calendar for ATM switch
US5781529A (en) * 1996-03-27 1998-07-14 General Datacomm, Inc. Systems and methods for routing ATM switched virtual circuit calls
US6141323A (en) * 1996-06-03 2000-10-31 Whittaker Corporation Closed loop congestion control using a queue measurement system
US6212182B1 (en) * 1996-06-27 2001-04-03 Cisco Technology, Inc. Combined unicast and multicast scheduling
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
US5748905A (en) 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US6226687B1 (en) * 1996-09-05 2001-05-01 Nortel Networks Limited Method and apparatus for maintaining an order of data packets
US5991867A (en) * 1996-09-12 1999-11-23 Efficient Networks, Inc. Transmit scheduler for an asynchronous transfer mode network and method of operation
US6046980A (en) * 1996-12-09 2000-04-04 Packeteer, Inc. System for managing flow bandwidth utilization at network, transport and application layers in store and forward network
US6085250A (en) * 1997-03-20 2000-07-04 Efficient Networks, Inc. Method and system for using layered networking application program interfaces (APIs) using a native asynchronous transfer mode (ATM) API
US6084881A (en) * 1997-05-22 2000-07-04 Efficient Networks, Inc. Multiple mode xDSL interface
US6078565A (en) * 1997-06-20 2000-06-20 Digital Equipment Corporation Method and apparatus to expand an on chip FIFO into local memory
US6049528A (en) * 1997-06-30 2000-04-11 Sun Microsystems, Inc. Trunking ethernet-compatible networks
US6081512A (en) * 1997-06-30 2000-06-27 Sun Microsystems, Inc. Spanning tree support in a high performance network device
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US6088356A (en) * 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US5920566A (en) * 1997-06-30 1999-07-06 Sun Microsystems, Inc. Routing in a multi-layer distributed network element
US6044087A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Interface for a highly integrated ethernet network element
US6081522A (en) * 1997-06-30 2000-06-27 Sun Microsystems, Inc. System and method for a multi-layer network element
US6044418A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Method and apparatus for dynamically resizing queues utilizing programmable partition pointers
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US5938736A (en) * 1997-06-30 1999-08-17 Sun Microsystems, Inc. Search engine architecture for a high performance multi-layer switch element
US6119196A (en) * 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6128666A (en) * 1997-06-30 2000-10-03 Sun Microsystems, Inc. Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine
US6052738A (en) * 1997-06-30 2000-04-18 Sun Microsystems, Inc. Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US6118760A (en) * 1997-06-30 2000-09-12 Sun Microsystems, Inc. Management of entries in a network element forwarding memory
US6016310A (en) * 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6128295A (en) * 1997-07-11 2000-10-03 Telefonaktiebolaget Lm Ericsson Buffering of point-to-point and/or point-to-multipoint ATM cells
US6185209B1 (en) * 1997-07-11 2001-02-06 Telefonaktiebolaget Lm Ericsson VC merging for ATM switch
US6088359A (en) * 1997-07-11 2000-07-11 Telefonaktiebolaget Lm Ericsson ABR server
US5963553A (en) * 1997-07-11 1999-10-05 Telefonaktiebolaget Lm Ericsson Handling ATM multicast cells
US6154459A (en) * 1997-07-11 2000-11-28 Telefonaktiebolaget Lm Ericsson Data shaper for ATM traffic
US5928331A (en) * 1997-10-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Distributed internet protocol-based real-time multimedia streaming architecture
US6504845B1 (en) * 1997-12-19 2003-01-07 Telefonaktiebolaget Lm Ericsson (Publ) Centralized queuing for ATM node
US7872969B2 (en) * 1997-12-23 2011-01-18 Ciena Corporation Method and apparatus for auto detection of AAL5 type frames for VCC and VPC switches
US6625120B1 (en) 1997-12-23 2003-09-23 Nortel Networks Limited Method and apparatus for auto detection of AAL5 type frames for VCC and VPC switches
US20010055307A1 (en) * 1997-12-23 2001-12-27 Bernard St-Denis Method and apparatus for auto detection of aal5 type frames
US6512747B1 (en) * 1998-03-05 2003-01-28 Nippon Telegraph And Telephone Corporation ATM transmission system
US6446206B1 (en) 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue
US6205498B1 (en) 1998-04-01 2001-03-20 Microsoft Corporation Method and system for message transfer session management
US6529932B1 (en) 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
JP3604282B2 (ja) * 1998-06-15 2004-12-22 富士通株式会社 アドレス開放方法及び、これを用いるatm交換システムの共通バッファ装置
US6320864B1 (en) * 1998-06-19 2001-11-20 Ascend Communications, Inc. Logical multicasting method and apparatus
US6848108B1 (en) * 1998-06-30 2005-01-25 Microsoft Corporation Method and apparatus for creating, sending, and using self-descriptive objects as messages over a message queuing network
US6256634B1 (en) 1998-06-30 2001-07-03 Microsoft Corporation Method and system for purging tombstones for deleted data items in a replicated database
US6275912B1 (en) * 1998-06-30 2001-08-14 Microsoft Corporation Method and system for storing data items to a storage device
US6633543B1 (en) * 1998-08-27 2003-10-14 Intel Corporation Multicast flow control
US6473428B1 (en) * 1998-12-31 2002-10-29 Nortel Networks Limited Multi-threaded, multi-cast switch
US6661774B1 (en) 1999-02-16 2003-12-09 Efficient Networks, Inc. System and method for traffic shaping packet-based signals
US6590897B1 (en) 1999-03-08 2003-07-08 Efficient Networks, Inc. System and method for bridging universal serial bus and asynchronous transfer mode communication links
US6731638B1 (en) * 1999-10-14 2004-05-04 Synchrodyne Networks, Inc. Switch scheduling with common time reference
US6754211B1 (en) * 1999-12-01 2004-06-22 Mosaid Technologies, Inc. Method and apparatus for wire speed IP multicast forwarding
WO2002005499A1 (en) * 2000-01-30 2002-01-17 Celox Networks, Inc. Device and method for packet formatting
US6810031B1 (en) 2000-02-29 2004-10-26 Celox Networks, Inc. Method and device for distributing bandwidth
US6731645B1 (en) 2000-02-29 2004-05-04 International Business Machines Corporation Methods, switches, systems, and computer program products for fair transmission of data received at multiple inputs in the order received in a queued memory switch
US7073191B2 (en) * 2000-04-08 2006-07-04 Sun Microsystems, Inc Streaming a single media track to multiple clients
JP2001308921A (ja) * 2000-04-25 2001-11-02 Sony Corp デマルチプレクサ
KR100454336B1 (ko) * 2000-07-07 2004-10-26 엘지전자 주식회사 비동기 전송 모드 스위치에서의 셀 처리 장치 및 방법
US6724759B1 (en) * 2000-08-11 2004-04-20 Paion Company, Limited System, method and article of manufacture for transferring a packet from a port controller to a switch fabric in a switch fabric chipset system
KR100446234B1 (ko) * 2000-12-21 2004-08-30 엘지전자 주식회사 차세대 통신 시스템에서 멀티 캐스트용 aal2 스위치
US7290162B2 (en) * 2001-02-14 2007-10-30 Clearspeed Solutions Limited Clock distribution system
US7082104B2 (en) * 2001-05-18 2006-07-25 Intel Corporation Network device switch
US7424013B1 (en) 2001-12-20 2008-09-09 Applied Micro Circuits Corporation System and method for granting arbitrated bids in the switching of information
US8418129B1 (en) 2001-12-14 2013-04-09 Qualcomm Incorporated Method for automatically generating code to define a system of hardware elements
US7352694B1 (en) * 2001-12-14 2008-04-01 Applied Micro Circuits Corporation System and method for tolerating data link faults in a packet communications switch fabric
US7159219B2 (en) * 2001-12-21 2007-01-02 Agere Systems Inc. Method and apparatus for providing multiple data class differentiation with priorities using a single scheduling structure
US7190699B2 (en) * 2002-05-31 2007-03-13 International Business Machines Corporation Method and apparatus for implementing multiple credit levels over multiple queues
US7286497B2 (en) * 2002-06-28 2007-10-23 Harris Corporation Look up table for QRT
US6850999B1 (en) * 2002-11-27 2005-02-01 Cisco Technology, Inc. Coherency coverage of data across multiple packets varying in sizes
US20080172532A1 (en) * 2005-02-04 2008-07-17 Aarohi Communications , Inc., A Corporation Apparatus for Performing and Coordinating Data Storage Functions
JP5115066B2 (ja) * 2007-07-12 2013-01-09 富士通株式会社 パケット伝送方法及び装置
US8447909B2 (en) 2010-07-19 2013-05-21 International Business Machines Corporation Register access in distributed virtual bridge environment
US8891535B2 (en) * 2012-01-18 2014-11-18 International Business Machines Corporation Managing a global forwarding table in a distributed switch
US8861400B2 (en) 2012-01-18 2014-10-14 International Business Machines Corporation Requesting multicast membership information in a distributed switch in response to a miss event
US9634953B2 (en) * 2013-04-26 2017-04-25 Mediatek Inc. Scheduler for deciding final output queue by selecting one of multiple candidate output queues and related method
EP3085067B1 (de) * 2013-12-19 2020-08-19 InterDigital CE Patent Holdings Verfahren zur automatischen auswahl eines ip-dienstqualitätsmechanismus, entsprechende cpe-vorrichtung und computerlesbares speichermedium
JP2021165691A (ja) * 2020-04-08 2021-10-14 日東工業株式会社 直流漏電検出装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2213782A (en) * 1987-12-17 1989-08-23 Automotive Products Plc A controlled vehicle suspension system
FR2625392B1 (fr) * 1987-12-24 1993-11-26 Quinquis Jean Paul Circuit de gestion de pointeurs d'ecriture de files tampons notamment pour commutateur temporel de paquets auto-acheminables
JP2555906B2 (ja) * 1990-05-18 1996-11-20 日本電気株式会社 Atmセルのvci変換方式
GB9019340D0 (en) * 1990-09-05 1990-10-17 Plessey Telecomm An asynchronous transfer mode switching arrangement providing broadcast transmission
US5229991A (en) * 1991-01-30 1993-07-20 Washington University Packet switch with broadcasting capability for atm networks
JP3064650B2 (ja) * 1992-03-27 2000-07-12 株式会社日立製作所 同報通信装置
US5291482A (en) * 1992-07-24 1994-03-01 At&T Bell Laboratories High bandwidth packet switch
GB2273224B (en) * 1992-12-05 1997-01-22 Netcomm Ltd An ATM Cell switch suitable for multicast switching

Also Published As

Publication number Publication date
JPH07321823A (ja) 1995-12-08
DE69428186D1 (de) 2001-10-11
EP0680179A1 (de) 1995-11-02
EP0680179B1 (de) 2001-09-05
US5572522A (en) 1996-11-05

Similar Documents

Publication Publication Date Title
DE69428186T2 (de) Mehrfachsendeeinrichtung
DE69124645T2 (de) Verfahren und Schaltung zur Verkehrsformung
EP0680173B1 (de) Mehrfachsendeeinrichtung
DE69900492T2 (de) Grosse kombinierte Breitband und Schmalband Vermittlungsstelle
DE60036682T2 (de) Maschine zur gewichteten ringförmigen Ablaufsteuerung
DE69020578T2 (de) Grundelement für ein verbindungsnetzwerk eines knotens zur schnellen paketvermittlung.
DE68928867T2 (de) ATM-Vermittlungssystem
DE69817756T2 (de) ATM Zellenübertragungsplanung
DE69623479T2 (de) Fernmeldeanordnung und -verfahren
DE69332328T2 (de) Paketschalter mit grosser Bandbreite
DE69520229T2 (de) ATM-VERMITTLUNGSSTELLE mit höher Kapazität
DE69129851T2 (de) Konfigurierbare gigabit/s Vermittlunganpassungseinrichtung
DE60119866T2 (de) Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
DE69838601T2 (de) Verfahren und Vorrichtung zum Erweitern eines on-chip FIFOs in einem lokalen Speicher
DE69017203T2 (de) Breitbandringkommunikationssystem und Zugriffssteuerungsverfahren.
DE69738386T2 (de) Verbesserungen in oder sich beziehend auf eine ATM-Vermittlungsstelle
DE69310762T2 (de) Herstellung von fernmeldeanrufwegen in breitbandkommunikationsnetzen
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE69332324T2 (de) Parallele Multi-Bit Koppelnetze
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät
EP0289087B1 (de) Paketvermittlungssystem
EP0730362A2 (de) Verfahren und Schaltungsanordnung zum Weiterleiten von über eine ATM-Kommunikationseinrichtung übertragenen Nachrichtenzellen an eine Abnehmerleitung
EP0351014B1 (de) Koppelfeld für ein Vermittlungssystem
DE69219390T2 (de) ATM-Zellenvermittlungssystem
DE69833587T2 (de) ATM-Vorrichtung und Formungsverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition