-
Die
vorliegende Erfindung bezieht sich auf den Bereich von Computerkommunikation
und insbesondere auf den Bereich der Detektion des Starts eines
Pakets innerhalb eines Bitstroms.
-
Pakete
in einem Bitstrom werden oft dadurch beschrieben, dass darin ein
bestimmter Datenwert, beispielsweise ein bestimmtes 8 Bit breites
(Byte- oder Oktet-) Datenmuster auftritt, das als "Synchronisationsmuster" bezeichnet werden
kann. Wenn das Synchronisationsmuster eine Länge von 8 Bits hat, wird es
oft als Synchronisationsbyte bezeichnet. Wenn explizite Rahmungssignale
nicht gleichzeitig mit dem Bitstrom empfangen werden, kann die Anlage,
die den Bitstrom empfängt,
das Synchronisationsmuster benutzen um den Start eines Pakets zu identifizieren.
Diese Art und Weise wird aber kompliziert, wenn der betreffende
als Synchronisationsmuster benutzte Datenwert anderswo innerhalb
der Bits auftreten kann, die den Rest eines Pakets bilden. Ein derartiges
Erscheinen kann auftreten: a) wenn der Wert des Synchronisationsmusters
nicht nur zum Identifizieren des Starts eines Pakets reserviert
ist, b) wenn der Bitstrom keine vordefinierte Bitgruppe hat, beispielsweise
Byteausrichtung, oder c) wenn in dem Bitstrom Fehler auftreten.
-
So
ist beispielsweise entsprechend der sog. "Motion pictures expert group – 2" (MPEG-2) internationalen
Norm 13818-1 der für
das Synchronisationsmuster verwendete Datenwert, darin als das "sync-byte" bezeichnet, 0x47.
Jedes MPEG-2 Transportbitstrompaket hat eine Länge von 188 Bytes, von denen
das erste das "Sync-Byte" ist. Auf diese Art und
Weise sollte ein Sync-Byte in dem Bitstrom alle 188 Bytes auftreten.
-
Nach
einer bekannten Technik wird jedes 8 Bit Muster eines MPEG-2 Bitstroms
getestet um zu ermitteln, ob es ein Sync-Byte ist. Das Testen erfolgt unter
Anwendung eines acht-Bit Fensters, das jeweils wenn der Test durchgeführt wird,
um ein Bit verschoben wird, bis ein Sync-Byte gefunden worden ist. Wenn
eine getestete Gruppe von acht Bits mit dem Sync-Byte übereinstimmt,
werden die nächsten
187 acht-Bit Gruppen gezählt,
wenn sie vorbei kommen, sie werden aber nicht getestet. Danach wird
das 189. Byte getestet um zu ermitteln, ob es ein Sync-Byte ist.
Sollte dies der Fall sein, so wird bestimmt, dass die vorhergehenden
188 Bytes, d.h. das erste gefundene Sync-Byte und die gezählten 187
acht Bit Gruppen wahrscheinlich ein Paket gewesen sind. Der Prozess
wird danach viele Male wiederholt um die Gefahr zu minimieren, dass
die betreffende Detektion von Sync-Bytes, die um die Länge eines
einzigen Pakets voneinander entfernt sind, das Ergebnis eines Wertes
sind, der dem Wert des Sync-Bytes entspricht, der beliebig in dem
Bitstrom zu dem korrigierten Intervall auftritt und wirklich Paket
beschreibende Sync-Bytes. Es sei bemerkt, dass das Erscheinen in dem
Bitstrom eines Wertes entsprechend dem des Sync-Bytes an einer Stelle,
wo ein Sync-Byte nicht erscheinen sollte, als "Sync-Byte Emulation" bezeichnet wird. Sollte das 189. 8-Bit
Muster dem Sync-Byte nicht entsprechen, so wird der Prozess neu
gestartet.
-
Nachteiligerweise
kann in Applikationen, in denen es eine Sync-Byte-Emulation gibt, diese
Technik langsam sein um zu ermitteln, dass ein Paket empfangen worden
ist. Auch verursacht der Beschreibungsprozess den der Verlust an
Daten aller zum Ermitteln der Paketbeschreibung verwendeten Pakete.
-
Es
sei bemerkt, dass US-A-4414677 eine Anordnung beschreibt, die imstande
ist, eine schnellere Detektion durchzuführen, und zwar ohne Datenverlust.
Die Anordnung benutzt ein Schieberegister mit der Länge des
Synchronwortes und eine Vergleichsstufe zum Detektieren der Synchronisationswörter in
dem Strom. Die von der Vergleichsschaltung gelieferte Information
wird in eine Sequenz von Codewörtern
umgewandelt, eins für
jedes analysierte Datenwort des Bitstroms. Die Sequenz der Codewörter wird
in vier Verzögerungspuffern
gespeichert, je einen zum Speichern von Codewörtern für einen Block analysierter
Datenwörter.
Es werden vier Vergleichsschaltungen verwendet um zu überprüfen, ob miteinander übereinstimmende
Codewörter
an der entsprechenden Stelle in dem Viererblock gespeichert sind.
-
Eine
Verbesserung in der Beschreibung der Pakete in einem Bitstrom wird
nach den Grundlagen der vorliegenden Erfindung dadurch erhalten,
dass 1) ein FIFO-Puffer verwendet wird, der a) eine effektive Speicherkapazität hat entsprechend
der Anzahl Bits in einem Paket plus der Anzahl Bits in dem Synchronisationsmuster
und b) derart vorgesehen ist, dass ein Vergleich der Daten in dem
Kopfende und in dem Schwanzende mit dem Datenmuster des Synchronisationsmusters
gemacht werden kann und dass 2) angegeben wird, dass ein Paket detektiert
wurde, wenn das Kopfende und das Schwanzende des FIFOs je im Wesentlichen
simultan Information entsprechend dem Synchronisationsmuster enthalten. In
dem Fall, dass Pakete innerhalb eines Bitstroms verschiedene Längen haben
können,
kann die effektive Speicherkapazität des FIFOs eingestellt werden, wenn
die zu detektierende Paketlänge
im Voraus bekannt ist, oder der FIFO kann derart vorgesehen sein, dass
es meh rere gleichzeitig effektive Schwanzenden gibt. Wenn verschiedene
Pakete des Bitstroms verschiedene Synchronisationsmuster haben können, können mehrere
Vergleichsschaltungen verwendet werden zur Überprüfung gültiger Kombinationen von Synchronisationsmustern,
und dies kann bei geeigneten Verschiebungen innerhalb des Bitstroms erfolgen.
Es kann eine Zustandsmaschine verwendet werden um komplexen Zyklen
von Synchronisationsmustern, die erwartet werden können nachzugehen. Vorteilhafterweise
kann die vorliegende Erfindung angewandt werden ob der Bitstrom
Byte-ausgerichet ist oder entsprechend einer anderen Gruppe von
Bits ausgerichtet ist.
-
In
einer Ausführungsform
der vorliegenden Erfindung werden Daten von dem eintreffenden Bitstrom
dem FIFO zugeführt.
Wenn der FIFI einmal gefüllt
ist, wird dem FIFO jeweils eine neue Einheit mit Daten zugeführt, wobei
das Kopfende und das Schwanzende desselben überprüft werden um zu ermitteln,
ob sie das Synchronisationsmuster enthalten. Sollte dies der Fall
sein, so wird ein Paket vorläufig
angemeldet und der Überprüfungs- und
der vorläufige
Anmeldungsprozess wird eine vorbestimmte Anzahl Male wiederholt,
aber nur zu Zeitintervallen, die der Abstimmung entspricht, erforderlich
für ein ganzes
Paket um den FIFO zu verlassen stattdessen, dass jeweils eine neue
Einheit mit Daten zu dem FIFO geliefert wird. Diese Wiederholung
wird durchgeführt
um zu gewährleisten,
dass das Synchronisationsmuster auf gültige Art und Weise zu den
richtigen Intervallen innerhalb des Bitstroms detektiert wurde,
wodurch auf diese Weise die Möglichkeit
einer falschen Paketbeschreibung wegen der Emulation des Synchronisationsmusters
minimiert wird. Durchführung
jeder Wiederholung nur am Paketintervall ist möglich bei der vorhergehenden
Wiederholung, was zu einer vorläufige
Paketangabe führt.
Bei erfolgreicher Beendigung aller Wiederholungen, wird angegeben,
dass Pakete gültig
sind und sie werden jedes Mal, dass Schwanzendedaten den Übergang durch
den FIFO zu dem Kopfende beenden, beschrieben, unter der Voraussetzung,
dass das Schwanzende zu dem betreffenden Zeitpunkt ein Synchronisationsmuster
enthält.
Wenn eine der Wiederholungen vor der Angabe, dass die Pakete gültig sind,
nicht zu einer vorläufigen
Angabe führt,
wird der Prozess neu gestartet, so dass das Kopfende und das Schwanzende
des FIFOs beide überprüft werden,
und zwar jeweils wenn eine neue Einheit mit Daten zugeführt wird.
-
Ausführungsbeispiele
der Erfindung sind in der Zeichnung dargestellt und werden im Folgenden näher beschrieben.
Es zeigen:
-
1 ein
Beispiel eines Paketvermessers zum Beschreiben von Paketen entsprechend
den Grundlagen der vorliegenden Erfindung,
-
2 ein
Beispiel des Zustandsübergangsdiagramms
für den
Paketvermesser aus 1, und
-
3 ein
Flussdiagramm eines Beispiels eines Prozesses, durchgeführt durch
den Controller des Paketvermessers nach 1 zum Beschreiben von
Paketen.
-
1 zeigt
ein Beispiel eines Paketvermessers 100 zum Beschreiben
von Paketen entsprechend den Grundlagen der vorliegenden Erfindung. Dargestellt
in 1 sind a) ein FIFO-Puffer 101, b) Vergleichsschaltungen 103 und 105,
und c) ein Controller 104. der FIFO 101 hat eine
Speicherkapazität entsprechend
der Anzahl Bits in einem Paket plus der Anzahl Bits in dem Synchronisationsmuster.
Der FIFO 101 ist vorgesehen zum Liefern der in dem Kopfende
und in dem Schwanzende gespeicherten Daten als Ausgangssignale.
-
Die
Vergleichsschaltung 103 ist vorgesehen zum Empfangen des
am Kopfende des FIFOs 101 gespeicherten Datenmusters und
zum Vergleichen desselben mit dem Synchronisationsmuster für den Datenstrom,
der als Eingang dem FIFO 101 zugeführt wird. Der Ausgang der Vergleichsschaltung 103, der
entweder eine Übereinstimmung
oder keine Übereinstimmung
angibt, wird dem Controller 104 zugeführt. Auf gleiche Weise ist
die Vergleichsschaltung 105 vorgesehen um als Eingang die
Daten zu empfangen, die an dem Schwanzende des FIFOs 101 gespeichert
sind, und um diese mit dem Synchronisationsmuster zu vergleichen.
Der Ausgang der Vergleichsschaltung 105, der entweder eine Übereinstimmung
oder keine Übereinstimmung
angibt, wird ebenfalls dem Controller 104 zugeführt.
-
So
hat beispielsweise zur Verwendung mit MPEG-2, der FIFO 101 Raum
zum Speichern von 1512 Bits, was einem 188 Byte MPEG-2 Paket plus einem
zusätzlichen
acht Bit Sync-Byte entspricht. Auch für MPEG-2 ist jede der Vergleichsschaltungen 103 und 105 acht
Bits breit und das Sync-Byte hat den Wert 0x47.
-
Der
Controller 104 ist mit dem FIFO 101 gekoppelt.
Der FIFO 101 kann derart betrieben werden, dass Daten in
das Schwanzende des FIFOs 101 fließen, und zwar herrührend von
dem Kopfende des FIFOs 101 und danach aus dem FIFO 101.
Typischerweise wird der FIFO 101 derart betrieben, dass Daten
durch denselben hindurch fließen,
und zwar mit derselben Rate, wie Daten am FIFO 101 empfangen
werden. Auf diese Weise wird dafür
gesorgt, dass der Ausgang vom FIFO 101 dieselbe Rate hat wie
der Eingang zu dem FIFO 101. In einer derartigen Mode funktioniert
der FIFO wie eine Verzögerungsleitung.
-
Im
Betrieb erfolgt Paketbeschreibung in einer Beispielsausführungsform
der vorliegenden Erfindung in einem Vier Phasen Prozess, wobei diese Phasen
sind: a) Entriegelung, b) Synchronisation, c) Verriegelung und d)
Neusynchronisation. Beim Rückstellen
oder bei der Initialisierung wird der FIFO 101 geleert
und der Paketvermesser 100 geht in die Entriegelungsphase.
Am FIFO 101 empfangene Daten fließen dazu von dem Schwanzende
zu dem Kopfende ohne jegliche Verzögerung anders als notwendig zum
Passieren durch den leeren FIFO, d.h. die Verzögerung des "Eimerkettenspeichers" notwendig zum Passieren der Daten von
Position zu Position in dem FIFO. Ein Datenfreigabesignal DE, das
von dem Controller 104 geliefert wird und wenn bestätigt, gibt an,
dass die Daten vom FIFO 101 verwendet werden können, wird
entstätigt
um die Verwendung von Daten zu vermeiden, die nicht zu Paketen beschrieben worden
sind. Auch ein etwaiger Start des Paketsignals SOP wird verwendet
um anzugeben, wenn ein neues gültiges
Paket an dem Kopfende des FIFOs 101 vorhanden ist. Ein
derartiger Start eines Paketsignals wird nicht bestätigt für die ganze
Paketzeit, d.h. er wird nur für
eine einzige Bytezeit bestätigt,
wenn das Paket aus dem FIFO 101 fließt.
-
Um
eine richtige Zeitangabe einzuhalten kann der Controller 104 zählen, wie
viel Information, beispielsweise wie viele Bits oder wie viele Bytes
in dem FIFO 101 gespeichert sind. Wenn ermittelt wird, dass
der FIFO 101 gerade komplette gefüllt ist, testet die Vergleichsschaltung 103 um
zu ermitteln, ob das Synchronisationsmuster, beispielsweise das Sync-Byte
0x47 für
MPEG-2, am Kopfende des FIFOs 101 erscheint, während die
Vergleichsschaltung 105 testet, um zu ermitteln, ob das
Synchronisationsmuster an dem Schwanzende des FIFOs 101 erscheint.
In dem Fall, dass wenigstens eine der Vergleichsschaltungen 103 und 105 nicht
eine Übereinstimmung
detektiert, bleibt das System in der entriegelten Phase und die
Daten des Schwanzendes und die Daten des Kopfendes werden jeweils
dann zurückgestellt,
wenn eine neue Dateneinheit in den FIFO 101 eingegeben
wird.
-
Wenn
aber die beiden Vergleichsschaltungen 103 und 105 das
Synchronisationsmuster nahezu zu demselben Zeitpunkt detektieren,
detektiert der Controller 104 diese Tatsache und nimmt
dann daraus an, dass ein Paket in dem FIFO 101 gespeichert wird. Deswegen
wird die Synchronisationsphase eingegeben. Es sei bemerkt, dass
die Grenzen eines derartigen Pakets von dem Kopfende des FIFOs 101 zurück bis zu
einem Byte vor dem Schwanzende sind.
-
Während der
Synchronisationsphasewerden die während der Entriegelungsphase
detektierten Grenzen zum Testen nachfolgender Teile des Bitstroms
für Pakete
verwendet. Insbesondere wird erwartet, dass derartige Pakete durch
das Erscheinen des Synchronisationsmusters an Stellen beschrieben werden,
die ganze Vielfache der Paketlänge
von der Stelle des detektierten Synchronisationsmusters am Kopfende
sind. Auf diese Art und Weise wird ein Paket in der Synchronisationsphase
nur dann detektiert, wenn a) jede der Vergleichsschaltungen 103 und 105 bestimmen,
dass sie im Wesentlichen simultan das Synchronisationsmuster detektiert
haben, wie oben, und auch b) dass der erwartete Start des Pakets
an dem Kopfende des FIFOs 101 ist. Dies kann dadurch erzielt
werden, dass die Anzahl Bits, oder Bytes, gezählt werden, die durch eine
vorbestimmte Stelle in dem FIFO 101 hindurch gehen, beispielsweise
das Kopfende, und dass nur getestet wird, wenn derselbe Betrag an
Daten wie in einem kompletten Paket vorhanden durch den FIFO 101 hindurch
gegangen ist. In dem Fall, dass ein erwartetes Paket nicht detektiert wird,
wie während
der Synchronisationsphase antizipiert, kehrt das System zu der Entriegelungsphase zurück.
-
Bei
Detektion von N Paketen in nacheinander, was geschieht zum Eliminieren
der Wahrscheinlichkeit einer Verriegelung zu einer simulierten aber falschen
Sequenz des Synchronisationsmusters, das sich zu einer Trennung
der Paketlänge
wiederholt, wird die Synchronisationsphase komplett und die Verriegelungsphase
fängt an.
Der Wert von N wird durch den Implementor bestimmt. Selbstverständlich gewährleistet
ein höherer
Wert von N eine größere Wahrscheinlichkeit,
dass die Pakete auf geeignete Weise beschrieben werden, während ein
niedrigerer Wert von N zu einer schnelleren Synchronisationszeit führt.
-
Es
sei bemerkt, dass vorzugsweise keines der oben genannten Datenfreigabe-
oder Paketstartsignale, die verwendet werden um das Vorhandensein
gültiger
Daten bzw. den Start eines beschriebenen Pakets anzugeben, während der
Synchronisationsphase geltend gemacht werden, so dass die Daten,
die während
der Synchronisationsphase durch den FIFO 101 fließen, nicht
verwendet werden. Auf vorteilhafte Weise aber werden die Daten des
N. beschriebenen Pakets dennoch in dem FIFO 101 bis an die
Beschreibung ge speichert. Deswegen braucht das N. Paket nicht gestrichen
zu werden, wie bisher, sondern kann stattdessen benutzt werden.
-
In
der Verriegelungsphase kann das Paketstartsignal jeweils dann bestätigt werden,
wenn das Sync-Byte eines Pakets aus dem Kopfende des FIFOs 101 verlagert
wird. Dies gewährleistet,
dass die Daten, die aus dem FIFO 101 fließen, immer
gerahmt werden. Zusätzlich
setzt in der Verriegelungsphase der Controller 104 die
Prüfung
fort, ob die Vergleichsschaltung 103 und die Vergleichsschaltung 105 das
Synchronisationsmuster an den geeigneten Stellen in dem Datenstrom
detektieren.
-
In
dem Fall, dass ein richtiges Detektieren des Sync-Bytes während der
Verriegelungsphase ausbleibt, wird die Neusynchronisationsphase
eingegeben. In der Neusynchronisationsphase werden wiederholte Überprüfungen für das Synchronisationsmuster
an Stellen durchgeführt,
die auf Basis der Stellen des Synchronisationsmusters, die ursprünglich für die Entriegelungsphase
gefunden wurden, vorhergesagt wurden. Bis zu M Überprüfungen, wobei M kleiner ist
als N, können
durchgeführt
werden. Während
der Neusynchronisationsphase wird vorausgesetzt, dass die vorhergesagten
Stellen richtig sind, dass es aber in dem Datensignal einen Fehler gab.
Auf diese Weise kann das Datenfreigabesignal DE während der
Neusynchronisationsphase bestätigt
bleiben und das Paketstartsignal SOP kann zu jeder beliebigen Zeit
vorhergesagten Paketzeit bestätigt
werden. Ein Verlust an Synchronisationssignal LOS wird angegeben
und der Controller 104 wird den Verlust an Synchronisationssignal
bestätigen,
und zwar in dem Fall eines Versäumnisses,
das Synchronisationsmuster wenigstens einmal innerhalb der erlaubten
M Versuchen zu finden. Es kann ein Rückstellsignal RS erforderlich
sein um den Synchronisationsprozess neu zu starten, wenn der Verlust
an Synchronisationssignal einmal bestätigt worden ist. In dem Fall,
dass die Synchronisation an der vorhergesagten Stelle gefunden wird,
kehrt das System zu der Verriegelungsphase zurück.
-
Die
oben stehenden Zustandsübergänge sind
in dem in 2 dargestellten Zustandsdiagramm
dargestellt. In dieser Figur bezeichnet das Bezugszeichen 201 den
entriegelten Zustand, 202 bezeichnet den Synchronisationszustand, 203 bezeichnet
den Verriegelungszustand und 204 bezeichnet den Neusynchronisationszustand.
Der Pfeil 210 gibt an, dass ein Sync-Byte gefunden wurde,
der Pfeil 211 gibt an, dass ein Sync-Byte nicht gefunden
wurde, der Pfeil 212 gibt an, dass ein Sync-Byte gefunden
worden ist, aber weniger als N Male, der Pfeil 213 gibt
an, dass ein Sync-Byte N Male gefunden worden ist, der Pfeil 214 gibt
an, dass ein Sync-Byte gefunden wurde, der Pfeil 215 gibt
an, dass ein Sync-Fehler
aufgetreten ist, der Pfeil 216 gibt an, dass ein Sync-Byte
weniger als M Male fehlte, und der Pfeil 217 gibt an, dass
ein Sync-Byte M Male fehlte oder dass ein Rückstellsignal empfangen wurde.
-
3 zeigt
ein Flussdiagramm eines Beispiels eines Prozesses, durchgeführt durch
den Controller 104 im Betrieb des Paketvermessers 100 zum Beschreiben
von Paketen. Der Prozess fängt
in dem Schritt 301 an beim Rückstellen des Controllers 104 und
des ganzen Systems aus 1, während eine erste Einheit von
Daten in das Schwanzende des FIFOs 101 fließt. Danach,
testet der bedingte Abzweigpunkt 303, um zu bestimmen,
ob die Vergleichsschaltung 103 des Kopfendes angibt, ob
die Daten an dem Kopfende des FIFOs 101 mit dem Synchronisationsmuster übereinstimmen.
Wenn das Testergebnis in dem Schritt 303 JA ist, geht die
Steuerung zudem bedingten Abzweigpunkt 305, der testet
um zu Bestimmen, ob die Vergleichsschaltung 105 des Schwanzendes
angibt, ob die Daten an dem Schwanzende des FIFOs 101 mit
dem Synchronisationsmuster übereinstimmen.
Wenn das Testergebnis in dem Schritt 305 JA ist, geht die
Steuerung zu dem Schritt 307, worin der Controller 101 eine
Paketzeit wartet. Während
dieser Zeit fließen
nach wie vor Daten durch den FIFO 101, so dass die Daten, die
vorher in dem Schwanzende des FIFOs 101 waren, an dem Kopfende
des FIFOs 101 erscheinen. Danach testet an dem bedingten
Abzweigpunkt 309 der Controller 104 um zu bestimmen,
ob jede Vergleichsschaltung 103 und 105 des Kopfendes
und des Schwanzendes im Wesentlichen simultan eine Übereinstimmung
angeben. Sollte dies der Fall sein, so wurde das Synchronisationsmuster
an der richtigen Stelle, und zwar eine Paketzeit nachdem das vorhergehende
gefunden wurde, was angibt, dass es wahrscheinlich ist, dass die
gespeicherten Daten von dem Kopfende des FIFOs 101 zu einer
Länge von
einem Synchronisationsmuster von dem Schwanzende des FIFOs 101 ein
Paket ist.
-
Sollte
eines der Testergebnisse in de, Schritt 303, 305 oder 309 NEIN
sein, so geht die Steuerung zu dem Schritt 311, in dem
die Daten, die von der Vergleichsschaltung untersucht wurden, um
eine Einheit nach unten in dem FIFO 101 fließen. Dieses
Fließen kann
auf einer Einzelbit-Basis erfolgen, oder wenn die Bits in größeren Gruppen
gegliedert sind, beispielsweise in Bytes, die Grenzen gekannt haben, kann
das Fließen
um die Anzahl Bits in einer derartigen Gruppe gehen. Ein derartiges
negatives Ergebnis in den Schritten 303, 305 oder 309 gibt
an, dass es unwahrscheinlich ist, dass die gespeicherten Daten von
dem Kopfende des FIFOs 101 bis an eine Synchronisationsmusterlänge von
dem Schwanzende des FIFOs 101 ein Paket ist.
-
Wenn
das Testergebnis 309 JA ist, geht die Steuerung zu dem
bedingten Abzweigpunkt 313, der testet um zu ermitteln,
ob N Übereinstimmungen
gefunden worden sind. Sollten N Übereinstimmungen gefunden
worden sein, gibt dies an, dass es eine Wahrscheinlichkeit gibt,
die für
den Implementor akzeptierbar ist, dass jeweils, wenn eine Übereinstimmung
gefunden wird, das Kopfende des FIFOs 101 das Synchronisationsmuster
eines Pakets ist. Sollte das Testergebnis in dem Schritt 313 NEIN
sein, so geht die Steuerung zurück
zu dem Schritt 307 und der Prozess geht weiter, wie oben
beschrieben. Sollte das Testergebnis in dem Schritt 313 JA
sein, so geht die Steuerung zu dem Schritt 315, in dem
der Controller 104 bestätigt,
oder nach wie vor bestätigt, den
Datenfreigabeausgang und ggf. das Paketstartsignal für das zur
Zeit in dem FIFO 101 gespeicherte Paket bestätigt.
-
Daraufhin
wartet der Controller 104 eine Paketzeit, während das
in dem FIFO 101 gespeicherte Datenpaket ausgelesen wird,
ausgenommen für
die Daten, die sich in dem Schwanzende befanden, welche die neuen
Kopfendedaten werden, während neue
Daten empfangen und in dem FIFO 101 gespeichert werden.
Danach testet der bedingte Abzweigpunkt 319 um zu bestimmen,
ob die Vergleichsschaltung 103 des Kopfendes und die Vergleichsschaltung 105 des
Schwanzendes Übereinstimmungen
der Kopfendedaten und Schwanzendedaten mit dem Synchronisationsmuster
angeben. Sollte das Testergebnis in dem Schritt 319 JA
sein, so geht die Steuerung zurück
zu dem Schritt 315 und der Prozess setzt sich fort, wie
oben beschrieben. Sollte aber das Testergebnis in dem Schritt 319 NEIN
sein, so geht die Steuerung zu dem Schritt 320, in dem
der Start des Paketsignals bestätigt
werden kann. Danach wartet in dem Schritt 312 der Controller 104 eine
Paketzeit, so dass neue Daten, ausgenommen für das Schwanzende, durch den
FIFO 101 zyklisch hindurchgeführt werden.
-
Daraufhin
testet an dem bedingten Abzweigpunkt 323 der Controller 104 um
zu bestimmen, ob das Schwanzende des FIFOs 101 mit dem
Synchronisationsmuster übereinstimmt.
Sollte das Testergebnis in dem Schritt 323 JA sein, so
geht die Steuerung zurück
zu dem Schritt 315 und der Prozess setzt sich fort, wie
oben beschrieben. Sollte das Testergebnis des Schrittes 323 NEIN
sein, so geht die Steuerung zu dem bedingten Abzweigpunkt 325,
der testet um zu bestimmen, ob M Versuche bereits durchgeführt worden
sind um eine Übereinstimmung
der Schwanzenddaten mit dem Synchronisationsmuster zu finden, nach dem
das Testergebnis in dem Schritt 319 NEIN war. Sollte das
Testergebnis in dem Schritt 325 NEIN sein, so geht die
Steuerung zurück
zu dem Schritt 320. Sollte das Testergebnis in dem Schritt 325 JA
sein, so geht die Steuerung zu dem Schritt 327, in dem
der Controller 104 einen Verlust an Synchronisation angibt,
indem der Verlust des Synchronisationssignals bestätigt wird
und das Datenfreigabesignal entstätigt wird. Daraufhin endet
der Prozess in dem Schritt 329.
-
In
dem Fall, dass verschiedene Typen von Paketen innerhalb eines Bitstroms
verschiedene vorbestimmte Längen
haben können.
Sollte dies der Fall sein, so kann die effektive Speicherkapazität des FIFOs
eingestellt werden, wenn die zu detektierende Paketlänge im Voraus
bekannt ist. Auf alternative Weise kann der FIFO derart vorgesehen
sein, dass er mehrere simultane effektive Schwänze hat, die je auf ein gültiges Synchronisationsmuster überprüft werden
können.
In einer anderen derartigen Ausführungsform
kann mehr als nur ein FIFO parallel verwendet werden, die je eine
andere Länge
haben entsprechend jeder möglichen
Paketgröße plus
einem zusätzlichen
Synchronisationsmuster. Jeder derartige FIFO würde mit dem eigenen Satz von
Vergleichsschaltungen assoziiert und alle würden gesteuert werden um in
Konzert zu funktionieren.
-
Wenn
verschiedene Pakete des Bitstroms verschiedne Synchronisationsmuster
haben können, können viele
Vergleichsschaltungen verwendet werden, und zwar an dem Kopfende
und/oder an dem Schwanzende, je nachdem, um auf gültige Kombinationen
von Synchronisationsmustern an geeigneten Verschiebungen innerhalb
des Bitstroms zu überprüfen. Es
kann eine Zustandsmaschine verwendet werden um komplexen Zyklen
von Synchronisationsmustern nachzugehen, die erwartet werden können.
-
Auch
dürften
dem Fachmann andere Moden und Methoden zur Steuerung des FIFOs 101 zum
Implementieren der vorliegenden Erfindung einleuchten. Obenstehende
illustriert die Grundlagen der vorliegenden Erfindung Es dürfte folglich
einleuchten, dass der Fachmann imstande sein dürfte mehrere Anordnungen zu
entwickeln, die, obschon nicht explizit beschrieben oder hier dargestellt,
die Grundlagen der vorliegenden Erfindung verkörpern.