-
Hintergrund
-
Dies bezieht sich generell auf Geräte, die Video- und Audiodaten ausgeben und beziehen.
-
DisplayPort ist ein digitaler Audio-/Video-Kopplungsstrukturstandard der Video Electronic Standards Association (VESA). Er ermöglicht, dass Video und Audio von einem Computer an ein Videodisplay oder ein Audiowiedergabesystem gekoppelt werden können. Der DisplayPort-Anschluss unterstützt 1, 2 oder 4 Datenpaare in einem Haupt-Link, der auch Takt- und optionale Audiosignale mit Symbolraten von 1,62, 2,7 oder 5,4 Gigabit pro Sekunde transportiert. Ein Standard 1.1 wurde im Mai 2006 zugelassen und 2009 wurde ein Standard 1.2 mit erhöhten Datenraten angekündigt. Der DisplayPort-Standard 1.2 verdoppelt die Bandbreite des Standards 1.1.
-
Mit dem DisplayPort-Standard 1.2 können zwei WQXGA-Monitore Audio-/Video-Daten von einem einzelnen Quellen-Link beziehen oder vier WUXGA-Monitore können Daten von einem einzelnen Quellen-Link beziehen. Des Weiteren ermöglicht der Standard 1.2 einen AUX mit höherer Geschwindigkeit, der für USB-Peripheriegerätedatentransfer, Mikrofon-Audioübertragung oder Kamera-Videoübertragung verwendet werden kann, um einige Anwendungen zu erwähnen.
-
Display- oder Senke-Geräte können an Quellen-Geräte, wie beispielsweise Personalcomputer oder Unterhaltungselektronikgeräte, entweder direkt oder über das, was Abzweiggeräte genannt wird, angeschlossen werden. Viele Arten von Abzweiggeräten existieren einschließlich Repeater, die Audio- oder Videoinformation wiederholen, Wandler, die Audio- oder Videoinformation von einem Format in ein anderes konvertieren, Replikatoren, welche die Daten reproduzieren, und Konzentratoren, die Streams von zwei oder mehr Quellen-Geräten als Eingänge nehmen und sie auf deren nachgeschaltete Links übertragen. Schnittstellenstandards, wie beispielsweise DisplayPort 1.2, ermöglichen mehrere Streams auf einem Link; in solchen Fällen können diese zwei oder mehr Eingangsstreams an einen einzelnen nachgeschalteten Link gesendet werden. Einige Konzentratoren können in einer geschalteten Art arbeiten, d. h., nur eine ausgewählte Quelle kann auf einmal übertragen.
-
Zusammen bilden die Quelle-, Senke- und Abzweiggeräte eine Topologie, in der eine gegebene Quelle Video zu einer oder mehreren Senken durch die null oder mehr Abzweiggeräte streamen kann. Aktive Videodaten bewegen sich durch Links, die verschiedene Gerätearten verbinden. Jeder Link ist durch seine Bandbreite und die Zahl an Streams beschränkt, die er unterstützt. Eine Senke hat eine begrenzte Anzahl von Audio- und Videoendpunkten, um den Stream wiederzugeben. Deshalb kann es basierend auf der Topologie einen Wettstreit für die verfügbaren Video- oder Audioressourcen geben.
-
Eine solche Topologie, die in 1 dargestellt ist, kann wie gezeigt zwei Quellen und fünf Senken umfassen. Eine Quelle Nummer 1 will Video zur Senke Nummer 1 streamen und Quelle Nummer 2 will Video zur Senke Nummer 2 streamen, wobei der Link zwischen Zweig Nummer 2 und Zweig Nummer 3 beiden Pfaden gemeinsam ist. Deshalb können sich Probleme an der Quelle in Bezug auf diesen Wettstreit ergeben einschließlich, wie viel Bandbreite in diesem oder irgendeinem anderen Link entlang dem Pfad verfügbar ist. Ein anderes Problem ist, wie Ressourcen auf dem Pfad reserviert werden können. Noch ein weiteres Problem ist, wie viele Audio-/visuelle Streams angesteuert werden können. Andere Probleme umfassen, wie der Zugriff zu gemeinsam benutzten Ressourcen gehandhabt werden kann und wie Fehler kommuniziert werden können.
-
Kurze Beschreibung der Zeichnungen
-
1 ist eine schematische Darstellung einer Audio-/Video-Verteilungstopologie gemäß einer Ausführungsform;
-
2 ist ein Sequenz-Diagramm für Aufzählung, Übergabe und Freigabe gemäß einer Ausführungsform;
-
3 ist eine schematische Darstellung für eine Ausführungsform eines Abzweiggeräts;
-
4 ist ein Ablaufdiagramm für die Aufzählungssoftware gemäß einer Ausführungsform;
-
5 ist ein Nachrichtensequenz-Diagramm gemäß einer Ausführungsform;
-
6 ist ein Sequenz-Diagramm für die Aufzählung von Pfad-Ressourcen gemäß einer Ausführungsform;
-
7 ist ein Sequenz-Diagramm, das zeigt, wie verschiedene Display-Konfigurationen für die in 6 gezeigte Topologie etabliert werden können;
-
8 ist eine Darstellung einer potenziellen Zuordnung zwischen zwei Quellen und zwei Senken gemäß einer Ausführungsform;
-
9 ist ein Ablaufdiagramm für eine Ausführungsform;
-
10 ist ein Ablaufdiagramm für eine Ausführungsform;
-
11 ist eine Nachrichtensequenz gemäß einer Ausführungsform;
-
12 ist eine Aufwärtsaktionspfad-Nachrichtensequenz gemäß einer Ausführungsform;
-
13 ist eine Zuordnung von Ziel-Sequenzen gemäß einer Ausführungsform;
-
14 ist ein Nachrichtensequenz-Diagramm für eine Uplink-Aktionspfadnachricht gemäß einer Ausführungsform;
-
15 ist eine Darstellung von Verbindungen zwischen Quelle- und Abzweiggeräten gemäß einer Ausführungsform;
-
16 ist eine Darstellung von mehreren Quellen- und Abzweiggeräten gemäß einer Ausführungsform;
-
17 ist eine Darstellung einer Topologie mit zwei Videoendpunkten gemäß einer Ausführungsform; und
-
18 ist ein Ablaufdiagramm für eine Ausführungsform.
-
Ausführliche Beschreibung
-
Gemäß einigen Ausführungsformen können spezifische Nachrichten zwischen Geräten ausgetauscht werden, die Video- und Audiodaten ausgeben und beziehen. Eine koordinierte Aktion kann von Geräten entlang einem Pfad zwischen Quelle- und Senke-Geräten als Antwort auf diese Nachrichten vorgenommen werden. Nachrichten können zu einem vorbestimmten Ziel gesendet werden, das durch seine Adresse spezifiziert ist. Die Nachrichten ENUM_PATH_RESOURCES, COMMIT_PATH_RESOURCES und RELEASE_PATH_RESOURCES können wie gezeigt in 2 verwendet werden. Diese Nachrichten können zum Beispiel auf dem AUX-Kanal in der DisplayPort-Spezifikation gesendet werden.
-
Adressbereiche werden vor der Nachrichtenübertragung erzeugt. Jede Quelle 10 sendet ENUM_PATH_RESOURCE-Nachricht 18 zur gewünschten Senke 16, um die Haupt-Link-Bandbreite und die Anzahl an Streams aufzuzählen. Das Abzweiggerät 14 direkt vor der gewünschten Senke 16 antwortet mit der verfügbaren Bandbreite (BW = x) und Anzahl an Streams (# STREAMS = s), wie gezeigt bei 20. Bevor diese Antwort weiter Upstream propagiert wird, ändert der vorgeschaltete Abzweig 12 die verfügbare Bandbreite (BW = x') und Stream-Anzahl (# STREAMS = s') vom nachgeschalteten Abzweig 14 ab, um zu reflektieren, was vom nachgeschalteten Pfad, wie gezeigt bei 22, ausführbar ist.
-
Schließlich erhält die Quelle 10 die Ressourcen des Pfades. Die Nachricht wird auf einem Steuerbus (wie beispielsweise AUX am DisplayPort) gesendet, aber die Abfrage gilt für Haupt-Link-Ressourcen. Es gibt keine Reservierung der Bandbreite auf dem Steuerbus und Steuerungsnachrichten werden zwischen Geräten in der Topologie ausgetauscht, auch wenn die Haupt-Link-Ressource durch eine oder zwei Quellen vollständig vorbesetzt ist.
-
Als Teil der Nachrichtenverarbeitung mag jedes Gerät den Haupt-Link entlang dem spezifizierten Pfad trainieren müssen, um die Menge der Bandbreite zu bestimmen, die als nachgeschalteter Link verfügbar ist. Audioressourcen werden auch als Teil dieses Verfahrens aufgezählt. Dies dient dazu, die Anzahl an Endpunkten zu bestimmen, die zu irgendeinem gegebenen Zeitpunkt für Streaming verfügbar sind.
-
Link-Bandbreiten-Aufzählung wird in Betriebssystem-Operationen eingegeben, wie beispielsweise Videomodus-Aufzählung. Basierend darauf und auf asynchroner Auswahl durch den Endbenutzer des Videomodus, der auszugeben ist, kann ein Übergabeverfahren unter Verwendung einer COMMIT_PATH_RESOURCES-Nachricht 24 wie folgt ausgeführt werden. Die aufgezählte Bandbreite könnte zum Übergabezeitpunkt nicht verfügbar sein. Zum Beispiel können unterschiedliche Quellen unterschiedliche ENUM_PATH_RESOURCES-Nachrichten zu einer gegebenen Zeit zu derselben Senke senden. Sie könnten auch für unterschiedliche Senken mit Pfaden sein, die einen gemeinsamen Link aufweisen. Als ein Beispiel folgt der Sequenz von Quelle Nummer 1-Aufzählung, gefolgt von Quelle Nummer 2-Aufzählung, gefolgt von Quelle Nummer 1-Übergabe zum Beispiel die Quelle Nummer 2-Übergabe, die wegen der vorherigen Quelle Nummer 1-Übergabe misslingt.
-
Die Quelle 10 sendet eine COMMIT_PATH_RESOURCE-Nachricht 24 zur Senke 16. Die Nachricht hat die gewünschte Bandbreite und Anzahl an Streams. Alle Geräte entlang dem spezifizierten Pfad (z. B. die Abzweige 12 und 14) reservieren die Ressourcen für diese Quelle. Die Antworten 26 und 28 können einen Erfolg oder Misserfolg anzeigen.
-
Jedes Gerät propagiert COMMIT_PATH_RESOURCES 24 nur, wenn es imstande ist, die gewünschten Ressourcen erfolgreich zu übergeben. Zusätzlich zu unabhängigen Ressource-Übergaben von unterschiedlichen Quellen-Geräten ist es möglich, dass die dazwischen befindlichen Links entlang dem Pfad zu einer niedrigeren Bandbreite umlernen können, was einen weiteren Grund für einen Misserfolg bietet. Link-Training ist der Handshake, der ausgeführt wird, um den Sender oder Empfänger über eine elektrische Konfiguration übereinstimmen zu lassen. Um an eine Topologie von Geräten zu berichten, wird diese Vorstellung auf einen gesamten Pfad ausgedehnt, wobei jeder Link auf dem Pfad in einer koordinierten Art, genannt Pfad-Training, trainiert werden muss.
-
Es ist möglich, dass einige Geräte erfolgreich übergebene Ressourcen für einen Video-Stream aufweisen können, bevor ein nachgeschaltetes Gerät dabei versagt, zu übergeben. Um diese Ressourcen freizugeben, kann das Quellen-Gerät eine RELEASE_PATH_RESOURCES 30-Nachricht nach dem Empfangen eines Misserfolgs auf COMMIT_PATH_RESOURCES aussenden.
-
Ein aktives Video beginnt nach dem erfolgreichen Abschluss von COMMIT_PATH_RESOURCES. Im umgekehrten Fall, wenn der Stream abgeschlossen werden soll, gibt die Quelle RELEASE_PATH_RESOURCES 32 aus, um die Freigabe von übergebenen Ressourcen bei Geräten entlang dem Pfad zu ermöglichen.
-
Mit Bezug auf 3 umfassen Quelle 10, Senke 16 und jedes der Abzweiggeräte 12 oder 14, wie gezeigt in 3 als 34, einen Prozessor 36. Der Prozessor kann mit einem Empfänger 38 und dem Sender 40 gekoppelt sein. Der Prozessor 36 kann bei einer Ausführungsform auch mit einem Speicher 42 gekoppelt sein, welcher Software einschließlich der Aufzählungs-Software 44 speichert. Deshalb kann der Speicher 42 ein computerlesbares Medium sein, das Befehle speichert, die von Prozessor 36 ausgeführt werden. Der Speicher 42 kann ein Halbleiter-, optischer oder magnetischer Speicher sein.
-
Die Aufzählungs-Sequenz 44, gezeigt in 4, kann bei einer Ausführungsform Software sein, aber sie kann auch in Hardware oder Firmware implementiert sein. Eine Prüfung bei Diamant 46 bestimmt, ob eine Aufzählungs-Nachricht durch ein Abzweiggerät empfangen wurde. Wenn dies zutrifft, antwortet das die Nachricht empfangende Abzweiggerät dem vorgeschalteten Abzweiggerät mit der verfügbaren Bandbreite des empfangenden Geräts und der verfügbaren Anzahl an Streams.
-
Wenn ein empfangendes Gerät die Aufzählungs-Nachricht nach einem Zeitraum nicht empfängt, bestimmt eine Prüfung bei Diamant 50, ob ein nicht empfangendes Gerät ein vorgeschaltetes Gerät ist, das eine Nachricht von einem nachgeschalteten Gerät empfängt, die eine Bandbreite und eine Anzahl an Streams spezifiziert. Wenn dies zutrifft, modifiziert das vorgeschaltete Gerät die empfangene Bandbreite und die Anzahl an erforderlichen Streams, um seine Fähigkeiten zu reflektieren. Es sendet dann wie gezeigt im Block 54 entweder die ursprüngliche Bandbreite und Anzahl an Streams oder die modifizierten Zahlen wie erforderlich zum folgenden Abzweig oder zur Quelle.
-
Mit Bezug auf 5 umfasst ein Nachrichtensequenz-Diagramm für die Addition und Löschung eines Streams eine Quelle 60 und zwei Senken 62, 64 mit geeigneten Stream-Identifikatoren. Der Identifikator für Senke1 62 ist „1” und der Identifikator für Senke2 64 ist 1.2. Jedes Gerät umfasst einen Port bezeichnet mit „1” oder „2”.
-
Dann ist unter Bezugnahme auf 6 ein Sequenz-Diagramm zwischen einer Quelle1 60, einem Abzweig plus Senke1 62 und einer Senke2 64 dargestellt. AUX bezieht sich auf den Steuerkanal, und Haupt-Link bezieht sich auf den Datenkanal.
-
Jeder Link in einer Topologie, wie die in 5 gezeigte, kann beispielsweise aus unabhängigen Steuer- und Datenkanälen bestehen und die Verbindungen sind Punkt-zu-Punkt-Verbindungen. Es gibt eine Fähigkeit, Nachrichten auf dem Steuerkanal zu irgendeinem Gerät zu senden, das Adressier- und Routing-Mechanismen verwendet. Das Verfahren schließt lokal eindeutige Identifikatoren für den Stream bei den Quellen und die Einhaltung von Zuordnungstabellen und Konzentratoren, wie gezeigt in 6, ein.
-
Während einer Adressgenerierungsphase werden Adressen für jedes der Geräte in der Topologie vereinbart, indem Adressgenerierungsnachrichten 66 gesendet werden. Dann sendet die Quelle ENUM_PATH_RESOURCES-Nachricht 68 zum Abzweig + Senke1 62 über den Steuerkanal, der als AUX gezeigt ist. Sie sendet auch eine COMMIT_PATH_RESOURCES-Nachricht 70 über den Steuerpfad sowie zum Abzweig + Senke1 62.
-
Bindung ist das Verfahren, durch das sich Geräte in der Topologie über ein Ziel für den folgenden Stream einigen. Das Bindungsverfahren beginnt nach der Aufzählung mit einer Quelle, die einen neuen Stream übertragen möchte und eine ADD_STREAM-Nachricht 72 an das gewünschte mit einem lokal eindeutigen Stream-Identifikator identifizierte Ziel-Senke-Gerät sendet (z. B. 1.2 für Senke2). Alle Geräte entlang dem Pfad von Quelle 60 zum Senke-Gerät 64 erinnern sich an den Stream-Identifikator und den Eingangsport (z. B. 1 oder 2), bei dem der Stream in ihren Zuordnungstabellen empfangen wurde.
-
Jedes Abzweiggerät 62 führt eine Zuordnung des Eingangsstream-Identifikators (ID1 für sich selbst) zu einem Ausgangs-Stream-Identifikator (1.2 für Senke2 64) aus. Ohne mehrere Quellen ist der Eingangsstream-Identifikator derselbe wie der Ausgangs-Stream-Identifikator. Jedes Abzweiggerät erinnert sich auch an den Ausgangsstream-Identifikator und die Ausgangsport-Nummer in seiner Zuordnungstabelle.
-
Letztendlich geben die Abzweiggeräte die Nachricht weiter an das Ziel, wie angezeigt durch die Route/Adresse, die in der Nachricht enthalten ist, unter der Annahme, dass es keine anderen Ressourcen-Einschränkungen bei diesen Geräten gibt, wie gezeigt bei 74. Im Falle solcher Ressourcen-Einschränkungen sendet das Abzweiggerät einfach eine negative Bestätigung zur Quelle. Die Nachricht endet am gewünschten Ziel. Wenn das Senke-Gerät imstande ist, den Stream zu empfangen, antwortet es mit einer Bestätigung 76 an die Quelle. Andernfalls sendet das Senke-Gerät eine negative Bestätigung. Dann weiß die Senke, dass sie den folgenden neuen Stream verbrauchen muss, der sich auf dem Datenkanal befindet. Alle Abzweiggeräte propagieren die Bestätigungen 78 zurück zur Quelle.
-
Nach Empfang der Bestätigung sendet das Quellen-Gerät den neuen Stream 80 auf dem Datenkanal auf seinem Link, der zum gewünschten Ziel führt. Das Abzweiggerät routet, wie gezeigt bei 82, den Stream entlang dem Pfad für den neuen Stream, wie es sich aus seinen Zuordnungstabellen daran erinnert. Das Senke-Gerät weiß, dass es den neuen Stream basierend auf der Nachricht, die es zuvor empfangen hat, verbrauchen muss, und präsentiert den Stream auf dem Display.
-
Das Entbinden oder Löschen erfolgt durch die Stream-Löschen-Nachricht 84, 86, die zum beabsichtigten Ziel mit demselben Stream-Identifikator gesendet wird. Dies veranlasst das Senke-Gerät, das Anhalten des Streams und, für die Abzweiggeräte, die entsprechende Abänderung ihrer Zuordnungstabellen zu erwarten. Der Empfang einer Bestätigungsnachricht auf eine Stream-Löschen-Nachricht bewirkt, dass die Quelle das Senden des Streams auf dem Datenkanal stoppt.
-
In 7 können verschiedene Display-Konfigurationen für die in 4 gezeigte Topologie etabliert werden. Eine „Einzel-Display”-Konfiguration ist einfach eine Displayeinheit, die Audiovideodaten präsentiert. Sie verwendet die bereits beschriebenen Nachrichten 72, 74, 80, 82, 84 und 86. Die „Clone-Modus”-Konfiguration besteht dort, wo derselbe Inhalt 92 gesendet wird, um auf zwei Monitoren oder Displayeinheiten angezeigt zu werden. „Erweiterter Desktop” ist eine alternative zweifache Display-Konfiguration, bei der unterschiedliche Bilder 94, 96 auf beiden Monitoren gezeigt werden.
-
Wenn mehrere Quellen in der Topologie, wie gezeigt in 8, von Quelle1 98 und Quelle2 100 vorhanden sind, kann jede Quelle eine ADD_STREAM Nachricht mit demselben Stream-Identifikator (in diesem Fall #1) gleichzeitig auf einem überlappenden Pfad ausgeben. In diesem Fall propagiert ein Konzentrator-Abzweiggerät 102, das sich auf dem überlappenden Pfad für diese neuen Streams befindet, nur eine ADD_STREAM-Nachricht für eine Quelle (in diesem Fall Quelle1), während es die andere blockiert. D. h., nur ein neuer Stream kann auf einmal hinzugefügt werden. Nachdem die Nachricht der ungeblockten Quelle auf dem Datenkanal transportiert wurde, wird eine zusätzliche ADD_STREAM-Nachricht für die geblockte Quelle propagiert.
-
In der Gegenwart von mehreren Eingangsports bei einem Abzweiggerät 104 wird der nächste verfügbare Stream-Identifikator zugeordnet und das Abzweiggerät erinnert sich an den Eingangsstream-Identifikator und die Port-Nummer zu seinem Ausgangsstream-Identifikator und die Port-Nummer in seiner Zuordnungstabelle 108.
-
Als ein Anwendungsfall kann ein neuer Stream hinzugefügt werden. Das Konzentrator-Abzweiggerät fügt einen Neueintrag zu seiner Zuordnungstabelle hinzu, wenn es eine Stream-Hinzufügen-Nachricht mit einem Identifikator sieht, der nicht aktiv ist. Wenn erforderlich, erzeugt es einen neuen Ausgangs-Identifikator für diesen Stream und verwendet diesen, während es die ADD_STREAM-Nachricht propagiert. Ein Konzentrator-Abzweiggerät kann eine Zieladresse für diesen Identifikator in seiner Zuordnungstabelle hinzufügen. Ein anderer Anwendungsfall ist ein existierender erweiterter Stream. Wenn dieselbe Quelle eine zweite Senke zu einem Stream hinzufügt, der bereits durch eine andere ADD_STREAM-Nachricht aktiv ist, fügt das Konzentrator-Abzweiggerät keinen Neueintrag in seiner Zuordnungstabelle hinzu, da die Zuordnung, die es bereits erzeugt hat, immer noch gültig ist. Jedoch fügt der Konzentrator die zweite Zieladresse zu seinem Eingangsidentifikator in seiner Zuordnungstabelle hinzu.
-
Noch ein weiterer Anwendungsfall ist das Entfernen einer Senke von einem Stream. Der Konzentrator kennzeichnet die Adresse der Senke für die Löschung von einer Liste von Zielgeräten, wenn er eine Stream-Löschen-Nachricht mit der Adresse dieser Senke für einen aktiven Identifikator empfängt. Wenn er nachfolgend eine Stream-Löschen-Quittierungsnachricht vom Senke-Gerät empfängt, propagiert er die Nachricht zurück zur Quelle, indem er die Zuordnungstabelle verwendet, um den Identifikator abzuändern, der durch die Quelle erkannt wird. Er löscht dann die Adresse der Senke für diesen Stream aus seiner Zuordnungstabelle. Wenn das die letzte Senke war, die den Stream mit diesem Identifikator empfängt, löscht er den Eintrag aus seiner Zuordnungstabelle. Wenn es anderenfalls mindestens eine andere Senke gibt, die den Stream mit diesem Identifikator verbraucht, wird der Eintrag in der Zuordnungstabelle nicht gelöscht.
-
Mit Bezug auf 9 ist eine Sequenz 110 gemäß einer Ausführungsform zur Implementierung der oben beschriebenen Bindung dargestellt. Die Sequenz kann in Software, Hardware oder Firmware implementiert sein. Bei Softwareausführungsformen kann die Sequenz durch Befehle, die von einem Prozessor ausgeführt werden, wie beispielsweise dem Prozessor 36, gezeigt in 3, für ein Abzweiggerät 34 implementiert werden. In solch einem Fall kann die Sequenz im Speicher 42 gespeichert werden.
-
Anfänglich empfängt ein Abzweiggerät eine ADD_STREAM-Nachricht, wie gezeigt im Block 112. Es speichert die STREAM_ID und den Eingangsport von dieser Meldung in seiner Zuordnungstabelle, wie gezeigt im Block 114. Dann ordnet das Abzweiggerät die Eingangs-STREAM_ID einer Ausgangs-STREAM_ID, wie gezeigt bei Block 116, zu. Es speichert die Ausgangs-STREAM_ID und die Ausgangsport-Nummer in seiner Zuordnungstabelle, wie gezeigt im Block 118. Dann sendet es die Nachricht weiter, wie gezeigt im Block 120. Letztendlich, wenn die Nachricht erfolgreich geliefert wird, wird eine Bestätigungsnachricht von einem nachgeschalteten Gerät empfangen und das Abzweiggerät sendet die Bestätigungsnachricht zurück, wie gezeigt im Block 122.
-
Bei einigen Ausführungsformen kann ein Nachrichtenweitergabe-Rahmenwerk 124, das in 10 gezeigt ist, Aktion durch alle Geräte entlang einem Pfad oder nur durch das Zielgerät zulassen. Nachrichten haben Identifikatoren mit einem neuen Identifikator, der zugewiesen wird, während jede neue Nachricht definiert wird. Die Definition einer Nachricht umfasst die Bestimmung, ob es ein Pfad oder eine Ziel-Nachricht ist. Die Pfad-Nachrichten sind von zweierlei Art, abhängig von der Richtung, in der die Aktion ausgeführt wird. Abwärts in Richtung auf die Senke nach unten, dann ist es eine Abwärts-Aktionspfad-Nachricht, oder aufwärts zurück nach oben zum Quellen-Gerät, dann ist es eine Aufwärts-Aktionspfad-Nachricht. Nachrichten können durch irgendein Gerät in der Topologie initiiert werden. Jede Nachricht hat eine Zieladresse und eine verbindende Routinginformation.
-
Das Nachrichtenweitergabe-Rahmenwerk 124, gezeigt in 10, kann in Software, Hardware oder Firmware implementiert sein. Zum Beispiel kann es in Software in der Form von Befehlen gespeichert auf einem computerlesbaren Medium implementiert sein, wie beispielsweise dem Speicher 42, gezeigt in 3, im Gerät 34, das zum Beispiel ein Abzweig-Gerät oder Senke-Gerät sein kann.
-
Gemäß einer Ausführungsform beginnt die in 10 gezeigte Sequenz, mit dem Empfangen einer Nachricht von einem vorgeschalteten Gerät, wie gezeigt im Block 126. Das Gerät, das die Nachricht empfängt, kann, als zwei Beispiele, ein Abzweiggerät oder ein Senke-Gerät sein. Das empfangende Gerät erhält die Nachrichten-Definition, wie gezeigt im Block 128, ob es die Endstation ist oder nicht. Dann prüft das Gerät im Diamant 130, um zu bestimmen, ob eine Aufwärtsaktionsnachricht durch die Nachrichten-Definition angezeigt wird. Wenn dies so ist, führt es die Aktionen, die in der Nachricht angefordert werden, nach Empfang der Nachricht, wie gezeigt im Block 132, aus.
-
Andernfalls bestimmt eine Prüfung bei Diamant 134, ob es eine Abwärtsaktionsnachricht ist, wenn es keine Aufwärtsaktionsnachricht ist. Wenn es eine Abwärtsaktionsnachricht ist, wie gezeigt im Block 136, dann werden die Aktionen nach der Bestätigung ausgeführt, im Gegensatz zur Ausführung beim Empfang der Nachricht.
-
Im umgekehrten Fall, wenn es keine Abwärtsaktionsnachricht ist, dann wird, wie bestimmt bei Diamant 138, wenn es eine Ziel-Nachricht ist, die Aktion nur ausgeführt, wenn das Gerät, das die Nachricht empfängt, die Endstation ist, wie gezeigt im Block 140.
-
Das Nachrichtenweitergabe-Rahmenwerk ermöglicht Geräten, eine koordinierte Aktion auf einem spezifizierten Pfad in einer Punkt-zu-Punkt-Topologie von verbundenen audiovisuellen Quellen-, Abzweig- und Senke-Geräten auszuführen. Das Rahmenwerk kann für eine Vielzahl von Operationen einschließlich Topologie-Auffindung, Adressgenerierung, Routen, Bindungs- und Stream-Management, Ressourcenmanagement und Power-Management verwendet werden.
-
Eine Abwärtsaktionsnachricht, gezeigt in 11, arbeitet wie folgt. Vor dem Senden einer Nachricht führt die Quelle 110 irgendeine erforderliche nachrichtenspezifische Aktion 119 aus. Die Nachricht 112 wird nur gesendet, wenn die Quellen-Aktion Erfolg hat. Das Quellen-Gerät überträgt eine Nachricht zum Zielgerät, indem es diese auf einem nachgeschalteten Port, wie bestimmt basierend auf der Adressen-/Routinginformation sendet. Jedes Abzweiggerät 114 oder 116 oder Senke 118, das die Nachricht empfängt, führt die Aktion 119 wie erforderlich durch diesen Nachrichtentyp aus. Auf den erfolgreichen Abschluss der Aktion am Ziel (z. B. Senke 118), reagiert es mit einer Bestätigung (ACK) 120. Diese Bestätigung wird zurück nach oben zur Quelle propagiert.
-
Eine Aufwärtsaktionsnachricht 122 arbeitet wie abgebildet in 12. Hier werden die Aktionen 119 als Teil der Bestätigung 120 ausgeführt.
-
Ziel-Nachrichten arbeiten wie abgebildet in 13. Aktion 119 wird nur durch das Ziel, in diesem Beispiel die Senke 118, ausgeführt. Die anderen Geräte im Pfad senden einfach die Nachricht und die Bestätigung.
-
Eine Verwendung einer Abwärtsaktionspfadnachricht ist in 14 für das Pfad-Training veranschaulicht, was das Training aller Links in einem Pfad ist. In 13 ist die Aktion 119 bei jedem Gerät Link-Training. Die verwendete Nachricht ist TRAIN_LINKS_ON_PATH, obwohl irgendeine andere Nachricht verwendet werden könnte. In 13 ist die Nachricht auf Abzweig 116 gerichtet.
-
15 ist ein Nachrichtensequenz-Diagramm für TRAIN_LINKS_ON_PATH, wenn sie als eine Aufwärtsaktionsnachricht implementiert ist. Hier treten die Aktionen 119 alle als Teil der Bestätigungen 120 auf.
-
Ein schnittstellenspezifisches Rahmenwerk kann einem Quellen-Gerät ermöglichen, zu bestimmen, dass die durch unterschiedliche Pfade aufgezählten Funktionen Teil desselben Geräts sind. Der DisplayPort-Standard ist ein Beispiel einer „Schnittstelle”. Unterschiedliche Pfade für die Aufzählung können sein: a) Pfade, die unterschiedliche Schnittstellenarten aufweisen, oder b) nur unterschiedliche Pfade innerhalb desselben Schnittstellentyps. Das Rahmenwerk ermöglicht einem Gerät, in Verbindung mit Behälteridentifikator-Initiativen, die Microsoft® Windows® und andere Technologien wie beispielsweise USB unterstützen, verwendet zu werden, und es ermöglicht eher gerätezentrische anstatt funktionszentrische Anwenderschnittstellen für verbundene Geräte.
-
Das Rahmenwerk kann einen 16-Byte-Globally Unique Identifier (GUID) exponiert durch eine Reihe von container_ID-Registern umfassen (die DisplayPort-Konfigurationsdaten (DPCD) im Fall von DisplayPort sein könnten). Die DPCD sind im Wesentlichen eine Reihe von Registern, die zur Statusprüfung, Befehlskommunikation und dem Bereitstellen von Kontext für einen Interrupt verwendet werden. Die container_ID-Register können auf Abzweig-Geräten, zusammengesetzten Senke-Geräten und jedem Gerät unterstützt werden, das mehrere Transporte aufweist.
-
Von einem Senke-Gerät mit einer gegebenen Anzahl an Videoendpunkten wird erwartet, dass es mit dieser Anzahl an Extended Display Identification Data (EDID)-Strukturen antwortet. Die EDID-Datenstruktur teilt der Quelle die Fähigkeiten des Monitors mit. EDID ist ein VESA-Standard. Wenn ein Senke-Gerät ein integriertes USB- oder Hub-Gerät hat, stimmt der GUID der Senke mit dem GUID im Behälterbeschreiber von diesem USB-Gerät oder Hub überein. Alle Funktionen, die in das Gerät integriert sind, bieten denselben GUID an, unabhängig vom Schnittstellentyp, durch den auf sie zugegriffen wird. Bei einer Senke, die mehrere Videoendpunkte hat, geben die container_ID-Register von jeder Adresse denselben GUID zurück. Für jedes Gerät in der Topologie liest das Quellen-Gerät den GUID als Teil des Auffindungsprozesses der Topologie. Wenn das Gerät einen GUID enthält, liest das Quellen-Gerät den GUID, um zu bestimmen, ob auf dasselbe Gerät für mehrere Pfade oder durch mehrere Schnittstellen zugegriffen wurde.
-
Andernfalls schlussfolgert ein Quellen-Gerät die Funktionen, die in demselben physischen Gerät vorhanden sind, durch einige schnittstellenspezifische Mittel. Im Fall, wo die Schnittstelle ein DisplayPort-Standard ist, kann dies auf der relativen Adresse (RAD) des nachgeschalteten Geräts basieren. Wenn man mit einer Topologie von Geräten konfrontiert ist, muss jedes Gerät, das Kommunikation initiiert, eine Adresse für das Zielgerät generieren, die im Netzwerk gültig ist. Diese Adresse wird die relative Adresse genannt, da die von jedem Gerät generierte Adresse gültig ist, aber unterschiedlich sein könnte zu derjenigen, die auf einer anderen Quelle für dasselbe Ziel generiert wird. Dann liest die Quelle die EDID von jeder relativen Adresse. Ein GUID wird erzeugt und mit dem Gerät wie identifiziert durch EDID verbunden. Dieser erzeugte GUID wird mit dem Behälteridentifikator-Rahmenwerk im Betriebssystem verwendet.
-
Deshalb enthält die EDID bei einigen Ausführungsformen eine eindeutige laufende Nummer. Wenn dies nicht gültig ist, gibt es eine Änderung desselben GUID, der mit mehreren EDID verbunden ist, was in einer minderwertigen Benutzer-Erfahrung resultiert.
-
Mehrfachverbindungen zwischen Quelle und Abzweiggeräten werden in 16 gezeigt. In diesem Fall erzeugt die Quelle zwei Adressen für das Senke-Gerät, da es zwei Pfade zu dieser Senke gibt. Da die Quelle denselben GUID durch beide Pfade liest, ist sie in der Lage zu schlussfolgern, dass beide Pfade dasselbe Senke-Gerät lesen. Bei Fehlen des GUID, würde die Quelle den EDID von beiden Pfaden lesen, welche dieselben wären, einen GUID erzeugen und diesen GUID mit dem Senke-Gerät verbinden. Dieser Identifikator wird dann an das Betriebssystem zurückgegeben.
-
17 zeigt ein Beispiel mit zwei Videoendpunkten. Die Sequenz der Quelle ist wie folgt. Die Quelle erzeugt wieder zwei Adressen, eine für jeden Videoendpunkt im Senke-Gerät. Die Quelle liest den Behälteridentifikator für das Register von jeder Videoendpunkt-Adresse. Da die Senke zwei Schnittstellen darin hat, erfordert das Rahmenwerk, dass ein GUID in der Senke vorhanden ist und dass dieser GUID derselbe in beiden Schnittstellen ist. Die Quelle erkennt, dass der GUID derselbe ist und schlussfolgert, dass die zwei Videoendpunkte Teil desselben physischen Geräts sind.
-
Mit Bezug auf 18 kann gemäß einer Ausführungsform eine Sequenz 150 durch eine Quelle in der in 3 gezeigten Form implementiert werden. Bei einigen Ausführungsformen kann die in 18 gezeigte Sequenz in Software, Hardware oder Firmware implementiert sein. Bei Softwareausführungsformen kann sie durch eine Befehlssequenz, die von einem Prozessor wie beispielsweise dem Prozessor 36 ausgeführt wird, implementiert und in einem Speichergerät 42 gespeichert sein.
-
Während einer anfänglichen Aufzählungs- oder Topologieauffindungsphase wird ein Identifikator für jedes Gerät in der Topologie gelesen (Block 152). Mit anderen Worten erhält die Quelle den Identifikator für die Geräte in der Topologie. Dieser Identifikator kann irgendeiner von den hier bereits besprochenen Identifikatoren sein. Dann stellt die Quelle eine Verbindung mit einem Ziel nach der Quelle über einen Pfad, wie gezeigt bei Block 154, her. Dann vergleicht die Quelle die Identifikatoren des Geräts im Verbindungspfad, wie gezeigt im Block 156. Wenn, wie bestimmt in Block 158, die Identifikatoren übereinstimmen, schließt die Quelle daraus, dass die Pfad-Geräte mit übereinstimmenden Identifikatoren Teil desselben Abzweig- oder Senke-Geräts sind. Deshalb kann die Doppeldeutigkeit, die sich ergeben kann, wenn zwei Geräte denselben Identifikator haben, bei einigen Ausführungsformen leicht gehandhabt werden.
-
Verweise in dieser Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben wird, mindestens in einer innerhalb der vorliegenden Erfindung eingeschlossenen Implementierung enthalten ist. Somit beziehen sich Verwendungen des Ausdrucks „bei einer Ausführungsform” nicht notwendigerweise auf die gleiche Ausführungsform. Außerdem können die bestimmten Merkmale, Strukturen oder Charakteristika in anderen geeigneten Formen eingeführt werden, die sich von der bestimmten veranschaulichten Ausführungsform unterscheiden, und alle solchen Formen können innerhalb der Ansprüche der vorliegenden Anmeldung eingeschlossen sein.
-
Obwohl die vorliegende Erfindung im Hinblick auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind sich Fachleute bewusst, dass viele weitere Modifikationen und Varianten davon möglich sind. Die beigefügten Ansprüche sollen alle solchen Modifikationen und Varianten abdecken, die dem Sinn und Schutzbereich der vorliegenden Erfindung entsprechen.