-
Die
vorliegende Erfindung betrifft ein Verfahren zum Steuern der Synchronisation
in einem Datenpaketkommunikationsnetzwerk mit zumindest zwei seriellen
Kommunikationsbussen (D, E), die durch eine Brücke miteinander verbunden sind,
von denen jeder aufeinander folgende Zeittakte definiert, die jeweils
eine Dauer aufweisen, die für
den betrachteten Bus spezifisch ist, wobei das Verfahren die folgenden Schritte
hat:
- – Erfassen
einer relativen Drift zwischen jeweiligen Takten der zumindest zwei
seriellen Kommunikationsbusse,
- – Übertragen
eines Befehls zum Modifizieren der Dauer des Taktls von einem der
zumindest zwei seriellen Kommunikationsbusse.
-
Es
sind Kommunikationsnetzwerke bekannt, die aus einer Anzahl von seriellen
Kommunikationsbussen gemäß dem IEEE
1394-Standard bestehen.
-
Diese
Busse sind als ein Netzwerk organisiert, d. h. sie sind untereinander
durch Elemente eines Verbindungsgeräts verbunden, die als "Brücken" bezeichnet werden.
-
Die
die seriellen Kommunikationsbusse verbindenden Brücken bilden
insbesondere das Thema des P1394.1- Standards, der sich gerade im Diskussionsstadium
befindet.
-
Eine
Brücke
ist ein Element eines Geräts, das
aus zwei "Portalen" zusammen gesetzt
ist, die es möglich
macht, zwei 1394-Busse miteinander zu verbinden. Ein "Portal" ist ein Satz von
1394-Anschlüssen,
die zu demselben 1394-Bus
gehören.
-
Das
Busnetzwerk bildet dadurch eine Struktur mit einer Baumhierarchie,
in der einer der Busse als der obere Bus betrachtet wird, bezeichnet
als "Wurzelbus", von dem verschiedene
andere Busse abgehen, die die Zweige der Struktur mit einer Baumhierarchie
bilden.
-
Jeder
serielle Kommunikationsbus eines solchen Netzwerks ist mit verschiedenen
Peripheriegeräten
wie Druckern, Computern, Servern, Scannern, Videorekordern, Decodern
(bekannt unter dem Ausdruck "Set-Top-Boxen"), Fernsehern, digitalen
Kameras, Videokameras, einer Digitalfotografieanlage usw. verbunden.
-
Diese
Peripheriegeräte
werden allgemein als Knoten bezeichnet.
-
Auf
jedem seriellen Kommunikationsbus des Netzwerks hat jedes Peripheriegerät oder Knoten
einen internen Taktgeber, von der sogenannte Taktsignale mit einer
sogenannten Taktfrequenz, z. B. 24,576 MHz, erzeugt werden.
-
Auf
jedem seriellen Kommunikationsbus des Netzwerks wird einer der Knoten
als der "Taktmeister" bezeichnet, und der "Taktmeister"-Knoten des "Wurzelbusses" wird als der "Netztaktmeister" bezeichnet.
-
Ferner
haben alle "Taktmeister"-Knoten des Netzwerks
eine Eigenschaft, die für
sie spezifisch ist, weil sie von der Frequenz des internen Taktgebers abhängt, von
der die Dauer einer "Referenzperiode" oder "Takt" definiert wird.
-
Die
mit T bezeichnete Dauer des Takts ist gleich einem ganzzahligen
Vielfachen ninit von Taktsignalen, die allen
Bussen gemeinsam oder sonst wie zugehörig sind, und die multipliziert
wird mit dem Inversen der Frequenz des internen Taktgebers, die spezifisch
für den "Taktmeister"-Knoten ist.
-
Die
Dauer des Takts T ist dadurch z. B. gleich 125 Mikrosekunden.
-
Wenn
zwei serielle Kommunikationsbusse durch eine Brücke verbunden sind, muss der "Taktmeister" eines der Busse
seine Takte mit Bezug auf die durch den "Taktmeister" des angrenzenden Busses erzeugten Takte
synchronisieren.
-
Der "Netztaktmeister"-Knoten wird dann
auf jedem Bus alle 125 Mikrosekunden ein sogenanntes "Taktstart"-Signal generieren.
-
Dieses
für die
anderen Knoten des Busses gedachte Signal informiert sie, dass sie
ihre isochronen Datenpakete, die mit jedem Takt des betrachteten
Busses verknüpft
sind, an einen oder mehrere der anderen Busse senden können, die
mit dem betrachteten Bus jeweils durch eine oder mehrere Brücken verbunden
sind.
-
Außerdem gibt
die Spezifikation des 1394-Standards an, dass die interne Taktfrequenz
eines 1394-Peripheriegerätes 24,576
MHZ +/– 100 ppm
sein muss, was maximal alle drei Takte des Busses maximal eine Differenz
von zwei internen Taktgebertakten zwischen zwei 1394-Peripheriegeräten ermöglicht.
-
Die
maximale Differenz wird tatsächlich
erhalten, wenn die interne Taktfrequenz eines der Peripheriegeräte 24,576
MHz + 100 ppm und die andere Frequenz des anderen Peripheriegeräts 24,576
MHz – 100
ppm ist.
-
Z.
B. hat die spezifische interne Taktfrequenz des für den mit
CMA bezeichneten "Netztaktmeister" einen Wert von 24,576 MHz + 100 ppm,
während
die des internen Taktgebers, der spezifisch für den "Taktmeister" CMB eines Busses
eines niedrigeren Niveaus ist, der direkt mit dem Bus eines höheren Niveaus über eine
Brücke
verbunden ist, einen Wert von 24,576 MHZ – 50 ppm hat.
-
Das
von seriellen Kommunikationsbussen gebildete Netzwerk ermöglicht die Übertragung
von synchronisierten Paketen entsprechend den betrachteten Bussen.
Die Busse werden z. B. verwendet für ein Übertragen von Datenpaketen
des Audio/Videotyps in Echtzeit.
-
Wenn
die zwei zuvor erwähnten
mit CMA und CMB bezeichneten "Taktmeister", die mit ihren jeweiligen
Taktfrequenzwerten, nämlich
24,576 MHz + 100 ppm und 24,576 MHZ – 50 ppm angenommen werden,
sind daher die Dauern der für
jeden der "Taktmeister" berechneten Takte,
bezeichnet als TA bzw. TB,
aufgrund der verschiedenen Frequenzen der internen Taktgeber verschieden,
die spezifisch für
diese "Taktmeister" sind.
-
1 illustriert
zusätzlich
dieses Phänomen und
zeigt auf zwei übereinander
liegenden Achsen für
eine und dieselbe Ganzzahl ninit, das mit
TA = ninit/FA und TB = ninit/FB ein Takt
der Dauer TB länger dauert als der Takt TA, wobei F die Taktfrequenz des betrachteten "Taktmeisters" ist.
-
In
dieser Figur sind über
den ersten zwei Takten des Busses die Nummern von zwei Datenpaketen
dargestellt, die durch die Zahlen 1 und 2 identifiziert werden.
-
Es
soll auch bemerkt werden, dass der in 1 dargestellte
Fall höchst
unwahrscheinlich in der Realität
ist, weil er keine Phasenverschiebung am Beginn von jedem der ersten
Takte der zwei Busse darstellt.
-
Jedoch
offenbart ein Vergleich der zwei Achsen eine relative Drift der
Startpunkte von jedem Takt, die tatsächlich einer Änderung
in der Phasenbeziehung (Null beim Zeitursprung in dieser Figur) über die Zeit
zwischen den betrachteten Takten entspricht.
-
Ferner
wurden zwei Pfeile zwischen den zwei Achsen dargestellt, die die
Verzögerung
anzeigen, mit denen die mit 1 und 2 bezeichneten Datenpakete auf
dem Bus B übertragen
werden, nachdem sie die die Busse A und B verbindende Brücke passiert
haben. Es wird als Effekt geschätzt,
dass die dargestellte Verzögerung
hier äquivalent
zu zwei Takten ist, und sie wird durch die für eine Verarbeitung der Pakete
in der Brücke
vor ihrer Übertragung auf
den Bus B erklärt.
-
Im
Hinblick auf die zwischen den jeweiligen Takten der Busse A und
B bemerkte relative Zeitdrift wird daher an dem Ende einer gewissen
Anzahl von Takten ein von dem Bus A kommendes Datenpaket nicht mehr
an den Bus B übertragen.
-
Die
Nichtübertragung
dieses Datenpakets ist daher sehr schädlich für Echtzeitdaten des Audio- und/oder
Videotyps.
-
Dies
kommt daher, weil es z. B. bei Daten des Videotyps sehr wichtig
ist, alle Videodatenpakete korrekt in der Reihenfolge zu übertragen,
um nicht das von den übertragenen
Paketen erhaltene Videobild zu verschlechtern.
-
Es
wird allgemein angemerkt, dass, wenn die Dauer TA kürzer ist
als TB, ein Datenpaket am Ende einer gewissen
Anzahl von Takten verloren wird, was bedeutet, dass ein Takt verloren
wurde, und wenn im Gegensatz dazu TA größer ist
als TB , kein Paket
während
eines der Takte übertragen
wird und es deswegen ein Takt ohne jede Signifikanz sein wird, der durch
sein Auftreten zu einem Verlust von Synchronisation in der Verarbeitung
von Daten des Audio- und/oder
Videotyps in Echtzeit führt.
-
Die
Erfassung einer relativen Drift zwischen den Takte, die folglich
verantwortlich für
einen verlorenen Takt oder einen Takt zu viel ist, wird in jeder Brücke für einen
gegebenen Takt mit der Hilfe von Registern durch gleichzeitiges
Zählen
der Anzahl von Taktsignalen durchgeführt, die durch die Taktgeber der
zwei betrachteten Busse erzeugt werden und z. B. ein Vergleichen
dieser zwei Zahlen mit einer anderen nach regelmäßigen Zeitintervallen.
-
Um
das Driftproblem zu beheben, sieht der P1394.1-Standard vor, eine Nachricht an den "Taktmeister" CMB zu
senden, sobald auf der Ebene der Brücke eine Drift erfasst wird,
um in der Folge die Ganzzahl ninit von Taktpulsen
zu modifizieren, um die Taktdauern TA und
TB gleich zu machen.
-
Es
ist zu bemerken, dass diese Synchronisation nur in Paaren von Bussen
durchgeführt
wird.
-
Beispielsweise
hat das Netzwerk des in 2 dargestellten Typs serielle
Kommunikationsbusse, die mit A, B, C, D und E bezeichnet werden und
die paarweise durch eine Brücke
verbunden sind: die Busse A und B, B und C, C und D, D und E sind
jeweils durch die Brücken
P1, P2, P3 und P4 verbunden.
Ferner haben die Busse A, B, C, D und E jeder einen "Taktmeister", der jeweils mit
CMA, CMB, CMC, CMD und CME bezeichnet sind.
-
Beim
Erfassen der Driften zwischen jedem Paar von durch eine Brücke verbundenen
Bussen hat der Anmelder die folgenden Beobachtungen gemacht: es
gibt alle vier Takte einen Takt zuviel zwischen den mit A und B
bezeichneten Bussen, alle acht Takte wird ein Takt zwischen den
mit B und C bezeichneten Bussen verloren, keine Drift wird zwischen
den Takten der mit C und D bezeichneten Busse erfasst, und alle
acht Takte wird ein Takt zwischen den mit D und E bezeichneten Bussen
verloren.
-
Daher
stellte der Anmelder fest, dass gemäß dem oben erwähnten Standard
eine Anzahl von durchzuführenden
Modifikationsnachrichten bei demselben "Taktmeister" eines niedrigen Busses des Netzwerks
ankommen kann.
-
Z.
B. erhält
der "Taktmeister" CMB des
Busses B ungefähr
ein Mal alle vier Takte einen Synchronisationsbefehl zum Modifizieren
der Dauer seines Takts, das ihm sagt, die Anzahl von durch seinen Taktgeber
erzeugten Taktpulsen um eine Einheit zu erhöhen.
-
Der "Taktmeister" CMC des
Busses C erhält zwei
Befehle zum Modifizieren der Dauer seines Takts: eines, das dem
Weiterleiten des oben erwähnten
Befehls entspricht und von dem "Taktmeister" des Busses B erhalten
wird, das andere, das einem Befehl zum Modifizieren der Dauer seines
Takts entspricht, das sagt, dass er die Anzahl seiner durch seinen
Taktgeber erzeugten Taktsignale um eine Einheit erhöhen soll,
um die zwischen den Takten der Busse B und C erfasste Drift auszugleichen.
Dies kommt daher, weil ein Senden von Synchronisationsbefehlen zum
Vorwärtsbringen
("gehe schneller") oder Zurücknehmen
("gehe langsam") des Starts des
folgenden Takts durch das Portal der Brücke durchgeführt wird, die
die Drift bezogen auf den benachbarten Bus erfasst hat. Dieses Portal
wird auch als das "Slave-Portal" oder "Taktsignalmeister" bezeichnet.
-
Die
Reaktionszeit zwischen der Zeit, zu der die Nachrichten durch den
betroffenen "Taktmeister" empfangen werden
und der Zeit, zu der sie verarbeitet werden, erhöht sich auf der Ebene des Busses, bei
dem eine Anzahl von Modifikationsnachrichten ankommt, mit der Anzahl
von zu verarbeitenden Nachrichten, und daher mit abnehmenden Niveau des
Busses in der Netzwerkhierarchie. Daher haben in Abhängigkeit
ihrer Hierarchie nicht alle Busse des Netzwerks die gleiche Zeitstabilität.
-
Ferner
kann es sein, dass Nachrichten im Konflikt miteinander stehen und
es ist nichts zum Überprüfen dieses
Punktes vorgesehen.
-
Außerdem wird
der Durchsatz des Busses umso mehr reduziert, je höher die
Anzahl von Synchronisationsnachrichten ist. Daher haben die Busse eines
niedrigeren Niveaus einen geringeren verfügbaren Durchsatz für eine Datenübertragung
als die von Bussen eines höheren
Niveaus.
-
Die
Zuspitzung dieses Phänomens
auf den niedrigeren Niveaus des Netzwerks kann zu einem Ausfall
der Synchronisation von Takten von verschiedenen Bussen führen und
daher wahrscheinlich zu einem Datenverlust.
-
Die
EP 0 695 063 handelt von
der Anpassung einer Abweichung von Taktgebern zwischen einer Übertragungsseite
und einer Empfangsseite in einem Paketübertragungssystem. In dem System sind
die Taktgeber auf der Übertragungsseite
und der Empfangsseite unabhängig
voneinander und sind deswegen nicht miteinander synchronisiert.
Dadurch akkumuliert sich ein Taktfehler und die Einschreiberate
eines Bitstroms in die FIFO-Übertragung
auf der Übertragungsseite
und die Ausleserate eines Bitstroms aus dem FIFO-Empfang an der
Empfangsseite weichen allmählich
voneinander ab. Um diesen Nachteil zu beheben, fügt die Übertragungsseite periodisch
eine Zeitinformation in die an die Empfangsseiten zu sendenden Datenpakete.
Solch eine Zeitinformation wird verwendet, um diese Abweichung zwischen
den Taktgebern der Übertragungsseite
und der Empfangsseite anzupassen.
-
Jedoch
betrifft dieses Dokument nicht die Verwaltung einer Taktdrift durch
ein Brückengerät, das Busse
miteinander verbindet.
-
Die
vorliegende Erfindung zielt daher darauf ab, zumindest eines der
oben erwähnten
Probleme durch Vorschlagen eines Verfahrens zum Steuern der Synchronisation
in einem Datenpaket kommunikationsnetzwerk zu beheben, das zumindest
zwei miteinander über
eine Brücke
verbundene serielle Kommunikationsbusse hat und wobei jeder sukzessive
Zeittakte definiert, die jeweils eine für den betrachteten Bus spezifische
Dauer haben, wobei das Verfahren die folgenden Schritte aufweist:
- – Erfassen
einer relativen Drift zwischen den jeweiligen Takten der zumindest
zwei seriellen Kommunikationsbusse,
- – Übertragen
eines Befehls zum Modifizieren der Dauer des Takts von einem der
zumindest zwei seriellen Kommunikationsbusse, dadurch gekennzeichnet,
dass das Verfahren zumindest eine Verzögerungsphase vor zumindest
einem der vorangehenden Schritte enthält.
-
Dadurch
sorgt die Erfindung für
ein Warten während
einer Verzögerungsphase,
bevor eine Aktion entweder des Erfassens einer Drift oder eines Übertragens
eines Synchronisationsbefehls unternommen wird, wenn solch eine
Aktion durch die Umstände
nötig ist.
Synchronisationsbefehl bezeichnet einen Befehl zum Modifizieren
der Dauer des Takts von einem der seriellen Kommunikationsbusse.
-
Dies
ermöglicht
es, dass sich die während dieser
Phase auftretenden Driften natürlich
ausgleichen oder aufaddieren, ohne mit jedem Takt eine oder mehrere
Aktionen zu unternehmen, die nicht notwendig sein würden. Es
wird den Driften daher ermöglicht,
natürlich
für eine
Dauer fortzuschreiten, die von den früheren Ergebnissen und/oder
durch andere mit der betrachteten Brücke verbundenen Gründen bestimmt
wird.
-
Gemäß einer
Charakteristik hat die Verzögerungsphase
eine Dauer, die sich über
eine Anzahl von Takten erstreckt.
-
Gemäß einem
ersten Ausführungsbeispiel der
Erfindung beginnt die Verzögerungsphase
nach dem Schritt des Erfassens einer relativen Drift zwischen jeweiligen
Takten von zumindest zwei seriellen Kommunikationsbussen.
-
Anstatt
einen Befehl zum Modifizieren der Dauer des Takts von einem der
zwei seriellen Kommunikationsbussen zu senden, sobald eine von Null verschiedene
relative Drift zwischen den jeweiligen Takten von den Bussen erfasst
wird, sieht die Erfindung daher ein Warten vor, bevor irgendeine Übertragung
eines Modifikationsbefehls vorgenommen wird.
-
Das
macht es möglich,
sobald eine von Null verschiedene Drift erfasst ist, nicht systematisch
den Durchsatz des Busses zum Übertragen
eines Synchronisationsbefehls in Anspruch zu nehmen.
-
Gemäß einer
Charakteristik hat die Verzögerungsphase
eine Anzahl von Erfassungsschritten.
-
Jeder
Erfassungsschritt findet für
einen gegebenen Takt statt.
-
Durch
ein Verzögern
einer Aktion zum Modifizieren der Dauer eines Takts für eine kurze
Weile, sobald eine von Null verschiedene Drift erfasst wird, kann
daher von dem natürlichen
Ausgleichen zwischen dieser Drift und einer oder mehreren anderen Driften
profitiert werden, die vor und/oder nach dieser einen während ein
und derselben Verzögerungsphase
erfasst werden.
-
Die
Anzahl von Modifikationen der Dauer der Bustakte, die manchmal in
Konflikt miteinander stehen, kann dadurch signifikant reduziert
werden.
-
Dadurch
sind die Busse auf einem niedrigeren Niveau in identischen Übertragungsbedingungen wie
die der Busse eines oberen Niveaus.
-
Weil
die Brücken
seltener zum Übertragen von
Befehlen zu den Bussen in Anspruch genommen werden, um die Dauer
ihrer Takte zu verringern oder zu erhöhen, gewinnen die Brücken in ähnlicher
Weise an Effizienz, wodurch ihre interne Verarbeitungszeit optimiert
wird.
-
Gemäß einer
speziellen Charakteristik sieht die Erfindung einen Schritt des
Speicherns der Drift vor, die gerade erfasst wurde.
-
Gemäß einer
speziellen Charakteristik enthält
der Schritt des Speicherns der erfassten Drift einen Vorgang des
Aufsummierens der erfassten Drift mit einer gespeicherten Drift
eines früheren
Takts.
-
Dadurch
wird die zuletzt erfasste Drift zu der Summe der nacheinander folgenden
vorher erfassten Driften auf der Ebene derselben Brücke addiert. Das
macht es möglich,
kontinuierlich die Änderung
in der summierten Drift über
die Zeit zu beobachten.
-
Zusätzlich kann
das Summieren der verschiedenen Nulldriften oder von Null verschiedene Driften,
die während
der Takte der Verzögerungsphase
erfasst werden, am Ende der Phase durch das natürliche Ausgleichen zu einer
gespeicherten Nulldrift führen.
-
Daher
ist es nicht mehr nötig,
einen Befehl zum Modifizieren der Dauer des Takts eines der Busse
zu übertragen.
-
Jedoch
ist die Summierungsoperation nicht obligatorisch, um die erfasste
Drift auf dem Niveau einer Brücke über eine
Anzahl von aufeinander folgenden Takten zu wissen oder zumindest
schätzen
zu können.
-
Dies
liegt daran, dass in diesem Fall die erfasste Drift für einen
Takt ohne Aufaddieren mit den anderen Driften gespeichert wird.
Z. B. kann die Anwendung eine digitale Verarbeitung bezogen auf
die Änderung über die
Zeit oder Variationen in der erfassten Drift vorsehen, um besser
die Übertragung von
Taktdauermodifikationsbefehlen zu verwalten.
-
Gemäß diesem
ersten Ausführungsbeispiel enthält das Verfahren
gemäß der Erfindung
einen Schritt des Vergleichens der gespeicherten Drift mit einem
vorbestimmten Schwellwert, wobei dieser Schwellwert einem Wert der
Drift entspricht, bei dem oder jenseits dessen es notwendig ist,
eine Modifikation der Dauer des Takts von einem der seriellen Kommunikationsbusse
durchzuführen.
-
Diese
Schwelle wird als eine Funktion der während der früheren Verzögerungsphasen
und z. B. der beim Speichern der Driften notierten Ergebnisse bestimmt.
-
Diese
Schwelle ist positiv oder Null oder negativ oder Null, um positive
Werte (um den Takt von einem der Busse in Bezug auf den Takt des
anderen Busses zu beschleunigen) oder negative Werte (um den Takt
eines der Busse in Bezug auf den Takt des anderen Busses zurückzunehmen)
der erfassten und gespeicherten Driften in Betracht zu ziehen.
-
Es
ist natürlich
vorteilhaft, zwei Schwellwerte zu haben, einen positiven, um Driften
zu vermeiden, die zu groß beim
Beschleunigen von Taktgebern sind, und den anderen negativ, um Driften
zu vermeiden, die zu groß beim
Zurücknehmen
von aufeinander bezogenen Taktgebern sind.
-
Daher
kommt die Verzögerungsphase
zu einem Ende, wenn die gespeicherte Drift in ihrem Absolutwert
größer als
der Absolutwert des vorbestimmten Schwellwerts ist.
-
In
dem Ausführungsbeispiel,
in dem die gespeicherte Drift mit einem vorbestimmten Schwellwert
verglichen wird, hat die Verzögerungsphase eine
Dauer, die sich über
eine Anzahl von Takten erstreckt, die nicht im voraus bestimmt ist,
weil es nicht bekannt ist, ob für
die kommenden Takte Driften zu erfassen sind.
-
Gemäß einer
anderen Charakteristik enthält das
Verfahren zumindest einen Schritt des Übertragens von zumindest einem
Befehl zum Modifizieren der Dauer des Takts von einem der zumindest
zwei seriellen Kommunikationsbusse, wenn die Verzögerungsphase
zu einem Ende kommt und die gespeicherte Drift im Absolutwert größer als
der Absolutwert des vorbestimmten Schwellwerts ist. Es ist z. B.
möglich,
dass die vorgesehene Modifikation proportional zu der gespeicherten
Drift ist.
-
Es
ist jedoch als Variante auch möglich,
einen Befehl zu übertragen,
solange die gespeicherte Drift nicht Null ist.
-
Gemäß einer
speziellen Charakteristik enthält
das Verfahren einen Schritt des Abnehmens des Absolutwertes der
gespeicherten Drift um einen an die Modifikation der Dauer des Takts
von einem der zumindest zwei seriellen Kommunikationsbussen angepassten
Wert.
-
Dieser
Wert ist z. B. proportional zu der gespeicherten Drift im vorher
erwähnten
Fall.
-
Es
soll bemerkt werden, dass die Methode gemäß der Erfindung vorsieht, dass
kein Schritt des Übertragens
eines Befehls zum Modifizieren der Dauer des Takts von einem der
Busse übertragen wird,
wenn die Verzögerungsphase
zu einem Ende kommt und die gespeicherte Drift Null ist.
-
Gemäß einer
ersten Variante des ersten Ausführungsbeispiels
erstreckt sich die Verzögerungsphase über eine
vorbestimmte Anzahl von der betrachteten Brücke zugeordneten Takte.
-
In
diesem Varianten-Ausführungsbeispiel wird
erfasst, ob eine Nulldrift oder von Null verschiedene Drift während dieser
Takte auftreten, ohne einen Befehl für eine Modifikation der Dauer
des Takts von einem der Busse zu übertragen.
-
Nur
wenn die vorbestimmte Anzahl von Takten erreicht wird, wird zumindest
ein Synchronisationsbefehl übertragen.
-
Gemäß einer
speziellen Charakteristik kann die vorbestimmte Anzahl von einer
Brücke
zugeordneten Takte von der Position der Brücke in der Struktur mit einer
Baumhierarchie abhängen,
wenn das Kommunikationsnetzwerk eine Anzahl von seriellen Kommunikationsbussen
hat, die durch Brücken
untereinander verbunden sind und eine Struktur mit einer Baumhierarchie
von einem sogenannten "Wurzelbus" aus bilden.
-
Daher
ist z. B. die Anzahl umso größer, je weiter
weg die Brücke
von dem "Wurzelbus" in der Netzwerkstruktur
mit einer Baumhierarchie ist.
-
Dies
liegt daran, dass das Risiko zum Empfangen einer Anzahl von Befehlen
zum Modifizieren der Dauer des Takts eines Busses, die manchmal
in Konflikt zueinander stehen, um so höher ist, je weiter weg die
Brücke
von dem "Wurzelbus" ist.
-
Folglich
ist es hoch wahrscheinlich, dass die nacheinander erfassten Driften
sich untereinander über
die Zeit ausgleichen werden, wenn die Überwachung der Änderung
in den auf dem Niveau der betrachteten Brücke erfassten Driften über eine
gewisse Anzahl von Takte geht.
-
Dadurch
wird es möglich
gemacht, sowie es oben schon war, eine Anzahl von zu übertragenden Befehlen
zum Modifizieren der Dauer des Takts des betrachteten Busses einzusparen.
-
Ferner
kann die vorbestimmte Anzahl von einer betrachteten Brücke zugeordneten
Takten auch alternativ von der erfassten Drift während zumindest einer früheren Verzögerungsphase
abhängen.
-
Es
soll bemerkt werden, dass eine zweite Variante des ersten Ausführungsbeispiels
vorgesehen werden kann, die wieder die zwei eben erwähnten Ausführungsbeispiele
nutzt.
-
Es
ist eine Frage in der zweiten Variante, mit einer anpassbaren Verzögerungsphase,
ob sie sich über
die vorbestimmte Anzahl von oben erwähnten Takten erstreckt, oder
sich über
ein kleinere Anzahl von Takten erstreckt, wobei die summierten Driften einen
der vorbestimmten Schwellwerte kreuzen.
-
Genauer
besteht der Schritt des Erfassens der relativen Drift zwischen den
jeweiligen Takten der Taktgeber der zumindest zwei seriellen Kommunikationsbusse
in einem untereinander Vergleichen der Anzahl von Taktsignalen,
die jeweils von den Taktgebern erzeugt worden sind, wenn die Dauer
T eines für einen
seriellen Kommunikationsbus spezifischen Takts durch eine Anzahl
ninit durch den internen Taktgeber des Busses
während
dieses Takts gemäß der Beziehung
T = ninit/F erzeugten Taktimpulse ist, wobei F
die Frequenz des betrachteten Taktgebers bezeichnet.
-
Die
seriellen Kommunikationsbusse entsprechen z. B. dem IEEE 1394-Standard,
der vorteilhaft ist, denn das Ziel dieses Standards ist es, die
Anschlüsse
von Peripheriegeräten
von allen Multimediatypen in den kommenden Jahren zu verbinden.
-
Nach
einem zweiten Ausführungsbeispiel der
Erfindung kommt die Verzögerungsphase
vor dem Schritt des Erfassens einer relativen Drift zwischen den
jeweiligen Takten der zumindest zwei seriellen Kommunikationsbusse
zu einem Ende.
-
Weil
der Anmelder festgestellt hat, dass es weder notwendig ist, eine
Aktion zum Erfassen einer Drift zu jedem Takt durchzuführen, noch
einen Befehl zum Modifizieren der Dauer des Takts von einem der mit
einer betrachteten Brücke
zu jedem Takt zu übertragen,
wird während
der Verzögerungsphase
gewartet, dass die Driften sich untereinander ausgleichen oder aufaddieren,
bevor sie erfasst werden.
-
Am
Ende der Verzögerungsphase
kann es sein, dass die Driften sich untereinander ausgeglichen haben,
wodurch der Erfassungsschritt zu einer Nulldrift führt oder
zu einer so kleinen Drift, dass es nicht notwendig ist, einen Synchronisationsbefehl
zu übertragen.
Die Wahl kann dann gemacht werden, entweder eine weitere ähnliche
Verzögerungsphase ablaufen
zu lassen, bevor ein neuer Erfassungsschritt erfolgt, oder eine
neue Verzögerungsphase ablaufen
zu lassen, bevor ein Synchronisationsbefehl übertragen wird, wobei aber
bei jedem Takt dieser neuen Verzögerungsphase
die auftretenden Nulldriften und von Null verschiedene Driften erfasst
werden.
-
Der
andere mögliche
Fall ist, dass die Driften sich ohne Auszugleichen am Ende der Verzögerungsphase
akkumuliert haben.
-
In
diesem Fall kann z. B. entschieden werden, zumindest einen Schritt
des Übertragens
eines Synchronisationsbefehls auszuführen, wenn die erfasste Drift
als für
zu groß beurteilt
wird.
-
Die
Modifikation der Dauer des Takts von einem der Busse (Synchronisation)
ist z. B. proportional zu der erfassten Drift.
-
Es
ist jedoch als Variante auch möglich,
einen Befehl zum Modifizieren der Dauer eines Takts von einem der
Busse zu übertragen,
solange die erfasste Drift nicht Null ist.
-
Es
kann auch vorgesehen werden, eine andere ähnliche Verzögerungsphase
ablaufen zu lassen, bevor ein neuer Erfassungsschritt durchgeführt wird,
wenn die erfasste Drift nicht zu groß ist, oder eine neue Verzögerungsphase
ablaufen zu lassen, bevor ein Synchronisationsbefehl übertragen
wird, aber bei jedem Takt dieser neuen Verzögerungsphase die auftretenden
Driften zu erfassen.
-
Gemäß einer
speziellen Charakteristik dieses zweiten Ausführungsbeispiels enthält dieses
Verfahren einen Schritt des Vergleichens der erfassten Drift mit
einem vorbestimmten Schwellwert, um zu bestimmen, ob es nötig ist,
dass die erfasste Drift die Übertragung
eines Synchronisationsbefehls erfordert, wenn die Verzögerungsphase
zu ihrem Ende kommt und eine Nulldrift erfasst ist.
-
Die
für diesen
Schwellwert spezifischen Charakteristiken sind dieselben wie die,
die oben für das
erste Ausführungsbeispiel
der Erfindung beschrieben wurden.
-
Gemäß einer
spezifischen Charakteristik enthält
das Verfahren zumindest einen Schritt des Übertragens von zumindest einem
Befehl zum Modifizieren der Dauer des Takts von einem der zumindest
zwei seriellen Kommunikationsbusse, wenn die erfasste Drift im Absolutwert
größer als
der Absolutwert des vorbestimmten Schwellwertes ist.
-
Die
Modifikation der Dauer des Takts von einem der Busse (Synchronisation)
ist z. B. proportional zu der erfassten Drift.
-
Es
ist jedoch als Variante auch möglich,
einen Befehl zum Modifizieren der Dauer des Takts von einem der
Busse zu übertragen,
solange die erfasste Drift nicht Null ist.
-
Wie
vorher erwähnt
ist es möglich,
entweder eine andere ähnliche
Verzögerungsphase
ablaufen zu lassen, bevor ein neuer Erfassungsschritt erfolgt oder
eine neue Verzögerungsphase
ablaufen zu lassen, bevor ein Synchronisationsbefehl übertragen wird,
wobei aber bei jedem Takt dieser neuen Verzögerungsphase erfasst wird,
ob eine Nulldrift oder von Null verschiedene Drift auftritt, wenn
eine erste Verzögerungsphase
vergangen ist und ein Schritt eines Erfassens einer Drift durchgeführt wurde
und vorausgesetzt, dass die Drift nicht zu groß ist.
-
In
jedem dieser zwei Fälle
wird entweder die erfasste Drift nur ein Mal gespeichert und das
Ende der ähnlichen
Verzögerungsphase
wird abgewartet, um eine Drift zu erfassen und zu speichern, oder
jede erfasste Drift wird während
dieser neuen Verzögerungsphase
gespeichert.
-
Ferner
kann der Schritt des Speicherns jeder erfassten Drift in den zwei
vorgesehenen Fällen
einen Vorgang des Summierens der späteren mit einer für einen
früheren
Takt gespeicherten Drift enthalten.
-
Infolge
des Summierens haben sich entweder die gespeicherten Driften ausgeglichen
oder sie haben sich akkumuliert, und das Verfahren gemäß der Erfindung
enthält
dann einen Schritt des Vergleichens der gespeicherten Drift mit
einem vorbestimmten Schwellwert, um zu bestimmen, ob es nötig ist, dass
diese Drift die Übertragung
eines Synchronisationsbefehls erfordert.
-
Die
Charakteristiken dieses Schwellwertes sind dieselben wie die oben
Beschriebenen für
das erste Ausführungsbeispiel.
-
Gemäß einer
Charakteristik kommt die Verzögerungsphase
dann zu einem Ende, wenn die gespeicherte Drift im Absolutwert größer als
der Absolutwert des vorbestimmten Schwellwertes ist.
-
Das
Verfahren enthält
dann zumindest einen Schritt des Übertragens von zumindest einem
Befehl zum Modifizieren der Dauer des Takts von einem der zumindest
zwei Kommunikationsbusse.
-
Die
Modifikation der Dauer des Takts von einem der Busse (Synchronisation)
ist z. B. proportional zu der gespeicherten Drift.
-
Jedoch
ist es als Variante auch möglich,
einen Befehl zum Modifizieren der Dauer des Takts von einem der
Busse zu übertragen,
solange die gespeicherte Drift nicht Null ist.
-
Gemäß einer
besonderen Charakteristik enthält
das Verfahren einen Schritt zum Reduzieren des absoluten Wertes
der gespeicherten Drift um einen der Modifikation der Dauer des
Takts von einem der zumindest zwei seriellen Kommunikationsbusse
angepassten Wert.
-
Der
Wert ist daher z. B. proportional zu der gespeicherten Drift in
dem oben erwähnten
Fall.
-
Wenn
andererseits die gespeicherte Drift Null ist, sieht das Verfahren
gemäß der Erfindung
vor, keinen Schritt des Übertragens
eines Befehls zum Modifizieren der Dauer des Takts von einem der
Busse vorzunehmen.
-
Im
Allgemeinen bleiben die Charakteristiken und Vorteile für das zweite
Ausführungsbeispiel
die gleichen wie für
das erste Ausführungsbeispiel
beschrieben.
-
Entsprechend
bezieht sich die Erfindung auf ein Gerät zum Steuern der Synchronisation
in einem Datenpaketkommunikationsnetzwerk mit zumindest zwei seriellen
Bussen, die durch eine Brücke
miteinander verbunden sind, wobei die Brücke die Schnittstelle zwischen
den zumindest zwei seriellen Kommunikationsbussen bereitstellt,
die jeweils aufeinanderfolgende Zeittakte definieren, die jeweils
eine Dauer haben, die spezifisch für den betrachteten Bus ist,
wobei das Gerät
folgendes hat:
- – eine Einrichtung zum Erfassen
einer relativen Drift zwischen den jeweiligen Takten der zumindest
zwei Kommunikationsbusse,
- – eine
Einrichtung zum Übertragen
eines Befehls zum Modifizieren der Dauer des Takts eines der zumindest
zwei seriellen Kommunikationsbusse, dadurch gekennzeichnet, dass
das Gerät
eine Einrichtung zum Verzögern
von zumindest einer der Aktionen eines Erfassens einer Drift und
eines Übertragens
eines Befehls zum Modifizieren der Dauer eines Takts hat.
-
Gemäß einer
Charakteristik hat das Gerät genauer
eine Einrichtung zum Verzögern
einer Aktion des Übertragens
eines Befehls zum Modifizieren der Dauer eines Takts.
-
Gemäß einer
Charakteristik hat das Gerät genauer
eine Einrichtung zum Verzögern
einer Aktion zum Erfassen einer relativen Drift zwischen den jeweiligen
Takten der zumindest zwei Kommunikationsbusse.
-
Gemäß einer
Charakteristik hat das Gerät eine
Einrichtung zum Übertragen
eines Befehls zum Modifizieren der Dauer des Takts von einem der
zumindest zwei seriellen Kommunikationsbusse.
-
Die
Modifikation ist z. B. proportional zur erfassten Drift.
-
Gemäß einem
zweiten Aspekt bezieht sich die Erfindung auf eine Brücke, die
die Schnittstelle zwischen zumindest zwei seriellen Kommunikationsbussen
in einem Datenpaketkommunikationsnetzwerk bereitstellt, dadurch
gekennzeichnet, dass die Brücke
ein Gerät
zum Steuern der Synchronisation in diesem Netzwerk hat, die oben
kurz beschrieben wurde.
-
Gemäß einem
dritten Aspekt bezieht sich die Erfindung auf eine Datenverarbeitungsanlage,
dadurch gekennzeichnet, dass sie eine Brücke gemäß der vorangehenden kurzen
Beschreibung hat.
-
Die
Datenverarbeitungsanlage ist z. B. ein Drucker.
-
Die
Datenverarbeitungsanlage ist z. B. ein Server.
-
Die
Datenverarbeitungsanlage ist z. B. ein Computer.
-
Die
Datenverarbeitungsanlage ist z. B. eine Faxmaschine.
-
Die
Datenverarbeitungsanlage ist z. B. ein Scanner.
-
Die
Datenverarbeitungsanlage ist z. B. ein Videorekorder.
-
Die
Datenverarbeitungsanlage ist z. B. ein Decoder (bekannt unter dem
Begriff "Set-Top-Box").
-
Die
Datenverarbeitungsanlage ist z. B. ein Fernseher.
-
Die
Datenverarbeitungsanlage ist z. B. eine Videokamera.
-
Die
Datenverarbeitungsanlage ist z. B. eine Digitalkamera.
-
Die
Datenverarbeitungsanlage ist z. B. eine Digitalfotografieanlage.
-
Gemäß einem
vierten Aspekt bezieht sich die Erfindung auf ein Datenpaketkommunikationsnetzwerk
mit zumindest zwei seriellen Kommunikationsbussen, die durch eine
Brücke
miteinander verbunden sind, dadurch gekennzeichnet, dass die Brücke gemäß der oben
Beschriebenen ist.
-
Gemäß einem
fünften
Aspekt bezieht sich die Erfindung auf ein Datenkommunikationsnetzwerk mit
zumindest zwei seriellen Kommunikationsbussen, die durch eine Brücke miteinander
verbunden sind, dadurch gekennzeichnet, dass das Netzwerk eine Datenverarbeitungsanlage
hat, wie oben kurz beschrieben.
-
Die
Erfindung bezieht sich ferner auf eine Informationsspeichereinrichtung,
die möglicherweise ganz
oder teilweise entfernbar ist, die lesbar ist durch einen Computer
oder einen Prozessor, und die Anweisungen eines Computerprogramms
enthält,
dadurch gekennzeichnet, dass sie die Implementierung des Verfahrens
zum Steuern der Synchronisation in einem Netzwerk ermöglichen,
wie oben kurz beschrieben.
-
Die
Erfindung bezieht sich auch auf eine Informationsspeichereinrichtung,
die lesbar ist durch einen Computer oder einen Prozessor, und die
Daten enthält,
die sich aus der Implementierung des Verfahrens zum Steuern der
Synchronisation in einem Kommunikationsnetzwerk ergeben, wie kurz
oben beschrieben.
-
Die
Erfindung bezieht sich auch auf eine Schnittstelle, die es möglich macht,
Anweisungen eines Computerprogramms zu empfangen, dadurch gekennzeichnet,
dass sie die Implementierung des Verfahrens zum Steuern der Synchronisation
in einem Netzwerk wie kurz oben beschrieben ermöglicht.
-
Die
Erfindung bezieht sich auf ein Computerprogrammprodukt, das in ein
programmierbares Gerät
ladbar ist, das Softwarecodeanteile zum Durchführen der Schritte des Verfahrens
zum Steuern der Synchronisation in einem Kommunikationsnetzwerk wie
kurz oben beschrieben enthält,
wenn das Produkt auf einem programmierbaren Gerät abläuft.
-
Weil
die Vorteile und Charakteristiken, die spezifisch für das Gerät zum Steuern
der Synchronisation in einem Kommunikationsnetzwerk, für die Brücke, die
die Schnittstelle zwischen zumindest zwei seriellen Kommunikationsbussen
bereitstellt und solch ein Gerät
hat, für
die Datenverarbeitungsanlage mit solch einer Brücke, für das Netzwerk mit solch einer
Brücke
und für
das Netzwerk mit einem solch einer Datenverarbeitungsanlage, genauso
wie für
die Informationsspeichereinrichtung dieselben sind wie die oben
für das
Verfahren zum Steuern der Synchronisation in einem Kommunikationsnetzwerk gemäß der Erfindung
beschriebenen, werden sie hier nicht wiederholt.
-
Andere
Charakteristiken und Vorteile werden sich während der Beschreibung ergeben,
die als ein illustratives und nicht beschränkendes Beispiel folgt, und
mit Bezug auf die begleitenden Zeichnungen produziert ist, in denen:
-
1 eine
schematische Ansicht des Driftphänomens
zwischen den Dauern von Takten von internen Taktgebern der "Taktmeister" von zwei seriellen
Kommunikationsbussen illustriert, die durch eine Brücke verbunden
sind;
-
2 eine
schematische Ansicht eines seriellen Kommunikationsbusnetzwerks
gemäß dem Stand
der Technik ist;
-
3 eine
schematische Ansicht eines seriellen Kommunikationsbusnetzwerks
gemäß der Erfindung
ist;
-
4 eine
detaillierte schematische Ansicht der in 3 dargestellten
Brücke
PDE gemäß der Erfindung
ist;
-
5 eine
schematische Ansicht eines Registers R ist, das in einer in 4 dargestellten 1394-PHY/LINK
Komponente enthalten ist;
-
6 eine
schematische Ansicht eines Algorithmus des Synchronisationssteuerungsverfahrens
gemäß einem
ersten Ausführungsbeispiel
der Erfindung ist;
-
7 eine
schematische Ansicht ist, die verschiedene in dem RAM-Speicher von 4 gespeicherte
Register darstellt;
-
8 eine
schematische Ansicht eines Algorithmus der Synchronisationssteuerungsmethode gemäß einer
Variante des ersten Ausführungsbeispiels
der in 6 dargestellten Erfindung ist;
-
9 eine
schematische Ansicht eines Algorithmus des Synchronisationssteuerungsverfahrens
gemäß einem
zweiten Ausführungsbeispiel
der Erfindung ist;
-
10 eine
schematische Ansicht, die die Struktur eines Taktstartpakets darstellt
ist;
-
11 eine
schematische Ansicht ist, die die Struktur eines Synchronisationsbefehls
darstellt.
-
Wie
in 3 dargestellt und mit dem allgemeinen Bezugszeichen 10 bezeichnet,
hat ein Datenkommunikationsnetzwerk gemäß der Erfindung eine Anzahl
von seriellen Kommunikationsbussen, die z. B. dem IEEE 1394-Standard
entsprechen.
-
Ein
bestimmter Bus in dem Netzwerk wird als der obere Bus bestimmt,
bezeichnet auch als der "Wurzelbus", von dem die verschiedenen
anderen Kommunikationsbusse abgehen, die die Zweige einer Struktur
mit einer Baumhierarchie bilden, wobei die Busse, die die Enden
der Zweige darstellen, als "Blätter" bezeichnet werden.
-
Die
seriellen Kommunikationsbusse werden mit den Buchstaben A bis L
in 3 bezeichnet, wobei der Bus A der Wurzelbus und
die Busse E, K und L die Blattbusse sind.
-
Jeder
serielle Kommunikationsbus dieses Netzwerks ist mit einer Anzahl
von Peripheriegeräten wie
z. B. Drucker, Computer, Server, Scanner, Videorekorder, Decoder
(bekannt unter dem Begriff "Set-Top-Box"), Fernseher, Digitalkameras,
Videokameras, Digitalfotografieanlage usw. verbunden.
-
Diese
Peripheriegeräte
bilden das, was als die Knoten des Busses bezeichnet wird. Jedes
Peripheriegerät
oder Knoten eines Busses hat einen internen Taktgeber, nicht in 3 dargestellt,
von dem sogenannte Taktsignale mit einer sogenannten Taktfrequenz
erzeugt werden, z. B. mit 24,576 MHz.
-
Jeder
serielle Kommunikationsbus des Netzwerks hat einen Knoten, der als
der "Taktmeister" bezeichnet wird.
Der "Taktmeister"-Knoten des "Wurzelbusses" wird als der "Netztaktmeister" bezeichnet. In 3 sind
nur die Peripheriegeräte,
die als "Taktmeister" und mit CM bezeichnet
werden, dargestellt. Daher werden der "Netztaktmeister" mit CMA und
die Taktmeister der Busse B bis L jeweils mit CMB,
..., CML bezeichnet. Die Organisation dieser
Busse als ein Netzwerk involviert Elemente von einem Verbindungsgerät, die auch
als Schnittstellen bezeichnet werden und die Brücken genannt werden.
-
Die
seriellen Kommunikationsbusse A und B sind verbunden durch eine
mit PAB bezeichnete Brücke, die mit B und C bezeichneten
seriellen Kommunikationsbusse sind durch eine mit PBC bezeichnete Brücke verbunden,
die mit C und D bezeichneten seriellen Kommunikationsbusse sind
durch eine mit PCD bezeichnete Brücke verbunden,
die mit D und E bezeichneten seriellen Kommunikationsbusse sind durch
eine mit PDE bezeichnete Brücke verbunden. Die
seriellen Kommunikationsbusse B und H sind durch eine mit PBH bezeichnete Brücke verbunden, die mit H und
J bezeichneten seriellen Kommunikationsbusse sind durch eine mit
PHJ bezeichnete Brücke verbunden und die mit H
und L bezeichneten seriellen Kommunikationsbusse sind durch eine
mit PHL bezeichnete Brücke verbunden. Die seriellen
Kommunikationsbusse A und F sind durch eine mit PAF bezeichnete
Brücke
verbunden, die mit F und G bezeichneten seriellen Kommunikationsbusse
sind durch eine mit PFG bezeichnete Brücke verbunden, die
mit G und I bezeichneten seriellen Kommunikationsbusse sind durch
eine mit PGI bezeichnete Brücke verbunden,
die mit I und K bezeichneten seriellen Kommunikationsbusse sind
durch eine mit PIK bezeichnete Brücke verbunden.
-
4 stellt
die schematische Struktur eines Elementes einer Datenverarbeitungsanlage
wie einen Computer 11 mit der Brücke PDE dar.
Alle Brücken
des in 3 dargestellten Netzwerks haben z. B. diese Struktur.
-
Die
Datenverarbeitungsanlage kann auch die Form eines Druckers, Servers,
einer Faksimilemaschine, eines Scanners, eines Videorekorders, eines
Decoders (bekannt unter dem Ausdruck "Set-Top-Box"), eines Fernsehers, einer Videokamera,
einer Digitalkamera oder einer Digitalfotografieanlage haben.
-
Alle
Brücken
aus 3 können
z. B. in einer Datenverarbeitungsanlage dieses Typs integriert sein
oder können
selbst eine Anlage darstellen.
-
Die
Brücke
PDE stellt in diesem Beispiel ein Gerät zum Steuern
der Synchronisation gemäß der Erfindung
zwischen den internen Taktgebern der "Taktmeister" CMD und CME dar. Diese Brücke hat eine arithmetische
Einheit CPU 12, einen Permanentspeicher 14 (ROM),
der verschiedene Anweisungen der in 6 und 8 dargestellten
Algorithmen enthält,
und einen temporären
Speicher 16 (RAM). Diese drei Elemente 12, 14 und 16 kommunizieren
mittels jeweiliger mit 18, 20, 22 bezeichneter Adress- und Datenbusse mit
einem als 24 bezeichneten Block, der Fachleuten unter dem
Name PCI-Brücke
bekannt ist.
-
Der
Computer hat auch einen Bildschirm 13, eine Tastatur 15,
ein Diskettenlaufwerk 17, ein CD-ROM-Laufwerk 19 und
eine Netzwerkschnittstelle 21 (4).
-
Die
Netzwerkschnittstelle 21 kann z. B. mittels eines lokalen
Netzwerks des Ethernet-Typs (nicht dargestellt) die Anweisungen
eines Computerprogramms empfangen, die die Implementierung des Verfahrens
gemäß der Erfindung
ermöglichen.
-
Solche
Instruktionen können
auch auf dem Diskettenlaufwerk oder dem CD-ROM-Laufwerk enthalten
sein.
-
Der
Block 24 ist tatsächlich
ein PCI-Komponentensatz, wie z. B. der Intel 440LX AGP-Satz, der durch
die Firma INTEL vermarktet wird. Daher weist der Block 24 z.
B. eine 82443LX-Komponente auf, die die Schnittstelle mit dem Speicher 16 über den Speicherbus 22 und
mit der arithmetischen Einheit CPU 12 mittels des lokalen
Busses 18 bereitstellt. Die 82443LX-Komponente ist selbst
mit einer 82371AB-Komponente verbunden, die eine Schnittstelle mit
dem ISA-Bus 20 bereitstellt, der mit dem Speicher 14 und
verschiedenen peripheren Erweiterungen verbunden ist: Bildschirm 13,
Tastatur 15, Diskettenlaufwerk 17, CD-ROM-Laufwerk 19 und Netzwerkschnittstelle 21.
Ein mit der arithmetischen Einheit CPU 12 verbundener Intel
82093AA IOAPIC Interrupt-Steuerer verwaltet die Interrupts, die
in dem System auftreten können.
-
Dieser
Block 24 macht es bemerkenswerterweise möglich, Daten
durch den PCI-Standardbus 26 (PCI bedeutet "Periphere Komponentenverbindung") mit anderen PCI-Schnittstellenkomponenten
auszutauschen, die mit 28 bezeichnet sind. Der Bus 26 kann
auch mit anderen nicht in der Figur dargestellten Elementen verbunden
sein, die selbst eine PCI-Schnittstelle bereitstellen und in der
Lage sind, z. B. Datenverarbeitungsfunktionen zu implementieren.
-
Die
Komponente 28 ist eine AMCC5933QC genannte Komponente und
wird vermarktet durch die Firma Applied Micro Circuits Corporation.
-
Es
soll bemerkt werden, dass das Synchronisationssteuerungsgerät gemäß der Erfindung
nicht notwendigerweise der Brücke
selbst entspricht. Es kann daher tatsächlich eine Untergruppe davon
darstellen, die z. B. aus verschiedenen Elementen gebildet wird,
die es ermöglichen,
die Funktionen des Verzögerns,
des Erfassens einer Drift, ihres Speicherns, des Vergleichens mit
Bezug auf einen vorbestimmten Schwellwert und des Übertragens
von Befehlen zum Modifizieren der Dauer des Takts eines Busses zu implementieren.
-
Die
Verzögerungsfunktion
wird durch die arithmetische Einheit CPU 12 und die ROM- 14 und RAM- 16 Speicher
implementiert.
-
Die
Drifterfassungsfunktion wird durch die arithmetische Einheit und
die ROM- und RAM-Speicher, den logischen Steuerungsblock 34 und
die Komponenten 30, 32 implementiert.
-
Die
Funktion des Speicherns der erfassten Drift und eines Vergleichens
davon mit Bezug auf einen vorbestimmten Schwellwert werden durch
die arithmetische Einheit und die ROM- und RAM-Speicher implementiert.
-
Die
Funktion des Übertragens
eines Befehls zum Modifizieren der Dauer des Takts eines Busses wird
durch den logischen Steuerungsblock 34 und die Komponenten 30, 32 unter
Befehl der arithmetischen Einheit CPU 12 implementiert.
-
Die
in 4 dargestellte Brücke hat zusätzlich zwei Komponentensets,
die auch als Blöcke 30 und 32 bezeichnet
werden, die jeweils als Schnittstellen mit den in 3 mit
D und E bezeichneten 1394-seriellen Kommunikationsbussen dienen.
Jeder 1394-PHY/LINK-Komponentensatz
oder Block besteht, z. B. aus einer TSB21LV03A PHY-Komponente und
einer TSB12LV01A LINK-Komponente, die
von der Firma Texas Instruments vermarktet werden, und 1394-Verbindern,
z. B. vermarktet durch die Firma Molex, z. B. unter der Bezugsnummer
53462.
-
Jeder
mit 30, 32 bezeichnete Block hat eine Einrichtung
zum Zählen
der Anzahl von Signalen, die von dem internen Taktgeber synchronisiert
mit dem "Taktmeister" des seriellen Kommunikationsbusses D
oder E erzeugt werden, mit dem er durch die Taktstartpakete in Kontakt
ist.
-
Diese
Zähleinrichtungen
haben z. B. die Form eines Registers wie in 5 dargestellt.
Solch ein als Taktzeitregister bezeichnetes Register hat eine Anzahl von
Bereichen, insbesondere einen ersten Bereich, der auf der rechten
Seite von 5 dargestellt ist und der "Takt_Offset" genannt wird. In
diesem ersten Gebiet, das 12 Bits hat, wird die Anzahl von Taktsignalen
ninit in einem bestimmten Takt des Kommunikationsbusses
aufgezeichnet, mit dem die betrachteten 1394-PHY/LINK-Komponentenblocks in
Kontakt sind.
-
Gemäß dem, was
vorher erwähnt
wurde, werden in diesem Gebiet bis zu 3071 Taktsignale gezählt. Mit
jedem Signal des betrachteten Taktgebers wird der Wert dieses ersten
Gebiets des Registers erhöht.
Wenn der Wert 3071 erreicht wird und ein neues Taktsignal gezählt wird,
wechselt der Wert des in dem ersten Gebiet enthaltenen Registers
auf Null, und ein Übertrag
erhöht
dann den Wert des Registers des zweiten Gebiets, das in 5 im
Zentrum dargestellt ist und "Takt_Zähler" genannt wird. Dieses
zweite Gebiet zählt
die Gesamtzahl von Takten, die vergangen sind bis zu einer Anzahl
7999, und wird in 13 Bits aufgezeichnet. Dieses zweite Gebiet wird
jedes Mal erhöht,
wenn von dem ersten Gebiet "Takt_Offset" ein Übertrag
erzeugt wird.
-
Jedoch
verursacht ein Erhöhen
um eine Einheit von dem Wert 7999 in dem zweiten Gebiet des Registers
R ein Rücksetzen
zum Nullwert dieses Registers dieses Gebietes, wodurch ein Übertrag
erzeugt wird, der ein drittes Gebiet des Registers R erhöht, und
der auf der linken Seite in 5 dargestellt ist
und "Zweit_Zähler" genannt wird.
-
Das
dritte Gebiet "Zweit_Zähler" wird in 7 Bits aufgenommen.
Dieses dritte Gebiet zählt
die Anzahl von Malen, bei denen das zweite Gebiet "Takt_Zähler" überläuft, bis zu einem Wert 127.
Ein Erhöhen
um eine Einheit von dem Wert 127 in dem dritten Gebiet des Registers
R verursacht ein Rücksetzen
des in diesem Gebiet aufgezeichneten Wertes zu Null.
-
Zusätzliche
Information über
dieses Registers R kann in Absatz 8.3.2.3.1 des IEEE 1394-95-Standards
gefunden werden.
-
Die
in 4 dargestellte Brücke hat auch einen mit 34 bezeichneten
logischen Steuerungsblock, der jeweils mit den Komponentenblöcken 30 und 32 über die
mit 36 und 38 bezeichneten Busse kommunizieren
kann, genauso wie mit der PCI-Schnittstellenkomponente 28 über einen
Bus 40.
-
Die
Busse 42 und 44 erlauben auch die Übertragungen
von Daten zwischen der jeweiligen PCI-Schnittstellenkomponente 28 und
dem logischen Steuerungsblock 34, genauso wie dem mit 30 bezeichneten
1394-PHY/LINK-Komponentenblock einerseits und andererseits mit dem
logischen Steuerungsblock 34 und dem mit 32 bezeichneten 1394-PHY/LINK-Komponentenblock.
-
Dieser
logische Steuerungsblock 34 ermöglicht es, isochrone und asynchrone
Datenpakete, die von dem seriellen Kommunikationsbus D über den mit 30 bezeichneten
und damit sowie mit dem RAM-Speicher 16 verbundenen 1394-PHY/LINK-Komponentenblock
kommende Datenpakete unter der Steuerung der DMA-("Direkter Speicherzugang")Funktion zu übertragen,
die in der PCI-Schnittstellenkomponente 28 angeordnet
ist, und die vorher durch die arithmetische Einheit CPU 12 initialisiert
wurde.
-
Umgekehrt
ermöglicht
es der Block 34 Datenpakete, die von dem Speicher 16 des
anderen mit 32 bezeichneten 1394-PHY/LINK-Blocks im Hinblick auf ihre Übertragung
auf dem mit ihm verbundenen seriellen Kommunikationsbus E zu übertragen.
Das läuft
auch unter der Steuerung der DMA-("Direkter Speicherzugriff")Funktion, die in
der PCI-Schnittstellenkomponente 28 angeordnet
ist, und die vorher durch die arithmetische Einheit CPU 12 initialisiert wurde.
-
Der
logische Steuerungsblock 34 ermöglicht es auch, einen PCI-Interrupt
zu steuern, der sich auf das Empfangen oder Senden eines Taktstartpakets durch
die Schnittstellenkomponente 28 bezieht, um die arithmetische
Einheit CPU 12 von einem Taktstart zu informieren. Auf
die gleiche Weise ist der logische Steuerungsblock 34 in
der Lage, einen PCI-Interrupt für
andere Ereignistypen wie dem Empfangen oder Senden eines Datenpakets
auf dem 1394-Bus zu erzeugen.
-
Der
Block 34 liest gleichzeitig die Register R, die in jeder
der Komponenten 30 und 32 angeordnet sind.
-
Das
Lesen eines in dem logischen Steuerungsblock 34 enthaltenen
Registers mit den jeweiligen Werten zu einem und dem gleichen Moment,
wie die zwei Register R ("Taktzeitregister"), die mit jedem mit 30, 32 bezeichneten
1394-PHY/LINK-Komponentenblock verbunden sind, ist durch die PCI-Schnittstellenkomponente 28 möglich. Dadurch
löst ein
Lesen dieses Registers den Vorgang des simultanen Erfassens des
Wertes der Register R der Komponenten 30 und 32 durch
den logischen Steuerungsblock 34 aus.
-
Wenn
es mit Bezug auf 1 nötig ist, die Dauer des Takts
des Busses E infolge der Übertragung
eines Synchronisationsbefehls zu modifizieren, modifiziert der "Taktmeister" CME die Dauer dieses durch
seinen internen Taktgeber definierten Takts und erzeugt im folgenden
Takt eine Taktstartnachricht.
-
Die
Taktstartnachricht wird an alle an den Bus E angeschlossenen Peripheriegeräte gesendet, und
daher zu dem "Portal" der Brücke PDE, und ermöglicht dadurch ihre Synchronisation.
-
Das "Portal" der Brücke PDE, die den mit 32 bezeichneten
1394-PHY/LINK-Komponentenblock enthält, synchronisiert sich selbst
durch Modifizieren des Wertes seines Registers R.
-
Eine
Modifikation des Wertes des Registers R wird durch Schreiben eines
Registers des logischen Steuerungsblock 34 über die
PCI-Schnittstellenkomponente 28 durchgeführt. Das
Schreiben dieses Registers mit der Information, entweder die Taktstartzeit
vorzuverlegen oder zurückzunehmen,
sagt dem logischen Steuerungsblock 34, den Wert des Feldes "Takt_Offset" des Registers R
des entsprechenden PHY/LINK-Komponentenblocks zu modifizieren.
-
Zusätzlich es
macht der logische Block 34 möglich, auf die verschiedenen
Register der Komponentenblöcke 30 und 32 über die
PCI-Schnittstellenkomponente 28 zuzugreifen.
-
Der
logische Steuerungsblock 34 ist eine Komponente des FPGA-("Programmierbare Feldgatteranordnung")Typs, der z. B.
durch die Firma Xilink vermarktet wird.
-
6 stellt
einen Algorithmus zum Implementieren des Verfahrens gemäß des ersten
Ausführungsbeispiels
der Erfindung dar. Es ist das Verfahren zum Steuerung der Synchronisation
zwischen zwei durch die mit PDE bezeichnete
Brücke
verbundenen seriellen Kommunikationsbussen, und für die verschiedene
Anweisungen anfänglich
in dem mit 14 bezeichneten Permanentspeicher ROM enthalten sind
(4).
-
Gemäß dem in 6 mit
C1 bezeichneten Schritt wird ein Initialisierungsschritt
vor der Implementierung des Verfahrens vorgesehen.
-
Während dieser
Initialisierungsphase werden die in 7 dargestellten
Register initialisiert und in dem Speicher 16 gespeichert.
-
Ein
16 Bit langes "Perioden
Zähler" genanntes Register 50 speichert
den Wert, der die Dauer einer sogenannten Messperiode darstellt.
Diese Messperiode erstreckt sich über eine vorbestimmte Anzahl von
Takten und ist einer speziellen Brücke zugeordnet. Dieses Register 50 wird
mit einem Wert initialisiert, der von der Tiefe der Brücke in der
Netzwerkstruktur mit einer Baumhierarchie abhängt. Daher ist der Wert dieser
Messperiode umso kleiner, je näher die
betrachtete Brücke
an dem "Wurzelbus" A ist. Z. B. entspricht
die Messperiode für
die Brücke
PDE zwanzig Takten.
-
Gemäß dieser
Logik ist die Dauer einer der Brücke
zugeordneten Messperiode umso länger,
je weiter die Brücke
von dem "Wurzelbus" in der Netzwerkstruktur
mit einer Baumhierarchie entfernt ist.
-
Dies
liegt daran, weil der Anmelder festgestellt hat, dass die Brücke PDE in 3 z. B.
gemäß dem Stand
der Technik eine Anzahl von Befehlen zum Modifizieren der Dauer
des Takts des Busses E auf Grund der Tatsache empfängt, dass
Driften auf dem Niveau der Brücken
PAB, PBC und PCD bemerkt werden.
-
Damit
sich alle diese Befehle bis zu dem Bus E fortpflanzen, ist eine
gewisse Zeit nötig.
-
Dazu
sieht das Verfahren gemäß der vorliegenden
Erfindung vor, dass die Brücke
PDE für
den Ablauf einer Messperiode, die auch als eine "Verzögerungsphase" bezeichnet wird,
nur wartet, und die länger
ist als für
die Brücken
PAB, PBC und PCD, bevor ein Befehl an den Bus E übertragen
wird. Der Effekt dieser Verzögerung
ist, dass die verschiedenen Driften, die möglicherweise auf der Ebene
der Brücken PAB, PBC und PCD festgestellt werden, sich untereinander
ausgleichen, bevor sie die Brücke
PDE erreichen, so dass es nicht länger nötig ist,
einen Befehl zu übertragen
oder zumindest die Anzahl von zu übertragenen Befehlen sehr reduziert
werden kann.
-
Wenn
das mit Bezug auf 2 beschriebene Beispiel des
Standes der Technik noch einmal hergenommen wird, gibt es die folgenden
Beobachtungen: Alle vier Takte gibt es einen Takt zuviel zwischen
den mit A und B bezeichneten Bussen, alle acht Takte wird ein Takt
zwischen den mit B und C bezeichneten Bussen verloren, keine Drift
wird zwischen den Takte der mit C und D bezeichneten Busse erfasst,
und alle acht Takte wird ein Takt zwischen den mit D und E bezeichneten
Bussen verloren; dann werden zwei einander widersprechende Befehle
an dem "Taktmeister" CME ankommen,
einer "gehe ¼ langsamer", der fordert, dass
der Startpunkt des Takts des Busses E im Schnitt um eine Einheit
von Vieren zurückgenommen
wird, und das andere "gehe ¼ schneller", der fordert, dass
der Startpunkt des Takts des Busses E im Durchschnitt um eine Einheit
für einen
Takt von Vieren vorverlegt wird.
-
Durch
die Erfindung gleichen sich die verschiedenen Driften, die mit der
Zeit auftreten, einander während
der Verzögerungsphase
aus und es ist dann nicht länger
nötig,
Befehle an den "Taktmeister" CME zu übertragen,
im Gegensatz zu dem, was gemäß dem Stand
der Technik passiert.
-
Ein
16 Bit langes mit 52 in 7 bezeichnetes
Register zeigt die Anzahl von Takten an, die seit dem Start der
Messperiode vergangen sind. Dieses mit "Anzahl von Takten" bezeichnete Register wird zu 0 initialisiert.
-
Ein
8 Bit langes mit 54 bezeichnetes Register zeigt die relative
Drift zwischen den Takten von zwei benachbarten seriellen Kommunikationsbussen
an, die durch die fragliche Brücke
verbunden sind. Dieses "Driftzähler" genannte Register
wird zu 0 initialisiert.
-
Diese
Drift entspricht der momentanen Drift, die zwischen den Takten der
zwei seriellen Kommunikationsbusse erfasst wird.
-
Ein
8 Bit langes mit 56 bezeichnetes und "Anzahl von Anpassung" genanntes Register zeigt die gespeicherte
Drift zwischen zwei betrachteten seriellen Kommunikationsbussen
seit dem Start der Messperiode an. Dieses Register wird zu 0 initialisiert.
-
Ein
mit 32 Bit langes mit 58 bezeichnetes und "Bus_Offset" genanntes Register
stellt die konstante Phasenverschiebung zwischen den Takten von
zwei angrenzenden seriellen Kommunikationsbussen dar, die durch
eine Brücke
verbunden sind.
-
Diese
konstante Phasenverschiebung entspricht der maximalen Verarbeitungszeit,
die einer Brücke
zum Verarbeiten eines Paketes zugeordnet ist, das durch sie passiert.
Sie wird gesteuert durch eine Warteschlange, deren Länge ausgedrückt in einer
isochronen Paketkapazität
die Dauer dieser Phasenverschiebung definiert.
-
Die
interne Struktur von solch einem Register ist dieselbe wie die des
Registers R, das in 5 dargestellt wurde. Das erste "Takt_Offset" genannte Gebiet
des Registers 58 muss einen Wert gleich 0 für dieses
Register haben. Ein Minimalwert von 2 für das zweite "Takt-Zähler" genannte Gebiet
des Registers 58 wird bei der Initialisierungszeit benötigt. Der
Wert dieses zweiten Gebiets des Registers muss konstant bleiben.
Dies bedeutet, dass die konstante Phasenverschiebung zwischen zwei
Bussen minimal 2 ist, ausgedrückt
als Anzahl von ganzen Takten.
-
Wenn
z. B. das Beispiel der mit PDE bezeichneten
Brücke
aus 4 genommen wird, wird festgestellt, dass der mit 30 bezeichnete 1394-PHY/LINK-Komponentenblock
in Kontakt mit dem seriellen Kommunikationsbus D ist, dessen "Taktmeister" CMD als
der "Meister" in einer "Master/Slave"-Beziehung ist, während der
mit 32 bezeichnete 1394-PHY/LINK-Komponentenblock in Kontakt
mit dem Kommunikationsbus E ist, dessen "Taktmeister" CME als der "Slave" bezeichnet wird.
-
Ein
mit 60 bezeichnetes und "Meister_Zeit" genanntes Register in 7 enthält einen
Wert des in 5 dargestellten Registers R,
der zu dem mit 30 bezeichneten 1394-PHY/LINK-Komponentenblock
in 4 gehört.
Der Wert des Registers R dieses Blocks 30 ist in dem Register 60 enthalten,
wenn eine Erfassung der Drift zwischen den Takten der zwei Busse
durchgeführt
wird. Die interne Struktur des Registers 60 ist dieselbe
wie die des in 5 dargestellten Registers R.
Dieses Register wird zu 0 initialisiert.
-
Ein
mit 62 in 7 bezeichnetes und "Slave_Zeit" genanntes Register
enthält
den Wert des in 5 dargestellten Registers R,
der zu dem mit 32 bezeichneten 1394-PHY/LINK-Komponentenblock
in 4 gehört,
wenn das Register R des Blocks 30 den Wert hat, der in
dem mit 60 bezeichneten Register "Meister_Zeit" gespeichert ist. Die interne Struktur
dieses Register ist also dieselbe wie die des Registers R von 5.
Dieses Register wird zu 0 initialisiert.
-
Zwei
andere Register 64 und 66 werden in 7 gezeigt,
aber nicht in dem ersten Ausführungsbeispiel
der Erfindung verwendet, sondern sie werden in einem Varianten-Ausführungsbeispiel
verwendet, das später
mit Bezug auf 8 beschrieben wird.
-
Zurück zu 6 hat
das Verfahren zum Steuern der Synchronisation zwischen den seriellen Kommunikationsbussen
D und E nach 3 einen Schritt, der mit C2 bezeichnet wird, der aus einem Warten auf
den Start eines Takts besteht (einem "Taktstart"), der durch Senden eines Taktstartpaketes initialisiert
wird. Die Struktur eines solchen in 10 dargestellten
Paketes wird später
beschrieben.
-
Wenn
solch ein Taktstartpaket gesendet wird, wird der Schritt C2 von einem Schritt C3 gefolgt. Die
arithmetische Einheit 12 (CPU) erhöht dann das "Anzahl von Takten" genannte Register 52 und
befiehlt dem logischen Block 34, gleichzeitig die Register
R jeder der Komponenten 30 und 32 der in 4 dargestellten
Brücke
PDE auszulesen und jeweils die Register "Meister_Zeit" 60 und "Slave_Zeit" 62 in dem
RAM-Speicher 16 mit den ausgelesenen Werten zu initialisieren.
-
Ein
Vergleich zwischen den zwei ersten Gebieten namens "Takt_Offset" der Register 60 und 62 während des
Schritts C3 ergibt die Anzahl von Signalen
ninit, die in einem dieser Register zusätzlich oder zu
wenig sind, und macht es dadurch möglich, die relative Drift zwischen
den Takten der internen Taktgeber der "Taktmeister" CMD und CME zu bestimmen.
-
Dieser
Wert der momentanen Drift wird in das Register "Drift_Zähler" 54 von 7 geschrieben.
-
Wenn
dieser Vergleich einmal durchgeführt wurde,
ermöglicht
es der Schritt C4 der Synchronisationssteuerungsmethode
gemäß der Erfindung,
den Wert der Drift zu untersuchen.
-
Ein
Durchführen
der Schritte C3 und C4 des Algorithmus
ermöglicht
es, die Funktion eines Erfassen einer relativen Drift zwischen den
Takten der internen Taktgeber der "Taktmeister" der seriellen Kommunikationsbusse D
und E durchzuführen.
-
Wenn
dieser Wert von 0 verschieden ist, folgt dem Schritt C4 Schritt
C5, während
dem die gerade erfasste relative Drift in dem Register 56 von 7 gespeichert
wird. In der Praxis entspricht diese Drift einem Taktsignal einer
Differenz zwischen den Werten der Gebiete "Takt_Offset" der Register 60 und 62.
-
In
dem Register 56 wird die gerade erfasste Drift während eines
gegebenen Takts präziser
mit den aufeinanderfolgenden Driften summiert, die vorher während der
vorangehenden Takte erfasst wurden, und in dem Register gespeichert.
-
Es
soll bemerkt werden, dass in dem in 6 dargestellten
Algorithmus der Vorgang des Speicherns der Drift zur selben Zeit
(Schritt C5) wie der Vorgang des Summierens
dieser Drift mit den früher
Gespeicherten durchgeführt
wird.
-
Jedoch
wäre es
in einer nicht in den Figuren dargestellten Variante möglich, nur
einen Vorgang des Speicherns ohne ein Addieren durchzuführen, vorausgesetzt
jedoch, dass eine digitale Verarbeitung angewendet wird, die sich
auf die Änderung
der Variationen in der erfassten Drift über die Zeit bezieht, die auf
der Ebene der Brücke über eine
Anzahl von aufeinanderfolgenden Takten erfasst werden, um die Übertragungen
von Befehlen zum Modifizieren der Taktdauer besser zu verwalten.
-
Der
Schritt C5 wird als nächstes von dem Schritt C6 gefolgt, während dem ein Test einer Booleschen
Variable namens SYNCHRO erfolgt. Wenn die in das Register "Drift_Zähler" S4 geschriebene
momentane Drift Null ist, wird der Schritt C5 sofort
von dem Schritt C6 gefolgt.
-
Der
Test enthält
das Überprüfen, ob
die SYNCHRO genannte Boolesche Variable wahr ist.
-
Während des
Ablaufs der ersten Messperiode wird der Boolesche Wert SYNCHRO auf
den Wert "falsch" gesetzt, und dem
Schritt C6 folgt der Schritt C7.
-
Der
Schritt C7 des Verfahrens gemäß der Erfindung
führt als
nächstes
einen Test aus, um sicherzustellen, ob die Messperiode beendet ist.
-
In
dem illustrierten Fall, in dem die Algorithmusschleife dem Fortschritt
des ersten Takts der Messperiode entspricht, ist Letztere nicht
beendet. Schritt C7 wird dann gefolgt von
den Schritten C2, C3, C4, C5, C6 und
C7, wenn eine Drift während des folgenden Takts erfasst
wird, oder den Schritten C2, C3, C4, C6 und C7, wenn keine Drift erfasst wird. Das Durchführen der
Schritte C2 bis C7 wird
so oft durchgeführt
wie Takte in der Messperiode der betrachteten Brücke vorgesehen sind. Für die Brücke PDE werden diese Schritte zwanzig Mal durchgeführt.
-
Wenn
die Messperiode beendet ist, folgt der Schritt C8 dem
Schritt C7, während dem der Wert der Booleschen
Variablen SYNCHRO auf den Wert "wahr" gesetzt wird, und
das "Anzahl_von_Takten" genannte, in 7 mit 52 bezeichnete
Register wird wieder auf 0 initialisiert.
-
Der
Schritt C8 wird von dem Schritt C2 gefolgt, wenn ein neues Taktstartpaket
gesendet wird.
-
Die
Schritte C3 bis C6 werden
als nächstes durchgeführt, wenn
eine Drift erfasst wird oder die Schritte C3,
C4 und C6, wenn
keine Drift erfasst wird.
-
Während der
Durchführung
des Schrittes C6 wird ein Test auf die Boolesche
Variable SYNCHRO durchgeführt.
-
Weil
in dem Fall der Wert der Variable "wahr" ist,
wird dann Schritt C6 von dem Schritt C9 gefolgt, während dem untersucht wird,
ob der Wert der während
der Takte der vorherigen Messperiode gespeicherten Drift positiv
ist.
-
Im
bejahenden Fall wird gemäß dem Schritt C10 ein Befehl im Hinblick auf ein Reduzieren
der Dauer des Takts des seriellen Kommunikationsbus E an den "Taktmeister" CME übertragen.
-
Während dieses
Schritts wird auch ein Reduzieren (Anzahl_von_Anpassung --) des
Absolutwertes der gespeicherten Drift Anzahl_von_Anpassung um einen
Wert vorgenommen, der der Modifikation der Dauer des Takts des Busses
E angepasst ist, die an den "Taktmeister" CME übertragen
wird.
-
Der
Schritt C10 kann dadurch eine Anzahl von Malen
durchgeführt
werden, bis die gespeicherte Drift Null ist.
-
Um
an den "Taktmeister" des Busses E ein Befehl
zum Modifizieren der Dauer des Takts von diesem Bus zu übertragen,
formatiert die arithmetische Einheit 12 ein Datenpaket,
das einen Befehl enthält, und
initialisiert es in den Speicher 16. Die Einheit 12 initialisiert
zuerst den logischen Steuerungsblock 34 zum Senden des
Pakets, und dann die Direktspeicherzugriffsfunktion der Komponente 28.
Die Direktspeicherzugriffsfunktion trägt daher für das Übertragen des formatierten
Datenpakets Sorge, das den Taktdauermodifikationsbefehl in einen
internen nicht dargestellten Speicher des Blocks 32 über den
logischen Steuerungsblock 34 enthält.
-
Schließlich befiehlt
der logische Steuerungsblock 34 dem Block 32,
das Paket an den Bus E zu übertragen.
-
Wenn
der Wert der gespeicherten Drift nicht positiv ist, wird der Schritt
C9 von dem Schritt C11 gefolgt,
während
dem untersucht wird, ob der Wert negativ ist.
-
Im
bejahenden Fall wird ein Befehl im Hinblick des Erhöhens der
Dauer des Takts des seriellen Kommunikationsbusses E an den "Taktmeister" CME gemäß dem Schritt
C12 des Algorithmus nach 7 übertragen.
-
In
einer ähnlichen
Weise wie der, die mit Bezug auf Schritt C10 beschrieben
wurde, wird ein angepasster Abnehmbefehl (Anzahl von Anpassung ++) des
Absolutwertes der gespeicherten Drift durchgeführt, und dieser Schritt C12 kann wiederholt werden, bis die gespeicherte
Drift Null ist.
-
Im
verneinenden Fall, der bedeutet, dass die gespeicherte Drift Null
ist, wird der Schritt C11 von dem Schritt
C13 gefolgt, während dem die Boolesche Variable
SYNCHRO auf den Wert "falsch" gesetzt wird. Es
soll bemerkt werden, dass dies bedeutet, dass die seriellen Kommunikationsbusse
D und E wieder synchronisiert sind und dass die Drift Null ist.
-
Wenn
die gespeicherte Drift Null ist, bedeutet dies, dass entweder keine
Drift während
der Messperiode erfasst wurde, die eben vorbei gegangen ist, oder
dass die verschiedenen erfassten Driften sich einander ausgeglichen
haben.
-
Die
Tatsache, dass in dem Register 54 "Drift_Zähler" des RAM-Speichers alle während einer Messperiode
erfassten Driften gehalten werden, macht es möglich, zu wissen, ob eigentlich
keine Drift erfasst wurde, oder ob sie sich alle gegeneinander ausgeglichen
haben.
-
In
dem ersten gerade beschriebenen Ausführungsbeispiel entspricht die
Messperiode, die sich über
zwanzig Takte erstreckt, einer sogenannten Verzögerungsphase. Die wiederholte
Durchführung
der Schritte C2 bis C7 des
Verfahrens gemäß der Erfindung
ermöglicht
es, diese Verzögerungsfunktion durchzuführen.
-
Während dieser
Verzögerungsphase
wird gemäß der Erfindung
kein Befehl im Hinblick auf ein Modifizieren der Dauer des Takts
des seriellen Kommunikationsbusses E übertragen, solange die Phase nicht
ihren Abschluss erreicht hat.
-
8 illustriert
eine Variante des ersten Ausführungsbeispiels
der Erfindung, die die gleichen Schritte C1 bis
C13 wie in 6 dargestellt
umfasst, und die deswegen nicht mehr detailliert unten dargestellt
werden.
-
In
diesem Varianten-Ausführungsbeispiel entspricht
die Verzögerungsphase,
die vorher immer der Messperiode der betrachteten Brücke entsprach, entweder
dieser Messperiode, wenn die Verzögerungsphase vorher nicht abgelaufen
ist, oder einer nicht vorhergesehenen Anzahl von Takten, die kleiner
ist als die Anzahl von Takten, die der Messperiode entsprechen.
-
Gemäß dem Algorithmus
nach 8 wird während
des ersten Takts der Messperiode zu dem folgenden Schritt C14 gegangen, wenn die Schritte C1 bis
C5 durchgeführt worden sind, wie mit Bezug
auf 6 gerade erklärt.
-
Der
Schritt C14 besteht aus einem Vergleichen
der in dem Register 56 gespeicherten Drift mit einem in
einem Register 64 aufgezeichneten vorbestimmten Schwellwert.
-
Das
8 Bit lange in 7 dargestellte mit 64 bezeichnete
Register entspricht einem negativen Wert für die Drift. Dieses Register
namens "Maximal_Führung" wird auf den Wert "–128" initialisiert.
-
Während des
ersten Takts ist unter der Annahme, dass es die erste Drift, die
erfasst wird, betrifft, die gespeicherte Drift (plus oder minus
ein Puls) immer größer als
der in dem Register "Maximal
Führung" 64 enthaltene
Wert.
-
Der
Wert dieses Registers wird als eine Funktion der während der
vorhergehenden Messperioden gespeicherten Drift gewählt, und
wird z. B. auf einen Wert eingestellt, der die Hälfte des Wertes des Registers "Anzahl_von_Anpassung" 56 bei
dem Start der vorangehenden Synchronisationsphase einstellt, wenn
der Wert des Registers 56 negativ ist.
-
In
dem oben erwähnten
Fall, wird der Schritt C14 von dem Schritt
C15 gefolgt, während dem die gespeicherte
Drift mit einem in dem Register 66 von 7 gespeicherten
vorbestimmten Schwellwert verglichen wird.
-
Das
8 Bit lange Register namens "Maximal_Verspätung" entspricht einem
maximalen positiven Wert für
die Drift und wird auf den Wert "+128" initialisiert.
-
Der
Wert dieses Registers wird als eine Funktion der während der
vorangehenden Messperioden gespeicherten Drift gewählt. Der
Wert wird z. B. auf den halben Wert des Wertes des Registers "Anzahl_von_Anpassung" 56 beim
Start der vorangehenden Synchronisationsphase gesetzt, wenn der Wert
des Registers 56 positiv ist.
-
Wenn
auch hier die gespeicherte Drift während des ersten Takts der
Messperiode nicht den betreffenden Schwellwert erreicht, wird der
Schritt C15 von den Schritten C6 und
C7 gefolgt und dann wird ein zweites Taktstartpaket
erzeugt (Schritt C2), und die zuvor erwähnten Schritte
werden wieder durchgeführt.
Solange die in den Registern "Maximal_Führung" 64 und "Maximal_Verspätung" 66 von 7 nicht überschritten
werden, führen
die Schritte C14 und C15 immer
zu den Schritten C6 und C7,
und die Messperiode geht vorbei, ohne dass irgendein Befehl zum
Modifizieren der Dauer des Takts des Busses E übertragen worden wäre.
-
Damit
kehrt man zu dem mit Bezug auf 6 beschriebenen
Fall zurück
und die Verzögerungsphase
ist gleich der Messperiode.
-
Wenn
andererseits oft Driften erfasst werden und sie sich nicht ausgleichen,
haben die Schritte C14 und C15 eine
Funktion.
-
Angenommen,
z. B., dass nach einer Anzahl von abgelaufenen Takten von ein und
derselben Messperiode die nacheinander erfassten Driften zu einer
gespeicherten Drift in dem Schritt C5 führen und in
dem Register "Anzahl_von_Anpassung" 56 von 7 enthalten
ist, die kleiner ist als der Wert der in dem Register "Maximal_Führung" enthalten ist (Schritt
C14).
-
Aus
diesem Grund muss die Übertragung
eines Befehls hinsichtlich eines Erhöhens der Dauer des Takts des
internen Taktgebers des "Taktmeisters" CME des
seriellen Kommunikationsbusses E stattfinden, ohne auf ein Ende
der Messperiode zu warten und Schritt C14 wird
dann vom Schritt C16 gefolgt.
-
Dies
ermöglicht
bemerkenswerterweise, dass der Bus E es vermeidet, eine Führung mit
Bezug auf Bus D jenseits eines Schwellwertes zu akkumulieren, der
als eine Funktion der vorher beobachteten Drift definiert wird.
-
Daher
hat die durch die Erfindung vorgesehene Verzögerungsphase, die der Anzahl
der Takte entspricht, die seit dem Start der Messperiode bis zu dem
Takt, während
dem festgestellt wird, dass der in dem Register "Maximal_Führung" enthaltene Schwellwert überschritten
wurde, abgelaufen sind, in diesem speziellen Fall eine kürzere Dauer
als die Messperiode.
-
Angenommen
nun, dass nach einer Anzahl von abgelaufenen Takten von ein und
derselben Messperiode die nacheinander erfassten Driften in dem
Schritt C5 zu einer gespeicherten Drift
führen, die
größer als
der in dem Register "Maximal_Verspätung" enthaltene Wert
(Schritt C15) ist.
-
Aus
diesem Grund muss eine Übertragung eines
Befehls hinsichtlich eines Reduzierens der Dauer des Takts des internen
Taktgebers des "Taktmeisters" CME des
seriellen Kommunikationsbusses E stattfinden, ohne auf das Ende
der Messperiode zu warten.
-
Dies
ermöglicht
bemerkenswerterweise dem Bus E zu vermeiden, eine Führung mit
Bezug auf den Bus D jenseits eines Schwellwertes aufzusummieren,
der als eine Funktion der vorher beobachteten Drift definiert ist.
-
Der
Schritt C15 wird dann von dem Schritt C17 gefolgt.
-
Es
soll bemerkt werden, dass während
jedes der Schritte C16 und C17 ein
Abnehmen (Anzahl von Anpassung ++ oder Anzahl_von_Anpassung --)
des Absolutwertes der gespeicherten Drift um einen Wert durchgeführt wird,
der an die Modifikation der Dauer des Takts des Busses E angepasst
ist. Jeder Schritt kann dadurch wiederholt werden, bis die gespeicherte
Drift Null ist.
-
Dadurch
hat die durch die Erfindung vorgesehene Verzögerungsphase, die der Anzahl
von Takten entspricht, die seit dem Start der Messperiode bis zu
dem Takt vergangen ist, während
dem festgestellt wurde, dass der in dem Register "Maximal_Verspätung" enthaltene Schwellwert überschritten
wurde, in diesem speziellen Fall eine Dauer, die kürzer ist
als die Messperiode.
-
Es
soll bemerkt werden, dass die Modifikation der Taktdauer proportional
zu der gespeicherten Drift sein kann, was den Vorteil hätte, dass
keine Anzahl von aufeinander folgenden Befehlen zu übertragen
ist.
-
Es
ist auch notwendig zu bemerken, dass der übertragene Befehl nach der
Verzögerungsphase darauf
zielt, die Dauer des Takts des Busses E zu modifizieren, wenn eine
Drift auf dem Niveau der Brücke
PDE erfasst wird.
-
Jedoch
kann ein Modifizieren der Dauer des Takts des Busses D anstelle
der des Busses E genauso in Betracht kommen, wenn die Netzwerkhierarchie
umgekehrt im Sinne der Master/Slave-Beziehungen zwischen den Bussen
D und E wäre.
-
9 illustriert
ein zweites Ausführungsbeispiel
der Erfindung.
-
Diese
Figur stellt einen Algorithmus zum Implementieren des Verfahrens
zum Steuern der Synchronisation zwischen seriellen Kommunikationsbussen
D und E dar. Der Algorithmus unterscheidet sich von dem von 6 insbesondere
durch drei neue Schritte D1, D2 und D3. Die Schritte, die verglichen mit
denen nach 6 unverändert bleiben, behalten die
gleichen Bezugszeichen.
-
Die
verschiedenen Anweisungen dieses Algorithmus sind anfänglich in
dem mit 14 bezeichneten Permanentspeicher ROM des Computers 11 enthalten,
den die Brücke
PDE aufweist (4).
-
Gemäß dem Schritt
C1, der identisch ist zu dem von 6,
wird ein Initialisierungsschritt vorgesehen, während dem die in 7 dargestellten
Register initialisiert werden und in dem RAM-Speicher 16 gespeichert
werden.
-
Ähnlich werden
zwei neue Register namens "Takt_Verzögerung" und "Warte_Takt" auch initialisiert
und in dem RAM-Speicher 16 gespeichert, die nicht in den
Figuren dargestellt sind und spezifisch für das zweite Ausführungsbeispiel
sind.
-
Das
32 Bit lange Register "Takt_Verzögerung" speichert den Wert,
der die Anzahl von Takten darstellt, die einander während einer Verzögerungsphase
folgen.
-
Das
32 Bit lange Register "Warte_Takt" speichert den Maximalwert
von Takten, die in einer Verzögerungsphase
enthalten sind.
-
Dieses
Register ist in 7 dargestellt und hat das Bezugszeichen 68.
-
In
einer identischen Weise zu der Beschreibung, die mit Bezug auf 6 erzeugt
wurde, enthält das
Verfahren einen Schritt C2, der aus Warten
zum Senden eines Taktstartpakets besteht.
-
Das
Verfahren hat als nächstes
einen Schritt D1, während dem das Register "Takt_Verzögerung" um einen Takt erhöht wird.
-
Der
Schritt D1 wird von einem Schritt D2 gefolgt, der aus Vergleichen des Wertes
des Registers "Takt_Verzögerung" mit dem des Registers "Warte_Takt" besteht, um zu bestimmen,
ob die vorbestimmte Anzahl von Takten in dem Letzteren erreicht
wurde.
-
Wenn
diese Zahl nicht erreicht wurde, werden die Schritte C2,
D1 und D2 so oft
wiederholt wie nötig.
-
Die
Abfolge dieser Schritte über
die Zeit illustriert die Verzögerungsphase,
die stattfindet, bevor eine Aktion des Erfassens einer relativen
Drift zwischen den Takten der Busse D und E unternommen wird.
-
Diese
Verzögerungsphase
hat eine Dauer, die als eine Funktion der für die Brücke PDE spezifischen
früheren
Verzögerungsphase
berechnet wird und als eine Funktion der für den Wert der Driften gemachten
Beobachtungen, die während
aufeinanderfolgenden Takten auftreten.
-
Wenn
die Driften, die während
aufeinanderfolgenden Takten auftreten, wenig Tendenz haben, sich
untereinander auszugleichen, wird die Verzögerungsphase kürzer sein
als wenn die Driften sich "natürlich" ausgleichen.
-
Durch
diese Verzögerungsphase
wird tatsächlich
eine Ersparnis an Drifterfassungsschritten erreicht, die nicht nötig sind,
solange die Drift nicht einen zum Erlahmen führenden Wert erreicht hat.
-
Die
Dauer der Verzögerungsphase
ist so, dass der Erfassungsschritt, der ihr folgt, andererseits notwendig
ist, um sicherzustellen, dass die Drift nicht zu groß ist.
-
Der
Drifterfassungsschritt wird während
der Schritte C3 und C4 ausgeführt, die
bereits mit Bezug auf 6 beschrieben wurden.
-
Nur
der Wert der erfassten Drift ist andererseits verschieden von dem,
der während
des Algorithmus von 6 erfasst wurde.
-
Dies
liegt daran, dass in dem Algorithmus nach 6 nur eine
Differenz von einem Taktsignal erfasst wurde, während in dem Algorithmus nach 9 eine
Anzahl von Taktsignalen erfasst werden kann.
-
Wenn
eine Drift erfasst wurde, wird sie während eines Schritts C5 gespeichert, der identisch ist zu dem von 6.
-
Es
soll jedoch bemerkt werden, dass dieser Speicherschritt weggelassen
werden kann, weil die erfasste Drift eines Schritts in der Lage
ist, direkt eine Übertragung
von einem oder mehr Synchronisationsbefehlen zu veranlassen.
-
Der
Schritt C5 wird als nächstes in dem Fall, in dem
eine positive oder negative Drift erfasst wurde, von den Schritten
C9, C10, C3 oder C9, C11, C12, C3 gefolgt.
-
Diese
Schritte sind identisch zu denen mit den gleichen Bezugszeichen
in 6.
-
Es
soll bemerkt werden, dass eine Anzahl von aufeinanderfolgenden Synchronisationsbefehlen übertragen
werden kann, wenn der Bedarf dafür
während
der Schritte C10, C12 auftaucht.
-
Wenn
keine Drift erfasst wird, wird der Schritt C4 von
den Schritten C9, C11 und
D3 gefolgt.
-
Während des
Schrittes D3 wird das Register "Takt_Verzögerung" auf Null zurückgesetzt
und der Wert des Registers "Warte_Takt" wird als eine Funktion
des Fortschritts des Algorithmus angepasst.
-
Gemäß einer
nicht in den Figuren gezeigten Variante tritt eine Verzögerungsphase
(eine Serie von Triplets der Schritte C2,
D1 und D2), Schritte
des Erfassens und Speicherns (Summieren) der Drift finden statt,
und die gespeicherte Drift wird mit einem vorbestimmten Schwellwert
in einer identischen Weise wie in den Schritten C14 und
C15 des Algorithmus von 6 verglichen.
-
Wenn
diese Drift die Schwellwerte "Maximal_Führung" oder "Maximal_Verspätung" überschreitet, werden ein oder
mehrere Synchronisationsbefehle übertragen
(Schritte C16, C17).
-
Im
entgegengesetzten Fall tritt eine neue Verzögerungsphase auf (eine Serie
von Triplets der Schritte C2, D1 und
D2), sowie auch die Schritte des Erfassens
und Speicherns der Drift. Während
des Speicherschritts wird der Wert der Drift zu dem vorher Gespeicherten
summiert.
-
Diese
zwei Driften können
einander ausgleichen oder aufaddieren und abhängig vom Ergebnis des Summierens
und einem Vergleichen mit den Schwellwerten wird dies ein oder mehrere
Synchronisationsbefehlsübertragungen
auslösen,
oder vielleicht sogar keines in dem Fall eines totalen Ausgleichs.
-
Gemäß einer
anderen nicht gezeigten Variante tritt eine erste Verzögerungsphase
gemäß der Wiederholung
in der Zeit des Triplets aus den Schritten C2,
D1 und D2 auf (9)
und ein Drifterfassungsschritt wird ausgeführt (Schritte C3 und
D4 von 9).
-
Schritte
zum Speichern der erfassten Drift und des Vergleichens mit zwei
vorbestimmten Schwellwerten werden als nächstes in einer identischen
Weise mit den Schritten C5, C14 und
C15 von 8 durchgeführt.
-
Wenn
diese Schwellwerte nicht überschritten werden,
tritt eine zweite Verzögerungsphase
analog zu dem Algorithmus von 8 vor irgendeiner
Aktion zur Übertragung
eines Synchronisationsbefehls auf. Die Schritte C2,
C3, C4, C5, C6, C14,
C15 und C17 werden dann
wiederholt, wenn Driften erfasst werden, aber die Schwellwerte noch
nicht überschritten
worden sind.
-
Am
Ende des Abschlusses der Messperiode (einer vorbestimmten Anzahl
von Takten, die der Dauer der zweiten Verzögerungsphase entspricht) oder
am Ende einer Anzahl von weniger Takten als denen, die in der Messperiode
enthalten sind, werden ein oder mehrere Synchronisationsbefehle übertragen,
wenn die gespeicherte Drift einen der Schwellwerte überschreitet.
-
Vorteilhafterweise
ermöglicht
es das Hinzufügen
der zweiten Verzögerungsphase
nach einem Erfassen der Drift nach der ersten Verzögerungsphase,
die Frequenz des Erfassens der Drift zu erhöhen, und dadurch die Änderung
von ihr effizienter zu überwachen.
-
Dieser
Fall ist von Interesse, wenn die nach der ersten Verzögerungsphase
erfasste Drift einen Wert liefert, der ausreichend hoch ist, aber
noch nicht lähmend
bis zu dem Punkt, dass es notwendig, einen Synchronisationsbefehl
zu übertragen.
-
Wie
vorher während
der mit Bezug auf 6 produzierten Beschreibung
erwähnt
und genauer bei dem Schritt C2, hat ein
Taktstartpaket eine Struktur, die in 10 dargestellt
ist.
-
Detaillierte
Informationen über
das Taktstartpaket werden in Paragraph 6.2.2.2.3 des IEEE 1394-95-Standards
gefunden.
-
Das
Taktstartpaket, dessen Struktur in 10 dargestellt
ist, wird auf einem seriellen Kommunikationsbus durch den "Taktmeister" des betrachteten
Busses erzeugt.
-
Wie
in dieser Figur dargestellt, hat das Taktstartpaket ein erstes mit 70 bezeichnetes
und "Ziel_ID" genannte 16 Bit
langes Feld, das die Daten enthält,
die die Knoten oder Peripheriegeräte des Busses enthält, für die das
Paket gedacht ist.
-
Das
Paket hat auch ein 16 Bit langes mit 72 bezeichnetes und "Quell_ID" genanntes Feld,
das die Daten enthält,
die den "Taktmeister" identifizieren, der
das Paket erzeugt.
-
Das
Taktstartpaket hat ein 6 Bit langes mit 74 bezeichnetes
und "tl" bezeichnetes Feld,
das dem Transaktionskennzeichen entspricht, das den Wert "000000" in binärer Darstellung
enthält.
-
Das
Taktstartpaket hat ein 2 Bit langes mit 76 bezeichnetes
und "rt" genanntes Feld,
das dem Wiederversuchscode entspricht und das den Wert "00" in binärer Darstellung
enthält.
-
Das
Taktstartpaket hat ein 4 Bit langes mit 78 bezeichnetes
und "pri" genanntes Feld,
das eine Priorität
identifiziert und das den Wert "1111" in binärer Repräsentation
enthält.
-
Das
Taktstartpaket hat ein 4 Bit langes mit 80 bezeichnetes
und "tcode" genanntes Feld,
das den Transaktionscode bezeichnet und das den Wert "8" in Dezimaldarstellung enthält.
-
Das
Paket hat ein 16 Bit langes mit 82 bezeichnetes und "Ziel_Offset" bezeichnetes Feld,
das die Standardadresse des Registers "TAKT_ZEIT" wie in dem Standard definiert enthält und die "200" in hexadezimaler
Darstellung ist.
-
Das
Taktstartpaket hat ein mit 84 bezeichnetes und "Takt_Zeit_Daten" genanntes Feld,
das den Inhalt des Taktzeitregisters enthält, wobei dieses mit R bezeichnete
Register in 5 dargestellt ist.
-
Für mehr Informationen
bezüglich
dieses Felds kann auf Paragraph 8.3.2.3.1 des IEEE 1394-95-Standards
Bezug genommen werden.
-
Das
Taktstartpaket hat auch ein 32 Bit langes mit 86 bezeichnetes
und "Kopf_CRC" genanntes Feld,
dessen Inhalt in einer Weise berechnet wird, wie in Abschnitt 6.2.4.15
des IEEE 1394-95-Standards angegeben.
-
Es
soll bemerkt werden, dass ein Taktstartpaket von den Zielknoten
erkannt wird, wenn das "tcode" genannte und mit 80 bezeichnete
Feld gleich 8 ist und wenn das Feld "Kopf_CRC" gültig
ist.
-
11 stellt
das ganze Format eines Befehls zum Modifizieren der Dauer des Takts
des Taktgebers des "Taktmeisters" eines betrachteten
Busses dar. Es soll bemerkt werden, dass die für jedes Feld geschriebenen
Zahlen der Größe des Feldes
in Anzahl der Bits entsprechen.
-
So
ein Befehl sagt dem Taktgeber des betrachteten "Taktmeisters", dass die Frequenz des Taktgebers erhöht oder
reduziert werden muss oder sogar beibehalten werden muss, wenn nötig.
-
Die
Synchronisationsbefehle sind GASP-("Globales Asynchrones Datenkettenpaket")Pakete, deren Datenfelder
leer sind.
-
Die
Felder "Daten_Länge" "Kennzeichen", "Kanal", "A16", "res", "pref", "racIdHi", "racIdLo" und "speficiationId" haben konstante
Werte, die von dem 1394-Standardisierungskomitee
definiert werden.
-
Das
Feld mit dem Namen "pref" ist 1 Bit lang.
-
Das
Feld mit dem Namen "slow" ist 1 Bit lang und
sein Wert macht es möglich,
anzuzeigen, ob es nötig
ist, entweder das Zählen
um eine Einheit zu erhöhen
oder um eine Einheit zu reduzieren.
-
Der
Wert des in dem Feld enthaltenen Bits ist 0 oder 1.
-
Wenn
dieser Wert gleich 0 ist, bedeutet das, dass die Frequenz des Taktgebers
des betrachteten "Taktmeisters" während des
folgenden Takts um eine Einheit, d. h. um ein Taktsignal, reduziert
werden muss.
-
Wenn
der Wert gleich 1 ist, bedeutet das, dass die Taktfrequenz während des
folgenden Takts um eine Einheit erhöht werden muss.
-
Der
Wert des Felds "Kopf_CRC" wird als eine Funktion
des Wertes der Felder "Daten_Länge", "Kennzeichen", "Kanal", "A16", "res", "pref" und "slow" berechnet.
-
Der
Wert des Feldes "Quell_ID" ermöglicht es,
die Adresse des Portals zu spezifizieren, dass den Synchronisationsbefehl
sendet.
-
Der
Wert des Feldes Daten_CRC wird als eine Funktion der Werte der Felder "Quell_ID", "racIdHi", "racIdLo" und "speficiationId" berechnet.