DE102022104187A1 - Verfahren und vorrichtung zum sparen von leistung in usb-repeatern/retimern - Google Patents

Verfahren und vorrichtung zum sparen von leistung in usb-repeatern/retimern Download PDF

Info

Publication number
DE102022104187A1
DE102022104187A1 DE102022104187.5A DE102022104187A DE102022104187A1 DE 102022104187 A1 DE102022104187 A1 DE 102022104187A1 DE 102022104187 A DE102022104187 A DE 102022104187A DE 102022104187 A1 DE102022104187 A1 DE 102022104187A1
Authority
DE
Germany
Prior art keywords
packet
usb
host
peripheral
port
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
DE102022104187.5A
Other languages
English (en)
Inventor
Godwin Arulappan
Pradeep Kumar Bajpai
Anup Nayak
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.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor 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 Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Publication of DE102022104187A1 publication Critical patent/DE102022104187A1/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
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Software Systems (AREA)

Abstract

Es werden Techniken zum Sparen von Leistung in einem USB-Repeater/Retimer (USB = Universal Serial Bus) zwischen einem USB-Host und einem Peripheriegerät durch Abfangen von vom Host empfangenen Paketen zum Vorhersagen der Richtung des Datenverkehrs zu einer selektiven Ab- und Anschaltung einer Schaltung eines zum Empfangen von Paketen vom Peripheriegerät genutzten Peripherieports offenbart. Wenn ein Hostport bestimmt, dass der Host gerade ein SOF-Paket (SOF = Start Of Frame) sendet, verläuft der Datenfluss in der Richtung vom Host zum Peripheriegerät, und der Repeater kann den Peripherieport, etwa ein Squelch, abschalten. Wenn der Hostport bestimmt, dass der Host gerade ein Nicht-SOF-Paket, etwa ein Adresstoken, sendet, das einer Datenübertragung vom Host an das Peripheriegerät oder einer Datenübertragung vom Peripheriegerät an den Host vorausgeht, wird prognostiziert, dass der Datenfluss in der Richtung vom Peripheriegerät zum Host verläuft, und der Repeater kann die abgeschaltete Schaltung des Peripherieports wiedereinschalten.

Description

  • GEBIET DER TECHNIK
  • Diese Offenbarung betrifft allgemein USB-Systeme (USB = Universal Serial Bus) und insbesondere Verfahren und Systeme zum Sparen von Leistung in USB-Repeatern/Retimern.
  • ALLGEMEINER STAND DER TECHNIK
  • Verschiedene elektronische Geräte (z. B. Smartphones, Tablets, Notebook-Computer, Laptop-Computer, Hubs, Ladegeräte oder Adapter) sind zum Kommunizieren von Daten oder Übertragen von Leistung durch ein USB-Steckverbindersystem konfiguriert. Geräte eines USB-Systems können bei verschiedenen Datenraten kommunizieren. Bei einigen Anwendungen wird ein Repeater/Retimer-Gerät in einem USB-Hub genutzt, um diverse, bei unterschiedlichen Datenraten betriebene Geräte mit einem Host zu verbinden. Das Repeater/Retimer-Gerät, das auch einfach als Repeater bezeichnet wird, kann ein USB-Paket, das von einem Host bei einer höheren Datenrate gesendet wird, empfangen und das USB-Paket bei der gleichen oder einer niedrigeren Datenrate an ein oder mehrere in der Downstream-Richtung befindliche Geräte weitersenden. Ebenso kann der Repeater ein USB-Paket, das von einem in der Downstream-Richtung befindlichen Gerät bei einer bestimmten Datenrate gesendet wird, empfangen und das USB-Paket bei der gleichen oder einer höheren Datenrate an einen Host weitersenden. Weil USB-Systeme aufgrund der Forderung nach immer höheren Durchsätzen immer höhere Datenraten unterstützen müssen und weil USB-Repeater jetzt mehr parallele Datenkanäle unterstützen und in tragbaren Geräten bereits integriert sind, besteht eine wichtige Vorgabe bei der technischen Ausgestaltung darin, dass USB-Repeater möglichst wenig Leistung verbrauchen.
  • Der Leistungsverbrauch eines Repeaters kann ohne eine Beeinträchtigung des Datendurchsatzes etwa dann minimiert werden, wenn der Repeater in einem Ruhezustand ist, in dem er keine Datenübertragung durchführt und auf den Empfang von Paketen wartet. Solange nämlich in den Empfangsschaltungen in beiden Ports des Repeaters Strom fließt, damit er für einen Empfang von Daten über diese Ports bereit ist, während er im Ruhezustand ist, wird beträchtlich viel Leistung aufgebraucht. Mit einer Methode zur Prognostizierung des Zeitpunkts des Eintreffens eines Datenpakets oder des Ruhezustands kann ermöglicht werden, dass die Empfangsschaltung zum Sparen von Leistung ausgeschaltet wird. Dies erweist sich jedoch möglicherweise als schwierig, weil dem Repeater beim Weiterleiten von Datenpaketen zwischen den Ports das Datentransaktionsprotokoll zwischen dem Host und dem Gerät nicht bekannt ist. Müsste der Repeater Datenpakete abfangen, um das Datentransaktionsprotokoll zwischen dem Host und dem Gerät zu bestimmen, würde dadurch ein beträchtlicher Overhead entstehen, und eventuelle Leistungseinsparungen infolge der Ausschaltung der Empfangsschaltung würden möglicherweise wieder aufgehoben werden. Mithin besteht ein Bedarf an einer möglichst wenig komplexen und geringe Kosten mit sich bringenden Methode zum Senken des Leistungsverbrauchs, wenn der Repeater im Ruhezustand ist.
  • Figurenliste
  • Die beschriebenen Ausführungsformen und deren Vorteile werden am besten unter Bezugnahme auf die folgende Beschreibung in Verbindung mit den beiliegenden Zeichnungen verstehbar. Aufgrund dieser Zeichnungen bestehen keine Einschränkungen für Änderungen hinsichtlich der Form und der Einzelheiten, die der Fachmann an den beschriebenen Ausführungsformen vornehmen kann, ohne vom Gedanken und vom Schutzbereich der beschriebenen Ausführungsformen abzuweichen.
    • 1 ist ein Blockschaltbild, das ein Repeater-Gerät (oder einfach einen Repeater) eines USB-Systems, das zum Repeating von Datenpaketen zwischen einem eUSB2-Port (eUSB2 = embedded USB2) und einem USB2-Port genutzt wird, gemäß einem Aspekt der vorliegenden Offenbarung veranschaulicht;
    • 2 ist ein Blockschaltbild, das das eUSB-Repeater-Subsystem gemäß 1, das zum Repeating von Datenpaketen zwischen einem eUSB2-Hostport und einem USB2-Peripherieport genutzt wird, gemäß einem Aspekt der vorliegenden Offenbarung veranschaulicht;
    • 3 veranschaulicht ein Blockschaltbild des Datenflusses eines USB-Repeater/Retimer-Geräts, das vom Host empfangene USB-Pakete abfängt, um die Richtung des Datenflusses zum Steuern des Betriebs des Peripherie-Empfangsports vorherzusagen, gemäß einem Aspekt der vorliegenden Offenbarung;
    • 4 veranschaulicht ein Funktionsblockschaltbild des USB-Repeater/Retimer-Geräts gemäß 3, das so betrieben wird, dass es vom Host empfangene USB-Pakete abfängt, um den Peripherie-Empfangsport zum Sparen von Leistung im Ruhezustand zu steuern, gemäß einem Aspekt der vorliegenden Offenbarung;
    • 5 veranschaulicht eine Zustandsmaschine eines USB-Repeater/Retimer-Geräts, das USB-Pakete im Host-Empfangsport überwacht, um den Betrieb des Peripherie-Empfangsports zum Sparen von Leistung im Ruhezustand zu steuern, gemäß einem Aspekt der vorliegenden Offenbarung;
    • 6 veranschaulicht ein Zeitverlaufsdiagramm des Host-Empfangsports eines USB-Repeaters/Retimers, der die USB-Pakete vom Host überwacht, um in einem ersten Szenario einer Host- und Gerätedatentransaktion den Peripherie-Empfangsport auszuschalten, wenn ein SOF-Paket (SOF = Start Of Frame) empfangen wird, oder den Peripherie-Empfangsport einzuschalten, wenn ein Nicht-SOF-Paket empfangen wird, gemäß einem Aspekt der vorliegenden Offenbarung;
    • 7 veranschaulicht ein Zeitverlaufsdiagramm des Host-Empfangsports eines USB-Repeaters/Retimers, der die USB-Pakete vom Host überwacht, um in einem zweiten Szenario einer Host- und Gerätedatentransaktion den Peripherie-Empfangsport auszuschalten, wenn ein SOF-Paket empfangen wird, oder den Peripherie-Empfangsport einzuschalten, wenn ein Nicht-SOF-Paket empfangen wird, gemäß einem Aspekt der vorliegenden Offenbarung;
    • 8 ist ein Ablaufschema eines Verfahrens, bei dem ein Repeater/Retimer vom Host empfangene USB-Pakete überwacht, um den Betrieb des Peripherie-Empfangsports zum Sparen von Leistung im Ruhezustand zu steuern, gemäß einem Aspekt der vorliegenden Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Hierin werden verschiedene Aspekte und Variationen der vorliegenden Technik anhand von Beispielen beschrieben und in den beiliegenden Zeichnungen veranschaulicht. Die folgende Beschreibung soll die Erfindung nicht auf diese Ausführungsformen beschränken, sondern soll vielmehr den Fachmann dazu befähigen, diese Erfindung praktisch anzuwenden und zu verwerten.
  • Hierin werden verschiedene Aspekte von Techniken zum Sparen von Leistung in einem USB-Repeater/Retimer beschrieben, der konfiguriert ist, um Pakete zwischen einem USB-Host und einem Peripheriegerät auszutauschen, indem er vom Host empfangene Pakete abfängt, um die Richtung des Datenverkehrs, wenn der Repeater in einem Ruhezustand ist, vorherzusagen. Im Ruhezustand erfolgt keine Datenübertragung zwischen dem Host und dem Peripheriegerät und der Repeater wartet auf einen Empfang von Daten. Ein Hostport des Repeaters kann vom Host empfangene USB-Pakete abfangen, um die Richtung des Datenflusses zu einer selektiven Ab- und Anschaltung der Empfangsschaltung im Peripherieport vorherzusagen. Wenn der Hostport gemäß einem Aspekt bestimmt, dass der Host gerade ein SOF-Paket sendet, verläuft der Datenfluss in der Richtung vom Host zum Peripheriegerät, und der Repeater kann die für das Empfangen und Repeating des Verkehrs vom Peripheriegerät genutzte Schaltung im Peripherieport zum Sparen von Leistung abschalten. Wenn der Hostport bestimmt, dass der Host gerade ein Nicht-SOF-Paket, etwa ein Adresstoken, vor dem Übermitteln von Daten vom Host an das Peripheriegerät oder zum Anfordern von Daten vom Peripheriegerät sendet, wird prognostiziert, dass der Datenfluss in der Richtung vom Peripheriegerät zum Host verläuft, und der Repeater kann die abgeschaltete Schaltung des Peripherieports für den Repeater wieder einschalten, um ein Handshake-Paket oder ein Datenpaket vom Peripheriegerät zu empfangen.
  • Zu mit dem USB-Repeater verbundenen Peripheriegeräten zählen zum Beispiel unter anderem Personal Computer (z. B. Laptop- oder Notebook-Computer), mobile Computergeräte (z. B. Tablets, Tablet-Computer oder E-Reader-Geräte), mobile Kommunikationsgeräte (z. B. Smartphones, Handys, Personal Digital Assistants, Nachrichtenübertragungsgeräte oder Taschen-PCs), Verbindungs- und Ladegeräte (z. B. Hubs, Dockingstationen, Adapter oder Ladegeräte), Ton-/Video-/Datenaufnahme- und/oder -wiedergabegeräte (z. B. Kameras, Voicerekorder, Handscanner oder Monitore) sowie andere, ähnliche elektronische Geräte, die USB-Steckverbinder (USB-Schnittstellen) für die Kommunikation und/oder die Batterieaufladung nutzen können.
  • Ein elektronisches Gerät oder ein System, wie hierin genutzt, wird als „USBfähig“ oder „USB-konform“ bezeichnet, wenn das elektronische Gerät oder das System mit mindestens einer Version einer USB-Spezifikation konform ist. Zu diesen USB-Spezifikationen gehören beispielsweise unter anderem die USB-Spezifikation Version 2.0, die USB-3.0.-Spezifikation, die USB-3.1.-Spezifikation und/oder verschiedene Erweiterungen (z. B. On-The-Go oder OTG), Versionen und Korrekturen davon. Die USB-Spezifikationen definieren allgemein die Eigenschaften (z. B. Attribute, Protokolldefinition, Transaktionstypen, Busverwaltung oder Programmierschnittstellen) eines differenziellen seriellen Busses, die für das Entwerfen und Fertigen von Standardkommunikationssystemen und -peripheriegeräten erforderlich sind.
  • Ein USB-fähiges elektronisches Peripheriegerät ist zum Beispiel über einen USB-Port eines USB-fähigen Hostgeräts an das Hostgerät angeschlossen, wodurch ein USB-fähiges System gebildet wird. In dem Hostgerät kann ein USB-Repeater für die Durchführung von Retimings und Spannungspegelverschiebungen zwischen dem seriellen Bus auf der Hostseite, die bei einer niedrigeren Kernspannung des Hostgeräts läuft, und den seriellen Daten auf der Peripherieseite, die mit der USB-Spezifikation konform ist, eingebettet sein. Ein USB-2.0-Port (oder einfach USB2-Port) umfasst möglicherweise eine 5-Volt-Stromleitung (z. B. VBUS), ein differenzielles Paar Datenleitungen (die z. B. mit D+ oder DP und D- oder DN bezeichnet werden) und eine Masseleitung (z. B. GND) als Stromrückleitung. Ein USB-3.0-Port stellt zudem die VBUS-, D+-, D-- und GND-Leitungen für eine Abwärtskompatibilität mit USB 2.0 bereit. Außerdem stellt ein USB-3.0-Port zur Unterstützung eines schnelleren differenziellen Busses (des USB-SuperSpeed-Busses) zusätzlich ein differenzielles Paar Sender-Datenleitungen (die mit SSTX+ bzw. SSTX- bezeichnet werden), ein differenzielles Paar Empfänger-Datenleitungen (die mit SSRX+ bzw. SSRX- bezeichnet werden), eine Stromversorgungsleitung für den Strom (die z. B. mit DPWR bezeichnet wird) und eine Masseleitung als Stromrückleitung (die z. B. mit DGND bezeichnet wird) bereit. Ein USB-3.1-Port stellt dieselben Leitungen wie ein USB-3.0-Port für die Abwärtskompatibilität mit USB-2.0- und USB-3.0-Kommunikationen bereit, erhöht jedoch die Performance des SuperSpeed-Busses durch eine Reihe von Merkmalen, die mit Enhanced SuperSpeed bezeichnet werden.
  • Eine jüngere Technologie für USB-Steckverbinder, die mit USB Typ C bezeichnet wird und in verschiedenen Versionen der USB-Typ-C-Spezifikation definiert worden ist, stellt eine USB-Buchse, einen USB-Stecker und USB-Kabel vom Typ C bereit, die USB-Kommunikationen sowie die Stromversorgung über neuere USB-Stromversorgungsprotokolle, die zum Beispiel in einer oder mehreren Versionen der USB-PD-Spezifikationen (USB-PD = USB Power Delivery) definiert sind, unterstützen können. Ein „USB-Typ-C-Subsystem“, wie hierin genutzt, bezieht sich zum Beispiel möglicherweise auf eine Hardwareschaltungsanordnung, die durch Firmware und/oder Software in einem IC-Controller (IC = integrierte Schaltung) steuerbar ist, wobei der IC-Controller konfiguriert und betreibbar ist, um die Funktionen durchzuführen und die Vorgaben zu erfüllen, die in mindestens einer Version der USB-Typ-C-Spezifikation spezifiziert sind.
  • Einige elektronische Geräte nutzen möglicherweise eine für eine niedrige Spannung ausgelegte USB-2.0-Schnittstelle, die für Leistung optimiert ist, die mit der eUSB2-Physical-Layer-Spezifikation (z. B. Version 1.1 oder höher), einer USB2.0-Erweiterung, die auch als embedded USB (eUSB oder eUSB2) bezeichnet wird, konform ist. eUSB nutzt eine 1,2-Volt-Signalisierung zum Entkoppeln externer USB-2.0- und/oder USB-Typ-C-Ports von inneren Bauteilen elektronischer Geräte, die mit Knoten mit einer einfacheren Technik, die bei niedrigeren Spannungen laufen, gefertigt werden. Ein High-Speed-Repeater zwischen einem USB-fähigen Hostgerät und einem USB-konformen elektronischen Gerät kann Signale unter Nutzung der Standards eUSB und USB 2.0 umwandeln.
  • Ein USB-konformes elektronisches Gerät kann über einen oder mehrere Hubs mit einem USB-fähigen Hostgerät verbunden werden, wodurch ein USB-fähiges System gebildet wird. Das Gerät kann über den einen oder die mehreren Hubs unter Nutzung von USB-2.0- und/oder USB-Typ-C-Ports Datenpakete mit dem Host austauschen und Leistung vom Host empfangen. Ein Hub ermöglicht dem Host, dass zwischen dem Host und diversen, bei unterschiedlichen Datenraten betriebenen Geräten eine Verbindung hergestellt wird. Ein Repeater im Hub kann ein vom Host bei einer höheren Datenrate gesendetes USB-Paket empfangen und das USB-Paket bei der gleichen oder einer niedrigeren Datenrate an die Geräte weitersenden. Gemäß USB 2.0 kann das USB-fähige System bei High-Speed (HS) mit einer maximalen Datenrate von 480 Megabit pro Sekunde (Mbit/s) betrieben werden. Die Übertragungsgeschwindigkeit der Geräte kann, falls nötig, auf 12 Mbit/s bei Full-Speed (FS) oder 1,5 Mbit/s bei Low-Speed (LS) gemäß USB 1.0 reduziert werden. Ein mit USB 2.0 konformer Repeater kann die Retiming-Funktionalität für High-Speed, Full-Speed und Low-Speed unterstützen.
  • 1 ist ein Blockschaltbild, das einen Repeater 100 eines USB-Subsystems gemäß einem Aspekt der vorliegenden Offenbarung veranschaulicht. Ein solches USB-Subsystem kann als Teil und/oder innerhalb eines USB-fähigen Systems wie eines USB-2.0-Hubs oder einer USB-2.0-Dockingstation implementiert werden. Der Repeater 100 kann in einem auf einem IC-Die gefertigten IC-Controller, wie etwa einem IC-Controller eines USB-Hubs, eingebettet sein. In einem weiteren Beispiel handelt es sich bei dem Repeater 100 möglicherweise um einen als System-on-Chip (SoC) gefertigten Einchip-IC. Bei dem Repeater 100 handelt es sich möglicherweise um einen eUSB/USB-Repeater, der die Repeating-Funktionalität zwischen einem eUSB2-Port, der mit der eUSB2-Physical-Layer-Spezifikation 1.1, einer Erweiterung der USB-2.0-Spezifikation, konform ist, und einem mit USB 2.0 konformen USB2-Port durchführt. In einem weiteren Beispiel führt der Repeater 100 die Repeating-Funktionalität möglicherweise zwischen zwei USB2-Ports durch.
  • Der Repeater 100 kann neben noch weiteren Komponenten ein CPU-Subsystem 102, eine Systemverbindungsleitung 112, eine Peripherieverbindungsleitung 114, Systemressourcen 116, verschiedene Ein-/Ausgabe-Blöcke (E/A-Blöcke) (z. B. 118A-118C) und ein eUSB-Repeater-Subsystem 124 umfassen. Zusätzlich stellt der Repeater 100 eine Schaltungsanordnung und Firmware bereit, die so konfiguriert und betreibbar sind, dass sie eine Reihe von Leistungszuständen 122 unterstützen. Das CPU-Subsystem 102 kann eine oder mehrere CPUs (Hauptprozessoren) 104, einen Flash-Speicher 106, ein SRAM (Static Random Access Memory) 108 und ein ROM (Read Only Memory) 110, die an die Systemverbindungsleitung 112 gekoppelt sind, umfassen. Bei der CPU 104 handelt es sich um einen geeigneten Prozessor, der in einem System-on-Chip-Element betrieben werden kann. In einigen Ausführungsformen ist die CPU 104 möglicherweise für einen Energiesparbetrieb mit einem umfassenden Clock Gating optimiert und kann verschiedene innere Controllerschaltungen umfassen, aufgrund derer die CPU 104 in verschiedenen Leistungszuständen betrieben werden kann.
  • Die CPU 104 umfasst zum Beispiel möglicherweise einen Wakeup-Interrupt-Controller, der konfiguriert ist, um die CPU 104 aus einem Schlafzustand zu reaktivieren, wodurch der Strom auf „AUS“ geschaltet wird, wenn der Repeater 100 im Schlafzustand ist. Der Flash-Speicher 106 kann ein Programmspeicher von einem beliebigen Typ sein (z. B. ein NAND-Flash-Speicher oder ein NOR-Flash-Speicher), der für das Speichern von Daten und/oder Programmen konfigurierbar ist. Das SRAM 108 kann ein flüchtiger oder nicht flüchtiger Speicher von einem beliebigen Typ sein, der für die Speicherung von Daten und Firmware-/Softwarebefehlen, auf die die CPU 104 zugreift, geeignet ist. Das ROM 110 kann ein beliebiger geeigneter Datenspeicher sein, der für die Speicherung von Boot-Routinen, Konfigurationsparametern und sonstigen System-on-Chip-Firmwareparametern und -einstellungen konfigurierbar ist. Bei der Systemverbindungsleitung 112 handelt es sich um einen Systembus (z. B. einen Advanced High-Performance Bus oder AHB für eine oder mehrere Ebenen), der als eine die verschiedenen Komponenten des CPU-Subsystems 102 aneinander koppelnde Schnittstelle und als eine Daten- und Steuerschnittstelle zwischen den verschiedenen Komponenten des CPU-Subsystems und der Peripherieverbindungsleitung 114 konfiguriert ist.
  • Bei der Peripherieverbindungsleitung 114 handelt es sich um einen Peripheriebus (z. B. einen AHB für eine oder mehrere Ebenen), der die primäre Daten- und Steuerschnittstelle zwischen dem CPU-Subsystem 102 und seinen Peripherieeinheiten und anderen Ressourcen wie den Systemressourcen 116, den E/A-Blöcken (z. B. 118A-118C) und dem eUSB-Repeater-Subsystem 124 bereitstellt. Die Peripherieverbindungsleitung 114 kann verschiedene Controllerschaltungen (z. B. Direct-Memory-Access- oder DMA-Controller) umfassen, die derart programmiert sind, dass sie Daten zwischen Peripherieblöcken übertragen, ohne das CPU-Subsystem zu belasten. In verschiedenen Ausführungsformen handelt es sich je nach der Wahl oder dem Typ der CPU, des Systembusses und/oder des Peripheriebusses bei allen Komponenten des CPU-Subsystems 102 und der Peripherieverbindungsleitung 114 jeweils um unterschiedliche Komponenten.
  • Die Systemressourcen 116 können verschiedene elektronische Schaltungen umfassen, die den Betrieb des Repeaters 100 in seinen verschiedenen Status und Modi unterstützen. Die Systemressourcen 116 umfassen zum Beispiel möglicherweise ein Leistungssubsystem, das die für jeden Controllerstatus/-modus erforderlichen Leistungsressourcen wie zum Beispiel Spannungs- und/oder Stromreferenzen, einen Wakeup-Interrupt-Controller (WIC) oder ein Power-On-Reset (POR) bereitstellt. In einigen Ausführungsformen umfasst das Leistungssubsystem der Systemressourcen 116 möglicherweise auch Schaltungen, aufgrund derer der Repeater 100 externen Quellen mit etlichen unterschiedlichen Spannungs- und/oder Strompegeln Leistung entnehmen und/oder ihnen Leistung zuführen kann. Die Systemressourcen 116 umfassen möglicherweise auch ein Taktsubsystem, das verschiedene Takte, die vom Repeater 100 genutzt werden, bereitstellt, sowie Schaltungen, die verschiedene Controllerfunktionen, wie etwa eine externe Zurücksetzung, implementieren.
  • Ein IC-Controller, wie etwa der Repeater 100, kann in verschiedenen Ausführungsformen und Implementierungen E/A-Blöcke und Subsysteme von diversen unterschiedlichen Typen umfassen. In der in 1 veranschaulichten Ausführungsform umfasst der Repeater 100 zum Beispiel möglicherweise GPIO-Blöcke 118A (GPIO = General Purpose Input Output, universeller Ein-/Ausgang), TCPWM-Blöcke 118B (TCPWM = Timer/Counter/Pulse Width Modulation, Zeitgeber/Zähler/Pulsbreitenmodulation), SCBs (Serial Communication Blocks, Blöcke für serielle Kommunikation) 118C und das eUSB-Repeater-Subsystem 124. Die GPIOs 118A umfassen Schaltungen, die konfiguriert sind, um verschiedene Funktionen wie zum Beispiel Pull-Ups, Pull-Downs, die Auswahl von Eingabeschwellenwerten, die Eingabe- und Ausgabepufferaktivierung/-deaktivierung oder das Multiplexen von Signalen, die mit verschiedenen E/A-Pins verbunden sind, zu implementieren. Die TCPWMs 118B umfassen Schaltungen, die konfiguriert sind, um Zeitgeber, Zähler, Pulsbreitenmodulatoren, Decoder und verschiedene andere zur Bearbeitung von Eingangs-/Ausgangssignalen konfigurierte Analog-/Mischsignalelemente zu implementieren. Die SCBs 118C umfassen Schaltungen, die konfiguriert sind, um verschiedene Schnittstellen für serielle Kommunikation wie zum Beispiel I2C, SPI (Serial Peripheral Interface) oder UART (Universal Asynchronous Receiver/Transmitter) zu implementieren.
  • In manchen Ausführungsformen kann das eUSB-Repeater-Subsystem 124 gemäß den hierin beschriebenen Techniken verwendet werden und kann zudem eine Unterstützung für USB-Kommunikationen über USB-Ports sowie andere USB-Funktionen wie eine Stromversorgung oder eine Batterieaufladung bereitstellen. Das eUSB-Repeater-Subsystem 124 ist zum Beispiel möglicherweise ein USB-PD-Subsystem, ein USB-Typ-C-Subsystem oder beides (z. B. ein USB-Typ-C-Subsystem, das die USB-PD-Funktionalität unterstützt). Das eUSB-Repeater-Subsystem 124 umfasst möglicherweise einen Transceiver und eine Physical-Layer-Logik (PHY) 126, 128 für eUSB2 bzw. USB 2.0, die als integrierte Basisband-PHY-Schaltungen für die Durchführung von verschiedenen Funktionen für eine digitale Codierung/Decodierung (z. B. die Zweiphasenmarkierungscode-BMC-Codierung/-Decodierung oder zyklische Redundanzprüfungen, CRCs) sowie Analogsignalverarbeitungsfunktionen, die bei Physical-Layer-Übertragungen eine Rolle spielen, konfiguriert sind. Das eUSB-Repeater-Subsystem 124 kann als eUSB-Retiming-Repeater bezeichnet werden. In verschiedenen Ausführungsformen ist ein Repeater (wie z. B. das eUSB-Repeater-Subsystem 124) möglicherweise als eine Hardwarelogik implementiert, die verschiedene Bauelemente wie Logikgatter, Addierglieder, Multiplexer, Latche, Flip-Flops, Zähler, Register, Transistoren, Dioden, Widerstände, Kondensatoren und verschiedene zugehörige Schaltungen umfasst. Wie unten noch näher erörtert wird, umfasst das eUSB-Repeater-Subsystem 124 eine Schaltung zum Abfangen von vom Host über die eUSB-PHY 126 empfangenen Paketen zum Vorhersagen der Richtung des Datenverkehrs, wenn das eUSB-Repeater-Subsystem 124 in einem Ruhezustand ist. Die vorhergesagte Richtung des Datenverkehrs kann zu einer selektiven Ab- und Anschaltung der Empfangsschaltung in der USB-PHY 128, die mit einem Peripheriegerät verbunden ist, zum Sparen von Leistung genutzt werden.
  • 2 ist ein Blockschaltbild, das das zum Repeating von Datenpaketen zwischen einem eUSB2-Port und einem USB2-Port genutzte eUSB-Repeater-Subsystem 124 gemäß 1 gemäß einem Aspekt der vorliegenden Offenbarung veranschaulicht. Das eUSB-Repeater-Subsystem 124 umfasst einen seriellen Repeater 134, der konfiguriert ist, um an den Datenpaketen eine Retiming- und Repeating-Funktionalität durchzuführen, eine Serial Interface Engine 132, die konfiguriert ist, um Ereignisse im eUSB2-Port und im USB2-Port zu detektieren, und eine Repeater-Zustandsmaschine, die konfiguriert ist, um Zustände des seriellen Repeaters 134 basierend auf den detektierten Ereignissen zu bestimmen. Das eUSB-Repeater-Subsystem 124 kann durch die eUSB-PHY 126 und die USB-PHY 128 mit dem eUSB2-Port bzw. dem USB2-Port verbunden sein.
  • Die eUSB-PHY 126 kann mit einem Host oder einem dazwischen befindlichen Hub/Repeater verbunden sein, um vom Host gesendete Datenpakete über ein differenzielles Paar Datenleitungen DP und DM zu empfangen. Die USB-PHY 128 kann mit einem Peripheriegerät oder einem dazwischen befindlichen Hub/Repeater verbunden sein, um die Datenpakete über ein zweites differenzielles Paar Datenleitungen DP und DM bei derselben oder einer niedrigeren Datenrate an das Peripheriegerät weiterzusenden. Was Daten vom Gerät an den Host betrifft, kann die USB-PHY 128 vom Gerät gesendete Datenpakete empfangen, und die eUSB-PHY 126 kann die Datenpakete bei derselben oder einer niedrigeren Datenrate an den Host weitersenden. Hierbei können die Datenraten High-Speed, Full-Speed und Low-Speed unterstützt werden. Was High-Speed-Daten betrifft, umfassen die eUSB-PHY 126 und die USB-PHY 128 möglicherweise je einen Übertragungshüllkurvendetektor (der z. B. als eine Hardwarelogik implementiert ist) für die Durchführung einer CDR-Funktion (CDR = Clock and Data Recovery, Takt- und Datenrückgewinnung) für eine Synchronisierung mit den SYNC-Bits der empfangenen High-Speed-Datenpakete. Der Übertragungshüllkurvendetektor kann ein Squelch-Signal erzeugen, um ein Nichtvorhandensein von Daten anzuzeigen, wenn zwischen einem differenziellen Paar Datenleitungen ein Wert von 100 µV unterschritten wird.
  • Die Serial Interface Engine 132 kann die Aktivität im Hostport der eUSB-PHY 126 und im Geräteport der USB-PHY 128 überwachen, um Busereignisse zu decodieren und entsprechende Aktionen auszulösen. Die Serial Interface Engine 132 kann Busereignisse decodieren, um die Repeater-Zustandsmaschine 130 anzusteuern und den Datenweg von Paketen durch den seriellen Repeater 134 zu steuern. Die Serial Interface Engine 132 bestimmt zum Beispiel möglicherweise die Geschwindigkeit des Empfängers (z. B. High-Speed, Full-Speed oder Low-Speed), detektiert die Konfiguration des eUSB2-Ports und des USB2-Ports, überwacht den Zustand der Datenleitungen des Hosts oder des Geräts etc. und ermöglicht dadurch die Repeating- und Retiming-Funktionalität des seriellen Repeaters 134.
  • Gemäß einem Aspekt detektiert die Serial Interface Engine 132 ein durch den Hostport der eUSB-PHY 126 empfangenes SOF-Paket, um den Übertragungshüllkurvendetektor, der die Squelch-Detektionsschaltung im Geräteport der USB-PHY 128 umfasst, auszuschalten oder die Schaltung im seriellen Repeater 134, die zum Repeating und Retiming der vom Geräteport empfangenen Daten genutzt wird, auszuschalten. Der Host kann SOF-Pakete, die auch als SOF-Tokens bezeichnet werden, im Millisekundentakt gemäß Full-Speed USB oder Low-Speed USB senden, wodurch ein Scheduling von Zugriffen auf den Datenbus und eine Zeitreferenz für die Synchronisierung von isochronen und Interrupt-Datenübertragungen vorgegeben werden. SOF-Pakete enthalten eine Framenummer in einem 11 Bit langen Feld, die jeweils inkrementiert wird. Bei High-Speed USB ist der Millisekunden-Frame in 8 je 125 µs lange Mikroframes unterteilt. Der Host kann pro Mikroframe ein High-Speed-SOF-Paket senden und hierzu jede Framenummer innerhalb jedes Millisekundenframes 8-mal wiederholen. Durch das Detektieren der SOF-Pakete lässt sich auf einfache Weise vorhersagen, dass das eUSB-Repeater-Subsystem 124 im Ruhezustand ist, in dem keine Daten vom Gerät erwartet werden, sodass die mit dem Detektieren, Empfangen, Repeating und Retiming der Gerätedatenpakete assoziierte Schaltung zum Sparen von Leistung ausgeschaltet werden kann. Gemäß einem Aspekt kann die Serial Interface Engine 132 die Takte der Squelch-Schaltung im Geräteport der USB-PHY 128 und in der Repeating- und Retiming-Schaltung für die vom Geräteport empfangenen Daten im seriellen Repeater 134 sperren.
  • Ist das nächste Paket nach dem SOF-Paket vom Host ein Nicht-SOF-Paket, kann die Serial Interface Engine 132 die abgeschaltete Schaltung wiedereinschalten, damit sie für den Empfang der Daten vom Geräteport bereit ist. Ist das nächste Paket zum Beispiel ein In-Token-Paket, mit dem das Gerät zum Übermitteln eines Datenpakets aufgefordert wird, verläuft der Datenfluss für das Datenpaket in der Richtung vom Gerät zum Host. Ist das nächste Paket ein Out-Token-Paket, das die Übermittlung eines Datenpakets vom Host an das Gerät anzeigt, kann der Datenfluss immer noch in der Richtung vom Gerät zum Host verlaufen, denn das Gerät sendet ein Handshake-Paket, das anzeigt, ob das Datenpaket als Reaktion auf das Datenpaket erfolgreich empfangen worden ist. Die Serial Interface Engine 132 kann mittels einer Decodierung des PID-Bytes (PID = Paket-ID) der Pakete bestimmen, ob ein Paket vom Host ein SOF-Paket oder ein Nicht-SOF-Paket ist. Nachdem der Übertragungshüllkurvendetektor im Geräteport der USB-PHY 128 und die Repeating- und Retiming-Schaltung für den Empfang der Gerätedaten im seriellen Repeater 134 wiedereingeschaltet worden sind, können sie so lange eingeschaltet bleiben, bis das nächste SOF-Paket empfangen wird.
  • Die Repeater-Zustandsmaschine 130 kann decodierte Busereignisse von der Serial Interface Engine 132 und interne Zustände des seriellen Repeaters 134 zum Steuern des Betriebs des seriellen Repeaters 134 empfangen. Die Repeater-Zustandsmaschine 130 kann auch die Zustände des eUSB-Repeater-Subsystems 124 zum Implementieren der mit der eUSB-Spezifikation konformen Zustände steuern.
  • 3 veranschaulicht ein Blockschaltbild des Datenflusses eines USB-Repeater/Retimer-Geräts 311, das vom Host 301 empfangene USB-Pakete abfängt, um die Richtung des Datenflusses zum Steuern des Betriebs des Peripherie-Empfangsports 325 vorherzusagen, gemäß einem Aspekt der vorliegenden Offenbarung. Der Host 301 kann einen Sendeport 303 zum Senden von USB-Paketen an ein Peripheriegerät 331 über den Repeater/Retimer 311 und einen Empfangsport 305 zum Empfangen von USB-Datenpaketen vom Peripheriegerät 331 über den Repeater/Retimer 311 aufweisen. Das Peripheriegerät 331 kann einen Empfangsport 333 zum Empfangen von USB-Datenpaketen vom Host 301 und einen Sendeport 335 zum Senden von USB-Paketen an den Host 301 über den Repeater/Retimer 311 aufweisen. Der Repeater/Retimer 311 kann durch das eUSB-Repeater-Subsystem 124, die eUSB-PHY 126 und die USB-PHY 128 gemäß den 1 und 2 oder als eigenständiger Repeater implementiert sein.
  • Ein Host-Rx-Port 313 des Repeaters/Retimers 311 kann durch den Host 301 gesendete USB-Pakete über ein differenzielles Paar Datenleitungen empfangen. Der Host-Rx-Port 313 kann hierbei die Datenraten Low-Speed, Full-Speed und High-Speed gemäß USB 2.0, SuperSpeed gemäß USB 3.0, Enhanced SuperSpeed gemäß USB 3.1 etc. unterstützen. Gemäß einem Aspekt weist der Host-Rx-Port 313 eine Übertragungshüllkurvendetektor-, Squelch- oder andere Empfangsschaltung zum Detektieren von Aktivität in den Datenleitungen auf, etwa wenn bei High-Speed zwischen den differenziellen Datenleitungen ein Wert von 100 µV überschritten wird und wenn ein das Vorhandensein eines Pakets vom Host 301 anzeigendes SYNC-Bitmuster vorliegt. Wenn ein Paket detektiert wird, kann der Repeater/Retimer 311 an den seriellen Bits des Pakets die Retiming- und Repeating-Funktionalität durchführen, bevor er das Paket an den Peripherie-Tx-Port 323 zur Übermittlung an das Peripheriegerät 331 weiterleitet.
  • Wenn ein Paket vom Host 301 detektiert wird, kann der Host-Rx-Port 313 das PID-Byte 316, das auf das SYNC-Bitmuster folgt, an die für das Sparen von Leistung im Ruhezustand konzipierte Zustandsmaschine 317 weiterleiten, um zu bestimmen, ob das Paket ein SOF-Paket ist. Wenn das PID-Byte 316 ein SOF-Paket anzeigt, wird davon ausgegangen, dass gemäß dem USB-Transaktionsprotokoll ein Ruhezustand vorliegt, in dem keine Pakete vom Peripheriegerät 331 erwartet werden. Die für das Sparen von Leistung im Ruhezustand konzipierte Zustandsmaschine 317 kann ein Peripherie-Rx-Port-Steuersignal 318 an den Peripherie-Rx-Port 325 senden, um ihn in einen Leistungssparzustand zu versetzen.
  • Der Peripherie-Rx-Port 325 kann ebenso wie der Host-Rx-Port 313 eine Übertragungshüllkurvendetektor-, Squelch- oder andere Empfangsschaltung zum Detektieren von Aktivität in den Datenleitungen vom Peripheriegerät 331 aufweisen, etwa wenn ein das Vorhandensein eines Pakets vom Peripheriegerät 331 anzeigendes SYNC-Bitmuster vorliegt. Nach dem Empfang des Rx-Port-Steuersignals 318 im Ruhezustand kann der Peripherie-Rx-Port 325 die Empfangsschaltung ausschalten. Gemäß einem Aspekt kann auch die Schaltung im Repeater/Retimer 311, die das Retiming und Repeating der seriellen Bits der vom Peripheriegerät 331 empfangenen Pakete durchführt, ausgeschaltet werden.
  • Wenn das PID-Byte 316 des Pakets vom Host 301 ein Nicht-SOF-Paket anzeigt, ist das USB-System nicht im Ruhezustand. Das Paket ist zum Beispiel möglicherweise ein In-Token-Paket, mit dem das Peripheriegerät 331 zum Übermitteln eines Datenpakets an den Host 301 aufgefordert wird, oder ein Out-Token-Paket, das der Übermittlung eines Datenpakets vom Host 301 an das Peripheriegerät 331 vorausgeht. In beiden Szenarien wird erwartet, dass der Peripherie-Rx-Port 313 vom Peripheriegerät 331 das angeforderte Datenpaket oder ein Handshake-Paket empfängt, das anzeigt, ob das durch den Host 301 gesendete Datenpaket erfolgreich empfangen worden ist. Die für das Sparen von Leistung im Ruhezustand konzipierte Zustandsmaschine 317 kann das Peripherie-Rx-Port-Steuersignal 318 an den Peripherie-Rx-Port 325 senden, um die Empfangsschaltung wiedereinzuschalten, wenn sie vorher ausgeschaltet worden ist. Gemäß einem Aspekt kann auch die Schaltung, die das Retiming und Repeating der vom Peripheriegerät 331 empfangenen Pakete durchführt, wiedereingeschaltet werden, wenn sie vorher ausgeschaltet worden ist. Wenn der Peripherie-Rx-Port 325 das Paket vom Peripheriegerät empfängt, kann der Repeater/Retimer 311 an den seriellen Bits des Pakets die Retiming- und Repeating-Funktionalität durchführen, bevor er das Paket an den Host-Tx-Port 315 zur Übermittlung an den Host 301 weiterleitet.
  • Gemäß einem Aspekt kann das Repeater/Retimer-Gerät 311 ein Repeating von USB-Paketen zwischen dem Host 301 und mehreren Peripheriegeräten 331, die über einen korrespondierenden Peripherie-Rx-Port 325 verbunden sind, durchführen. Der Repeater/Retimer 311 kann die vom Host 301 empfangenen USB-Pakete abfangen, um die Richtung des Datenflusses zum Steuern der Vorgänge desjenigen Peripherie-Rx-Ports 325, der mit jedem der Peripheriegeräte 331 korrespondiert, zu steuern. Wenn der Host-Rx-Port 313 vom Host zum Beispiel ein SOF-Paket empfängt, kann die für das Sparen von Leistung im Ruhezustand konzipierte Zustandsmaschine 317 ein Peripherie-Rx-Port-Steuersignal 318 an denjenigen Peripherie-Rx-Port 325, der mit jedem der Peripheriegeräte 331 korrespondiert, senden, um sie alle in einen Leistungssparzustand zu versetzen. Wenn der Host-Rx-Port 313 vom Host ein an eines der Peripheriegeräte 331 adressiertes Nicht-SOF-Paket empfängt, kann die für das Sparen von Leistung im Ruhezustand konzipierte Zustandsmaschine 317 ein Peripherie-Rx-Port-Steuersignal 318 senden, um denjenigen Peripherie-Rx-Port 325, der mit den adressierten Peripheriegeräten 331 korrespondiert, einzuschalten, während sie denjenigen Peripherie-Rx-Port 325, der mit den nicht adressierten Peripheriegeräten 331 korrespondiert, im Leistungssparzustand hält.
  • 4 veranschaulicht ein Funktionsblockschaltbild des USB-Repeater/Retimer-Geräts 311 gemäß 3, das so betrieben wird, dass es vom Host 511 empfangene USB-Pakete abfängt, um den Peripherie-Empfangsport zum Sparen von Leistung im Ruhezustand zu steuern, gemäß einem Aspekt der vorliegenden Offenbarung. Der Host-Rx-Port 313 weist ein Host-Rx-Squelch 501 zum Detektieren des Nichtvorhandenseins einer Aktivität, die eine Rauschunterdrückung anzeigt, in den Datenleitungen vom Host und zum Detektieren des Beginns eines gültigen Pakets auf. Das Host-Rx-Squelch 501 kann das PID-Byte 316 des detektierten Pakets extrahieren und an die für das Sparen von Leistung im Ruhezustand konzipierte Zustandsmaschine 317 weiterleiten.
  • Ein PID-Detektionsmodul 503 in der für das Sparen von Leistung im Ruhezustand konzipierten Zustandsmaschine 317 kann das PID-Byte 316 des detektierten Pakets vom Host empfangen, um zu bestimmen, ob das Paket ein SOF-Paket oder ein Nicht-SOF-Paket ist. Wenn das Paket ein SOF-Paket ist, kann das PID-Detektionsmodul 503 ein SOF-PID-Signal 513 an eine Peripherie-Rx-Port-Steuerkippschaltung 505 senden, damit diese das Peripherie-Rx-Port-Steuersignal 318 generiert, mit dem der Peripherie-Rx-Port 325 in den Leistungssparzustand versetzt werden kann. Wenn das Paket ein Nicht-SOF-Paket ist, kann das PID-Detektionsmodul 503 ein Nicht-SOF-PID-Signal 515 an die Peripherie-Rx-Port-Steuerkippschaltung 505 senden, damit diese das Peripherie-Rx-Port-Steuersignal 318 generiert, mit dem der Peripherie-Rx-Port 325 aus dem Leistungssparzustand wieder reaktiviert werden kann. Das Peripherie-Rx-Port-Steuersignal 318 kann mithin zwischen zwei Zuständen abhängig davon umschalten, ob das detektierte Paket vom Host ein SOF-Paket ist oder nicht.
  • Der Peripherie-Rx-Port 325 kann ein Peripherie-Rx-Squelch 507 aufweisen, das eine Schaltung, wie etwa die Übertragungshüllkurvendetektor-, Squelch- oder andere Empfangsschaltung, enthält, die konfiguriert ist, um Pakete 517 vom Peripheriegerät 331 für die Generierung des Peripherie-Rx-Pakets 519 zu empfangen. Eine für serielle Bits vorgesehene Peripherie-Rx-Repeater-Schaltung 509 kann konfiguriert sein, um an den seriellen Bits des Peripherie-Rx-Pakets 517 die Retiming- und Repeating-Funktionalität durchzuführen. Wenn das Peripherie-Rx-Port-Steuersignal 318 empfangen wird, das den Peripherie-Rx-Port 325 dazu anweist, entweder in den Leistungssparzustand einzutreten oder im Leistungssparzustand zu bleiben, können das Peripherie-Rx-Squelch 507 und die für serielle Bits vorgesehene Peripherie-Rx-Repeater-Schaltung 509 ausgeschaltet werden bzw. ausgeschaltet bleiben. Gemäß einem Aspekt können die Takte des Peripherie-Rx-Squelch 507 und der für serielle Bits vorgesehenen Peripherie-Rx-Repeater-Schaltung 509 auch gesperrt werden. Wenn hingegen das Peripherie-Rx-Port-Steuersignal 318 empfangen wird, das den Peripherie-Rx-Port 325 dazu anweist, entweder den Leistungssparzustand zu verlassen oder in einem aktiven Zustand zu bleiben, können das Peripherie-Rx-Squelch 507 und die für serielle Bits vorgesehene Peripherie-Rx-Repeater-Schaltung 509 eingeschaltet werden bzw. eingeschaltet bleiben, damit sie für den Empfang und die Verarbeitung von Paketen vom Peripheriegerät bereit sind. Das Peripherie-Rx-Squelch 507 kann das Paket 517 vom Peripheriegerät für die Generierung des Peripherie-Rx-Pakets 519 empfangen. Die für serielle Bits vorgesehene Peripherie-Rx-Repeater-Schaltung 509 kann das Peripherie-Rx-Paket 519 für die Generierung des einem Retiming unterzogenen Peripherie-Rx-Pakets 521 zur Übermittlung an den Host verarbeiten.
  • 5 veranschaulicht eine Zustandsmaschine 500 eines USB-Repeater/Retimer-Geräts, das USB-Pakete im Host-Rx-Port überwacht, um den Betrieb des Peripherie-Rx-Ports zum Sparen von Leistung im Ruhezustand zu steuern, gemäß einem Aspekt der vorliegenden Offenbarung. Die Zustandsmaschine 500 kann durch den Host-Rx-Port 313 und die für das Sparen von Leistung im Ruhezustand konzipierte Zustandsmaschine 317 gemäß 3 oder das Host-Rx-Squelch 501, das PID-Detektionsmodul 503 und die Peripherie-Rx-Port-Steuerkippschaltung 505 gemäß 4 implementiert werden.
  • Beim Vorgang 501 überwacht die Zustandsmaschine 500 ein Squelch-Signal im Host-Rx-Port. Gemäß einem Aspekt kann ein Übertragungshüllkurvendetektor Aktivität in den Datenleitungen vom Host detektieren, etwa wenn bei High-Speed oder anderen Datenraten zwischen den differenziellen Datenleitungen ein Wert von 100 µV überschritten wird. Wenn ein Squelch-Signal detektiert wird, wodurch angezeigt wird, dass zwischen den differenziellen Datenleitungen ein Wert von 100 µV unterschritten wird, wird das Squelch-Signal beim Vorgang 501 weiter überwacht. Wenn hingegen kein Squelch-Signal detektiert wird, wodurch eine Aktivität in den Datenleitungen angezeigt wird, kann die Zustandsmaschine 500 ein SYNC-Bitmuster, das den Beginn eines eintreffenden Pakets vom Host anzeigt, detektieren, woraufhin zum Vorgang 503 übergegangen werden kann.
  • Beim Vorgang 503 überwacht die Zustandsmaschine 500 das PID-Byte, das auf das SYNC-Bitmuster folgt, um zu bestimmen, ob das Paket ein SOF-Paket ist. Wenn das PID-Byte ein SOF-Paket anzeigt, wird davon ausgegangen, dass gemäß dem USB-Transaktionsprotokoll ein Ruhezustand vorliegt und der Datenfluss in der Richtung vom Host zum Peripheriegerät verläuft. Die Zustandsmaschine 500 geht zum Vorgang 505 über, um die Empfängerschaltung und das Squelch im Peripherie-Rx-Port zum Sparen von Leistung abzuschalten. Gemäß einem Aspekt kann auch die Schaltung, die an den durch den Peripherie-Rx-Port empfangenen Daten die Retiming- und Repeating-Funktionalität durchführt, abgeschaltet werden. Die Zustandsmaschine kann dann zum Vorgang 501 zurückgehen, um das Squelch-Signal im Host-Rx-Port zu überwachen und nach dem nächsten Paket vom Host zu suchen.
  • Wenn das PID-Byte beim Vorgang 503 ein Nicht-SOF-Paket anzeigt, wird davon ausgegangen, dass gemäß dem USB-Transaktionsprotokoll kein Ruhezustand mehr vorliegt und der Datenfluss in der Richtung vom Peripheriegerät zum Host verläuft. Die Zustandsmaschine 500 geht zum Vorgang 507 über, um die Empfängerschaltung und das Squelch im Peripherie-Rx-Port anzuschalten, damit er für den Empfang eines Pakets vom Peripheriegerät bereit ist. Gemäß einem Aspekt kann auch die Schaltung, die an den durch den Peripherie-Rx-Port empfangenen Daten die Retiming- und Repeating-Funktionalität durchführt, angeschaltet werden. Die Zustandsmaschine kann dann zum Vorgang 501 zurückgehen, um das Squelch-Signal im Host-Rx-Port zu überwachen und nach dem nächsten Paket vom Host zu suchen.
  • 6 veranschaulicht ein Zeitverlaufsdiagramm des Host-Rx-Ports eines Repeaters/Retimers, der die USB-Pakete vom Host überwacht, um in einem ersten Szenario einer Host- und Gerätedatentransaktion den Peripherie-Rx-Port auszuschalten, wenn ein SOF-Paket empfangen wird, oder den Peripherie-Rx-Port einzuschalten, wenn ein Nicht-SOF-Paket empfangen wird, gemäß einem Aspekt der vorliegenden Offenbarung.
  • Der Host-Rx-Port überwacht die Busaktivität in den Datenleitungen vom Host, um das Vorhandensein eines USB-Pakets zu detektieren. Wenn ein Paket detektiert wird, bestimmt der Host-Rx-Port mittels einer Decodierung des PID-Bytes, ob das Paket ein SOF-Paket ist. Der Peripherie-Rx-Port kann zunächst eingeschaltet werden, damit er für den Empfang von Paketen vom Peripheriegerät bereit ist. Wenn der Host-Rx-Port das erste SOF-Paket 601 detektiert, schaltet der Host-Rx-Port den Peripherie-Rx-Port aus, indem er zwischen zwei Peripherie-Rx-Port-Einschaltsignalzuständen umschaltet, sodass der Peripherie-Rx-Port in den Leistungssparzustand versetzt wird. Gemäß einem Aspekt handelt es sich bei dem Peripherie-Rx-Port-Einschaltsignal um das Peripherie-Rx-Port-Steuersignal 318 gemäß 4 oder 5. In dem Frame, der auf das erste SOF-Paket 601 folgt, sendet der Host keine weiteren Pakete. Wenn der Host-Rx-Port das zweite SOF-Paket 603 detektiert, bleibt der Peripherie-Rx-Port im Leistungssparzustand. Gemäß einem Aspekt beträgt die Framedauer zwischen den SOF-Paketen eine Millisekunde bei Full-Speed USB oder Low-Speed USB, die Dauer eines Mikroframes bei High-Speed USB beträgt 125 µs, oder es kommen Framezyklusintervalle anderer USB-Spezifikationen zum Einsatz.
  • Wenn der Host-Rx-Port das erste Datenpaket 605 vom Host empfängt, schaltet der Host-Rx-Port den Peripherie-Rx-Port wieder ein, indem er zwischen zwei Peripherie-Rx-Port-Einschaltsignalzuständen umschaltet, sodass der Peripherie-Rx-Port dazu angewiesen wird, den Leistungssparzustand zu verlassen. Gemäß einem Aspekt umfasst das Datenpaket 601 ein Out-Address-Token-Paket, das eine Datenübertragung vom Host an das Gerät anzeigt und auf das das die Daten für das Peripheriegerät enthaltende Datenpaket folgt. Gemäß einem Aspekt ist ein In-Address-Token-Paket vorhanden, das eine Datenübertragung vom Gerät an den Host vom Peripheriegerät anfordert. In beiden Szenarien wird der Peripherie-Rx-Port eingeschaltet, sodass er für den Empfang des zweiten Datenpakets 607 bereit ist. Bei dem zweiten Datenpaket 607 handelt es sich möglicherweise um ein vom Peripheriegerät an den Host zurückgesendetes Handshake-Paket, das anzeigt, ob das Peripheriegerät das Datenpaket erfolgreich empfangen hat, wenn es sich bei dem ersten Datenpaket 601 um eine Datenübertragung vom Host an das Gerät handelt. Gemäß einem Aspekt handelt es sich bei dem zweiten Datenpaket 607 möglicherweise um das angeforderte Datenpaket vom Gerät an den Host, wenn der Host ein In-Address-Token-Paket gesendet hat. Der Repeater/Retimer führt an den seriellen Bits des zweiten Datenpakets 607 zur Übermittlung an den Host die Repeating- und Retiming-Funktionalität durch.
  • Wenn der Host-Rx-Port das dritte SOF-Paket 609 detektiert, schaltet der Host-Rx-Port den Peripherie-Rx-Port aus, indem er zwischen zwei Peripherie-Rx-Port-Einschaltsignalzuständen umschaltet, sodass der Peripherie-Rx-Port wieder in den Leistungssparzustand versetzt wird. Der Host sendet in dem Frame nach dem dritten SOF-Paket 609 keine weiteren Pakete. Wenn der Host-Rx-Port das vierte SOF-Paket 611 detektiert, bleibt der Peripherie-Rx-Port im Leistungssparzustand.
  • 7 veranschaulicht ein Zeitverlaufsdiagramm des Host-Rx-Ports eines Repeaters/Retimers, der die USB-Pakete vom Host überwacht, um in einem zweiten Szenario einer Host- und Gerätedatentransaktion den Peripherie-Rx-Port auszuschalten, wenn ein SOF-Paket empfangen wird, oder den Peripherie-Rx-Port einzuschalten, wenn ein Nicht-SOF-Paket empfangen wird, gemäß einem Aspekt der vorliegenden Offenbarung.
  • Ähnlich wie in 6 detektiert der Host-Rx-Port das erste SOF-Paket 701 und schaltet daraufhin den Peripherie-Rx-Port aus, indem er zwischen zwei Peripherie-Rx-Port-Einschaltsignalzuständen umschaltet, sodass der Peripherie-Rx-Port in den Leistungssparzustand versetzt wird, während hingegen der Host-Rx-Port den Peripherie-Rx-Port im Leistungssparzustand hält, wenn er das zweite SOF-Paket 703 detektiert. Und ähnlich wie in 6 empfängt der Host-Rx-Port das erste Datenpaket 705 und schaltet daraufhin den Peripherie-Rx-Port wieder ein, indem er zwischen zwei Peripherie-Rx-Port-Einschaltsignalzuständen umschaltet, sodass der Peripherie-Rx-Port dazu angewiesen wird, den Leistungssparzustand zu verlassen. Das erste Datenpaket 701 ist möglicherweise eine Datenübertragung vom Host an das Gerät oder ein In-Address-Token-Paket, das eine Datenübertragung vom Gerät an den Host vom Peripheriegerät anfordert. Bei einem Busfehler sendet jedoch das Peripheriegerät als Reaktion auf das erste Datenpaket 705 innerhalb der Framedauer des zweiten SOF-Pakets 703 kein Datenpaket an den Host zurück.
  • Beim Ablauf der Framedauer des zweiten SOF-Pakets 703 kann es zu einem Timeout des Hosts kommen, wenn er als Reaktion auf das erste Datenpaket 705 kein Datenpaket vom Peripheriegerät zurückerhält. Wenn der Host-Rx-Port das dritte SOF-Paket 707 empfängt, schaltet der Host-Rx-Port zwischen zwei Peripherie-Rx-Port-Einschaltsignalzuständen um, sodass der Peripherie-Rx-Port wieder in den Leistungssparzustand versetzt wird. Während der Framedauer des dritten SOF-Pakets 707 sendet der Host das zweite Datenpaket 709, um die Datenübertragung vom Host an das Gerät erneut einzuleiten. Gemäß einem Aspekt sendet der Host erneut ein In-Address-Token-Paket, das eine Datenübertragung vom Gerät an den Host vom Peripheriegerät anfordert.
  • Wenn der Host-Rx-Port das zweite Datenpaket 709 vom Host empfängt, schaltet der Host-Rx-Port zwischen zwei Peripherie-Rx-Port-Einschaltsignalzuständen um, sodass der Peripherie-Rx-Port dazu angewiesen wird, den Leistungssparzustand zu verlassen. In der Framedauer des dritten SOF-Pakets 707 generiert das Peripheriegerät als Reaktion auf das zweite Datenpaket 709 das dritte Datenpaket 711. Der Peripherie-Rx-Port empfängt das dritte Datenpaket 711, und der Repeater/Retimer führt an den seriellen Bits des dritten Datenpakets 711 zur Übermittlung an den Host die Repeating- und Retiming-Funktionalität durch. Wenn der Host-Rx-Port das vierte SOF-Paket 713 detektiert, schaltet der Host-Rx-Port den Peripherie-Rx-Port aus, indem er zwischen zwei Peripherie-Rx-Port-Einschaltsignalzuständen umschaltet, sodass der Peripherie-Rx-Port wieder in den Leistungssparzustand versetzt wird.
  • 8 ist ein Ablaufschema eines Verfahrens 800, bei dem ein Repeater/Retimer vom Host empfangene USB-Pakete überwacht, um den Betrieb des Peripherie-Empfangsports zum Sparen von Leistung im Ruhezustand zu steuern, gemäß einem Aspekt der vorliegenden Offenbarung. In einer Ausführungsform wird das Verfahren 800 durch den eUSB/USB-Repeater 100 gemäß 1, das eUSB-Repeater-Subsystem 124, die eUSB-PHY 126 und die USB-PHY 128 gemäß 2, den Repeater/Retimer gemäß 3, den Host-Rx-Port 313 und die für das Sparen von Leistung im Ruhezustand konzipierte Zustandsmaschine 317 gemäß 4 oder die Zustandsmaschine 500 gemäß 5 durchgeführt. Gemäß einem Aspekt kann das Verfahren 800 unter Verwendung einer Hardwarelogik oder von Kombinationen aus einer Hardwarelogik und programmierbaren Registern, die Konfigurationswerte speichern, durchgeführt werden.
  • Beim Vorgang 801 detektiert der Repeater/Retimer den Beginn eines USB-Pakets vom Host. Gemäß einem Aspekt überwacht der Repeater/Retimer bei High-Speed oder anderen Datenraten ein Squelch-Signal in den Datenleitungen vom Host. Wenn kein Squelch-Signal vorhanden ist, wodurch eine Aktivität in den Datenleitungen angezeigt wird, kann der Repeater/Retimer ein SYNC-Bitmuster, das den Beginn eines USB-Pakets vom Host anzeigt, detektieren.
  • Beim Vorgang 803 detektiert der Repeater/Retimer die PID des USB-Pakets, um den Typ des Pakets zu bestimmen. Die PID ist ein Byte, das auf das SYNC-Bitmuster folgt, um anzuzeigen, ob es sich bei dem USB-Paket um ein Token-, Data-, Handshake- oder Special-Paket handelt. Beim Vorgang 803 kann die PID detektiert werden, um die Richtung des Datenflusses vorherzusagen. Detektiert der Repeater/Retimer zum Beispiel ein Tokenpaket, wie etwa ein SOF-Paket, verläuft der Datenfluss in der Richtung vom Host zum Peripheriegerät. Detektiert der Repeater/Retimer ein Tokenpaket, wie etwa ein Adresstoken, das einer Datenübertragung vom Host an das Peripheriegerät oder einer Datenübertragung vom Peripheriegerät an den Host vorausgeht, wird vorhergesagt, dass der Datenfluss in der Richtung vom Peripheriegerät zum Host verläuft, und es wird hierbei auch ein Handshake-Paket, das als Reaktion auf die Datenübertragung vom Host an das Peripheriegerät generiert wird, oder das angeforderte Datenpaket der angeforderten Datenübertragung vom Peripheriegerät an den Host berücksichtigt.
  • Beim Vorgang 805 bestimmt der Repeater/Retimer, ob die PID ein SOF-Paket anzeigt. Wenn die PID ein SOF-Paket anzeigt, wird davon ausgegangen, dass gemäß dem Transaktionsprotokoll zwischen dem Host und dem Peripheriegerät ein Ruhezustand vorliegt, und es wird nicht erwartet, dass das Peripheriegerät ein Paket an den Host überträgt.
  • Wenn die PID ein SOF-Paket anzeigt, schaltet der Repeater/Retimer beim Vorgang 807 die Empfangsschaltung des Peripherie-Rx-Ports des Repeaters/Retimers zum Sparen von Leistung aus. Gemäß einem Aspekt kann der Repeater/Retimer den Übertragungshüllkurvendetektor, der die Squelch-Detektions- und andere Empfangsschaltung umfasst, im Peripherie-Rx-Port sowie die Schaltung, die für das Repeating und Retiming an den vom Peripheriegerät empfangenen Daten genutzt wird, ausschalten. Gemäß einem Aspekt können die Takte für die zum Empfang und zur Verarbeitung der Daten vom Peripheriegerät genutzte Empfangs-, Repeating- und Retiming-Schaltung gesperrt werden.
  • Wenn die PID hingegen ein Nicht-SOF-Paket anzeigt, schaltet der Repeater/Retimer beim Vorgang 809 die Empfangsschaltung des Peripherie-Rx-Ports des Repeaters/Retimers ein, damit der Peripherie-Rx-Port für den Empfang eines Pakets vom Peripheriegerät bereit ist. Gemäß einem Aspekt kann der Repeater/Retimer den Übertragungshüllkurvendetektor, der die Squelch-Detektions- und andere Empfangsschaltung umfasst, im Peripherie-Rx-Port anschalten, wenn die Schaltung abgeschaltet worden ist. Gemäß einem Aspekt kann der Repeater/Retimer die Schaltung, die für das Repeating und Retiming der vom Peripheriegerät empfangenen Daten genutzt wird, einschalten, wenn sie zuvor abgeschaltet worden ist. Gemäß einem Aspekt können die Takte für die zum Empfang und zur Verarbeitung der Daten vom Peripheriegerät genutzte Empfangs-, Repeating- und Retiming-Schaltung wieder angeschaltet werden, wenn sie gesperrt worden sind.
  • Beim Vorgang 811 detektiert der Repeater/Retimer das Ende des USB-Pakets vom Host. Gemäß einem Aspekt detektiert der Repeater/Retimer das End-Of-Packet-Muster, das mit den verschiedenen Datenraten korrespondiert. Der Repeater/Retimer geht dann zum Vorgang 801 zurück, um den Beginn des nächsten USB-Pakets vom Host zu detektieren.
  • Verschiedene der hierin beschriebenen Ausführungsformen des USB-Repeater-Subsystems zum Abfangen von Hostpaketen, um die Richtung des Datenflusses zum Ausschalten nicht aktiver Schaltungen im Peripherieport vorherzusagen, können verschiedene Vorgänge umfassen. Diese Vorgänge können durch Hardwarekomponenten, digitale Hardware und/oder Firmware/programmierbare Register (z. B. wie in einem computerlesbaren Medium implementiert) und/oder Kombinationen daraus durchgeführt und/oder gesteuert werden. Die hierin beschriebenen Verfahren und Ausführungsbeispiele beziehen sich nicht zwangsläufig auf einen bestimmten Computer oder eine andere bestimmte Vorrichtung. Es können verschiedene Systeme (wie z. B. USB-Hubs und -Dockingstationen) gemäß den hierin beschriebenen Lehren genutzt werden, oder es kann sich als zweckmäßig erweisen, eine noch speziellere Vorrichtung für die Durchführung der erforderlichen Verfahrensschritte zu entwickeln. Die erforderliche Struktur für diverse dieser Systeme ergibt sich aus der obigen Beschreibung.
  • Ein computerlesbares Medium, das zum Implementieren von Vorgängen gemäß verschiedenen Aspekten der Offenbarung genutzt wird, ist möglicherweise ein nicht flüchtiges, computerlesbares Speichermedium, das unter anderem Folgendes umfassen kann: ein elektromagnetisches Speichermedium, ein magneto-optisches Speichermedium, einen Festspeicher (ROM), einen Arbeitsspeicher (RAM), einen lösch- und programmierbaren Speicher (z. B. ein EPROM oder ein EEPROM), einen Flash-Speicher oder andere derzeit bekannte oder in Zukunft noch entwickelte, nicht flüchtige Speicher, die für das Speichern von Konfigurationsinformationen geeignet sind.
  • Die obige Beschreibung ist als beispielhaft und nicht einschränkend anzusehen. Obwohl die vorliegende Offenbarung unter Bezugnahme auf spezielle Ausführungsbeispiele beschrieben worden ist, versteht es sich, dass die vorliegende Offenbarung nicht auf die beschriebenen Beispiele beschränkt ist. Der Schutzbereich der Offenbarung ist unter Bezugnahme auf die folgenden Ansprüche zu bestimmen, ebenso der gesamte Schutzbereich von Äquivalenten, die die Ansprüche unter Schutz stellen.
  • Die Singularformen „ein“ und „eine“ sowie „der“, „die“ und „das“, wie hierin genutzt, sollen auch die jeweiligen Pluralformen einschließen, sofern aus dem Kontext nicht eindeutig etwas Anderes hervorgeht. Ferner versteht es sich, dass die Ausdrücke „beinhaltet“, „beinhaltend“, „kann umfassen“ oder „umfassend“, wenn sie hierin genutzt werden, das Vorhandensein von genannten Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, dass dadurch aber nicht ausgeschlossen wird, dass ein oder mehrere weitere Merkmale, eine oder mehrere weitere ganze Zahlen, ein oder mehrere weitere Schritte, ein oder mehrere weitere Vorgänge, ein oder mehrere weitere Elemente, eine oder mehrere weitere Komponenten und/oder eine oder mehrere weitere Gruppen davon ebenfalls vorhanden sein oder noch hinzukommen könnten. Deshalb dient die hierin genutzte Terminologie allein dem Zweck der Beschreibung bestimmter Ausführungsformen und soll keine einschränkende Wirkung haben.
  • Es ist zudem zu beachten, dass die erwähnten Funktionen/Abläufe in einigen alternativen Implementierungen auch in einer anderen als der Reihenfolge, die in den Figuren gezeigt wird, erfolgen können. Zum Beispiel können zwei nacheinander gezeigte Figuren abhängig von der jeweiligen Funktionalität/vom jeweiligen Ablauf stattdessen auch im Wesentlichen gleichzeitig ausgeführt werden oder können mitunter auch in umgekehrter Reihenfolge ausgeführt werden.
  • Die Verfahrensvorgänge sind zwar in einer speziellen Reihenfolge beschrieben worden, jedoch versteht es sich, dass zwischen den beschriebenen Vorgängen noch andere Vorgänge durchgeführt werden können, dass die beschriebenen Vorgänge so angeglichen werden können, dass sie zeitlich etwas versetzt dazu erfolgen, oder dass die beschriebenen Vorgänge in einem System, das zulässt, dass die Verarbeitungsvorgänge in verschiedenen der Verarbeitung zugeordneten Intervallen erfolgen, verteilt sein können. Zum Beispiel können manche Vorgänge mindestens zum Teil auch in umgekehrter Reihenfolge, gleichzeitig und/oder parallel mit anderen Vorgängen durchgeführt werden.
  • Verschiedene Einheiten, Schaltungen oder andere Komponenten werden möglicherweise als „konfiguriert“ oder „konfigurierbar“, um einen oder mehrere Tasks durchzuführen, beschrieben oder beansprucht. In einem solchen Zusammenhang wird mit den Begriffen „konfiguriert“ und „konfigurierbar“ indirekt auch eine Struktur ausgedrückt, nämlich in der Bedeutung, dass die Einheiten/Schaltungen/Komponenten eine Struktur (z. B. eine Schaltungsanordnung), die den einen oder die mehreren Tasks während des Betriebs durchführt, umfassen. Entsprechend ist es auch möglich, zu sagen, dass die Einheit/Schaltung/Komponente konfiguriert oder konfigurierbar ist, um den Task durchzuführen, selbst wenn die genannte Einheit/Schaltung/Komponente gerade nicht im Betrieb ist (z. B. nicht an ist). Die Einheiten/Schaltungen/Komponenten, zu deren Beschreibung Begriffe wie „konfiguriert“ oder „konfigurierbar“ genutzt werden, umfassen Hardware - zum Beispiel Schaltungen, Speicherbausteine, die zum Implementieren des Betriebs ausführbare Programmbefehle speichern, etc. Wird erklärt, dass eine Einheit/Schaltung/Komponente „konfiguriert“ oder „konfigurierbar“ ist, um einen oder mehrere Tasks durchzuführen, erfolgt dies ausdrücklich nicht unter Berufung auf Absatz sechs des United States Code, Bd. 35, § 112 für diese Einheit/Schaltung/Komponente.
  • Darüber hinaus kann „konfiguriert“ oder „konfigurierbar“ eine Universalstruktur (z. B. eine Universalschaltungsanordnung) umfassen, die durch Firmware (z. B. ein FPGA) manipuliert wird, um so betrieben zu werden, dass sie zur Durchführung des einen oder der mehreren betreffenden Tasks fähig ist. „Konfiguriert“ kann auch umfassen, dass ein Fertigungsprozess (z. B. eine Halbleiterfertigungsanlage) so angepasst wird, dass hierbei für die Implementierung oder Durchführung eines oder mehrerer Tasks angepasste Bauelemente (z. B. integrierte Schaltungen) gefertigt werden. „Konfigurierbar“ ist ausdrücklich nicht anwendbar auf leere Medien, unprogrammierte Prozessoren oder unprogrammierte programmierbare Logikbausteine, programmierbare Gate-Arrays oder sonstige unprogrammierte Bauelemente, es sei denn, zu ihnen gehören programmierte Medien, die die Möglichkeit bieten, dass das unprogrammierte Bauelement zur Durchführung der offenbarten Funktion(en) konfiguriert wird.
  • Die vorstehende Beschreibung ist zum Zweck der Erläuterung unter Bezugnahme auf spezielle Ausführungsformen beschrieben worden. Jedoch erhebt die obige Erörterung, die zur Veranschaulichung dient, keinen Anspruch auf Vollständigkeit und beschränkt die Erfindung nicht auf genau die Ausführungsformen, die offenbart werden. Denn angesichts der obigen Lehren sind viele Abwandlungen und Variationen möglich. Die Ausführungsformen sind mit Blick darauf gewählt und beschrieben worden, dass die Prinzipien der Ausführungsformen und ihre praktische Anwendung bestmöglich erläutert werden, um dadurch dem Fachmann die bestmögliche Verwertung der Ausführungsformen sowie verschiedener Abwandlungen, soweit diese für die ins Auge gefasste konkrete Nutzung geeignet sind, zu ermöglichen. Demzufolge sind die vorliegenden Ausführungsformen als beispielhaft und nicht einschränkend anzusehen, und die Erfindung soll nicht auf die hierin aufgeführten Einzelheiten beschränkt sein, sondern kann im Schutzbereich und unter Berücksichtigung von Äquivalenten der beigefügten Ansprüche noch abgewandelt werden.

Claims (20)

  1. Eine Vorrichtung, die ein Repeating von zwischen einem Host und einem Peripheriegerät ausgetauschten USB-Paketen (USB = Universal Serial Bus) durchführt und Folgendes beinhaltet: einen Hostport, der konfiguriert ist, um USB-Pakete vom Host zu empfangen; einen Peripherieport, der konfiguriert ist, um USB-Pakete vom Peripheriegerät zu empfangen; ein Verarbeitungssystem, das für Folgendes konfiguriert ist: Detektieren eines durch den Hostport vom Host empfangenen USB-Pakets; Bestimmen eines Typs des empfangenen USB-Pakets; als Reaktion darauf, dass bestimmt wird, dass das USB-Paket ein SOF-Paket (SOF = Start Of Frame) ist, Ausschalten des Peripherieports; und als Reaktion darauf, dass bestimmt wird, dass das USB-Paket ein Nicht-SOF-Paket ist, Einschalten des Peripherieports, damit der Peripherieport für den Empfang von USB-Paketen vom Peripheriegerät bereit ist.
  2. Vorrichtung gemäß Anspruch 1, wobei das Verarbeitungssystem zum Detektieren des durch den Hostport vom Host empfangenen USB-Pakets für Folgendes konfiguriert ist: Detektieren eines Beginns des USB-Pakets; und Detektieren einer Paket-ID (PID) des USB-Pakets.
  3. Vorrichtung gemäß Anspruch 2, wobei das Verarbeitungssystem zum Detektieren des Beginns des USB-Pakets für Folgendes konfiguriert ist: Detektieren eines Nichtvorhandenseins eines Squelch-Signals, wenn der Hostport konfiguriert ist, um USB-High-Speed-Datenpakete vom Host zu empfangen; und Detektieren eines Synchronisationsmusters des USB-Pakets.
  4. Vorrichtung gemäß Anspruch 1, wobei das Verarbeitungssystem zum Bestimmen des Typs des empfangenen USB-Pakets für Folgendes konfiguriert ist: Detektieren einer Paket-ID (PID) des USB-Pakets; und Bestimmen des Typs des USB-Pakets basierend auf der PID.
  5. Vorrichtung gemäß Anspruch 1, wobei das SOF-Paket ein periodisches Paket beinhaltet, das durch den Host an das Peripheriegerät als Zeitreferenz zum Synchronisieren der zwischen dem Host und dem Peripheriegerät ausgetauschten USB-Pakete gesendet wird.
  6. Vorrichtung gemäß Anspruch 1, wobei, wenn bestimmt wird, dass das empfangene USB-Paket das SOF-Paket ist, vorhergesagt wird, dass der Datenfluss in der Richtung vom Host zum Peripheriegerät verläuft, und wobei das Verarbeitungssystem konfiguriert ist, um den Peripherieport zum Sparen von Leistung auszuschalten.
  7. Vorrichtung gemäß Anspruch 1, wobei die Vorrichtung ferner eine Repeating-Schaltung beinhaltet, die konfiguriert ist, um ein Repeating der durch den Peripherieport vom Peripheriegerät empfangenen USB-Pakete für den Host durchzuführen, und wobei das Verarbeitungssystem als Reaktion darauf, dass bestimmt wird, dass das USB-Paket das SOF-Paket ist, ferner konfiguriert ist, um die Repeating-Schaltung auszuschalten.
  8. Vorrichtung gemäß Anspruch 1, wobei das Nicht-SOF-Paket ein Adresstoken beinhaltet, um anzuzeigen, dass der Host zum Übertragen eines Datenpakets an das Peripheriegerät oder zum Anfordern, dass das Peripheriegerät ein Datenpaket an den Host überträgt, bereit ist.
  9. Vorrichtung gemäß Anspruch 1, wobei, wenn bestimmt wird, dass das empfangene USB-Paket das Nicht-SOF-Paket ist, vorhergesagt wird, dass der Datenfluss in der Richtung vom Peripheriegerät zum Host verläuft, und wobei das Verarbeitungssystem konfiguriert ist, um den Peripherieport für den Empfang eines Datenpakets oder eines Handshake-Pakets, das durch das Peripheriegerät als Reaktion auf das Nicht-SOF-Paket generiert wird, einzuschalten.
  10. Vorrichtung gemäß Anspruch 1, die ferner eine Vielzahl von Peripherieports beinhaltet, die konfiguriert sind, um USB-Pakete von einer Vielzahl von Peripheriegeräten zu empfangen, wobei das Verarbeitungssystem ferner für Folgendes konfiguriert ist: als Reaktion darauf, dass bestimmt wird, dass das USB-Paket das SOF-Paket ist, Ausschalten der Vielzahl von Peripherieports; und als Reaktion darauf, dass bestimmt wird, dass das USB-Paket das Nicht-SOF-Paket ist, Einschalten eines der Vielzahl von Peripherieports, damit der eine eingeschaltete Peripherieport für den Empfang von USB-Paketen von einem korrespondierenden der Vielzahl von Peripheriegeräten bereit ist.
  11. Ein Verfahren, das Folgendes beinhaltet: Detektieren eines von einem Host empfangenen USB-Pakets durch einen USB-konformen (USB = Universal Serial Bus) Repeater; Bestimmen eines Typs des empfangenen USB-Pakets; als Reaktion darauf, dass bestimmt wird, dass das USB-Paket ein SOF-Paket (SOF = Start Of Frame) ist, Ausschalten einer zum Empfangen von USB-Paketen von einem Peripheriegerät genutzten Empfangsschaltung des USB-konformen Repeaters; und als Reaktion darauf, dass bestimmt wird, dass das USB-Paket ein Nicht-SOF-Paket ist, Einschalten der Empfangsschaltung, damit die Empfangsschaltung für den Empfang von USB-Paketen vom Peripheriegerät bereit ist.
  12. Verfahren gemäß Anspruch 11, wobei das Detektieren des von einem Host empfangenen USB-Pakets Folgendes beinhaltet: Detektieren eines Beginns des USB-Pakets; und Detektieren einer Paket-ID (PID) des USB-Pakets.
  13. Verfahren gemäß Anspruch 12, wobei das Detektieren des Beginns des USB-Pakets Folgendes beinhaltet: Detektieren eines Nichtvorhandenseins eines Squelch-Signals, wenn der USBkonforme Repeater für den Empfang von USB-High-Speed-Datenpaketen vom Host ausgelegt ist; und Detektieren eines Synchronisationsmusters des USB-Pakets.
  14. Verfahren gemäß Anspruch 11, wobei das Bestimmen des Typs des empfangenen USB-Pakets Folgendes beinhaltet: Detektieren einer Paket-ID (PID) des USB-Pakets; und Bestimmen des Typs des USB-Pakets basierend auf der PID.
  15. Verfahren gemäß Anspruch 11, wobei das SOF-Paket ein periodisches Paket beinhaltet, das durch den Host an das Peripheriegerät als Zeitreferenz zum Synchronisieren von zwischen dem Host und dem Peripheriegerät ausgetauschten USB-Paketen gesendet wird.
  16. Verfahren gemäß Anspruch 11, wobei, wenn bestimmt wird, dass das empfangene USB-Paket das SOF-Paket ist, erwartet wird, dass der Datenfluss in der Richtung vom Host zum Peripheriegerät verläuft, und wobei durch das Ausschalten der zum Empfangen von USB-Paketen vom Peripheriegerät genutzten Empfangsschaltung Leistung des USB-konformen Repeaters gespart wird.
  17. Verfahren gemäß Anspruch 11, das ferner Folgendes beinhaltet: als Reaktion darauf, dass bestimmt wird, dass das USB-Paket das SOF-Paket ist, Ausschalten einer Repeating-Schaltung des USB-konformen Repeaters, die zum Repeating der vom Peripheriegerät empfangenen USB-Pakete für den Host genutzt wird.
  18. Verfahren gemäß Anspruch 11, wobei das Nicht-SOF-Paket ein Adresstoken beinhaltet, um anzuzeigen, dass der Host zum Übertragen eines Datenpakets an das Peripheriegerät oder zum Anfordern, dass das Peripheriegerät ein Datenpaket an den Host überträgt, bereit ist.
  19. Verfahren gemäß Anspruch 11, wobei, wenn bestimmt wird, dass das empfangene USB-Paket das Nicht-SOF-Paket ist, vorhergesagt wird, dass der Datenfluss in der Richtung vom Peripheriegerät zum Host verläuft, und wobei das Einschalten der Empfangsschaltung beinhaltet, dass die Empfangsschaltung eingeschaltet wird, um ein Datenpaket oder ein Handshake-Paket, das durch das Peripheriegerät als Reaktion auf das Nicht-SOF-Paket generiert wird, zu empfangen.
  20. Verfahren gemäß Anspruch 11, das ferner Folgendes beinhaltet: als Reaktion darauf, dass bestimmt wird, dass das USB-Paket das SOF-Paket ist, Ausschalten einer Vielzahl von zum Empfangen von USB-Paketen von einer Vielzahl von Peripheriegeräten genutzten Empfangsschaltungen des USB-konformen Repeaters; und als Reaktion darauf, dass bestimmt wird, dass das USB-Paket das Nicht-SOF-Paket ist, Einschalten einer der Vielzahl von Empfangsschaltungen, damit die eine eingeschaltete Empfangsschaltung für den Empfang von USB-Paketen von einem korrespondierenden der Vielzahl von Peripheriegeräten bereit ist.
DE102022104187.5A 2021-03-04 2022-02-22 Verfahren und vorrichtung zum sparen von leistung in usb-repeatern/retimern Pending DE102022104187A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/192,650 2021-03-04
US17/192,650 US11513584B2 (en) 2021-03-04 2021-03-04 Method and apparatus to save power in USB repeaters/re-timers

Publications (1)

Publication Number Publication Date
DE102022104187A1 true DE102022104187A1 (de) 2022-09-08

Family

ID=82898262

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022104187.5A Pending DE102022104187A1 (de) 2021-03-04 2022-02-22 Verfahren und vorrichtung zum sparen von leistung in usb-repeatern/retimern

Country Status (3)

Country Link
US (2) US11513584B2 (de)
CN (1) CN115017076A (de)
DE (1) DE102022104187A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11513584B2 (en) * 2021-03-04 2022-11-29 Cypress Semiconductor Corporation Method and apparatus to save power in USB repeaters/re-timers
US11671289B2 (en) * 2021-09-14 2023-06-06 Nxp Usa, Inc. End of packet detection
US20230119332A1 (en) * 2021-10-18 2023-04-20 Celerity Technologies Inc. Usb connector for fiber optic cable and related usb extender
US20230170934A1 (en) * 2021-11-30 2023-06-01 Nxp Usa, Inc. Bidirectional bypass mode
US11972113B2 (en) * 2022-07-26 2024-04-30 Silicon Motion, Inc. Method and apparatus for performing link management of memory device in predetermined communications architecture with aid of handshaking phase transition control
US20240070100A1 (en) * 2022-08-25 2024-02-29 Nxp Usa, Inc. Communications device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363085B1 (en) * 1998-03-23 2002-03-26 Multivideo Labs, Inc. Universal serial bus repeater
JP4730381B2 (ja) * 2007-03-09 2011-07-20 日本電気株式会社 Usb通信制御方法及び装置
US20140149609A1 (en) * 2012-11-29 2014-05-29 Kok Hong Chan Detecting device disconnect in a repeater
US11703935B2 (en) * 2020-07-31 2023-07-18 Apple Inc. Mechanism for saving power on a bus interface
US11513584B2 (en) * 2021-03-04 2022-11-29 Cypress Semiconductor Corporation Method and apparatus to save power in USB repeaters/re-timers

Also Published As

Publication number Publication date
US20230081229A1 (en) 2023-03-16
US11747885B2 (en) 2023-09-05
US11513584B2 (en) 2022-11-29
US20220283624A1 (en) 2022-09-08
CN115017076A (zh) 2022-09-06

Similar Documents

Publication Publication Date Title
DE102022104187A1 (de) Verfahren und vorrichtung zum sparen von leistung in usb-repeatern/retimern
DE112013003248B4 (de) Steuern einer physischen Verbindung von einem ersten Protokoll unter Verwendung einer erweiterten Funktionsstruktur eines zweiten Protokolls
DE112013001661B4 (de) Apparat, verfahren und system zur bereitstellung eines konsolidierten seitenband kommunikationskanal zwischen geräten
DE112013002639B4 (de) Optimierter Verbindungstrainings- und Managementmechanismus
DE60128396T2 (de) Computer-peripheriegerät, das betreibbar bleibt, wenn die operationen des zentralprozessors suspendiert werden
DE102011089875B4 (de) SATA-Schnittstelle
DE102021118048A1 (de) Systemleistungsverwaltung in e/a-hybridsystemen mit mehreren ports
DE102007044891B4 (de) Steuerungsverbindung für einen Manageability-Engine-Hintergrund
DE112013004026T5 (de) Vorrichtung, System und Verfahren zur geschalteten Leistungsübertragung zu einer E/A-Schnittstelle
DE112013005104T5 (de) Hochleistungsverdrahtungs-Bitübertragungsschicht
DE112011103225B4 (de) Schaltkreisvorrichtung, System und Verfahren mit Drosseln einer integrierten Verbindung
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE102020122301A1 (de) Konfigurationsschema für link-herstellung
DE112010001469T5 (de) Flexible Integration von Endpunktlogik in unterschiedlichen Plattformen
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE112015006944T5 (de) Erweiterung einer Mehrchipbaugruppenverbindung außerhalb der Baugruppe
EP2867780A1 (de) Vorrichtungstrennungserkennung
US7467308B2 (en) Method for transmitting the system command of a computer system
DE102019130715A1 (de) Verwaltung der systemstromversorgung in usb-c/usb-stromversorgungs-ablieferungssystemen
WO2014004916A1 (en) Device connect detection
DE102018006852A1 (de) Verfahren, Vorrichtung und System für eine ThunderBolt-basierte Anzeigetopologie für duale Grafiksysteme
DE112016001258T5 (de) Multi-gigabit drahtloses tunnelsystem
DE112018007637T5 (de) Fehlermeldung in Verbindungsverlängerungsvorrichtungen
DE102019128383A1 (de) Verfahren und vorrichtung zum synchronen signalisierenzwischen link-partnern in einer hochgeschwindigkeitsverbindung
CN103246628A (zh) Smi接口管理方法及可编程逻辑器件