DE102022108581A1 - Vorhersagen von freiem Pufferplatz in einer USB-Erweiterungsumgebung - Google Patents

Vorhersagen von freiem Pufferplatz in einer USB-Erweiterungsumgebung Download PDF

Info

Publication number
DE102022108581A1
DE102022108581A1 DE102022108581.3A DE102022108581A DE102022108581A1 DE 102022108581 A1 DE102022108581 A1 DE 102022108581A1 DE 102022108581 A DE102022108581 A DE 102022108581A DE 102022108581 A1 DE102022108581 A1 DE 102022108581A1
Authority
DE
Germany
Prior art keywords
dfp
usb
data packets
ufp
data
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
DE102022108581.3A
Other languages
English (en)
Inventor
Mohsen Nahvi
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 DE102022108581A1 publication Critical patent/DE102022108581A1/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)

Abstract

Es wird ein Verfahren zum Verwalten einer Kommunikation zwischen einer Hostvorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium bereitgestellt. Eine Downstream-gerichteter-Port-Vorrichtung (DFP-Vorrichtung) empfängt ein Datenanforderungspaket, das einen ersten Pufferzählwert beinhaltet, von einer Upstream-gerichteter-Port-Vorrichtung (UFP-Vorrichtung) über das Nicht-USB-Erweiterungsmedium. Die DFP-Vorrichtung bestimmt eine Anzahl von der USB-Vorrichtung anzufordernder Datenpakete basierend auf einem durch die DFP-Vorrichtung verfolgten Freier-Puffer-Zählwert, der eine auf der UFP-Vorrichtung verfügbare Menge eines Pufferplatzes repräsentiert. Die DFP-Vorrichtung erzeugt ein synthetisches Datenanforderungspaket, das einen zweiten Pufferzählwert basierend auf der bestimmten Anzahl von der USB-Vorrichtung anzufordernder Datenpakete beinhaltet. Die DFP-Vorrichtung empfängt einen Satz von Datenpaketen von der USB-Vorrichtung als Reaktion auf das synthetische Datenanforderungspaket und überträgt den Satz von Datenpaketen an die UFP-Vorrichtung.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht den Vorteil der am 12. April 2021 eingereichten vorläufigen Anmeldung Nr. 63/173832 , deren gesamte Offenbarung hiermit durch Bezugnahme für alle Zwecke hierin aufgenommen wird.
  • HINTERGRUND
  • USB ist eine periphere Schnittstelle zum Anschließen vieler verschiedener Rechenvorrichtungen, wie etwa Personal Computer, digitale Telefonleitungen, Monitore, Modems, Mäuse, Drucker, Scanner, Spiele-Controller, Tastaturen, Speichervorrichtungen und/oder dergleichen. Die Spezifikationen, die USB definieren (z. B. Intel et al., Universal Serial Bus Spezifikation, Überarbeitung 2.0, April 2000; aktualisiert als Überarbeitung 3.0 im November 2008; veröffentlicht als Universal Serial Bus 3.1 Spezifikation Überarbeitung 1.0 im Juli 2013; veröffentlicht als Universal Serial Bus 3.2 Spezifikation Überarbeitung 1.0 am 22. September 2017, und nachfolgende Aktualisierungen und Modifikationen, die rückwirkend damit kompatibel sind, darunter unter anderem die Universal Serial Bus 4.0 Spezifikation - nachstehend zusammen als „USB-Spezifikationen“ bezeichnet, wobei dieser Begriff zukünftige Modifikationen und Überarbeitungen beinhalten kann), sind nicht-proprietär und werden durch eine als USB Forum bekannte Open-Industry-Organisation verwaltet. Die USB-Spezifikationen legen Grundkriterien fest, die zur Erfüllung der USB-Standards erfüllt werden müssen. Durchschnittsfachleute erkennen viele Begriffe hierin aus den USB-Spezifikationen. Sofern nicht anders angegeben, werden diese Begriffe vorliegend ähnlich ihrer Verwendung in den USB-Spezifikationen verwendet.
  • Unter Überarbeitung 3.2 der USB-Spezifikationen werden SuperSpeed-Verbindungen bereitgestellt, die eine Signalrate von 5 Gbps (Gen 1) oder 10 Gbps (Gen 2) verwenden. Obgleich die Spezifikation keine bestimmte maximale Kabellänge vorgibt, erfordern die Timing-Vorgaben und Signalisierungstechniken in der Praxis, dass ein gewöhnliches Kupferkabel, das für eine SuperSpeed-Verbindung zwischen einem Host und einer Vorrichtung verwendet wird, höchstens 3 Meter lang ist, um die SuperSpeed-Verbindung ordnungsgemäß zu unterstützen. Daher sind neue Techniken notwendig, um gegebenenfalls eine Erweiterung einer SuperSpeed-USB-Vorrichtung auf eine größere Entfernung von dem Host, mit dem sie gekoppelt ist, zu gestatten, damit SuperSpeed-USB-Pakete zwischen dem Host und der USB-Vorrichtung propagiert werden können.
  • KURZDARSTELLUNG
  • Die vorliegende Erfindung betrifft ein Verfahren zum Verwalten einer Kommunikation zwischen einer Hostvorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium nach Anspruch 1, eine Downstream-gerichteter-Port-Vorrichtung (DFP-Vorrichtung) nach Anspruch 9 und ein nichtflüchtiges computerlesbares Medium mit darauf gespeicherten computerausführbaren Anweisungen nach Anspruch 10. Vorteilhafte Ausführungsformen der Erfindung sind durch die Merkmale der abhängigen Ansprüche gekennzeichnet. Bei einigen Ausführungsformen wird ein Verfahren zum Verwalten einer Kommunikation zwischen einer Hostvorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium bereitgestellt. Eine Downstream-gerichteter-Port- Vorrichtung (DFP-Vorrichtung) empfängt ein Datenanforderungspaket von einer Upstream-gerichteter-Port-Vorrichtung (UFP-Vorrichtung) über das Nicht-USB-Erweiterungsmedium. Die DFP-Vorrichtung bestimmt eine Anzahl von der USB-Vorrichtung anzufordernder Datenpakete. Die Anzahl anzufordernder Datenpakete basiert auf einem Freier-Puffer-Zählwert, der durch die DFP-Vorrichtung verfolgt wird, um eine auf der UFP-Vorrichtung verfügbare Menge eines Pufferplatzes zu repräsentieren. Die DFP-Vorrichtung erzeugt ein synthetisches Datenanforderungspaket. Das synthetische Datenanforderungspaket beinhaltet einen Pufferzählwert basierend auf der bestimmten Anzahl von der USB-Vorrichtung anzufordernder Datenpakete. Die DFP-Vorrichtung empfängt einen Satz von Datenpaketen von der USB-Vorrichtung als Reaktion auf das synthetische Datenanforderungspaket. Die DFP-Vorrichtung überträgt den Satz von Datenpaketen über das Nicht-USB-Erweiterungsmedium an die UFP-Vorrichtung.
  • Bei einigen Ausführungsformen wird eine Downstream-gerichteter-Port-Vorrichtung (DFP-Vorrichtung) bereitgestellt. Die DFP-Vorrichtung beinhaltet eine USB-Bitübertragungsschichtschnittstelle, die dazu ausgelegt ist, kommunikativ mit einer USB-Vorrichtung gekoppelt zu werden, eine Fernschnittstelle, die dazu ausgelegt ist, kommunikativ mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden, und einen Speicher, der einen Freier-Puffer-Zählwert speichert. Die Downstream-gerichteter-Port- Vorrichtung beinhaltet auch eine Logik, die als Reaktion auf eine Ausführung durch die DFP-Vorrichtung bewirkt, dass die DFP-Vorrichtung Handlungen durchführt, die Folgendes umfassen: Empfangen eines Datenanforderungspakets von einer Upstream-gerichteter-Port-Vorrichtung (UFP-Vorrichtung) über die Fernschnittstelle; Bestimmen einer Anzahl von der USB-Vorrichtung anzufordernder Datenpakete, wobei die Anzahl anzufordernder Datenpakete auf dem Freier-Puffer-Zählwert basiert, und wobei der Freier-Puffer-Zählwert durch die DFP-Vorrichtung verfolgt wird, um eine auf der UFP-Vorrichtung verfügbare Menge eines Pufferplatzes zu repräsentieren; Erzeugen eines synthetischen Datenanforderungspakets, wobei das synthetische Datenanforderungspaket einen Pufferzählwert beinhaltet und wobei der Pufferzählwert auf der bestimmten Anzahl von der USB-Vorrichtung anzufordernder Datenpakete basiert; Empfangen eines Satzes von Datenpaketen von der USB-Vorrichtung über die USB-Bitübertragungsschichtschnittstelle als Reaktion auf das synthetische Datenanforderungspaket; und Übertragen des Satzes von Datenpaketen über die Fernschnittstelle an die UFP-Vorrichtung.
  • Bei einigen Ausführungsformen wird ein nichtflüchtiges computerlesbares Medium mit darauf gespeicherten computerausführbaren Anweisungen bereitgestellt. Die Anweisungen bewirken, als Reaktion auf eine Ausführung durch eine Downstream-gerichteter-Port-Vorrichtung (DFP-Vorrichtung), dass die DFP-Vorrichtung Handlungen zum Verwalten einer Kommunikation zwischen einer Hostvorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium durchführt. Die Handlungen beinhalten Empfangen, durch die DFP-Vorrichtung, eines Datenanforderungspakets von einer Upstream-gerichteter-Port-Vorrichtung (UFP-Vorrichtung) über die Fernschnittstelle; Bestimmen, durch die DFP-Vorrichtung, einer Anzahl von der USB-Vorrichtung anzufordernder Datenpakete, wobei die Anzahl anzufordernder Datenpakete auf einem Freier-Puffer-Zählwert basiert, und wobei der Freier-Puffer-Zählwert durch die DFP-Vorrichtung verfolgt wird, um eine auf der UFP-Vorrichtung verfügbare Menge eines Pufferplatzes zu repräsentieren; Erzeugen, durch die DFP-Vorrichtung, eines synthetischen Datenanforderungspakets, wobei das synthetische Datenanforderungspaket einen Pufferzählwert beinhaltet und wobei der Pufferzählwert auf der bestimmten Anzahl von der USB-Vorrichtung anzufordernder Datenpakete basiert; Empfangen, durch die DFP-Vorrichtung, eines Satzes von Datenpaketen von der USB-Vorrichtung als Reaktion auf das synthetische Datenanforderungspaket; und Übertragen, durch die DFP-Vorrichtung, des Satzes von Datenpaketen über die das Nicht-USB-Erweiterungsmedium an die UFP-Vorrichtung.
  • Figurenliste
  • Zur einfachen Identifizierung der Erörterung eines bestimmten Elements oder einer bestimmten Handlung verweisen die höchste signifikante bzw. die höchsten signifikanten Ziffern in einer Bezugszahl auf die Nummer der Figur, in der dieses Element zuerst vorgestellt wird.
    • 1 ist ein Blockdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel eines Systems zum Erweitern einer USB-Kommunikation gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
    • 2 ist ein Blockdiagramm, das weitere Einzelheiten der in 1 veranschaulichten Upstream-USB-Erweiterungsvorrichtung und Downstream-USB-Erweiterungsvorrichtung veranschaulicht.
    • 3 ist ein Blockdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel einer Portvorrichtung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
    • 4 ist ein Sequenzdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel einer Technik zum Kompensieren einer Latenz in einer Kommunikation zwischen einer Hostvorrichtung und einer USB-Vorrichtung über ein Erweiterungsmedium gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
    • 5 ist ein Flussdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel eines Verfahrens zum Übertragen von Daten in einer USB-Erweiterungsumgebung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
    • 6 ist ein Flussdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel eines Verfahrens zum Übertragen von Daten in einer USB-Erweiterungsumgebung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.
    • 7A - 7C sind Sequenzdiagramme, die ein nicht-einschränkendes Ausführungsbeispiel der Ausführung des in 6 veranschaulichten Verfahrens gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulichen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel eines Systems 100 zum Erweitern einer USB-Kommunikation gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht.. Das System 100 beinhaltet eine Hostvorrichtung 102 und eine USB-Vorrichtung 108. Üblicherweise wären die Hostvorrichtung 102 und die USB-Vorrichtung 108 direkt über ein USB-Kabel verbunden und würden über ein Protokoll, das eine USB-Spezifikation erfüllt, wie etwa USB 1.0, USB 1.1, USB 2.0, USB 3.0 oder USB 3.1, direkt miteinander kommunizieren. Wie oben erörtert wäre eine derartige Verbindung aufgrund der Timing-Anforderungen der USB-Spezifikation auf eine kurze Entfernung zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108 begrenzt.
  • Die Hostvorrichtung 102 kann eine beliebige Art von Rechenvorrichtung sein, die eine USB-Hoststeuerung enthält. Zu einigen Beispielen geeigneter Hostvorrichtungen 102 können unter anderem ein Desktop-Computer, ein Laptop-Computer, eine Tablet-Rechenvorrichtung, ein Server-Computer, eine Set-Top-Box, eine Audio-Haupteinheit für ein Kraftfahrzeug, ein eingebetteter Host und/oder dergleichen gehören. Gleichermaßen kann die USB-Vorrichtung 108 eine beliebige Art von Vorrichtung sein, die in der Lage ist, über ein USB-Protokoll mit einer USB-Hoststeuerung zu kommunizieren. Bei dem in 1 veranschaulichten Beispiel handelt es sich um eine Webcam, jedoch können zu anderen Beispielen geeigneter USB-Vorrichtungen 108 unter anderem eine Human-Interface-Vorrichtung wie eine Tastatur oder eine Maus, eine Massenspeichervorrichtung wie ein Flash Drive oder eine externe Festplatte, eine USB-fähige medizinische Vorrichtung, ein Drucker, ein USB-Hub, eine Drahtlossteuerung und/oder dergleichen gehören.
  • In dem vorliegenden System 100 ist die Hostvorrichtung 102 über ein USB-Protokoll mit einer Upstream-USB-Erweiterungsvorrichtung 104 (auch als Upstream-gerichteter-Port-Vorrichtung oder UFP-Vorrichtung bezeichnet) verbunden, und die USB-Vorrichtung 108 ist über ein USB-Protokoll mit einer Downstream-USB-Erweiterungsvorrichtung 106 (auch als Downstream-gerichteter-Port-Vorrichtung oder DFP-Vorrichtung bezeichnet) verbunden. Die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 sind über ein Erweiterungsmedium 110, wie etwa ein Netzwerk, das die Entfernung zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108 über die durch die USB-Spezifikation unterstützte hinaus vergrößern kann, kommunikativ gekoppelt. Das Erweiterungsmedium 110 und die Kommunikation auf diesem können jede geeignete Vernetzungstechnologie, wie etwa Ethernet, Bluetooth, Wi-Fi, WiMax, das Internet, Glasfaser-Point-to-Point-Übertragung und/oder dergleichen, und jedes geeignete Kommunikationsmedium, wie etwa über physische Kabel, über Glasfaserkabel, über das Drahtlosspektrum und/oder dergleichen, beinhalten.
  • Bei einigen Ausführungsformen kann es vorkommen, dass sich die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 näher zueinander befinden als die kurze USB-Anforderungsentfernung und/oder direkt durch ein Kabel anstatt über ein Netzwerk verbunden sind, jedoch weiterhin fähig sind, eine erhöhte Latenz zwischen der Hostvorrichtung 102 und der USB-Vorrichtung 108, die durch die Verwendung eines die USB-Spezifikationen nicht erfüllenden Erweiterungsmediums eingeführt wird, zu beheben.
  • Ein Merkmal, das durch die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 bereitgestellt wird, besteht darin, dass sie das Vorhandensein des Erweiterungsmediums 110 vor der Hostvorrichtung 102 und der USB-Vorrichtung 108 verbergen. Anders ausgedrückt wickeln die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 eine Kommunikation über das Erweiterungsmedium 110 ab und kompensieren jegliche dadurch eingeführte zusätzliche Latenz, während sich die Hostvorrichtung 102 und die USB-Vorrichtung 108 so verhalten, als wären sie direkt über eine USB-Spezifikation-konforme Verbindung verbunden. Dementsprechend können die Hostvorrichtung 102 und die USB-Vorrichtung 108 über die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 ohne nicht-standardmäßige Software- oder Hardware-Rekonfiguration auf der Hostvorrichtung 102 oder der USB-Vorrichtung 108 kommunizieren.
  • 2 ist ein Blockdiagramm, das weitere Einzelheiten der in 1 veranschaulichten UFP-Vorrichtung 104 und DFP-Vorrichtung 106 veranschaulicht. Die UFP-Vorrichtung 104 beinhaltet einen Upstream-gerichteten Port 202 und die Downstream-USB-Erweiterungsvorrichtung 106 beinhaltet einen Downstream-gerichteten Port 204. Gemäß vorliegender Verwendung können die Begriffe „Upstream-gerichteter Port“ und die entsprechende Abkürzung „UFP“, wie auch die Begriffe „Downstreamgerichteter Port“ und die entsprechende Abkürzung „DFP“, austauschbar verwendet werden. Gleichermaßen kann, da die Upstream-USB-Erweiterungsvorrichtung 104 einen Upstream-gerichteten Port 202 beinhaltet, die Upstream-USB-Erweiterungsvorrichtung 104 auch als „UFP-Vorrichtung“ bezeichnet werden, und da die Downstream-USB-Erweiterungsvorrichtung 106 einen Downstream-gerichteten Port 204 beinhaltet, kann die Downstream-USB-Erweiterungsvorrichtung 106 auch als „DFP-Vorrichtung“ bezeichnet werden.
  • Die UFP-Vorrichtung 104 ist zumindest dazu ausgelegt, über ein USB-Standard-konformes Protokoll unter Verwendung des Upstream-gerichteten Ports 202 mit der Hostvorrichtung 102 zu kommunizieren und über das Erweiterungsmedium 110 Nachrichten und USB-Bus-Verkehr mit der DFP-Vorrichtung 106 auszutauschen. Die DFP-Vorrichtung 106 ist zumindest dazu ausgelegt, über ein USB-Standard-konformes Protokoll unter Verwendung des Downstream-gerichteten Ports 204 mit der USB-Vorrichtung 108 zu kommunizieren und über das Erweiterungsmedium 110 Nachrichten und USB-Bus-Verkehr mit der UFP-Vorrichtung 104 auszutauschen. Die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 können weitere Komponenten enthalten, wie etwa eine Stromversorgung, eine Status-LED, einen Lautsprecher, eine Eingabevorrichtung zum Umschalten zwischen UFP-Funktionalität und DFP-Funktionalität und/oder dergleichen. Da derartige Komponenten und deren Funktionen Durchschnittsfachleuten bekannt sind, wurden sie hier nicht weiter erörtert.
  • Wie in 2 veranschaulicht ist der Upstream-gerichtete Port 202 der UFP-Vorrichtung 104 mit einem Downstream-gerichteten Port der Hostvorrichtung 102 verbunden, und der Downstream-gerichtete Port 204 der DFP-Vorrichtung 106 ist mit einem Upstream-gerichteten Port der USB-Vorrichtung 108 verbunden. Bei anderen Ausführungsformen kann der Upstream-gerichtete Port 202 der UFP-Vorrichtung 104 mit einem anderen Downstream-gerichteten Port als einem durch eine Hostvorrichtung 102 bereitgestellten verbunden sein, wie etwa einem Downstream-gerichteten Port eines Hubs und/oder dergleichen. Gleichermaßen kann der Downstream-gerichtete Port 204 der DFP-Vorrichtung 106 bei anderen Ausführungsformen mit einem anderen Upstream-gerichteten Port als einem durch eine USB-Vorrichtung 108 bereitgestellten verbunden sein, wie etwa einem Upstream-gerichteten Port eines Hubs und/oder dergleichen. Die nachstehende Erörterung wird hauptsächlich hinsichtlich der in 2 veranschaulichten einfachen Topologie vorgenommen, wobei Durchschnittsfachleute jedoch erkennen, dass bei einigen Ausführungsformen ähnliche Techniken in anderen Topologien verwendet werden können, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen.
  • 3 ist ein Blockdiagramm, das ein Ausführungsbeispiel einer Portvorrichtung 300 gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. Bei einigen Ausführungsformen kann die Portvorrichtung 300 dahingehend konstruiert sein, Dienste eines Upstream-gerichteten Ports 202 bereitzustellen, und bei einigen Ausführungsformen kann die Portvorrichtung 300 dahingehend konstruiert sein, Dienste eines Downstream-gerichteten Ports 204 bereitzustellen. Bei einigen Ausführungsformen kann die Portvorrichtung 300 Anweisungen zum Bereitstellen von Diensten sowohl eines Upstream-gerichteten Ports 202 als auch eines Downstream-gerichteten Ports 204 beinhalten, wobei die bestimmten Portdienste, die bereitgestellt werden, durch eine Benutzerkonfiguration, wie etwa eine Brücke, eine Firmwareeinstellung und/oder dergleichen, bestimmt werden.
  • Wie veranschaulicht beinhaltet die Portvorrichtung 300 eine Protokoll-Engine 302, eine USB-Bitübertragungsschichtschnittstelle 304 und eine Fernschnittstelle 306. Bei einigen Ausführungsformen kann die Protokoll-Engine 302 dazu ausgelegt sein, die nachstehend hinsichtlich der UFP-Vorrichtung 104 und/oder der DFP-Vorrichtung 106 erörterte Logik bereitzustellen und/oder auszuführen. Die Protokoll-Engine 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 Hostvorrichtung 102 zu kommunizieren. Gleichermaßen 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 PLD, einem ASIC, einem FPGA und/oder dergleichen implementiert werden. Bei anderen Ausführungsformen kann die Protokoll-Engine 302 in einer Rechenvorrichtung, die mindestens einen Prozessor und einen Speicher aufweist, der computerausführbare Anweisungen enthält, die bei Ausführung durch den mindestens einen Prozessor bewirken, dass die Protokoll-Engine 302 die nachstehend erörterten Aktionen ausführt; in einer dedizierten digitalen Hardwarevorrichtung, die zum Beispiel als Automat implementiert wird, ausgelegt zum Durchführen der beschriebenen Aktionen; in einem anwendungsspezifischen Prozessor; und/oder in einer beliebigen anderen geeigneten Rechenvorrichtung implementiert werden. Bei einigen Ausführungsformen kann die Protokoll-Engine 302 (oder eine andere Komponente der Portvorrichtung 300) einen computerlesbaren Speicher beinhalten, der verwendet werden kann, um Datenpakete zu cachen, wie nachstehend weiter erörtert wird.
  • Bei einigen Ausführungsformen wird Logik von einer USB-Erweiterungsvorrichtung zugeschriebenen Aktionen durch eine Protokoll-Engine 302 ausgeführt, die dann eine USB-Bitübertragungsschichtschnittstelle 304 und/oder eine Fernschnittstelle 306 anweist, die mit der Logik assoziierten geeigneten Kommunikationsschritte durchzuführen. Im Verlauf der nachstehenden Erörterung können solche Aktionen der einfacheren Erörterung halber einfach als durch die UFP-Vorrichtung 104 oder die DFP-Vorrichtung 106 so durchgeführt beschrieben werden, als handele es sich um eine einzige Vorrichtung. Für Durchschnittsfachleute ist erkennbar, dass direkt der UFP-Vorrichtung 104 oder der DFP-Vorrichtung 106 zugeschriebene Aktionen tatsächlich durch eine Protokoll-Engine 302, eine USB-Bitübertragungsschichtschnittstelle 304, eine Fernschnittstelle 306 und/oder eine gewisse andere Komponente der USB-Erweiterungsvorrichtung durchgeführt werden können.
  • Ein gängiges Problem bei der Unterstützung einer Kommunikation über ein Erweiterungsmedium besteht im Umgang mit einer Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106. Beispielsweise bedeutet bei isochronen IN-Transaktionen die Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106, dass die Hostvorrichtung 102 aufgrund der Latenz nicht alle ihrer erwarteten DATA-Pakete vor dem Ende eines Dienstintervalls gemäß Anforderung durch die USB-Spezifikation empfangen kann. Eine Strategie zum Beheben dieses Latenzproblems besteht darin, dass die UFP-Vorrichtung 104 bewirkt, dass die Hostvorrichtung 102 wartet, während die UFP-Vorrichtung 104 DATA-Pakete, die durch die DFP-Vorrichtung 106 von der USB-Vorrichtung 108 abgerufen werden, cacht, und die Datenpakete dann als Reaktion auf eine Anforderung in einem nachfolgenden Dienstintervall an die Hostvorrichtung 102 liefert.
  • 4 ist ein Sequenzdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel einer Technik zum Kompensieren einer Latenz in einer Kommunikation zwischen einer Hostvorrichtung 102 und einer USB-Vorrichtung 108 über ein Erweiterungsmedium 110 gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. Diese Technik gleicht Techniken, die im eigenen US-Patent Nr. 10,552,355 , dessen gesamte Offenbarung hiermit durch Bezugnahme für alle Zwecke aufgenommen wird, beschrieben werden.
  • In dem in 4 veranschaulichten Sequenzdiagramm (und in den anderen hierin enthaltenen Sequenzdiagrammen) verläuft die Zeit vom oberen Ende des Diagramms zum unteren Ende des Diagramms. Pfeile in durchgezogenen Linien geben die Übertragung von Paketen an, die durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 gemäß den USB-Spezifikationen (und/oder gekapselten oder übersetzten Versionen davon) erzeugt werden. Pfeile in Strichlinien geben die Übertragung synthetischer Pakete an, die durch eine UFP-Vorrichtung 104 oder eine DFP-Vorrichtung 106 entweder basierend auf einem durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 erzeugten Paket oder als Reaktion auf ein durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 erzeugtes Paket erzeugt werden. Die synthetischen Pakete können hinsichtlich ihres Inhalts identisch zu den durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 erzeugten Paketen jedoch zeitlich verschoben sein, oder sie können einen gegenüber dem Inhalt der durch eine Hostvorrichtung 102 oder eine USB-Vorrichtung 108 erzeugten Pakete veränderten Inhalt aufweisen. Horizontale Pfeile zwischen einzelnen Elementen geben Übertragungen an, die Timing-Anforderungen der USB-Spezifikationen erfüllen, während abgewinkelte Pfeile Übertragungen über das Erweiterungsmedium 110 angeben, die durch eine erhöhte Latenz beeinflusst sein können.
  • Bei einer SuperSpeed-Kommunikation plant die Hostvorrichtung 102 Dienstintervalle von zum Beispiel 125 µs. In 4 wird eine erste Dienstintervallgrenze 402 durch eine erste horizontale Linie angegeben, und eine zweite Dienstintervallgrenze 404 wird durch eine zweite horizontale Linie angegeben. Die erste horizontale Linie und die zweite horizontale Linie können die Erzeugung und Übertragung eines isochronen Zeitstempelpakets (ITP - Isochronous Timestamp Packet) angeben, obgleich mehrere ITPs zwischen der ersten Dienstintervallgrenze 402 und der zweiten Dienstintervallgrenze 404 erzeugt und übertragen werden können. Die erste Dienstintervallgrenze 402 und die zweite Dienstintervallgrenze 404 sind so veranschaulicht, dass sie gleichzeitig die Hostvorrichtung 102, die UFP-Vorrichtung 104, die DFP-Vorrichtung 106 und die USB-Vorrichtung 108 überspannen, um die logische Trennung zwischen Dienstintervallen anzugeben. Bei einigen Ausführungsformen erfolgen die Erzeugung von Dienstintervallen durch die Hostvorrichtung 102 und die Erzeugung entsprechender synthetischer Dienstintervalle durch die DFP-Vorrichtung 106 möglicherweise nicht gleichzeitig.
  • Wie in Abschnitt 8.12.5 der USB-Spezifikation beschrieben, muss die Hostvorrichtung 102 Transaktionen, darunter isochrone Transaktionen, so planen, dass sie diese Dienstintervallgrenzen nicht überschreiten. Daher ist es zur Einhaltung der USB-Spezifikation wichtig, dass die Transaktionen zwischen der Hostvorrichtung 102 und der UFP-Vorrichtung 104 sowie Transaktionen zwischen der DFP-Vorrichtung 106 und der USB-Vorrichtung 108 die jeweiligen Dienstintervallgrenzen nicht überschreiten. Jedoch plant die Hostvorrichtung 102 Transaktionen ohne Kenntnis der hinzugefügten Latenz, die durch das Erweiterungsmedium 110 zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 eingeführt wird. Daher erhalten die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 zusätzliche Datenpakete von der USB-Vorrichtung 108 und cachen diese in der UFP-Vorrichtung 104, um Anforderungen von der Hostvorrichtung 102 erfüllen zu können, ohne die Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 berücksichtigen zu müssen.
  • An Punkt 406 sendet die Hostvorrichtung 102 ein Datenanforderungspaket an die UFP-Vorrichtung 104, das eine Sequenznummer („0“) und eine Anzahl von Paketen („2“) beinhaltet. Die Anzahl von Paketen ist eine Anzahl von durch die Hostvorrichtung 102 erwarteten Paketen und wird auch als „Pufferzählwert“ bezeichnet. Die UFP-Vorrichtung 104 überträgt das Datenanforderungspaket an die DFP-Vorrichtung 106. An Punkt 408 überträgt die UFP-Vorrichtung 104 ein synthetisches Null-Paket zurück an die Hostvorrichtung 102, um die Hostvorrichtung 102 in einen temporären Wartezustand zu versetzen. Das veranschaulichte synthetische Null-Paket kann ein Datenpaket mit einer Nutzdatenlänge von null sein, wobei jedoch eine beliebige andere Art von Paket verwendet werden kann, das die Hostvorrichtung 102 in einen Wartezustand versetzen kann. Als Reaktion auf den Empfang des synthetischen Null-Pakets tritt die Hostvorrichtung 102 in einen Wartezustand ein, in dem sie das Datenanforderungspaket bis nach der zweiten Dienstintervallgrenze 404 nicht erneut überträgt.
  • An Punkt 410 überträgt die DFP-Vorrichtung 106 ein synthetisches Datenanforderungspaket an die USB-Vorrichtung 108. Das durch die DFP-Vorrichtung 106 erzeugte synthetische Datenanforderungspaket beinhaltet die Sequenznummer aus dem an Punkt 406 durch die Hostvorrichtung 102 übertragenen Datenanforderungspaket. Die DFP-Vorrichtung 106 hat jedoch die Anzahl der Pakete derart geändert, dass sie nicht mit der Anzahl von Paketen in dem an Punkt 406 durch die Hostvorrichtung 102 übertragenen Datenanforderungspaket übereinstimmt.
  • Bei einigen Ausführungsformen kann die DFP-Vorrichtung 106 eine größere Anzahl von Paketen anfordern, als durch die Hostvorrichtung 102 angefordert wurde. Anfordern einer größeren Anzahl von Paketen erlaubt es der DFP-Vorrichtung 106, zusätzliche Daten zu empfangen, die an die UFP-Vorrichtung 104 gesendet werden können, um auf nachfolgende Anforderungen von der Hostvorrichtung 102 zu antworten, ohne dass auf eine Umlaufkommunikation zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 gewartet werden muss. Bei einigen Ausführungsformen kann die DFP-Vorrichtung 106 eine Anzahl von Paketen bestimmen, die mit einem maximalen Burst-Größe-Wert assoziiert ist, der durch die Hostvorrichtung 102 für die USB-Topologie oder für die bestimmte USB-Vorrichtung 108 während der anfänglichen durch die Hostvorrichtung 102 durchgeführten Aufzählung konfiguriert wurde. Die DFP-Vorrichtung 106 kann eine Anzahl von Paketen so anfordern, dass sie der maximalen Burst-Größe entspricht, unabhängig davon, ob die Hostvorrichtung 102 in ihrer ersten Anforderung weniger Pakete angefordert hat. Dies kann sicherstellen, dass die UFP-Vorrichtung 104 über alle Daten verfügt, die die Hostvorrichtung 102 während eines einzelnen Dienstintervalls anfordern würde. Eine maximale Anzahl von Paketen, die durch eine Hostvorrichtung 102 während eines Dienstintervalls verarbeitet werden können, kann bis zu 48 für 5-Gbps-Kommunikation oder 96 für 10-Gbps-Kommunikation betragen. USB-Vorrichtungen 108 sind in der Regel mit maximalen Burst-Größe-Werten konfiguriert, die geringer als diese Grenzen sind. Eine typische maximale Burst-Größe kann bei 6 oder 7 liegen, obgleich so niedrige Werte wie 3 möglich sein können, sowie Werte von bis zu 12 für Vorrichtungen, zu denen unter anderem einige hochauflösende Kameras gehören, oder sogar höher für andere Vorrichtungen.
  • Bei anderen Ausführungsformen kann die DFP-Vorrichtung 106 eine beliebige Anzahl von Paketen anfordern, die zwischen der durch die Hostvorrichtung 102 angeforderten Anzahl von Paketen und der maximalen Burst-Größe liegt. Wie veranschaulicht hat die DFP-Vorrichtung 106 ein synthetisches Paket erzeugt, um vier Pakete anzufordern, statt der ursprünglich durch die Hostvorrichtung 102 angeforderten zwei. Dies kann daran liegen, dass die maximale Burst-Größe als vier konfiguriert wurde, oder andere Gründe haben, darunter unter anderem eine Konfiguration auf der DFP-Vorrichtung 106, eine Bestimmung auf der Basis der Anzahl von Paketen aus dem ursprünglichen Anforderungspaket oder eine Bestimmung auf der Basis des Ausmaßes an Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106.
  • An Punkt 412 überträgt die USB-Vorrichtung 108 die angeforderten Datenpakete an die DFP-Vorrichtung 106. Die DFP-Vorrichtung 106 überträgt dann die angeforderten Datenpakete an die UFP-Vorrichtung 104, die an Punkt 414 beginnt, sie zu empfangen.
  • An Punkt 416 bestimmt die Hostvorrichtung 102, dass die zweite Dienstintervallgrenze 404 aufgetreten ist, und daher überträgt die Hostvorrichtung 102 ein neues Anforderungspaket, das dem an Punkt 406 übertragenen Anforderungspaket ähnlich sein kann. An Punkt 418 antwortet die UFP-Vorrichtung 104 mit den ersten zwei Datenpaketen, die auf der UFP-Vorrichtung 104 gecacht wurden. Diese Datenpakete sind mit Strichlinien veranschaulicht und können als synthetische Datenpakete angesehen werden, da sie aufgrund des Cachens durch die UFP-Vorrichtung 104 zeitlich verschoben sind.
  • An Punkt 420 kann die Hostvorrichtung 102 dann ein weiteres Anforderungspaket übertragen, um die nächsten zwei Datenpakete anzufordern, und an Punkt 422 kann die UFP-Vorrichtung 104 mit den nächsten zwei Datenpaketen, die auch auf der UFP-Vorrichtung 104 gecacht wurden, antworten. Es sei angemerkt, dass die UFP-Vorrichtung 104 durch Vorabrufen von mehr Daten als durch die Hostvorrichtung 102 angefordert wurden in der Lage ist, eine maximale Menge an Daten bereitzustellen, die während eines einzelnen Dienstintervalls transferiert werden kann, selbst wenn ein hohes Ausmaß an Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 besteht.
  • 4 veranschaulicht auch, dass die DFP-Vorrichtung 106 während eines gegebenen Dienstintervalls so viele Pakete wie möglich von der USB-Vorrichtung 108 abrufen kann. Die an Punkt 412 von der USB-Vorrichtung 108 an die DFP-Vorrichtung 106 übertragenen Pakete enthielten sämtliche angeforderten Datenpakete, jedoch enthielten sie kein Datenpaket mit einem gesetzten Letztes-Paket-Flag (LPF). Gemäß den USB-Spezifikationen gibt dies der DFP-Vorrichtung 106 an, dass die USB-Vorrichtung 108 zusätzliche zu übertragende Datenpakete aufweist. Dementsprechend überträgt die DFP-Vorrichtung 106 an Punkt 424 ein zusätzliches synthetisches Datenanforderungspaket, um einen nachfolgende Satz von Datenpaketen von der USB-Vorrichtung 108 anzufordern, und an Punkt 426 antwortet die USB-Vorrichtung 108 mit Datenpaketen als Reaktion auf die Anforderung. An Punkt 428 überträgt die DFP-Vorrichtung 106 ein weiteres synthetisches Datenanforderungspaket, und an Punkt 430 beginnt die USB-Vorrichtung 108, einen Antwortsatz von Datenpaketen zu übertragen. An Punkt 432 überträgt die USB-Vorrichtung 108 das letzte Datenpaket des Burst. Die USB-Vorrichtung 108 gibt an, dass das an Punkt 432 übertragene Datenpaket das letzte Datenpaket ist, indem sie ein Letztes-Paket-Flag (LPF) in dem letzten Datenpaket setzt. Durch Detektieren dieser Arten von Datenpaketen versteht die DFP-Vorrichtung 106, dass die USB-Vorrichtung 108 sämtliche ihrer Daten übertragen hat, und überträgt daher kein zusätzliches synthetisches Datenanforderungspaket vor der zweiten Dienstintervallgrenze 404, um weitere Datenpakete anzufordern, bis ein neues Anforderungspaket von der UFP-Vorrichtung 104 empfangen wird.
  • Es sei angemerkt, dass die Übertragung von Anforderungen durch die Hostvorrichtung 102 für zwei Pakete nur ein Beispiel ist und dass bei einigen Ausführungsformen eine andere Anzahl von Paketen angefordert werden kann. Zum Beispiel gibt Abschnitt 8.12.6.2 der USB-3.1-Spezifikation an, dass eine Hostvorrichtung 102 einen Transfer in Bursts von 2, 4 oder 8 Datenpaketen, gefolgt von einem Burst von so vielen Paketen, wie noch anzufordern sind, aufteilen kann. Dementsprechend kann bei einigen Ausführungsformen, um sechs Datenpakete während eines Dienstintervalls anzufordern, die Hostvorrichtung 102 an Punkt 418 vier Datenpakete und dann an Punkt 420 zwei Datenpakete anfordern. In der Praxis hat sich erwiesen, dass Hostvorrichtungen 102 ein vielseitiges Verhalten aufweisen.
  • 5 ist ein Flussdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel eines Verfahrens zum Übertragen von Daten in einer USB-Erweiterungsumgebung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. Das in 5 veranschaulichte Verfahren 500 ist eine andere Art der Darstellung der durch die UFP-Vorrichtung 104 durchgeführten Handlungen während der in dem Sequenzdiagramm von 4 veranschaulichten Kommunikation. Daher beinhaltet die folgende Beschreibung von 5 Bezugnahmen auf die entsprechenden Punkte von 4.
  • Von einem Startblock geht das Verfahren 500 zu Block 502 über, bei dem die UFP-Vorrichtung 104 ein Datenanforderungspaket von einer Hostvorrichtung 102 empfängt, das eine Sequenznummer und einen Pufferzählwert (siehe Punkt 406) enthält. Block 504 überträgt die UFP-Vorrichtung 104 das Datenanforderungspaket an die DFP-Vorrichtung 106 (siehe Punkt 410).
  • Bei Entscheidungsblock 506 erfolgt eine Bestimmung darüber, ob die UFP-Vorrichtung 104 Datenpakete als Reaktion auf das von der Hostvorrichtung 102 empfangene Datenanforderungspaket in ihrem Puffer enthält. Weist die UFP-Vorrichtung 104 noch keine Datenpakete als Reaktion auf das von der Hostvorrichtung 102 empfangene Datenanforderungspaket in ihrem Puffer auf, so lautet das Ergebnis des Entscheidungsblocks 506 NEIN, und das Verfahren 500 geht zu Block 508 über. Block 508 überträgt die UFP-Vorrichtung 104 ein synthetisches Null-Paket an die Hostvorrichtung 102 (siehe Punkt 408). Das Verfahren 500 geht dann zu einem Endblock über und wartet auf ein nachfolgendes Dienstintervall, um wiederholt zu werden.
  • Weist die UFP-Vorrichtung 104 dagegen Datenpakete als Reaktion auf das von der Hostvorrichtung 102 empfangene Datenanforderungspaket in ihrem Puffer auf, so lautet das Ergebnis des Entscheidungsblocks 506 JA, und das Verfahren 500 geht zu Block 510 über. Bei Block 510 überträgt die UFP-Vorrichtung 104 einen Satz gespeicherter Datenpakete an die Hostvorrichtung 102 basierend auf der Sequenznummer und dem Pufferzählwert (siehe Punkt 418).
  • Bei Entscheidungsblock 512 erfolgt eine Bestimmung darüber, ob der an die Hostvorrichtung 102 übertragene Satz gespeicherter Datenpakete ein Datenpaket mit einem gesetztem LPF-Flag enthielt. Enthielt der Satz gespeicherter Datenpakete kein Datenpaket mit gesetztem LPF-Flag, so lautet das Ergebnis des Entscheidungsblocks 512 NEIN, und das Verfahren 500 geht zu Block 514 über. Bei Block 514 empfängt die UFP-Vorrichtung 104 ein nachfolgendes Anforderungsdatenpaket von der Hostvorrichtung 102 und kehrt zu Block 504 zurück, um das nachfolgende Datenanforderungspaket zu verarbeiten.
  • Unter erneuter Bezugnahme auf Entscheidungsblock 512 lautet dann, wenn ein Datenpaket mit gesetztem LBS-Flag in dem an die Hostvorrichtung 102 übertragenen Satz gespeicherter Datenpakete enthalten ist, das Ergebnis des Entscheidungsblocks 512 JA, und das Verfahren 500 geht zu einem Endblock über und wartet auf ein nachfolgendes Dienstintervall, um wiederholt zu werden.
  • Obgleich die in 4 und 5 veranschaulichte allgemeine Technik die Latenz zwischen der UFP-Vorrichtung 104 und der DFP-Vorrichtung 106 effektiv behebt, kommt es bei der Implementierung dieser Funktionalität zu zusätzlichen Problemen. Beispielsweise entleert die Hostvorrichtung 102 dadurch, dass weitaus größere Anzahlen von Datenpaketen von der USB-Vorrichtung 108 angefordert werden, als tatsächlich durch die Hostvorrichtung 102 angefordert werden, die gecachten Datenpakete aus dem Puffer in der UFP-Vorrichtung 104 möglicherweise langsamer, als die gecachten Datenpakete durch die DFP-Vorrichtung 106 bereitgestellt werden. Beispielsweise kann, da die Datenanforderungen von der Hostvorrichtung 102 im Wesentlichen um mindestens ein Dienstintervall verzögert sind, der Puffer in der UFP-Vorrichtung 104 gleichzeitig Datenpakete aus mehreren Dienstintervallen speichern. Je nach Größe des Puffers in der UFP-Vorrichtung 104 kann es möglich sein, dass sich der Puffer in der UFP-Vorrichtung 104 vollständig füllt und nicht in der Lage ist, zusätzliche Datenpakete von der DFP-Vorrichtung 106 zu bearbeiten.
  • Da die DFP-Vorrichtung 106 die Vorrichtung ist, die bestimmt, wie viele Datenpakete während eines gegebenen Dienstintervalls von der USB-Vorrichtung 108 anzufordern sind (und nicht die UFP-Vorrichtung 104), ist es erwünscht, dass die DFP-Vorrichtung 106 verfolgt, wie viel Platz in dem Puffer der UFP-Vorrichtung 104 verfügbar ist, um zu vermeiden, dass Datenpakete von der USB-Vorrichtung 108 angefordert werden, für die in der UFP-Vorrichtung 104 kein Platz vorhanden sein wird.
  • 6 ist ein Flussdiagramm, das ein nicht-einschränkendes Ausführungsbeispiel eines Verfahrens zum Übertragen von Daten in einer USB-Erweiterungsumgebung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. In dem Verfahren 600 verfolgt die DFP-Vorrichtung 106 einen Freier-Puffer-Zählwert basierend auf einem Zählwert von Datenpaketen, die die DFP-Vorrichtung 106 an die UFP-Vorrichtung 104 gesendet hat, und von Datenanforderungspaketen, die durch die DFP-Vorrichtung 106 von der UFP-Vorrichtung 104 empfangen wurden. Der Freier-Puffer-Zählwert repräsentiert die in der UFP-Vorrichtung 104 für Datenpakete verfügbare Menge an Pufferplatz. Durch Verfolgen des Freier-Puffer-Zählwerts, kann die DFP-Vorrichtung 106 vermeiden, dass mehr Datenpakete angefordert und übertragen werden, als durch die UFP-Vorrichtung 104 gespeichert werden können, und ein zusätzliches Melden der verfügbaren Menge an Pufferplatz an die DFP-Vorrichtung 106 ist nicht erforderlich. In dem Verfahren 600 wird angenommen, dass die UFP-Vorrichtung 104 ein Upstream-Gegenstückverfahren durchführt, wie etwa das in 5 veranschaulichte Verfahren 500.
  • Von einem Startblock geht das Verfahren 600 zu Block 602 über, bei dem eine DFP-Vorrichtung 106 einen Freier-Puffer-Zählwert und einen Vorheriges-LPF-Tracker für eine gekoppelte UFP-Vorrichtung 104 initialisiert. Bei einigen Ausführungsformen können die DFP-Vorrichtung 106 und die UFP-Vorrichtung 104 Befehle zum gegenseitigen Koppeln empfangen. Bei einigen Ausführungsformen, bei denen das Erweiterungsmedium 110 eine adressierbare Netzwerktechnologie beinhaltet, wie etwa Ethernet oder TCP/IP, kann der DFP-Vorrichtung 106 und der UFP-Vorrichtung 104 eine Netzwerkadresse der entsprechenden Vorrichtung, mit der eine Kopplung hergestellt werden soll, bereitgestellt werden. Bei einigen Ausführungsformen, bei denen das Erweiterungsmedium 110 eine direkte Verbindung zwischen der DFP-Vorrichtung 106 und der UFP-Vorrichtung 104 beinhaltet (wie etwa ein Glasfaserkabel), können die Kopplungsbefehle in der Verbindung inbegriffen sein oder bei Detektion der physischen Verbindung zwischen den Vorrichtungen übertragen werden. Bei einigen Ausführungsformen kann die UFP-Vorrichtung 104 eine Größe ihres Datenpaketpuffers an die DFP-Vorrichtung 106 übertragen, und die DFP-Vorrichtung 106 kann den Freier-Puffer-Zählwert basierend auf dieser Information initialisieren. Bei einigen Ausführungsformen kann die DFP-Vorrichtung 106 mit dem Freier-Puffer-Zählwert der UFP-Vorrichtung 104 vorkonfiguriert sein oder manuell konfiguriert werden.
  • Die DFP-Vorrichtung 106 kann eine beliebige geeignete Technik zum Implementieren eines Vorheriges-LPF-Trackers verwenden, die durch die DFP-Vorrichtung 106 dazu verwendet werden kann, zu bestimmen, wie viele Pakete in einem vorherigen Dienstintervall übertragen wurden, bevor ein Paket mit gesetztem LPF-Flag übertragen wurde. Bei einigen Ausführungsformen kann der Vorheriges-LPF-Tracker in einer FIFO-Warteschlange implementiert sein, wobei ein einziges Bit in jedem Eintrag in der Warteschlange angibt, ob bei einem entsprechenden Paket das LPF-Flag gesetzt wurde. Mit Übertragung von Paketen durch die DFP-Vorrichtung 106 werden Einträge zu der FIFO-Warteschlange hinzugefügt (siehe Block 620), und mit Empfang von Bestätigungen von der UFP-Vorrichtung 104 werden Einträge aus der FIFO-Warteschlange entfernt (siehe Block 608). Bei derartigen Ausführungsformen kann die DFP-Vorrichtung 106 den Vorheriges-LPF-Tracker durch Entleeren der FIFO-Warteschlange initialisieren. Bei einigen Ausführungsformen kann der Vorheriges-LPF-Tracker durch Aufzeichnen einer Sequenznummer eines Pakets mit gesetztem LPF-Flag implementiert werden. Bei derartigen Ausführungsformen kann die DFP-Vorrichtung 106 den Vorheriges-LPF-Tracker durch Setzen der Sequenznummer auf null initialisieren.
  • Von Block 602 geht das Verfahren 600 zu Block 604 über, bei dem die DFP-Vorrichtung 106 ein Datenanforderungspaket von der UFP-Vorrichtung 104 empfängt, wobei das Datenanforderungspaket eine Sequenznummer und einen Pufferzählwert beinhaltet. Wie in 4 an Punkt 410 gezeigt, können die Sequenznummer und der Pufferzählwert des von der UFP-Vorrichtung 104 empfangenen Datenanforderungspakets mit der Sequenznummer und dem Pufferzählwert des von der UFP-Vorrichtung 104 von der Hostvorrichtung 102 empfangenen Datenanforderungspakets übereinstimmen.
  • Bei Block 606 aktualisiert die DFP-Vorrichtung 106 den Vorheriges-LPF-Tracker basierend auf dem Pufferzählwert des Datenanforderungspakets. Bei Ausführungsformen, bei denen der Vorheriges-LPF-Tracker unter Verwendung einer FIFO-Warteschlange implementiert ist, kann die DFP-Vorrichtung 106 eine Anzahl von Einträgen basierend auf dem Pufferzählwert des Datenanforderungspakets aus der FIFO-Warteschlange entfernen. In der Regel kann die DFP-Vorrichtung 106 eine Anzahl von Einträgen aus der FIFO-Warteschlange entfernen, die gleich dem Pufferzählwert des Datenanforderungspakets ist. Jedoch kann die DFP-Vorrichtung 106 das Entfernen von Einträgen aus der FIFO-Warteschlange beenden, sobald ein Eintrag angibt, dass bei dem entsprechenden Paket das LPF-Flag gesetzt wurde. In diesem Fall kann die DFP-Vorrichtung 106 weniger Einträge aus der FIFO-Warteschlange entfernen als die durch den Pufferzählwert des angeforderten Datenpakets angegebene Zahl. Bei Ausführungsformen, bei denen der Vorheriges-LPF-Tracker durch Aufzeichnen der Sequenznummer des Datenpakets mit gesetztem LPF-Flag implementiert ist, kann die DFP-Vorrichtung 106 das Aktualisieren des Vorheriges-LPF-Trackers bei Block 606 überspringen.
  • Bei Block 608 inkrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert basierend auf dem Pufferzählwert des Datenanforderungspakets und dem Vorheriges-LPF-Tracker. Die DFP-Vorrichtung 106 implementiert den Freier-Puffer-Zählwert nicht höher als die bei Block 602 bestimmte Größe des Puffers. Dementsprechend nimmt die DFP-Vorrichtung 106 bei dem ersten Durchgang durch Block 608 möglicherweise keine Änderungen an dem Freier-Puffer-Zählwert vor, da noch keine Datenpakete durch die UFP-Vorrichtung 104 übertragen wurden und bekannt ist, dass der Puffer leer ist.
  • Bei nachfolgenden Durchgängen durch Block 608 kann der Freier-Puffer-Zählwert bei Empfang des Datenanforderungspakets inkrementiert werden, da der Empfang des Datenanforderungspakets bedeutet, dass die UFP-Vorrichtung 104 der Hostvorrichtung 102 unmittelbar die in dem Pufferzählwert des Datenanforderungspakets angegebene Anzahl von Datenpaketen bereitstellt, und so dass zur Zeit der Verarbeitung der Anforderung durch die DFP-Vorrichtung 106 und die USB-Vorrichtung 108 viel Platz in dem Puffer der UFP-Vorrichtung 104 verfügbar sein wird.
  • Bei einigen Ausführungsformen ist die durch den Pufferzählwert des Datenanforderungspakets angegebene Anzahl von Datenpaketen ein aufgerundeter Wert des Betrags zum Inkrementieren des Freier-Puffer-Zählwerts, und der tatsächliche Betrag des Inkrements kann basierend auf dem Vorheriges-LPF-Tracker reduziert werden. Ist der Vorheriges-LPF-Tracker wie oben beschrieben unter Verwendung einer FIFO-Warteschlange implementiert, so wird der Freier-Puffer-Zählwert bei Block 606 möglicherweise nur um die Anzahl aus der FIFO-Warteschlange entfernter Einträge inkrementiert, die kleiner sein kann als der Pufferzählwert des Datenanforderungspakets, wenn ein Eintrag angibt, dass ein LPF-Paket aus der FIFO-Warteschlange entfernt wurde. Dadurch wird sichergestellt, dass der Freier-Puffer-Zählwert nicht über eine Anzahl von Datenpaketen hinaus inkrementiert wird, die während eines gegebenen Dienstintervalls durch die UFP-Vorrichtung 104 an die Hostvorrichtung 106 geliefert werden.
  • Bei Block 610 erzeugt die DFP-Vorrichtung 106 ein synthetisches Datenanforderungspaket, wobei das synthetische Datenanforderungspaket einen Pufferzählwert basierend auf dem Freier-Puffer-Zählwert beinhaltet. Bei dem ersten Durchgang durch Block 610 für ein gegebenes Dienstintervall kann die DFP-Vorrichtung 106, da keine zuvor übertragene Sequenznummer vorliegt, eine bei Sequenznummer null beginnende Sequenznummer in dem synthetischen Datenanforderungspaket beinhalten. Ansonsten kann die DFP-Vorrichtung 106 eine Sequenznummer verwenden, die an eine vorherige Übertragung des aktuellen Dienstintervalls anschließt. Der Pufferzählwert des synthetischen Datenanforderungspakets wird ähnlich dem Pufferzählwert an Punkt 410 von 4 bestimmt, wobei die DFP-Vorrichtung 106 jedoch, anstatt immer die maximal konfigurierte Anzahl von Datenpaketen anzufordern, bei Block 610 sicherstellt, dass der Pufferzählwert des synthetischen Datenanforderungspakets kleiner oder gleich dem Freier-Puffer-Zählwert ist, um zu vermeiden, dass mehr Datenpakete abgerufen werden als durch die UFP-Vorrichtung 104 gespeichert werden können.
  • Bei Block 612 überträgt die DFP-Vorrichtung 106 das synthetische Datenanforderungspaket an die USB-Vorrichtung 108, und bei Block 614 empfängt die DFP-Vorrichtung 106 eine Anzahl von Datenpaketen von der USB-Vorrichtung 108. Die Anzeige von Datenpaketen kann die durch den Pufferzählwert des synthetischen Datenanforderungspakets angegebene angeforderte Anzahl von Datenpaketen sein, oder sie kann geringer als die angeforderte Anzahl von Datenpaketen sein (wie etwa wenn ein Datenpaket mit gesetztem LPF-Flag empfangen wird, bevor alle der angeforderten Anzahl von Datenpaketen empfangen wurden).
  • Bei Block 616 überträgt die DFP-Vorrichtung 106 die Anzahl von Datenpaketen an die UFP-Vorrichtung 104 zur Speicherung in dem Puffer der UFP-Vorrichtung 104. Bei Block 618 dekrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen, um genau widerzuspiegeln, wie viele Datenpakete übertragen wurden, und bei Block 620 aktualisiert die DFP-Vorrichtung 106 den Vorheriges-LPF-Tracker basierend auf der Anzahl von Datenpaketen. Bei Ausführungsformen, bei denen der Vorheriges-LPF-Tracker in einer FIFO-Warteschlange implementiert ist, kann die DFP-Vorrichtung 106 für jedes Datenpaket der Anzahl von Datenpaketen Einträge zu der FIFO-Warteschlange hinzufügen. Wurde bei einem der Datenpakete das LPF-Flag gesetzt, so würde der Eintrag in der FIFO-Warteschlange angeben, dass das LPF-Flag gesetzt wurde. Bei Ausführungsformen, bei denen die Sequenznummer der Datenpakete mit gesetztem LPF-Flag für den Vorheriges-LPF-Tracker verfolgt wird, kann die Sequenznummer eines solchen Pakets, falls vorhanden, aufgezeichnet werden.
  • Das Verfahren 600 geht dann zu einem Entscheidungsblock 622 über, bei dem eine Bestimmung basierend darauf erfolgt, ob die Anzahl von Datenpaketen ein Datenpaket mit gesetztem LPF-Flag enthielt, um anzugeben, dass die USB-Vorrichtung 108 das Bereitstellen von Datenpaketen für das aktuelle Dienstintervall abgeschlossen hat. Trifft dies zu, so lautet das Ergebnis des Entscheidungsblocks 622 JA, und das Verfahren 600 kehrt zu Block 604 zurück, um ein nachfolgendes Datenanforderungspaket von der UFP-Vorrichtung 104 während eines nachfolgenden Dienstintervalls zu erwarten. Andernfalls lautet das Ergebnis des Entscheidungsblocks 622 NEIN, und das Verfahren 600 kehrt zu Block 610 zurück, um ein nachfolgendes synthetisches Datenanforderungspaket zu erzeugen.
  • Es sei angemerkt, dass Block 604, 606 und Block 608 in der Veranschaulichung zu Blockgruppe 624 gruppiert sind. Bei einigen Ausführungsformen können die Handlungen von Blockgruppe 624 während eines gegebenen Dienstintervalls mehrfach erfolgen (z. B. während das veranschaulichte Verfahren 600 zwischen den Blöcken 610-622 iteriert), da die Hostvorrichtung 102 mehrere Anforderungen für Datenpakete an die UFP-Vorrichtung 104 überträgt. Während die Handlungen der Blockgruppe 624 in 6 der Klarheit halber in einem linearen Fluss veranschaulicht sind, erkennen Fachleute, dass die Handlungen der Blockgruppe 624 an einem beliebigen Punkt zwischen, vor oder nach den Blöcken 610 bis einschließlich 622 mehrfach erfolgen können.
  • 7A - 7C sind Sequenzdiagramme, die ein nicht-einschränkendes Ausführungsbeispiel der Ausführung des in 6 veranschaulichten Verfahrens gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulichen. Die Sequenz von 7A - 7C veranschaulicht, wie das Problem des Überlaufs des Puffers der UFP-Vorrichtung 104, das auftreten könnte, wenn die Sequenz von 4 ohne Prüfung auf derartige Überlaufe weiterlaufen gelassen würde, durch das Verfahren 600 gelöst werden kann.
  • In 7A wird angenommen, dass die UFP-Vorrichtung 104 und die DFP-Vorrichtung 106 bereits miteinander gekoppelt sind und dass die UFP-Vorrichtung 104 der DFP-Vorrichtung 106 mitgeteilt hat, dass sie eine Puffergröße von 12 aufweist. Dementsprechend hat die DFP-Vorrichtung 106 an Punkt 701 ihren Freier-Puffer-Zählwert auf 12 initialisiert. Nach einer ersten Dienstintervallgrenze 702 überträgt die Hostvorrichtung 102 an Punkt 703 ein Datenanforderungspaket. Da die UFP-Vorrichtung 104 noch keine gespeicherten Datenpakete als Reaktion auf das Datenanforderungspaket aufweist, antwortet die UFP-Vorrichtung 104 an Punkt 704 mit einem synthetischen NULL-Paket (siehe Block 508 in 5).
  • An Punkt 705 empfängt die DFP-Vorrichtung 106 das Datenanforderungspaket und überträgt ein entsprechendes synthetisches Datenanforderungspaket. Das synthetische Datenanforderungspaket beinhaltet einen Pufferzählwert teilweise basierend auf dem Freier-Puffer-Zählwert (siehe Block 610 in 6). Für Zwecke der vorliegenden Erörterung ist die DFP-Vorrichtung 106 dazu ausgelegt, mit ihren synthetischen Datenanforderungspaketen bis zu 4 Datenpakete anzufordern, und da der Freier-Puffer-Zählwert an Punkt 705 12 beträgt, ist ausreichend Platz für die DFP-Vorrichtung 106 zum Anfordern aller 4 Datenpakete vorhanden. Diese Konfiguration ist lediglich ein Beispiel, und bei anderen Ausführungsformen kann die DFP-Vorrichtung 106 standardmäßig dazu ausgelegt sein, mehr oder weniger als 4 Datenpakete anzufordern.
  • An Punkt 706 überträgt die USB-Vorrichtung 108 eine Anzahl von Datenpaketen als Reaktion auf das synthetische Datenanforderungspaket an die DFP-Vorrichtung 106, die wiederum die Anzahl von Datenpaketen zur Speicherung an die UFP-Vorrichtung 104 überträgt (siehe Blöcke 614-616 in 6). An Punkt 707 dekrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen, die an die UFP-Vorrichtung 104 übertragen wurden (siehe Block 618 in 6), sodass der Freier-Puffer-Zählwert nun 8 beträgt, und die DFP-Vorrichtung 106 aktualisiert den Vorheriges-LPF-Tracker basierend auf der Anzahl von Datenpaketen (siehe Block 620 in 6).
  • Da die Anzahl von Datenpaketen kein Datenpaket mit gesetztem LPF-Flag enthielt (siehe NEIN-Zweig von Entscheidungsblock 622 in 6), überträgt die DFP-Vorrichtung 106 an Punkt 708 ein weiteres synthetisches Datenanforderungspaket (siehe Block 610 in 6). Wiederum gibt der Freier-Puffer-Zählwert von 8 an Punkt 707 an, dass ausreichend Platz für alle 4 gewünschten Datenpakete vorhanden ist, sodass das synthetische Datenanforderungspaket an Punkt 708 einen Pufferzählwert von 4 beinhaltet. An Punkt 709 beginnt die USB-Vorrichtung 108, eine Anzahl von Datenpaketen als Reaktion auf das synthetische Datenanforderungspaket an die DFP-Vorrichtung 106 zu übertragen, und die DFP-Vorrichtung 106 überträgt die Anzahl von Datenpaketen zur Speicherung an die UFP-Vorrichtung 104 (siehe Blöcke 614-616 von 6). An Punkt 710 dekrementiert die DFP-Vorrichtung 106 erneut den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen, die an die UFP-Vorrichtung 104 übertragen wurden (siehe Block 618 in 6), und aktualisiert erneut den Vorheriges-LPF-Tracker basierend auf der Anzahl von Datenpaketen (siehe Block 620 in 6).
  • Da die Anzahl von Datenpaketen wiederum kein Datenpaket mit gesetztem LPF-Flag enthielt (siehe NEIN-Zweig von Entscheidungsblock 622 in 6), überträgt die DFP-Vorrichtung 106 an Punkt 711 ein weiteres synthetisches Datenanforderungspaket (siehe Block 610 in 6). Nochmals gibt der Freier-Puffer-Zählwert von 4 an Punkt 710 an, dass ausreichend Platz für alle 4 gewünschten Datenpakete vorhanden ist, sodass das synthetische Datenanforderungspaket an Punkt 711 einen Pufferzählwert von 4 beinhaltet.
  • An Punkt 712 überträgt die USB-Vorrichtung 108 eine Anzahl von Datenpaketen als Reaktion auf das synthetische Datenanforderungspaket. Dieses Mal überträgt die USB-Vorrichtung 108 ein einziges Datenpaket mit gesetztem LPF-Flag, wodurch angegeben wird, dass es das letzte während des aktuellen Dienstintervalls zu übertragende Datenpaket ist. Dementsprechend überträgt die DFP-Vorrichtung 106 das einzige Datenpaket an die UFP-Vorrichtung 104, und an Punkt 713 dekrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert nur um die Anzahl von an die UFP-Vorrichtung 104 übertragenen Datenpaketen (eins), nicht um die größere Anzahl von in dem synthetischen Datenanforderungspaket von der USB-Vorrichtung 108 angeforderten Datenpaketen (siehe Block 618 in 6). Die DFP-Vorrichtung 106 aktualisiert den Vorheriges-LPF-Tracker basierend auf der Anzahl von Datenpaketen z. B. durch Hinzufügen eines Eintrags zu einer FIFO-Warteschlange, der das Vorliegen des LPF-Flag angibt, durch Speichern der Sequenznummer des an Punkt 712 übertragenen Datenpakets oder unter Verwendung einer beliebigen anderen geeigneten Technik.
  • Da ein Datenpaket mit gesetztem LPF-Flag empfangen wurde, erwartet die DFP-Vorrichtung 106 den Empfang eines nachfolgenden Datenpakets von der UFP-Vorrichtung 104 (siehe JA-Zweig von Entscheidungsblock 622 in 6) während eines nachfolgenden Dienstintervalls.
  • Es versteht sich, dass, sobald die UFP-Vorrichtung 104 an Punkt 712 das durch die USB-Vorrichtung 108 erzeugte Datenpaket empfängt, die UFP-Vorrichtung 104 neun Datenpakete speichert (von Sequenznummer 0 bis Sequenznummer 8). Dies wird durch den Freier-Puffer-Zählwert an Punkt 713 von 3 widergespiegelt - da die Größe des Puffers 12 beträgt und neun Datenpakete in dem Puffer gespeichert sind, bleibt Platz für 3 Datenpakete.
  • Die Sequenz fährt von der unteren Seite von 7A zu der oberen Seite von 7B fort, wo eine zweite Dienstintervallgrenze 714 auftritt. Der von 7A mitgeführte Freier-Puffer-Zählwert beträgt zu Beginn dieses Dienstintervalls 3, wie an Punkt 713 angegeben.
  • An Punkt 715 überträgt die Hostvorrichtung 102 ein Datenanforderungspaket an die UFP-Vorrichtung 104, und die UFP-Vorrichtung 104 überträgt das Datenanforderungspaket weiter an die DFP-Vorrichtung 106. Da die Hostvorrichtung 102 nun Datenpakete als Reaktion auf das Datenanforderungspaket speichert, überträgt die UFP-Vorrichtung 104 an Punkt 716 die angeforderte Anzahl von Datenpaketen aus ihrem Puffer an die Hostvorrichtung 102 (siehe Block 510 in 5).
  • An Punkt 717 empfängt die DFP-Vorrichtung 106 das Datenanforderungspaket. Unter Verwendung des Pufferzählwerts in dem Datenanforderungspaket und registrierend, dass der Vorheriges-LPF-Tracker nicht angibt, dass die UFP-Vorrichtung 104 ein Paket mit gesetztem LPF-Flag als Reaktion auf das Datenanforderungspaket übertragen hätte, inkrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert an Punkt 718 unter der Annahme, dass zur Zeit der Übertragung weiterer Datenpakete an die UFP-Vorrichtung 104 durch die DFP-Vorrichtung 106 die angeforderten Datenpakete der Hostvorrichtung 102 durch die UFP-Vorrichtung 104 bereitgestellt worden sind und entsprechender Platz in dem Puffer der UFP-Vorrichtung 104 geräumt worden ist (siehe Blöcke 604-608 in 6). Dementsprechend beträgt der Freier-Puffer-Zählwert an Punkt 718 5, und der Vorheriges-LPF-Tracker wurde aktualisiert (z. B., wenn der Vorheriges-LPF-Tracker mit einer FIFO-Warteschlange implementiert ist, wurden Einträge, die dem Pufferzählwert des Datenanforderungspakets entsprechen, aus der FIFO-Warteschlange entfernt).
  • An Punkt 719 erzeugt und überträgt die DFP-Vorrichtung 106 ein synthetisches Datenanforderungspaket (siehe Blöcke 610-612 von 6). Die DFP-Vorrichtung 106 startet die Sequenznummer für das synthetische Datenanforderungspaket bei 0', da es das erste synthetische Datenanforderungspaket des an der zweiten Dienstintervallgrenze 714 beginnenden Dienstintervalls ist. Die während des zweiten Dienstintervalls (zwischen der zweiten Dienstintervallgrenze 714 und der dritten Dienstintervallgrenze 720) verwendeten Sequenznummern sind in dieser Erörterung mit einem Hochkomma modifiziert (z. B. 0', 1', 2' usw.), um nur für diese Erörterung die während des zweiten Dienstintervalls erzeugten Antwortdatenpakete eindeutig von den vor und nach dem zweiten Dienstintervall erzeugten Datenpaketen zu unterscheiden. Fachleute erkennen, dass in tatsächlichen Implementierungen der vorliegenden Offenbarung nicht-modifizierte Sequenznummern, die der USB-Spezifikation entsprechen, verwendet werden können.
  • Da der Freier-Puffer-Zählwert an Punkt 719 5 beträgt, ist ausreichend Platz für alle 4 gewünschten Datenpakete vorhanden, sodass das synthetische Datenanforderungspaket einen Pufferzählwert von 4 beinhaltet. An Punkt 721 überträgt die USB-Vorrichtung 108 eine Anzahl von Datenpaketen an die DFP-Vorrichtung 106, die die Anzahl von Datenpaketen weiter zur Speicherung an die UFP-Vorrichtung 104 überträgt (siehe Blöcke 614-616 von 6). An Punkt 722 dekrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen bzw. 4 (siehe Block 618 in 6), und der Vorheriges-LPF-Tracker wird basierend auf der Anzahl von Datenpaketen aktualisiert (siehe Block 620 in 6).
  • Unterdessen überträgt die Hostvorrichtung 102 an Punkt 723 ein weiteres Datenanforderungspaket, und die UFP-Vorrichtung 104 überträgt das Datenanforderungspaket weiter an die DFP-Vorrichtung 106. Da die UFP-Vorrichtung 104 noch Datenpakete als Reaktion auf das Datenanforderungspaket aufweist, überträgt die UFP-Vorrichtung 104 an Punkt 724 Antwortdatenpakete aus ihrem Puffer an die Hostvorrichtung 102 (siehe Block 510 in 5).
  • Die DFP-Vorrichtung 106 empfängt das Datenanforderungspaket an Punkt 725. Unter Verwendung des Pufferzählwerts in dem Datenanforderungspaket und registrierend, dass der Vorheriges-LPF-Tracker angibt, dass das LPF-Paket immer noch nicht durch die UFP-Vorrichtung 104 empfangen wurde, inkrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert an Punkt 726 um den in dem Datenanforderungspaket angegebenen Betrag (2) und aktualisiert den Vorheriges-LPF-Tracker (siehe Blöcke 604-608 in 6).
  • An Punkt 727 erzeugt und überträgt die DFP-Vorrichtung 106 ein synthetisches Datenanforderungspaket (siehe Blöcke 610-612 von 6). Dieses Mal beinhaltet das synthetische Datenanforderungspaket, da der Freier-Puffer-Zählwert 3 beträgt, einen Pufferzählwert von 3 anstatt des maximalen gewünschten Pufferzählwerts von 4. An Punkt 728 überträgt die USB-Vorrichtung 108 eine Anzahl von Datenpaketen an die DFP-Vorrichtung 106, die die Anzahl von Datenpaketen weiter zur Speicherung an die UFP-Vorrichtung 104 überträgt (siehe Blöcke 614-616 von 6). An Punkt 729 dekrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen bzw. 3 (siehe Block 618 in 6) und aktualisiert den Vorheriges-LPF-Tracker basierend auf der Anzahl von Datenpaketen.
  • Da an Punkt 729 kein durch den Freier-Puffer-Zählwert angegebener freier Pufferplatz vorhanden ist, erstellt die DFP-Vorrichtung 106 möglicherweise nicht unmittelbar ein nachfolgendes synthetisches Datenanforderungspaket, obgleich noch kein Datenpaket mit gesetztem LPF-Flag von der USB-Vorrichtung 108 empfangen wurde. Stattdessen kann die DFP-Vorrichtung 106 warten, bis ein Datenanforderungspaket von der UFP-Vorrichtung 104 empfangen wird, das angibt, dass nun Platz in dem Puffer der UFP-Vorrichtung 104 vorhanden ist. Dementsprechend erzeugt die Hostvorrichtung 102 an Punkt 730 ein Datenanforderungspaket, und die UFP-Vorrichtung 104 überträgt das Datenanforderungspaket weiter an die DFP-Vorrichtung 106. Wie zuvor, da die UFP-Vorrichtung 104 noch Antwortdatenpakete speichert, überträgt die UFP-Vorrichtung 104 an Punkt 731 Antwortdatenpakete an die Hostvorrichtung 102 (siehe Block 510 in 5).
  • Die DFP-Vorrichtung 106 empfängt das Datenanforderungspaket an Punkt 732. Unter Verwendung des Pufferzählwerts in dem Datenanforderungspaket und registrierend, dass der Vorheriges-LPF-Tracker angibt, dass das Paket mit gesetztem LPF immer noch nicht durch die UFP-Vorrichtung 104 empfangen wurde, inkrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert an Punkt 733 um den in dem Datenanforderungspaket angegebenen Betrag (2) und aktualisiert den Vorheriges-LPF-Tracker (siehe Blöcke 604-608 in 6).
  • An Punkt 734 erzeugt und überträgt die DFP-Vorrichtung 106 ein synthetisches Datenanforderungspaket (siehe Blöcke 610-612 von 6). Da der Freier-Puffer-Zählwert an Punkt 733 2 beträgt, beinhaltet das synthetische Datenanforderungspaket einen Pufferzählwert von 2 anstatt des maximalen gewünschten Pufferzählwerts von 4. An Punkt 735 überträgt die USB-Vorrichtung 108 eine Anzahl von Datenpaketen an die DFP-Vorrichtung 106, die die Anzahl von Datenpaketen weiter zur Speicherung an die UFP-Vorrichtung 104 überträgt (siehe Blöcke 614-616 von 6). An Punkt 736 dekrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen bzw. 2 (siehe Block 618 in 6) und aktualisiert den Vorheriges-LPF-Tracker basierend auf der Anzahl von Datenpaketen.
  • Die Sequenz fährt von der unteren Seite von 7B zu der oberen Seite von 7C fort. Der von 7B mitgeführte Freier-Puffer-Zählwert beträgt zu Beginn von 7C 0, wie an Punkt 736 angegeben.
  • Ähnlich den Handlungen von Punkt 730 bis Punkt 736 in 7B erzeugt die Hostvorrichtung 102 an Punkt 737 ein Datenanforderungspaket, und an Punkt 738 antwortet die UFP-Vorrichtung 104 mit Antwortdatenpaketen aus ihren Puffer. Die DFP-Vorrichtung 106 empfängt das Datenanforderungspaket an Punkt 739, und an Punkt 740 inkrementiert sie den Freier-Puffer-Zählwert um den Pufferzählwert des Datenanforderungspakets (da die Vorheriges-LPF-Sequenznummer noch nicht erreicht wurde). An Punkt 741 erzeugt die DFP-Vorrichtung 106 ein synthetisches Datenanforderungspaket mit einem Pufferzählwert von 2, da der Freier-Puffer-Zählwert an Punkt 740 2 beträgt.
  • An Punkt 742 überträgt die USB-Vorrichtung 108 eine Anzahl von Datenpaketen als Reaktion auf das synthetische Datenanforderungspaket an die DFP-Vorrichtung 106, und die DFP-Vorrichtung 106 überträgt die Anzahl von Datenpaketen zur Speicherung an die UFP-Vorrichtung 104. An Punkt 743 dekrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen (2) und aktualisiert den Vorheriges-LPF-Tracker. Es sei angemerkt, dass die Handlungen von Punkt 737 bis Punkt 743 von 7C den Handlungen von Punkt 730 bis Punkt 736 in 7B ähnlich sind.
  • An Punkt 744 erzeugt und überträgt die Hostvorrichtung 102 ein Datenanforderungspaket an die UFP-Vorrichtung 104, und die UFP-Vorrichtung 104 überträgt das Datenanforderungspaket weiter an die DFP-Vorrichtung 106. Als Reaktion auf das Datenanforderungspaket überträgt die UFP-Vorrichtung 104 an Punkt 745 ein Antwortdatenpaket an die Hostvorrichtung 102 aus ihrem Puffer. Da bei dem Antwortdatenpaket (Sequenznummer 8) das LPF-Flag gesetzt ist, überträgt die UFP-Vorrichtung 104 keine weiteren Datenpakete als Reaktion auf das Datenanforderungspaket von Punkt 746 mehr, obgleich mehr Datenpakete in ihrem Puffer vorhanden sind, da das Datenpaket mit gesetztem LPF-Flag das letzte durch die Hostvorrichtung 102 für das aktuelle Dienstintervall erwartete Datenpaket sein wird.
  • An Punkt 747 empfängt die DFP-Vorrichtung 106 das Datenanforderungspaket von der UFP-Vorrichtung 104. Die DFP-Vorrichtung 106 aktualisiert den Vorheriges-LPF-Tracker basierend auf dem Pufferzählwert des Datenanforderungspakets (siehe Block 606 von 6), und der Vorheriges-LPF-Tracker gibt nun an, dass die UFP-Vorrichtung 104 ein Paket mit gesetztem LPF-Flag an die Hostvorrichtung 102 übertragen hat. Ist der Vorheriges-LPF-Tracker beispielsweise mit einer FIFO-Warteschlange implementiert, so kann ein einziger Eintrag aus der FIFO-Warteschlange entfernt werden, der angibt, dass das LPF-Flag gesetzt ist, wodurch somit sowohl die Anzahl von Datenpaketen (1) angegeben wird, die durch die UFP-Vorrichtung 104 an die Hostvorrichtung 102 übertragen wurden, als auch angegeben wird, dass keine weiteren Datenpakete gesendet wurden.
  • Dementsprechend inkrementiert die DFP-Vorrichtung 106 an Punkt 748 den Freier-Puffer-Zählwert basierend auf dem Datenanforderungspaket und dem Vorheriges-LPF-Tracker (siehe Block 608 von 6). Dieses Mal inkrementiert die DFP-Vorrichtung 106, da der Vorheriges-LPF-Tracker angibt, dass ein einziges Datenpaket übertragen wurde, den Freier-Puffer-Zählwert nicht einfach basierend auf dem Pufferzählwert in dem Datenanforderungspaket. Stattdessen verwendet die DFP-Vorrichtung 106 den Vorheriges-LPF-Tracker, um zu bestimmen, wie viele Datenpakete durch die UFP-Vorrichtung 104 übertragen werden, bevor sie aufgrund des Erreichens des Datenpakets mit gesetztem LPF-Flag stoppt, und inkrementiert den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen, die die UFP-Vorrichtung 104 laut ihrer Bestimmung tatsächlich senden wird (in diesem Fall 1).
  • An Punkt 749 erzeugt und überträgt die DFP-Vorrichtung 106 ein synthetisches Datenanforderungspaket basierend auf dem Freier-Puffer-Zählwert (siehe Blöcke 610-612 von 6). In diesem Fall beträgt der Pufferzählwert des synthetischen Datenanforderungspakets 1, da der Freier-Puffer-Zählwert an Punkt 748 1 beträgt. An Punkt 750 überträgt die USB-Vorrichtung 108 eine Anzahl von Datenpaketen als Reaktion auf das synthetische Datenanforderungspaket, und die DFP-Vorrichtung 106 überträgt die Anzahl von Datenpaketen weiter zur Speicherung an die UFP-Vorrichtung 104 (siehe Blöcke 614-616 in 6). An Punkt 751 dekrementiert die DFP-Vorrichtung 106 den Freier-Puffer-Zählwert um die Anzahl von Datenpaketen bzw. 1 und aktualisiert den Vorheriges-LPF-Tracker (siehe Blöcke 618-620 in 6).
  • Anschließend tritt eine dritte Dienstintervallgrenze 720 auf. Wie bei den Sequenznummern in dem zweiten Dienstintervall sind die durch die DFP-Vorrichtung 106 verwendeten Sequenznummern nach der dritten Dienstintervallgrenze 720 mit einem Doppelhochkomma (z. B. 0", 1") angegeben, und die durch die Hostvorrichtung 102 verwendeten Sequenznummern nach der dritten Dienstintervallgrenze 720 sind mit einem Hochkomma (z. B. 0', 1') angegeben, wobei dies nur in der vorliegenden Erörterung zur eindeutigen Unterscheidung erfolgt.
  • Nach der dritten Dienstintervallgrenze 720 überträgt die Hostvorrichtung 102 an Punkt 746 ihr nächstes Datenanforderungspaket. An diesem Punkt hat die UFP-Vorrichtung 104 Datenpakete bereitgestellt, die mit Sequenznummern 0-8 assoziiert sind, und die DFP-Vorrichtung 106 hat zusätzliche Datenpakete übertragen, die mit Sequenznummern 0'-11' assoziiert sind, um den Puffer der UFP-Vorrichtung 104 wieder zu füllen. Dementsprechend speichert die UFP-Vorrichtung 104 derzeit Datenpakete, die mit Sequenznummern 0'-11' assoziiert sind. Daher stellt die UFP-Vorrichtung 104 an Punkt 752 die nächsten Datenpakete als Reaktion auf das Datenanforderungspaket von der Hostvorrichtung 102 aus der Sequenz bereit.
  • Die DFP-Vorrichtung 106 empfängt an Punkt 753 das Datenanforderungspaket von der UFP-Vorrichtung 104 und inkrementiert den Freier-Puffer-Zählwert an Punkt 754 entsprechend. Die restlichen Handlungen, wie etwa die Erzeugung des synthetischen Datenanforderungspakets an Punkt 755 und die Übertragung einer Anzahl von Datenpaketen als Reaktion durch die USB-Vorrichtung 108 an Punkt 756 sind anderen oben erörterten Punkten ähnlich und werden daher der Kürze halber hier nicht erneut beschrieben. Es versteht sich, dass die Sequenz fortfährt, während die Hostvorrichtung 102 und die USB-Vorrichtung 108 den Austausch von Informationen über das Erweiterungsmedium fortsetzen.
  • Obgleich veranschaulichende Ausführungsformen veranschaulicht und beschrieben wurden, versteht es sich, dass verschiedene Änderungen daran vorgenommen werden können, ohne vom Wesen und Schutzumfang der 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 Patentliteratur
    • WO 63/173832 [0001]
    • US 10552355 [0021]

Claims (10)

  1. Verfahren zum Verwalten einer Kommunikation zwischen einer Hostvorrichtung und einer USB-Vorrichtung über ein Nicht-USB-Erweiterungsmedium, wobei das Verfahren Folgendes umfasst: Empfangen, durch eine Downstream-gerichteter-Port-Vorrichtung (DFP-Vorrichtung), eines Datenanforderungspakets von einer Upstream-gerichteter-Port-Vorrichtung (UFP-Vorrichtung) über das Nicht-USB-Erweiterungsmedium; Bestimmen, durch die DFP-Vorrichtung, einer Anzahl von der USB-Vorrichtung anzufordernder Datenpakete, wobei die Anzahl anzufordernder Datenpakete auf einem Freier-Puffer-Zählwert basiert und wobei der Freier-Puffer-Zählwert durch die DFP-Vorrichtung verfolgt wird, um eine auf der UFP-Vorrichtung verfügbare Menge eines Pufferplatzes zu repräsentieren; Erzeugen, durch die DFP-Vorrichtung, eines synthetischen Datenanforderungspakets, wobei das synthetische Datenanforderungspaket einen Pufferzählwert beinhaltet und wobei der Pufferzählwert auf der bestimmten Anzahl von der USB-Vorrichtung anzufordernder Datenpakete basiert; Empfangen, durch die DFP-Vorrichtung, eines Satzes von Datenpaketen von der USB-Vorrichtung als Reaktion auf das synthetische Datenanforderungspaket; und Übertragen, durch die DFP-Vorrichtung, des Satzes von Datenpaketen über das Nicht-USB-Erweiterungsmedium an die UFP-Vorrichtung.
  2. Verfahren nach Anspruch 1, das ferner Folgendes umfasst: Dekrementieren, durch die DFP-Vorrichtung, des Freier-Puffer-Zählwerts um eine Anzahl von Datenpaketen in dem von der USB-Vorrichtung empfangenen Satz von Datenpaketen.
  3. Verfahren nach Anspruch 2, wobei die Anzahl von Datenpaketen in dem von der USB-Vorrichtung empfangenen Satz von Datenpaketen kleiner oder gleich dem Pufferzählwert ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, das ferner Folgendes umfasst: Empfangen, durch die DFP-Vorrichtung, eines nachfolgenden Datenanforderungspakets von der UFP-Vorrichtung, wobei das nachfolgende Datenanforderungspaket einen zweiten Pufferzählwert beinhaltet; und Inkrementieren, durch die DFP-Vorrichtung, des Freier-Puffer-Zählwerts um den zweiten Pufferzählwert.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei der von der USB-Vorrichtung empfangene Satz von Datenpaketen ein Datenpaket beinhaltet, das ein Ende eines Burst angibt, und wobei das Verfahren ferner Folgendes umfasst: Aktualisieren, durch die DFP-Vorrichtung, eines Vorheriges-LPF-Trackers basierend auf dem Datenpaket, das das Ende des Burst angibt.
  6. Verfahren nach Anspruch 5, wobei das Aktualisieren des Vorheriges-LPF-Trackers basierend auf dem Datenpaket, das das Ende des Burst angibt, Hinzufügen eines Eintrags zu einer FIFO-Warteschlange beinhaltet, der angibt, dass das Datenpaket, das das Ende des Burst angibt, empfangen wurde.
  7. Verfahren nach Anspruch 5 oder 6, das ferner Folgendes umfasst: Empfangen, durch die DFP-Vorrichtung, eines nachfolgenden Datenanforderungspakets von der UFP-Vorrichtung; Bestimmen, durch die DFP-Vorrichtung basierend auf dem Vorheriges-LPF-Tracker, dass durch die UFP-Vorrichtung als Reaktion auf das nachfolgende Datenanforderungspaket übertragene Datenpakete das Datenpaket beinhalten, das das Ende des Burst angibt; und Inkrementieren, durch die DFP-Vorrichtung, des Freier-Puffer-Zählwerts basierend auf einer durch den Vorheriges-LPF-Tracker angegebenen Anzahl zu übertragender Datenpakete, bis das Datenpaket, das das Ende des Burst angibt, erreicht ist.
  8. Verfahren nach einem der Ansprüche 5 bis 7, wobei das Datenpaket, das das Ende des Burst angibt, ein Datenpaket mit gesetztem Letztes-Paket-Flag (LPF) ist.
  9. Downstream-gerichteter-Port-Vorrichtung (DFP-Vorrichtung), die Folgendes umfasst: eine USB-Bitübertragungsschichtschnittstelle, die dazu ausgelegt ist, kommunikativ mit einer USB-Vorrichtung gekoppelt zu werden; eine Fernschnittstelle, die dazu ausgelegt ist, kommunikativ mit einem Nicht-USB-Erweiterungsmedium gekoppelt zu werden; einen Speicher, der einen Freier-Puffer-Zählwert speichert; und eine Logik, die als Reaktion auf eine Ausführung durch die DFP-Vorrichtung bewirkt, dass die DFP-Vorrichtung ein Verfahren nach einem der Ansprüche 1 bis 8 durchführt.
  10. Nichtflüchtiges computerlesbares Medium mit darauf gespeicherten computerausführbaren Anweisungen, die als Reaktion auf eine Ausführung durch eine Downstream-gerichteter-Port-Vorrichtung (DFP-Vorrichtung) bewirken, dass die DFP-Vorrichtung ein Verfahren nach einem der Ansprüche 1 bis 8 durchführt.
DE102022108581.3A 2021-04-12 2022-04-08 Vorhersagen von freiem Pufferplatz in einer USB-Erweiterungsumgebung Pending DE102022108581A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163173832P 2021-04-12 2021-04-12
US63/173,832 2021-04-12
US17/713,072 US20220327088A1 (en) 2021-04-12 2022-04-04 Predicting free buffer space in a usb extension environment
US17/713,072 2022-04-04

Publications (1)

Publication Number Publication Date
DE102022108581A1 true DE102022108581A1 (de) 2022-10-13

Family

ID=83361649

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022108581.3A Pending DE102022108581A1 (de) 2021-04-12 2022-04-08 Vorhersagen von freiem Pufferplatz in einer USB-Erweiterungsumgebung

Country Status (3)

Country Link
US (1) US20220327088A1 (de)
CN (1) CN115203102A (de)
DE (1) DE102022108581A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978810A (zh) * 2022-06-16 2022-08-30 深圳市欣博跃电子有限公司 基于混合网络的usb数据通信方法、装置及计算机设备

Citations (1)

* 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

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100409606C (zh) * 2001-08-24 2008-08-06 英特尔公司 管理数据完整性的通用输入/输出体系结构、协议和方法
US20060294312A1 (en) * 2004-05-27 2006-12-28 Silverbrook Research Pty Ltd Generation sequences
JP5575229B2 (ja) * 2009-05-20 2014-08-20 クロノロジック プロプライエタリー リミテッド 分散型の同期されたクロックアーキテクチャのためのジッタ低減方法およびジッタ低減装置
US8825925B1 (en) * 2011-02-14 2014-09-02 Cypress Semiconductor Corporation Systems and methods for super speed packet transfer
US20130010617A1 (en) * 2011-07-07 2013-01-10 Qualcomm Atherons, Inc. Relative position determination of wireless network devices
US9569390B2 (en) * 2012-04-20 2017-02-14 Combined Conditional Access Development And Support, Llc Protocol for communication
WO2017046789A1 (en) * 2015-09-15 2017-03-23 Gatekeeper Ltd. System and method for securely connecting to a peripheral device
US11604741B2 (en) * 2019-02-15 2023-03-14 Intel Corporation Method for dynamically provisioning virtualized functions in a USB device by means of a virtual USB hub

Patent Citations (1)

* 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

Also Published As

Publication number Publication date
CN115203102A (zh) 2022-10-18
US20220327088A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
DE60002446T2 (de) Verfahren und vorrichtung zur erweiterung des usb-protokollbereichs
DE102012208803B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE69636029T2 (de) Verfahren und Vorrichtung zur Datenübertragung
DE102018124173A1 (de) Verfahren und Vorrichtungen zum Erweitern von USB-3.0-Konformer Kommunikation über ein Erweiterungsmedium
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE69922065T2 (de) Namensverwaltung eines hochkonfigurierbaren Mehrknoten-EDV-Systems
DE102012209011B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE102007012054B4 (de) Mehrmasterverkettungszweidrahtseriellbus
DE69923243T2 (de) Dynamische und konsistente Namensverwaltung von Speicher der zu einer Kommunikationsstelle verbunden ist
DE102012209009B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE102012209016A1 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE102008030587A1 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem
DE69733305T2 (de) System/Verfahren zur wirkungsvollen Übermittlung von Datenströmen in einem Multimediasystem
DE112017001808T5 (de) Technologien für einen verteilten hardwarewarteschlangenmanager
DE102011008793A1 (de) Nachrichtenweitergabe-Rahmenwerk für Audio-/Video-Streaming in einer Topologie von Geräten
DE102008055892A1 (de) Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich
DE102013020277A1 (de) Bit-timing-symmetrisierung
DE102014110423A1 (de) Techniken zum Bewegen von Daten zwischen einem Netzwerk-Eingabe/Ausgabe-Gerät und einem Speichergerät
DE102005005342A1 (de) Busanordnung, Master- und Slave-Einheit sowie Datenlese- und Datenübertragungsverfahren
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE112013000812T5 (de) Variable Bestätigungsrate zum Verringern von Buskonflikt in Gegenwart von Datenübertragungsfehlern
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE102022108581A1 (de) Vorhersagen von freiem Pufferplatz in einer USB-Erweiterungsumgebung