-
ALLGEMEINER
STAND DER TECHNIK
-
Das Verbinden von Stationen untereinander zum
Zweck der Kommunikation ist auf dem Stand der Technik gut bekannt.
Punkt-zu-Punkt-Verbindungen werden seit vielen Jahren verwendet.
Dieses Konzept wurde auch zur Einbeziehung von zwei oder mehr Stationen,
welche in einem kleinen geografischen Gebiet arbeiten, unter Bildung
eines lokalen Netzes (Local Area Network, LAN) erweitert. Ein typisches
LAN umfasst die Verwendung eines Protokolls und gemeinsam genutzte
Verbindungsmedien. Das Erfordernis, LANs über die technischen Grenzen,
unter welchen sie arbeiten, hinaus zu erweitern, ist ein Grund für das wachsende
Interesse an Kommunikationsvorrichtungen, welche LANs miteinander
verbinden. Ein anderer Grund ist das Erfordernis der Kommunikation
zwischen LANs, welche verschiedene physische Schnittstellen und Übermittlungsvorschriften
einsetzen. „Brücken", „Router" oder „Netzkoppler" genannte Vorrichtungen
werden zur Bereitstellung der Kommunikation zwischen LANs verwendet.
-
Die Stationen kommunizieren unter
Verwendung von Protokolldateneinheiten oder Datenübertragungsblöcken, welche
aus Daten und aus Leitweglenkungsinformationen bestehen. Sie umfassen oft
logische Identifizierungen der Quell- und Zielstationen sowie Informationen über die
Länge des
Datenübertragungsblocks.
Die Inhalte der Leitweglenkungsinformationen hängen vom Protokoll der Übermittlung
ab. Zur Verbindung von LANs mit verschiedenen Protokollen miteinander
müssen
die Datenübertragungsblöcke, bevor
sie über
einen Port an ihr Ziel gesendet werden, übersetzt werden. Im Fall von zwei
LANs, welche die gleichen Übermittelungsvorschriften
aufweisen, ist keine Übersetzung
erforderlich. Eine Vorrichtung, welche die erforderliche Übersetzung
durchführen
kann (falls nötig),
welche in geeigneter Weise auf dem Eingabe-Port (statische Über brückung oder
Leitweglenkung) oder auf den Informationen basiert, welche im Datenübertragungsblock
bereitgestellt werden (dynamische Überbrückung oder Leitweglenkung)
wird „Brücke/Router" oder „Hybrid-Router" genannt.
-
Für
viele Jahre wurde die Leitungsvermittlung als ein Übermittelungsmodus
verwendet, welche für
die Gesamtdauer der Kommunikation Relais zur Herstellung eigener
Leitungen zwischen Quelle und Ziel umfasst. Das Konzept der Vermittlung
von Datenübertragungsblöcken half,
die Verwendung von LANs durch Eliminierung des Erfordernisses der
synchronen Vermittlung voranzubringen. Die Vermittlung von Datenübertragungsblöcken verwendet
die zusätzlichen
Informationen, welche im Kopf bereitgestellt werden, zur Leitweglenkung
der Daten zum Ziel-Port
oder zu den Ziel-Ports. Im Allgemeinen sind Ausgabe-Ports nicht
mit einen Eingabe-Port fest verschaltet, sondern können mit
Daten von einem beliebigen Eingabe-Port verwendet werden. Die Vermittlung
von Datenübertragungsblöcken führt eine
virtuelle Leitungsverbindung zwischen dem Eingabe-Port und dem Ausgabe-Port durch, welche
hinsichtlich der Datengeschwindigkeit der beiden Ports asynchron ist.
Eine Gruppe von Elementen, welche zur Speicherung und zum Transport
eines Datenübertragungsblocks
vom Eingabe-Port zu einem oder mehreren Ausgabe-Ports verwendet
wird, wird die „Vermittlerstruktur" genannt. Als Bestandteil
der Vermittlerstruktur, an welchem Daten eintreten und austreten,
werden die Eingabe- und Ausgabe-Ports „Vermittler-Ports" genannt.
-
Die physische Schnittstelle eines
Ports hilft bei der Lieferung von Daten in oder aus dem Vermittlersystem
unter Verwendung von elektrischen Signalen. Die Eigenschaften der
physischen Schnittstelle hängen
vom Protokoll der Verbindung ab, mit welcher sie verbunden ist.
Eine Eigenschaft eines Ports ist das Verfahren, welches zur Datenerfassung
verwendet wird. Beispielsweise kön nen
Daten zusammen mit einem separaten Taktsignal geliefert werden, oder
der Datentakt kann im Datensignal durch die Verwendung von Codierungsverfahren
vorhanden sein. Die physische Schnittstelle kann auch zusätzliche
Signale zur Hilfe bei der Erkennung von Datenübertragungsblöcken bereitstellen.
Während
die technischen Eigenschaften mancher Ports die Unterstützung mehrerer
eng verwandter Schnittstellen erlauben können, resultieren vom Grund
auf unterschiedliche Übermittlungsvorschriften
in der Verwendung von unterschiedlichen Verarbeitungseinrichtungen zur
Erkennung eines Datenübertragungsblocks.
Ein Beispiel für
vom Grund auf unterschiedliche Übermittlungsvorschriften
ist eine mit Datenübertragungsblockinformationen
im Datenstrom und eine andere mit separaten Datenübertragungsblocksignalen
an der Schnittstelle.
-
Wenn ein Datenübertragungsblock einmal erkannt
und empfangen wurde, muss er vom System verarbeitet werden. Die
Verarbeitung umfasst oft die Verwendung von einem Prozessor, welcher
mit einem Port fest verschaltet ist und spezifisch zur Übermittelung
eines Datenübertragungsblocks
in den Speicher programmiert ist. Der Prozessor kann auch die Verarbeitung
durchführen,
welche zur Übersetzung
der ankommenden Datenübertragungsblöcke erforderlich
ist. Das Ergebnis sind viele Verarbeitungselemente, welche über die
Vermittlerstruktur verteilt sind. Da die Verarbeitungselemente über viele
Ports hinweg verteilt sind, ist keine gemeinsame Datenpufferungsstruktur
vorhanden. Ein Datenübertragungsblock
kann mehrere Male zwischen mehreren Datenpufferungsstrukturen übermittelt
werden, bevor er für
die Ausgabe verarbeitet wird. Dann kann der Ausgabedatenübertragungsblock
noch mehrere Male übermittelt
werden, bevor er den Ausgabe-Port erreicht.
-
Diese Hybrid-Router-Vermittlersysteme
mit verteilter Verarbeitung arbeiten bei der Datenübermittelung
gut, sind jedoch hinsichtlich der Konfiguration und des Unterhalts
komplex. Zusätzlich
zur unnötigen
Komplexität
wird den Benutzern auch die Größe, das
Gewicht und der von diesen Systemen erforderte Strombedarf aufgebürdet. Daher
wäre es nützlich die
Größe, das
Gewicht und den von den gegenwärtigen
Systemen erforderten Strombedarf zu reduzieren, während die
Anforderungen an die Geschwindigkeit und den Durchsatz eines Hybrid-Leitweglenkungsvermittlungsschalters
noch erfüllt
werden.
-
Die international veröffentlichte
Patentanmeldung WO 94/08415 beschreibt ein System, welches ein Netzwerkschnittstellenmodul
zum Empfang und zur Konvertierung von Datenpaketen umfasst.
-
KURZDARSTELLUNG
DER ERFINDUNG
-
Die vorliegende Erfindung stellt
einen Vermittlungsschalter bereit, wie nachfolgend im Anspruch 1
definiert wird.
-
Der Vermittlungsschalter kann die
Merkmale irgendeines oder mehrerer der Unteransprüche 2 bis 6 einschließen.
-
Die vorliegende Erfindung ist ein
kompakter Hybrid-Leitweglenkungsvermittlungsschalter,
welcher die Kommunikation zwischen mehreren externen Systemen mit
gleichen und unterschiedlichen Protokollen erlaubt. Der Vermittlungsschalter
umfasst Vermittler-Ports, einen zentralen Speicher, einen Bus und
einen Prozessor. Die Vermittler-Ports empfangen Daten von externen
Systemen und übermitteln
Daten an diese. Die zentrale Speichervorrichtung ist mit allen Vermittler-Ports
verbunden und speichert Verwaltungsinformationen der Kommunikation.
Der Bus verbindet die Vermittler-Ports mit dem zentralen Speicher
und übermittelt
die Verwaltungsinformationen der Kommunikation zwischen den Vermittler-Ports
und zwischen den Vermittler-Ports und dem zentralen Speicher. Der
Prozessor ist mit dem zentralen Speicher verbunden und steuert die
Bewegung von Daten innerhalb des kompakten Hybrid-Leitweglenkungsvermittlungsschalters.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Es zeigen
-
1 ein
Blockdiagramm des kompakten anpassbaren Hybrid-Leitweglenkungsvermittlungsschalters
(KAB), welcher die Lehren der vorliegenden Erfindung verkörpert.
-
2 ein
Funktionsblockdiagramm des KAB-Vermittlungsschalters gemäß den Lehren
der vorliegenden Erfindung.
-
3 ein
Ablaufdiagramm der Dateneingabeprozesssteuerung, welche ausführlicher
in der Ausführungsform
der Reihe von 4A bis
hinauf einschließlich
zu 7 beschrieben wird.
-
4A ein
Ablaufdiagramm der Steuerung, welche zur Auswahl der Identifizierung
und Pufferung eines Eingabedatenübertragungsblocks
auf der Grundlage der Übermittlungsvorschrift
verwendet wird.
-
4B ein
Ablaufdiagramm zur Identifizierung und Pufferung eines Eingabedatenübertragungsblocks
unter Verwendung einer einfach begrenzten oder einer undifferenzierten Übermittlungsvorschrift.
-
4C ein
Ablaufdiagramm zur Identifizierung und Pufferung eines Eingabedatenübertragungsblocks
unter Verwendung einer Übermittlungsvorschrift
mit explizitem Start- und Ende-Symbol/Signal.
-
4D ein
Ablaufdiagramm zur Identifizierung und Pufferung eines Eingabedatenübertragungsblocks
unter Verwendung einer Übermittlungsvorschrift
mit eingebetteter Einleitung.
-
5 ein
Funktionsblockdiagramm der temporären Pufferung von Datenübertragungsblöcken und
ihrer zugeordneten Statusinformationen in einer Fifo-Datenwarteschlange
mit Daten/Status-Grenzmarkierungen.
-
6A ein
Ablaufdiagramm für
die Lenkung der Eingabedaten auf der Grundlage der Bauweise der
RAM-Pufferung und der für
einen Eingabedatenübertragungsblock
vorgesehenen Zuweisung.
-
6B ein
Ablaufdiagramm für
die Leitweglenkung von Eingabedaten unter Verwendung einer Warteschlange
von Datenpufferzeiger- und -Steuerungsstrukturen für variabel
bemessene, sequenziell gespeicherte Puffer.
-
6C ein
Ablaufdiagramm für
die Leitweglenkung von Eingabedaten unter Verwendung einer Warteschlange
von Datenpufferzeiger- und -Steuerungsstrukturen für vorbemessene,
ortsunabhängige Puffer.
-
6D ein
Ablaufdiagramm für
die Leitweglenkung von Eingabedaten direkt zur Ausgabe.
-
7A ein
Ablaufdiagramm für
die Speicherung des Status der Eingabedatenwarteschlange und für die Implementierung
einer optionalen Kopfentfernung als Bestandteil der Verarbeitung,
welche durchgeführt
wird, nachdem ein Eingabedatenübertragungsblock
im lokalen Speicher statt im zentralen, gemeinsam genutzten Speicher
gespeichert wurde.
-
7B ein
Blockdiagramm der Eingabestatuswarteschlange und ihrer Beziehung
zur Eingabedatenwarteschlange für
den Ringpuffer-Fall.
-
7C ein
Blockdiagramm der Eingabestatuswarteschlange und ihrer Beziehung
zur Eingabedatenwarteschlange für
den Seitenpuffer-Fall.
-
8 ein
Ablaufdiagramm der Dateneingabeprozesssteuerung, welche ausführlicher
in der Ausführungsform
der Reihe von 9A bis
hinauf einschließlich
zu 12D beschrieben wird.
-
9A ein
Ablaufdiagramm für
die Auswahl der Lenkung von Ausgabedaten auf der Grundlage der Quelle
der Daten und des Datenerfassungsmodus.
-
9B ein
Ablaufdiagramm für
den Abruf von Ausgabedaten aus der Ausgabedatenwarteschlange als
ein DMA-Hauptgerät.
-
9C ein
Ablaufdiagramm für
den Abruf von Ausgabedaten aus einem Arbitrated Interchip Bus als
ein Multicast-Folgegerät.
-
9D ein
Ablaufdiagramm für
den Abruf von Daten direkt aus dem Eingabepuffer.
-
10A ein
Ablaufdiagramm für
die optionale Speicherung des Ausgabestatus.
-
10B ein
Blockdiagramm der Auswertung des Ausgabefortgangs/-Status soweit
er die Aktivität der
Ausgabedatenwarteschlange betrifft.
-
11A ein
Funktionsblockdiagramm der temporären Pufferung von Datenübertragungsblöcken in
einer Fifo-Datenwarteschlange
mit Grenzmarkierungen der Datenübertragungsblöcke.
-
11B ein
Ablaufdiagramm zum Einfügen von
Fülldaten
in den Fifo-Puffer.
-
11C ein
Ablaufdiagramm zum Einfügen von
Daten in den Ausgabestrom des Fifo-Puffers.
-
12A ein
Ablaufdiagramm zur Pufferung und Einteilung in Datenübertragungsblöcke von
Ausgabedaten auf der Grundlage der Übermittlungsvorschrift.
-
12B ein
Ablaufdiagramm zur Identifizierung und Pufferung eines Ausgabedatenübertragungsblocks
unter Verwendung einer einfach begrenzten oder einer undifferenzierten Übermittlungsvorschrift.
-
12C ein
Ablaufdiagramm zur Identifizierung und Pufferung eines Ausgabedatenübertragungsblocks
unter Verwendung einer Übermittlungsvorschrift
mit explizitem Start- und Ende-Symbol/Signal.
-
12D ein
Ablaufdiagramm zur Identifizierung und Pufferung eines Ausgabedatenübertragungsblocks
unter Verwendung einer Übermittlungsvorschrift
mit eingebetteter Einleitung.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Die vorliegende Erfindung wird unter
Verwendung eines zentralen Steuerungsmechanismus zur Verbindung
von Kommunikationsvorrichtungen und Netzwerken untereinander verwendet,
welche eine breite Vielfalt von Protokollen einsetzen. Sie arbeitet
sowohl bei der Punkt-zu-Punkt-Kommunikation gut als auch bei der
Verbindung beliebiger lokaler Netzwerke untereinander. Zum Zweck
der folgenden Beschreibung wurden drei eng verwandte Übermittlungsvorschriften
verwendet. Die Verwendung dieser Erfindung ist jedoch nicht auf
diese Übermittlungsvorschriften
beschränkt.
Durchschnittsfachleute können
andere Übermittlungsvorschriften
wählen,
welche die Techniken der IEEE-Standard 802 Serie umfassen können. Zum
Zweck der folgenden Beschreibung werden Daten in einer derartigen
Weise transportiert, dass Einheiten gebildet werden, welche entweder
vollständig
aus Daten oder aus Daten und Steuerungsinformationen bestehen. Die
folgende Beschreibung verwendet den Begriff „Datenübertragungsblock" zur Repräsentation
einer Einheit von Informationen. Alternative Dateneinheitstechnik
umfasst ein Paket oder eine Zelle, ist jedoch nicht darauf beschränkt. Wie
hier nachfolgend verwendet wird, bedeutet „Hybrid-Leitweglenkungsvermittlungsschalter" die verschiedenen
Arten von Vorrichtungen, welche verwendet werden, um Kommunikationsnetzwerke,
einschließlich
Brücken,
Router und Netzkoppler, jedoch nicht auf diese beschränkt, untereinander
zu verbinden.
-
Die Erfindung wird zur Verbindung
von Vorrichtungen für
Zwecke der Kommunikation von Informationen untereinander verwendet,
wie in 1 ersichtlich
ist. 1 zeigt das System
des Hybrid-Leitweglenkungsvermittlungsschalters 20a gemäß der vorliegenden
Erfindung, welches sowohl in Punkt-zu-Punkt- als auch in lokalen
Netzwerkkonfigurationen verwendet wird. Die Erfindung erlaubt Vorrichtungen
wie beispielsweise der Station A 25a und der Station B 25b,
deren Übermittlungsvorschriften
sich gleichen oder unterschiedlich sein können, untereinander zu kommunizieren.
Das System des Hybrid-Leitweglenkungsvermittlungsschalters 20a wird
auch verwendet, um lokalen Netzwerken (LANs), welche durch LAN A 30a,
LAN B 30b und LAN C 30c dargestellt sind, die Übermittlung
zu erlauben, sogar obwohl sich ihre Übermittlungsvorschriften unterscheiden
können.
Eine andere Verwendung des Systems des Hybrid-Leitweglenkungsvermittlungsschalters 20a ist
die Verbindung von Vorrichtungen mit LANs zur Datenkommunikation
oder für
die Verwaltung mehrerer LANs von einem zentralen Punkt aus, wie
beispielsweise die Station A 25a oder die Station B 25b, welche
zur Verwaltung von einem oder mehreren der LANs (LAN A, LAN B und/oder
LAN C) 30 verwendet werden. Es muss angemerkt werden, dass das in 1 gezeigte Blockdiagramm
nur beispielhaft ist und nicht als Beschränkung des Schutzumfangs der
vorliegenden Erfindung interpretiert werden darf. Die Station A 25a kann über das
System des Hybrid-Leitweglenkungsvermittlungsschalters 1 20a an
LAN A 30a unter Verwendung einer der vielen möglichen
unterstützten Übermittlungsvorschriften übermitteln.
Das System des Hybrid-Leitweglenkungsvermittlungsschalters 1 20a übersetzt
den Datenübertragungsblock,
welcher von der Station A 25a empfangen wurde, in die Netzwerkprotokolle
und Übermittlungsvorschriften,
welche von LAN A 30a unterstützt werden und leitet die Daten auf
das LAN 30a weiter. Diese Übersetzung wird autonom auf
der Grundlage vorkonfigurierter Informationen durchgeführt.
-
2 zeigt
ein Blockdiagramm einer Systemarchitektur des kompakten anpassbaren
Hybrid-Leitweglenkungsvermittlungsschalters (KAB). Das System umfasst
einen zentralen, gemeinsam genutzten Speicher (CSM) 6,
mehrere Vermittler-Ports 7, jeder mit einem individuellen
lokalen Speicher 7a, einem Arbitrated Interchip Bus (AIB) 5 und
einer zentralen Intelligenz des Vermittlungsschalters 11,
einem Prozessor. Mehrere externe Ports 12 und 13,
welche Bestandteil der Vermittler-Ports 7 sind, werden zur Verbindung
von Kommunikationsvorrichtungen untereinander und zur Kommunikation
mit diesen externen Geräten
verwendet. Die externen Ports 12 und 13 sind in
der Lage, viele Übermittlungssteuerungs-
und Datensignalkonfigurationen zu unterstützen. Die Datenpufferung in
der Form von Eingabeschieberegistern und Datengeschwindigkeitsabsorptions-Fifo-Puffern erlauben
Unterschiede der Taktrate zwischen den externen Schnittstellen und
der zentralen Intelligenz des Vermittlungsschalters 11.
Alle Vermittler-Ports 7 sind unter Verwendung des AIB 5 miteinander
verbunden.
-
Die Kommunikation im System 20a geschieht
durch Übermittlung
von Datenübertragungsblöcken. Die
Datenübertragungsblöcke werden
unter Verwendung des AIB 5 in Datenübertragungsblockwarteschlangen,
welche in Speicher 6 gespeichert sind, platziert und aus
ihnen entfernt. Die Datenübertragungsblöcke können auch
unter Verwendung von Ressourcen innerhalb des Datenübertragungsblock-Steuerungsblocks 4 entweder
direkt an einen Ausgabe-Port 13 oder an den lokalen Speicher 7a ohne
die Verwendung des AIB 5 übermittelt werden. Der Datenübertragungsblock-Steuerungsblock 4 umfasst
Pfade, wie beispielsweise logische Pfade, in welchen die Daten übermittelt
werden. Die zentrale Intelligenz des Vermittlungsschalters (CSI) 11 wird zur
Konfiguration des Vermittler-Ports 7 für die eingesetzte Übermittlungsvorschrift
und die Quelle oder das Ziel der Datenübermittlung verwendet, welche den
Vermittler-Port 7 passiert. Diese Informationen sind eindeutig
für jeden
externen Port des Vermittler-Ports 7 und werden deshalb
durch sie gespeichert. Die technische Übermittlungsvorschrift des Ausgabe-Ports 13 muss
nicht die gleiche wie die des Eingabe-Ports 12 sein, an
welchem der Datenübertragungsblock
eintrifft. Wenn sie verschieden sind, wird eine Verarbeitung des
Datenübertragungsblocks durch
die CSI 11 erforderlich. Die Verwaltung der Aktivität des kompakten,
anpassbaren Hybrid-Leitweglenkungsvermittlungsschalters 20a wird
auch durch die CSI 11 unter Verwendung externer Port-Konfigurationsinformationen
und Steuerungsinformationen der Datenübermittlung durchgeführt.
-
Der zentrale, gemeinsam genutzte
Speicher 6, zusammen mit der Datenübertragungsblockübermittlung,
der Pufferungs- und Protokollunterstützungsfunktionen, bilden die
Vermittlerstruktur 14, welche durch den schattierten Bereich
der 2 bezeichnet wird.
Die Datenübertragungsblöcke werden unter
Verwendung der Datenübermittlungs-
und Speicherungsmerkmale der Vermittlerstruktur 14 eingeben,
möglicherweise
durch die Verarbeitung des Datenübertragungsblocks
verändert
und an einen oder mehrere Ausgabe-Ports 13 geleitet.
-
Die Vermittler-Ports 7 sind
kompatibel mit externen Systemen mit sich unterscheidenden Protokollen,
unterschiedlichen Kopfformaten und Datenverbindungen. Die Vermittler-Ports 7 weisen
jeder zwei Eingänge
und zwei Ausgänge
auf. Dies erlaubt den Vermittler-Ports 7 individuell Daten
aufzunehmen und sie mit den entsprechenden Ports zu verbinden. Dies
hilft der zentralen Intelligenz des Vermittlungsschalters 11 Überlastung
zu vermeiden. Die Vermittler-Ports 7 weisen eine größere Anzahl
von Betriebsweisen auf, welche sie individuell ausführen, um
dem System 20a einen wirkungsvolleren Betrieb zu ermöglichen.
-
Daten von einem externen Gerät werden durch
den Vermittler-Port 7 empfangen. Der Vermittler-Port 7 weist
die Fähigkeit
zur autonomen Verschiebung der eingehenden Daten entweder in ihren entsprechenden
Pufferspeicher oder direkt an einen Ausgabe-Port FIFO 9 auf.
Wenn der Vermittler-Port 7 Daten von einer externen Quelle
empfängt,
wird auf eine Datenwarteschlangenzeigerliste im zentralen, gemeinsam
genutzten Speicher 6 zugegriffen und das Datenpaket in
die richtige Warteschlange und an die richtige Warteschlangenposition
verschoben. Der Vermittler-Port 7 weist auch die Fähigkeit
auf, das Datenpaket in einen lokalen Speicher 7a zu verschieben.
Dadurch wird Zeit gespart, indem die zentrale Intelligenz des Vermittlungsschalters 11 nicht
unterbrochen wird, um Zeit zu reservieren und diese Operation durch
die Feststellung durchzuführen,
welcher Stapel zu verarbeiten ist. Dies ermöglicht der zentralen Intelligenz
des Vermittlungsschalters 11, ihrem eigenen Zeitplan entsprechend
zu arbeiten, ohne unterbrochen zu werden. Die Vermittler-Ports 7 sind
darin dynamisch, dass sie automatisch Daten in die jeweiligen Puffer
im zentralen, gemeinsam genutzten Speicher 6 oder im lokalen
Speicher 7a stellen. Sie führen mehrere Datenübertragungsblockübermittlungen
durch und helfen mit ihrer eigenen Pufferverwaltung. Die Operationen
umfassen auch einen Status der Datenverschiebung, ob sie eine Eingabe
oder eine Ausgabe ist, an die zentrale Intelligenz des Vermittlungsschalters 11 in
Postform an ein Postfach im zentralen, gemeinsam genutzten Speicher 6.
-
Die Datenübertragungsblöcke werden
dem System des Hybrid-Leitweglenkungsvermittlungsschalters 20 über einen
Port 7 eingegeben und gemäß dem in 3 gezeigten Ablaufdiagramm verarbeitet.
Der Eingabe-Port 12 arbeitet wie eine Anschlussleitung
in der Gestalt, dass es zu jedem beliebigen Zeitpunkt wahrscheinlich
gleichzeitig Daten in jedem der in 3 dargestellten
Operationsstufen gibt. Jeder externe Port 12 kann verschiedene Übermittlungsvorschriften
unterstützen,
oder er kann für die
gleiche Übermittlungsvorschrift
konfiguriert sein. Die Datenübertragungsblöcke werden
identifiziert, gepuffert und an ihre Ziele übermittelt. Für all die
Eingabeübermittlungsvorschriften
registriert der Status des Eingabedatenübertragungsblocks das Auftreten bestimmter
Ereignisse während
des Empfangs des Datenübertragungsblocks,
welchem er zugeordnet ist. Der Status wird am Ende des Datenübertragungsblocks
im gleichen Pfad wie die Daten gespeichert und die Markierungen
werden auf ihre Vorgabezustände
zurückgesetzt.
Die Datenübertragungsblöcke können entweder
an den Speicher oder direkt an den Ausgabe-Port übermittelt werden.
-
Der erste Block 50 akzeptiert
einfach die Daten, welche in der Eingabe des Vermittler-Ports 12 eingehen.
Die Breite des physikalischen Pfads des Datenübertragungsblocks ist konfigurierbar
und kann variieren. Jeder Port 12 kann verschiedene Übermittlungsvorschriften
unterstützen,
oder er kann für
die gleiche Übermittlungsvorschrift
konfiguriert werden.
-
Der zweige Block 52 legt
die Datenübertragungsblöcke fest.
Dies wird dadurch erreicht, dass die realen Daten zuerst synchronisiert
und dann von den Leerdaten aus sortiert werden, welche zwischen den
Datenübertragungsblöcken existieren
können. Die
Daten werden gepuffert und an ihr Ziel übermittelt, während die Übermittlungsvorschrift
anzeigt, dass ein Datenübertragungsblock
empfangen wird. Für
all die Eingabeübermittlungsvorschriften
registriert der Status des Eingabedatenübertragungsblocks das Auftreten
bestimmter Ereignisse während des
Empfangs des Datenübertragungsblocks,
welchem er zugeordnet ist. Der Datenübertragungsblock wird dann
markiert, um den Anfang und das Ende des Datenübertragungsblocks anzuzeigen.
Der Status wird am Ende des Datenübertragungsblocks im gleichen
Pfad wie die Daten gespeichert und die Markierungen werden auf ihre
Vorgabezustände
zurückgesetzt.
Dieser Status zeigt zusammen mit Größe und Typ an, ob der Datenübertragungsblock
gut oder schlecht ist. Beispielsweise, wird ein Datenübertragungsblock
als „schlecht" angesehen, falls
die Länge des
Datenübertragungsblocks
im Vergleich zur derjenigen kürzer
ist, welche er in einem festgelegten Datenübertragungsblockformat aufweisen
sollte. Ein anderes Beispiel ist, dass falls der Datenübertragungsblock
unendlich ist, dann der Datenübertragungsblock
an irgendeinem Punkt abgeschnitten und als „schlecht" angesehen werden muss.
-
Der dritte Block 54 zeigt
die Datenübertragungsblöcke, welche
im Puffer 2 gespeichert werden. Die Pufferung ist als das
Festhalten eines Datenübertragungsblocks
bis zur Speicherung im Speicher definiert.
-
Die Datenübertragungsblöcke können entweder
an den lokalen Speicher 7a oder direkt an einen Ausgabe-Port
oder, wie im vierten Block 56 gezeigt, an den CSM 6 übermittelt
werden. Dieser Schritt wird ohne das Erfordern der zentralen Intelligenz
des Vermittlungsschalters 11 durchgeführt. Dieser Schritt wird von
verschiedenen Modi durchgeführt,
welche später
diskutiert werden. Nochmals, früher
war ein Prozessor zur Übermittlung
von Datenübertragungsblöcken erforderlich, die
vorliegende Erfindung befreit jedoch den Prozessor (CSI) 11 davon, indem
diese Aufgabe ohne den Prozessor durchgeführt wird. Der letzte Block
speichert den Zeiger in einer Steuerungsdatei im CSM 6,
ohne die CSI 11 zu erfordern.
-
4A zeigt
ein Ablaufdiagramm von drei möglichen Übermittlungsvorschriften,
von welchen eine zur Verwendung an einem Eingabedatenstrom durch
die CSI 11 ausgewählt
wurde. Die drei Protokollarten werden mit der vorliegenden Erfindung
verwendet: Die Einfachbegrenzungssignal-Übermittlungsvorschrift, die
Start- und Ende-Symbol/Signal-Übermittlungsvorschrift
und die Datenübertragungsblockeinleitungsmuster-Übermittlungsvorschrift.
Alle Datenübertragungsblöcke werden
dem KAB-Vermittlungsschalter 20a unter Verwendung eines
der verfügbaren
externen Eingabe-Ports 12 eingegeben. Die Vermittler-Ports 7 können für verschiedene
Datenbreiten und Datenübermittlungssteuerungssignalisierungen
konfiguriert werden. Die Daten und möglicherweise die Steuerungsinformationen zur
Einteilung in Datenübertragungsblöcke werden zur
Durchführung
von einer Synchronisierung sowohl auf Bit-Ebene als auch auf Datenübertragungsblock-Ebene
verwendet. Sogar obwohl die vorliegende Erfindung als synchron arbeitend
beschrieben wird, ist die vorliegende Ausführungsform nicht auf eine derartige
Arbeitsweise beschränkt.
Die vorliegende Ausführungsform
kann asynchron sowie synchron arbeiten.
-
4B zeigt
ein Ablaufdiagramm der Verarbeitung, welche auftritt, falls die Übermittlungsvorschrift
der Gestalt ist, dass die Grenzen eines durch ein einzelnes, separates
Signal gekennzeichnet werden, welches die Grenze eines Datenübertragungsblocks
anzeigt (hier als eine Einfachbegrenzungssignal-Übermittlungsvorschrift bezeichnet).
Eine Grenze eines Datenübertragungsblocks
kann entweder durch eine Anfang-des-Datenübertragungsblocks-(BOF)-Markierung
oder eine Ende-des-Datenübertragungsblocks-(EOF)-Markierung
auftreten. Falls eine EOF-Markierung verwendet wird, wird eine Verzögerung an
der Anschlussleitung des Vermittler-Ports eingeführt, um Zeit für die Verarbeitung
des Endes eines Datenübertragungsblocks
zu geben und einen neuen zu beginnen. Diese Verzögerung wird durch die Verwendung
von Begrenzungsinformationen „unmittelbar
vor" dem Datenübertragungsblock verkörpert. Ein
Datenübertragungsblock
kann auch dadurch enden, dass der maximale Längenzähler erreicht wird, welcher
durch die CSI 11 konfiguriert wurde. Mit der Verwendung
des Längenzählers des
Datenübertragungsblocks
unterstützt
dieses Protokoll festgelegte Datenübertragungsblockgrößen, welche durch
eine unbedeutende Verbindungsaktivität aufgrund der Verwendung einer
BOF-Markierung separiert werden. Die durch das Ablaufdiagramm in 4B gezeigte Verarbeitung
tritt auch auf, falls die Datenübertragungsblöcke nicht
eigens entweder durch ein Signal des Vermittler-Ports 7 oder
durch Datenmuster gekennzeichnet sind, sondern durch Zählen der
Anzahl der Eingaben (bezeichnet als eine undifferenzierte Übermittlungsvorschrift).
Falls kein Datenübertragungsblock
im Gange ist, wird ein neuer Datenübertragungsblock angefangen.
Ein Datenübertragungsblock
endet durch das Erreichen des abschließenden Eingabezählers, welcher
durch die CSI 11 konfiguriert wurde.
-
4C zeigt
ein Ablaufdiagramm der Verarbeitung, welche auftritt, falls die
verwendete Übermittlungsvorschrift
den Start und das Ende des Datenübertragungsblocks
unter Verwendung externer Signale festlegt. Der Datenübertragungsblock
wird unter Verwendung eines parallelen oder gemeinsamen exklusiven
Steuerungssymbols oder Signalpfads festgelegt. Die Datenübertragungsblöcke beginnen
mit der expliziten Start-des- Datenübertragungsblocks-Symbolsequenz
oder -Signalmarkierung. Das Ende eines Datenübertragungsblocks tritt entweder
durch das Auftreten einer expliziten Ende-des-Datenübertragungsblocks-Symbolsequenz oder
-Signalmarkierung auf. Das Ende eines Datenübertragungsblocks kann auch
auftreten, falls die Anzahl der Eingabebytes gleich der maximalen
Datenübertragungsblockgröße ist,
welche durch die CSI 11 konfiguriert wurde.
-
4D zeigt
ein Ablaufdiagramm der Verarbeitung, welche durchgeführt wird,
falls die Übermittlungsvorschrift
eine Start-des- Datenübertragungsblocks-Markierung
verwendet, welche in den Datenstrom am Anfang der Datenübertragungsblöcke eingebettet
ist. Die Datenübertragungsblöcke werden genommen,
wenn der Port Übereinstimmungen
im Code der Einleitung findet. Eine Korrelation zwischen einem verzögerten und
verschobenen Abschnitt des Eingabedatenstroms und einer Referenzeinleitung, welche
durch die CSI 11 konfiguriert wurde, wird als Bestandteil
der Einleitungssuche durchgeführt.
Dies erlaubt den Empfang einer Einleitungssequenz, welche entweder
eine genaue Übereinstimmung
oder eine akzeptable Ähnlichkeit
mit der fehlerfreien Einleitungssequenz aufweist. Wo mehr als ein
Bit zur Eingabe von Daten verwendet wird, wird nicht angenommen,
dass die Einleitungssequenz sich mit der Eingabesequenz deckt. Ein
Deckungszähler
wird verwendet, um die Eingabe mit der Einleitungssequenz zur Deckung
zu bringen. Der Deckungszähler wird
bei jedem Datenübertragungsblock
der Eingabedaten mit einem neuen Wert überschrieben. Wie bei anderen
Protokollen wird eine Leersequenz verwendet, um den Empfänger mit
dem Sender synchronisiert zu halten, wenn keine Datenübertragungsblöcke gesendet
werden.
-
Der Beginn eines Datenübertragungsblocks wird
typischerweise durch die Einleitungssequenz bezeichnet. Ein Datenübertragungsblock
kann auch anzeigen, wo eine Einleitungssequenz erwartet, jedoch
nicht empfangen wurde, falls dies entsprechend konfiguriert ist.
Die Leerlauf-Datenübertragungsblockbedingung
tritt unmittelbar auf einen Datenübertragungsblock folgend auf, wo
weder eine oder mehrere Leersequenzen noch eine Einleitungssequenz erfasst
wurden. Die CSI 11 konfiguriert den Port zur Erzwingung
einer bestimmten Anzahl von Leerlauf-Datenübertragungsblöcken, bevor
er eine Einleitungssequenz zum Beginn eines neuen Datenübertragungsblocks
erfordert. Mit anderen Worten, die Datenübertragungsblöcke werden
solange akzeptiert, bis eine bestimmte Zeitdauer abgelaufen ist. Das
Ende eines Datenübertragungsblocks
tritt auf, wenn die Anzahl der Eingabebytes gleich der maximalen
Datenübertragungsblockgröße ist,
welche durch die CSI 11 konfiguriert wurde. Da vorausgesetzt
wird, dass die Datenübertragungsblöcke für die Verwendung
von Leerlauf-Datenübertragungsblöcken eine
festgelegte Größe aufweisen,
ist das EOF implizit.
-
Die Datenübertragungsblöcke und
ihre entsprechenden Datenübertragungsblockstatusinformationen
werden, wie im Blockdiagramm der 5 gezeigt,
in einem Fifo-Puffer 2 gespeichert.
Die Inhalte des Fifo-Puffers 2 bestehen aus Dateneinträgen, welche
einen Datenübertragungsblock
umfassen, gefolgt von einem einzelnen Statusinformationseintrag, welcher
dem vorhergehenden Datenübertragungsblock
entspricht. Für
jeden Datenübertragungsblock werden
Statusinformationen entsprechend der Empfangsereignisse dieses Datenübertragungsblocks
in den Datenstrom eingefügt,
welcher unmittelbar auf den Datenübertragungsblock folgt. Dies
erlaubt eine akkurate Aufzeichnung der Statusinformationen (Datengröße, Typ
des Datenübertragungsblocks,
maximale Datenübertragungsblockgröße, Paritätsfehler) eines
gegebenen Datenübertragungsblocks,
um diesen Datenübertragungsblock
bei seiner Verschiebung durch die Vermittlerstruktur ohne einen
Eingriff der CSI 11 zu verfolgen. Mit jedem Dateneintrag
wird eine gerade Parität
gespeichert. Die letzten Daten eines Datenübertragungsblocks und sein
Statusinformationseintrag sind eindeutig markiert, indem die gespeicherte
Parität
so verändert
wird, dass sie ungerade ist, und indem das Steuerungsfeld von einem
Bit verwendet wird, um den Status statt der Daten anzuzeigen.
-
Die Grenzen eines Datenübertragungsblocks
werden an der Ausgabe des Fifo-Puffers 2 erfasst, indem
ein Mehrheitswahlmechanismus auf die drei Bits der Markierungsinformationen
angewendet wird: die zwei Paritätsbits
und das Daten-/Statusbit. Die Mehrheitswahl bringt eine Ebene der
Fehlertoleranz in das Verfahren der Identifizierung der Art des Eintrags
ein, und folglich für
das Ende des Datenübertragungsblocks,
indem sie einem der drei Bits eines beliebigen Eintrags erlaubt,
fehlerhaft zu sein, ohne dass der Eintrag unrichtig entweder als
Daten oder als Status identifiziert wird.
-
Da der Status des Datenübertragungsblocks zur
Bestimmung der Integrität
des Datenübertragungsblocks
verwendet werden kann, muss der Status des Datenübertragungsblocks abgesichert
werden. Die Statusparität
wird mit der Entfernung aus dem Eingabe-Fifo-Puffer 2 regeneriert
und zur Prüfung
der Ausgabestatusparität
verwendet, um Statusprobleme zu identifizieren. Das Ergebnis dieser Paritätsprüfung wird
in den ausgehenden Status eingespeist. Dies hilft, Statusparitätsfehler
aufzudecken, welche andernfalls durch das Wahlverfahren verborgen
werden könnten.
-
6A zeigt
ein Ablaufdiagramm der Verarbeitung, welche von der Direktzugriffssteuerung
des Eingabespeichers 3 durchgeführt wird und nach der Entfernung
der Anzahl von Einträgen
aus dem Fifo-Puffer 2 stattfindet, welche zur Erzeugung
eines einzelnen Daten-Tokens
erforderlich sind, welcher vom lokalen Speicher 7a, vom
zentralen, gemeinsam genutzten Speicher 6 oder vom direkten
Pfad zu einem Ausgabe-Port 13 innerhalb 4 verwendet
wird. Ein Daten-Token ist eine Dateneingabe, welche nicht die Länge eines
vollständigen
Datenübertragungsblocks
aufweist. Daten-Token können
zusammen im Speicher gespeichert werden, um den Raum des Datenübertragungsblocks
im Speicher auszufüllen.
-
Es werden zwei Pufferungsmodi vorgesehen,
da Paketstatistik und -Größen für jeden
Port 7 breit variieren können: den Ringeingabewarteschlangenbetrieb
und den Seiteneingabewarteschlangenbetrieb. Der Ringeingabewarteschlangenbetrieb
wird verwendet, wenn die Eingabestatistik hinsichtlich der Daten
vorhersehbar ist und die individuellen Paketgrößen nicht vorhersehbar sind.
Der Ringeingabewarteschlangenbetrieb erfordert weniger Verarbeitungs-Overhead
der CSI, bietet jedoch keine Unterstützung für einen Warteschlangenbetrieb
mit Prioritäten.
Der Seiteneingabewarteschlangenbetrieb wird verwendet, wenn die
individuellen Paketgrößen vorhersehbar
sind, die Eingabestatistik jedoch nicht. Der Seiteneingabewarteschlangenbetrieb
unterstützt
den Warteschlangenbetrieb mit Prioritäten, erzeugt jedoch eine gesteigerte
Speicherfragmentierung, welche zu ihrer Verwaltung einen CSI-Overhead
erfordert. Nachdem das Datenpaket in einen Speicher verschoben wurde,
informiert der Vermittler-Port 7 die zentrale Intelligenz
des Vermittlungsschalters 11 über die Erfassung eines Datenpakets
und die Verschiebung der Daten in den Speicher.
-
Manchmal umgehen die Daten den Speicher und
werden direkt an die Ausgabe gesendet. Ein Daten-Token repräsentiert
denjenigen Abschnitt eines Datenübertragungsblocks,
welcher aus dem Eingabepuffer 2 übermittelt wurde. Der Daten-Token
wird entsprechend der Spezifikation in den Konfigurationsdaten gelenkt,
welche durch die CSI 11 geliefert werden. Die Daten-Token werden zur
Rekonstruktion des Datenübertragungsblocks
im Speicher unter Verwendung entweder eines einzelnen Ringpuffers
oder eines Seitenpuffers mit vorbestimmter Seitengröße verwendet.
Die Datenübertragungsblockpufferspeicher
können
lokal sein und erfordern folglich keine Benutzung des AIB 5.
-
Der Speicher umfasst Eingabepost,
welche den Paketstatus, den Paketbereich und die nächste verfügbare Adresse
der Eingabedatenwarteschlange enthält. Nachdem jedes Datenpaket
in den Speicher geschrieben wurde, registriert der Eingabepoststatus,
welcher den Status des letzten geschriebenen Pakets enthält, wo der
Anfangspunkt des nächsten Pakets
ist und wo die nächste
Post platziert werden soll. Wenn die Daten in den lokalen Speicher 7a gehen,
dann der Kopf jedes Eingabepakets jede Eingabepost. Die Kopfgröße wird
im Eingabekonfigurationsregister spezifiziert.
-
6B zeigt
das Ablaufdiagramm der Verarbeitung, welche an einem Daten-Token
durchgeführt wird,
falls durch die CSI 11 eine Ringpufferverarbeitung konfiguriert
ist. Bei der Beschreibung von Datenstrukturen werden Ringpuffer
auch als Umlaufpuffer bezeichnet. Eine Eingabedatenringwarteschlange (IDQ)
wird im zentralen, gemeinsam genutzten Speicher 6 durch
die CSI, welche die Lenkung des Eingabedatenübertragungsblocks 4 mit
einer Anfangsadresse und einer Größe konfiguriert, entweder direkt oder
durch die Verwendung einer Endadresse erzeugt. Jeder Eintrag in
der IDQ ist ein Datenübertragungsblock.
Die IDQ wird mit der Eingabe von Daten in das System 20a unter
Verwendung entweder des AIB 5 oder der zugeordneten lokalen
Speicherschnittstelle gefüllt.
Die Datenübertragungsblöcke werden
zusammenhängend
in die IDQ gestellt, bis die IDQ-Größe erschöpft ist. Die IDQ rollt dann
an den Anfangsort zurück
und fährt
fort, Daten in den Speicher zu stellen. Der Vermittler-Port 7 sendet auch
eine Eingabepost an die zentrale Intelligenz des Vermittlungsschalters 11,
welche die Informationen über
Paketstatus, Paketgröße und die
nächste Adresse
der Eingabewarteschlange enthält.
Im Vermittler-Port 7 wird die nächste Adresse der Eingabewarteschlange
und des Eingabepostfachs aktualisiert.
-
6C zeigt
die Verarbeitung, welche an einem Daten-Token durchgeführt wird, falls die Seitenpufferverarbeitung
ausgewählt
wurde. Eine Eingabeseitenwarteschlange (IPQ) wird von der CSI 11 als eine
Liste von Datenübertragungsblock-DMA-Deskriptoren
gebildet. Jeder DMA-Deskriptor wird von der Eingabedatenlenkung 4 für das Einstellen
von Datenübertragungsblöcken in
den Speicher verwendet. Der Seiteneingabewarteschlangenbetrieb tritt auf,
wenn die Vermittler-Ports 7 Seitenzeiger von einer Eingabewarteschlangenliste
ermitteln und diese Informationen in ein Eingabebereichsregister
laden. Der Vermittler-Port 7 lädt dann das eingehende Paket in
die Eingabewarteschlange, welche vom Eingaberegister spezifiziert
wird. Falls das Ende des Pakets nicht erkannt wird, werden die vorstehenden
Schritte wiederholt. Nachdem das Ende des Pakets erfasst wurde aktualisiert
der Vermittler-Port 7 das Eingabepostfach mit einer Eingabepost,
welche Informationen hinsichtlich des Paketstatus, der Paketgröße und der
Adresse der nächsten
Eingabewarteschlange des nächsten
verfügbaren
Seitenzeigers enthält.
Der Eingabepoststatus wird aktualisiert und enthält den Status des letzten Pakets,
welches in die Eingabewarteschlange geschrieben wurde, die nächste Adresse
der Eingabewarteschlange und die nächste Adresse des Eingabepostfachs.
-
Die Konfiguration der Eingabelenkungssteuerung 4 zur
Umgehung des Speichers und zum direkten Gang an den Ausgabe-Port 13 resultiert
in der im Ablaufdiagramm der 6D gezeigten
Verarbeitung. Die Daten werden direkt vom Eingabe-Fifo-Puffer 2 in den
Ausgabe-Fifo-Puffer 9 übermittelt.
-
7A zeigt
ein Ablaufdiagramm der Operationen, welche durchgeführt werden,
sobald ein vollständiger
Datenübertragungsblock
an das Ziel übermittelt
worden ist. Es werden ein Hinweis darüber, welcher Eingabepuffer 2 gefüllt worden
ist, und die Eingabestatus informationen in den Speicher gestellt. Wahlweise
kann es erforderlich sein, der zentralen Intelligenz des Vermittlungsschalters
(CSI) 11 den Kopf bequem verfügbar zu machen, indem er in
den zentralen, gemeinsam genutzten Speicher 6 gestellt wird,
was für
die CSI 11 das Erfordernis reduziert, den AIB 5 zu
benutzen.
-
7B zeigt
die Struktur und die Inhalte der Eingabestatusmeldewarteschlange,
welche eine Eingabepostfachwarteschlange genannt wird, hinsichtlich
der Datenübertragungsblöcke der
Eingabedaten, welche in die Ring-IDQ gestellt wurden.
-
7C zeigt
die Struktur und die Inhalte der Eingabestatusmeldewarteschlange,
welche eine Eingabepostfachwarteschlange genannt wird, hinsichtlich
der Datenübertragungsblöcke der
Eingabedaten, welche in eine Seiten-IDQ gestellt wurden. Die Struktur
der Statusmeldewarteschlange ist die gleiche, und die Inhalte repräsentieren
die gleichen Informationen des Eingabe-Fifo-Puffers 2. Jedes Mal,
wenn das Ende des Datenübertragungsblocks
erfasst wird, werden der frühste
Datenübertragungsblockstatus, die
nächste
IDQ-Adresse und die nächste
Eingabepostfachadresse in den nächsten
Eintrag am Ende des Eingabepostfachs gestellt. Wahlweise kann es erforderlich
sein, der CSI 11 den Kopf bequem verfügbar zu machen, indem er in
den zentralen, gemeinsam genutzten Speicher 6 gestellt
wird, was für die
CSI 11 das Erfordernis reduziert, direkt auf die Datenübertragungsblock-Pufferbereiche 2 zur
Erfassung der Kopfinformationen zuzugreifen. Diese Erfassung könnte allgemein
interne Datenpfadbandbreite des KAB-Vermittlungsschalters verbrauchen, was
zu vermindertem Datendurchsatz des Vermittlungsschalters führt, besonders
wenn die Datenübertragungsblockpufferung
dem lokalen Speicher 7a des Vermittler-Ports zur Speicherung
zugeordnet ist. Zuletzt stellt Lenkung des Eingabedatenübertragungsblocks 4 den
frühsten
Datenübertragungsblockstatus
und die IDQ-Anfangsadresse oben auf die Liste, welche das Eingabepostfach
genannt wird. Eine einziger Punkt zur Information über den
aktuellen Status eines beliebigen Eingabe-Ports 12 wird durch
die CSI 11 vorgesehen. Der Mechanismus des Warteschlangenbetriebs
von Statusmeldungen versieht die CSI 11 mit der Option,
asynchron zum Eintreffen der Datenübertragungsblöcke zu arbeiten, was
es der CSI 11 ermöglicht,
mehr als einen Datenübertragungsblock
auf einmal zu verarbeiten. Dies ist bei der Vermeidung des Overheads
wesentlich, welcher mit dem wiederholten Vermitteln im Zusammenhang
der Verarbeitung der CSI 11 verbunden ist.
-
8 zeigt
ein Ablaufdiagramm der Operationen, welche mit den Ausgabedaten
durchgeführt werden.
Es ist hilfreich daran zu erinnern, dass die Daten ein endloser
Strom von Datenübertragungsblöcken sind,
und dass die Ausgabe die Datenübertragungsblöcke in den
Bitstrom zurückverwandelt. Bei
der Datenausgabeoperation wird ein Datenmuster wiederholt in den
Ausgabedatenstrom eingefügt. Die
Datenausgabeoperation ist der Dateneingabeoperation ähnlich.
Der Vermittler-Port 7 beginnt aus dem zentralen, gemeinsam
genutzten Speicher 6 oder dem lokalen Speicher 7a zu
lesen, wenn das Ausgabepostfach anzeigt, dass Daten zur Ausgabe verfügbar sind.
Der Abrufvorgang setzt den Abruf der Daten von der nächsten Adresse
solange fort, wie das Postfach anzeigt, dass andere Daten zur Ausgabe
bereit sind.
-
Die Quelle der Daten für einen
Ausgabe-Port 13 wird durch die CSI 11 konfiguriert
und ist entweder der Speicher oder ein Eingabe-Port 12.
Der Ausgabedatenübertragungsblock
wird in Token aufgeteilt und an den Ausgabe-Port Fifo-Puffer 9 übermittelt. Multicasting
erlaubt mehreren Elementen auf einer gemeinsamen Kommunikationsleitung
den Empfang von gemeinsamen Informationen. Bei der vorliegenden
Erfindung sind die Vermittler-Ports 7 die mehreren Elementen,
welche mit dem AIB 5 verbunden sind, welcher die Kommunikationsleitung zwischen den
Vermittler-Ports 7 darstellt. Ferner setzt das Multicasting
ein Hauptgerät
und mehrere Folgegeräte ein,
welche mit dem einen Hauptgerät
kommunizieren. Die Verwendung des Multicastings von Daten über den
AIB 5 erlaubt mehr als einem Ausgabe-Port 13 den
Empfang des Datenübertragungsblocks. Wenn
der ganze Datenübertragungsblock übermittelt wurde,
wird dieser Zustand an die CSI 11 unter Verwendung separater
Postfächer
im zentralen, gemeinsam genutzten Speicher 6 gemeldet.
Der Datenübertragungsblock
wird gemäß der Übermittlungsvorschrift
für den
Ausgabe-Port 13 gesendet. Jeder Ausgabe-Port 13 kann
verschiedene Übermittlungsvorschriften
unterstützen,
oder sie können
für die
gleiche Übermittlungsvorschrift
konfiguriert werden.
-
9A zeigt
ein Ablaufdiagramm der Verarbeitung, welche von der Ausgabespeicher-Direktzugriffssteuerung
(DMAC) 8 durchgeführt
wird, um einen Datenübertragungsblock
an den Fifo-Puffer 2 eines oder mehrerer Ausgabe-Ports 13 zu
senden. Die Quelle des Datenübertragungsblocks
wird von der CSI 11 konfiguriert, und sie kann Speicher
oder ein Eingabe-Port 12 sein.
-
Im Fall von Speicher können Datenübermittlungen
durch den AIB 5 mit einem Hauptgerät, welches einer der Vermittler-Ports 7 ist,
und mit einem oder mehreren Multicast-Folgegeräten initiiert werden, welche
die anderen Vermittler-Ports 7 sind. AIB-Hauptgerät-Operationen
werden im Ablaufdiagramm der 9B dargestellt.
Die Datensegmente werden unter Verwendung von DMA-Deskriptoren miteinander
verbunden, um einen Datenübertragungsblock
zu bilden. Jeder DMA-Deskriptor zeigt auf einen Anfangsort im Speicher
und definiert die Anzahl von Speicherorten, aus welchen das Datensegment
besteht. Der DMA-Deskriptor stellt auch DMA-Steuerungsinformationen
bereit, wie beispielsweise Datenübertragungsblockgrenzen
durch die „Ende
des Datenübertragungsblock" Markierung und das
Ende einer DMA-Kette durch die „Kettenende" Markierung. Ein
typisches Bei spiel der Bildung eines Datenübertragungsblocks ist eins,
welches aus zwei DMA-Deskriptoren besteht: einer für den Kopf
und der andere für
den Rest des Datenübertragungsblocks.
Datenübermittlungen
auf dem AIB 5 werden solange durch den Ausgabe-Port ohne
Weiterleitung von Datenübertragungsblockinformationen
initiiert, bis das „Ende
des Datenübertragungsblocks" erfasst wird. Mehrere
Datenübertragungsblöcke können durch
Verknüpfung
von Datenübertragungsblock-Deskriptoren
gebildet werden, um die gesamte Ausgabedatenkette zu bilden. Dies
ermöglicht
einen Strom von Datenübertragungsblöcken zur
Ausgabe ohne Intervention des Prozessors. Wo Übermittlungsvorschriften die
Verwendung von Füllmustern
oder Füll- Datenübertragungsblöcken erfordern
oder, wenn keine Datenübertragungsblöcke verfügbar sind,
werden die Deskriptorsteuerungsmarkierungen „Füllung einfügen" und „Blockwiederholung" am Ende der Kette verwendet.
-
Die DMA-Aktivität der Ausgabe schreitet durch
den Status des Fifo-Puffers 2 voran. Der Zustand „Nicht
Voll" des Fifo-Puffers 2 erlaubt
die Fortsetzung der DMA-Aktivität.
Der Zustand „Fast
Leer" wird verwendet,
wenn die vorhergehende DMA-Deskriptor-Ausgabe wiederholt werden
muss. Der Zustand „Fast
Leer" wird zum Fortschreiten
dieser Aktivität
verwendet.
-
Die im Ablaufdiagramm der 9B gezeigten Operationen
beantragen die Initiierung und die Durchführung der Datenübermittlungen.
Solange, bis das Ende des Datenübertragungsblocks
erfasst wird, werden durch die DMAC 8 Daten gelesen und
an den Ausgabe-Port 13 unter Verwendung des Ausgabe-Fifo-Puffers 9 gesendet.
-
9C zeigt
ein Ablaufdiagramm der Operationen, welche von einem Multicast-Folgegerät durchgeführt werden
und welche sich gegenseitig von den Operationen ausschließen, welche
durch ein DMA-Hauptgerät
durchgeführt
werden. Wenn Daten unter Verwendung des AIB 5 an mehr als
einen Ausgabe-Port 13 übermittelt
werden, wird ein Verfahren zum Datenempfang durch einen anderen
Ausgabe-Port verwendet, als den Ausgabe-Port des DMA-Hauptgeräts. Dieses
Multicasting-Verfahren wird gewöhnlich
als Snooping bezeichnet. Das Multicast-Folgegerät verbleibt im Gleichschritt
mit dem Ausgabe-Port des Multicast-Hauptgeräts, welches die Datenübermittlung
initiiert. Das Multicast-Folgegerät wird konfiguriert, um nach
Aktivität
auf einer spezifischen Ausgabe-DMAC 8 Deskriptorkette Ausschau
zu halten. Das Folgegerät
erspäht
die Hauptgerät-Markierung
von der AIB-Schnittstellenlogik und vom DMA-Deskriptor, welcher
einer Datenübermittlungssequenz
vorangestellt ist, um festzustellen, ob die darauf folgenden Daten
an seinen Port ausgesendet werden sollen. Dies ermöglicht mehreren
Ausgabeströmen,
die gleichen Daten zu enthalten und stellt sicher, dass das Multicast-Folgegerät in der
Lage ist, den Gleichschritt mit dem Hauptgerät der richtigen DMA-Ausgabekette
zu halten. Die DMA-Deskriptorsteuerungsinformationen enthalten einen
Hinweis auf den Gruppenidentifizierer (ID), zu welcher die DMA-Aktivität gehört.
-
Das Multicast-Folgegerät erspäht die Steuerungsinformationen,
welche einem Datenübertragungsblock
vorangestellt sind, um festzustellen, ob die folgenden Daten auf
seinem Port gesendet werden sollen. Die Steuerungsinformationen
enthalten einen virtuellen Ausgabekanalidentifizierer. Die Klasse
der zu erspähenden
Datenübertragungsblöcke wird
aus den Multicast-Abbildungseinträgen festgestellt, welche durch
das Folgegerät
unterhalten werden. Alle virtuellen zu erspähenden Kanäle werden entsprechend in der
Multicast-Abbildung markiert und können alle oder nur irgendeine
Fraktion der Datenübertragungsblöcke sein,
welche für
den Ausgabe-Port des Multicast-Hauptgeräts bestimmt sind.
-
Die Menge der zu erspähenden Datenübertragungsblöcke wird
von den Tabelleneinträgen
der Gruppenzugehörigkeit
bestimmt, welche vom Multicast-Folgegerät unterhalten werden. Alle
zu erspähenden
Gruppen-IDs sind gemäß den Einträgen in der
Gruppenzugehörigkeitstabelle
des Folgegeräts freigegeben,
welche dynamisch sind, und unterliegen darum dem Wechsel zwischen
Ausgabeketten. Das Multicast-Folgegerät kann so konfiguriert werden, dass
es alle oder nur eine beliebige Fraktion der Datenübertragungsblöcke erspäht, welche
für das
Ausgabe-Port-DMA-Hauptgerät
gemäß der Gruppen-IDs in
jedem DMA-Deskriptor bestimmt sind. Viele Kombinationen der Zugehörigkeit
unter den Multicast-Folgegeräten
sind möglich.
Alle Operationen des Hauptgeräts
werden im Gleichschritt beschattet, sogar wenn der aktuelle Datenübertragungsblock
für eine Gruppe
ist, zu welcher das Multicast-Folgegerät nicht gehört. Die Daten werden jedoch
nicht für
diesen Zustand erspäht.
-
9D zeigt
ein Ablaufdiagramm der Operationen, welche durchgeführt werden,
wenn die Daten von einem Eingabe-Port direkt an den Ausgabe-Port übermittelt
werden. Diese Fähigkeit
wird Vermittlungsschalter-Umgehungsleitweglenkung
genannt, wobei die Daten niemals auf den AIB 5 geladen
werden, sondern einfach an den Ausgabe-Port 13 umgelenkt
werden. Diese Fähigkeit
der vorliegenden Erfindung soll Daten von externen Geräten lesen und
auf ein anderes externes Gerät
schreiben, wobei der AIB 5 vollständig umgangen wird. Der Datenübertragungsblock
wird in Daten-Token aufgeteilt und unter Verwendung der Leitweglenkungsressourcen
in der Datenlenkung 4 direkt in den Ausgabe-Fifo-Puffer gestellt.
Die Informationen über
Datenübertragungsblockgrenzen
werden mit dem Datenübertragungsblock
unterhalten.
-
Kein Ausgabe-Port braucht die gleiche
Kanalkapazität
oder das gleiche Ausgabeprotokoll, wie die Quelle aufzuweisen. Zur
Beherrschung des Unterschieds zwischen der Datenübertragungsblockrate im eingehenden
Datenstrom und der Kapazität
der Datenübertragungsblockrate
des Kanals können Füllsymbole
oder Fülldatenübertragungsblöcke im Kanal
verwendet werden. Diese können
zwischen Datenübertragungsblöcken gesendet
werden, wenn der Ausgabe-Fifo-Zustand anzeigt, dass der Kanal mehr
Daten braucht, als der eingehende Datenstrom bereitstellt. Da die
Ausgabe-Fifo-Puffer 9 und die Füllerfordernisse unabhängig voneinander
sind, können die
Ausgabe-Ports 13 bei Bedarf Füllung einspeisen, um ihre Kanalkapazität ohne Intervention
der CSI 11 zu unterhalten.
-
10A zeigt
ein Ablaufdiagramm der Operation der Statusmeldung an einen oder
mehrere Ausgabe-Ports 13, welche nachfolgend auf die Übermittlung
eines Datenübertragungsblocks
durchgeführt
wird. Die Meldung dieser Informationen unter Verwendung eines Eintrags
in der Ausgabepostfachwarteschlange im zentralen, gemeinsam genutzten Speicher 6 reduziert
den Software-Overhead,
welcher mit der Verwaltung des KAB-Vermittlungsschalters verbunden
ist. Wenn das Ende eines Datenübertragungsblocks
erfasst wird, werden die Adresse des letzten Nachrichtenblocks,
sein Status und die Adresse der nächsten Ausgabepost als Ausgabepoststatus
gespeichert. 10B ist
ein Blockdiagramm, welches die Interaktion der Ausgabestatusmeldung
mit der ODQ und anderen Warteschlangen zeigt.
-
Die Datenübertragungsblöcke werden
in einem Fifo-Puffer 9 für jeden
Ausgabe-Port 13 gespeichert, wie im Blockdiagramm der 11A gezeigt. Die Inhalte
des Fifo-Puffers 2 bestehen aus Dateneinträgen, welche
einen Datenübertragungsblock umfassen.
Mit jedem Dateneintrag wird eine gerade Parität gespeichert. Der letzte Dateneintrag
für einen Datenübertragungsblock
wird eindeutig markiert, indem die gespeicherte Parität so verändert wird,
dass sie ungerade ist, und unter Verwendung des Ein-Bit-Steuerfelds
zur Anzeige des letzten Dateneintrags. Die Grenzen des Datenübertragungsblocks werden
an der Ausgabe des Fifo-Puffers 2 erfasst, indem ein Mehrheitswahlmechanismus
auf die drei Bits der Tag-Informationen angewendet wird: zwei Paritätsbits und
das Bit zur Dateneinteilung in Datenübertragungsblöcke. Die
Mehrheitswahl bringt eine Ebene der Fehlertoleranz in das Verfahren
der Identifizierung der Art des Eintrags ein, und folglich für das Ende
des Datenübertragungsblocks,
indem sie einem der drei Bits eines beliebigen Eintrags erlaubt, fehlerhaft
zu sein, ohne dass der Eintrag unrichtig entweder als Daten oder
als Status identifiziert wird.
-
Die Eingabe des Fifo-Puffers 2 kann
von der DMA-Aktivität als Hauptgerät, vom Datenübertragungsblock-Snooping als ein
Multicast-Folgegerät oder
unter Umgehung des Speichers unmittelbar von einem Eingabe-Port kommen. Es können auch Füll-Datenübertragungsblöcke in den
Ausgabestrom der Datenübertragungsblöcke eingespeist
werden, falls die Steuerungsinformationen des Ausgabe-DMA-Deskriptors
anzeigen, dass ein Füll-Datenübertragungsblock
eingefügt
werden muss. Die Steuerung, welche die Auswahl der Fifo-Datenpfadeingabe
durchführt,
wird in 11B gezeigt.
Ein Füll-Datenübertragungsblock
umfasst einen Füll-Kopf,
welcher als Konfigurationsdaten durch den Ausgabe-Port gespeichert
wird, und ein Füll-Muster,
welches durch die Logik des Ausgabe-Ports erzeugt wird. Es können auch
Füll-Datenübertragungsblöcke unmittelbar
in die Ausgabe eingespeist werden, falls der Status des Fifo-Puffers 2 einen
von zwei Zuständen
anzeigt: „Fifo-Puffer
leer" oder „Fifo-Puffer
fast leer" und die
Ausgabe zum Einfügen
von Füll-Datenübertragungsblöcken konfiguriert
ist.
-
Die Steuerung der Auswahl für die Ausgabestromdaten
wird in 11C beschrieben.
Im Fall von „Fifo-Puffer
leer" ist kein Ausgabedatenübertragungsblock-Strom
vorhanden und es werden Füll-Datenübertragungsblöcke erfordert.
Im Fall von „Fifo-Puffer
fast leer" passt
die Geschwindigkeit des Ausgabestroms der Datenübertragungsblöcke nicht zur
Kanalkapazität,
und es werden Füll-Datenübertragungsblöcke erfordert.
Die Datenübertragungsblöcke können gleichzeitig
mit der Ausgabe eines Füll-Datenübertragungsblocks
in den Fifo-Puffer 2 gestellt werden. Der Zustand „Fifo-Puffer
fast leer" stellt
Hysteresen in der Ausgabesteuerung bereit, indem er dem Fifo-Puffer 2 nicht
erlaubt, Daten zu liefern, bis der Status des Fifo-Puffers anzeigt,
dass sich eine entsprechende Menge von Daten im Fifo-Puffer 2 befindet.
Die Einspeisung von Füll-Datenübertragungsblöcken wird
ohne Intervention der CSI 11 durchgeführt. Da das Folgegerät langsamer ist,
werden zur Auffüllung
der Lücken
Füll-Datenübertragungsblöcke erfordert.
Wenn der Fifo-Puffer leer ist, erhalten die Füll-Datenübertragungsblöcke die Synchronisation.
-
12A zeigt
ein Ablaufdiagramm der Operationen, welche vom Steuergerät 10 der
Ausgabeübermittlungsvorschrift
zur Ausgabe von Daten auf der Grundlage der Übermittlungsvorschrift durchgeführt werden,
wie sie durch die CSI 11 konfiguriert sind. Es wird jede
Kombination von Übermittlungsvorschriften verwendet.
Die Daten werden vom Ausgabe-Fifo-Puffer 9 gepuffert und
ausgegeben, wenn der Datenübertragungsblock
gemäß der Übermittlungsvorschrift
einmal aufgestellt ist. Der Fifo-Puffer 9 muss die Anzahl
der Einträge
erreichen oder überschreiten,
welche durch die CSI 11 konfiguriert sind, bevor ein neuer
Datenübertragungsblock
aufgestellt wird. Die durch 12B, 12C und 12D beschriebenen Protokolle wurden oben
zur Diskussion der entsprechenden Eingabeoperationen beschrieben,
welche in 4B, 4C und 4D gezeigt werden. Die Ausgabeprotokollverarbeitung
unterscheidet sich von der Eingabe dadurch leicht, dass eine Nachspannsequenz
des Datenübertragungsblocks
vorgesehen werden kann, welche einen zyklischer Redundanzcode umfasst.
Die zur Erzeugung dieser Sequenz erforderliche Logik ist inner halb
des Ausgabedatenpfads des Ausgabe-Fifo-Puffers enthalten, da diese
Codesequenz unmittelbar aus den Daten berechnet wird, wenn ein Datenübertragungsblock
zum externen Port weitergegeben wird.
-
12B zeigt
ein Ablaufdiagramm, welches Einzelheiten der einfach begrenzten
oder undifferenzierten Übermittlungsvorschriftsoperationen
zeigt, welche zum Beginnen und zum Beenden eines Datenübertragungsblocks
verwendet werden. Eine programmierbare Datenübertragungsblockeinleitung wird
vorgesehen, wenn es durch die CSI 11 so konfiguriert ist.
Das Ende eines Datenübertragungsblocks kann
entweder durch eine Ende-des-Datenübertragungsblocks-Markierung
oder durch die Ausgabe einer Anzahl von Bytes gleich der maximalen
Datenübertragungsblockgröße, welche
durch die CSI 11 eingestellt ist, auftreten.
-
12C zeigt
ein Ablaufdiagramm der Operationen zum Senden eines Datenübertragungsblocks
aus einem Port mit expliziten Beginn- und Endesymbolen oder Signalprotokoll.
Dieses Protokoll separiert Datenübertragungsblöcke unter
Verwendung von Signalen, welche parallel zu denjenigen sind, welche
zur Übermittlung
von Daten dienen, oder deren Auftreten sich mit Daten gegenseitig
ausschließt
und welche als Nicht-Dateninformationen gekennzeichnet sind. Das
Ende eines Datenübertragungsblocks
kann entweder durch eine Endedes-Datenübertragungsblocks-Markierung
oder durch die Ausgabe einer Anzahl von Bytes gleich der maximalen
Datenübertragungsblockgröße, welche
durch die CSI 11 eingestellt ist, auftreten.
-
12D zeigt
ein Ablaufdiagramm der Operationen zum Senden eines Datenübertragungsblocks
aus einem Port mit eingebettetem Einleitungsprotokoll. Dieses Protokoll
separiert Datenübertragungsblöcke unter
Verwendung einer vordefinierten Einleitungssequenz sowie Leerlaufmustern,
wenn keine Daten zur Ausgabe fertig sind. Das Ende eines Datenübertragungsblocks
kann entweder durch die Markierung auftreten, welche durch die Fifo-Puffereingabe-Tags
vorgesehen sind, oder durch die Ausgabe einer Anzahl von Bytes gleich
der maximalen Datenübertragungsblockgröße, welche
durch die CSI 11 eingestellt ist.
-
Während
die Erfindung unter Verwendung des beispielhaften Szenarios gezeigt
und beschrieben wurde, werden Durchschnittfachleute verstehen, dass
dies nicht die einzige mögliche
Form ist.