-
Diese
Erfindung betrifft im Allgemeinen die Datenpaketvermittlung und
betrifft insbesondere eine Paketverwaltungseinheit für Netzwerke
mit Datenblockübertragung
und Zellenübertragung.
-
Die
grundlegenden Konzepte schneller Paketnetzwerke können in
intelligenten Systemen für
Endanwender in zuverlässigen
digitalen Übertragungseinrichtungen
und in Hochgeschwindigkeitskommunikationssystemen angetroffen werden.
Die Zunahme der Computeranwendungen, die Kommunikation mit hoher
Geschwindigkeit erfordern, die Verbreitung intelligenter PC's und Arbeitsplatzrechner
und die zunehmende Verfügbarkeit
von Hochgeschwindigkeitsübertragungsleitungen
ohne Fehler haben gemeinsam zur Notwendigkeit für eine neue Form für die Vermittlung
bzw. Schalttechnik in Weitbereichsnetzwerken geführt. Diese neue Vermittlungstechnologie
erfordert eine gemeinsame Anschlussbenutzung bzw. Port-Benutzung
und eine gemeinsame Benutzung einer großen Bandbreite auf Grundlage
virtueller Schaltungen mit hoher Geschwindigkeit und geringer Verzögerung.
Die TDM-Vermittlungsschaltungstechnik
bietet die ersten beiden Eigenschaften und die X.25 Paketvermittlung
sorgt für
die beiden letzten Eigenschaften. Die Technologie auf Grundlage
schneller Pakete wurde als eine neue Form der Paketvermittlung" entwickelt, um alle
vier Eigenschaften zu ermöglichen, die
zusammen dazu führen,
dass das schnelle Paketnetzwerk eine ideale Lösung für Datenquellen mit sequenzartigen
bzw. „burst-artigen" Datenverkehr ist,
die im Zusammenwirken mit LAN-WAN-Netzwerken anzutreffen sind.
-
Die
Schnellpakettechnologie bietet die Möglichkeit, die Leistung zu
verbessern (Reaktionszeit) und die Übertragungskosten für eine Reihe
wichtiger Arten von Netzwerkanwendungen deutlich zu senken. Für eine wirksame
Anwendung ist es erforderlich, dass schnelle Paketnetzwerke drei
Bedingungen erfüllen:
(1) Die Endgeräte
müssen
ein intelligentes Protokoll der höheren Schicht abarbeiten; (2)
die Übertragungsleitungen müssen nahezu
fehlerfrei sein; und (3) die Anwendung muss für eine variable Verzögerung tolerant
sein.
-
Andere
Vermittlungstechnologien für
Weitbereichsnetzwerke, etwa die X.25-Paketvermittlung und die TDM-Vermittlungsschaltungstechnologie
bleiben wichtig, wenn die Leitungsqualität nicht so hoch ist, wenn das Netzwerk
selbst eine fehlerfreie Übertragung garantieren
muss oder wenn der Datenverkehr (beispielsweise Video oder Sprache)
für Verzögerungen
nicht tolerant ist.
-
Ein
schnelles Paketnetzwerk stellt eine Dienstleistung im „Paketmodus" bereit, wobei eine
statistische Multiplexverarbeitung und gemeinsame Nutzung von Anschlüssen bzw.
Ports verwendet sind. Anders als bei der X.25-Technologie wird in
dem schnellen Paketnetzwerk eine Verarbeitung auf Ebene der Schicht
3 vollständig
vermieden. Ferner wird lediglich ein Teil der Funktionen der Schicht
2 verwendet, die sogenannten „Kernaspekte", wozu das Prüfen im Hinblick
auf einen zulässigen
fehlerfreien Datenrahmen bzw. Datenblock aber nicht das Anfordern
einer erneuten Übertragung,
wenn ein Fehler ermittelt wird, gehört. Somit werden Protokollfunktionen,
etwa die Sequenznummer, die Fensterrotation, Bestätigungen
und überwachende
Pakete in dem schnellen Paketnetzwerk nicht ausgeführt. Das
Ergebnis des Weglassens so vieler Funktionen in dem schnellen Paketnetzwerk
führt dazu,
dass der Durchsatz (d. h. die Anzahl der Datenblöcke, die pro Sekunde für einen
gewissen Aufwand an Hardware verarbeitet werden können) deutlich
erhöht
ist, da jedes Paket eine deutlich geringere Verarbeitungszeit erfordert.
Daher ist die Verzögerung über ein
schnelles Paketnetzwerk kleiner als bei der X.25-Technologie, obwohl
die Verzögerung
höher ist
als in einem TDM-Netzwerk, das gar keine Verarbeitung ausführt.
-
Um
so viele Funktionen in einem schnellen Paketnetzwerk zu eliminieren,
müssen
die Endgeräte
die Verantwortung für
das Sicherstellen der fehlerfreien Datenübertragung von Gerät zu Gerät übernehmen.
Tatsache ist, dass immer mehr Endgeräte insbesondere solche, die
mit LAN's verbunden
sind, die erforderliche Intelligenz und Verarbeitungsleistung besitzen,
um diese Funktion auszuführen.
-
Die Übertragung
von Blöcken
und Zellen sind die beiden Bereiche der schnellen Pakettechnologien. Bei
der Blockübertragung
wird eine blockgebende bzw. rahmengebende Struktur verwendet, die
eine variable Länge
aufweist im Bereich von nur einigen wenigen Zeichen bis zu über 1000
Zeichen. Dieses Kennzeichen, das auch in X.25-Technologie auftritt,
ist sehr wichtig, damit die Blockübertragung in LANs und anderen
Quellen mit synchronen Datenverkehr zuverlässig arbeitet, die variable
Blockgrößen erfordern.
Es bedeutet auch, dass die in dem Datenverkehr angetroffenen Verzögerungen
(obwohl diese kleiner sind als in der X.25-Technologie) in Abhängigkeit
von den Größen der übertragenen
Blöcke
variiert. Einige Arten an Datenverkehr sind für eine Verzögerung nicht tolerant, insbesonde re
im Hinblick auf eine Verzögerung,
die variabel ist. Sprachdaten sind ein Beispiel dafür und Videodaten
sind ein weiteres Beispiel in dieser Hinsicht. Aus diesem Grund ist
die Blockübertragung
nicht gut geeignet, um einen derartigen auf Verzögerung empfindlichen Datenverkehr auszuführen. Andererseits
erweist sich diese Technologie als gut geeignet für die Erfordernisse
von Datenquellen mit sequenzartigem Verhalten, etwa beim Datenverkehr
zwischen einzelnen LAN's.
-
Im
Vergleich zu X.25-Paketen macht die Blockübertragung eine geringe Änderung
an der Blockstruktur, indem im Kopfbereich am Anfang des Blockes
etwas hinzugefügt
wird. Der Blockübertragungskopfbereich enthält die Datenverbindungskennung
(DLCI), die die virtuelle Schaltungsnummer für die Blockübertragung ist, die einem speziellen
Ziel entspricht. Im Falle einer Netzwerkverbindung zwischen LAN
und WAN bezeichnet die DLCI den Anschluss, mit dem das Ziel-LAN
verbunden ist. Die DLCI ermöglicht
es, dass Daten, die in einem Netzwerkknoten mit Blockübertragung
eintreffen, über
das Netzwerk versendet werden, wobei ein dreistufiger Prozess angewendet
wird:
- 1. Prüfung
der Integrität
des Blockes unter Anwendung der Blockprüfsequenz (FCS), und wenn ein
Fehler erkannt wird, Verwerfen des Blockes.
- 2. Abrufen der DLCI aus einer Tabelle und wenn die DLCI für diese
Verbindung nicht definiert ist, verwerfen des Blockes.
- 3. Übertragen
des Blockes in Richtung seines Zieles durch Aussenden des Blockes
aus dem Anschluss oder der Anschlussstelle, die in der Tabelle spezifiziert
ist.
-
Die
zwei wesentlichen Gründe,
warum durch Blockübertragung
gesendete Daten verworfen werden könnten, sind das Erkennen von
Fehler in dem Block und das Auftreten eines Staus (das Netzwerk
ist überlastet).
Das Verwerfen von Blöcken
beeinflusst nicht die Integrität
der Kommunikation, auf Grund der Intelligenz der Endgeräte, etwa
der PC's, Arbeitsplatzrechner
und der Leitrechner bzw. Hostrechner. Diese intelligenten Geräte arbeiten
mit Mehrschichtprotokollen, die einen Datenverlust in dem Netzwerk
erkennen und diesen beheben können.
Das Protokoll der oberen Schicht in den Endgeräten überwacht die Sequenznummer der
diversen Blöcke,
die gesendet und empfangen werden. Es werden Bestätigungen übermittelt,
um das sendende Endgerät
zu informieren, welche Blockzahlen erfolgreich empfangen wurden.
Wenn eine Sequenznummer fehlt, fordert die Empfangsseite eine er neute
Sendung. Auf diese Weise stellen die Endgeräte sicher, dass alle Blöcke schließlich ohne
Fehler empfangen werden.
-
1 ist
eine Ansicht der Felder des Formats für Blockübertragung bei der Datenverbindungssteuerung
auf höherer
Ebene (HDLC), wobei ein Markierungsbereich bzw. ein Flaggenbereich" zum Abgrenzen der Blöcke verwendet
wird, woran sich der DLCI-Bereich anschließt, der den Adressiermechanismus
der Blockübertragung
repräsentiert.
Die DLCI besteht aus den 6 signifikantesten Bits des zweiten Oktets
plus den vier signifikantesten Bits des dritten Oktets des Blocks
mit Blockübertragung.
Auf die DLCI-Bits des zweiten Oktets folgt das Befehls/Antwort-(C/R)
Indikationsbit. Es können
weitere Bits abhängig
von dem Wert des erweiterten Adressen-(EA) Bits verwendet werden,
um die DLCI über
10 Bits hinaus zu erweitern, um damit eine vollständige DLCI
zu bilden. Die Version mit zwei Oktets der DLCI, die in 1 gezeigt
ist, deckt 1024 Adressen ab. In den vorliegenden Implementierungen
der Blockübertragung
gibt es einige Einschränkungen,
die für
die Zuordnung von DLCI-Werten im Hinblick auf die ANSI-Spezifikation
auferlegt werden. DLCI-0 ist der Wert für die Signalisierung einer
kanalinternen Aufrufsteuerung. DLCI 1 bis 15 und 1008 bis 1022 sind
für künftige Anwendungen
reserviert, und DLCI 1023 ist für
die Kommunikation der lokalen Verwaltungsschnittstelle (LMI) reserviert.
Somit bleiben 992 DLCI's
von 16 bis 1007, die für
Anwenderdaten verfügbar
sind. Die DLCI's
16-991 werden den logischen Verbindungen zugeordnet und die DLCI's 992-1007 werden
für die
Verwaltung der Schicht 2 verwendet.
-
An
die DLCI-Bereiche schließen
sich Bits für
die explizite Benachrichtigung über
einen Stau Vorwärtsrichtung
(FECN) und eine explizite Benachrichtigung über einen Stau nach hinten
(BECN) an. Das FECN-Bit zeigt an, dass Prozeduren zur Vermeidung
von Engpässen
in Richtung des Blockes begonnen werden sollten (Quelle → Netzwerk → Endgerät). Dieses
Bit kann von der Empfangseite verwendet werden, um die Rate des vom
Ziel gesteuerten Senders einzustellen. Die Empfangseite sollte die Übertragung
von Nachrichten, die zu Antworten/Bestätigungen führen, herabsetzen.
-
Das
BECN-Bit gibt an, dass Prozeduren zur Vermeidung von Engpässen in
der entgegengesetzten Richtung des Blockes begonnen werden sollten
(Endgerät → Netzwerk → Quelle).
Dieses Bit kann von der Empfangsseite verwendet werden, um die Rate
der quellenge steuerten Sender einzustellen. Die Quelle sollte alle Übertragungen
zu dem Netzwerk herabsetzen.
-
Das „Eignung
für die
Verwerfung"-(DE)
Bit wird verwendet, um die Eignung eines Blockes für das Verwerfen
in Situationen bei Netzwerkstaus anzugeben. Die angegebenen Blöcke sollten
während
einer Überlastung
vorrangig zu anderen Blöcken
verworfen werden.
-
Das
Informationsfeld mit variabler Länge
enthält
Anwendersteuerdaten und Informationen, die nicht für die Blockübertragung
bewertet werden.
-
Das
Blockprüfsequenz-(FCS)
Feld mit 2 Oktets, das auf das Informationsfeld folgt, wird verwendet,
um zu verifizieren, dass ein Block während der Übertragung nicht verändert wurde.
Das FCS ist das Ergebnis des Anwendens des zyklischen Redundanzprüf-(CRC)
Polynoms auf den Block von dem ersten Bit des Adressenfelds bis
zu dem letzten Bit des Informationsfeldes. Die FCS wird von dem
Quellengerät
berechnet und von dem Zielgerät
erneut berechnet. Wenn die beiden FCS nicht übereinstimmen, wird der Block
verworfen. Auf das FCS folgt die Abschlussmarke bzw. eine Abschlussflagge.
-
Die
Zellenübertragung
ist eine weitere Möglichkeit
der Schnellpakettechnologien. Wie bei der Blockübertragung erfordert auch die
Zellenübertragung
intelligente Endsysteme, eine zuverlässige digitale Übertragungseinrichtung
und eine hohe Bandbreite. Der wesentliche Unterschied zwischen der
Blockübertragung
und der Zellenübertragung
besteht in den Einheiten aus Informationen, die übertragen werden. Während in
der Blockübertragung
Informationen in Blöcken
bzw. Rahmen" mit
variabler Länge übertragen
werden, werden bei der Zellenübertragung
Informationen in Zellen" mit
fixierter Länge übertragen.
-
Das
Blockübertragungsprotokoll
ist gemäß Standards
definiert, wie sie in Tabelle 1 angegeben sind. Die Zellenübertragung
ist in ATM und in den 802.6 DQDB-Standards definiert. Tabelle 1
Organisation | Standard | Beschreibung |
ANSI | T1.606-1990 | digitales
Netzwerk mit integrierten Diensten (ISDN) Blockübertragungsträgerdienst-Plattform
und Dienstleistungsbeschreibung für Blockübertragungsträgerdienste |
ANSI | T151/90-175R4 | Verwendung
zu T1.606 |
ANSI | T151/88-2242 | Blockübertragungsträgerdienst-Architekturplattform
und Dienstleistungsbeschreibung |
ANSI | T151/90-214
(T1.6ca) | DSS1-Kernaspekte
des Blockprotokolls für
Anwender mit Blockübertragungsträgerdienste |
ANSI | T151/90-213
(T1.6fr) | DSS1-Signalisierungsspezifikationen
für Blockübertragungsträgerdienste |
CCITT | I.122 | Plattform
für Bereitstellen
zusätzlicher
Trägerdienstleistungen
in Paketmodus |
CCITT | I.431 | primäre (1544.2048
Kbps) ISDN-Schnittstelle |
CCITT | 0.922 | ISDN-Datenverbindungsschichtspezifikation
für Trägerdienst
im Blockmodus |
CCITT | 0.931 | ISDN-Netzwerkprotokoll |
CCITT | 0.933 | ISDN-Signalspezifikation
für Trägerdienste
im Blockmodus |
Tabelle
1. Blockübertragung
und Freigabestandards
-
Aktuell
sind die Blockübertragungsprotokolle
und Zellenübertragungsprotokolle
in Software eingerichtet und der Durchsatz ist durch die Verarbeitungsleistung
der Systeme beschränkt,
die die Softwareunterstützung
für die
Paketvermittlung bereitstellen. Somit besteht ein Bedarf für eine Blockübermittlung
und Zellenübermittlung,
die in Hardware eingerichtet sind, um damit die Verarbeitungsendstellen
der softwarebasierten schnellen Paketvermittlungsnetzwerke zu eliminieren.
Des weiteren ist es wünschenswert,
eine Paketvorhaltungseinrichtung bereitzustellen, die in der Lage
ist, die Paketadressenübersetzung
und die Paketweiterleitung auszuführen, so dass Blockübertragungsprotokolle
und Zellenübertragungsprotokolle
in Hardware unterstützt werden.
-
EP-A-0 560 706 offenbart
einen Endgerätadapter,
der zwischen einer Datenendeinrichtung (DTE) und einem Telekommunikationsnetzwerk
mit Blockübertragung
(FR) oder einem Telekommunikationswerk mit Multimegabitdatenvermittlungsdienst
(SFDS) als Schnittstelle vorgesehen ist, so dass die Art des Netzwerkes, über das
das DTE kommuniziert für
das DTE durchsichtig ist. Der Endgerätadapter führt das Anpassen der Protokolle
untereinander aus, so dass ein DTE mit Blockübertragung auf ein SFDS Netzwerk
zugreifen kann und so, dass ein DTE mit SMDS auf ein FR-Netzwerk
zugreifen kann. Bei der Adressenzuordnung, die von dem Endgerätadapter
angewendet wird, wird eine parallele Tabellisierungstechnik eingesetzt,
in der die Gefahr der Kollision reduziert wird (wenn zwei oder mehr
Adressen auf den gleichen Tabelleneintrag zugreifen), die übliche Vergleichsfunktion
zum Erkennen einer Kollision vermieden wird sowie auch die übliche Zeigertechnik beim
Auftreten einer Kollision vermieden wird.
-
Es
wird eine Paketverwaltungseinrichtung beschrieben, die Protokolle
für die
Blockübertragung
und Zellenübertragung
in Hardware unterstützt.
-
Es
wird ferner eine Paketverwaltungseinrichtung beschrieben, die Verarbeitungsengstellen,
die mit der schnellen Paketvermittlung verknüpft sind, vermeidet.
-
Diese
und weitere Vorteile werden zumindest teilweise erreicht, indem
ein Paketvermittlungsnetzwerk bereitgestellt wird, das aufweist:
eine Datenempfangseinrichtung zum Konvertieren von Daten, die von
einem sendenden Datenendgerät übertragen
werden, in ein Datenpaket mit einem Adressenfeld, eine Paketpuffereinrichtung
zum zeitweiligen Speichern des Datenpaketes und eine Datensendeeinrichtung
zum Umwandeln des Datenpaketes, das aus der Puffereinrichtung ausgelesen
wird, in die Daten, die zu einem empfangenden Datenendgerät übertragen
werden; ferner wird eine Vorrichtung zur Paketverarbeitung bereitgestellt,
die einen Paketempfänger
zum Empfangen des Datenpaketes aufweist. Das Adressenfeld wird von
dem Datenpaket durch eine Adressenextrahiereinrichtung getrennt.
Das extrahierte Adressenfeld bezeichnet einen Eintrag in einem Übersetzungsspeicher,
der übersetzte
Adressendaten und Steuerdaten enthält. In Reaktion auf die Steuerdaten
ersetzt eine Adressensubstitutionsschaltung das Adressenfeld in
dem Datenpaket durch die übersetzten
Adressendaten. Eine Paketsteuerschaltung überträgt das Datenpaket mit den übersetzten
Adressendaten in die Paketpuffereinrichtung. In Reaktion auf eine
Steuernachricht aus der Paketsteuerschaltung liest eine Paketsendeeinrichtung
das Datenpaket aus der Paketpuffereinrichtung aus und überträgt das Datenpaket an
die Datensendeeinrichtung.
-
Das
Datenpaket kann einen Datenblock aufweisen, der so formatiert ist,
dass die Blockübertragungsstandards
erfüllt
werden, oder das Datenpaket umfasst eine Datenzelle, die formatiert
ist, um die Zellenübertragungsstandards
zu erfüllen.
-
Im
Hinblick auf die Netzwerksteuerungs- und Unterhaltfunktionen bzw.
Verwaltungsfunktionen gilt, dass der Übersetzungsspeicher das Datenpaket
zu einem Steuerprozessor des Netzwerkes in Reaktion auf die Steuerdaten
sendet, die in der Zelle enthalten sind, die durch das Adressenfeld
des Datenpakets bezeichnet ist. Der Übersetzungsspeicher wird durch
den Steuerprozessor in Reaktion auf das Datenpaket aktualisiert.
-
Ein
Blockverarbeitungssystem für
ein Blockübertragungsnetzwerk
umfasst: eine Einrichtung zum Empfangen von Datenblöcken mit
Eingangsadressenfeldern, die formatiert sind, um eine Datenblockvermittlung über das
Blockübertragungsnetzwerk
bereitzustellen. Eine Einrichtung, die auf die Empfangseinrichtung reagiert,
trennt die Eingangsadressenfelder von den Datenblöcken. Eine
Speichereinrichtung, die auf die Eingangsadressenfelder reagiert,
führt der
Empfangseinrichtung die Zieladressenfelder und Steuerdaten zu. Eine Blocksteuereinrichtung,
die auf die Speichereinrichtung reagiert, ersetzt die Eingangsadressenfelder
durch die Zieladressenfelder. Eine Puffereinrichtung, die auf die
Blocksteuereinrichtung reagiert, speichert temporär die Datenblöcke, die
die Zieladressenfelder aufweisen. Eine Datenblocksendeeinrichtung,
die durch die Steuerdaten bezeichnet ist, liest die Datenblökke aus
der Puffereinrichtung aus und sendet die ausgelesenen Datenblöcke entsprechend
ihrer Zieladressenfelder.
-
Vorzugsweise
speichert die Speichereinrichtung die Zieladressenfelder und die
Steuerdaten in Zellen, die durch die Eingangsadressenfelder gekennzeichnet
sind. Die Empfangseinrichtung kann veranlassen, dass Datenblöcke verworfen
werden, wenn die Steuerdaten angeben, dass ihre Eingangsadressenfelder
nicht aktiv sind. Die Datenblocksendeeinrichtung liest die Datenblöcke aus
der Puffereinrichtung in Reaktion auf eine Steuernachricht von der
Datenblocksteuereinrichtung aus. Die Steuernachricht kann Adressen
von Puffereinheiten in der Puffereinrichtung enthalten, von denen
Datenblöcke
auszulesen sind.
-
Die
Datenblocksendeeinrichtung kann ein FIFO-Register aufweisen, das
die Datenblöcke,
die von der Puffereinrichtung zugeleitet werden, speichert. Die
Datenblöcke
werden in dem FIFO-Register gespeichert, bis das FIFO-Register voll
ist oder bis ein vollständiger
Datenblock in dem FIFO-Register angesammelt ist.
-
Die
Speichereinrichtung kann die in den Datenblöcken enthaltene Steuerinformation
an einen Steuerprozessor zuführen,
der den Inhalt der Speichereinrichtung aktualisiert.
-
Für ein Paketvermittlungsnetzwerk
mit einer Empfangseinrichtung zum Konvertieren von Daten, die von
einem sendenden Endgerät
empfangen werden, in ein Datenpaket in dem Adressenfeld, mit einer
Paketpuffereinrichtung zum zeitweiligen Speichern des Datenpaketes
und mit einer Datensendeeinrichtung zum Konvertieren des Datenpaketes,
das aus der Puffereinrichtung ausgelesen wird, in Daten, die an
ein empfangendes Datenendgerät übertragen
werden, wird ein Verfahren zur Paketverarbeitung beschrieben, das
umfasst:
Empfangen des Datenpakets,
Separieren des Adressenfeldes
von dem Datenpaket,
Zuführen
von übersetzten
Adressendaten und Steuerdaten, die in einer Speicherzelle gespeichert
sind, die durch das Adressenfeld bezeichnet ist,
Ersetzen des
Adressenfeldes in dem Datenpaket durch die übersetzten Adressendaten,
Übertragen
des Datenpaketes mit den übersetzten
Adressendaten zu der Paketpuffereinrichtung,
Auslesen des Datenpaketes
aus der Paketpuffereinrichtung in Reaktion auf die Steuerdaten,
und
Übertragen
des Datenpakets zu der Datensendeeinrichtung.
-
In
einer bevorzugten Ausführungsform
wird die Gültigkeit
der übersetzten
Adressendaten überprüft, um den
Datenblock zu verwerfen, wenn die übersetzten Adressendaten nicht
aktiv sind. Ferner kann ein Paketprüffeld des Datenpaketes überprüft werden,
um das Datenpaket zu verwerfen, wenn das Paketprüffeld einen Übertragungsfehler
anzeigt. Ferner kann das Überprüfen vorgesehen
werden, ob die Paketpuffereinrichtung Speicherplatz verfügbar hat,
um das Datenpaket zu speichern, um damit das Datenpaket zu verwerfen, wenn
die Paketpuffereinrichtung keinen verfügbaren Speicherplatz aufweist.
-
Die
Datenblöcke
können
in einem FIFO-Register zwischengespeichert werden. Das Überprüfen, ob das
FIFO-Register voll ist oder ob ein vollständiger Datenblock in dem FIFO-Register gespeichert
ist, kann ausgeführt
werden, bevor der Datenblock an die Sendeeinrichtung übertragen
wird.
-
In
den begleitenden Zeichnungen zeigen beispielhaft:
-
1 ein
Diagramm, das ein Blockformat in einem Blockübertragungsnetzwerk zeigt.
-
2 eine
Ansicht, die die allgemeine Architektur eines Vermittlungsnetzwerks
gemäß der vorliegenden
Erfindung zeigt.
-
3 eine
Tabelle in einem XLAT-RAM.
-
4 eine
Schaltungsansicht, in der der FRYPAM-Sendeabschnitt aus 2 detaillierter
gezeigt ist.
-
Obwohl
die Erfindung im Allgemeinen auf das Gebiet der Datenpaketbearbeitung
angewendet werden kann, betrifft das vorliegende Beispiel teilweise
eine Version, in der die über
das Paketvermittlungsnetzwerk übertragenen
Datenpakete das Blockübertragungs-HDLC-Format besitzen,
das in 1 gezeigt ist. Obwohl daher dieses Beispiel der
Erfindung das Gebiet der Blockübertragung
betrifft, sollte es selbstverständlich
sein, dass die Erfindung auch in breiterer Weise Anwendung finden
kann.
-
In 2 sind
in einem Blockübertragungsnetzwerk
Leitungsschnittstellengeräte
(LID) LID0 bis LIDn über
Eingabe/Ausgabe-(I/O) Kommunikationsleitungen mit Endgeräten verbunden.
Um die Beschreibung klarer zu gestalten, zeigt 2 einen
Empfangsschnittabschnitt und einen Sendeabschnitt der LID als separate Blöcke 40-0–40-N und 50-0–50-N,
die mit Eingangskommunikationsleitungen 42-0–42-n und
Ausgangskommunikationsleitungen 52-0–52-0 verbunden sind.
Es sollte jedoch beachtet werden, dass die LID's 40 und 50 als integrale
Bauelemente vorgesehen sein können,
um damit die bi-direktionalen Leitungsschnittstellen mit einem I/O-Kommunikationsbus
zu bilden. Die LID's
können
das Netzwerk als Schnittstelle mit einem speziellen Datenendgerät verbinden,
beispielsweise mit syn chronen, asynchronen Endgeräten oder
T1-Leitungen, indem die empfangende Seite die physikalische Übersetzung
der Information auf den Eingangsleitungen in ein Taktsignal CLK
und Daten als HDLC-Blöcke
mit dem in 1 gezeigten Format durchführt. Auf
der Senderseite werden die Blockdaten im HDLC-Format und das Taktsignal
CLK in Daten umgewandelt, die für
ein Endgerät geeignet
sind. Die Art der Übersetzung
ist speziell für
die Leitung ausgelegt, mit der eine Schnittstellenverbindung herzustellen
ist. Dazu kann eine gewisse Kapazität an Pufferspeicher erforderlich
sein, um den Jitter auf der Leitung, die Übertragungsbearbeitungszeit,
etc. zu kompensieren. Im Falle eines asynchronen Datenendgerätes ist
eine Konvertierung von asynchronen Daten in das HDLC-Format durchzuführen. Das
synchrone Datenendgerät
kann ein Zeitfenster für
die HDL-Umwandlung erfordern. Um eine Zellenübertragungsvermittlung zu unterstützen, können die
LID's die Zusammenstellung
und das Auseinandernehmen von Zellen zusätzlich zu den Leitungsschnittstellenfunktionen
ausführen.
-
Daher
muss die spezielle Art der LID's
das spezielle Endgerät
unterstützten.
Da die Ausgänge
der LID's einheitlich
Blockdaten im HDLC-Format und ein Taktsignal bereitstellen, kann
eine modulare Vermittlungsstelle bzw. Schaltstelle für allgemeine
Zwecke vorgesehen werden, indem die geeigneten LID's für die speziellen
Leitungsschnittstellenerfordernisse installiert werden. Dies reduziert
die Systemkosten, indem die gleichen Hardwarekomponenten für jedes
LID gleichermaßen
verwendet werden, unabhängig
von der LID-Datenrate. Der Aufbau der diversen speziellen LID's ist in der anhängigen Anmeldung
mit dem Titel „Leitungsschnittstelleneinrichtung
für schnelle
Paketnetzwerke" beschrieben,
die gleichzeitig eingereicht wurde und hiermit durch Bezugnahme
mit eingeschlossen ist.
-
Die
Datenblöcke,
die über
das Vermittlungsnetzwerk übertragen
werden, werden in einem Blockpuffer RAM 46 gespeichert,
der mit den LID's über entsprechende
Blockübertragungspaketverwaitungsgeräte (FRYRAM)
verbunden ist. Die empfangenden FRYPAM-Abschnitte 44-0 bis 44-N stellen
eine Verwaltung der Blockwarteschlange dar, die von den empfangenden
LID-Abschnitten 40-0 bis 40-N übertragen werden. Die übertragenden
FRYRAM-Abschnitte 54-0 bis 54-N übertragen
die aus dem Blockpuffer RAM 46 ausgelesenen Blöcke in die
entsprechenden LID-Abschnitte 50-0 bis 50-N.
-
Wie
zuvor angegeben ist, beinhaltet eine Eingabe zu dem empfangenden
LID von dem sendenden FRYPAM Blockdaten im HDLC-Format und ein Taktsignal
CLK. Das FRYPAM überprüft das FCS-Feld
des Blockes, der eine zyklische Redundanzkodierung (CRC) aufweisen
kann. Der Block wird verworfen, wenn dessen CRC einen Fehler aufweist.
Ferner extrahiert das FRYPAM das 1-Bit-DLCI-Feld des empfangenen
Blockes und verwendet diesen Wert als die Adresse für einen Übersetzungs-(XLAT)
RAM 48, der mit jedem empfangenden FRYPAM verbunden ist.
-
Jeder
der Übersetzungs-RAM's 48-0 bis 48-N ist
entsprechend mit den FRYPAM's 44-0 bis 44N verbunden
und umfasst eine Tabelle bzw. Nachschlagtabelle, die in 3 gezeigt
ist, die eine Liste aus Zieladressen, verbindungsaktiven Bits, Anschlussauswahlfeldern
und Steuerfeldern enthält.
Wenn Blöcke
von dem FRYPAM empfangen werden, liefert das extrahierte DLCI-Adressenfeld
einen Index für
eine neue Zieladresse in der Tabelle. Die neue Zieladresse wird
aus dem Übersetzungs-RAM
ausgelesen, um die Adresse in dem empfangenden Block zu ersetzen.
Der gleiche Index wird verwendet, um den Zielanschluss auszuwählen und um
zusätzliche
Funktionen zu bestimmen, die an dem empfangenden Block auszuführen sind.
Wenn das Bit „Verbindung
aktiv" angibt, dass
die DLCI nicht aktiv ist, wird der Block verworfen.
-
Wenn
der Block zu übertragen
ist, wird dessen DLCI durch die neue Zieladresse ersetzt, und das
empfangende FRYPAM erzeugt ein Schreibsteuersignal WR CNTL und ein
Adressiersignal ADDR, um die neue Adresse zusammen mit dem verbleibenden
Datenblock in die Speicherstelle des Blockpuffer-RAM zu schreiben.
Wenn ein vollständiger
Block in den Blockpuffer-RAM gespeichert ist, sendet das empfangende
FRYPAM eine Paketverfügbarkeitsnachricht
an das sendende Ziel-FRYPAM über
eine Kommunikationsverbindung 56 zwischen den FRYPAM's, wobei die Verbindung
alle sendenden und empfangenden FRYPAM's verbindet. Die Identifizierungsnummer
des Ziel-FRYPAM wird aus der Tabelle in dem Übersetzungs-RAM ausgelesen.
Die Paketverfügbarkeitsnachricht
umfasst die Adresse des Blocks in dem Blockpuffer-RAM und die Byteanzahl, die
damit die Länge
des Blockes angibt. Das sendende FRYPAM enthält eine Sendewarteschlange
für alle
Blöcke,
die zu übertragen
sind. Es wird ein Lesesteuersignal RD CNTL und ein Adressiersignal
ADDR erzeugt, um die Blöcke
aus den Blockpuffer-RAM 46 auszulesen und diese an das
entsprechende LID 50 in dem HDLC-Format (HDLC-Daten) zusammen
mit einem Taktsignal CLK zu senden. Die sendenden LID's wandeln die HDLC-Daten
von den FRYPAM's
in das Format um, das für
die spezielle Leitungsschnittstelle geeignet ist. Diese Information
wird dann über
die Kommunikationsleitungen 42 zu dem empfangenden Endgerät oder Da tenendgerät übertragen.
Wie die LID's können die
Empfangs- und Sendeabschnitte der FRYPAM's auch als integriertes Gerät verwirklicht
sein. Die Blockverarbeitungsprozedur, die von den empfangenden und
sendenden FRYPAM's
ausgeführt
wird, sowie deren Aufbau wird nachfolgend detaillierter beschrieben.
-
Wenn
die Tabelle in dem Übersetzungs-RAM
anzeigt, dass der empfangende Block Steuer- oder Verwaltungsinformationen enthält, sendet
das Sende-FRYPAM diesen Block zu einem Steuer- und Verwaltungsprozessor 60,
der die Steuer- und Verwaltungsoperationen in dem vermittelnden
Netzwerk handhabt. Der Prozessor 60 verwendet die Steuer-
und Verwaltungsdatenblöcke,
um den Inhalt der Übersetzungs-RAM's in Echtzeit zu
aktualisieren, wenn virtuelle Verbindungen geändert werden. Der Prozessor
kann auch eine Verarbeitung von Aufrufprozessen durchführen, um
Vermittlungsdienstleistungen zu unterstützen und auf Verwaltungs- bzw.
Wartungsoperationen zu reagieren oder diese über das Netzwerk (beispielsweise
Rückkopplungen
oder Fehlerzahlen) zu initiieren. Ferner überträgt der Steuer- und Leitungsprozessor 60 DLCI-
und Leitungsschnittstellenparameter an die LID's an eine Verbindung 58 der
LID's untereinander,
wodurch alle LID's untereinander
und mit dem Prozessor 60 verbunden sind.
-
Wie
zuvor angegeben, schreiben die empfangenden FRYPAM's die empfangenen
Blöcke
in den Blockpuffer-RAM 46. Da mehrere FRYPAM's in einem gemeinsamen
Blockpuffer-RAM
schreiben, der mehrere Blockpuffer aufweist, bietet eine Blockpufferverwaltungseinheit 62,
die eine dynamische Liste verfügbarer Blockpuffer
des RAM's unterhält, eine
Zuweisung der Blockpuffer für
den Betrieb der empfangenden FRYPAM's. Die Kommunikation zwischen den FRYPAM's und der Blockpufferverwaltungseinheit
findet über
eine Blockpufferzuordnungsverbindung 64 statt, die alle
FRYPAM's untereinander
und mit der Blockpufferverwaltungseinheit 62 verbindet. Über diese
Verbindung schicken die sendenden FRYPAM's Zuordnungssignale, die bewirken, dass
die Blockpufferverwaltungseinheit die zugewiesenen Puffer freigibt,
wenn die Daten über
die Leitung gesendet sind. Die Blockpufferverwaltungseinheit versucht
ständig,
Puffer für
alle empfangenden FRYPAM's
bereitzustellen. Wenn keine Puffer verfügbar sind, werden die empfangenen
Blöcke
verworfen. Allen Blöcken
wird die gleiche Menge an Speicherplatz in dem Blockpuffer-RAM zugewiesen.
Dieser Speicherplatz ist ausreichend groß, um den größten Block,
der in dem Netzwerk auftritt (typischerweise 4K Bytes) zu speichern.
Wie nachfolgend detaillierter gezeigt ist, kann die Zuordnung durch
Hardware erfolgen.
-
Da
die Pufferzuordnungsgröße für jeden
Block festgelegt ist, ist es möglich,
56 Byte-Blöcke
in dem Block-Puffer-RAM zuzuweisen bzw. zu reservieren, um damit
eine Zellenübertragungsvermittlung
zu unterstützen.
In diesem Falle können
die LID's die Zellenzusammenstellung
und die Zellenzerlegung zusätzlich
zu den Leitungsschnittstellenfunktionen ausführen. Des weiteren können die
LID's die Adressierinformation
aus dem Zellenkopfbereich herauslösen und diese Daten in einen
Block im HDLC-Format mit festgelegter Länge umwandeln. Somit werden
die FRYPAM-Funktionen in der gleichen Weise für die Blockübertragung ausgeführt. Der
Aufbau und die Funktionsweise des in 2 gezeigten
Systems sind detaillierter in der anhängigen Anmeldung mit dem Titel „modulare
Architektur für
schnelles Paketnetzwerk",
die gleichzeitig eingereicht wurde und hiermit mit Bezugnahme eingeschlossen
ist, offenbart.
-
Es
wird nun auf die 4 in den Zeichnungen verwiesen,
worin der empfangende Abschnitt 44 des FRYPAM's gezeigt ist, das
mit dem XLAT RAM 48 in Wechselwirkung tritt. Wie zuvor
erläutert
ist, erhält
das FRYPAM Daten im HDLC-Format, wie in 1 gezeigt
ist, und es wird auch ein Taktsignal zugeführt. Eine Empfangsschaltung 402 empfängt den
HDLC-Block und das
Taktsignal und prüft
die CRC-Information in dem FCS-Feld. Die empfangene Information
wird einer empfangenden Zustandsmaschine 404 zugeführt, die
die DLCI-Übersetzungsprozedur
steuert. Wie in 1 gezeigt ist, enthalten zwei
8-Bit-Bytes, die auf das Flaggenfeld folgen, eine 10-Bit-DLCI.
-
Im
Zustand 0 wartet die empfangende Zustandsmaschine auf die Flagge
bzw. Marke des HDLC-Blocks. Wenn die Flagge erkannt wird, geht die
Zustandsmaschine in den Zustand 1 über.
-
Im
Zustand 1 überprüft die Zustandsmaschine 404 das
nächste
Byte des Blocks. Wenn das nächste Byte
eine Flagge ist, bleibt die Maschine im Zustand 1. Wenn das nächste Byte
einen Abbruchstatus angibt, geht die Maschine zum Zustand 0 zurück. Wenn
das nächste
Byte Daten enthält,
werden diese zu einem ersten Bytesignalspeicher 406 über einem
Multiplexer 408 übertragen,
und die Zustandsmaschine geht zum Zustand 2 weiter. Ein Byte-Zähler 414 zählt die
Datenbytes, die von der Zustandsmaschine bearbeitet werden, wobei
mit dem ersten Datenbyte begonnen wird.
-
Im
Zustand 2 überprüft die empfangende
Zustandsmaschine das nächste
Byte des Blocks. Wenn das nächste
Byte eine Flagge ist, kehrt die Maschine zum Zustand 1 zurück. Wenn
das nächste
Byte einen Abbruchstatus angibt, kehrt die Maschine zum Zustand
0 zurück.
Wenn das nächste
Byte ein Datenbyte ist, wird dieses zu einem zweiten Bytesignalspeicher 410 über einen
Multiplexer 412 übertragen,
und die Maschine geht zum Zustand 3 weiter.
-
Im
Zustand 3 verschiebt die Zustandsmaschine 404 die 16 Bit
an Daten aus dem ersten und dem zweiten Bytesignalsspeicher 406 und 410 über eine
DLCI-Extrahiereinheit 416, um das empfangene 10-Bit-DLCI-Feld
zu extrahieren. Über
einen Multiplexer 418 wird dieser 10-Bit-Wert als Adresse
dem Adresseneingang des XLAT-RAM's 48 zugeführt. Gleichzeitig
sendet die empfangende Zustandsmaschine über einem Multiplexer 420 ein
Leseaktivierungssignal an den XLAT-RAM 48, um Daten aus
der Speicherstelle auszulesen, die die Adresse besitzt, auf die
der 10-Bit-DLCI-Wert zeigt.
-
Wie
zuvor erläutert
und in 3 gezeigt ist, enthält der XLAT-RAM eine Liste
aus Zieladressen, Verbindungsaktiv-Bits, Anschlussauswahlfeldern
und Funktionen, die an den empfangenen Datenblöcken auszuführen sind. Der ermittelte DLCI-Wert
liefert einen Index, um die dem empfangenen Block entsprechende
Liste auszulesen. Die neue Zieladresse, die aus der Liste ausgelesen
wird, wird einem Signalspeicher 422 eines Mischers 424 zugeführt. Die
Steuerinformation, die aus dem XLAT-RAM ausgelesen wird, wird in
einen Steuerinformationssignalspeicher 426 eingeladen.
Wenn der XLAT-RAM angibt, dass der empfangene Block ein Steuerblock
ist, der Steuer- und Leitungsinformation enthält, wird der Steuerblock über einen
Puffer 428 dem Steuer- und Verwaltungsprozessor 60 zugeführt. Der
Puffer 428 wird verwendet, um zu verifizieren, dass die in
den XLAT-RAM geschriebenen Daten korrekt sind.
-
Wie
zuvor erläutert
ist, ist der Steuer- und Verwaltungsprozessor 60 für das Aktualisieren
der in dem XLAT-RAM gespeicherten Information verantwortlich. Der
Prozessor sendet ein Adressensignal über den Multiplexer 418,
das Leseaktivierungssignal über
den Multiplexer 420, ein Schreibaktivierungssignal und
zu schreibende Daten zu dem XLAT-RAM 448. Der Prozessor 60 aktualisiert
die DLCI, den Aktivitätsstatus
und die Zielparameter, die in dem XLAT-RAM gespeichert sind, und
initialisiert den XLAT-RAM auf einen vorgegebenen Zustand, nachdem
die Versorgungsspannung zugeschaltet ist oder nachdem eine Rücksetzbedingung aufgetreten
ist. Ferner kann der Steuer- und Verwaltungsprozessor auch auf den
XLAT-RAM zugreifen, um einen Speichertest auszuführen und um Verbindungsinformationen
in Echtzeit über
die Einheiten 428 und 420 abzurufen.
-
Der
Steuerinformationssignalspeicher 426 versorgt die empfangende
Zustandsmaschine 404 mit der Steuerinformation, um zu bestimmen,
ob die neue Zieladresse aktiv ist oder nicht. Wenn dies der Fall
ist, liefert die Zustandsmaschine ein Signal zum Aktivieren des
Ersetzens an den Mischer 424, um die neue 10-Bit-Zieladresse
von dem Signalspeicher 422 in das aktuelle DLCI-Feld in
dem ersten und dem zweiten Bytesignalspeicher 406 und 410 erneut
zu schreiben. Der Bytezähler 414 wird
auf zwei gesetzt und die empfangende Zustandsmaschine geht zum Zustand
4 weiter, wobei ein Startzuordnungssignal einer Blocksteuerzustandsmaschine 430 zugeführt wird,
um den Transfer des empfangenen Datenblocks von dem Blockpuffer-RAM 46 zu
beginnen.
-
Wenn
die Steuerinformation zeigt, dass die neue Zieladresse nicht aktiv
ist, kehrt die empfangende Zustandsmaschine in den Zustand 0 zurück. Im Zustand
4 bestimmt die empfangende Zustandsmaschine 404, ob ein
nächstes
Byte des Datenstromes empfangen wird oder nicht. Wenn dies der Fall
ist, überprüft die empfangende
Zustandsmaschine dieses Byte. Wenn dieses Byte eine Flagge ist,
kehrt die Maschine zum Zustand 1 zurück. Wenn das Byte den Abbruchstatus
angibt, kehrt die Maschine in den Zustand 0 zurück. Wenn das Byte ein Datenbyte
aus dem HDLC-Informationsfeld ist, werden die Daten in ein FIFO-Register 432 geschrieben
und der Bytezähler 414 wird
erhöht.
Wenn das nächste
Byte als CRC-Daten aus dem ersten FCS-Feld erkannt wird, werden
diese CRC-Daten nicht gespeichert, und der Bytezähler 414 wird nicht
erhöht.
Wenn schließlich
das nächste
Byte CRC-Daten aus dem zweiten FCS-Feld enthält, werden die CRC-Daten wiederum
nicht gespeichert, und der Bytezähler 414 wird
nicht erhöht,
jedoch sendet die empfangende Zustandsmaschine 404 den
CRC-Prüfstatus
und die Bytezahl des Bytezählers 414 an
die Blocksteuerzustandsmaschine 430 und kehrt wiederum
in den Zustand 0 zurück.
Wenn die Blocksteuermaschine 430 eine Fehlerbedingung anzeigt,
geht sie in den Zustand 0 über,
um den Block zu verwerfen.
-
Die
Blocksteuermaschine 430 ist für das Übersetzen der DLCI und die
Vorbereitung der Daten für
das Übertragen
an den Blockpuffer-RAM verantwortlich. Des weiteren versucht die
Blocksteuerzustandsmaschine, die Daten zum Blockpuffer-RAM zu verschieben
und informiert das Ziel-FRYPAM, dass ein neuer Block für das Senden
verfügbar
ist.
-
Im
Zustand 0 wartet die Blocksteuermaschine auf das Startzuordnungssignal
aus der empfangenden Zustandsmaschine 404. Wenn das Signal
empfangen wird, geht die Blocksteuermaschine in den Zustand 1 über.
-
Im
Zustand 1 fordert die Blocksteuermaschine über die Blockpufferzuordnungsverbindung 64 die Blockpufferverwaltungseinheit 62 auf,
einen Puffer in dem Blockpuffer-RAM für den empfangenden Datenblock zu
reservieren. Wenn die Blockpufferwaltungseinheit in Reaktion darauf
eine Pufferadresse sendet, wird die Adresse gespeichert und die
Puffersteuermaschine geht in den Zustand 2 über. Wenn in Reaktion darauf
die Blockpufferwaltungseinheit angibt, dass kein Speicherplatz in
dem Blockpuffer-RAM verfügbar
ist, sendet die Puffersteuermaschine eine Fehlernachricht an die
empfangende Zustandsmaschine 404, um den Block zu verwerfen,
und geht dann in den Zustand 0 über.
-
Im
Zustand 2 sendet die Puffersteuermaschine ein Steuersignal an einen
Multiplexer 434, um das Schreiben der in dem ersten und
dem zweiten Bytesignalspeicher 406 und 410 gespeicherten
Werte in den Blockpuffer-RAM unter Verwendung der Pufferadresse
zu aktivieren (Adresse aus der Blockpufferverwaltungseinheit mal
die Blockpuffergröße). Danach
geht die Blocksteuermaschine in den Zustand 3 über.
-
Im
Zustand 3 sendet, wenn Daten in dem FIFO-Register 432 sind,
die Blocksteuermaschine ein Steuersignal an den Multiplexer 434,
um das Schreiben der in dem FIFO-Register gespeicherten Daten in
den Blockpuffer-RAM zu initialisieren. Wenn anstelle von Informationsfelddaten
CRC-Daten empfangen wurden und diese nicht korrekt sind, geht die
Blocksteuermaschine in den Zustand 4 über. Wenn die empfangene CRC jedoch
korrekt ist, geht die Blocksteuermaschine in den Zustand 5 über.
-
Im
Zustand 4 wird über
die Blockpufferzuordnungsverbindung 64 eine Blockpufferfreigabenachricht
an die Blockpufferverwaltungseinheit ausgegeben, um den reservierten
Puffer freizugeben.
-
Im
Zustand 5 wird über
die Zwischen-FRYPAM-Verbindung 56 eine Paketverfügbarkeitsnachricht
zu dem bezeichneten Ziel-FRYPAM gesendet, um zu informieren, dass
der empfangene Block für
das Senden verfügbar
ist. Die Kennungsnummer des Ziel-FRYPAM wird aus dem Steuerinformationssignalspeicher 426 ausgelesen,
der diese Nummer aus dem XLAT-RAM 48 empfängt. Die
Paketverfügbarkeitsnachricht
enthält die
Pufferadresse und die Byteanzahl des Zählers 414.
-
Wenn
das bezeichnete Ziel-FRYPAM nicht in der Lage ist, den Block zu
senden, sendet sie eine negative Bestätigungsnachricht. In Reaktion
darauf geht die Blocksteuermaschine in den Zustand 4 über, um
den reservierten Puffer freizugeben. Wenn das zugeordnete Ziel-FRYPAM für die Übertragung
bereit ist, geht die Blocksteuermaschine wieder in den Zustand 0 über.
-
Gemäß 5 umfasst
der Sendeabschnitt 54 des Ziel-FRYPAM ein FIFO-Register 502,
das mit einem HDLC-Sender 504 gekoppelt ist, der die Blockbildung
nach HDLC und eine CRC-Erzeugung bereitstellt, um den HDLC-Datenblock
zu bilden, der zusammen mit einem Taktsignal zu dem LID gesendet
wird.
-
Das
FIFO-Register 502 empfängt
den aus dem Blockpuffer-RAM ausgelesenen Datenstrom, um eine Kompensation
für Blockpufferzugriffszeiten
zu ermöglichen,
wenn mehrerer FRYPAM's
auf den gemeinsamen Blockpuffer-RAM zugreifen. Da ferner der Blockpuffer-RAM Daten mit einer
Bitbreite von 16, 32 oder größer bereitstellen
kann, passt das FIFO-Register 502 den
Datenstrom an den HDLCC-Sender an, der auf Basis einzelner Bytes
operiert. Somit können
mehrere Bytes bei jedem Transfer übertragen werden, um einen
effizienteren Zugriff auf den Blockpuffer-RAM zu ermöglichen.
Das FIFO-Register 502 sollte ausreichend groß sein, so
dass sichergestellt ist, dass die Zugriffszeit für den Blockpuffer-RAM dazu
führt,
dass das FIFO-Register während
des Übertragens
eines Blockes nicht geleert wird. Ansonsten würde der HDLC-Sender 504 nicht
ausreichend mit Daten versorgt, und wäre gezwungen, möglicherweise
fehlerhafte Daten zu dem LID zu senden. Wenn eine derartige Bedingung
auftritt, sendet der HDLC-Sender eine nicht korrekte CRC, die bewirkt,
dass der Block verworfen wird. Der aktuelle Block würde dann
erneut gesendet werden.
-
Die
Paketverfügbarkeitsnachricht
aus der Zwischen-FRYPAM-Verbindung wird von einer Sendewarteschlangenhandhabungseinheit 506 empfangen,
die eine Sendewarteschlange steuert, die sich als Folge der Anforderungen
für Blockübertragungen
bildet. Die Sendewarteschlangenhandhabungseinheit ist ferner dafür verantwortlich,
die Sendewarteschlange beim Einschalten oder nach einer Zurücksetz-Bedingung
zu löschen. Alle
FRYPAM's besit zen
jeweils eine einzigartige physikalische Adresse, die durch externe
Mittel programmierbar ist, beispielsweise Hardware-Adressenstreifen
oder softwareadressierbare Signalspeicher. Wenn eine Paketverfügbarkeitsnachricht
an dem adressierten FRYPAM eintrifft, fügt die Sendewarteschlangenhandhabungseinheit 506 diese
Anforderung der Sendewarteschlange, die in einem Register 508 gespeichert
ist, hinzu, wobei dieses Register ein FIFO-Register oder ein ROM sein kann, der
in der Lage ist, mehr als eine Anforderung zu speichern. Wenn das
Sendewarteschlangenregister voll ist, sendet die Handhabungseinheit
eine negative Bestätigungsnachricht
an das Quellen-FRYPAM, wodurch bewirkt wird, dass der Block verworfen wird.
Wenn das Sendewarteschlangenregister leer ist, sendet der HDLC-Sender 504 Marken
bzw. Flaggen.
-
Die
Sendewarteschlange wird einer sendenden Zustandsmaschine 510 zugeführt, die
den Strom aus Blöcken
steuert, die von dem Blockpuffer-RAM über den HDLC-Sender zu dem
entsprechenden LID zugeführt werden.
Die Zustandsmaschine entfernt auch Sendewarteschlangeneinträge und gibt
die reservierten Puffer in den Blockpuffer-RAM frei, wenn der gesamte
Block zu dem LID gesendet ist.
-
Wenn
das Sendewarteschlangenregister 508 leer ist, befindet
sich die sendende Zustandsmaschine 510 im Zustand 0, wobei
auf Anforderungen (Paketverfügbarkeitsnachrichten)
aus der Zwischen-FRYPAM-Verbindung gewartet wird. Wenn eine Anforderung
in die Sendewarteschlange eingespeist wird, geht die Zustandsmaschine
in den Zustand 1 über.
-
Im
Zustand 1 ist liest die Zustandsmaschine 510 die Pufferadresse
und die Bytezahl, die in der Paketverfügbarkeitsnachricht enthalten
sind und in die Sendewarteschlange eingestellt wurden, und berechnet
die tatsächliche
Pufferadresse, die zu dem Blockpuffer-RAM zusammen mit einem Steuersignal übertragen
wird, um den entsprechenden Datenblock aus dem Blockpuffer-RAM auszulesen.
Die ausgelesenen Daten werden dem FIFO-Register 502 zugeführt, das
die Daten speichert, bis das FIFO-Register voll ist oder der gesamte Datenblock
im FIFO-Register ist. Anschließend
geht die Zustandsmaschine 510 zu dem Zustand 2 weiter. Wenn
das FIFO-Register nicht voll ist und der gesamte Block noch nicht
in dem FIFO-Register enthalten ist, liest die Zustandsmaschine die
nächste
Speicherstelle aus dem Blockpuffer-RAM aus und speichert die Daten in
dem FIFO-Register, bis das FIFO-Register voll ist oder der gesamte
Datenblock in dem FIFO-Register abgelegt ist.
-
Wenn
im Zustand 2 der HDLC-Sender verfügbar ist, sendet die Zustandsmaschine 510 ein
Steuersignal an das FIFO-Register 502, um ein Byte an Daten
aus dem FIFO-Register an den HDLC-Sender zu übertragen, um Daten zu dem
LID zu senden. Die Bytezahl wird dann erniedrigt. Diese Prozedur
wird wiederholt ausgeführt,
bis die resultierende Bytezahl 0 beträgt. Anschließend geht
die Zustandsmaschine in den Zustand 3 über.
-
Im
Zustand 3 instruiert die sendende Zustandsmaschine 510 den
HDLC-Sender, um CRC-Bytes
zu bilden, die an das LID zu senden sind. Anschließend wird
an die Blockpufferverwaltungseinheit eine Blockpufferfreigabenachricht über die
Blockpufferzuordnungsverbindung gesendet, um den dem gesendeten
Block zugeordneten Puffer wieder freizugeben. Der entsprechende
Eintrag wird aus der Sendewarteschlange entfernt und die Zustandsmaschine 510 kehrt
in den Zustand 0 zurück.
-
Somit
ist ein FRYPAM beschrieben, das eine empfangende Schaltung und eine
sendende Schaltung aufweist. Die empfangende Schaltung empfängt eintreffende
HDLC-Datenblöcke
und ersetzt DLCI's
der eintreffenden HDLC-Datenblöcke
durch die Ziel-DLCI's,
die an der Stelle eines Übersetzungs-RAM's gespeichert sind,
die durch die eintreffenden DLCI bestimmt ist. Die übersetzten
Datenblöcke
werden in einen Blockpuffer-RAM geschrieben. Es wird eine Paketverfügbarkeitsnachricht
an das Ziel-FRYPAM gesendet, die entsprechend den Steuerdaten ausgewählt ist,
die in der angegebenen Speicherstelle des Übersetzungs-RAM's
abgelegt sind. Die Sendeschaltung des Ziel-FRYPAM's liest die Datenblöcke aus
dem Blockpuffer-RAM aus und liefert diese an das Ziel-LID.
-
Somit
unterstützt
die offenbarte Paketverwaltungeinrichtung Schnellpaketvermittlungsprotokolle
in Hardware.
-
In
dieser Offenbarung sind lediglich die bevorzugten Ausführungsformen
der Erfindung gezeigt und beschrieben, wobei beachtet werden sollte,
dass die Erfindung nicht auf Details der beschriebenen Beispiele beschränkt ist.