DE102018124173A1 - Verfahren und Vorrichtungen zum Erweitern von USB-3.0-Konformer Kommunikation über ein Erweiterungsmedium - Google Patents

Verfahren und Vorrichtungen zum Erweitern von USB-3.0-Konformer Kommunikation über ein Erweiterungsmedium Download PDF

Info

Publication number
DE102018124173A1
DE102018124173A1 DE102018124173.9A DE102018124173A DE102018124173A1 DE 102018124173 A1 DE102018124173 A1 DE 102018124173A1 DE 102018124173 A DE102018124173 A DE 102018124173A DE 102018124173 A1 DE102018124173 A1 DE 102018124173A1
Authority
DE
Germany
Prior art keywords
usb
service interval
dfp
data packets
ufp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018124173.9A
Other languages
English (en)
Inventor
Sukhdeep Singh Hundal
Mohsen Nahvi
Remco van Steeden
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Icron Tecnologies Corp
Original Assignee
Icron Tecnologies Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Icron Tecnologies Corp filed Critical Icron Tecnologies Corp
Publication of DE102018124173A1 publication Critical patent/DE102018124173A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling
    • G06F2213/4002Universal serial bus hub with a single upstream port

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)

Abstract

Eine signalaufwärts-gewandte Port-Vorrichtung bzw. UFP-Vorrichtung und eine signalabwärts-gewandte Port-Vorrichtung bzw. DFP-Vorrichtung erlauben es einer Host-Vorrichtung und einer USB-Vorrichtung, SuperSpeed-Kommunikation über ein nicht USB-konformes Erweiterungsmedium durchzuführen. Bei einigen Ausführungsformen hilft die UFP-Vorrichtung dabei, erhöhte Latenz zu überwinden, indem synthetische Pakete erzeugt werden, die zu der DFP-Vorrichtung zu senden sind, um mehr Datenpakete von der USB-Vorrichtung vorabzurufen, als durch die Host-Vorrichtung angefordert wurde. Bei einigen Ausführungsformen justiert die DFP-Vorrichtung das Dienstintervalltiming oder Cache-speichert Datenpakete von der Host-Vorrichtung, um die erhöhte Latenz zu kompensieren. Bei einigen Ausführungsformen sendet die DFP-Vorrichtung ein synthetisches Bestätigungspaket zur UFP-Vorrichtung, um eine größere Menge an freiem Pufferplatz anzugeben, als auf der USB-Vorrichtung vorhanden ist, um dabei zu helfen, die erhöhte Latenz zu überwinden.

Description

  • Stand der Technik
  • USB ist eine Peripherieschnittstelle zum Anschluss einer großen Vielfalt von Datenverarbeitungsvorrichtungen, wie etwa Personal Computer, digitalen Telefonanschlüssen, Monitoren, Modems, Mäusen, Druckern, Scannern, Spielsteuerungen, Tastaturen, Speichervorrichtungen und/oder dergleichen. Die USB definierenden Spezifikationen (z.B. Intel et al., Universal Serial Bus Specification, 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; herausgegeben als Universal Serial Bus 3.1 Specification Revision 1.0 im Juli 2013; herausgegeben als Universal Serial Bus 3.2 Specification Revision 1.0 am 22.9.2017 und nachfolgende Aktualisierungen und Modifikationen - die hier im Folgenden kollektiv als „USB-Spezifikationen“ bezeichnet werden, wobei dieser Ausdruck zukünftige Modifikationen und Revisionen umfassen kann) sind nichtproprietär und werden von einer als das USB-Forum bekannten offenen Industrieorganisation verwaltet. Die USB-Spezifikationen legen Grundkriterien fest, die erfüllt werden müssen, um USB-Standards einzuhalten. Für Durchschnittsfachleute sind aus den USB-Spezifikationen viele Begriffe hierin erkennbar. Diese Begriffe werden hier auf ähnliche Weise wie bei ihrem Gebrauch in den USB-Spezifikationen verwendet, sofern es nicht anders angegeben wird.
  • Unter der Revision 3.1 der USB-Spezifikationen werden SuperSpeed-Verbindungen bereitgestellt, die eine Signalisierungsrate von 5 Gbps (Gen 1) oder 10 Gbps (Gen 2) verwenden. Obwohl die Spezifikation nicht irgendeine konkrete maximale Kabellänge vorgibt, wird in der Praxis durch das Timing vorgeschrieben und eine Signalisierungstechnik erfordert, dass ein für eine SuperSpeed-Verbindung zwischen einem Host und einer Vorrichtung verwendetes reguläres Kupferkabel höchstens 3 Meter lang ist, um die SuperSpeed-Verbindung ordnungsgemäß zu unterstützen. Deshalb werden ein neues Verfahren und Gerät benötigt, um gegebenenfalls Erweiterung einer SuperSpeed-USB-Vorrichtung auf eine größere Distanz vom Host, mit dem sie gekoppelt ist, zu erlauben, so dass SuperSpeed-USB-Pakete zwischen dem Host und der USB-Vorrichtung propagiert werden können.
  • Kurzfassung
  • Diese Kurzfassung gibt eine Einführung in eine Auswahl von Konzepten in vereinfachter Form, die nachfolgend weiter in der ausführlichen Beschreibung beschrieben werden. Diese Kurzfassung soll nicht Schlüsselmerkmale des beanspruchten Gegenstands identifizieren und soll auch nicht als Hilfe beim Bestimmen des Schutzumfangs des beanspruchten Gegenstands verwendet werden.
  • Bei einigen Ausführungsformen wird eine signalaufwärts-gewandte Port-Vorrichtung bzw. UFP-Vorrichtung bereitgestellt. Die UFP-Vorrichtung umfasst einen USB-signalaufwärts-gewandten Port und eine Erweiterungsschnittstelle, die dafür ausgelegt ist, mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden. Die UFP-Vorrichtung ist dafür ausgelegt, es einer über eine USB-konforme Verbindung mit dem USB-signalaufwärts-gewandten Port gekoppelten Host-Vorrichtung zu erlauben, über das Erweiterungsmedium mit einer USB-Vorrichtung zu kommunizieren, die mit einer signalabwärts-gewandten Port-Vorrichtung bzw. DFP-Vorrichtung gekoppelt ist. Die UFP-Vorrichtung ist dafür ausgelegt, Schritte auszuführen, umfassend Empfangen eines Anforderungspakets von der Host-Vorrichtung über den USB-signalaufwärts-gewandten Port, wobei das Anforderungspaket eine Sequenznummer und einen Pufferzählwert umfasst und wobei die Sequenznummer und der Pufferzählwert eine erste Menge angeforderter Datenpakete identifizieren; Erzeugen eines synthetischen Anforderungspakets, wobei das synthetische Anforderungspaket die Sequenznummer des Anforderungspakets und einen Synthetischer-Puffer-Zählwert umfasst und wobei die Sequenznummer und der Synthetischer-Puffer-Zählwert eine zweite Menge angeforderter Datenpakete identifizieren, die die erste Menge angeforderter Datenpakete und zusätzliche Datenpakete umfasst; und Senden des synthetischen Anforderungspakets zu der DFP-Vorrichtung über das Erweiterungsmedium; Senden eines synthetischen Antwortpakets zu der Host-Vorrichtung, um zu bewirken, dass die Host-Vorrichtung auf die erste Menge angeforderter Datenpakete wartet; Empfangen von Datenpaketen von der DFP-Vorrichtung; und Speichern der empfangenen Datenpakete, solange es durch die Host-Vorrichtung angefordert wird.
  • Bei einigen Ausführungsformen wird ein Verfahren zum Ermöglichen von Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium bereitgestellt. Eine UFP-Vorrichtung empfängt ein Anforderungspaket von der Host-Vorrichtung über einen USB-signalaufwärts-gewandten Port der UFP-Vorrichtung, wobei das Anforderungspaket eine Sequenznummer und einen Pufferzählwert umfasst und wobei die Sequenznummer und der Pufferzählwert eine erste Menge angeforderter Datenpakete identifizieren. Die UFP-Vorrichtung erzeugt ein synthetisches Anforderungspaket, wobei das synthetische Anforderungspaket die Sequenznummer des Anforderungspakets und einen Synthetischer-Puffer-Zählwert umfasst und wobei die Sequenznummer und der Synthetischer-Puffer-Zählwert eine zweite Menge angeforderter Datenpakete identifizieren, die die erste Menge angeforderter Datenpakete und zusätzliche Datenpakete umfasst. Die UFP-Vorrichtung sendet das synthetische Anforderungspaket zu einer signalabwärts-gewandten Port-Vorrichtung bzw. DFP-Vorrichtung über das Erweiterungsmedium. Die UFP-Vorrichtung sendet ein synthetisches Antwortpaket an die Host-Vorrichtung, um zu bewirken, dass die Host-Vorrichtung auf die erste Menge angeforderter Datenpakete wartet. Die UFP-Vorrichtung empfängt Datenpakete von der DFP-Vorrichtung und die UFP-Vorrichtung speichert die empfangenen Datenpakete, solange es durch die Host-Vorrichtung angefordert wird.
  • Bei einigen Ausführungsformen wird eine signalabwärts-gewandte Port-Vorrichtung bzw. DFP-Vorrichtung bereitgestellt. Die DFP-Vorrichtung umfasst einen USB-signalabwärts-gewandten Port und eine Erweiterungsschnittstelle, die dafür ausgelegt ist, mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden. Die DFP-Vorrichtung ist dafür ausgelegt, es einer über eine USB-konforme Verbindung mit dem USB-signalabwärts-gewandten Port gekoppelten USB-Vorrichtung zu erlauben, über das Erweiterungsmedium mit einer Host-Vorrichtung zu kommunizieren, die mit einer UFP-Vorrichtung gekoppelt ist, indem Schritte ausgeführt werden, umfassend: Erzeugen von Dienstintervallgrenzen mit einem ersten Timing, das von einem zweiten Timing von durch die Host-Vorrichtung erzeugten Dienstintervallgrenzen versetzt ist; Empfangen einer Menge von Datenpaketen von der UFP-Vorrichtung, die durch die Host-Vorrichtung während eines ersten Dienstintervalls erzeugt wurden; und Senden der Menge von Datenpaketen zur USB-Vorrichtung während eines zweiten Dienstintervalls, das dem ersten Dienstintervall entspricht.
  • Bei einigen Ausführungsformen wird ein Verfahren zum Ermöglichen von Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium bereitgestellt. Eine über eine USB-konforme Verbindung mit der USB-Vorrichtung gekoppelte DFP-Vorrichtung erzeugt Dienstintervallgrenzen mit einem ersten Timing, das von einem zweiten Timing von Dienstintervallgrenzen versetzt ist, das durch die Host-Vorrichtung erzeugt wird. Die DFP-Vorrichtung empfängt eine Menge von Datenpaketen von einer UFP-Vorrichtung über das Erweiterungsmedium, die durch die Host-Vorrichtung während eines ersten Dienstintervalls erzeugt wurden. Die DFP-Vorrichtung sendet die Menge von Datenpaketen zur USB-Vorrichtung während eines zweiten Dienstintervalls, das dem ersten Dienstintervall entspricht.
  • Bei einigen Ausführungsformen wird eine DFP-Vorrichtung bereitgestellt. Die DFP-Vorrichtung umfasst einen USB-signalabwärts-gewandten Port und eine Erweiterungsschnittstelle, die dafür ausgelegt ist, mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden. Die DFP-Vorrichtung ist dafür ausgelegt, es einer über eine USB-konforme Verbindung mit dem USB-signalabwärts-gewandten Port gekoppelten USB-Vorrichtung zu erlauben, über das Erweiterungsmedium mit einer Host-Vorrichtung zu kommunizieren, die mit einer UFP-Vorrichtung gekoppelt ist, indem Schritte ausgeführt werden, umfassend: Erzeugen von Dienstintervallgrenzen, die mit durch die Host-Vorrichtung erzeugten Dienstintervallgrenzen synchronisiert sind; Empfangen einer Menge von Datenpaketen von der UFP-Vorrichtung, die durch die Host-Vorrichtung während eines ersten Dienstintervalls erzeugt wurden; Speichern der Menge von Datenpaketen durch die DFP-Vorrichtung; und Senden der Menge von Datenpaketen zu der USB-Vorrichtung in einem zweiten Dienstintervall, das nach dem ersten Dienstintervall auftritt.
  • Bei einigen Ausführungsformen wird ein Verfahren zum Ermöglichen von Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium bereitgestellt. Eine über eine USB-konforme Verbindung mit der USB-Vorrichtung gekoppelte DFP-Vorrichtung erzeugt Dienstintervallgrenzen, die mit durch die Host-Vorrichtung erzeugten Dienstintervallgrenzen synchronisiert sind. Die DFP-Vorrichtung empfängt eine Menge von Datenpaketen von einer UFP-Vorrichtung über das Erweiterungsmedium, die während des ersten Dienstintervalls durch die Host-Vorrichtung erzeugt wurden. Die DFP-Vorrichtung speichert die Menge von Datenpaketen und sendet die Menge von Datenpaketen in einem zweiten Dienstintervall, das nach dem ersten Dienstintervall auftritt, zu der USB-Vorrichtung.
  • Bei einigen Ausführungsformen wird eine DFP-Vorrichtung bereitgestellt. Die DFP-Vorrichtung umfasst einen USB-signalabwärts-gewandten Port und eine Erweiterungsschnittstelle, die dafür ausgelegt ist, mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden. Die DFP-Vorrichtung ist dafür ausgelegt, es einer über eine USB-konforme Verbindung mit dem USB-signalabwärts-gewandten Port gekoppelten USB-Vorrichtung zu erlauben, über das Erweiterungsmedium mit einer Host-Vorrichtung zu kommunizieren, die mit einer UFP-Vorrichtung gekoppelt ist, indem Schritte ausgeführt werden, umfassend: Empfangen eines Datenpakets von der UFP-Vorrichtung, das durch die Host-Vorrichtung erzeugt wurde; Senden des Datenpakets zur USB-Vorrichtung; Empfangen eines Bestätigungspakets von der USB-Vorrichtung, wobei das Bestätigungspaket eine erste Puffergröße umfasst, die einen verfügbaren Pufferplatz auf der USB-Vorrichtung angibt; und Senden eines synthetischen Bestätigungspakets zur UFP-Vorrichtung, wobei das synthetische Bestätigungspaket eine zweite Puffergröße umfasst, die einen verfügbaren Pufferplatz auf der DFP-Vorrichtung angibt, die von der ersten Puffergröße verschieden ist.
  • Bei einigen Ausführungsformen wird ein Verfahren zum Ermöglichen von Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium bereitgestellt. Eine über eine USB-konforme Verbindung mit der USB-Vorrichtung gekoppelte DFP-Vorrichtung empfängt ein Datenpaket von einer UFP-Vorrichtung über das Erweiterungsmedium, das durch die Host-Vorrichtung erzeugt wurde. Die DFP-Vorrichtung sendet das Datenpaket zu der USB-Vorrichtung. Die DFP-Vorrichtung empfängt ein Bestätigungspaket von der USB-Vorrichtung, wobei das Bestätigungspaket eine erste Puffergröße umfasst, die einen verfügbaren Pufferplatz auf der USB-Vorrichtung angibt. Die DFP-Vorrichtung sendet ein synthetisches Bestätigungspaket zur UFP-Vorrichtung, wobei das synthetische Bestätigungspaket eine zweite Puffergröße umfasst, die einen verfügbaren Pufferplatz auf der DFP-Vorrichtung angibt, die von der ersten Puffergröße verschieden ist.
  • Figurenliste
  • Die obigen Aspekte und viele der einhergehenden Vorteile der vorliegenden Erfindung werden ohne weiteres verständlicher, wenn diese durch Bezugnahme auf die folgende ausführliche Beschreibung in Verbindung mit den beigefügten Zeichnungen besser verständlich wird. Es zeigen:
    • 1 ein Blockdiagramm einer Ausführungsform eines Systems 100 zur Erweiterung von USB-Kommunikation gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung;
    • 2 ein Blockdiagramm weiterer Einzelheiten der in 1 dargestellten Signalaufwärts-USB-Erweiterungsvorrichtung und Signalabwärts-USB-Erweiterungsvorrichtung;
    • 3 ein Blockdiagramm einer beispielhaften Ausführungsform einer Port-Vorrichtung gemäß verschiedenen Aspekten der vorliegenden Offenbarung;
    • 4A ein Sequenzdiagramm der Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung in einem Modus niedriger Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung;
    • 4B ein Sequenzdiagramm eines Problems bei der Verwendung der naiven Überbrückungstechnik für isochrone IN-Transaktionen in Situationen hoher Latenz;
    • 5A ein Sequenzdiagramm eines Beispiels für eine erste Technik zur Kompensation von durch das Erweiterungsmedium in isochronen IN-Transaktionen hinzugefügter Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung;
    • 5B ein Sequenzdiagramm eines Beispiels für eine zweite Technik zur Kompensation von durch das Erweiterungsmedium in isochronen IN-Transaktionen hinzugefügter Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung;
    • 6A ein Sequenzdiagramm der Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung in einem Modus niedriger Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung;
    • 6B ein Sequenzdiagramm eines Problems bei der Verwendung der naiven Überbrückungstechnik für isochrone OUT-Transaktionen in Situationen hoher Latenz;
    • 7A ein Sequenzdiagramm eines Beispiels für eine erste Technik zur Kompensation von durch das Erweiterungsmedium in isochronen OUT-Transaktionen hinzugefügter Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung;
    • 7B ein Sequenzdiagramm eines Beispiels für eine zweite Technik zur Kompensation von durch das Erweiterungsmedium in isochronen OUT-Transaktionen hinzugefügter Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung;
    • 8A ein Sequenzdiagramm einer beispielhaften Ausführungsform einer verbesserten Massen-OUT-Transaktion gemäß verschiedenen Aspekten der vorliegenden Offenbarung; und
    • 8B ein Sequenzdiagramm einer beispielhaften Ausführungsform einer verbesserten Massen-IN-Transaktion gemäß verschiedenen Aspekten der vorliegenden Offenbarung.
  • Ausführliche Beschreibung
  • 1 ist ein Blockdiagramm einer Ausführungsform eines Systems 100 zur Erweiterung von USB-Kommunikation gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. Das System 100 umfasst eine Host-Vorrichtung 102 und eine USB-Vorrichtung 108. Traditionell wären die Host-Vorrichtung 102 und die USB-Vorrichtung 108 direkt über ein USB-Kabel verbunden und würden über ein Protokoll, das mit einer USB-Spezifikation, wie etwa USB 1.0, USB 1.1, USB 2.0, USB 3.0 oder USB 3.1, konform ist, direkt miteinander kommunizieren. Wie oben besprochen wäre eine solche Verbindung aufgrund der Timinganforderungen der USB-Spezifikation auf eine kurze Distanz zwischen der Host-Vorrichtung 102 und der USB-Vorrichtung 108 beschränkt.
  • Die Host-Vorrichtung 102 kann eine beliebige Art von eine USB-Host-Steuerung enthaltender Datenverarbeitungsvorrichtung sein. Einige Beispiele für geeignete Host-Vorrichtungen 102 wären, aber ohne Beschränkung darauf, ein Desktop-Computer, ein Laptop-Computer, eine Tablet-Datenverarbeitungsvorrichtung, ein Servercomputer, eine Set-Top-Box, eine Audiokonsoleneinheit für ein Automobil, ein eingebetteter Host und/oder dergleichen. Ähnlich kann die USB-Vorrichtung 108 eine beliebige Art von Vorrichtung sein, die über ein USB-Protokoll mit einer USB-Host-Steuerung kommunizieren kann. Das in 1 dargestellte Beispiel ist eine Webcam, aber einige andere Beispiele für geeignete USB-Vorrichtungen 108 wären, aber ohne Beschränkung darauf, eine Menschen-Schnittstellenvorrichtung wie eine Tastatur oder Maus, eine Massenspeichervorrichtung wie ein Flash-Laufwerk oder externes Festplattenlaufwerk, eine USB-fähige medizinische Vorrichtung, ein Drucker, ein USB-Hub, eine drahtlose Steuerung und/oder dergleichen.
  • In dem vorliegenden System 100 ist die Host-Vorrichtung 102 über ein USB-Protokoll mit einer Signalaufwärts-USB-Erweiterungsvorrichtung 104 verbunden und die USB-Vorrichtung 108 über ein USB-Protokoll mit einer Signalabwärts-USB-Erweiterungsvorrichtung 106 verbunden. Die Signalaufwärts-USB-Erweiterungsvorrichtung 104 und die Signalabwärts-USB-Erweiterungsvorrichtung 106 sind über ein Erweiterungsmedium 90, wie etwa ein Netzwerk, das die Distanz zwischen der Host-Vorrichtung 102 und der USB-Vorrichtung 108 über das von der USB-Spezifikation unterstützte hinaus vergrößern kann, kommunikativ gekoppelt. Das Erweiterungsmedium 90 und Kommunikation darauf können eine beliebige geeignete Vernetzungstechnologie, wie etwa Ethernet, Bluetooth, WiFi, WiMax, das Internet, faseroptische Übertragung von Punkt zu Punkt und/oder dergleichen und ein beliebiges geeignetes Kommunikationsmedium, wie etwa physische Kabel, über faseroptisches Kabel, über drahtloses Spektrum und/oder dergleichen umfassen.
  • Bei einigen Ausführungsformen kann es vorkommen, dass sich die Signalaufwärts-USB-Erweiterungsvorrichtung 104 und die Signalabwärts-USB-Erweiterungsvorrichtung 106 näher beieinander als die kurze USB-Anforderungsdistanz befinden und/oder direkt durch ein Kabel verbunden sein können, statt über ein Netzwerk, aber die Fähigkeit behalten, erhöhte Latenz zwischen der Host-Vorrichtung 102 und der USB-Vorrichtung 108 zu überwinden, die durch die Verwendung eines Erweiterungsmediums eingeführt wird, das die USB-Spezifikationen nicht einhält.
  • Ein durch die USB-Erweiterungsvorrichtungen 104, 106 bereitgestelltes Merkmal ist, dass sie die Anwesenheit des Erweiterungsmediums vor der Host-Vorrichtung 102 und der USB-Vorrichtung 108 verbergen. Anders ausgedrückt wickeln die USB-Erweiterungsvorrichtungen 104, 106 Kommunikation über das Erweiterungsmedium ab und kompensieren etwaige dadurch eingeführte zusätzliche Latenz, aber die Host-Vorrichtung 102 und die USB-Vorrichtung 108 verhalten sich so, als wären sie direkt über eine mit der USB-Spezifikation Konformen Verbindung verbunden. Dementsprechend können die Host-Vorrichtung 102 und die USB-Vorrichtung 108 über die USB-Erweiterungsvorrichtungen 104, 106 ohne jegliche Nicht-Standard-Software- oder -Hardware-Umkonfiguration auf der Host-Vorrichtung 102 oder der USB-Vorrichtung 108 kommunizieren.
  • 2 ist ein Blockdiagramm weiterer Einzelheiten der in 1 dargestellten Signalaufwärts-USB-Erweiterungsvorrichtung 104 und Signalabwärts-USB-Erweiterungsvorrichtung 106. Die Signalaufwärts-USB-Erweiterungsvorrichtung 104 umfasst einen signalaufwärts-gewandten Port 202 und die Signalabwärts-USB-Erweiterungsvorrichtung 106 umfasst einen signalabwärts-gewandten Port 204. Im vorliegenden Gebrauch können die Ausdrücke „signalaufwärts-gewandter Port“ und die entsprechende Abkürzung „UFP“ austauschbar verwendet werden, wie auch die Ausdrücke „signalabwärts-gewandter Port“ und die entsprechende Abkürzung „DFP“. Da die Signalaufwärts-USB-Erweiterungsvorrichtung 104 einen signalaufwärts-gewandten Port 202 umfasst, kann ähnlich die Signalaufwärts-USB-Erweiterungsvorrichtung 104 als „UFP-Vorrichtung“ bezeichnet werden und da die Signalabwärts-USB-Erweiterungsvorrichtung 106 einen signalabwärts-gewandten Port 204 umfasst, die Signalabwärts-USB-Erweiterungsvorrichtung 106 auch als „DFP-Vorrichtung“ bezeichnet werden.
  • Die UFP-Vorrichtung 104 ist dafür ausgelegt, mindestens über ein mit dem USB-Standard konformes Protokoll unter Verwendung des UFP 202 mit der Host-Vorrichtung 102 zu kommunizieren und über das Erweiterungsmedium Nachrichten und USB-Busverkehr mit der DFP-Vorrichtung 106 auszutauschen. Die DFP-Vorrichtung 106 ist dafür ausgelegt, mindestens über ein mit dem USB-Standard konformes Protokoll unter Verwendung des DFP 204 mit der USB-Vorrichtung 108 zu kommunizieren und über das Erweiterungsmedium mit der UFP-Vorrichtung 104 Nachrichten und USB-Busverkehr auszutauschen. Die Signalaufwärts-USB-Erweiterungsvorrichtung 104 und die Signalabwärts-USB-Erweiterungsvorrichtung 106 können weitere Komponenten enthalten, wie etwa eine Stromversorgung, eine Status-LED, einen Lautsprecher, eine Eingabevorrichtung zum Wechseln zwischen UFP-Funktionalität und DFP-Funktionalität und/oder dergleichen. Da solche Komponenten und ihre Funktionen Durchschnittsfachleuten vertraut sind, wurden sie hier nicht weiter besprochen.
  • Wie in 2 dargestellt ist der signalaufwärts-gewandte Port 202 der Signalaufwärts-USB-Erweiterungsvorrichtung 104 mit einem signalabwärts-gewandten Port der Host-Vorrichtung 102 verbunden und der signalabwärts-gewandte Port 204 der Signalabwärts-USB-Erweiterungsvorrichtung 106 mit einem signalaufwärts-gewandten Port der USB-Vorrichtung 108 verbunden. Bei anderen Ausführungsformen kann der signalaufwärts-gewandte Port 202 der Signalaufwärts-USB-Erweiterungsvorrichtung 104 mit einem anderen signalabwärts-gewandten Port als dem durch eine Host-Vorrichtung 102 bereitgestellten verbunden sein, wie etwa einem signalabwärts-gewandten Port eines Hub und/oder dergleichen. Ähnlich kann bei anderen Ausführungsformen der signalabwärts-gewandte Port 204 der Signalabwärts-USB-Erweiterungsvorrichtung 106 mit einem anderen signalaufwärts-gewandten Port als dem durch eine USB-Vorrichtung 108 bereitgestellten verbunden sein, wie etwa einem signalaufwärts-gewandten Port eines Hub und/oder dergleichen. Die nachfolgende Besprechung erfolgt hauptsächlich im Hinblick auf die in 2 dargestellte einfache Topologie, aber Durchschnittsfachleute 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 einer beispielhaften Ausführungsform einer Port-Vorrichtung 300 gemäß verschiedenen Aspekten der vorliegenden Offenbarung. Bei einigen Ausführungsformen kann die Port-Vorrichtung 300 dafür konstruiert sein, Dienste eines signalaufwärts-gewandten Ports 202 bereitzustellen, und bei einigen Ausführungsformen kann die Port-Vorrichtung 300 dafür konstruiert sein, Dienste eines signalabwärts-gewandten Ports 204 bereitzustellen. Bei einigen Ausführungsformen kann die Port-Vorrichtung 300 Anweisungen zur Bereitstellung von Diensten sowohl eines signalaufwärts-gewandten Ports 202 als auch eines signalabwärts-gewandten Ports 204 umfassen, wobei die bestimmten Port-Dienste, die bereitgestellt werden, durch eine Benutzerkonfiguration, wie etwa eine Brücke, eine Firmwareeinstellung und/oder dergleichen bestimmt werden.
  • Wie dargestellt umfasst die Port-Vorrichtung 300 eine Protokoll-Engine 302, eine USB-Bitübertragungsschichtschnittstelle 304 und eine Fernschnittstelle 306. Bei einigen Ausführungsformen kann die Protokoll-Engine 302 dafür ausgelegt sein, die nachfolgend hinsichtlich der UFP-Vorrichtung 104 und/oder der DFP-Vorrichtung 106 besprochene Logik bereitzustellen und/oder auszuführen. Die Protokoll-Engine 302 kann die USB-Bitübertragungsschichtschnittstelle 304 anweisen, die geeigneten elektrischen Signale an die USB-Bitübertragungsschicht anzulegen, um mit der USB-Vorrichtung 108 oder der Host-Vorrichtung 102 zu kommunizieren. Ähnlich kann die Protokoll-Engine 302 die Fernschnittstelle 306 anweisen, Informationen mit der Fern-USB-Erweiterungsvorrichtung auszutauschen.
  • Bei einigen Ausführungsformen kann die Protokoll-Engine 302 in einer Logikvorrichtung wie einem PDL, einem ASIC, einem FPGA und/oder dergleichen implementiert werden. Bei anderen Ausführungsformen kann die Protokoll-Engine 302 in einer Datenverarbeitungsvorrichtung implementiert werden, die mindestens einen Prozessor und einen Speicher aufweist, der computerausführbare Anweisungen enthält, die, wenn sie durch den mindestens einen Prozessor ausgeführt werden, bewirken, dass die Protokoll-Engine 302 die nachfolgend besprochenen Schritte ausführt; in einer dedizierten digitalen Hardwarevorrichtung, die zum Beispiel als Automat implementiert wird, der dafür ausgelegt ist, die beschriebenen Schritte auszuführen; in einem anwendungsspezifischen Prozessor; und/oder in einer beliebigen anderen geeigneten Datenverarbeitungsvorrichtung. Bei einigen Ausführungsformen kann die Protokoll-Engine 302 (oder eine andere Komponente der Port-Vorrichtung 300) einen computerlesbaren Speicher umfassen, der verwendet werden kann, um Datenpakete zwischenzuspeichern, wie nachfolgend weiter besprochen wird.
  • Bei einigen Ausführungsformen wird Logik von einer USB-Erweiterungsvorrichtung zugeschriebenen Schritten durch eine Protokoll-Engine 302 ausgeführt, die dann eine USB-Bitübertragungsschichtschnittstelle 304 und/oder eine Fernschnittstelle 306 anweist, der Logik zugeordnete geeignete Kommunikationsschritte auszuführen. Im Verlauf der nachfolgenden Besprechung können solche Schritte der einfacheren Besprechung halber einfach als durch die UFP-Vorrichtung 104 oder die DFP-Vorrichtung 106 so ausgefü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 Schritte tatsächlich durch eine Protokoll-Engine 302, eine USB-Bitübertragungsschichtschnittstelle 304, eine Fernschnittstelle 306 und/oder eine gewisse andere Komponente der USB-Erweiterungsvorrichtung ausgeführt werden können.
  • Bei einigen Ausführungsformen können die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 dafür ausgelegt sein, abhängig von der Latenz der Verbindungsstrecke zwischen ihnen in einem von mehreren Modi zu arbeiten. In einem Modus niedriger Latenz können die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 durch einen Kommunikationskanal angemessener Geschwindigkeit zur Unterstützung einer SuperSpeed-Verbindung einfach durch Überbrücken der USB-Pakete über den Kommunikationskanal verbunden sein. In einem Modus hoher Latenz können die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 Techniken zur Kompensation der Verzögerung bei Paketübertragung wie nachfolgend weiter besprochen. Bei einigen Ausführungsformen kann der Modus durch einen Benutzer während der Konfiguration der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 ausgewählt werden. Bei einigen Ausführungsformen können die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 automatisch einen Grad der Latenz zwischen den Vorrichtungen bestimmen und können auf der Basis dieser Bestimmung einen Modus automatisch wählen.
  • 4A ist ein Sequenzdiagramm der Kommunikation zwischen einer Host-Vorrichtung 102 und einer USB-Vorrichtung 108 in einem Modus niedriger Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung. Die dargestellte Kommunikation ist eine isochrone IN-Kommunikation, bei der die Host-Vorrichtung 102 angibt, dass sie bereit ist, Daten zu empfangen, und die USB-Vorrichtung 108 Daten zur Host-Vorrichtung 102 sendet. 4A zeigt 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 Timingfehler 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 Timingparameter zwischen der Host-Vorrichtung 102 und der USB-Vorrichtung 108 aus.
  • Bei SuperSpeed-Kommunikation teilt die Host-Vorrichtung 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 Host-Vorrichtung 102 isochrone Transaktionen so einteilen, dass sie diese Dienstintervallgrenzen nicht überschreiten. In dem in 4A dargestellten 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 Host-Vorrichtung 102 ein Anforderungspaket, wie etwa ein ACK-Paket, und sendet es zur UFP-Vorrichtung 104. Das ACK-Paket gibt eine Sequenznummer („0“) und eine Anzahl von Paketen, zu deren Annahme die Host-Vorrichtung 102 bereit ist („3“) an. Die Host-Vorrichtung 102 kann die Anzahl der Pakete, die sie anzunehmen 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 sendet es über das Erweiterungsmedium zu der DFP-Vorrichtung 106. Die DFP-Vorrichtung 106 sendet dann das ACK-Paket zu der USB-Vorrichtung 108. An Punkt 2 beginnt die USB-Vorrichtung 108, DATA-Pakete beginnend mit der angeforderten Sequenznummer zu senden. Die DATA-Pakete werden durch die DFP-Vorrichtung 106 empfangen, die die DATA-Pakete zu der UFP-Vorrichtung 104 weiterleitet. An Punkt 3 beginnt die UFP-Vorrichtung 104, die DATA-Pakete zu der Host-Vorrichtung 102 zu senden, die sie empfängt.
  • An Punkt 4 bestimmt die Host-Vorrichtung 102, weil die Host-Vorrichtung 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 Host-Vorrichtung 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 sendet die Host-Vorrichtung 102 ein weiteres Anforderungspaket, wie etwa ein ACK-Paket, das die nächste Sequenznummer („3“) und die Anzahl von Paketen („3“), von der sie bestimmt hat, dass sie vor der Dienstintervallgrenze 404 empfangen werden könnten, angibt. Wie zuvor wird das ACK-Paket durch die UFP-Vorrichtung 104 empfangen, zu der DFP-Vorrichtung 106 über das Erweiterungsmedium gesendet und dann durch die USB-Vorrichtung 108 empfangen. An Punkt 5 sendet die USB-Vorrichtung 108 die angeforderten Datenpakete zu der DFP-Vorrichtung 106. Die DFP-Vorrichtung 106 sendet die angeforderten Datenpakete zu der UFP-Vorrichtung 104, die ihrerseits die angeforderten Datenpakete zu der Host-Vorrichtung 102 sendet. Nach der zweiten Dienstintervallgrenze 404 tritt derselbe Prozess nochmals auf: an Punkt 6 sendet die Host-Vorrichtung 102 ein Anforderungspaket zu der USB-Vorrichtung 108 über die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106, und an Punkt 7 beginnt die USB-Vorrichtung 108, antwortende Datenpakete zu senden.
  • Es ist zu beachten, dass die Übertragung von zwei Mengen 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-Spezifiktion an, dass ein Host einen Transfer in Bursts von 2, 4 oder 8 Datenpaketen, gefolgt von einem Burst von so vielen Paketen, wie anzufordern verbleiben, aufteilen kann. Dementsprechend kann bei einigen Ausführungsformen, um sechs Datenpakete während eines Dienstintervalls anzufordern, der Host 102 an Punkt 1 vier Datenpakete und an Punkt 4 dann zwei Datenpakete anfordern. In der Praxis hat sich erwiesen, dass Host-Vorrichtungen 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 eines Problems bei der Verwendung der naiven Überbrückungstechnik für isochrone IN-Transaktionen in Situationen hoher Latenz. Es sind wieder eine erste Dienstintervallgrenze 402 und eine zweite Dienstintervallgrenze 404 gezeigt. Wie in 4A sendet an Punkt 1 die Host-Vorrichtung 102 ein Anforderungspaket, um drei Datenpakete anzufordern, die über die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 zu der USB-Vorrichtung 108 gesendet wird. An Punkt 2 beginnt die USB-Vorrichtung 108, die angeforderten Datenpakete über die DFP-Vorrichtung 106 und die UFP-Vorrichtung 104 zu der Host-Vorrichtung 102 zurückzusenden, und an Punkt 3 beginnt die Host-Vorrichtung 102, die Datenpakete zu empfangen.
  • An Punkt 4 fangen die Probleme an, klar zu werden. Wie oben angegeben wird die Anwesenheit des Erweiterungsmediums vor der Host-Vorrichtung 102 verborgen, und somit verfügt die Host-Vorrichtung 102 nicht über die Informationen, die notwendig sind, um die zusätzliche Latenz zu kompensieren. Wenn die Host-Vorrichtung 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 Host-Vorrichtung 102 dementsprechend, dass sie auf der Basis von Spezifikations-konformen Timings drei Datenpakete vor der zweiten Dienstintervallgrenze 404 empfangen könnte.
  • Somit sendet die Host-Vorrichtung 102 ein Anforderungspaket, das drei Datenpakete anfordert. Das Anforderungspaket wird über die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 zu der USB-Vorrichtung 108 gesendet, und an Punkt 5 beginnt die USB-Vorrichtung 108, die angeforderten Datenpakete über die DFP-Vorrichtung 106 und die UFP-Vorrichtung 104 zu der Host-Vorrichtung 102 zu senden. Aufgrund der durch das Erweiterungsmedium eingefügten zusätzlichen Latenz fängt die Host-Vorrichtung 102 erst an Punkt 6 an, die Datenpakete zu empfangen, also nachdem die zweite Dienstintervallgrenze 404 bereits aufgetreten ist. Dies verursacht Fehler in der Kommunikation zwischen der Host-Vorrichtung 102 und der USB-Vorrichtung 108. In einigen Fällen können sich diese Fehler als Fallenlassen der Verbindung zwischen der Host-Vorrichtung 102 und der USB-Vorrichtung 108 manifestieren. In einigen Fällen kann die Verbindung nicht fallengelassen werden, 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.
  • 5A ist ein Sequenzdiagramm eines Beispiels für eine erste Technik zur Kompensation von durch das Erweiterungsmedium in isochronen IN-Transaktionen hinzugefügter Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung. Wie in 4A und 4B sind eine erste Dienstintervallgrenze 502 und eine zweite Dienstintervallgrenze 504 dargestellt. An Punkt 1 sendet die Host-Vorrichtung 102 ein Anforderungspaket zu der UFP-Vorrichtung 104, das eine Sequenznummer („0“) und eine Anzahl von Paketen („3“) umfasst. An Punkt 2 sendet die UFP-Vorrichtung 104 ein synthetisches Paket zu der Host-Vorrichtung 102 zurück, um die Host-Vorrichtung 102 in einen temporären Wartezustand zu versetzen. Das dargestellte synthetische Paket ist ein NRDY-Paket (Not Ready), wie in der USB-Spezifikation beschrieben, es kann aber eine beliebige andere Art von Paket verwendet werden, das die Host-Vorrichtung 102 in einen Wartezustand versetzen kann. Als Reaktion auf den Empfang des NRDY-Pakets tritt die Host-Vorrichtung 102 in einen Wartezustand ein, in dem sie keine weiteren Anforderungspakete sendet, bis ein Paket empfangen wird, um sie aus dem Wartezustand herauszuholen, wie nachfolgend besprochen wird.
  • An Punkt 3 sendet die UFP-Vorrichtung 104 ein synthetisches Anforderungspaket zu der DFP-Vorrichtung 106. Das durch die UFP-Vorrichtung 104 erzeugte synthetische Anforderungspaket umfasst die Sequenznummer aus dem an Punkt 1 durch die Host-Vorrichtung 102 gesendeten Anforderungspaket. Die UFP-Vorrichtung 104 hat jedoch die Anzahl der Pakete geändert, dergestalt, dass sie nicht mit der Anzahl von Paketen in dem an Punkt 1 durch die Host-Vorrichtung 102 gesendeten Anforderungspaket übereinstimmt.
  • Bei einigen Ausführungsformen kann die UFP-Vorrichtung 104 eine größere Anzahl von Paketen anfordern, als durch die Host-Vorrichtung 102 angefordert wurde. Anfordern einer größeren Anzahl von Paketen erlaubt es der UFP-Vorrichtung 104, Daten zu empfangen und zwischenzuspeichern, um auf nachfolgende Anforderungen von der Host-Vorrichtung 102 zu antworten. Bei einigen Ausführungsformen kann die UFP-Vorrichtung 104 eine Anzahl von Paketen bestimmen, die einer maximalen Burst-Größe zugeordnet ist, die durch die Host-Vorrichtung 102 für die USB-Topologie während der anfänglichen durch die Host-Vorrichtung 102 durchgeführten Aufzählung konfiguriert wurde. Einige typische maximale Burst-Größen können für 5-Gbps-Kommunikation 48 oder für 10-Gbps-Kommunikation 96 sein. Bei einer solchen Ausführungsform kann die UFP-Vorrichtung 104 dann eine Anzahl von Paketen so anfordern, dass sie der maximalen Burst-Größe entspricht, unabhängig davon, ob die Host-Vorrichtung 102 in ihrer ersten Anforderung weniger Pakete angefordert hat. Dies kann sicherstellen, dass die UFP-Vorrichtung 104 über alle Daten verfügt, die die Host-Vorrichtung 102 während eines einzelnen Dienstintervalls anfordern würde. Bei anderen Ausführungsformen kann die UFP-Vorrichtung 104 eine beliebige Anzahl von Paketen anfordern, die zwischen der durch die Host-Vorrichtung 102 angeforderten Anzahl von Paketen und der maximalen Burst-Größe liegt. Wie dargestellt hat die UFP-Vorrichtung 104 ein synthetisches Paket erzeugt, um sechs Pakete anzufordern, statt der ursprünglich durch die Host-Vorrichtung 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, aber ohne Beschränkung darauf, eine Konfiguration auf der UFP-Vorrichtung 104, 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. Die DFP-Vorrichtung 106 empfängt das synthetische Anforderungspaket und sendet an Punkt 4 die angeforderten Datenpakete zu der DFP-Vorrichtung 106. Die DFP-Vorrichtung 106 sendet die angeforderten Datenpakete dann zu der UFP-Vorrichtung 104.
  • An Punkt 5 sendet die UFP-Vorrichtung 104 ein weiteres synthetisches Paket, um die Host-Vorrichtung 102 aus dem Wartezustand herauszuholen. Wie dargestellt wird ein ERDY-Paket (Synthetic Ready) gesendet, aber es kann ein beliebiges anderes geeignetes Paket zum Herausholen der Host-Vorrichtung 102 aus dem Wartezustand verwendet werden. Bei der dargestellten Ausführungsform sendet die UFP-Vorrichtung 104 das ERDY-Paket, sobald sie die ursprünglich angeforderte Anzahl von Datenpaketen (bei der dargestellten Ausführungsform drei) empfangen hat. Bei einigen Ausführungsformen kann die UFP-Vorrichtung 104 das ERDY-Paket erst senden, wenn sie alle Datenpakete, die sie an Punkt 3 angefordert hat, empfangen hat. Bei einigen Ausführungsformen kann die UFP-Vorrichtung 104 das ERDY-Paket erst nach der zweiten Dienstintervallgrenze 504 senden, oder erst nachdem eine oder mehrere nachfolgende Dienstintervallgrenzen vergangen sind.
  • Nach dem Empfang des ERDY-Pakets bestimmt die Host-Vorrichtung 102, wann ihr Anforderungspaket neu zu senden ist. Bei einigen Ausführungsformen kann die Host-Vorrichtung 102 bestimmen, ob genug Zeit vor der nächsten Dienstintervallgrenze 504 zum Empfangen der angeforderten Pakete verbleibt. Bei solchen Ausführungsformen kann die Host-Vorrichtung 102 ein nachfolgendes Anforderungspaket sofort nach Bestimmung, dass genug Zeit verbleibt, senden. Bei einigen Ausführungsformen kann die Host-Vorrichtung 102 bis nach der nächsten Dienstintervallgrenze 504 warten, bevor sie das nachfolgende Anforderungspaket sendet, unabhängig davon, wie viel Zeit im Dienstintervall verbleibt.
  • Wie dargestellt hat die Host-Vorrichtung 102 bestimmt, dass sie bis nach der zweiten Dienstintervallgrenze 504 warten sollte, und an Punkt 6 sendet die Host-Vorrichtung 102 dann ein neues Anforderungspaket, das dem an Punkt 1 gesendeten Anforderungspaket ähnlich ist. An Punkt 7 antwortet die UFP-Vorrichtung 104 mit den drei Datenpaketen, die auf der UFP-Vorrichtung 104 zwischengespeichert wurden. An Punkt 8 sendet die Host-Vorrichtung 102 ein weiteres Anforderungspaket, um die nächsten drei Datenpakete anzufordern, und an Punkt 9 antwortet die UFP-Vorrichtung 104 mit den nächsten drei Datenpaketen, die auch auf der UFP-Vorrichtung 104 zwischengespeichert wurden. Es ist zu beachten, dass durch Vorabrufen von mehr Daten als durch die Host-Vorrichtung 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 5A eine hohe Menge an Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 umfasst.
  • 5B ist ein Sequenzdiagramm eines Beispiels für eine zweite Technik zur Kompensation von durch das Erweiterungsmedium in isochronen IN-Transaktionen hinzugefügter Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung. Die in 5B dargestellte Ausführungsform ist der in 5A dargestellten Ausführungsform sehr ähnlich. Zum Beispiel sind eine erste Dienstintervallgrenze 502 und eine zweite Dienstintervallgrenze 504 anwesend, und an Punkt 1 sendet die Host-Vorrichtung 102 ein Anforderungspaket zu der UFP-Vorrichtung 104. Statt mit einem synthetischen Paket, das die Host-Vorrichtung 102 in einen Wartezustand versetzt, so wie es in 5A aufgetreten ist, an Punkt 2 auf die Host-Vorrichtung 102 zu antworten, antwortet in 5B die UFP-Vorrichtung 104 an Punkt 2 der Host-Vorrichtung 102 mit einem synthetischen Datenpaket mit Nutzinformationen der Länge null. Dies bewirkt, dass die Host-Vorrichtung 102 glaubt, dass die USB-Vorrichtung 108 als Reaktion auf das Anforderungspaket keinerlei Daten zu senden hat. In der Zwischenzeit sendet die UFP-Vorrichtung 104 an Punkt 3 ein synthetisches Anforderungspaket, wie oben mit Bezug auf 5A beschrieben, und an Punkt 4 sendet die USB-Vorrichtung 108 Datenpakete als Reaktion auf das synthetische Anforderungspaket, auch wie oben beschrieben.
  • Als Reaktion auf das Datenpaket der Länge null sendet die Host-Vorrichtung 102 ein weiteres Anforderungspaket erst wieder nach dem zweiten Dienstgrenzenintervall 504. An Punkt 5 sendet die Host-Vorrichtung 102 dann ein nachfolgendes Anforderungspaket, und an Punkt 6 antwortet die UFP-Vorrichtung 104 mit den zwischengespeicherten Datenpaketen, wobei auf ähnliche Weise zu den Punkten 6, 7 und den nachfolgenden Punkten von 5A vorangeschritten wird. Bei einigen Ausführungsformen kann die UFP-Vorrichtung 104 ein weiteres Paket der Länge null zu dem an Punkt 5 gesendeten Anforderungspaket senden, wenn zum Beispiel die UFP-Vorrichtung 104 noch nicht genug Daten empfangen hat, um voll auf das Anforderungspaket zu antworten, oder wenn die UFP-Vorrichtung 104 noch nicht alle Daten empfangen hat, die sie in ihrem synthetischen Anforderungspaket von Punkt 3 angefordert hat. In einem solchen Fall kann die Host-Vorrichtung 102 wieder bis zu einem nachfolgenden Dienstintervall warten, bevor sie ein weiteres Anforderungspaket sendet.
  • 6A ist ein Sequenzdiagramm der Kommunikation zwischen einer Host-Vorrichtung 102 und einer USB-Vorrichtung 108 in einem Modus niedriger Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung. Die dargestellte Kommunikation ist eine isochrone OUT-Kommunikation, bei der die Host-Vorrichtung 102 Daten zur USB-Vorrichtung 108 sendet. Wie in 4A zeigt 6A die Verwendung einer UFP-Vorrichtung 104 und einer DFP-Vorrichtung 106 in einem Fall, bei dem 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 einfach USB-Bitübertragungsschichtsignalisierung auf das Erweiterungsmedium umsetzen und überbrücken können, ohne dass Timingfehler eingeführt werden.
  • Wie dargestellt stellt die Host-Vorrichtung 102 eine erste Dienstintervallgrenze 602, eine zweite Dienstintervallgrenze 604 und eine dritte Dienstintervallgrenze 606 her. Dienstintervallgrenzen sind typischerweise innerhalb der USB-Topologie synchronisiert, und bei Empfang der von der UFP-Vorrichtung 104 überbrückten geeigneten Signale erzeugt die DFP-Vorrichtung 106 somit ihre eigene erste überbrückte Dienstintervallgrenze 603, zweite überbrückte Dienstintervallgrenze 605 und dritte überbrückte Dienstintervallgrenze 607, die im Wesentlichen zur selben Zeit wie die durch die Host-Vorrichtung 102 erzeugten Dienstintervallgrenzen auftreten.
  • Wie bereits erwähnt muss die Host-Vorrichtung 102 isochrone Transaktionen dergestalt einteilen, dass sie keine Dienstintervallgrenzen überschreiten. In dem in 6A dargestellten Fall niedriger Latenz ist dies kein Problem. An Punkt 1 beginnt die Host-Vorrichtung 102 mit dem Senden von Datenpaketen, die durch die UFP-Vorrichtung 104 empfangen, über das Erweiterungsmedium zur DFP-Vorrichtung 106 überbrückt und dann zu der USB-Vorrichtung 108 gesendet werden, die die Datenpakete beginnend an Punkt 2 empfängt. Die Host-Vorrichtung 102 sendet weiter Datenpakete für die Transaktion bis einschließlich zu einem letzten Datenpaket an Punkt 3. Das letzte Datenpaket der Transaktion, bei dem das LPF-Feld auf 1, statt auf 0, gesetzt ist, wird über die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 zu der USB-Vorrichtung 108 gesendet und durch die USB-Vorrichtung 108 an Punkt 4 empfangen, vor der zweiten überbrückten Dienstintervallgrenze 605.
  • Im nächsten Dienstintervall kann die Host-Vorrichtung 102 ähnliche Schritte wiederholen. An Punkt 5 startet nach der zweiten Dienstintervallgrenze 604 die Host-Vorrichtung 102 wieder das Senden von Datenpaketen, erneut beginnend mit der Sequenz 0 für jedes neue Dienstintervall. An Punkt 6 empfängt die USB-Vorrichtung 108 das erste Datenpaket. An Punkt 7 sendet die Host-Vorrichtung 102 das letzte Datenpaket für das Dienstintervall, und an Punkt 8 empfängt die USB-Vorrichtung 108 das letzte Datenpaket. Da die Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 niedrig ist, wird das letzte Datenpaket im selben Dienstintervall sowohl gesendet als auch empfangen.
  • 6B ist ein Sequenzdiagramm eines Problems bei der Verwendung der naiven Überbrückungstechnik für isochrone OUT-Transaktionen in Situationen hoher Latenz. Wie bei 6A ist eine erste Dienstintervallgrenze 602, die durch die Host-Vorrichtung 102 hergestellt wird, mit einer ersten überbrückten Dienstintervallgrenze 603 synchronisiert und eine zweite Dienstintervallgrenze 604, die durch die Host-Vorrichtung 102 hergestellt wird, ist mit einer zweiten überbrückten Dienstintervallgrenze 605 synchronisiert. Wie oben beginnt die Host-Vorrichtung 102 an Punkt 1 mit dem Senden von Datenpaketen, die beginnend an Punkt 2 durch die USB-Vorrichtung 108 empfangen werden. Da der Host-Vorrichtung 102 die nicht standardmäßige Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 nicht bewusst ist, sendet die Host-Vorrichtung 102 weiter Datenpakete bis Punkt 3, weil die Host-Vorrichtung 102 annimmt, dass das letzte Datenpaket während desselben Dienstintervalls empfangen wird. Aufgrund der erhöhten Latenz empfängt die USB-Vorrichtung 108 das letzte Datenpaket jedoch erst an Punkt 4. Punkt 4 kommt nach der zweiten überbrückten Dienstintervallgrenze 605 und bewirkt somit, dass gegen die Anforderungen der USB-Spezifikation verstoßen wird und Fehler auftreten.
  • 7A ist ein Sequenzdiagramm eines Beispiels für eine erste Technik zur Kompensation von durch das Erweiterungsmedium in isochronen OUT-Transaktionen hinzugefügter Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung. Wie oben stellt die Host-Vorrichtung 102 eine erste Dienstintervallgrenze 702, eine zweite Dienstintervallgrenze 704 und eine dritte Dienstintervallgrenze 706 her. Im Gegensatz zu 6A sind die Dienstintervallgrenzen zeitlich jedoch nicht zwischen der Host-Vorrichtung 102 und der DFP-Vorrichtung 106 synchronisiert. Stattdessen hat die DFP-Vorrichtung 106 ihre eigene erste synthetische Dienstintervallgrenze 703, zweite synthetische Dienstintervallgrenze 705 und dritte synthetische Dienstintervallgrenze 707 hergestellt. Bei einigen Ausführungsformen kann die DFP-Vorrichtung 106 die synthetischen Dienstintervallgrenzen auf der Basis einer gemessenen Menge an Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 verzögern.
  • Durch Erzeugung der synthetischen Dienstintervallgrenzen kann die DFP-Vorrichtung 106 die Latenz des Erweiterungsmediums kompensieren und dadurch sicherstellen, dass die durch die Host-Vorrichtung 102 während eines einzelnen Dienstintervalls gesendeten Informationen in einem einzelnen Dienstintervall durch die USB-Vorrichtung 108 empfangen werden können. Wie gezeigt beginnt die Host-Vorrichtung 102 an Punkt 1 mit dem Senden von Datenpaketen, und die USB-Vorrichtung 108 beginnt mit dem Empfangen der Datenpakete, nachdem sie von der UFP-Vorrichtung 104 über das Erweiterungsmedium an Punkt 2 zu der DFP-Vorrichtung 106 gesendet wurden. Die Host-Vorrichtung 102 sendet an Punkt 3 das letzte Datenpaket der Transaktion. Die USB-Vorrichtung 108 empfängt an Punkt 4 das letzte Datenpaket von der DFP-Vorrichtung 106. Obwohl Punkt 4 nach der zweiten Dienstintervallgrenze 704 auftritt, tritt er vor der durch die DFP-Vorrichtung 106 erzeugten zweiten synthetischen Dienstintervallgrenze 705 auf und verursacht somit nicht das Auftreten eines Fehlers.
  • Mit einem nachfolgenden Dienstintervall kann auf ähnliche Weise umgegangen werden: An Punkt 5 beginnt die Host-Vorrichtung 102 mit dem Senden von Datenpaketen, die die USB-Vorrichtung 108 an Punkt 6 zu empfangen beginnt. An Punkt 7 wird das letzte Datenpaket durch die Host-Vorrichtung 102 gesendet und an Punkt 8 (nach der dritten Dienstintervallgrenze 706 aber vor der dritten synthetischen Dienstintervallgrenze 707) durch die USB-Vorrichtung 108 empfangen.
  • 7B ist ein Sequenzdiagramm eines Beispiels für eine zweite Technik zur Kompensation von durch das Erweiterungsmedium in isochronen OUT-Transaktionen hinzugefügter Latenz gemäß verschiedenen Aspekten der vorliegenden Offenbarung. Wieder stellt die Host-Vorrichtung 102 eine erste Dienstintervallgrenze 752, eine zweite Dienstintervallgrenze 754 und eine dritte Dienstintervallgrenze 756 her. Im Gegensatz zu 7A werden eine erste synchronisierte Dienstintervallgrenze 753, eine zweite synchronisierte Dienstintervallgrenze 755 und eine dritte synchronisierte Dienstintervallgrenze 757 durch die DFP-Vorrichtung 106 erzeugt, die zeitlich mit den durch die Host-Vorrichtung 102 erzeugten Dienstintervallgrenzen synchronisiert sind. An Punkt 1 beginnt die Host-Vorrichtung 102 mit dem Senden von Datenpaketen. An Punkt 2 beginnt die DFP-Vorrichtung 106 mit dem Empfangen der über die UFP-Vorrichtung 104 und das Erweiterungsmedium durch die Host-Vorrichtung 102 gesendeten Datenpakete. Da die DFP-Vorrichtung 106 nicht weiß, ob die Host-Vorrichtung 102 mehr Daten senden wird, als vor der zweiten synchronisierten Dienstintervallgrenze 755 zu der USB-Vorrichtung 108 gesendet werden könnten, beginnt die DFP-Vorrichtung 106 mit dem Zwischenspeichern der von der UFP-Vorrichtung 104 empfangenen Datenpakete. An Punk 3 sendet die Host-Vorrichtung 102 das letzte Datenpaket der Transaktion und an Punkt 4 wird das letzte Datenpaket durch die DFP-Vorrichtung 106 empfangen und zwischengespeichert. Bei einigen Ausführungsformen kann, sobald das letzte Datenpaket durch die DFP-Vorrichtung 106 empfangen wird, die DFP-Vorrichtung 106 bestimmen, ob alle zwischengespeicherten Datenpakete innerhalb des aktuellen Dienstintervalls zu der USB-Vorrichtung 108 gesendet werden können. Wenn die DFP-Vorrichtung 106 bestimmt, dass die zwischengespeicherten Datenpakete alle während des aktuellen Dienstintervalls gesendet werden können (wie etwa in 7B an Punkt 4 dargestellt), beginnt die DFP-Vorrichtung 106 mit dem Senden der zwischengespeicherten Datenpakete zu der USB-Vorrichtung 108, endend an Punkt 5 mit dem letzten zwischengespeicherten Datenpaket. Da die DFP-Vorrichtung 106 mit dem Beginnen des Sendens der zwischengespeicherten Datenpakete bis nach der zweiten synchronisierten Dienstintervallgrenze 755 gewartet hat, könnten wie gezeigt alle zwischengespeicherten Datenpakete vor der dritten synchronisierten Dienstintervallgrenze 757 gesendet werden. Bei einigen Ausführungsformen kann die DFP-Vorrichtung 106 das Senden der zwischengespeicherten Datenpakete beim Auftreten der zweiten synchronisierten Dienstintervallgrenze 755 beginnen, gleichgültig, ob alle Datenpakete der Transaktion durch die DFP-Vorrichtung 106 empfangen wurden. Eine solche Ausführungsform kann nützlich sein, falls die Latenz garantiert kleiner als die Dienstintervallzeit ist, weil Verzögern des Sendens der zwischengespeicherten Daten um ein einzelnes Dienstintervall ausreichend sein wird, um die Latenz zu kompensieren.
  • An Punkt 6 beginnt die Host-Vorrichtung 102 mit dem Senden von Datenpaketen für eine nachfolgende Transaktion. An Punkt 7 beginnt die DFP-Vorrichtung 106 mit dem Zwischenspeichern der Datenpakete für die nachfolgende Transaktion, selbst während des Sendens der Datenpakete von der vorherigen Transaktion zu der USB-Vorrichtung 108. Danach verfahren die Host-Vorrichtung 102, die UFP-Vorrichtung 104, die DFP-Vorrichtung 106 und die USB-Vorrichtung 108 weiter auf die gleiche Weise, bis die Host-Vorrichtung 102 mit dem Senden von Datenpaketen fertig ist.
  • Bei einigen Ausführungsformen der vorliegenden Offenbarung kann das Ändern von Paketzählwerten verwendet werden, um Massen-Transaktionen sowie die oben beschriebenen isochronen Transaktionen zu verbessern. 8A ist eine Sequenzdiagramm einer beispielhaften Ausführungsform einer verbesserten Massen-OUT-Transaktion gemäß verschiedenen Aspekten der vorliegenden Offenbarung. An Punkt 1 sendet der Host ein erstes Datenpaket zu der UFP-Vorrichtung 104, das dann über das Erweiterungsmedium zu der DFP-Vorrichtung 106 gesendet wird, und dann zur USB-Vorrichtung 108. Um sicherzustellen, dass die Verbindung zwischen der Host-Vorrichtung 102 und der UFP-Vorrichtung 104 ungeachtet der Latenz auf dem Erweiterungsmedium aktiv bleibt, erzeugt die UFP-Vorrichtung 104 an Punkt 2 ein synthetisches ACK-Paket, um das durch die Host-Vorrichtung 102 gesendete Datenpaket zu bestätigen. Die Sequenznummer im ACK-Paket gibt implizit an, dass das Paket durch Anfordern eines nachfolgenden Pakets empfangen wurde, und der Paketzählwert gibt eine Menge an verfügbarem Pufferplatz an. An Punkt 2 weiß die UFP-Vorrichtung 104 nicht, wieviel Pufferplatz entweder auf der DFP-Vorrichtung 106 oder der USB-Vorrichtung 108 verfügbar ist, und somit antwortet sie mit einer Mindestzahl („1“), um die Verbindung aufrechtzuerhalten.
  • An Punkt 3 antwortet die USB-Vorrichtung 108 auf das Datenpaket gemäß der USB-Spezifikation durch Senden eines ACK-Pakets zum Bestätigen des Empfangs durch Anfordern des nächsten Pakets in der Sequenz, und durch Angeben einer Menge an verfügbarem Pufferplatz auf der USB-Vorrichtung 108 („6“). Die DFP-Vorrichtung 106 empfängt das Bestätigungspaket von der USB-Vorrichtung 108. Statt lediglich das empfangene Bestätigungspaket zu senden, bestimmt die DFP-Vorrichtung 106 eine Menge an auf der DFP-Vorrichtung 106 verfügbarem Pufferplatz (anstelle der Angabe in dem Bestätigungspaket) und erzeugt ein synthetisches Bestätigungspaket zum Senden zur UFP-Vorrichtung 104. Dies erlaubt der DFP-Vorrichtung 106, mehr Daten anzufordern, als durch die USB-Vorrichtung 108 benutzbar sind, die dann vorabgerufen und durch die DFP-Vorrichtung 106 zwischengespeichert werden können. Die DFP-Vorrichtung 106 kann dann die zwischengespeicherten Daten der USB-Vorrichtung 108 bereitstellen, ohne weiter die Latenz auf dem Erweiterungsmedium kompensieren zu müssen.
  • An Punkt 4 sendet die Host-Vorrichtung 102 ein zweites Datenpaket zu der UFP-Vorrichtung 104, das zur DFP-Vorrichtung 106 und dann zur USB-Vorrichtung 108 gesendet wird. An Punkt 5 antwortet die UFP-Vorrichtung 104 mit einem synthetischen ACK-Paket, statt den Vorgabe-Mindestpufferplatz zu verwenden, gibt dieses Mal die UFP-Vorrichtung 104 jedoch die Menge an Pufferplatz an, die durch die DFP-Vorrichtung 106 in ihrem synthetischen ACK-Paket gemeldet wurde. An Punkt 6 antwortet die USB-Vorrichtung 108 mit einem den Standard einhaltenden Bestätigungspaket, das dann als Grundlage für ein weiteres synthetisches Bestätigungspaket durch die DFP-Vorrichtung 106 verwendet wird. Die Kommunikation kann dann auf ähnliche Weise fortgesetzt werden, solange die Host-Vorrichtung 102 weiter Datenpakete sendet.
  • 8B ist eine Sequenzdiagramm einer beispielhaften Ausführungsform einer verbesserten Massen-IN-Transaktion gemäß verschiedenen Aspekten der vorliegenden Offenbarung. An Punkt 1 sendet die Host-Vorrichtung 102 ein ACK-IN-Paket, das eine Sequenznummer („0“) und eine Anzahl von anzufordernden Paketen („3“) umfasst. An Punkt 2 antwortet die UFP-Vorrichtung 104 mit einem synthetischen NULL-Paket, einem ansonsten gültigen Datenpaket mit Nutzinformationen der Länge null, um der Host-Vorrichtung 102 anzugeben, dass sie noch keinerlei Daten bereitzustellen hat. An Punkt 3 kann die Host-Vorrichtung 102 das Anforderungspaket neu versuchen, solange jedoch die UFP-Vorrichtung 104 nicht die Datenpakete von der DFP-Vorrichtung 106 empfangen hat, antwortet sie an Punkt 4 mit einem weiteren synthetischen NULL-Paket.
  • An Punkt 5 erzeugt die UFP-Vorrichtung 104 ein synthetisches ACK-IN-Paket auf der Basis des von der Host-Vorrichtung 102 empfangenen ACK-IN-Pakets und einer verfügbaren Menge an Pufferplatz auf der UFP-Vorrichtung 104. Hierdurch kann die UFP-Vorrichtung 104 mehr Daten anfordern als durch die Host-Vorrichtung 102 angefordert wurden und kann die zusätzlichen Daten vorabrufen und zwischenspeichern, so dass die UFP-Vorrichtung 104 effizienter mit nachfolgenden Anforderungen von der Host-Vorrichtung 102 umgehen kann. Wie dargestellt hat das durch die UFP-Vorrichtung 104 erzeugte synthetische ACK-IN-Paket fünf Pakete angefordert, anstelle der drei durch die Host-Vorrichtung 102 angeforderten Pakete, es können aber mehr oder weniger als fünf Pakete in dem synthetischen ACK-IN-Paket angefordert werden.
  • Das synthetische ACK-IN-Paket wird durch die DFP-Vorrichtung 106 empfangen und wird zur USB-Vorrichtung 108 gesendet. An Punkt 6 antwortet die USB-Vorrichtung 108 mit dem ersten angeforderten Datenpaket, und die DFP-Vorrichtung 106 sendet das erste angeforderte Datenpaket zu der UFP-Vorrichtung 104. Bei Empfang des ersten angeforderten Datenpakets wird das erste angeforderte Datenpaket zur späteren Ablieferung an die Host-Vorrichtung 102 durch die UFP-Vorrichtung 104 zwischengespeichert. An Punkt 7 bestätigt die DFP-Vorrichtung 106 das erste Datenpaket mit einem zweiten synthetischen ACK-IN-Paket, das das zweite Datenpaket anfordert. An Punkt 8 antwortet die USB-Vorrichtung 108 mit dem zweiten angeforderten Datenpaket, das wieder durch die DFP-Vorrichtung 106 zur UFP-Vorrichtung 108 gesendet wird, um zwischengespeichert zu werden. Dieser Prozess wird an den Punkten 9 und 10 für das dritte angeforderte Datenpaket, an den Punkten 11 und 12 für das vierte angeforderte Datenpaket und an den Punkten 13 und 14 für das fünfte angeforderte Datenpaket wiederholt.
  • An Punkt 15 sendet die Host-Vorrichtung 102 wieder ein Anforderungspaket zu der UFP-Vorrichtung 104. An Punkt 16 hat die UFP-Vorrichtung 104 genug Pakete empfangen, um die durch die Host-Vorrichtung 102 gesendete Anforderung zu erfüllen, und somit sendet die UFP-Vorrichtung 104 das erste angeforderte Datenpaket aus ihrem Zwischenspeicher zur Host-Vorrichtung 102. An Punkt 17 bestätigt die Host-Vorrichtung 102 das erste angeforderte Datenpaket durch Anfordern des zweiten Datenpakets, und an Punkt 18 sendet die UFP-Vorrichtung 104 das zweite angeforderte Datenpaket aus ihrem Zwischenspeicher zur Host-Vorrichtung 102. Dieser Prozess wird an den Punkten 19 und 20 für das dritte angeforderte Datenpaket wiederholt.
  • An Punkt 21 fordert die Host-Vorrichtung 102 das vierte Datenpaket an. Wenn die UFP-Vorrichtung 104 die von der USB-Vorrichtung 108 anzufordernde Puffergröße nicht vergrößert hätte, so hätte die UFP-Vorrichtung 104 das vierte Datenpaket noch nicht und müsste wie an den Punkten 2 oder 4 mit einem NULL-Paket (oder einer anderen Art von Paket) antworten, bis die Anforderung durch die DFP-Vorrichtung erfüllt werden könnte. Da jedoch die UFP-Vorrichtung 104 zusätzliche Datenpakete im Voraus zwischengespeichert hat, kann die UFP-Vorrichtung 104 an Punkt 22 mit dem zwischengespeicherten vierten Datenpaket antworten, ohne eine Anforderung zu der DFP-Vorrichtung 106 senden zu müssen. Dasselbe gilt an den Punkten 23 und 24 für das fünfte Datenpaket.
  • Bei einigen Ausführungsformen kann die UFP-Vorrichtung 104 weiter Datenpakete in Erwartung zukünftiger Anforderungen durch die Host-Vorrichtung 102 vorabrufen und zwischenspeichern. Obwohl es nicht dargestellt ist, kann die UFP-Vorrichtung 104 zum Beispiel an Punkt 21 (oder an einem bestimmten anderen Punkt nach Punkt 16) ein weiteres synthetisches ACK-IN-Paket zu der DFP-Vorrichtung 106 senden, um zu versuchen, ihren Zwischenspeicher ungeachtet der von der Host-Vorrichtung 102 empfangenen ACK-IN-Pakete voll zu halten.
  • Obwohl beispielhafte Ausführungsformen dargestellt und beschrieben wurden, versteht sich, dass verschiedene Änderungen vorgenommen werden können, ohne vom Wesen und Schutzumfang der Erfindung 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 Nicht-Patentliteratur
    • Intel et al., Universal Serial Bus Specification, Revision 1.0, Januar 1996 [0001]

Claims (32)

  1. Signalaufwärts-gewandte Port-Vorrichtung bzw. UFP-Vorrichtung, umfassend: einen USB-signalaufwärts-gewandten Port; und eine Erweiterungsschnittstelle, die dafür ausgelegt ist, mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden; wobei die UFP-Vorrichtung dafür ausgelegt ist, es einer über eine USB-konforme Verbindung mit dem USB-signalaufwärts-gewandten Ort gekoppelten Host-Vorrichtung zu erlauben, über das Erweiterungsmedium mit einer USB-Vorrichtung zu kommunizieren, die mit einer signalabwärts-gewandten Port-Vorrichtung bzw. DFP-Vorrichtung gekoppelt ist, indem Schritte ausgeführt werden, umfassend: Empfangen eines Anforderungspakets durch die UFP-Vorrichtung von der Host-Vorrichtung über den USB-signalaufwärts-gewandten Port, wobei das Anforderungspaket eine Sequenznummer und einen Pufferzählwert umfasst und wobei die Sequenznummer und der Pufferzählwert eine erste Menge angeforderter Datenpakete identifizieren; Erzeugen eines synthetischen Anforderungspakets durch die UFP-Vorrichtung, wobei das synthetische Anforderungspaket die Sequenznummer des Anforderungspakets und einen Synthetischer-Puffer-Zählwert umfasst und wobei die Sequenznummer und der Synthetischer-Puffer-Zählwert eine zweite Menge angeforderter Datenpakete identifizieren, die die erste Menge angeforderter Datenpakete und zusätzliche Datenpakete umfasst; Senden des synthetischen Anforderungspakets durch die UFP-Vorrichtung zu der DFP-Vorrichtung über das Erweiterungsmedium; Senden eines synthetischen Antwortpakets durch die UFP-Vorrichtung zu der Host-Vorrichtung, um zu bewirken, dass die Host-Vorrichtung auf die erste Menge angeforderter Datenpakete wartet; Empfangen von Datenpaketen von der DFP-Vorrichtung durch die UFP-Vorrichtung; und Speichern der empfangenen Datenpakete durch die UFP-Vorrichtung, solange es durch die Host-Vorrichtung angefordert wird.
  2. UFP-Vorrichtung nach Anspruch 1, wobei das synthetische Antwortpaket ein NRDY-Paket ist und wobei die Schritte ferner Folgendes umfassen: Senden eines ERDY-Pakets durch die UFP-Vorrichtung zur Host-Vorrichtung, um zu bewirken, dass die Host-Vorrichtung ein anderes Anforderungspaket zu der UFP-Vorrichtung sendet, das die erste Menge angeforderter Datenpakete identifiziert.
  3. UFP-Vorrichtung nach Anspruch 2, wobei das ERDY-Paket zu der Host-Vorrichtung gesendet wird, als Reaktion darauf, dass bestimmt wird, dass die gesamte erste Menge angeforderter Datenpakete empfangen wurde.
  4. UFP-Vorrichtung nach Anspruch 2, wobei das ERDY-Paket zu der Host-Vorrichtung gesendet wird, als Reaktion darauf, dass bestimmt wird, dass die gesamte zweite Menge angeforderter Datenpakete empfangen wurde.
  5. UFP-Vorrichtung nach Anspruch 1, wobei das synthetische Antwortpaket ein Paket der Länge null ist und wobei die Schritte ferner Folgendes umfassen: Empfangen eines anderen Anforderungspakets durch die UFP-Vorrichtung, das die erste Menge angeforderter Datenpakete identifiziert, von der Host-Vorrichtung in einem nachfolgenden Dienstintervall; als Reaktion darauf, dass bestimmt wird, dass die erste Menge angeforderter Datenpakete empfangen wurde, Senden der ersten Menge angeforderter Datenpakete durch die UFP-Vorrichtung zu der Host-Vorrichtung; und als Reaktion darauf, dass bestimmt wird, dass die erste Menge angeforderter Datenpakete nicht empfangen wurde, Senden eines anderen Pakets der Länge null durch die UFP-Vorrichtung zur Host-Vorrichtung.
  6. Verfahren zum Ermöglichen von Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium, wobei das Verfahren Folgendes umfasst: Empfangen eines Anforderungspakets durch eine signalaufwärts-gewandte Port-Vorrichtung bzw. UFP-Vorrichtung von der Host-Vorrichtung über einen USB-signalaufwärts-gewandten Port der UFP-Vorrichtung, wobei das Anforderungspaket eine Sequenznummer und einen Pufferzählwert umfasst und wobei die Sequenznummer und der Pufferzählwert eine erste Menge angeforderter Datenpakete identifizieren; Erzeugen eines synthetischen Anforderungspakets durch die UFP-Vorrichtung, wobei das synthetische Anforderungspaket die Sequenznummer des Anforderungs-pakets und einen Synthetischer-Puffer-Zählwert umfasst und wobei die Sequenznummer und der Synthetischer-Puffer-Zählwert eine zweite Menge angeforderter Datenpakete identifizieren, die die erste Menge angeforderter Datenpakete und zusätzliche Datenpakete umfasst; Senden des synthetischen Anforderungspakets durch die UFP-Vorrichtung zu einer signalabwärts-gewandten Port-Vorrichtung bzw. DFP-Vorrichtung über das Erweiterungsmedium; Senden eines synthetischen Antwortpakets durch die UFP-Vorrichtung zu der Host-Vorrichtung, um zu bewirken, dass die Host-Vorrichtung auf die erste Menge angeforderter Datenpakete wartet; Empfangen von Datenpaketen von der DFP-Vorrichtung durch die UFP-Vorrichtung; und Speichern der empfangenen Datenpakete durch die UFP-Vorrichtung, solange es durch die Host-Vorrichtung angefordert wird.
  7. Verfahren nach Anspruch 6, wobei das synthetische Antwortpaket ein NRDY-Paket ist und wobei das Verfahren ferner Folgendes umfasst: Senden eines ERDY-Pakets durch die UFP-Vorrichtung zur Host-Vorrichtung, um zu bewirken, dass die Host-Vorrichtung ein anderes Anforderungspaket zu der UFP-Vorrichtung sendet, das die erste Menge angeforderter Datenpakete identifiziert.
  8. Verfahren nach Anspruch 7, wobei das ERDY-Paket zu der Host-Vorrichtung gesendet wird, als Reaktion darauf, dass bestimmt wird, dass die gesamte erste Menge angeforderter Datenpakete empfangen wurde.
  9. Verfahren nach Anspruch 7, wobei das ERDY-Paket zu der Host-Vorrichtung gesendet wird, als Reaktion darauf, dass bestimmt wird, dass die gesamte zweite Menge angeforderter Datenpakete empfangen wurde.
  10. Verfahren nach Anspruch 6, wobei das synthetische Antwortpaket ein Paket der Länge null ist und wobei die Schritte ferner Folgendes umfassen: Empfangen eines anderen Anforderungspakets durch die UFP-Vorrichtung, das die erste Menge angeforderter Datenpakete identifiziert, von der Host-Vorrichtung in einem nachfolgenden Dienstintervall; als Reaktion darauf, dass bestimmt wird, dass die erste Menge angeforderter Datenpakete empfangen wurde, Senden der ersten Menge angeforderter Datenpakete durch die UFP-Vorrichtung zu der Host-Vorrichtung; und als Reaktion darauf, dass bestimmt wird, dass die erste Menge angeforderter Datenpakete nicht empfangen wurde, Senden eines anderen Pakets der Länge null durch die UFP-Vorrichtung zur Host-Vorrichtung.
  11. Signalabwärts-gewandte Port-Vorrichtung bzw. DFP-Vorrichtung, umfassend: einen USB-signalabwärts-gewandten Port; und eine Erweiterungsschnittstelle, die dafür ausgelegt ist, mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden; wobei die DFP-Vorrichtung dafür ausgelegt ist, es einer über eine USB-konforme Verbindung mit dem USB-signalabwärts-gewandten Port gekoppelten USB-Vorrichtung zu erlauben, über das Erweiterungsmedium mit einer Host-Vorrichtung zu kommunizieren, die mit einer signalaufwärts-gewandten Port-Vorrichtung bzw. UFP-Vorrichtung gekoppelt ist, indem Schritte ausgeführt werden, umfassend: Erzeugen von Dienstintervallgrenzen durch die DFP-Vorrichtung mit einem ersten Timing, das von einem zweiten Timing von durch die Host-Vorrichtung erzeugten Dienstintervallgrenzen versetzt ist; Empfangen einer Menge von Datenpaketen durch die DFP-Vorrichtung von der UFP-Vorrichtung, die durch die Host-Vorrichtung während eines ersten Dienstintervalls erzeugt wurden, das zwischen einer durch die Host-Vorrichtung erzeugten ersten Dienstintervallgrenze und einer durch die Host-Vorrichtung erzeugten zweiten Dienstintervallgrenze definiert ist; und Senden der Menge von Datenpaketen durch die DFP-Vorrichtung zur USB-Vorrichtung während eines zweiten Dienstintervalls, das dem ersten Dienstintervall entspricht, wobei das zweite Dienstintervall zwischen einer durch die DFP-Vorrichtung erzeugten dritten Dienstintervallgrenze und einer durch die DFP-Vorrichtung erzeugten vierten Dienstintervallgrenze definiert ist.
  12. DFP-Vorrichtung nach Anspruch 11, wobei der Versatz auf einer Menge an Latenz zwischen der UFP-Vorrichtung und der DFP-Vorrichtung basiert.
  13. DFP-Vorrichtung nach einem der Ansprüche 11-12, wobei sich das zweite Dienstintervall teilweise mit dem ersten Dienstintervall überlappt.
  14. DFP-Vorrichtung nach einem der Ansprüche 11-13, wobei die Menge von Datenpaketen mit einem ersten Datenpaket beginnt und wobei die DFP-Vorrichtung mit dem Senden der Menge von Datenpaketen zur USB-Vorrichtung beginnt, sobald das erste Datenpaket empfangen ist.
  15. Verfahren zum Ermöglichen von Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium, wobei das Verfahren Folgendes umfasst: Erzeugen von Dienstintervallgrenzen durch eine signalabwärts-gewandte Port-Vorrichtung bzw. DFP-Vorrichtung, die über eine USB-konforme Verbindung mit der USB-Vorrichtung gekoppelt ist, mit einem ersten Timing, das von einem zweiten Timing von Dienstintervallgrenzen versetzt ist, das durch die Host-Vorrichtung erzeugt wird; Empfangen einer Menge von Datenpaketen durch die DFP-Vorrichtung von einer signalaufwärts-gewandten Port-Vorrichtung bzw. UFP-Vorrichtung über das Erweiterungsmedium, die durch die Host-Vorrichtung während eines ersten Dienstintervalls erzeugt wurden, das zwischen einer durch die Host-Vorrichtung erzeugten ersten Dienstintervallgrenze und einer durch die Host-Vorrichtung erzeugten zweiten Dienstintervallgrenze definiert ist; und Senden der Menge von Datenpaketen durch die DFP-Vorrichtung zur USB-Vorrichtung während eines zweiten Dienstintervalls, das dem ersten Dienstintervall entspricht, wobei das zweite Dienstintervall zwischen einer durch die DFP-Vorrichtung erzeugten dritten Dienstintervallgrenze und einer durch die DFP-Vorrichtung erzeugten vierten Dienstintervallgrenze definiert ist.
  16. Verfahren nach Anspruch 15, wobei der Versatz auf einer Menge an Latenz zwischen der UFP-Vorrichtung und der DFP-Vorrichtung basiert.
  17. Verfahren nach einem der Ansprüche 15-16, wobei sich das zweite Dienstintervall teilweise mit dem ersten Dienstintervall überlappt.
  18. Verfahren nach einem der Ansprüche 15-17, wobei die Menge von Datenpaketen mit einem ersten Datenpaket beginnt und wobei die DFP-Vorrichtung mit dem Senden der Menge von Datenpaketen zur USB-Vorrichtung beginnt, sobald das erste Datenpaket empfangen ist.
  19. Signalabwärts-gewandte Port-Vorrichtung bzw. DFP-Vorrichtung, umfassend: einen USB-signalabwärts-gewandten Port; und eine Erweiterungsschnittstelle, die dafür ausgelegt ist, mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden; wobei die DFP-Vorrichtung dafür ausgelegt ist, es einer über eine USB-konforme Verbindung mit dem USB-signalabwärts-gewandten Port gekoppelten USB-Vorrichtung zu erlauben, über das Erweiterungsmedium mit einer Host-Vorrichtung zu kommunizieren, die mit einer signalaufwärts-gewandten Port-Vorrichtung bzw. UFP-Vorrichtung gekoppelt ist, indem Schritte ausgeführt werden, umfassend: Erzeugen von Dienstintervallgrenzen durch die DFP-Vorrichtung, die mit durch die Host-Vorrichtung erzeugten Dienstintervallgrenzen synchronisiert sind; Empfangen einer Menge von Datenpaketen durch die DFP-Vorrichtung von der UFP-Vorrichtung, die durch die Host-Vorrichtung während eines ersten Dienstintervalls erzeugt wurden, das zwischen einer durch die Host-Vorrichtung erzeugten ersten Dienstintervallgrenze und einer durch die Host-Vorrichtung erzeugten zweiten Dienstintervallgrenze definiert ist; Speichern der Menge von Datenpaketen durch die DFP-Vorrichtung; und Senden der Menge von Datenpaketen durch die DFP-Vorrichtung zu der USB-Vorrichtung in einem zweiten Dienstintervall, das nach dem ersten Dienstintervall auftritt, wobei das zweite Dienstintervall zwischen einer durch die DFP-Vorrichtung erzeugten dritten Dienstintervallgrenze und einer durch die DFP-Vorrichtung erzeugten vierten Dienstintervallgrenze definiert ist und wobei die dritte Dienstintervallgrenze nach der ersten Dienstintervallgrenze auftritt.
  20. DFP-Vorrichtung nach Anspruch 19, wobei die dritte Dienstintervallgrenze mit der zweiten Dienstintervallgrenze ausgerichtet ist.
  21. DFP-Vorrichtung nach Anspruch 19, wobei die dritte Dienstintervallgrenze nach der zweiten Dienstintervallgrenze kommt.
  22. DFP-Vorrichtung nach einem der Ansprüche 19-21, wobei die DFP-Vorrichtung mit dem Senden der Menge von Datenpaketen am Start des zweiten Dienstintervalls beginnt.
  23. DFP-Vorrichtung nach einem der Ansprüche 19-21, wobei die DFP-Vorrichtung mit dem Senden der Menge von Datenpaketen zur USB-Vorrichtung in einem Dienstintervall beginnt, das startet, nachdem die DFP-Vorrichtung alle Datenpakete der Menge von Datenpaketen empfangen hat.
  24. Verfahren zum Ermöglichen von Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium, wobei das Verfahren Folgendes umfasst: Erzeugen von Dienstintervallgrenzen durch eine signalabwärts-gewandte Port-Vorrichtung bzw. DFP-Vorrichtung, die über eine USB-konforme Verbindung mit der USB-Vorrichtung gekoppelt ist, die mit durch die Host-Vorrichtung erzeugten Dienstintervallgrenzen synchronisiert sind; Empfangen einer Menge von Datenpaketen durch die DFP-Vorrichtung von einer signalaufwärts-gewandten Port-Vorrichtung bzw. UFP-Vorrichtung über das Erweiterungsmedium, die durch die Host-Vorrichtung während eines ersten Dienstintervalls erzeugt wurden, das zwischen einer durch die Host-Vorrichtung erzeugten ersten Dienstintervallgrenze und einer durch die Host-Vorrichtung erzeugten zweiten Dienstintervallgrenze definiert ist; Speichern der Menge von Datenpaketen durch die DFP-Vorrichtung; und Senden der Menge von Datenpaketen durch die DFP-Vorrichtung zu der USB-Vorrichtung in einem zweiten Dienstintervall, das nach dem ersten Dienstintervall auftritt, wobei das zweite Dienstintervall zwischen einer durch die DFP-Vorrichtung erzeugten dritten Dienstintervallgrenze und einer durch die DFP-Vorrichtung erzeugten vierten Dienstintervallgrenze definiert ist und wobei die dritte Dienstintervallgrenze nach der ersten Dienstintervallgrenze auftritt.
  25. Verfahren nach Anspruch 24, wobei die DFP-Vorrichtung mit dem Senden der Menge von Datenpaketen am Start des zweiten Dienstintervalls beginnt.
  26. Verfahren nach Anspruch 24, wobei das dritte Dienstintervall unmittelbar mit der zweiten Dienstintervallgrenze ausgerichtet ist.
  27. Verfahren nach einem der Ansprüche 24-26, wobei die dritte Dienstintervallgrenze nach der zweiten Dienstintervallgrenze kommt.
  28. Verfahren nach einem der Ansprüche 24-26, wobei die DFP-Vorrichtung mit dem Senden der Menge von Datenpaketen zur USB-Vorrichtung in einem Dienstintervall beginnt, das startet, nachdem die DFP-Vorrichtung alle Datenpakete der Menge von Datenpaketen empfangen hat.
  29. Signalabwärts-gewandte Port-Vorrichtung bzw. DFP-Vorrichtung, umfassend: einen USB-signalabwärts-gewandten Port; und eine Erweiterungsschnittstelle, die dafür ausgelegt ist, mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden; wobei die DFP-Vorrichtung dafür ausgelegt ist, es einer über eine USB-konforme Verbindung mit dem USB-signalabwärts-gewandten Port gekoppelten USB-Vorrichtung zu erlauben, über das Erweiterungsmedium mit einer Host-Vorrichtung zu kommunizieren, die mit einer signalaufwärts-gewandten Port-Vorrichtung bzw. UFP-Vorrichtung gekoppelt ist, indem Schritte ausgeführt werden, umfassend: Empfangen eines Datenpakets durch die DFP-Vorrichtung von der UFP-Vorrichtung, das durch die Host-Vorrichtung erzeugt wurde; Senden des Datenpakets durch die DFP-Vorrichtung zu der USB-Vorrichtung; Empfangen eines Bestätigungspakets von der USB-Vorrichtung durch die DFP-Vorrichtung, wobei das Bestätigungspaket eine erste Puffergröße umfasst, die einen verfügbaren Pufferplatz auf der USB-Vorrichtung angibt; und Senden eines synthetischen Bestätigungspakets durch die DFP-Vorrichtung zur UFP-Vorrichtung, wobei das synthetische Bestätigungspaket eine zweite Puffergröße umfasst, die einen verfügbaren Pufferplatz auf der DFP-Vorrichtung angibt, die von der ersten Puffergröße verschieden ist.
  30. DFP-Vorrichtung nach Anspruch 29, wobei das Bestätigungspaket eine Sequenznummer umfasst und das synthetische Bestätigungspaket auch die Sequenznummer umfasst.
  31. Verfahren zum Ermöglichen von Kommunikation zwischen einer Host-Vorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium, wobei das Verfahren Folgendes umfasst: Empfangen eines Datenpakets durch eine über eine USB-konforme Verbindung mit der USB-Vorrichtung gekoppelte signalabwärts-gewandte Port-Vorrichtung bzw. DFP-Vorrichtung, von einer signalaufwärts-gewandten Port-Vorrichtung bzw. UFP-Vorrichtung über das Erweiterungsmedium, das durch die Host-Vorrichtung erzeugt wurde; Senden des Datenpakets durch die DFP-Vorrichtung zur USB-Vorrichtung; Empfangen eines Bestätigungspakets von der USB-Vorrichtung durch die DFP-Vorrichtung, wobei das Bestätigungspaket eine erste Puffergröße umfasst, die einen verfügbaren Pufferplatz auf der USB-Vorrichtung angibt; und Senden eines synthetischen Bestätigungspakets durch die DFP-Vorrichtung zur UFP-Vorrichtung, wobei das synthetische Bestätigungspaket eine zweite Puffergröße umfasst, die einen verfügbaren Pufferplatz auf der DFP-Vorrichtung angibt, die von der ersten Puffergröße verschieden ist.
  32. Verfahren nach Anspruch 31, wobei das Bestätigungspaket eine Sequenznummer umfasst und das synthetische Bestätigungspaket auch die Sequenznummer umfasst.
DE102018124173.9A 2017-10-03 2018-10-01 Verfahren und Vorrichtungen zum Erweitern von USB-3.0-Konformer Kommunikation über ein Erweiterungsmedium Pending DE102018124173A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/724,030 US10552355B2 (en) 2017-10-03 2017-10-03 Methods and devices for extending USB 3.0-compliant communication over an extension medium
US15/724,030 2017-10-03

Publications (1)

Publication Number Publication Date
DE102018124173A1 true DE102018124173A1 (de) 2019-04-04

Family

ID=65728136

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018124173.9A Pending DE102018124173A1 (de) 2017-10-03 2018-10-01 Verfahren und Vorrichtungen zum Erweitern von USB-3.0-Konformer Kommunikation über ein Erweiterungsmedium

Country Status (3)

Country Link
US (3) US10552355B2 (de)
CN (1) CN109597782B (de)
DE (1) DE102018124173A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552355B2 (en) * 2017-10-03 2020-02-04 Icron Technologies Corporation Methods and devices for extending USB 3.0-compliant communication over an extension medium
US11520728B2 (en) * 2020-07-22 2022-12-06 Icron Technologies Corporation Techniques for configuring endpoints within a USB extension environment
US11709791B2 (en) * 2020-09-21 2023-07-25 Icron Technologies Corporation Techniques for deconflicting USB traffic in an extension environment
US11803498B2 (en) 2020-10-30 2023-10-31 Icron Technologies Corporation Scheduling techniques for isochronous in traffic in a USB extension environment
US11809358B2 (en) * 2020-10-30 2023-11-07 Icron Technologies Corporation USB device removal and ping intervention in an extension environment
US11809354B2 (en) * 2021-03-29 2023-11-07 Icron Technologies Corporation Buffer management for ISO in endpoints in USB extension systems
US20220327088A1 (en) 2021-04-12 2022-10-13 Icron Technologies Corporation Predicting free buffer space in a usb extension environment
JP2023032135A (ja) * 2021-08-26 2023-03-09 キヤノン株式会社 情報処理装置およびその制御方法、画像処理システム、プログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3045985B2 (ja) 1997-08-07 2000-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ
US7028133B1 (en) * 1999-04-30 2006-04-11 Daniel Kelvin Jackson Method and apparatus for extending communications over USB
JP2000332791A (ja) 1999-05-24 2000-11-30 Matsushita Electric Ind Co Ltd 伝送装置、シリアルバス中距離光伝送装置およびシリアルバス中距離光伝送システム
US20020010821A1 (en) 2000-06-09 2002-01-24 Gang Yu USB extension system
US20060015669A1 (en) 2004-06-30 2006-01-19 Engler Michael G System for extending length of a connection to a USB device
US6886062B2 (en) 2001-03-30 2005-04-26 Intel Corporation Method and apparatus for improving time constraints and extending limited length cables in a multiple-speed bus
CA2345596C (en) * 2001-04-27 2007-12-04 Icron Systems Inc. Method and apparatus for extending the range of the universal serial bus protocol
US7120724B2 (en) 2003-04-14 2006-10-10 Hewlett-Packard Development Company, L.P. USB interface extension through split transaction protocol
US20050027889A1 (en) 2003-07-31 2005-02-03 Francisc Sandulescu USB extender
US7493431B2 (en) 2003-08-06 2009-02-17 Icron Technologies Corporation Method and apparatus for extending the range of the universal serial bus protocol
TWI296083B (en) 2003-09-29 2008-04-21 Sharp Kk Communication controller, host-side controller, communication system, usb system, communication equipment, communication method, packet-based communication method, packet-based communication program, and storage medium
US7073010B2 (en) * 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US20050278472A1 (en) 2004-06-14 2005-12-15 Gierke Justin T USB extender
US7644211B2 (en) 2004-12-07 2010-01-05 Cisco Technology, Inc. Method and system for controlling transmission of USB messages over a data network between a USB device and a plurality of host computers
US7418524B2 (en) 2005-12-06 2008-08-26 Avocent Corporation Universal serial bus (USB) extension
US7587536B2 (en) 2006-07-28 2009-09-08 Icron Technologies Corporation Method and apparatus for distributing USB hub functions across a network
TWI321731B (en) * 2006-09-18 2010-03-11 Quanta Comp Inc Device connection system and device connection method
RU2436147C2 (ru) 2006-12-22 2011-12-10 Квэлкомм Инкорпорейтед Усовершенствованный беспроводной usb-протокол и usb-концентратор
US7818486B2 (en) 2008-08-15 2010-10-19 Icron Technologies Corporation Method and apparatus for connecting USB devices to a remote computer
JP5268844B2 (ja) 2009-09-16 2013-08-21 日立コンシューマエレクトロニクス株式会社 ワイヤレス通信システム
US8549197B2 (en) 2010-03-30 2013-10-01 Icron Technologies Corporation Method and system for communicating displayport information
US8788734B2 (en) 2011-09-09 2014-07-22 Icron Technologies Corporation Methods and devices for universal serial bus port event extension
US9047418B2 (en) * 2011-11-22 2015-06-02 Icron Technologies Corporation Methods and devices for extending USB 3.0-compliant communication
US8615611B2 (en) 2012-04-16 2013-12-24 Icron Technologies Corporation Devices and methods for transmitting USB data over DisplayPort transmission media
US9129064B2 (en) * 2012-04-26 2015-09-08 Icron Technologies Corporation USB 3.0 link layer timer adjustment to extend distance
US9396148B2 (en) * 2014-03-24 2016-07-19 Nokia Technologies Oy System method for connecting USB Type-C devices by measuring predetermined test patterns between a plurality of connected accessories
US9799302B2 (en) * 2014-10-29 2017-10-24 Icron Technologies Corporation Systems and methods for transmitting video, network, and USB signals over extension media
US9798689B2 (en) * 2014-11-03 2017-10-24 Icron Technologies Corporation Systems and methods for enabling communication between USB type-C connections and legacy connections over an extension medium
US10037297B2 (en) * 2015-12-30 2018-07-31 Aten International Co., Ltd. Method of extending range of USB transmission for isochronous transfer
CN107015930B (zh) * 2017-03-31 2023-08-18 深圳市亿兆互联技术有限公司 一种基于Lora技术的USB扩展装置及方法
US10552355B2 (en) * 2017-10-03 2020-02-04 Icron Technologies Corporation Methods and devices for extending USB 3.0-compliant communication over an extension medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Intel et al., Universal Serial Bus Specification, Revision 1.0, Januar 1996

Also Published As

Publication number Publication date
CN109597782B (zh) 2024-03-26
US20190102333A1 (en) 2019-04-04
US20210240650A1 (en) 2021-08-05
US10552355B2 (en) 2020-02-04
CN109597782A (zh) 2019-04-09
US11403246B2 (en) 2022-08-02
US10990549B2 (en) 2021-04-27
US20200167304A1 (en) 2020-05-28

Similar Documents

Publication Publication Date Title
DE102018124173A1 (de) Verfahren und Vorrichtungen zum Erweitern von USB-3.0-Konformer Kommunikation über ein Erweiterungsmedium
DE69636029T2 (de) Verfahren und Vorrichtung zur Datenübertragung
DE19900325B4 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung
DE19900290B4 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE19900369B4 (de) Vorrichtung zum Anschluß an einen Universal Serial Bus (USB) und Verfahren zum Betreiben eines Steuerendpunktes an einem Universal Serial Bus (USB)
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE112012001753B4 (de) 3 -Anmeldesequenz für eine Fibre-Channel-Weiterleiterstruktur
DE19900290A9 (de) Verfahren zum Betreiben einer universellen seriellen Buseinrichtung und universelle serielle Buseinrichtung
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE102007012054B4 (de) Mehrmasterverkettungszweidrahtseriellbus
DE102011008793A1 (de) Nachrichtenweitergabe-Rahmenwerk für Audio-/Video-Streaming in einer Topologie von Geräten
DE112012006336T5 (de) Netzwerksystem, konfiguriert um die Vorwärtsfehlerkorrektur während einer verlinkten Schulungssequenzzu lösen
DE102013020277A1 (de) Bit-timing-symmetrisierung
DE102005005342A1 (de) Busanordnung, Master- und Slave-Einheit sowie Datenlese- und Datenübertragungsverfahren
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE112012001441B4 (de) Umsetzen von HTTP-Anforderungen in Vertrauenswürdigkeitsnachrichten zur Sicherheitsverarbeitung
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE112015006192T5 (de) Kommunikationsvorrichtung, Kommunikationsverfahren und Programm
DE102015112634A1 (de) Unterstützen von RMA-API über aktive Message
DE102004046822A1 (de) Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung
DE102015108005A1 (de) Mechanismen und Geräte für neu konfigurierbare Interprozessorkommunikationen mit eingebettetem Controller
DE102018121086A1 (de) Vorrichtungen, systeme und verfahren zum augenblicklichen videoschalten in einer erweiterungsumgebung
DE102022108581A1 (de) Vorhersagen von freiem Pufferplatz in einer USB-Erweiterungsumgebung

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: PATENTANWAELTE CANZLER & BERGMEIER PARTNERSCHA, DE