-
ALLGEMEINER STAND DER TECHNIK
-
Heutzutage
setzen viele Anbieter von Telekommunikationsdienstleistungen synchrone
optische Netzwerke (SONST) als ein Verfahren zum Datentransport
ein. Die Daten können,
bevor sie transportiert werden, in mehrere Bereiche (z. B. Teile,
Segmente usw.) unterteilt werden.
-
Zum
Beispiel werden Speicherbereich-Netzwerke (SANs – Storage Area Networks) verwendet, um
große
Datenmengen, wie z. B. die von Banken oder anderen Kreditinstituten
ausgeführten
Finanztransaktionen, zu speichern. Üblicherweise umfaßt ein SAN
einen Primärspeicherbereich
und einen oder mehrere Sicherungskopie-Speicherbereiche. Gewöhnlich ist
der Primärspeicherbereich
für die
Speicherung der originalen Transaktionen (die in eine elektronische
Form gebracht wurden) verantwortlich, während die Sicherungskopie-Speicherbereiche
für die
Speicherung von Kopien der originalen Transaktionen in dem Fall
verantwortlich sind, in dem aus irgendeinem Grunde auf die Originale,
die im Primärspeicherbereich
gespeichert sind, nicht zugegriffen werden kann, sie beschädigt oder
im schlimmsten Falle zerstört
sind. Oftmals sind die Primär-
und Sicherungskopie-Speicherbereiche nicht an demselben geographischen
Ort angeordnet. Trotzdem sind sie durch ein mit SONST kompatibles
Transportnetzwerk derart verbunden, daß dann, wenn dem Primärspeicherbereich
eine originale Transaktion zugeleitet wird, auch dem einen oder
den mehreren Sicherungskopie-Speicherbereichen
eine Kopie zugeleitet werden kann.
-
Aufgrund
einer Anzahl von Faktoren, von denen einer die große Datenmenge
ist, die zwischen einem Primärspeicherbereich
und einem Sicherungskopie-Speicherbereich übertragen werden muß, bevorzugen
es die Anbieter von Telekommunikationsdienstleistungen, die mit
Netzwerken auf der Basis von SONST arbeiten, die Daten zwischen
den Speicherbereichen als virtuell verkettete (VC – virtually
concatenated) Daten zu transportieren. Insbesondere bildet ein Dienstanbieter üblicherweise
die Daten aus einem SAN in einem VC-Datenstrom ab. Danach wird der VC-Datenstrom
weiter in mehrere Teile unterteilt, die als "Glieder" bekannt sind, und entlang des Netzwerks
transportiert. Anbieter von Telekommunikationsdienstleistungen suchen
ständig nach
Wegen zu einer effizienteren Datenübertragung, um Bandbreite einzusparen
und dadurch (hoffentlich) die Rentabilität zu erhöhen.
-
An
einem Empfangsende (z. B. Speicherbereich) wird eine Vorrichtung
benötigt,
um die vielen verschiedenen Glieder entgegenzunehmen und sie wieder
in einen Datenstrom hinein auszurichten/zu kombinieren (zusammenfassend
als "ausrichten" bezeichnet).
-
Manchmal
wurde eines der Glieder – relativ gesehen – einer
unerwartet langen Verzögerung
ausgesetzt. Eine derartige Verzögerung
kann die Erzeugung eines ausgerichteten Datenstroms nachteilig beeinflussen.
-
Existierende
Versuche zur Steuerung, Verschiebung oder Anpassung (zusammenfassend
als "Steuerung" bezeichnet) für derartige
Verzögerungen sind
unwirksam gewesen, weil die verwendeten Verfahren ihre eigenen beträchtlichen
Latenzzeit-(d.h. Verarbeitungs-)Verzögerungen einbringen.
-
Zum
Beispiel verwendet ein existierendes Verfahren einen langsam verarbeitenden
Speicher großer
Kapazität
("SPLC" – slow processing large capacity).
Die Verwendung eines derartigen SPLC-Speichers erzeugt von Natur
aus Latenzzeitverzögerungen.
Genauer gesagt sind die Hauptmerkmale eines beliebigen Speichers
die Durchlaufleistung, die Zugriffszeit, die Blockgröße und die
Kapazität,
wobei die Durchlaufleistung die mittlere Anzahl der Bit ist, die
in einer Zeiteinheit in einen Speicher geschrieben oder aus ihm
gelesen werden kann; die Zugriffszeit ist die Zeit, die benötigt wird,
um einen Lese- oder Schreib-Zykus abzuschließen; die Blockgröße ist die
Anzahl der Bit, die während
eines einzigen Zugriffszyklus in den Speicher geschrieben oder aus
ihm gelesen werden; und die Kapazität ist die Gesamtzahl der Bit,
die ein Speicher speichern kann.
-
Je
größer die
Kapazität
eines gegebenen Speichers ist, desto länger dauert normalerweise der Zugriff
auf den Speicher, d. h. desto länger
ist die Zugriffszeit. Ein Zugreifen auf SPLCs, die größere Blockgrößen verwenden,
wird die mittlere Zugriffszeit pro Bit herabsetzen und die Durchlaufleistung
erhöhen.
Die Verwendung größerer Blockgrößen vergrößert jedoch
die systemeigenen Latenzzeitverzögerungen.
-
Dementsprechend
ist es erwünscht,
die Auswirkungen der unerwartet langen Verzögerungen (die zuweilen als "Differentialverzögerungen" bezeichnet werden)
zwischen den ankommenden Gliedern und allgemeiner zwischen den ankommenden
Teilen eines Datenstroms zu steuern, um einen ausgerichteten Datenstrom
zu erzeugen, ohne daß Latenzzeitverzögerungen
erlitten werden, die den existierenden Verfahren zugeordnet sind.
-
In
der
US-Patentschrift Nr. 5,461,622 wird der
Einsatz von SONST-Byte offenbart, um mehrere Datenströme unter
Verwendung mehrerer identischer Puffer auszurichten.
-
In
der WIPO-Patentanmeldung
WO 03/094479 wird
der Einsatz von Hoch- und Niedergeschwindigkeits-Speichervorrichtungen
offenbart, welche unterschiedliche FIFO-Daten speichern.
-
In
der Japanischen Patentzusammenfassung
08 202595A wird der Einsatz
von Hoch- und Niedergeschwindigkeits-Speichervorrichtungen zum Speichern
unterschiedlicher Dateien offenbart.
-
KURZDARSTELLUNG DER ERFINDUNG
-
In
den unabhängigen
Ansprüchen,
auf die der Leser nun verwiesen wird, werden ein Verfahren und eine
Vorrichtung gemäß vorliegender
Erfindung dargelegt. Bevorzugte Merkmale werden in den abhängigen Ansprüchen offengelegt.
-
Wir
haben erkannt, daß die
Latenzzeitverzögerungen
durch den Einsatz eines digitalen Datenstrom-Verzögerungspuffers
(nachfolgend "digitaler Verzögerungspuffer") gesteuert (z. B.
fixiert, gedeckelt) werden können,
der sowohl einen schnell verarbeitenden Speicherteil geringer Kapazität ("FPSC" – Fast Processing Small Capacity)
als auch einen SPLC-Speicherteil aufweist.
-
Die
Verwendung von zwei Speicherteilen stattet die Verzögerungspuffer
der vorliegenden Erfindung mit der Fähigkeit aus, die Latenzzeitverzögerungen
zu steuern.
-
In
einem Ausführungsbeispiel
können
beide Speicherteile einen oder mehrere Datenteile empfangen. Beim
Empfang der Teile ist ein zugeordneter Steuerteil funktionsfähig, eine
jedem Teil zugeordnete Verzögerung
zu erkennen. In Abhängigkeit
vom Wert der erkannten Verzögerungen
wird der Steuerteil bestimmen, ob der SPLC-Speicherteil benötigt oder
nicht benötigt
wird, um einen ausgerichteten Datenstrom zu erzeugen, wobei zu verstehen
ist, daß der
FPSC immer verwendet wird, um den ausgerichteten Datenstrom zu erzeugen.
Dies hat effektiv eine Steuerung der Latenzzeitverzögerungen
zur Folge. Wenn keiner der Werte eine Zeitperiode überschreitet,
die einer Zeitperiode gleichwertig ist, bei der die Speicherkapazität des FPSC-Speicherteils
ein Maximum erreicht, dann liegt keine Notwendigkeit vor, den SPLC-Speicherteil
zu verwenden. Wenn andererseits ein oder mehrere Werte die Zeitperiode überschreiten,
dann kann es notwendig sein, den SPLC-Speicherteil zu verwenden. Genauer gesagt, es
kann notwendig sein, die im SPLC-Speicherteil gespeicherten Daten
(d. h. die Glieder eines VC-Digitaldatenstroms) zu verwenden, um
den ausgerichteten Datenstrom zu erzeugen. Selbst bei einer Verwendung
des SPLC-Speicherteils werden die Latenzzeitverzögerungen bis zu Stufen gesteuert,
die nicht jene überschreiten,
die bei einer Verwendung existierender Verfahren vorhanden sind.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 stellt
ein Blockdiagramm eines Netzwerks dar, das gemäß einer Ausführungsform
der vorliegenden Erfindung digitale Verzögerungspuffer aufweist.
-
2 stellt
ein vereinfachtes Blockdiagramm eines digitalen Verzögerungspuffers
gemäß einer
Ausführungsform
der vorliegenden Erfindung dar.
-
3 stellt
ein vereinfachtes Flußdiagramm eines
Verfahrens zum Herstellen eines ausgerichteten Datenstroms gemäß einer
Ausführungsform
der vorliegenden Erfindung dar.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
Es
wird nun auf 1 Bezug genommen, in der ein
Netzwerk 100 dargestellt ist, das eine Primärdatenquelle 5 umfaßt, welche
aus einem oder mehreren Primärdatenquellenteilen 6a, 6b,
... 6n aufgebaut ist (wobei "n" den
letzten Speicherteil anzeigt), und das eine Sekundärdatenquelle 50 umfaßt, welche
einen oder mehrere Sekunddrdatenquellenteile 60a, 60b,
... 60n umfaßt.
In einer Ausführungsform
der vorliegenden Erfindung umfassen die Primär- und Sekundärdatenquellen 5, 50 Primär- und Sicherungskopie-Datenquellenteile
oder -Speicherbereiche eines SAN. In 1 sind auch
Digitaldaten-Verzögerungspuffer 1, 10 dargestellt.
Im allgemeinen müssen
die Daten, die in einem der Primär- oder Sicherungskopie-Speicherteile
gespeichert sind, übertragen
werden. Um das zu tun, müssen
diese Daten als eine Anzahl von Datenteilen transportiert werden. Wie
Fachleuten bekannt ist, wird dann, wenn derartige Teile am Anfang
erzeugt werden, ein ursprünglicher,
ausgerichteter VC-Datenstrom in eine Anzahl unterschiedlicher, ausgerichteter
Teile oder Glieder aufgeteilt (der Begriff " Glieder" wird verwendet, wenn von einem VC-Datenstrom
gesprochen wird, wobei zu verstehen ist, daß das nur ein Typ eines Datenstroms
ist, der in der vorliegenden Erfindung verwendet werden kann). Nachdem
die Glieder von einem Speicherbereich über das SONST-Netzwerk 400 in einen
anderen transportiert worden sind, können die Glieder unausgerichtet
werden, da nicht jedes denselben Weg durchlaufen kann. Am Empfangsende müssen deshalb
die Glieder durch einen der digitalen Verzögerungspuffer 1, 10 erneut
ausgerichtet (oder ausgerichtet) werden, bevor sie entweder der
Primärdatenquelle 5 oder
der Sicherungskopie-Datenquelle 50 zugeleitet werden.
-
Obwohl 1 den
Einsatz eines SAN als die Datenquelle und Netzwerk 400 als
ein SONST-Netzwerk darstellt, sollte – bevor fortgefahren wird – verständlich werden,
daß die
vorliegende Erfindung verwendet werden kann, um Latenzzeitverzögerungen zu
steuern, die einer Anzahl verschiedener Datenquellentypen und einer
Anzahl von Netzwerktypen zugeordnet sind. Um die nachfolgende Erläuterung zu
vereinfachen, wurden Speicherbereiche eines SAN und ein SONST-Netzwerk
als Beispiele für
eine Datenquelle bzw. ein Netzwerk gewählt.
-
Um
die nachfolgende Erörterung
weiter zu vereinfachen, wird der Betrieb des digitalen Verzögerungspuffers 10 beschrieben,
wobei es sich versteht, daß der
Betrieb des digitalen Verzögerungspuffers 1 dem
Wesen nach ähnlich
ist.
-
Es
wird nun auf 2 Bezug genommen, wo ein Blockdiagramm
des digitalen Verzögerungspuffers 10 dargestellt
ist. Es ist ein Puffer 10 dargestellt, der einen SPLC-Speicherteil 20,
einen FPSC-Speicherteil 30 und einen Steuerteil 60 umfaßt. Obwohl sie
als drei getrennte Einheiten dargestellt sind, sollte zu verstehen
sein, daß eine
oder mehrere dieser Einheiten kombiniert werden können, um
weniger Einheiten auszubilden, oder daß sie weiter aufgeteilt werden
können,
um zusätzliche
Einheiten auszubilden. In einer Ausführungsform der vorliegenden
Erfindung arbeitet der in 2 dargestellte
digitale Verzögerungspuffer 10 wie
folgt (siehe auch das Flußdiagramm
in 3).
-
Ein
oder mehrere VC-Glieder, die einen ursprünglichen, ausgerichteten VC-Datenstrom darstellen,
können
entlang des Laufweges oder der Laufwege 400 durch den digitalen
Verzögerungspuffer 10 empfangen
werden. Obwohl es in 2 nicht dargestellt ist, kann
der digitale Verzögerungspuffer 10 auch
Eingabe/Ausgabeteile umfassen, um Daten geeignet zu empfangen und
zu senden. Beim Empfang des einen oder der mehreren VC-Glieder kann der
Puffer 10 funktionsfähig
sein, diese Glieder sowohl dem SPLC-Speicherteil 20 als
auch dem FPSC-Speicherteil 30 weiterzuleiten. Weitgehend gleichzeitig
ist der Steuerteil 60 funktionsfähig, eine Verzögerung zu
erkennen, die jedem der empfangenen Glieder zugeordnet ist. Da jedes
Glied einen unterschiedlichen Weg zwischen seiner Ursprungsquelle
und dem Puffer 10 durchlaufen haben kann, können eines
oder mehrere der Glieder verschiedenen Verzögerungen ausgesetzt worden
sein. Es ist die Aufgabe des Steuerteils 60, derartige
Verzögerungen zu
erkennen. Obwohl es in 2 nicht im einzelnen dargestellt
ist, sollte zu verstehen sein, daß der Steuerteil 60 die
notwendigen Schaltungen und die Software/Firmware umfaßt, um derartige
Verzögerungen zu
erkennen und zu verarbeiten. Nach dem Erkennen der Verzögerungen
ist der Steuerteil 60 ferner funktionsfähig zu bestimmen, ob der SPLC-Speicherteil 20 benötigt oder
nicht benötigt
wird, um einen ausgerichteten Datenstrom aus den empfangenen VC-Gliedern
zu erzeugen.
-
In
einer Ausführungsform
der vorliegenden Erfindung ist der Steuerteil 60 funktionsfähig, es
dem FPSC-Speicherteil 30 zu erlauben, einen ausgerichteten
Datenstrom zu erzeugen und auszugeben, der aus dem einen oder den
mehreren empfangenen VC-Gliedern ausgebildet ist, ohne die Daten
zu verwenden, die in dem SPLC-Speicherteil 20 gespeichert
sind, vorausgesetzt, keine der erkannten Verzögerungen überschreitet eine Zeitperiode,
die einer Zeitperiode gleichwertig ist, bei der eine Speicherkapazität des FPSC-Speicherteils
ein Maximum erreicht (zusammenfassend als eine "übermäßige Verzögerung " bezeichnet).
-
Anders
gesagt, solange keines der Glieder einer übermäßigen Verzögerung ausgesetzt wurde, kommt
jedes von ihnen am FPSC-Speicherteil 30 innerhalb einer
Zeitperiode an, die kleiner ist als eine Zeitperiode, welche der
FPSC-Speicherteil 30 benötigt, um seine maximale Speicherkapazität zu erreichen.
Das gewährleistet,
daß der
FPSC-Speicherteil 30 alle einzelnen VC-Glieder empfangen
hat, wenn er mit der Erzeugung eines ausgerichteten Datenstroms
beginnt. Wurde keines der Glieder einer übermäßigen Verzögerung ausgesetzt, dann kann
der Steuerteil 60 die der Erzeugung eines ausgerichteten Datenstroms
zugeordneten Latenzzeitverzögerungen
effektiv derart steuern, daß unter
Verwendung des FPSC-Speicherteils 30 kleinere Verzögerungen realisiert
werden können,
als es zuvor für
möglich
gehalten wurde.
-
Wenn
jedoch aus irgendeinem Grunde eines der einzelnen VC-Glieder einer übermäßigen Verzögerung ausgesetzt
wurde, dann kann seine Ankunft am FPSC-Speicherteil 30 für eine Zeitperiode
verzögert
sein, welche die Zeitperiode überschreitet,
die vom FPSC-Speicherteil 30 benötigt wird,
um seine maximale Kapazität
zu erreichen.
-
Genauer
gesagt, wenn ein Glied verzögert ist,
dann fährt
der FPSC-Speicherteil 30 fort, andere VC-Glieder zu empfangen.
Bis zu dem Zeitpunkt, in dem ein verzögertes Glied am FPSC-Speicherteil 30 ankommt,
kann der Teil 30 bereits seine maximale Speicherkapazität erreicht
haben. Tatsächlich
gibt es keinen Platz zum Speichern des spät ankommenden Glieds, ohne
Daten zu verlieren. Mehr noch, wenn der Speicherteil 30 versuchen
würde,
einen ausgerichteten Datenstrom zu erzeugen, bevor ein Glied empfangen
wurde, das übermäßig verzögert worden ist,
dann würde
der so erzeugte Datenstrom nicht genau einen ursprünglichen,
ausgerichteten VC-Datenstrom wiedergeben.
-
Aus
diesen Gründen
ist der Steuerteil 60 funktionsfähig zu erkennen, ob irgendeines
der empfangenen Glieder einer übermäßigen Verzögerung ausgesetzt wurde,
um die ordnungsgemäße Erzeugung
eines ausgerichteten Datenstroms zu steuern.
-
Wenn
tatsächlich
eines der Glieder einer übermäßigen Verzögerung ausgesetzt
wurde, dann ist der Steuerteil 60 funktionsfähig, dem
FPSC-Speicherteil 30 die Ausgabe eines ausgerichteten Datenstroms
zu erlauben, wobei diesmal jedoch eine einstellbare Menge von Daten
verwendet wird, die im SPLC-Speicherteil 20 gespeichert
sind. Das heißt, wenn
der Steuerteil 60 eine Verzögerung erkennt, welche die
Zeitperiode überschreitet,
die der FPSC-Speicherteil 30 zum Erreichen seiner maximalen
Speicherkapazität
benötigt,
dann sollte ein ausgerichteter Datenstrom unter Verwendung einiger Daten
erzeugt werden, die in dem SPLC-Speicherteil 20 gespeichert
wurden.
-
Zum
Beispiel können,
wie oben angedeutet wurde, alle ankommenden VC-Glieder durch beide Speicherteile 20, 30 empfangen
werden. Deshalb können
zu einem beliebigen gegebenen Zeitpunkt alle Glieder in jedem der
Speicherteile 20, 30 gespeichert sein. Einige
Glieder kommen jedoch schneller an als die anderen. Obwohl die früher (oder
schneller) ankommenden Glieder bereits in beiden Teilen 20, 30 gespeichert
worden sein können,
müssen noch
die langsameren Glieder ankommen. Anstatt es dem FPSC-Speicherteil 30 zu
erlauben, einen fehlerhaft ausgerichteten VC-Datenstrom auszulesen,
ist der Steuerteil 60 ferner funktionsfähig, im Endeffekt die Ausgabe
eines ausgerichteten Datenstroms basierend nur auf den früher ankommenden
Gliedern zurückzuhalten,
bis die spät
ankommenden Glieder angekommen sind. Dieses Halten bezieht den Einsatz
des SPLC-Speicherteils 20 ein.
-
Obwohl
die Begriffe "halten" oder "zurückhalten" oben mit Bezugnahme
auf die Ausgabe eines ausgerichteten Datenstroms verwendet werden,
sollte zu verstehen sein, daß diese
Begriffe lediglich beschreibend sind. Tatsächlich wird der ausgerichtete Datenstrom
nicht zurückgehalten.
Vielmehr werden die früh
ankommenden Glieder, welche den letztendlich ausge richteten Datenstrom
herstellen, aus dem langsamer verarbeitenden SPLC-Speicherteil 20 ausgewählt. Im
Endeffekt wird der ausgerichtete Datenstrom unter Verwendung der
früh ankommenden Glieder
erzeugt, die langsam verarbeitet werden.
-
Anders
gesagt, da der SPLC-Speicherteil 20 die Datenströme langsamer
verarbeitet als der Speicherteil 30, erzeugt seine Verarbeitungsgeschwindigkeit
von sich aus eine Verzögerung
oder eine Haltezeit im Vergleich zum FPSC-Speicherteil 30.
Wenn der Steuerteil 60 erkennt, daß eines der Glieder einer Verzögerung ausgesetzt
wurde, dann ist er ferner funktionsfähig zu bestimmen, ob diese
Verzögerung die
Zeit überschreitet,
welche der FPSC-Speicherteil 30 benötigt, um seine maximale Kapazität zu erreichen.
Wenn eine Verzögerung
die Zeitperiode überschreitet,
dann ist der Steuerteil 60 darüber hinaus funktionsfähig zu bestimmen,
wie lange ein ausgerichteter Datenstrom "zurückzuhalten" ist. Um das zu tun,
wandelt der Steuerteil 60 die übermäßige Verzögerung, die dem(den) verzögerten Glied(ern)
zugeordnet ist, effektiv in eine Speichermenge innerhalb des SPLC-Speicherteils 20 um.
-
Bevor
fortgefahren wird, sollte zu verstehen sein, daß die kontinuierliche Übertragung
von Daten über
das SONST-Netzwerk 400 intakt und unbeeinträchtigt bleibt,
selbst wenn in der vorliegenden Erfindung die Latenzzeitverzögerungen
gesteuert werden, um die Einflüsse
der übermäßigen Verzögerungen
auf die VC-Glieder zu steuern.
-
Noch
genauer gesagt, weil der SPLC-Speicherteil 20 Daten mit
einer bestimmten Datenrate speichert, kann eine Verzögerungszeitperiode
in eine Datenmenge, die im SPLC-Speicherteil 20 gespeichert
wird, umgewandelt werden. In einer weiteren Ausführungsform der vorliegenden
Erfindung kann die Datenmenge durch einen "Index" dargestellt werden, welcher durch den
Steuerteil 60 erzeugt wird. Dieser Index kann durch den
Steuerteil 60 verwendet werden, um die Datenmenge aus den
früher
ankommenden Gliedern, die im SPLC-Speicherteil 20 gespeichert
sind, zu kennzeichnen, die benötigt
wird, um die Auswirkung einer beliebigen übermäßigen Verzögerung zu steuern.
-
Nach
dem Erzeugen eines Index leitet der Steuerteil 60 Anweisungen
zu, um eine dem Index zugeordnete Datenmenge aus dem SPLC-Speicherteil 20 auszulesen.
Bis zu dem Zeitpunkt, in dem die Daten aus dem SPLC-Speicherteil 20 ausgelesen sind,
wird das letzte Glied ankommen sein. Während das letzte, spät ankommende
Glied am FPSC-Speicherteil 30 ankommt, wird der Speicherteil 30 auch die
Daten empfangen, die aus dem SPLC-Speicherteil 20 ausgelesen
werden. Soweit es den Speicherteil 30 betrifft, scheinen
alle Daten (d. h. Glieder) zur gleichen Zeit anzukommen. Da alle
Glieder zur gleichen Zeit ankommen, ist der Speicherteil 30 in
der Lage, einen ausgerichteten Datenstrom richtig zu erzeugen.
-
Unter
Verwendung einer Kombination aus einem FPSC- und einem SPLC-Speicherteil
stellen die digitalen Verzögerungspuffer
der vorliegenden Erfindung die Fähigkeit
bereit, ausgerichtete Datenströme mit
Latenzzeitverzögerungen
zu erzeugen, die von der Verarbeitungszeit des FPSC bis zur Kapazität (Zeitäquivalent)
des SPLC reichen.
-
Es
sollte angemerkt werden, daß die
vorliegenden Erfindungen nicht die Übertragung irgendwelcher Anweisungen
(z. B. Schaltanweisungen) zwischen den zwei Speicherteilen 20, 30 erfordern. Zum
Beispiel tauschen einige bestehende Verfahren eine Schaltnachricht
zwischen den Speicherteilen aus, wenn eine übermäßige Verzögerung erkannt wird. Eine derartige
Schaltnachricht oder Anweisung weist einen SPLC normalerweise an,
die Erzeugung eines ausgerichteten Datenstroms vorzunehmen, ohne
einen FPSC zu verwenden, oder umgekehrt. Die Zeit, die benötigt wird,
um eine Schaltnachricht effektiv zu senden und zu empfangen und
dann die Speicher zu schalten, trägt nur zu einer beliebigen Latenzzeitverzögerung bei.
Stattdessen kann in der vorliegenden Erfindung jeder Speicherteil 20, 30 jedes
Glied empfangen, ohne eine Nachricht zu empfangen, die dem anderen
Speicherteil zugeordnet ist, weil zum Beispiel der Steuerteil 60 zu
einer Feststellung in der Lage ist, ob der SPLC-Speicherteil 20 zur Erzeugung
eines ausgerichteten Datenstroms zu verwenden ist.
-
Es
sollte auch zu verstehen sein, daß der Steuerteil 60 ein
oder mehrere Programme umfassen kann, die in einer Anzahl von Programmsprachen
geschrieben sein können,
und daß er
Software oder Firmware oder irgendeine Kombination der beiden umfassen
kann. Der Steuerteil 60 kann auch Hardware, wie z. B. ein
vom Computer lesbares Medium, einen Mikroprozessor, einen digitalen
Signalprozessor oder einen oder mehrere Speicherteile umfassen. Auf
jeden Fall ist der Steuerteil 60 in der Lage, Folgen von
Anweisungen sowohl für
das Erkennen der Verzögerungen,
welche den Gliedern zugeordnet sind, als auch für das Steuern der Speicherteile 20, 30 auszuführen, um
einen einwandfreien, ausgerichteten Datenstrom auszugeben. In 3 ist
ein vereinfachtes Flußdiagramm
dargestellt, das die verschiedenen Schritte bei der Erzeugung eines
ausgerichteten Datenstroms gemäß der vorliegenden
Erfindung hervorhebt.
-
Obwohl
die obige Erörterung
auf den Einsatz digitaler Verzögerungspuffer
in Transport-Netzwerken auf der Basis von SONST ausgerichtet ist,
sollte es wieder zu verstehen sein, daß das nur ein Beispiel einer
Anwendung für
die neuartigen digitalen Verzögerungspuffer
der vorliegenden Erfindung ist. Im allgemeinen kann eine beliebige
Anwendung, welche die Erzeugung eines einzelnen ausgerichteten digitalen
Datenstroms aus mehreren Datenteilen erfordert, wobei einer oder
einige der mehreren Teile einer übermäßigen Verzögerung ausgesetzt
wurden, von den neuartigen digitalen Verzögerungspuffern der vorliegenden
Erfindung Gebrauch machen.
-
Ein
wenig rückgreifend
wurde oben erwähnt, daß es notwendig
sein kann, die im SPLC-Speicherteil 20 gespeicherten Daten
zu verwenden. Wenn das geschieht, dann erzeugt der Steuerteil 60 einen
Index, um eine Datenmenge zu kennzeichnen, die aus dem Speicherteil 20 ausgelesen
werden muß.
In noch einer weiteren Ausführungsform
der vorliegenden Erfindung ist dieser Index einstellbar, um dem veränderlichen
Wesen einer beliebigen übermäßigen Verzögerung Rechnung
zu tragen. Der benötigte spezielle
Index wird unmittelbar auf die Menge der Daten bezogen, die benötigt wird,
um eine übermäßige Verzögerung auszugleichen,
der ein Glied(Glieder) ausgesetzt wurde(n).
-
Vielleicht
ist eine Analogie hilfreich. Das SONST-Netzwerk 400 kann
dargestellt werden durch eine Anzahl von Bahngleisen zwischen zwei
Städten. Jedes
Gleis ist dafür
ausgelegt, die Durchfahrt eines einzigen Zuges zu erlauben. Zu einer
bestimmten Startzeit fährt
jeder Zug an einer Anfangs- oder Quellenstation im wesentlichen
gleichzeitig ab.
-
An
der Empfangs- oder Zielstation können die
zum frühesten
Zeitpunkt ankommenden Züge gleich
den zum frühesten
Zeitpunkt am Puffer 10 ankommenden Gliedern gesetzt werden.
Bei der Ankunft eines jeden Zuges muß ein Bahnhofsvorsteher die
Ladung aus dem gleich numerierten Waggon (VC-Glied) eines jeden
Zuges entladen. Es wird zum Beispiel angenommen, daß in jedem
Zug der Waggon #30 Kohle transportiert. Um effektiv alle Waggons,
die Kohle transportieren, in einem Kohlenwaggon zusammenzufassen,
muß der
Bahnhofsvorsteher warten, bis der letzte ankommende Zug ankommt und
dann die Kohle aus dem Waggon #30 entladen. An einem bestimmten
Tage kommt es jedoch vor, daß einer
der Züge übermäßig verspätet ist.
Anstatt fortzufahren, den einen Kohlenwaggon ohne den fehlenden
Zug und seinen Waggon herzustellen, entscheidet sich der Bahnhofsvorsteher
deshalb dafür, die
zum frühesten
Zeitpunkt ankommenden Züge und
ihre Waggons auf Seitengleise zu dirigieren, um den zuletzt ankommenden
Zug und seinen Waggon abzuwarten. Sobald der zuletzt ankommende
Zug und sein Waggon angekommen ist, ist es dem Bahnhofsvorsteher
erlaubt, die Kohle aus dem Waggon #30 zu entladen, um einen mit
Kohle gefüllten
Waggon zu erstellen. In einer ähnlichen
Weise wiederholt der Bahnhofsvorsteher diesen Vorgang für jeden Waggontyp,
bis ein langer Zug, der die Waggons in einer genau ausgerichteten
Anordnung enthält,
erstellt ist.
-
Die
Seitengleise sind im Endeffekt gleich dem SPLC-Speicherteil 20 zu
setzen.
-
In
gleicher Weise kann der Steuerteil 60 als ein Bahnhofsvorsteher
wirksam werden und einen Index auswählen, der die Datenmenge (z.
B. die Anzahl der Glieder und ihrer Daten) bestimmt, die vom SPLC-Speicherteil 20 benötigt wird,
um einen ausgerichteten Datenstrom zu erzeugen, wenn das letzte Glied
am FPSC-Speicherteil 30 angekommen
ist. Da die spät
ankommenden Glieder verschiedenen Verzögerungen ausgesetzt worden
sein können,
müssen
auch der gewählte
Index und die benötigten
Daten variieren. Um die erforderliche Datenmenge zu variieren, kann
der Steuerteil 60 veranlaßt werden, einen variablen
Index zu erzeugen. Aus diesem Grund können die digitalen Verzögerungspuffer
der vorliegenden Erfindung als variable digitale Verzögerungspuffer
bezeichnet werden.
-
Es
kann viele Wege geben, auf denen der Steuerteil 60 die
Verzögerungen
erkennen kann, die jedem der eintreffenden VC-Glieder zugeordnet
sind. Zum Beispiel weist jeder SONST-Rahmen üblicherweise eine Startmarkierung
und eine feststehende Größe auf.
Durch Registrieren der Zeit, die zwischen der Ankunft von Startmarkierungen
verstreicht, kann der Steuerteil 60 in der Lage sein zu
erkennen, ob ein Glied verzögert
ist, oder eigentlich, wie viel ein Glied verzögert ist. In einer noch ausführlicheren
Darstellung enthält
jedes Glied ein sogenanntes "H4"-Byte, das seinerseits
einen Mehrfachrahmen-Anzeigewert ("MFI" – multi-frame
indicator) enthält.
Vor der Übermittlung über das
Netzwerk 400 wird jedes Glied auf denselben MFI-Wert gesetzt.
Beim Empfang durch den Puffer 10 ist der Steuerteil 60 funktionsfähig, den MFI-Wert
eines jeden Glieds zu vergleichen, um zu ermitteln, ob eine Verzögerung aufgetreten
ist. Es sollte verständlich
sein, daß andere
Verfahren verwendet werden können,
um die jedem Glied zugeordnete Verzögerung zu erkennen.
-
In
noch einer weiteren Ausführungsform
der vorliegenden Erfindung können
Verzögerungen
auf einer Basis von N-Bit-Blockebenen erkannt werden. Der Steuerteil 60 kann
funktionsfähig
sein, Indizes zu erzeugen, die den N-Bit-Blockebenen-Latenzzeitverzögerungen
gleichgestellt sind. Die Fähigkeit
zum Erzeugen eines ausgerichteten Datenstroms unter Verwendung von
N-Bit-Blockebenen-Latenzzeiten (welche wesentlich kleiner sind als
die existierenden Rahmenebenen-Latenzzeiten) ist einer der Vorteile,
die durch Einsatz der vorliegenden Erfindung gegenüber den
existierenden Verfahren realisiert werden können.
-
Wie
oben angegeben wurde, können
die Speicherteile 20, 30 und der Steuerteil 60 zusammengefaßt werden,
um weniger Teile auszubilden, oder sie können weiter unterteilt werden,
um zusätzliche
Teile auszubilden. In einer Ausführungsform
der vorliegenden Erfindung sind der FPSC-Speicherteil 30 und
der Steuerteil 60 Teil einer anwendungsspezifischen integrierten
Schaltung oder ASIC. In noch einer weiteren Ausführungsform der vorliegenden
Erfindung sind der FPSC-Speicherteil 30 und der Steuerteil 60 Teil
eines feldprogrammierbaren Gatterfeldes oder FPGA. Üblicherweise
können
der FPSC-Speicherteil 30 und der Steuerteil 60 als
innere Komponenten eines derartigen ASIC oder FPGA angesehen werden,
während
der SPLC-Speicherteil 20 als
eine äußere Komponente
eines derartigen ASIC oder FPGA angesehen werden kann.
-
Es
sollte verständlich
sein, daß der
Puffer 1, wie oben angemerkt wurde, auf eine im wesentlichen gleiche
Weise arbeiten kann wie der Puffer 10. Wenn die Datenquellen 5, 50 SANs
umfassen, dann sollte außerdem
verständlich
sein, daß der
eine oder die mehreren VC-Glieder,
die entlang des Netzwerks 400 transportiert werden, von
einem Primärspeicherbereich 5 oder
einem Sicherungskopie-Speicherbereich 50 stammen können.
-
Diese
Speicherbereiche können
ein oder mehrere Anordnungen optischer Speicherplatten zum Speichern
einer beliebigen Zahl von unterschiedlichen Datentypen umfassen,
einschließlich der
originalen Finanztransaktionen (im Primärspeicherbereich 5)
und/oder der Kopien von Daten, die einer originalen Finanztransaktion
zugeordnet sind (im Sicherungskopie-Speicherbereich 50).
-
Obwohl
es notwendig sein kann, Daten aus dem SPLC-Speicherteil 20 auszuwählen, braucht
es in noch einer weiteren Ausführungsform
der Erfindung nicht nötig
zu sein, die Daten auszuwählen,
die dem zuletzt ankommenden Glied zugeordnet sind. Das folgt daraus,
weil ein derartiges Glied (oder Glieder) am FPSC-Speicherteil 30 im wesentlichen
zu der gleichen Zeit ankommt, zu der es am SPLC-Speicherteil 20 ankommt,
so daß keine
Notwendigkeit besteht, die Daten aus dem SPLC-Speicherteil 20 auszuwählen, die
dem zuletzt ankommenden Glied zugeordnet sind.
-
Oben
wurde versucht, einige Beispiele anzuführen, welche die vorliegende
Erfindung veranschaulichen. Andere sind vorstellbar und liegen noch im
Gültigkeitsbereich
der vorliegenden Erfindung, der besser durch die nachfolgenden Ansprüche festgelegt
ist.
-
Schlüssel zu den Figuren
-
1
-
- 1,
10
- Puffer
- 5
- Primärdatenquelle
- 50
- Sicherungskopie-Datenquelle
-
2
-
- 60
- CTL
(Steuerteil)
-
3
-
- 301
- SPLC-
und FPSC-Speicherteile empfangen VC-Glied
- 302
- Verzögerung,
die dem erkannten Glied zugeordnet ist
- 303
- übermäßige Verzögerung erkannt?
- 304a
- zur
Ausgabe eines ausgerichteten VC-Datenstroms nur FPSC verwenden
- 304b
- verzögerungsbezogenen
Index berechnen
- 304c
- zur
Ausgabe eines ausgerichteten VC-Datenstroms SPLC und Index mit FPSC
verwenden
- 305
- nächstes Glied
- (NO
- →) Nein
- (Yes
- →) Ja