DE60038589T2 - Verfahren und Einrichtung zur Steuerung der Synchronisation zwischen zwei seriellen Kommunikationsbussen eines Netzes - Google Patents

Verfahren und Einrichtung zur Steuerung der Synchronisation zwischen zwei seriellen Kommunikationsbussen eines Netzes Download PDF

Info

Publication number
DE60038589T2
DE60038589T2 DE60038589T DE60038589T DE60038589T2 DE 60038589 T2 DE60038589 T2 DE 60038589T2 DE 60038589 T DE60038589 T DE 60038589T DE 60038589 T DE60038589 T DE 60038589T DE 60038589 T2 DE60038589 T2 DE 60038589T2
Authority
DE
Germany
Prior art keywords
drift
clock
serial communication
communication buses
duration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60038589T
Other languages
English (en)
Other versions
DE60038589D1 (de
Inventor
Laurent Frouin
Yacine Smail El Kolli
Jean-Paul Accarie
Falk Tannhauser
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Application granted granted Critical
Publication of DE60038589D1 publication Critical patent/DE60038589D1/de
Publication of DE60038589T2 publication Critical patent/DE60038589T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

  • 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.

Claims (61)

  1. Verfahren zur Steuerung der Synchronisation in einem Datenpaketkommunikationsnetzwerk (10) mit zumindest zwei seriellen Kommunikationsbussen (D, E), die durch eine Brücke (PDE) miteinander verbunden sind, wobei jeder sukzessive Zeitzyklen definiert, die jeweils eine für den betrachteten Bus spezifische Dauer haben, wobei das Verfahren die folgenden in der Brücke durchgeführten Schritte hat: – Erfassung (C3, C4) einer relativen Drift zwischen den jeweiligen Zyklen der zumindest zwei seriellen Kommunikationsbusse, – Übertragung (C10, C12; C16, C17) eines Befehls zum Modifizieren der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse, dadurch gekennzeichnet, dass das Verfahren zumindest eine Verzögerungsphase (C6, C7; C2, D1, D2) vor zumindest einem der vorangehenden Schritte enthält.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass sich die Verzögerungsphase über eine Anzahl von Zyklen erstreckt.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Verzögerungsphase (C6, C7) nach dem Schritt eines Erfassens (C3, C4) einer relativen Drift zwischen den jeweiligen Zyklen der zumindest zwei seriellen Kommunikationsbusse beginnt.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Verzögerungsphase eine Anzahl von Erfassungsschritten hat.
  5. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Verzögerungsphase (C2, D1, D2) vor dem Schritt eines Erfassens (C3, C4) einer relativen Drift zwischen den jeweiligen Zyklen der zumindest zwei seriellen Kommunikationsbusse zu Ende geht.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das Verfahren einen Schritt eines Vergleichens der erfassten Drift mit einem vorbestimmten Schwellwert enthält, wenn eine Drift ungleich Null erfasst wird.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass der Schwellwert positiv oder Null ist.
  8. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass der Schwellwert negativ oder Null ist.
  9. Verfahren nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass das Verfahren dann zumindest einen Schritt eines Übertragens von zumindest einem Befehl zum Modifizieren der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse enthält, wenn die erfasste Drift im Absolutwert größer als der Absolutwert des vorbestimmten Schwellwerts ist.
  10. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das Verfahren zumindest einen Schritt eines Übertragens (C10, C12) von zumindest einem Befehl zum Modifizieren der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse enthält, wenn eine Drift ungleich Null erfasst wird (C3, C4).
  11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass die Modifikation proportional zu der erfassten Drift ist.
  12. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass die Übertragung eines Befehls stattfindet, solange die erfasste Drift ungleich Null ist.
  13. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass das Verfahren einen Schritt eines Übertragens eines Befehls zum Modifizieren der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse nicht enthält, wenn die Verzögerungsphase zu Ende geht und die erfasste Drift Null ist.
  14. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass es einen Schritt eines Speicherns (C5) der erfassten Drift enthält.
  15. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass der Schritt eines Speicherns der erfassten Drift eine Summierungsoperation (C5) der erfassten Drift mit einer für einen früheren Zyklus gespeicherten Drift enthält.
  16. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass es einen Schritt eines Vergleichens (C14, C15) der gespeicherten Drift mit einem vorbestimmten Schwellwert enthält.
  17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass der Schwellwert positiv oder Null ist.
  18. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass der Schwellwert negativ oder Null ist.
  19. Verfahren nach einem der Ansprüche 16 bis 18, dadurch gekennzeichnet, dass die Verzögerungsphase dann zu Ende geht, wenn die gespeicherte Drift im Absolutwert größer ist als der Absolutwert des vorbestimmten Schwellwerts.
  20. Verfahren nach einem der Ansprüche 13 bis 18, dadurch gekennzeichnet, dass das Verfahren zumindest einen Schritt eines Übertragens von zumindest einem Befehl zum Modifizieren der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse enthält, wenn die Verzögerungsphase zu Ende geht.
  21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass die Modifikation proportional zur gespeicherten Drift ist.
  22. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass die Übertragung eines Befehls solange stattfindet, wie die gespeicherte Drift ungleich Null ist.
  23. Verfahren nach einem der Ansprüche 20 bis 22, dadurch gekennzeichnet, dass es einen Schritt eines Verringerns des Absolutwerts der gespeicherten Drift um einen zur Modifikation der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse angepassten Wert enthält.
  24. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass das Verfahren einen Schritt eines Übertragens eines Befehls zum Modifizieren der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse nicht enthält, wenn die Verzögerungsphase zu Ende geht und die gespeicherte Drift Null ist.
  25. Verfahren nach einem der Ansprüche 1 bis 24, dadurch gekennzeichnet, dass sich die Verzögerungsphase über eine vorbestimmte Anzahl von der betrachteten Brücke zugeordneten Zyklen erstreckt.
  26. Verfahren nach Anspruch 25, dadurch gekennzeichnet, dass das Kommunikationsnetzwerk (10) eine Anzahl von seriellen Kommunikationsbussen (A-L) hat, die miteinander durch Brücken (PAB, PBC, PCD, PDE, PAF, PFG, PGI, PIK, PHJ, PHL) verbunden sind und die eine Struktur mit Baumhierarchie von einem sogenannten "Wurzel"-Bus aus bilden, wobei die vorbestimmte Anzahl von einer Brücke zugeordneten Zyklen von der Position der Brücke in der Struktur mit einer Baumhierarchie abhängt.
  27. Verfahren nach Anspruch 26, dadurch gekennzeichnet, dass die vorbestimmte Anzahl von einer Brücke zugeordneten Zyklen größer ist, je weiter die Brücke von dem "Wurzel"-Bus in der Struktur mit einer Baumhierarchie entfernt ist.
  28. Verfahren nach Anspruch 25, dadurch gekennzeichnet, dass die vorbestimmte Anzahl der der Brücke zugeordneten Zyklen von der während zumindest einer früheren Verzögerungsphase erfassten Drift abhängt.
  29. Verfahren nach einem der Ansprüche 1 bis 28, dadurch gekennzeichnet, dass jeder der zumindest zwei seriellen Kommunikationsbusse (D, E) einen internen Taktgeber mit einer gegebenen Taktfrequenz hat, die Dauer T eines für einen seriellen Kommunikationsbus spezifischen Zyklus durch eine Anzahl ninit von durch den internen Taktgeber des Busses während dieses Zyklus erzeugten Taktimpulsen nach der Beziehung T = ninit/F bestimmt wird, wobei F die Frequenz des betrachteten Taktgebers bezeichnet, und der Schritt eines Erfassens der relativen Drift zwischen den jeweiligen Zyklen der Taktgeber der zumindest zwei seriellen Kommunikationsbusse aus einem untereinander Vergleichen der Anzahlen von durch die Taktgeber erzeugten Impulsen besteht.
  30. Verfahren nach einem der Ansprüche 1 bis 29, dadurch gekennzeichnet, dass die seriellen Kommunikationsbusse dem IEEE 1394 Standard entsprechen.
  31. Gerät zur Steuerung der Synchronisation in einem Datenpaketkommunikationsnetzwerk (10) mit zumindest zwei seriellen Kommunikationsbussen (D, E), die durch eine Brücke (PDE) miteinander verbunden sind, wobei die Brücke die Schnittstelle zwischen den zumindest zwei seriellen Kommunikationsbussen bereitstellt, und wobei jeder sukzessive Zeitzyklen definiert, die eine für den betrachteten Bus spezifische Dauer haben, wobei das Gerät Folgendes hat: – eine Einrichtung zum Erfassen (12, 14, 16, 30, 32, 34, C3, C4) einer relativen Drift zwischen den jeweiligen Zyklen der zumindest zwei Kommunikationsbusse, – eine Einrichtung zum Übertragen (12, 30, 32, 34, C10, C12) eines Befehls zum Modifizieren der Dauer des Zyklus eines der zumindest zwei seriellen Kommunikationsbusse, dadurch gekennzeichnet, dass das Gerät eine Einrichtung zum Verzögern (12, 14, 16, C6, C7; 12, 14, 16, C2, D1, D2) von zumindest einer der Aktionen eines Erfassens einer Drift und eines Übertragens eines Befehls zum Modifizieren der Dauer eines Zyklus hat.
  32. Gerät nach Anspruch 31, dadurch gekennzeichnet, dass es eine Einrichtung zum Verzögern einer Aktion eines Übertragens eines Befehls zum Modifizieren der Dauer eines Zyklus hat.
  33. Gerät nach Anspruch 31, dadurch gekennzeichnet, dass es eine Einrichtung zum Verzögern einer Aktion eines Erfassens einer relativen Drift zwischen den jeweiligen Zyklen der zumindest zwei Kommunikationsbusse hat.
  34. Gerät nach einem der Ansprüche 31 bis 33, dadurch gekennzeichnet, dass es eine Einrichtung zum Vergleichen der erfassten Drift mit einem vorbestimmten Schwellwert hat.
  35. Gerät nach Anspruch 34, dadurch gekennzeichnet, dass der Schwellwert positiv ist.
  36. Gerät nach Anspruch 34, dadurch gekennzeichnet, dass der Schwellwert negativ ist.
  37. Gerät nach einem der Ansprüche 31 bis 34, dadurch gekennzeichnet, dass es eine Einrichtung zum Übertragen von zumindest einem Befehl zum Modifizieren der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse hat.
  38. Gerät nach Anspruch 37, dadurch gekennzeichnet, dass die Modifikation proportional zu der erfassten Drift ist.
  39. Gerät nach einem der Ansprüche 31 bis 36, dadurch gekennzeichnet, dass es eine Einrichtung zum Speichern (12, 14, 16, C5) der erfassten Drift hat.
  40. Gerät nach Anspruch 39, dadurch gekennzeichnet, dass die Einrichtung zum Speichern (12, 14, 16, C5) der erfassten Drift eine Einrichtung zum Durchführen einer Summierungsoperation der erfassten Drift mit einer für einen früheren Zyklus gespeicherten Drift enthält.
  41. Gerät nach Anspruch 37 oder 40, dadurch gekennzeichnet, dass es eine Einrichtung zum Vergleichen (12, 14, 16, C14, C15) der gespeicherten Drift mit einem vorbestimmten Schwellwert hat.
  42. Gerät nach Anspruch 41, dadurch gekennzeichnet, dass der Schwellwert positiv oder Null ist.
  43. Gerät nach Anspruch 41, dadurch gekennzeichnet, dass der Schwellwert negativ oder Null ist.
  44. Gerät nach einem der Ansprüche 39 bis 43, dadurch gekennzeichnet, dass es eine Einrichtung zum Übertragen (12, 30, 32, 34, C10, C12) von zumindest einem Befehl zum Modifizieren der Dauer des Zyklus von einem der zumindest zwei seriellen Kommunikationsbusse hat.
  45. Gerät nach Anspruch 44, dadurch gekennzeichnet, dass die Modifikation proportional zu der gespeicherten Drift ist.
  46. Gerät nach einem der Ansprüche 31 bis 44, dadurch gekennzeichnet, dass jeder der zumindest zwei seriellen Kommunikationsbusse (D, E) einen internen Taktgeber mit einer gegebenen Taktfrequenz hat, die Dauer T eines für einen seriellen Kommunikationsbus spezifischen Zyklus durch eine Anzahl ninit von durch den internen Taktgeber des Busses während dieses Zyklus erzeugten Taktimpulsen nach der Beziehung T = ninit/F bestimmt wird, wobei F die Frequenz des betrachteten Taktgebers bezeichnet, und die Einrichtungen zum Erfassen der relativen Drift zwischen den jeweiligen Zyklen der Taktgeber der zumindest zwei seriellen Kommunikationsbusse eine Einrichtung zum untereinander Vergleichen der Anzahlen von durch die Taktgeber erzeugten Impulsen hat.
  47. Gerät nach einem der Ansprüche 31 bis 46, dadurch gekennzeichnet, dass die seriellen Kommunikationsbusse dem IEEE 1394 Standard entsprechen.
  48. Brücke (PDE), die die Schnittstelle zwischen zumindest zwei seriellen Kommunikationsbussen (D, E) in einem Datenpaketkommunikationsnetzwerk bereitstellt, dadurch gekennzeichnet, dass die Brücke ein Gerät zum Steuern der Synchronisation in dem Netzwerk nach einem der Ansprüche 31 bis 47 hat.
  49. Datenverarbeitungsanlage, dadurch gekennzeichnet, dass sie eine Brücke nach Anspruch 48 hat.
  50. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage ein Drucker ist.
  51. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage ein Server ist.
  52. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage ein Computer ist.
  53. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage eine Faxmaschine ist.
  54. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage ein Scanner ist.
  55. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage ein Videorecorder ist.
  56. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage ein Decoder ist.
  57. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage ein Fernseher ist.
  58. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage eine Videokamera ist.
  59. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage eine Digitalkamera ist.
  60. Anlage nach Anspruch 49, dadurch gekennzeichnet, dass die Anlage eine Digitalphotographieanlage ist.
  61. Computerprogrammprodukt, das in ein programmierbares Gerät ladbar ist und Softwarecodeanteile zum Durchführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 30 aufweist, wenn das Produkt auf einem programmierbaren Gerät abläuft.
DE60038589T 1999-03-12 2000-03-10 Verfahren und Einrichtung zur Steuerung der Synchronisation zwischen zwei seriellen Kommunikationsbussen eines Netzes Expired - Lifetime DE60038589T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9903094A FR2790892A1 (fr) 1999-03-12 1999-03-12 Procede et dispositif de controle de la synchronisation entre deux bus de communication serie d'un reseau
FR9903094 1999-03-12

Publications (2)

Publication Number Publication Date
DE60038589D1 DE60038589D1 (de) 2008-05-29
DE60038589T2 true DE60038589T2 (de) 2009-06-04

Family

ID=9543133

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60038589T Expired - Lifetime DE60038589T2 (de) 1999-03-12 2000-03-10 Verfahren und Einrichtung zur Steuerung der Synchronisation zwischen zwei seriellen Kommunikationsbussen eines Netzes

Country Status (4)

Country Link
US (1) US6778543B1 (de)
EP (1) EP1037432B1 (de)
DE (1) DE60038589T2 (de)
FR (1) FR2790892A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734852B1 (en) 1998-08-06 2010-06-08 Ahern Frank W Modular computer system
US6772267B2 (en) * 2000-02-18 2004-08-03 Bridgeco Ag Multi-portal bridge for providing network connectivity
US6594719B1 (en) * 2000-04-19 2003-07-15 Mobility Electronics Inc. Extended cardbus/pc card controller with split-bridge ™technology
FR2816146A1 (fr) * 2000-10-27 2002-05-03 Canon Kk Procede et dispositif de gestion d'un reseau de communication
DE10107991A1 (de) * 2001-02-19 2002-08-29 Philips Corp Intellectual Pty Netzwerk mit einer Anpassung der Rahmenstruktur von Sub-Netzwerken
US7269137B2 (en) * 2001-08-24 2007-09-11 Canon Kabushiki Kaisha Method for setting up an isochronous data stream connection, with the application of a predetermined, total isochronous delay on one or more routing paths
US6898723B2 (en) * 2002-04-01 2005-05-24 Mitac International Corp. Method for verifying clock signal frequency of computer sound interface that involves checking whether count value of counter is within tolerable count range
FR2949030B1 (fr) * 2009-08-04 2012-03-23 Canon Kk Procede et dispositif de synchronisation d'applications dans un reseau
US8861664B2 (en) * 2012-06-15 2014-10-14 Smsc Holdings S.A.R.L. Communication system and method for synchronizing a plurality of network nodes after a network lock condition occurs

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5052029A (en) * 1990-04-05 1991-09-24 Apple Computer, Inc. Self-correcting synchronization signal method and apparatus
ATE195381T1 (de) * 1994-06-17 2000-08-15 Advanced Micro Devices Inc Speicherübertragungsgeschwindigkeitsbegrenzung für pci-meister
JP3203978B2 (ja) * 1994-07-25 2001-09-04 ソニー株式会社 データ送受信装置、データ受信装置及びデータ送信装置
US5790831A (en) * 1994-11-01 1998-08-04 Opti Inc. VL-bus/PCI-bus bridge
US6021483A (en) * 1997-03-17 2000-02-01 International Business Machines Corporation PCI-to-PCI bridges with a timer register for storing a delayed transaction latency
US6418150B1 (en) * 1998-02-20 2002-07-09 Apple Computer, Inc. Method and apparatus for calibrating an IEEE-1394 cycle master
US6345330B2 (en) * 1998-05-01 2002-02-05 Acqis Technology, Inc. Communication channel and interface devices for bridging computer interface buses
US6078980A (en) * 1998-12-29 2000-06-20 Intel Corporation Regulating a data transfer time

Also Published As

Publication number Publication date
US6778543B1 (en) 2004-08-17
EP1037432B1 (de) 2008-04-16
EP1037432A1 (de) 2000-09-20
FR2790892A1 (fr) 2000-09-15
DE60038589D1 (de) 2008-05-29

Similar Documents

Publication Publication Date Title
DE69937394T2 (de) Verfahren und vorrichtung zur prädikativen zeitstempelung isochroner datenpakete
EP1265124B1 (de) Verfahren zum Übermitteln von Zeitinformation über ein Datenpaketnetz
DE4320137B4 (de) Synchronisation von Tageszeituhren in einem verteilten Verarbeitungsnetzwerksystem
DE112016006755B4 (de) Netzwerksystem und Kommunikationsverfahren
DE60311266T2 (de) Clock-synchronisationsmethode für fehlertolerante ethernet-netzwerke
DE112010004237B4 (de) Techniken zur verbesserten Messung von Taktverschiebungen
DE102018132290A1 (de) Fahrzeuginternes System, Gateway, Relais, nichttransitorisches computerlesbares Medium zum Speichern eines Programms, Informationsverarbeitungsverfahren, Informationsverarbeitungssystem und Fahrzeug
DE69013308T2 (de) Datenkommunikationssystem.
DE112019002984T5 (de) Durchführung von phy-level-hardware-zeitstempelung und zeitsynchronisierung in kostenoptimierten umgebungen
EP0570557A1 (de) Verfahren zur erzeugung einer systemzeitbasis in einer anlage mit verteilten rechnereinheiten
DE102019003979B4 (de) System und verfahren zum durchführen einer interpacket-gap-reparatur für verlustbehaftete protokolle
DE4307449A1 (de)
DE60038589T2 (de) Verfahren und Einrichtung zur Steuerung der Synchronisation zwischen zwei seriellen Kommunikationsbussen eines Netzes
DE69636099T2 (de) Vorrichtung und Verfahren zur Umwandlung von Datentransferraten für digitale Audio- und Videodaten
DE112012006762T5 (de) Kommunikationsvorrichtung, Kommunikationssystem und synchrones Steuerverfahren
DE112017007691T5 (de) Kommunikationssystem, Master-Einrichtung und Slave-Einrichtung
DE112015006192T5 (de) Kommunikationsvorrichtung, Kommunikationsverfahren und Programm
EP1639758B1 (de) Verfahren und vorrichtung zum austausch von daten über ein bussystem
DE102018129189B4 (de) Verfahren zum betreiben eines netzwerkteilnehmers in einem automatisierungskommunikationsnetzwerk
DE102019130756A1 (de) Steuerungseinheit-Diagnosevorrichtung und Verfahren davon
DE69729068T2 (de) Vorrichtung und Verfahren zum Übertragen von digitalen Audio- und Videodaten
DE112018007743T5 (de) Kommunikationsgerät, Kommunikationssystem und Synchronisationssteuerungsverfahren
EP3363165B1 (de) Verfahren und computersystem zur schnellen übertragung von zeitgesteuerten echtzeitnachrichten
DE112015006604T5 (de) Zeitsynchronisationseinrichtung, Zeitsynchronisationssystem und Zeitsynchronisationsverfahren
EP2294763A1 (de) Teilnehmerknoten eines kommunikationssytems mit funktional getrenntem sende-ereignisspeicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition