-
QUERVERWEIS AUF VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht die Priorität der am 30. Oktober 2020 eingereichten vorläufigen Anmeldung
63/107914 , deren gesamte Offenbarung hiermit durch Bezugnahme für alle Zwecke hierin aufgenommen wird.
-
HINTERGRUND
-
USB ist eine periphere Schnittstelle zum Anschließen vieler verschiedener Rechenvorrichtungen, wie etwa Personal Computer, digitale Telefonleitungen, Monitore, Modems, Mäuse, Drucker, Scanner, Spiele-Controller, Tastaturen, Speichervorrichtungen und/oder dergleichen. Die Spezifikationen, die USB definieren (z. B. Intel et al., Universal Serial Bus Spezifikation, Revision 1.0, Januar 1996; aktualisiert als Revision 1.1 im September 1998; weiter aktualisiert als Revision 2.0 im April 2000; weiter aktualisiert als Revision 3.0 im November 2008; veröffentlicht als Universal Serial Bus 3.1 Spezifikation Revision 1.0 im Juli 2013; veröffentlicht als Universal Serial Bus 3.2 Spezifikation Revision 1.0 am 22. September 2017, und nachfolgende Aktualisierungen und Modifikationen, nachstehend zusammen als „USB-Spezifikationen“ bezeichnet, wobei dieser Begriff zukünftige Modifikationen und Revisionen beinhalten kann), sind nicht-proprietär und werden durch eine als USB Forum bekannte Open-Industry-Organisation verwaltet. Die USB-Spezifikationen legen Grundkriterien fest, die zur Erfüllung der USB-Standards erfüllt werden müssen. Durchschnittsfachleute erkennen viele Begriffe hierin aus den USB-Spezifikationen. Sofern nicht anders angegeben, werden diese Begriffe vorliegend ähnlich ihrer Verwendung in den USB-Spezifikationen verwendet.
-
Unter Revision 3.1 der USB-Spezifikationen werden SuperSpeed-Verbindungen bereitgestellt, die eine Signalrate von 5 Gbps (Gen 1) oder 10 Gbps (Gen 2) verwenden. Obgleich die Spezifikation keine bestimmte maximale Kabellänge vorgibt, erfordern die Timing-Vorgaben und Signalisierungstechniken in der Praxis, dass ein gewöhnliches Kupferkabel, das für eine SuperSpeed-Verbindung zwischen einem Host und einer Vorrichtung verwendet wird, höchstens 3 Meter lang ist, um die SuperSpeed-Verbindung ordnungsgemäß zu unterstützen. Daher sind ein neues Verfahren und eine neue Einrichtung notwendig, um gegebenenfalls eine Erweiterung einer SuperSpeed-USB-Vorrichtung auf eine größere Entfernung von dem Host, mit dem sie gekoppelt ist, zu gestatten, damit SuperSpeed-USB-Pakete zwischen dem Host und der USB-Vorrichtung propagiert werden können.
-
KURZDARSTELLUNG
-
Die Erfindung betrifft ein Verfahren zum Ermöglichen einer Kommunikation zwischen einem Hostgerät und mindestens einem USB-Gerät über ein Nicht-USB-Erweiterungsmedium nach den Ansprüchen 1 und 9. Darüber hinaus betrifft die Erfindung ein System zur Kommunikation von USB-Informationen über ein Erweiterungsmedium nach Anspruch 15 und eine Downstream-weisender-Port-Vorrichtung (DFP-Vorrichtung) nach Anspruch 16. Vorteilhafte Ausführungsformen der Erfindung sind durch die Merkmale der abhängigen Ansprüche gekennzeichnet. Diese Kurzdarstellung dient der Vorstellung einer Auswahl vereinfachter Konzepte, die nachstehend in der Ausführlichen Beschreibung näher beschrieben werden.
-
Bei einigen Ausführungsformen wird ein System zum Kommunizieren von USB-Informationen über ein Erweiterungsmedium bereitgestellt. Das System umfasst eine Upstream-weisender-Port-Vorrichtung (UFP-Vorrichtung) und eine Downstream-weisender-Port-Vorrichtung (DFP-Vorrichtung). Die UFP-Vorrichtung ist über eine USB-konforme Verbindung kommunikativ mit einer Hostvorrichtung gekoppelt. Die DFP-Vorrichtung ist über eine USB-konforme Verbindung kommunikativ mit mindestens einer USB-Vorrichtung gekoppelt und über ein Nicht-USB-Erweiterungsmedium kommunikativ mit der UFP-Vorrichtung gekoppelt. Die DFP-Vorrichtung ist ausgelegt zum Empfangen, von der UFP-Vorrichtung über das Erweiterungsmedium, eines ersten ACK-IN-Pakets, das an einen ersten Endpunkt adressiert ist; Empfangen, von der UFP-Vorrichtung über das Erweiterungsmedium, eines zweiten ACK-IN-Pakets, das an einen zweiten Endpunkt adressiert ist, nach Empfangen des ersten ACK-IN-Pakets; und, als Reaktion darauf, dass detektiert wird, dass die USB-konforme Verbindung verfügbar ist: Vergleichen eines blnterval-Werts für den ersten Endpunkt mit einem blnterval-Wert für den zweiten Endpunkt; und als Reaktion darauf, dass bestimmt wird, dass der blnterval-Wert für den zweiten Endpunkt kleiner als der blnterval-Wert für den ersten Endpunkt ist, Übertragen eines synthetischen ACK-IN-Pakets an den zweiten Endpunkt basierend auf dem zweiten ACK-IN-Paket.
-
Bei einigen Ausführungsformen wird ein Verfahren zum Ermöglichen einer Kommunikation zwischen einer Hostvorrichtung und mindestens einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium bereitgestellt. Eine Downstream-weisender-Port-Vorrichtung (DFP-Vorrichtung) empfängt, von einer Upstream-weisender-Port-Vorrichtung (UFP-Vorrichtung) über das Nicht-USB-Erweiterungsmedium, ein erstes ACK-IN-Paket, das an einen ersten Endpunkt adressiert ist. Die DFP-Vorrichtung empfängt, von der UFP-Vorrichtung über das Nicht-USB-Erweiterungsmedium, ein zweites ACK-IN-Paket, das an einen zweiten Endpunkt adressiert ist, nach Empfangen des ersten ACK-IN-Pakets. Als Reaktion darauf, dass detektiert wird, dass eine USB-konforme Verbindung zwischen der DFP-Vorrichtung und mindestens einer USB-Vorrichtung verfügbar ist, vergleicht die DFP-Vorrichtung einen blnterval-Wert für den ersten Endpunkt mit einem blnterval-Wert für den zweiten Endpunkt; und als Reaktion darauf, dass bestimmt wird, dass der blnterval-Wert für den zweiten Endpunkt kleiner als der blnterval-Wert für den ersten Endpunkt ist, überträgt die DFP-Vorrichtung ein synthetisches ACK-IN-Paket an den zweiten Endpunkt basierend auf dem zweiten ACK-IN-Paket.
-
Bei einigen Ausführungsformen wird eine Downstream-weisender-Port-Vorrichtung (DFP-Vorrichtung) bereitgestellt. Die DFP-Vorrichtung umfasst einen Downstream-weisenden USB-Port, dazu ausgelegt, kommunikativ mit einer oder mehreren USB-Vorrichtungen gekoppelt zu werden, und eine Erweiterungsschnittstelle, dazu ausgelegt, über ein Nicht-USB-Erweiterungsmedium kommunikativ mit einer Upstream-weisender-Port-Vorrichtung (UFP-Vorrichtung) gekoppelt zu werden. Die DFP-Vorrichtung ist ausgelegt zum Empfangen, von der UFP-Vorrichtung über das Erweiterungsmedium, eines ersten ACK-IN-Pakets, das an einen ersten Endpunkt adressiert ist; Empfangen, von der UFP-Vorrichtung über das Erweiterungsmedium, eines zweiten ACK-IN-Pakets, das an einen zweiten Endpunkt adressiert ist, nach Empfangen des ersten ACK-IN-Pakets; und, als Reaktion darauf, dass detektiert wird, dass die USB-konforme Verbindung verfügbar ist: Vergleichen eines blnterval-Werts für den ersten Endpunkt mit einem blnterval-Wert für den zweiten Endpunkt; und als Reaktion darauf, dass bestimmt wird, dass der blnterval-Wert für den zweiten Endpunkt kleiner als der blnterval-Wert für den ersten Endpunkt ist, Übertragen eines synthetischen ACK-IN-Pakets an den zweiten Endpunkt basierend auf dem zweiten ACK-IN-Paket.
-
Bei einigen Ausführungsformen wird ein System zum Kommunizieren von USB-Informationen über ein Erweiterungsmedium bereitgestellt. Das System umfasst eine Upstream-weisender-Port-Vorrichtung (UFP-Vorrichtung) und eine Downstream-weisender-Port-Vorrichtung (DFP-Vorrichtung). Die UFP-Vorrichtung ist über eine USB-konforme Verbindung kommunikativ mit einer Hostvorrichtung gekoppelt. Die DFP-Vorrichtung ist über eine USB-konforme Verbindung kommunikativ mit mindestens einer USB-Vorrichtung gekoppelt und über ein Nicht-USB-Erweiterungsmedium kommunikativ mit der UFP-Vorrichtung gekoppelt. Die DFP-Vorrichtung ist ausgelegt zum Empfangen, von der UFP-Vorrichtung über das Erweiterungsmedium, eines ACK-IN-Pakets, das an einen ersten Endpunkt adressiert ist, während sie DATA-Pakete von einem zweiten Endpunkt empfängt; Detektieren eines Endes einer Übertragung der DATA-Pakete von dem zweiten Endpunkt, Bestimmen einer Anzahl von Paketen, die während einer verbleibenden Zeitdauer in einem aktuellen Busintervall von dem ersten Endpunkt empfangen werden können; und Übertragen mindestens eines synthetischen ACK-IN-Pakets an den ersten Endpunkt basierend auf der Anzahl von Paketen.
-
Bei einigen Ausführungsformen wird ein Verfahren zum Ermöglichen einer Kommunikation zwischen einer Hostvorrichtung und mindestens einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium bereitgestellt. Eine Downstream-weisender-Port-Vorrichtung (DFP(Downstream-Facing-Port)-Vorrichtung) empfängt, von einer Upstream-weisender-Port-Vorrichtung (UFP(Upstream-Facing-Port)-Vorrichtung) über das Nicht-USB-Erweiterungsmedium, ein ACK-IN-Paket, das an einen ersten Endpunkt adressiert ist, während sie DATA-Pakete von einem zweiten Endpunkt empfängt. Die DFP-Vorrichtung detektiert ein Ende einer Übertragung der DATA-Pakete von dem zweiten Endpunkt. Die DFP-Vorrichtung bestimmt eine Anzahl von Paketen, die während einer verbleibenden Zeitdauer in einem aktuellen Busintervall von dem ersten Endpunkt empfangen werden können. Die DFP-Vorrichtung überträgt mindestens ein synthetisches ACK-IN-Paket an den ersten Endpunkt basierend auf der Anzahl von Paketen.
-
Bei einigen Ausführungsformen wird eine Downstream-weisender-Port-Vorrichtung (DFP-Vorrichtung) bereitgestellt. Die DFP-Vorrichtung umfasst einen Downstream-weisenden USB-Port, dazu ausgelegt, kommunikativ mit einer oder mehreren USB-Vorrichtungen gekoppelt zu werden, und eine Erweiterungsschnittstelle, dazu ausgelegt, über ein Nicht-USB-Erweiterungsmedium kommunikativ mit einer Upstream-weisender-Port-Vorrichtung (UFP-Vorrichtung) gekoppelt zu werden. Die DFP-Vorrichtung ist ausgelegt zum Empfangen, von der UFP-Vorrichtung über das Erweiterungsmedium, eines ACK-IN-Pakets, das an einen ersten Endpunkt adressiert ist, während sie DATA-Pakete von einem zweiten Endpunkt empfängt; Detektieren eines Endes einer Übertragung der DATA-Pakete von dem zweiten Endpunkt, Bestimmen einer Anzahl von Paketen, die während einer verbleibenden Zeitdauer in einem aktuellen Busintervall von dem ersten Endpunkt empfangen werden können; und Übertragen mindestens eines synthetischen ACK-IN-Pakets an den ersten Endpunkt basierend auf der Anzahl von Paketen.
-
Figurenliste
-
Die oben genannten Aspekte und viele der damit verbundenen Vorteile der vorliegenden Erfindung lassen sich leichter nachvollziehen, wenn ein besseres Verständnis dieser entwickelt wird, indem Bezug genommen wird auf die folgende ausführliche Beschreibung in Verbindung mit den begleitenden Zeichnungen, in denen Folgendes gilt:
- 1 ist ein Blockdiagramm, das eine Ausführungsform eines Systems zum Erweitern einer USB-Kommunikation gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
- 2 ist ein Blockdiagramm, das weitere Einzelheiten der in 1 veranschaulichten Upstream-USB-Erweiterungsvorrichtung und Downstream-USB-Erweiterungsvorrichtung veranschaulicht.
- 3 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform einer Portvorrichtung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
- 4A ist ein Sequenzdiagramm, das eine Kommunikation zwischen einer Hostvorrichtung und einer USB-Vorrichtung in einem Modus niedriger Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
- 4B ist ein Sequenzdiagramm, das ein Problem bei der Verwendung der naiven Überbrückungstechnik für isochrone IN-Transaktionen in Situationen hoher Latenz veranschaulicht.
- 5 ist ein Sequenzdiagramm, das ein Beispiel einer Technik zum Kompensieren einer durch das Erweiterungsmedium in isochronen IN-Transaktionen eingeführten Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
- 6 ist ein Sequenzdiagramm, das ein Problem bei der Verwendung der Technik von 5, Latenzprobleme in einer Erweiterungsumgebung mit mehreren gleichzeitig aktiven USB-Endpunkten zu bewältigen, veranschaulicht.
- 7A und 7B sind Sequenzdiagramme, die Beispiele einer Technik zum Kompensieren einer durch das Erweiterungsmedium in isochronen IN-Transaktionen eingeführten Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulichen.
- 8 ist eine schematische Zeichnung, die eine beispielhafte USB-Kommunikationstopologie in einer Erweiterungsumgebung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
- 9 ist ein Sequenzdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel einer Technik zum Kompensieren verschiedener Latenzmengen beim Übertragen synthetischer Anforderungspakete gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 ist ein Blockdiagramm, das eine Ausführungsform eines Systems 100 zum Erweitern einer USB-Kommunikation gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Das System 100 beinhaltet eine Hostvorrichtung 102 und eine USB-Vorrichtung 108. Üblicherweise wären die Hostvorrichtung 102 und die USB-Vorrichtung 108 direkt über ein USB-Kabel verbunden und würden über ein Protokoll, das eine USB-Spezifikation erfüllt, wie etwa USB 1.0, USB 1.1, USB 2.0, USB 3.0 oder USB 3.1, direkt miteinander kommunizieren. Wie oben erörtert, wäre eine derartige Verbindung aufgrund der Timing-Anforderungen der USB-Spezifikation auf eine kurze Entfernung zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108 begrenzt.
-
Die Hostvorrichtung 102 kann eine beliebige Art von Rechenvorrichtung sein, die eine USB-Hoststeuerung enthält. Zu einigen Beispielen geeigneter Hostvorrichtungen 102 können unter anderem ein Desktop-Computer, ein Laptop-Computer, eine Tablet-Rechenvorrichtung, ein Server-Computer, eine Set-Top-Box, eine Audio-Haupteinheit für ein Kraftfahrzeug, ein eingebetteter Host und/oder dergleichen gehören. Gleichermaßen kann die USB-Vorrichtung 108 eine beliebige Art von Vorrichtung sein, die in der Lage ist, über ein USB-Protokoll mit einer USB-Hoststeuerung zu kommunizieren. Bei dem in 1 veranschaulichten Beispiel handelt es sich um eine Webcam, jedoch können zu anderen Beispielen geeigneter USB-Vorrichtungen 108 unter anderem eine Human-Interface-Vorrichtung wie eine Tastatur oder eine Maus, eine Massenspeichervorrichtung wie ein Flash Drive oder eine externe Festplatte, eine USB-fähige medizinische Vorrichtung, ein Drucker, ein USB-Hub, eine Drahtlossteuerung und/oder dergleichen gehören.
-
In dem vorliegenden System 100 ist die Hostvorrichtung 102 über ein USB-Protokoll mit einer Upstream-USB-Erweiterungsvorrichtung 104 verbunden, und die USB-Vorrichtung 108 ist über ein USB-Protokoll mit einer Downstream-USB-Erweiterungsvorrichtung 106 verbunden. Die Upstream-USB-Erweiterungsvorrichtung 104 und die Downstream-USB-Erweiterungsvorrichtung 106 sind über ein Erweiterungsmedium 110, wie etwa ein Netzwerk, das die Entfernung zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108 über die durch die USB-Spezifikation unterstützte hinaus vergrößern kann, kommunikativ gekoppelt. Das Erweiterungsmedium 110 und die Kommunikation auf diesem können jede geeignete Vernetzungstechnologie, wie etwa Ethernet, Bluetooth, Wi-Fi, WiMax, das Internet, Glasfaser-Point-to-Point-Übertragung und/oder dergleichen, und jedes geeignete Kommunikationsmedium, wie etwa über physische Kabel, über Glasfaserkabel, über das Drahtlosspektrum und/oder dergleichen, beinhalten.
-
Bei einigen Ausführungsformen kann es vorkommen, dass sich die Upstream-USB-Erweiterungsvorrichtung 104 und die Downstream-USB-Erweiterungsvorrichtung 106 näher zueinander befinden als die kurze USB-Anforderungsentfernung und/oder direkt durch ein Kabel anstatt eines Netzwerks verbunden sind, jedoch weiterhin fähig sind, die erhöhte Latenz zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108, die durch die Verwendung eines die USB-Spezifikationen nicht erfüllenden Erweiterungsmediums 110 eingeführt wird, zu bewältigen.
-
Ein Merkmal, das durch die Upstream-USB-Erweiterungsvorrichtung 104 und die Downstream-USB-Erweiterungsvorrichtung 106 bereitgestellt wird, besteht darin, dass sie das Vorhandensein des Erweiterungsmediums 110 vor der Hostvorrichtung 102 und der USB-Vorrichtung 108 verbergen. Anders ausgedrückt wickeln die Upstream-USB-Erweiterungsvorrichtung 104 und die Downstream-USB-Erweiterungsvorrichtung 106 Kommunikation über das Erweiterungsmedium 110 ab und kompensieren jegliche dadurch eingeführte Latenz, während sich die Hostvorrichtung 102 und die USB-Vorrichtung 108 so verhalten, als wären sie direkt über eine USB-Spezifikation-konforme Verbindung verbunden. Dementsprechend können die Hostvorrichtung 102 und die USB-Vorrichtung 108 über die Upstream-USB-Erweiterungsvorrichtung 104 und die Downstream-USB-Erweiterungsvorrichtung 106 ohne nicht-standardmäßige Software- oder Hardware-Rekonfiguration auf der Hostvorrichtung 102 oder der USB-Vorrichtung 108 kommunizieren.
-
2 ist ein Blockdiagramm, das weitere Einzelheiten der in 1 veranschaulichten Upstream-USB-Erweiterungsvorrichtung 104 und Downstream-USB-Erweiterungsvorrichtung 106 veranschaulicht. Die Upstream-USB-Erweiterungsvorrichtung 104 beinhaltet einen Upstream-gerichteten Port 202 und die Downstream-USB-Erweiterungsvorrichtung 106 beinhaltet einen Downstream-gerichteten Port 204. Gemäß vorliegender Verwendung können die Begriffe „Upstream-gerichteter Port“ und die entsprechende Abkürzung „UFP“, wie auch die Begriffe „Downstream-gerichteter Port“ und die entsprechende Abkürzung „DFP“, austauschbar verwendet werden. Gleichermaßen kann, da die Upstream-USB-Erweiterungsvorrichtung 104 einen Upstream-gerichteten Port 202 beinhaltet, die Upstream-USB-Erweiterungsvorrichtung 104 auch als „UFP-Vorrichtung“ bezeichnet werden, und da die Downstream-USB-Erweiterungsvorrichtung 106 einen Downstream-gerichteten Port 204 beinhaltet, kann die Downstream-USB-Erweiterungsvorrichtung 106 auch als „DFP-Vorrichtung“ bezeichnet werden.
-
Die UFP-Vorrichtung 104 ist zumindest dazu ausgelegt, über ein USB-Standard-konformes Protokoll unter Verwendung des Upstream-gerichteten Ports 202 mit der Hostvorrichtung 102 zu kommunizieren und über das Erweiterungsmedium 110 Nachrichten und USB-Bus-Verkehr mit der DFP-Vorrichtung 106 auszutauschen. Die DFP-Vorrichtung 106 ist zumindest dazu ausgelegt, über ein USB-Standard-konformes Protokoll unter Verwendung des Downstream-gerichteten Ports 204 mit der USB-Vorrichtung 108 zu kommunizieren und über das Erweiterungsmedium 110 Nachrichten und USB-Bus-Verkehr mit der UFP-Vorrichtung 104 auszutauschen. Die Upstream-USB-Erweiterungsvorrichtung 104 und die Downstream-USB-Erweiterungsvorrichtung 106 können weitere Komponenten enthalten, wie etwa eine Stromversorgung, eine Status-LED, einen Lautsprecher, eine Eingabevorrichtung zum Umschalten zwischen UFP-Funktionalität und DFP-Funktionalität und/oder dergleichen. Da derartige Komponenten und deren Funktionen Durchschnittsfachleuten bekannt sind, wurden sie hier nicht weiter erörtert.
-
Wie in 2 veranschaulicht, ist der Upstream-gerichtete Port 202 der Upstream-USB-Erweiterungsvorrichtung 104 mit einem Downstream-gerichteten Port der Hostvorrichtung 102 verbunden, und der Downstream-gerichtete Port 204 der Downstream-USB-Erweiterungsvorrichtung 106 ist mit einem Upstream-gerichteten Port der USB-Vorrichtung 108 verbunden. Bei anderen Ausführungsformen kann der Upstream-gerichtete Port 202 der Upstream-USB-Erweiterungsvorrichtung 104 mit einem anderen Downstream-gerichteten Port als einem durch eine Hostvorrichtung 102 bereitgestellten verbunden sein, wie etwa einem Downstream-gerichteten Port eines Hubs und/oder dergleichen. Gleichermaßen kann der Downstream-gerichtete Port 204 der Downstream-USB-Erweiterungsvorrichtung 106 bei anderen Ausführungsformen mit einem anderen Upstream-gerichteten Port als einem durch eine USB-Vorrichtung 108 bereitgestellten verbunden sein, wie etwa einem Upstream-gerichteten Port eines Hubs und/oder dergleichen. Die nachstehende Erörterung wird hauptsächlich hinsichtlich der in 2 veranschaulichten einfachen Topologie vorgenommen, wobei Durchschnittsfachleute jedoch erkennen, dass bei einigen Ausführungsformen ähnliche Techniken in anderen Topologien verwendet werden können, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen.
-
3 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform einer Portvorrichtung 300 gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. Bei einigen Ausführungsformen kann die Portvorrichtung 300 dahingehend konstruiert sein, Dienste eines Upstream-gerichteten Ports 202 bereitzustellen, und bei einigen Ausführungsformen kann die Portvorrichtung 300 dahingehend konstruiert sein, Dienste eines Downstream-gerichteten Ports 204 bereitzustellen. Bei einigen Ausführungsformen kann die Portvorrichtung 300 Anweisungen zum Bereitstellen von Diensten sowohl eines Upstream-gerichteten Ports 202 als auch eines Downstream-gerichteten Ports 204 beinhalten, wobei die bestimmten Portdienste, die bereitgestellt werden, durch eine Benutzerkonfiguration, wie etwa eine Brücke, eine Firmwareeinstellung und/oder dergleichen, bestimmt werden.
-
Wie veranschaulicht umfasst die Portvorrichtung 300 eine Protokoll-Engine 304, eine USB-Bitübertragungsschichtschnittstelle 306 und eine Fernschnittstelle 302. Bei einigen Ausführungsformen kann die Protokoll-Engine 304 dazu ausgelegt sein, die nachstehend hinsichtlich der UFP-Vorrichtung 104 und/oder der DFP-Vorrichtung 106 erörterte Logik bereitzustellen und/oder auszuführen. Die Protokoll-Engine 304 kann die USB-Bitübertragungsschichtschnittstelle 306 anweisen, die geeigneten elektrischen Signale an die USB-Bitübertragungsschicht anzulegen, um mit der USB-Vorrichtung 108 oder der Hostvorrichtung 102 zu kommunizieren. Gleichermaßen kann die Protokoll-Engine 304 die Fernschnittstelle 302 anweisen, Informationen mit der Fern-USB-Erweiterungsvorrichtung auszutauschen.
-
Bei einigen Ausführungsformen kann die Protokoll-Engine 304 in einer Logikvorrichtung wie einem PLD, einem ASIC, einem FPGA und/oder dergleichen implementiert werden. Bei anderen Ausführungsformen kann die Protokoll-Engine 304 in einer Rechenvorrichtung, die mindestens einen Prozessor und einen Speicher aufweist, der computerausführbare Anweisungen enthält, die bei Ausführung durch den mindestens einen Prozessor bewirken, dass die Protokoll-Engine 304 die nachstehend erörterten Aktionen ausführt; in einer dedizierten digitalen Hardwarevorrichtung, die zum Beispiel als Automat implementiert wird, ausgelegt zum Durchführen der beschriebenen Aktionen; in einem anwendungsspezifischen Prozessor; und/oder in einer beliebigen anderen geeigneten Rechenvorrichtung implementiert werden. Bei einigen Ausführungsformen kann die Protokoll-Engine 304 (oder eine andere Komponente der Portvorrichtung 300) einen computerlesbaren Speicher umfassen, der verwendet werden kann, um Datenpakete zwischenzuspeichern, wie nachstehend weiter erörtert wird.
-
Bei einigen Ausführungsformen wird Logik von einer USB-Erweiterungsvorrichtung zugeschriebenen Aktionen durch eine Protokoll-Engine 304 ausgeführt, die dann eine USB-Bitübertragungsschichtschnittstelle 306 und/oder eine Fernschnittstelle 302 anweist, die mit der Logik assoziierten geeigneten Kommunikationsschritte durchzuführen. Im Verlauf der nachstehenden Erörterung können solche Aktionen der einfacheren Erörterung halber einfach als durch die UFP-Vorrichtung 104 oder die DFP-Vorrichtung 106 so durchgeführt beschrieben werden, als handele es sich um eine einzige Vorrichtung. Für Durchschnittsfachleute ist erkennbar, dass direkt der UFP-Vorrichtung 104 oder der DFP-Vorrichtung 106 zugeschriebene Aktionen tatsächlich durch eine Protokoll-Engine 304, eine USB-Bitübertragungsschichtschnittstelle 306, eine Fernschnittstelle 302 und/oder eine gewisse andere Komponente der USB-Erweiterungsvorrichtung durchgeführt werden können.
-
4A ist ein Sequenzdiagramm, das eine Kommunikation zwischen einer Hostvorrichtung 102 und einer USB-Vorrichtung 108 in einem Modus niedriger Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
-
In dem in 4A veranschaulichten Sequenzdiagramm (und in den anderen hierin enthaltenen Sequenzdiagrammen) verläuft die Zeit vom oberen Ende des Diagramms zum unteren Ende des Diagramms. Pfeile in durchgezogenen Linien geben die Übertragung von Paketen an, die durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 gemäß den USB-Spezifikationen (und/oder gekapselten oder übersetzten Versionen davon) erzeugt werden. Pfeile in gestrichelten Linien geben die Übertragung synthetischer Pakete an, die durch eine UFP-Vorrichtung 104 oder eine DFP-Vorrichtung 106 entweder basierend auf einem durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 erzeugten Paket oder als Reaktion auf ein durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 erzeugtes Paket erzeugt werden. Die synthetischen Pakete können hinsichtlich ihres Inhalts identisch zu den durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 erzeugten Paketen jedoch zeitlich verschoben sein, oder sie können einen gegenüber dem Inhalt der durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 erzeugten Pakete veränderten Inhalt aufweisen. Horizontale Pfeile zwischen einzelnen Elementen geben Übertragungen an, die Timing-Anforderungen der USB-Spezifikationen erfüllen, während abgewinkelte Pfeile Übertragungen über das Erweiterungsmedium 110 angeben, die durch erhöhte Latenz beeinflusst sein können. Die eingekreisten Zahlen beziehen sich zu Erörterungszwecken auf Punkte in der Datenverarbeitungssequenz.
-
In 4A ist die veranschaulichte Kommunikation eine isochrone IN-Kommunikation, bei der die Hostvorrichtung 102 angibt, dass sie bereit ist, Daten zu empfangen, und die USB-Vorrichtung 108 Daten an die Hostvorrichtung 102 überträgt. 4A veranschaulicht die Verwendung einer UFP-Vorrichtung 104 und einer DFP-Vorrichtung 106, falls die Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 niedrig genug ist, damit die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 USB-Bitübertragungsschichtsignalisierung einfach auf das Erweiterungsmedium umsetzen und überbrücken können, ohne dass Timing-Fehler eingeführt werden. In diesem Fall weist das Erweiterungsmedium einen Durchsatz auf, der eine SuperSpeed-Verbindung, wie etwa 5,0 Gbps oder 10,0 Gbps, unterstützen kann. In diesem Fall niedriger Latenz wirkt sich die Latenz zwischen der UFP-Vorrichtung 104, der DFP-Vorrichtung 106 und dem Erweiterungsmedium nicht auf Timing-Parameter zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108 aus.
-
Bei SuperSpeed-Kommunikation teilt die Hostvorrichtung 102 für isochrone Transaktionen Dienstintervalle von zum Beispiel 125 µs ein. Wie in Abschnitt 8.12.5 der USB-3.1-Spezifikation beschrieben, muss die Hostvorrichtung 102 Transaktionen, darunter isochrone Transaktionen, so einteilen, dass sie diese Dienstintervallgrenzen nicht überschreiten. In dem in 4A veranschaulichten Szenario niedriger Latenz kann dies kein Problem sein. Es sind eine erste Dienstintervallgrenze 402 und eine zweite Dienstintervallgrenze 404 gezeigt. An Punkt 1 erzeugt die Hostvorrichtung 102 ein Anforderungspaket, wie etwa ein ACK-Paket, und überträgt es an die UFP-Vorrichtung 104. Das ACK-Paket gibt eine Sequenznummer („0“) und einen Pufferzählwert an, der eine Anzahl von Paketen angibt, zu deren Annahme die Hostvorrichtung 102 bereit ist („3“). Die Hostvorrichtung 102 kann die Anzahl der Pakete, zu deren Annahme sie bereit ist, auf einer Bestimmung basieren lassen, ob alle Pakete empfangen würden, bevor die nächste Dienstintervallgrenze 404 auftritt.
-
Die UFP-Vorrichtung 104 empfängt das ACK-Paket und überträgt es über das Erweiterungsmedium an die DFP-Vorrichtung 106. Die DFP-Vorrichtung 106 überträgt dann das ACK-Paket an die USB-Vorrichtung 108. An Punkt 2 beginnt die USB-Vorrichtung 108, DATA-Pakete beginnend mit der angeforderten Sequenznummer zu übertragen. Die DATA-Pakete werden durch die DFP-Vorrichtung 106 empfangen, die die DATA-Pakete an die UFP-Vorrichtung 104 weiterleitet. An Punkt 3 beginnt die UFP-Vorrichtung 104, die DATA-Pakete an die Hostvorrichtung 102 zu übertragen, die sie empfängt.
-
An Punkt 4 bestimmt die Hostvorrichtung 102, da die Hostvorrichtung 102 die IN-Transaktion so einteilen muss, dass sie keine Dienstintervallgrenze überschreitet, eine Anzahl von Datenpaketen, die empfangen werden könnten, bevor die zweite Dienstintervallgrenze 404 auftritt. Wie gezeigt hat die Hostvorrichtung 102 auf der Basis der in der USB-Spezifikation spezifizierten Timings bestimmt, dass vor dem Erreichen der Dienstintervallgrenze 404 drei Datenpakete angefordert und empfangen werden könnten. Dementsprechend überträgt die Hostvorrichtung 102 ein weiteres Anforderungspaket, wie etwa ein ACK-Paket, das die nächste Sequenznummer („3“) und die Anzahl von Paketen („3“), die gemäß ihrer Bestimmung vor der zweiten Dienstintervallgrenze 404 empfangen werden könnten, angibt. Wie zuvor wird das ACK-Paket durch die UFP-Vorrichtung 104 empfangen, über das Erweiterungsmedium an die DFP-Vorrichtung 106 übertragen und dann durch die USB-Vorrichtung 108 empfangen. An Punkt 5 überträgt die USB-Vorrichtung 108 die angeforderten Datenpakete an die DFP-Vorrichtung 106. Die DFP-Vorrichtung 106 überträgt die angeforderten Datenpakete an die UFP-Vorrichtung 104, die ihrerseits die angeforderten Datenpakete an die Hostvorrichtung 102 überträgt. Nach der zweiten Dienstintervallgrenze 404 tritt derselbe Prozess nochmals auf: an Punkt 6 überträgt die Hostvorrichtung 102 ein Anforderungspaket über die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 an die USB-Vorrichtung 108, und an Punkt 7 beginnt die USB-Vorrichtung 108, antwortende Datenpakete zu übertragen.
-
Es ist zu beachten, dass die Übertragung von zwei Sätzen von drei Paketen nur ein Beispiel ist und dass bei einigen Ausführungsformen eine andere Anzahl von Paketen angefordert werden kann. Zum Beispiel gibt Abschnitt 8.12.6.2 der USB-3.1-Spezifikation an, dass ein Host einen Transfer in Bursts von 2, 4 oder 8 Datenpaketen, gefolgt von einem Burst von so vielen Paketen, wie noch anzufordern sind, aufteilen kann. Dementsprechend kann bei einigen Ausführungsformen, um sechs Datenpakete während eines Dienstintervalls anzufordern, die Hostvorrichtung 102 an Punkt 1 vier Datenpakete und dann an Punkt 4 zwei Datenpakete anfordern. In der Praxis hat sich erwiesen, dass Hostvorrichtungen 102 ein vielseitiges Verhalten aufweisen.
-
Während die in 4A gezeigte Technik im trivialen Fall niedriger Latenz funktioniert, haben die Erfinder der vorliegenden Offenbarung entdeckt, dass in Situationen hoher Latenz Probleme entstehen. 4B ist ein Sequenzdiagramm, das ein Problem bei der Verwendung der naiven Überbrückungstechnik für isochrone IN-Transaktionen in Situationen hoher Latenz veranschaulicht. Es sind erneut eine erste Dienstintervallgrenze 402 und eine zweite Dienstintervallgrenze 404 gezeigt. Wie in 4A überträgt an Punkt 1 die Hostvorrichtung 102 ein Anforderungspaket, um drei Datenpakete anzufordern, die über die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 an die USB-Vorrichtung 108 übertragen wird. An Punkt 2 beginnt die USB-Vorrichtung 108, die angeforderten Datenpakete über die DFP-Vorrichtung 106 und die UFP-Vorrichtung 104 zurück an die Hostvorrichtung 102 zu übertragen, und an Punkt 3 beginnt die Hostvorrichtung 102, die Datenpakete zu empfangen.
-
An Punkt 4 fangen die Probleme an, klar zu werden. Wie oben angegeben, wird das Vorhandensein des Erweiterungsmediums vor der Hostvorrichtung 102 verborgen, und somit verfügt die Hostvorrichtung 102 nicht über die Informationen, die notwendig sind, um die zusätzliche Latenz zu kompensieren. Wenn die Hostvorrichtung 102 bestimmt, wie viele Pakete sie anfordern und empfangen kann, bevor die zweite Dienstintervallgrenze 404 auftritt, verwendet sie hierzu die in der USB-Spezifikation angegebenen Timings. An Punkt 4 bestimmt die Hostvorrichtung 102 dementsprechend, dass sie auf der Basis von Spezifikation-konformen Timings drei Datenpakete vor der zweiten Dienstintervallgrenze 404 empfangen könnte. Somit überträgt die Hostvorrichtung 102 ein Anforderungspaket, das drei Datenpakete anfordert. Das Anforderungspaket wird über die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 an die USB-Vorrichtung 108 übertragen, und an Punkt 5 beginnt die USB-Vorrichtung 108, die angeforderten Datenpakete über die DFP-Vorrichtung 106 und die UFP-Vorrichtung 104 an die Hostvorrichtung 102 zu übertragen. Aufgrund der durch das Erweiterungsmedium eingeführten zusätzlichen Latenz beginnt die Hostvorrichtung 102 erst an Punkt 6, die Datenpakete zu empfangen, also nachdem die zweite Dienstintervallgrenze 404 bereits aufgetreten ist. Dies verursacht Fehler in der Kommunikation zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108. In einigen Fällen können sich diese Fehler als Fallenlassen der Verbindung zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108 manifestieren. In einigen Fällen wird die Verbindung möglicherweise nicht fallengelassen, aber die Fehler manifestieren sich auf andere Weisen, wie etwa darin, dass ein durch eine Kamera bereitgestelltes Videobild Flackern oder andere unerwünschte Artefakte enthält.
-
5 ist ein Sequenzdiagramm, das ein Beispiel einer Technik zum Kompensieren einer durch das Erweiterungsmedium in isochronen IN-Transaktionen eingeführten Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. Wie in 4A und 4B sind eine erste Dienstintervallgrenze 502 und eine zweite Dienstintervallgrenze 504 veranschaulicht. An Punkt 1 sendet die Hostvorrichtung 102 ein Anforderungspaket an die UFP-Vorrichtung 104, das eine Sequenznummer („0“) und eine Anzahl von Paketen („3“) umfasst, und die UFP-Vorrichtung 104 überträgt das Anforderungspaket an die DFP-Vorrichtung 106. An Punkt 2 überträgt die UFP-Vorrichtung 104 ein synthetisches Paket zu der Hostvorrichtung 102 zurück, um die Hostvorrichtung 102 in einen temporären Wartezustand zu versetzen. Das veranschaulichte synthetische Paket ist ein Null(NULL)-Paket, bei dem es sich um ein Datenpaket mit einer Nutzdatenlänge von null handeln kann, es kann aber eine beliebige andere Art von Paket verwendet werden, das die Hostvorrichtung 102 in einen Wartezustand versetzen kann. Als Reaktion auf den Empfang des NULL-Pakets tritt die Hostvorrichtung 102 in einen Wartezustand ein, in dem sie das Anforderungspaket bis nach der zweiten Dienstintervallgrenze 504 nicht erneut überträgt.
-
An Punkt 3 überträgt die DFP-Vorrichtung 106 ein synthetisches Anforderungspaket an die USB-Vorrichtung 108. Das durch die DFP-Vorrichtung 106 erzeugte synthetische Anforderungspaket beinhaltet die Sequenznummer aus dem an Punkt 1 durch die Hostvorrichtung 102 übertragenen Anforderungspaket. Die DFP-Vorrichtung 106 hat jedoch die Anzahl der Pakete derart geändert, dass sie nicht mit der Anzahl von Paketen in dem an Punkt 1 durch die Hostvorrichtung 102 übertragenen Anforderungspaket übereinstimmt.
-
Bei einigen Ausführungsformen kann die DFP-Vorrichtung 106 eine größere Anzahl von Paketen anfordern, als durch die Hostvorrichtung 102 angefordert wurde. Anfordern einer größeren Anzahl von Paketen erlaubt es der DFP-Vorrichtung 106, zusätzliche Daten zu empfangen, die an die UFP-Vorrichtung 104 gesendet werden können, um auf nachfolgende Anforderungen von der Hostvorrichtung 102 zu antworten, ohne dass auf eine Umlaufkommunikation zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 gewartet werden muss. Bei einigen Ausführungsformen kann die DFP-Vorrichtung 106 eine Anzahl von Paketen bestimmen, die mit einem maximalen Burst-Größe-Wert assoziiert ist, der durch die Hostvorrichtung 102 für die USB-Topologie oder für die bestimmte USB-Vorrichtung 108 während der anfänglichen durch die Hostvorrichtung 102 durchgeführten Aufzählung konfiguriert wurde. Die DFP-Vorrichtung 106 kann eine Anzahl von Paketen so anfordern, dass sie der maximalen Burst-Größe entspricht, unabhängig davon, ob die Hostvorrichtung 102 in ihrer ersten Anforderung weniger Pakete angefordert hat. Dies kann sicherstellen, dass die UFP-Vorrichtung 104 über alle Daten verfügt, die die Hostvorrichtung 102 während eines einzelnen Dienstintervalls anfordern würde. Eine maximale Anzahl von Paketen, die durch eine Hostvorrichtung 102 während eines Dienstintervalls verarbeitet werden können, kann bis zu 48 für 5-Gbps-Kommunikation oder 96 für 10-Gbps-Kommunikation betragen. USB-Vorrichtungen 108 sind in der Regel mit maximalen Burst-Größe-Werten konfiguriert, die geringer als diese Grenzen sind. Eine typische maximale Burst-Größe kann bei 6 oder 7 liegen, obgleich so niedrige Werte wie 3 möglich sein können, sowie Werte von bis zu 12 für Vorrichtungen, zu denen unter anderem hochauflösende Kameras gehören, oder sogar höher für andere Vorrichtungen.
-
Bei anderen Ausführungsformen kann die DFP-Vorrichtung 106 eine beliebige Anzahl von Paketen anfordern, die zwischen der durch die Hostvorrichtung 102 angeforderten Anzahl von Paketen und der maximalen Burst-Größe liegt. Wie veranschaulicht hat die DFP-Vorrichtung 106 ein synthetisches Paket erzeugt, um sechs Pakete anzufordern, statt der ursprünglich durch die Hostvorrichtung 102 angeforderten drei. Der Grund dafür kann darin bestehen, dass die maximale Burst-Größe als sechs konfiguriert wurde, oder aus anderen Gründen, darunter unter anderem eine Konfiguration auf der DFP-Vorrichtung 106, eine Bestimmung auf der Basis der Anzahl von Paketen aus dem ursprünglichen Anforderungspaket oder eine Bestimmung auf der Basis der Menge an Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106.
-
An Punkt 4 überträgt die USB-Vorrichtung 108 die angeforderten Datenpakete an die DFP-Vorrichtung 106. Die DFP-Vorrichtung 106 überträgt dann die angeforderten Datenpakete an die UFP-Vorrichtung 104. An Punkt 5 bestimmt die Hostvorrichtung 102, dass die zweite Dienstintervallgrenze 504 aufgetreten ist, und daher überträgt die Hostvorrichtung 102 ein neues Anforderungspaket, das dem an Punkt 1 übertragenen Anforderungspaket ähnlich sein kann. An Punkt 6 antwortet die UFP-Vorrichtung 104 mit den drei Datenpaketen, die auf der UFP-Vorrichtung 104 zwischengespeichert wurden. Diese Datenpakete sind mit gestrichelten Linien veranschaulicht und können als synthetische Datenpakete angesehen werden, da sie aufgrund des Zwischenspeicherns durch die UFP-Vorrichtung 104 zeitlich verschoben sind.
-
Es ist zu erkennen, dass die Hostvorrichtung 102 ein weiteres Anforderungspaket übertragen kann, um die nächsten drei Datenpakete anzufordern, und die UFP-Vorrichtung 104 mit den nächsten drei Datenpaketen, die auch auf der UFP-Vorrichtung 104 zwischengespeichert wurden, antworten kann. Es ist zu beachten, dass durch Vorabrufen von mehr Daten als durch die Hostvorrichtung 102 angefordert wurden, die UFP-Vorrichtung 104 in der Lage ist, die zwischen den Punkten 1-5 von 4A beschriebene Funktionalität zu replizieren, wobei während eines einzelnen Dienstintervalls eine maximale Menge an Daten transferiert werden kann, obwohl die Situation in 5 eine hohe Menge an Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 beinhaltet.
-
5 veranschaulicht auch, dass die DFP-Vorrichtung 106 während eines gegebenen Dienstintervalls so viele Pakete wie möglich von der USB-Vorrichtung 108 abrufen kann. Die an Punkt 4 von der USB-Vorrichtung 108 an die DFP-Vorrichtung 106 übertragenen Pakete enthielten alle angeforderten Datenpakete, jedoch enthielten sie kein Datenpaket mit einem gesetzten Letztes-Paket-Flag (LPF). Gemäß den USB-Spezifikationen gibt dies der DFP-Vorrichtung 106 an, dass die USB-Vorrichtung 108 zusätzliche zu übertragende Datenpakete aufweist. Dementsprechend überträgt die DFP-Vorrichtung 106 an Punkt 7 ein zusätzliches synthetisches Paket, um eine nachfolgende Gruppe von Paketen von der USB-Vorrichtung 108 anzufordern, und die USB-Vorrichtung 108 antwortet mit Datenpaketen als Reaktion auf die Anforderung. An Punkt 8 überträgt die USB-Vorrichtung 108 ein Datenpaket mit gesetztem LPF. Dementsprechend versteht die DFP-Vorrichtung 106, dass die USB-Vorrichtung 108 sämtliche ihrer Daten übertragen hat, und überträgt daher kein zusätzliches synthetisches Paket, um weitere Datenpakete anzufordern, bis ein neues Anforderungspaket von der UFP-Vorrichtung 104 empfangen wird.
-
Es ist zu beachten, dass einige der Aspekte der in
5 veranschaulichten Technik Techniken ähnlich sind, die in US-Patent
10,552,355 , erteilt am 4. Februar 2020, (nachstehend „das '355 Patent“) offenbart sind. Trotzdem sind die in
5 veranschaulichten Techniken unterscheidbar. So beschreibt die vorliegende Offenbarung zum Beispiel, anstatt dass das synthetische Paket durch die UFP-Vorrichtung 104 erzeugt wird, wie im '355 Patent offenbart, dass das synthetische Paket durch die DFP-Vorrichtung 106 erzeugt wird. Es wurde festgestellt, dass, wenn man anstatt die UFP-Vorrichtung 104 die DFP-Vorrichtung 106 die Anzahl von der USB-Vorrichtung 108 angeforderter Datenpakete steuern lässt, dies zumindest ermöglicht, da die DFP-Vorrichtung 106 aufgrund ihrer USB-Standard-konformen Verbindung mit dieser zeitnähere Statusinformationen von der USB-Vorrichtung 108 erhalten kann.
-
Während die in 5 offenbarten Techniken in Kommunikationstopologien mit einem einzigen aktiven USB-Endpunkt nützlich sind, haben die Erfinder der vorliegenden Anmeldung festgestellt, dass es zu zusätzlichen Problemen kommen kann, wenn mehr als ein USB-Endpunkt gleichzeitig aktiv ist. 6 ist ein Sequenzdiagramm, das ein Problem bei der Verwendung der Technik von 5, Latenzprobleme in einer Erweiterungsumgebung mit mehreren gleichzeitig aktiven USB-ISO-IN-Endpunkten zu bewältigen, veranschaulicht.
-
In 6 sind eine Hostvorrichtung 102, eine UFP-Vorrichtung 104 und eine DFP-Vorrichtung 106 ähnlich den oben veranschaulichten und erörterten veranschaulicht. Die in 6 veranschaulichte USB-Vorrichtung 108 kann mehrere USB-Vorrichtungen 108 mit gleichzeitig aktiven Endpunkten repräsentieren oder eine einzige USB-Vorrichtung 108 mit mehreren gleichzeitig aktiven Endpunkten repräsentieren.
-
Ein Dienstintervall beginnt an einer ersten Dienstintervallgrenze 602, und an Punkt 1 erzeugt die Hostvorrichtung 102 ein Anforderungspaket, wie etwa ein ACK-Paket, und überträgt es an die UFP-Vorrichtung 104. Die UFP-Vorrichtung 104 überträgt daraufhin das angeforderte Paket an die DFP-Vorrichtung 106. Das ACK-Paket gibt einen Zielendpunkt („A1“), eine Sequenznummer („0“) und eine Anzahl von Paketen, zu deren Annahme die Hostvorrichtung 102 bereit ist („3“), an. Wie oben erörtert antwortet die UFP-Vorrichtung 104 an Punkt 2 der Hostvorrichtung 102 mit einem synthetischen NULL-Paket. An Punkt 3 erzeugt die DFP-Vorrichtung 106 ein synthetisches Anforderungspaket, um eine größere Anzahl von Paketen von der USB-Vorrichtung 108 anzufordern, und an Punkt 4 beginnt die USB-Vorrichtung 108, die angeforderten Pakete an die DFP-Vorrichtung 106 zu übertragen.
-
An Punkt 5 beginnen sich Probleme zu entwickeln. Bei dem in 5 veranschaulichten Einzelendpunktszenario würde die Hostvorrichtung 102 mit dem Liefern eines weiteren Anforderungspakets an den einzigen Endpunkt bis nach der zweiten Dienstintervallgrenze 604 warten. Jedoch kann die Hostvorrichtung 102, bei mehr als einem gleichzeitig aktiven Endpunkt, sobald die Hostvorrichtung 102 als Reaktion auf das erste Anforderungspaket das NULL-Paket empfängt, bestimmen, ob sie eine weitere Anforderung an einen anderen Endpunkt ausgeben könnte, die vor der zweiten Dienstintervallgrenze 604 erfüllt werden könnte. Dementsprechend erzeugt die Hostvorrichtung 102 an Punkt 5 ein zweites Anforderungspaket, wie etwa das veranschaulichte an Endpunkt „A2“ gerichtete ACK-Paket, und überträgt es an die UFP-Vorrichtung 104. Endpunkt A2 kann ein anderer durch die USB-Vorrichtung 108, die Endpunkt A1 bereitstellt, bereitgestellter Endpunkt sein oder ein durch eine andere USB-Vorrichtung 108 bereitgestellter Endpunkt sein. Es ist zu erkennen, dass die bestimmten Endpunktkennungen „A1“ und „A2“ lediglich als nicht-einschränkende Beispiele verwendet werden und dass bei einigen Ausführungsformen andere oder zusätzliche Endpunktkennungen verwendet werden können.
-
An Punkt 6 empfängt die DFP-Vorrichtung 106 das zweite Anforderungspaket von der UFP-Vorrichtung 104. Jedoch ist die DFP-Vorrichtung 106 an Punkt 6 mit dem Empfangen der Antwortpakete von dem A1-Endpunkt belegt, und der Empfang des zweiten Anforderungspakets steht im Konflikt mit der Abfertigung dieser Pakete. Es sind Techniken zur Behandlung dieser Konflikte erwünscht, um zu gestatten, dass mehrere gleichzeitige Endpunkte in einer Erweiterungsumgebung arbeiten.
-
Zudem kann eine naive Handhabung von Anforderungen an gleichzeitige Endpunkte auf „First-Come-First-Serve“-Weise suboptimale Ergebnisse produzieren. Beispielsweise kann jeder Endpunkt mit einem blnterval-Wert konfiguriert sein, der eine Frequenz angibt, mit der die Hostvorrichtung 102 voraussichtlich Anforderungen für Datenpakete an den Endpunkt überträgt. Es wird erwartet, dass Endpunkte mit einem kleineren blnterval-Wert mehr reagieren als Endpunkte mit einem größeren blnterval-Wert. Müssen Endpunkte mit einem kleineren blnterval-Wert jedoch auf den Abschluss einer Transaktion für einen Endpunkt mit einem größeren blnterval-Wert warten, so lassen sich die gewünschten Reaktionsausmaße möglicherweise nicht erzielen. Es werden Techniken erwünscht, mit denen sich eine Verschachtelung von Transaktionen für Endpunkte unterschiedlicher blnterval-Werte ermöglichen lässt, um ein verbessertes Reaktionsverhalten bereitzustellen.
-
7A ist ein Sequenzdiagramm, das ein Beispiel einer Technik zum Kompensieren einer durch das Erweiterungsmedium in isochronen IN-Transaktionen eingeführten Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. In 7A sind eine Hostvorrichtung 102, eine UFP-Vorrichtung 104 und eine DFP-Vorrichtung 106 ähnlich den oben veranschaulichten und erörterten veranschaulicht. Die in 7A veranschaulichte USB-Vorrichtung 108 kann mehrere USB-Vorrichtungen 108 mit gleichzeitig aktiven Endpunkten repräsentieren oder eine einzige USB-Vorrichtung 108 mit mehreren gleichzeitig aktiven Endpunkten repräsentieren.
-
Ein Dienstintervall beginnt an einer ersten Dienstintervallgrenze 702 und endet an einer zweiten Dienstintervallgrenze 704. An Punkt 1 erzeugt die Hostvorrichtung 102 ein Anforderungspaket, wie etwa ein ACK-IN-Paket, und überträgt es an die UFP-Vorrichtung 104. Die UFP-Vorrichtung 104 überträgt daraufhin das angeforderte Paket an die DFP-Vorrichtung 106. Das ACK-Paket gibt einen Zielendpunkt („A1“), eine Sequenznummer („0“) und eine Anzahl von Paketen, zu deren Annahme die Hostvorrichtung 102 bereit ist („3“), an. Wie oben erörtert antwortet die UFP-Vorrichtung 104 an Punkt 2 der Hostvorrichtung 102 mit einem synthetischen NULL-Paket. An Punkt 3 erzeugt die DFP-Vorrichtung 106 ein synthetisches Anforderungspaket, um eine größere Anzahl von Paketen von der USB-Vorrichtung 108 anzufordern, und an Punkt 4 beginnt die USB-Vorrichtung 108, die angeforderten Pakete an die DFP-Vorrichtung 106 zu übertragen. Bei einigen Ausführungsformen kann das synthetische Anforderungspaket eine kleinere Anzahl von Paketen als das durch die Hostvorrichtung 102 übertragene Anforderungspaket oder die gleiche Anzahl von Paketen anfordern.
-
An Punkt 5 erzeugt die Hostvorrichtung 102 ein zweites Anforderungspaket, wie etwa das veranschaulichte an Endpunkt „A2“ gerichtete ACK-Paket, und überträgt es an die UFP-Vorrichtung 104. Endpunkt A2 kann ein anderer durch die USB-Vorrichtung 108, die Endpunkt A1 bereitstellt, bereitgestellter Endpunkt sein oder ein durch eine andere USB-Vorrichtung 108 bereitgestellter Endpunkt sein. Es ist zu erkennen, dass die bestimmten Endpunktkennungen „A1“ und „A2“ lediglich als nicht-einschränkende Beispiele verwendet werden und dass bei einigen Ausführungsformen andere oder zusätzliche Endpunktkennungen verwendet werden können.
-
An Punkt 6 empfängt die DFP-Vorrichtung 106 das zweite Anforderungspaket von der UFP-Vorrichtung 104. Bei Empfang des zweiten Anforderungspakets bestimmt die DFP-Vorrichtung 106, ob der USB-Bus zum Übertragen eines synthetischen Anforderungspakets auf der Basis des zweiten Anforderungspakets verfügbar ist. Da Endpunkt A1 Daten auf dem USB-Bus überträgt, ist der USB-Bus an Punkt 6 nicht verfügbar. Dementsprechend speichert die DFP-Vorrichtung 106 das zweite Anforderungspaket, bis sie detektiert, dass der USB-Bus verfügbar ist.
-
Schließlich detektiert die DFP-Vorrichtung 106, dass der USB-Bus verfügbar ist. Bei der veranschaulichten Ausführungsform detektiert die DFP-Vorrichtung 106, dass der USB-Bus verfügbar ist, wenn die DFP-Vorrichtung 106 detektiert, dass die angeforderte Anzahl von Datenpaketen empfangen wurde. Bei anderen Ausführungsformen (wie etwa der in 7B veranschaulichten Ausführungsform) kann die DFP-Vorrichtung 106 detektieren, dass der USB-Bus verfügbar ist, wenn ein Datenpaket mit gesetztem LPF-Wert empfangen wird.
-
Sobald bestimmt wird, dass der USB-Bus verfügbar ist, hat die DFP-Vorrichtung 106 zwei Endpunkte, an die ein synthetisches Anforderungspaket gesendet werden könnte: ein nachfolgendes synthetisches Anforderungspaket könnte an Endpunkt A1 gesendet werden (wie an Punkt 7 in 5 veranschaulicht), oder ein neues synthetisches Anforderungspaket könnte basierend auf dem an Punkt 6 in der vorliegenden 7A empfangenen Anforderungspaket an Endpunkt A2 gesendet werden. Bei einigen Ausführungsformen vergleicht die DFP-Vorrichtung 106 zur Bestimmung des zu bedienenden Endpunkts den blnterval-Wert für den ersten Endpunkt (Endpunkt A1) mit dem blnterval-Wert für den zweiten Endpunkt (Endpunkt A2). Durch Wählen des Endpunkts mit einem kleineren blnterval-Wert kann die DFP-Vorrichtung 106 ein besseres Reaktionsverhalten für den gewählten Endpunkt bereitstellen und dadurch eine stabilere und wirksamere Erweiterungsumgebung bereitstellen.
-
Bei der veranschaulichten Ausführungsform ergab der Vergleich der blnterval-Werte, dass der blnterval-Wert für Endpunkt A2 kleiner als der blnterval-Wert für Endpunkt A1 ist. Dementsprechend überträgt die DFP-Vorrichtung 106 an Punkt 7 ein synthetisches Anforderungspaket an den zweiten Endpunkt (Endpunkt A2). Es ist zu erkennen, dass die DFP-Vorrichtung 106, wenn der blnterval-Wert für Endpunkt A2 nicht kleiner als der blnterval-Wert für Endpunkt A1 wäre, stattdessen ein nachfolgendes synthetisches Anforderungspaket an Endpunkt A1 hätte übertragen können (wie an Punkt 7 in 5 veranschaulicht) und das an Punkt 6 empfangene Anforderungspaket für Endpunkt A2 hätte bewahren können, bis die Verarbeitung des Transfers von Endpunkt A1 abgeschlossen ist. An Punkt 8 beginnt Endpunkt A2 als Reaktion auf das an Punkt 7 übertragene synthetische Anforderungspaket, Datenpakete zu übertragen. Obgleich dies nicht veranschaulicht ist, überträgt die DFP-Vorrichtung 106 die Datenpakete an die UFP-Vorrichtung 104, sodass die UFP-Vorrichtung 104 die Datenpakete zur späteren Übertragung an die Hostvorrichtung 102 cachen kann.
-
Bei einigen Ausführungsformen kann Endpunkt A2 mit dem Übertragen von Datenpaketen fortfahren, bis Endpunkt A2 keine weiteren zu übertragenden Datenpakete aufweist, wie für den einzigen Endpunkt in 5 veranschaulicht. Gleichermaßen kann die DFP-Vorrichtung 106, wenn der erste Batch nicht alle Datenpakete enthält, die Endpunkt A2 zu übertragen hat, ein nachfolgendes synthetisches Anforderungspaket an Endpunkt A2 übertragen. Bei der veranschaulichten Ausführungsform weist Endpunkt A2 jedoch nur drei zu übertragende Pakete auf. Dementsprechend überträgt Endpunkt A2 an Punkt 9 ein Datenpaket mit gesetztem LPF-Wert.
-
Bei Empfang des Datenpakets mit dem gesetzten LPF-Wert bestimmt die DFP-Vorrichtung 106, dass der USB-Bus zur Kommunikation mit einem anderen Endpunkt zur Verfügung steht. Da das nachfolgende Anforderungspaket an Endpunkt A1 pausiert wurde, um Endpunkt A2 zu bedienen, kehrt die DFP-Vorrichtung 106 an Punkt 10 zu dem pausierten Paket zurück und überträgt das nachfolgende synthetische Anforderungspaket an Endpunkt A1 und beginnt an Punkt 11, antwortende Datenpakete von Endpunkt A1 zu empfangen. Die DFP-Vorrichtung 106 fährt dann mit der Verarbeitung der Transaktion mit Endpunkt A1 fort, was der Kürze halber nicht veranschaulicht ist.
-
Obgleich eine Kommunikation mit lediglich zwei Endpunkten (Endpunkt A1 und Endpunkt A2) beschrieben wird, ist zu erkennen, dass bei einigen Ausführungsformen an zusätzliche Endpunkte gerichtete Anforderungspakete ebenfalls an der DFP-Vorrichtung 106 pausiert werden können, während der USB-Bus belegt ist, und die blnterval-Werte für alle pausierten Anforderungspakete verglichen werden können, um zu bestimmen, welches zuerst abzufertigen ist.
-
7B ist ein weiteres Sequenzdiagramm, das einen zusätzlichen Aspekt der in 7B veranschaulichten Technik zum Kompensieren von Latenz veranschaulicht. In 7B sind eine Hostvorrichtung 102, eine UFP-Vorrichtung 104 und eine DFP-Vorrichtung 106 ähnlich den oben veranschaulichten und erörterten veranschaulicht. Die in 7B veranschaulichte USB-Vorrichtung 108 kann mehrere USB-Vorrichtungen 108 mit gleichzeitig aktiven Endpunkten repräsentieren oder eine einzige USB-Vorrichtung 108 mit mehreren gleichzeitig aktiven Endpunkten repräsentieren.
-
Ein Dienstintervall beginnt an einer ersten Dienstintervallgrenze 706 und endet an einer zweiten Dienstintervallgrenze 708. Von Punkt 1 bis Punkt 6 ist die Operation der in 7B veranschaulichten Sequenz die gleiche wie die Operation der in 7A veranschaulichten Sequenz und wird daher hier nicht erneut erörtert. Der Unterschied besteht jedoch darin, dass 7B anstatt zwei aktiver Endpunkte drei gleichzeitig aktive Endpunkte (Endpunkt A1, A2 und A3) veranschaulicht. Dementsprechend überträgt die Hostvorrichtung 102 bei Empfang des zweiten synthetischen Nullpakets von der UFP-Vorrichtung 104 an Punkt 5' ein an den dritten Endpunkt (Endpunkt A3) adressiertes drittes Anforderungspaket, das an Punkt 6' durch die DFP-Vorrichtung 106 empfangen wird.
-
Bei Empfang des dritten Anforderungspakets bestimmt die DFP-Vorrichtung 106 erneut, ob der USB-Bus zum Übertragen eines synthetischen Anforderungspakets auf der Basis des zweiten Anforderungspakets oder des dritten Anforderungspakets verfügbar ist. Da Endpunkt A1 Daten auf dem USB-Bus überträgt, ist der USB-Bus auch an Punkt 6` nicht verfügbar. Dementsprechend speichert die DFP-Vorrichtung 106 das dritte Anforderungspaket, bis sie detektiert, dass der USB-Bus verfügbar ist.
-
Schließlich detektiert die DFP-Vorrichtung 106, dass der USB-Bus verfügbar ist. Bei der veranschaulichten Ausführungsform detektiert die DFP-Vorrichtung 106, dass der USB-Bus verfügbar ist, wenn die DFP-Vorrichtung 106 detektiert, dass der USB-Bus verfügbar ist, wenn ein Datenpaket mit gesetztem LPF-Wert empfangen wird.
-
Sobald bestimmt wird, dass der USB-Bus verfügbar ist, hat die DFP-Vorrichtung 106 zwei Endpunkte, an die ein synthetisches Anforderungspaket gesendet werden könnte: ein synthetisches Anforderungspaket könnte basierend auf dem an Punkt 6 empfangenen Anforderungspaket an Endpunkt A2 gesendet werden, oder ein synthetisches Anforderungspaket könnte basierend auf dem an Punkt 6' empfangenen Anforderungspaket an Endpunkt A3 gesendet werden. Bei einigen Ausführungsformen vergleicht die DFP-Vorrichtung 106 zur Bestimmung des zu bedienenden Endpunkts den blnterval-Wert für den zweiten Endpunkt (Endpunkt A2) mit dem blnterval-Wert für den dritten Endpunkt (Endpunkt A3). Durch Wählen des Endpunkts mit einem kleineren blnterval-Wert kann die DFP-Vorrichtung 106 ein besseres Reaktionsverhalten für den gewählten Endpunkt bereitstellen und dadurch eine stabilere und wirksamere Erweiterungsumgebung bereitstellen.
-
Bei der veranschaulichten Ausführungsform ergab der Vergleich der blnterval-Werte, dass der blnterval-Wert für Endpunkt A2 kleiner als der blnterval-Wert für Endpunkt A3 ist. Dementsprechend überträgt die DFP-Vorrichtung 106 an Punkt 7 ein synthetisches Anforderungspaket an den zweiten Endpunkt (Endpunkt A2). Es ist zu erkennen, dass die DFP-Vorrichtung 106, wenn der blnterval-Wert für Endpunkt A2 nicht kleiner als der blnterval-Wert für Endpunkt A3 wäre, stattdessen ein synthetisches Anforderungspaket an Endpunkt A3 hätte schicken können. An Punkt 8 beginnt Endpunkt A2 als Reaktion auf das an Punkt 7 übertragene synthetische Anforderungspaket, Datenpakete zu übertragen, und der Rest der Verarbeitung wird ähnlich der in 7A veranschaulichten fortgesetzt.
-
In den Veranschaulichungen in 7A und 7B und den damit verbundenen Erörterungen wird angenommen, dass die gesamte veranschaulichte und beschriebene Kommunikation zwischen der DFP-Vorrichtung 106 und den Endpunkten innerhalb eines einzigen Busintervalls stattfindet, da die USB-Spezifikationen erfordern, dass die Anforderungspakete und die antwortenden Datenpakete innerhalb eines einzigen Busintervalls ausgetauscht werden. Hierzu kann die DFP-Vorrichtung 106 die Anzahl in den synthetischen Anforderungspaketen angeforderter Pakete anpassen, um sicherzustellen, dass die Antwortpakete während desselben Busintervalls empfangen werden können. Angesichts der strengen Timing-Anforderungen für Kommunikation, die die USB-Spezifikationen erfüllt, ist es jedoch möglich, dass Unterschiede in der USB-Kommunikationstopologie diese Anzahl von Paketen abhängig von dem Endpunkt ändern.
-
8 ist eine schematische Zeichnung, die eine beispielhafte USB-Kommunikationstopologie in einer Erweiterungsumgebung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. Wie gezeigt sind die Hostvorrichtung 102, die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 wie in 1 veranschaulicht verbunden, und die erste USB-Vorrichtung 810 ist mit dem Downstream-weisenden USB-Port der DFP-Vorrichtung 106 gekoppelt (wie auch die oben veranschaulichte USB-Vorrichtung 108). Die Topologie 800 ist insofern komplexer als die Topologie von 1, als der Downstream-weisende USB-Port der DFP-Vorrichtung 106 auch mit einem Upstream-weisenden Port einer ersten USB-Hub-Vorrichtung 802 gekoppelt ist und eine zweite USB-Vorrichtung 808 mit einem Downstream-weisenden Port der ersten USB-Hub-Vorrichtung 802 gekoppelt ist. Ferner ist ein Upstream-weisender Port einer zweiten USB-Hub-Vorrichtung 804 mit einem Downstream-weisenden Port der ersten USB-Hub-Vorrichtung 802 gekoppelt, und eine dritte USB-Vorrichtung 806 ist mit einem Downstream-weisenden Port der zweiten USB-Hub-Vorrichtung 804 gekoppelt. Die gesamte Kommunikation von dem/den Downstream-weisenden Port(s) der DFP-Vorrichtung 106 erfüllt die USB-Spezifikationen und erscheint der Hostvorrichtung 102 so, als wären die erste USB-Vorrichtung 810, die erste USB-Hub-Vorrichtung 802, die zweite USB-Vorrichtung 808, die zweite USB-Hub-Vorrichtung 804 und die dritte USB-Vorrichtung 806 direkt mit der Hostvorrichtung 102 gekoppelt.
-
In der Topologie 800 steuern durch die DFP-Vorrichtung 106 erzeugte Busintervallgrenzen das Timing einer Kommunikation mit der ersten USB-Vorrichtung 810, der zweiten USB-Vorrichtung 808 und der dritten USB-Vorrichtung 806. Somit müssen, selbst für die dritte USB-Vorrichtung 806 (die durch die erste USB-Hub-Vorrichtung 802 und die zweite USB-Hub-Vorrichtung 804 von der DFP-Vorrichtung 106 getrennt ist), Antwortpakete während desselben Busintervalls wie das entsprechende Anforderungspaket empfangen werden. Da die erste USB-Vorrichtung 810, die zweite USB-Vorrichtung 808 und die dritte USB-Vorrichtung 806 um unterschiedliche Entfernungen von der DFP-Vorrichtung 106 getrennt sind, kann die Anzahl von Paketen, die vor dem Ende eines gegebenen Busintervalls angefordert werden können, aufgrund unterschiedlicher Latenzmengen in der Kommunikation unterschiedlich sein.
-
9 ist ein Sequenzdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel einer Technik zum Kompensieren verschiedener Latenzmengen beim Übertragen synthetischer Anforderungspakete gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
-
In 9 sind eine Hostvorrichtung 102, eine UFP-Vorrichtung 104 und eine DFP-Vorrichtung 106 ähnlich den oben veranschaulichten und erörterten veranschaulicht. Die in 8 veranschaulichte USB-Vorrichtung 108 kann mehrere USB-Vorrichtungen 108 mit gleichzeitig aktiven Endpunkten repräsentieren. Ferner können die mehreren USB-Vorrichtungen 108 um verschiedene Tiefen zwischengeschalteter USB-Hubs von der DFP-Vorrichtung 106 getrennt sein, wie in 8 veranschaulicht. 9 veranschaulicht auch ein Hostbusintervall zwischen einer ersten Hostbusintervallgrenze 902 und einer zweiten Hostbusintervallgrenze 904, erzeugt durch die Hostvorrichtung 102, und ein Erweiterungsbusintervall zwischen einer ersten Erweiterungsbusintervallgrenze 906 und einer zweiten Erweiterungsbusintervallgrenze 908, erzeugt durch die DFP-Vorrichtung 106. Transaktionen zwischen der Hostvorrichtung 102 und der UFP-Vorrichtung 104 werden innerhalb des Hostbusintervalls abgeschlossen und Transaktionen zwischen der DFP-Vorrichtung 106 und der USB-Vorrichtung 108 werden innerhalb des Erweiterungsbusintervalls abgeschlossen, gemäß USB-Spezifikationen. Obgleich die erste Hostbusintervallgrenze 902 und die erste Erweiterungsbusintervallgrenze 906 in der Veranschaulichung der Einfachheit halber zur gleichen Zeit erzeugt werden und die zweite Hostbusintervallgrenze 904 und die zweite Erweiterungsbusintervallgrenze 908 in der Veranschaulichung der Einfachheit halber zur gleichen Zeit erzeugt werden, können die zwischen der DFP-Vorrichtung 106 und der USB-Vorrichtung 108 erzeugten Busintervallgrenzen um einen Betrag verzögert sein, um die Latenz in der Kommunikation zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 zu kompensieren.
-
An Punkt 1 erzeugt die Hostvorrichtung 102 ein Anforderungspaket, wie etwa ein ACK-IN-Paket, und überträgt es an die UFP-Vorrichtung 104. Die UFP-Vorrichtung 104 überträgt daraufhin das angeforderte Paket an die DFP-Vorrichtung 106. An Punkt 2 antwortet die UFP-Vorrichtung 104 der Hostvorrichtung 102 mit einem synthetischen NULL-Paket. An Punkt 3 erzeugt die DFP-Vorrichtung 106 ein an Endpunkt A1 gerichtetes synthetisches Anforderungspaket, und an Punkt 4 beginnt die mit Endpunkt A1 assoziierte USB-Vorrichtung 108, die angeforderten Pakete an die DFP-Vorrichtung 106 zu übertragen. An Punkt 5 erzeugt die Hostvorrichtung 102 ein zweites Anforderungspaket, wie etwa das veranschaulichte an Endpunkt „A2“ gerichtete ACK-Paket, und überträgt es an die UFP-Vorrichtung 104, und an Punkt 6 empfängt die DFP-Vorrichtung 106 das zweite Anforderungspaket von der UFP-Vorrichtung 104. Die Aktionen von Punkt 1 bis Punkt 6 sind den oben in 7A erörterten ähnlich und werden daher der Kürze halber nicht erneut im Detail erörtert.
-
An Punkt 7 überträgt Endpunkt A1 ein Datenpaket mit gesetztem LPF-Wert, wodurch angegeben wird, dass Endpunkt A1 keine zu sendenden Daten mehr aufweist, und dass die DFP-Vorrichtung 106 den USB-Bus zum Übertragen eines Anforderungspakets an einen anderen Endpunkt verwenden kann. Dementsprechend überträgt die DFP-Vorrichtung 106 an Punkt 8 ein synthetisches Anforderungspaket an Endpunkt A2. Dies ist dem an Punkt 7 in 7A übertragenen synthetischen Anforderungspaket ähnlich, obgleich die DFP-Vorrichtung 106, da keine andere Anforderung auf Verarbeitung wartet, das Paket an Endpunkt A2 übertragen kann, ohne blnterval-Werte zu vergleichen.
-
Bei einigen Ausführungsformen bestimmt die DFP-Vorrichtung 106 vor Erzeugung des synthetischen Anforderungspakets an Punkt 8 eine vorhergesagte Latenzmenge in der Kommunikation zwischen der DFP-Vorrichtung 106 und dem Zielendpunkt. Da die Kommunikation downstream der DFP-Vorrichtung 106 die USB-Spezifikationen erfüllt, kann die vorhergesagte Latenzmenge durch Zählen einer Hub-Tiefe oder einer Anzahl von USB-Hubs zwischen der DFP-Vorrichtung 106 und der mit dem Zielendpunkt assoziierten USB-Vorrichtung 108 bestimmt werden.
-
Ist beispielsweise in 8 der Zielendpunkt mit der ersten USB-Vorrichtung 810 assoziiert, so betrüge die Hub-Tiefe null, da die erste USB-Vorrichtung 810 direkt mit der DFP-Vorrichtung 106 gekoppelt ist, und es käme keine zusätzliche Latenz in Frage. Wäre der Zielendpunkt mit der zweiten USB-Vorrichtung 808 assoziiert, so betrüge die Hub-Tiefe eins, da die zweite USB-Vorrichtung 808 über die erste USB-Hub-Vorrichtung 802 mit der DFP-Vorrichtung 106 gekoppelt ist, und es würde eine entsprechende Menge vorhergesagter Latenz verwendet. Gleichermaßen betrüge, wäre der Zielendpunkt mit der dritten USB-Vorrichtung 806 assoziiert, die Hub-Tiefe zwei, da die dritte USB-Vorrichtung 806 über die erste USB-Hub-Vorrichtung 802 und die zweite USB-Hub-Vorrichtung 804 mit der DFP-Vorrichtung 106 gekoppelt ist, und es würde eine entsprechende erhöhte Menge vorhergesagter Latenz verwendet. Bei einigen Ausführungsformen kann eine vorbestimmte Latenzmenge für jede Stufe von Hub-Tiefe vorhergesagt werden. Beispielsweise kann eine vorbestimmte Latenzmenge im Bereich von 0,65 µs bis 0,75 µs, wie etwa 0,7 µs, als die vorhergesagte Latenzmenge für jede Stufe von Hub-Tiefe verwendet werden. Bei einigen Ausführungsformen kann die DFP-Vorrichtung 106 eine Latenzmenge auf jeder Hub-Tiefenstufe messen und die gemessene Latenzmenge bei ihrer Vorhersage verwenden.
-
Wie in 9 veranschaulicht gibt die vorhergesagte Latenz in der Kommunikation mit Endpunkt A2 an, dass lediglich Zeit zum Kommunizieren von zwei Datenpaketen vorhanden ist, bevor die zweite Erweiterungsbusintervallgrenze 908 auftritt. Dementsprechend fordert das an Punkt 8 übertragene synthetische Anforderungspaket nur zwei Pakete an, die dann an Punkt 9 durch die mit Endpunkt A2 assoziierte USB-Vorrichtung 108 zurückgegeben werden. Dann endet das Erweiterungsbusintervall an der zweiten Erweiterungsbusintervallgrenze 908.
-
Obgleich veranschaulichende Ausführungsformen veranschaulicht und beschrieben wurden, versteht es sich, dass verschiedene Änderungen daran vorgenommen werden können, ohne vom Wesen und Schutzumfang der Offenbarung abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- WO 63/107914 [0001]
- US 10552355 [0040]