DE112021003136T5 - Verfahren zum durchführen von system- und energieverwaltung über eine serielle datenkommunikationsschnittstelle - Google Patents

Verfahren zum durchführen von system- und energieverwaltung über eine serielle datenkommunikationsschnittstelle Download PDF

Info

Publication number
DE112021003136T5
DE112021003136T5 DE112021003136.8T DE112021003136T DE112021003136T5 DE 112021003136 T5 DE112021003136 T5 DE 112021003136T5 DE 112021003136 T DE112021003136 T DE 112021003136T DE 112021003136 T5 DE112021003136 T5 DE 112021003136T5
Authority
DE
Germany
Prior art keywords
data
pulses
interface
voltage level
count
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
DE112021003136.8T
Other languages
English (en)
Inventor
James M. Hollabaugh
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of DE112021003136T5 publication Critical patent/DE112021003136T5/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/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
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4906Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
    • 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]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

System und Verfahren zum effizienten Übertragen von Daten zwischen Vorrichtungen. In verschiedenen Ausführungsformen empfängt eine Host-Rechenvorrichtung parallele Daten, codiert die parallelen Daten als Zählwert von Impulsen als serielle Daten und übermittelt die seriellen Daten an eine Peripherievorrichtung. Die Peripherievorrichtung decodiert die empfangenen seriellen Daten, um die parallelen Daten zu bestimmen, die an Verarbeitungslogik gesendet werden. Die Vorrichtungen senden die codierten Impulse auf einer bidirektionalen Leitung, sodass die Impulse in beide Richtungen gesendet werden können. Die Vorrichtungen senden die codierten Impulse auf der bidirektionalen Leitung unter Verwendung eines Basisspannungspegels ungleich null. Die Vorrichtungen sind in der Lage, eine Spannungsreserve zu verwenden, wenn sie codierte Impulse untereinander übermitteln. Daher wird beim Übermitteln der codierten Impulse nicht der volle Spannungshub zwischen einem Massereferenzspannungspegel und einem Energieversorgungsspannungspegel verwendet, was den Stromverbrauch reduziert.

Description

  • HINTERGRUND
  • TECHNISCHES GEBIET
  • Hierin beschriebene Ausführungsformen beziehen sich auf das Gebiet von Rechensystemen und insbesondere auf das effiziente Übertragen von Daten zwischen Vorrichtungen.
  • BESCHREIBUNG DES STANDS DER TECHNIK
  • Benutzer schließen zu Geschäfts- und Unterhaltungszwecken eine Vielfalt von Peripherievorrichtungen an Host-Rechenvorrichtungen an. Beispiele für solche Peripherievorrichtungen schließen tragbare Datenspeichervorrichtungen, Multimediavorrichtungen, Drucker, Scanner, Kameras und dergleichen ein. Einige Beispiele für Host-Vorrichtungen schließen einen Desktop-Computer, einen Laptop- oder Tablet-Computer, ein Smartphone und ein Multimediasystem in einem Fahrzeug ein. Bei vielen Anwendungen unterstützt die Schnittstelle bereits die Verbindung und spätere erneute Verbindung der Peripherievorrichtungen. In vielen Ausführungen verwendet die Schnittstelle einen bidirektionalen Signalbus zur Datenübertragung zwischen der Host-Rechenvorrichtung und der Peripherievorrichtung.
  • Im Allgemeinen bestimmen Kommunikationsprotokolle das Format von Steuersignalen, die verwendeten Spannungspegel und das Timing von Signalen, die über den Signalbus übertragen werden. Logik innerhalb einer Schnittstelle auf jeder von der Host-Rechenvorrichtung und der Peripherievorrichtung unterstützt ein ausgewähltes aus einer Vielfalt von Kommunikationsprotokollen. Während Daten über den Signalbus übertragen werden, verbraucht die Peripherievorrichtung Strom. Da oft jede neue Generation von Kommunikationsprotokollen größere Bandbreiten unterstützt, nimmt auch der Stromverbrauch zu.
  • Angesichts des Vorstehenden sind Verfahren und Mechanismen zum effizienten Übertragen von Daten zwischen Vorrichtungen gewünscht.
  • KURZDARS TELLUNG
  • Es werden Systeme und Verfahren zum effizienten Übertragen von Daten zwischen Vorrichtungen in Betracht gezogen. In verschiedenen Ausführungsformen gibt es zwischen einem Sender und einem Empfänger eine oder mehrere Datenleitungen. Der Sender empfängt Mehrbitdaten, die zu einem Empfänger übertragen werden sollen. Die Steuerlogik im Sender codiert die empfangenen Mehrbitdaten in eine Serie von Impulsen. Die codierten Impulse repräsentieren die empfangenen Daten. Der Sender sendet die codierten Impulse an den Empfänger. In einigen Ausführungsformen sendet der Sender die codierten Impulse über eine einzelne Datenleitung. Daher empfängt der Sender parallele Mehrbitdaten und führt eine Impulscodierung der empfangenen Daten in serielle Daten durch. In verschiedenen Ausführungsformen empfängt der Empfänger die seriellen impulscodierten Daten, und Steuerlogik im Empfänger decodiert die empfangenen Daten. Durch Decodieren der empfangenen seriellen Daten stellt die Steuerlogik des Empfängers die parallelen Mehrbitdaten, die zuvor vom Sender empfangen wurden, wieder her. Die Steuerlogik im Empfänger sendet die decodierten Mehrbitdaten an Verarbeitungslogik.
  • In einigen Ausführungsformen bestimmt eine Energieverwaltungseinheit, wann der Sender und der Empfänger eine oder mehrere Datenleitungen deaktivieren oder anderweitig ausschalten. In einer Ausführungsform schalten der Sender und der Empfänger eine Datenleitung von zwei Datenleitungen, die sich zwischen beiden befinden, aus, was den Stromverbrauch reduziert. In einigen Ausführungsformen wechseln der Sender und der Empfänger zwischen einem Datenübertragungsmodus und einem anderen niedrigeren Ruhemodus während der Datenübertragung. Statt Daten zu übertragen, wenn die Daten empfangen werden, bis alle empfangenen Daten übertragen sind, speichert der Sender empfangene Daten in einem oder mehreren Puffern. Wenn das Zeitintervall für den Ruhemodus endet, werden die Daten aus einem der Puffer ausgelesen und für ein anderes Zeitintervall an den Empfänger übertragen. Der Prozess wird wiederholt, bis alle Daten übertragen sind.
  • In einigen Ausführungsformen verwenden der Sender und der Empfänger beim Übermitteln codierter Impulse untereinander eine Spannungsreserve. Die Spannungsreserve sorgt für eine noch weitere Reduzierung des Stromverbrauchs. In einer Ausführungsform ist der Ruhespannungspegel um eine Spannungsreserve größer als ein Energieversorgungsspannungspegel. In einer Ausführungsform ist der Datenübertragungsspannungspegel um die Spannungsreserve größer als der Ruhespannungspegel. Daher wird beim Übermitteln codierter Impulse nicht der volle Spannungshub zwischen einem Massereferenzspannungspegel und einem Energieversorgungsspannungspegel verwendet. In einigen Ausführungsformen unterstützt die Schnittstelle eine Master/Slave-Architektur, wie das Universal Serial Bus-Standardprotokoll (USB-Standardprotokoll) zum Verbinden von Vorrichtungen. In anderen Ausführungsformen wird ein anderes Kommunikationsprotokoll verwendet.
  • Diese und andere Ausführungsformen werden unter Bezugnahme auf die folgende Beschreibung und die Zeichnungen weiter ersichtlich.
  • Figurenliste
  • Die vorstehenden und weitere Vorteile der Verfahren und Mechanismen können besser verstanden werden, indem auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen Bezug genommen wird, in denen:
    • 1 ein Blockdiagramm einer Ausführungsform einer Datenübertragung ist.
    • 2 ein Blockdiagramm einer Ausführungsform einer Symbolerzeugungstabelle ist.
    • 3 ein Blockdiagramm einer Ausführungsform einer Datenübertragung ist.
    • 4 ein Flussdiagramm einer Ausführungsform eines Verfahrens zum effizienten Übertragen von Daten zwischen Vorrichtungen ist.
    • 5 ein Flussdiagramm einer Ausführungsform eines Verfahrens zum effizienten Übertragen von Daten zwischen Vorrichtungen ist.
    • 6 ein Blockdiagramm einer Ausführungsform eines Rechensystems ist.
    • 7 ein Flussdiagramm einer Ausführungsform eines Verfahrens zum effizienten Übertragen von Daten zwischen Vorrichtungen ist.
    • 8 ein Blockdiagramm einer Ausführungsform von Signalwellenformen auf einer Datenleitung zwischen Vorrichtungen ist.
    • 9 ein Blockdiagramm einer Ausführungsform einer Schnittstelle zum Übertragen von Daten zwischen Vorrichtungen ist.
    • 10 ein Blockdiagramm einer Ausführungsform einer Schnittstelle zum Übertragen von Daten zwischen Vorrichtungen ist.
    • 11 ein Flussdiagramm einer Ausführungsform eines Verfahrens zum effizienten Übertragen von Daten zwischen Vorrichtungen ist.
    • 12 ein Flussdiagramm einer Ausführungsform eines Verfahrens zum effizienten Übertragen von Daten zwischen Vorrichtungen ist.
    • 13 ein Blockdiagramm einer Ausführungsform einer Schnittstelle zum Übertragen von Daten zwischen Vorrichtungen ist.
    • 14 ein Blockdiagramm einer Ausführungsform von Symbolzuordnungen ist, die von einer Symbolerzeugungstabelle verwendet werden.
    • 15 ein Blockdiagramm einer Ausführungsform von Symbolzuordnungen ist, die von einer Symbolerzeugungstabelle verwendet werden.
  • Während die in dieser Offenbarung beschriebenen Ausführungsformen verschiedenen Modifikationen und alternativen Formen unterliegen können, sind spezifische Ausführungsformen davon beispielhaft in den Zeichnungen gezeigt und werden hierin detailliert beschrieben. Es versteht sich jedoch, dass die Zeichnungen und die detaillierte Beschreibung dazu die Ausführungsformen der offenbarten besonderen Form nicht einschränken sollen, sondern dass im Gegenteil alle Modifikationen, Äquivalente und Alternativen, die innerhalb des Wesens und Schutzumfangs der beiliegenden Ansprüche sind, abgedeckt werden sollen. Wie in dieser Anmeldung verwendet, wird das Wort „können“ in einem erlaubenden Sinn (d. h. in der Bedeutung von das Potenzial aufweisend) und nicht im obligatorischen Sinn (d. h. in der Bedeutung von müssen) verwendet. Gleichermaßen haben die Wörter „einschließen“, „einschließlich“ und „schließt ein“ die Bedeutung von einschließlich, ohne darauf beschränkt zu sein.
  • Verschiedene Einheiten, Schaltungen oder andere Komponenten können als „konfiguriert zum“ Durchführen einer Aufgabe oder von Aufgaben beschrieben sein. In solchen Kontexten ist „konfiguriert zu“ eine weit gefasste Angabe einer Struktur, die allgemein bedeutet „Schaltlogik aufweisend, die“ die Aufgabe oder Aufgaben während des Betriebs durchführt. Deshalb kann die Einheit/Schaltung/Komponente konfiguriert sein, um die Aufgabe durchzuführen, auch wenn die Einheit/Schaltung/Komponente aktuell nicht eingeschaltet ist. Im Allgemeinen kann die Schaltlogik, die die Struktur entsprechend „konfiguriert zu“ bildet, Hardwareschaltungen einschließen. Gleichermaßen können verschiedene Einheiten/Schaltungen/Komponenten in der Beschreibung der Einfachheit halber als eine Aufgabe oder Aufgaben durchführend beschrieben sein. Solche Beschreibungen sollten derart interpretiert werden, dass sie die Phrase „konfiguriert zu“ einschließen. Das Angeben einer Einheit/Schaltung/Komponente, die konfiguriert ist, um eine oder mehrere Aufgaben durchzuführen, soll sich ausdrücklich nicht auf die Anwendung von 35 U.S.C. § 112 (f) für diese Einheit/Schaltung/Komponente berufen.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • In der folgenden Beschreibung sind zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis der in dieser Offenbarung beschriebenen Ausführungsformen bereitzustellen. Der Fachmann sollte jedoch erkennen, dass die Ausführungsformen ohne diese spezifischen Details umgesetzt werden könnten. In einigen Fällen wurden allgemein bekannte Schaltungen, Strukturen und Techniken zur einfacheren Veranschaulichung nicht im Detail gezeigt, um eine Verunklarung der Beschreibung der Ausführungsformen zu vermeiden.
  • Mit Bezug auf 1 ist ein verallgemeinertes Blockdiagramm einer Ausführungsform einer Datenübertragung 100 gezeigt. In verschiedenen Ausführungsformen empfängt ein Sender 110 parallele Mehrbitdaten 102 und übermittelt serielle Daten 118 als codierte Impulse an einen Empfänger 120. Die codierten Impulse der seriellen Daten 118 repräsentieren die parallelen Mehrbitdaten 102, die an mehreren Stiften des Senders 110 empfangen werden. In einigen Ausführungsformen erzeugt der Empfänger 120 parallele Mehrbitdaten 128 aus den empfangenen seriellen Daten 118 und übermittelt die Daten 128 an eine externe Verarbeitungslogik (nicht gezeigt). In einer Ausführungsform schließt jeder von dem Sender 110 und dem Empfänger 120 eine Impulscodierungslogik 112 bzw. 122 ein. Jede der Impulscodierungslogiken 112 und 122 wird durch Hardware, wie Schaltlogik, oder durch Software, wie Firmware, oder eine Kombination aus Hardware und Software implementiert.
  • Die Impulscodierungslogik 112 schließt einen Codierer 114 zum Erzeugen der seriellen Daten 118 als codierte Impulse aus den empfangenen parallelen Daten 102 ein. In einer Ausführungsform schließen die codierten Impulse in den seriellen Daten 118 Symbole ein, wobei jedes Symbol einen Abschnitt der parallelen Mehrbitdaten 102 repräsentiert. Jedes Symbol verwendet eine bestimmte Anzahl von Impulsen, um parallele Daten zu repräsentieren. In einer Ausführungsform gibt ein Symbol mit drei Impulsen einen bestimmten 2-Bit-Zustand an, während ein anderes Symbol mit zwei Impulsen einen anderen 2-Bit-Zustand angibt und so weiter. Andere Anzahlen von Impulsen und parallelen Bits sind möglich und werden in anderen Ausführungsformen in Betracht gezogen. In einigen Ausführungsformen sendet der Sender 110 die Symbole als Daten 118 auf einer einzelnen Datenleitung an den Empfänger 120.
  • In verschiedenen Ausführungsformen empfängt der Decodierer 126 der Impulscodierungslogik 122 die Symbole der seriellen Daten 118 und wandelt jedes Symbol in einen Abschnitt der parallelen Mehrbitdaten 128 um. Durch Decodieren der empfangenen Symbole der seriellen Daten 118 erstellt der Decodierer 126 das parallele Mehrbit 102 als die parallelen Mehrbitdaten 128 neu. In einer Ausführungsform unterscheidet der Decodierer 126 die Symbole voneinander, zählt eine Anzahl von Impulsen in einem bestimmten Symbol und ordnet die Anzahl von Impulsen einer bestimmten Anzahl paralleler Bits zu. In einer Ausführungsform zählt der Decodierer 126 einen Impuls in einem bestimmten Symbol und ordnet den Zählwert eines Impulses einem bestimmten 2-Bit-Zustand zu. Die Datenübertragung zwischen dem Sender 110 und dem Empfänger 120 verwendet die Symbole zum Repräsentieren paralleler Daten, wobei es keine Eins-zu-eins-Beziehung zwischen einem Impuls und einem Datenbit gibt. Vielmehr wird eine variierende Anzahl von Impulsen verwendet, um eine gleiche Anzahl paralleler Bits zu repräsentieren. In einer Ausführungsform sind parallele 2 Bits in der Lage, 4 Zustände zu repräsentieren. Statt 4 serielle Bits zu senden, sendet der Sender 110 eine Anzahl von Impulsen in einem Bereich von 0 bis 3, um einen der 4 Zustände für die 2 parallelen Bits repräsentieren. In anderen Ausführungsformen werden andere Anzahlen von parallelen Bits und Impulsen verwendet, um die parallelen Bits zu repräsentieren.
  • In einigen Ausführungsformen handelt es sich bei einer oder mehreren Datenleitungen zwischen dem Sender 110 und dem Empfänger 120 um eine bidirektionale Datenleitung.
  • Um die bidirektionale Datenübertragung zu unterstützen, verwendet die Impulscodierungslogik 112 den Decodierer 116, der die äquivalente Funktionalität des Decodierers 126 aufweist. In ähnlicher Weise verwendet die Impulscodierungslogik 122 den Codierer 124, der die äquivalente Funktionalität des Codierers 114 aufweist. In einigen Ausführungsformen unterstützen der Sender 110 und der Empfänger 120 eine Master/Slave-Architektur, wie das Universal Serial Bus-Standardprotokoll (USB-Standardprotokoll) zum Verbinden von Vorrichtungen. In anderen Ausführungsformen wird ein anderes Kommunikationsprotokoll verwendet.
  • Obwohl vorstehend Impulse unter Verwendung von Spannungspegeln beschrieben worden sind, um die Zuordnung zwischen dem vorherigen Stiftzustand und dem aktuellen Stiftzustand von Daten, die gerade übertragen werden, anzugeben, verwendet die Logik der E/A-Schnittstellen in anderen Ausführungsformen andere Ereignisse. Statt Impulse von Spannungspegeln zu verwenden, verwendet die Logik in anderen Ausführungsformen zum Beispiel eines von einem Spannungsträgersignal mit fester Frequenz auf einem physischen Draht zum Angeben des Ein-/Ausschaltens und einer Amplitudenumtastung, einer magnetischen oder induktiven Kopplung, einer elektrostatischen oder kapazitiven Kopplung, einer optischen Kopplung oder einer drahtlosen Verhältnisschnittstelle, die zum Übertragen von Ereignissen in der Lage ist.
  • Nun zu 2, wo ein verallgemeinertes Blockdiagramm einer Ausführungsform einer Symbolerzeugungstabelle 150 (oder Tabelle 150) gezeigt ist. In der veranschaulichten Ausführungsform ordnet die Symbolerzeugungstabelle 150 einen vorherigen 2-Bit-Stiftzustand einem aktuellen 2-Bit-Stiftzustand zu. In verschiedenen Ausführungsformen führt die Tabelle 150 die Zuordnung basierend auf einer Anzahl von Impulsen durch, die während eines Zeitintervalls über eine einzelne Datensignalleitung empfangen werden. In anderen Ausführungsformen wird jedoch für die Stiftzustände eine andere Anzahl paralleler Bits verwendet. Obwohl in der Tabelle 150 eine bestimmte Zuordnung gezeigt ist, ist in anderen Ausführungsformen eine andere Zuordnung möglich und wird in Betracht gezogen.
  • Der Sender und der Empfänger verwenden die Tabelle 150 und die Symbolzuordnungen 160, um die Übertragung paralleler Mehrbitdaten als serielle Daten auf einer einzelnen Datenleitung zu unterstützen. In verschiedenen Ausführungsformen verwenden der Sender und der Empfänger jeweils eine Kopie der Tabelle 150 und der Symbolzuordnungen 160. Der Sender bestimmt basierend auf einer Vielfalt von Bedingungen, dass es Zeit zum Senden von Daten ist. Wenn der Sender parallele Mehrbitdaten an den Empfänger zu senden hat, teilt der Sender die parallelen Mehrbitdaten in zusammenhängende Abschnitte oder Sektionen. Jeder Abschnitt weist einen aktuellen Stiftzustand auf. In einer Ausführungsform weist jeder Abschnitt 2 Bits auf. In anderen Ausführungsformen weist jeder Abschnitt eine andere Anzahl paralleler Mehrbits auf.
  • Der Sender behält einen vorherigen Stiftzustand bei, der während einer vorherigen Datenübertragung der aktuelle Stiftzustand war. Unter Verwendung der Tabelle 150 identifiziert die Steuerlogik des Senders eine Zeile der Tabelle 150 basierend auf dem vorherigen Stiftzustand und identifiziert eine Spalte basierend auf dem aktuellen Stiftzustand. Für die ersten 2 zu sendenden Bits ist der vorherige Stiftzustand ein Zustand, der während einer früheren Datenübertragung verwendet wurde, oder ein Standardstiftzustand, der sowohl dem Sender als auch dem Empfänger bekannt ist. Die Logik verwendet das resultierende Symbol und die Symbolzuordnungen 160, um eine Anzahl von Impulsen zu bestimmen, die innerhalb eines Zeitintervalls zu senden sind, und die Anzahl von Impulsen repräsentiert den aktuellen Stiftzustand.
  • Die Notation „2'b“ bezeichnet einen 2-Bit-Binärwert, und wie gezeigt, wenn der vorherige Stiftzustand 2'b01 ist und der aktuelle Stiftzustand zum Senden 2'b10 ist, wählt die Steuerlogik des Senders die zweite Zeile von oben in der Tabelle 150 basierend auf dem vorherigen Stiftzustand aus. Die Steuerlogik wählt die dritte Spalte von links aus der Tabelle 150 basierend auf dem aktuellen Stiftzustand aus und identifiziert das Symbol „D“. Anhand der Symbolzuordnungen 160 bestimmt die Steuerlogik, dass das Symbol „D“ einen Zählwert von 3 Impulsen repräsentiert, die über eine serielle Datenleitung an einen Empfänger zu senden sind. In einigen Ausführungsformen sendet der Sender die 3 Impulse innerhalb eines Zeitintervalls, um das Symbol „D“ anzugeben.
  • Wenn der Sender während des Zeitintervalls keine Impulse sendet, ist in einer Ausführungsform der aktuelle Stiftzustand gleich dem vorherigen Stiftzustand. Diese Zuordnung wird durch die obere Zeile der Symbolzuordnungen 160 und das Symbol „A“ in der Tabelle 150 angegeben. Die Symbolzuordnungen 160 ordnen dem Symbol „A“ keine Impulse oder null Impulse zu. Wenn der Sender während eines Zeitintervalls einen Impuls sendet, ändert sich nur ein bestimmtes Bit des aktuellen Stiftzustands. In einigen Ausführungsformen ist das bestimmte Bit das niedrigstwertige Bit, in der Tabelle 150 als „b1“ angegeben. In anderen Ausführungsformen ist das bestimmte Bit das höchstwertige Bit, in der Tabelle 150 als „b0“ angegeben.
  • Die Steuerlogik des Empfängers zählt eine Anzahl von innerhalb eines Zeitintervalls empfangenen Impulsen und bestimmt anhand der Symbolzuordnungen 160 das Symbol. Die Steuerlogik des Empfängers wählt eine Zeile der Tabelle 150 basierend auf dem vorherigen Stiftzustand aus und wählt eine Spalte basierend auf dem aus den Zuordnungen 160 gelesenen Symbol aus. Die ausgewählte Spalte stellt den aktuellen Stiftzustand bereit. Die Steuerlogik sendet den aktuellen Stiftzustand an eines oder mehrere von der Datenspeicherungs- und Verarbeitungslogik.
  • Mit Bezug auf 3 ist ein verallgemeinertes Blockdiagramm einer Ausführungsform einer Datenübertragung 200 gezeigt. In verschiedenen Ausführungsformen gibt es zwischen einem Sender 210 und einem Empfänger 230 eine oder mehrere Datenleitungen. Obwohl ein Kommunikationsprotokoll mehrere Datenleitungen zwischen dem Sender 210 und dem Empfänger 230 verwendet, wird in einigen Ausführungsformen eine einzelne Datenleitung verwendet, während eine oder mehrere andere Datenleitungen deaktiviert oder anderweitig ausgeschaltet sind. In einer Ausführungsform verwenden der Sender 210 und der Empfänger 230 eine einzelne aktivierte (eingeschaltete) Datenleitung, um zwischen einander Daten 220 zu übertragen. Der Sender 210 empfängt Daten 202 und Daten 204 von einer externen Verarbeitungslogik (nicht gezeigt) und sendet die Daten 220 als eine Repräsentation der empfangenen Daten 202 und 204. Der Empfänger 230 empfängt die Daten 220 und decodiert die empfangenen Daten 220 als die Daten 202 und die Daten 204 oder ordnet diese auf andere Weise zu. Der Empfänger sendet die decodierten Daten als Daten 240 und Daten 242 an eine externe Verarbeitungslogik (nicht gezeigt).
  • Der Sender 210 schließt Steuerlogik (oder Logik 214), einen Puffer 216 zum Speichern der empfangenen Daten 202 und 204 sowie die Schnittstelle 212 zum Übertragen der Daten 220 mit dem Empfänger 230 ein. In ähnlicher Weise schließt der Empfänger 230 Steuerlogik (oder Logik 234), einen Puffer 236 zum Speichern der empfangenen Daten 240 und 242 sowie die Schnittstelle 232 zum Übertragen der Daten 220 mit dem Sender 210 ein. Jede von der Logik 214 und 234 ist durch eines oder mehrere von Hardware, wie Steuerschaltlogik, und Software, wie Firmware und Softwareanwendungen, implementiert. Jeder der Puffer 216 und 236 wird mit Flipflops, einem von einer Vielfalt von Arten von Direktzugriffsspeicher (RAM), inhaltsadressierbarem Speicher (CAM) oder anderem implementiert. In einigen Ausführungsformen verwenden der Sender 210 und der Empfänger 230 eine aktivierte bidirektionale Datenleitung, die sich zwischen beiden befindet, so dass zu bestimmten Zeiten der Sender 210 Daten an den Empfänger 230 sendet und zu anderen Zeiten der Empfänger 230 Daten an den Sender 210 sendet. Wenn der Empfänger 230 Daten an den Sender 210 sendet, empfängt der Empfänger 230 in einer Ausführungsform die Daten 240 und 242 auf bidirektionalen Datenleitungen, und in ähnlicher Weise sendet der Sender die Daten 202 und 204 auf bidirektionalen Datenleitungen. In anderen Ausführungsformen überträgt jeder von dem Sender 210 und dem Empfänger 230 Daten auf anderen Datenleitungen (nicht gezeigt).
  • Die Logik 214 und 234 bestimmt einen Betriebsmodus für den Sender 210 bzw. den Empfänger 230. Wenn die Logik 214 und 234 bestimmt, dass es sich bei einem Betriebsmodus um einen Datenübertragungsmodus handelt, bestimmt die Logik 214 und 234 eine Quelle für zu übertragende Daten. Eine Quelle für den Sender 210 sind die Daten 202 und 204, wie sie empfangen werden. Eine andere Quelle sind die in dem Puffer 216 gespeicherten Daten. Die Logik 214 wählt zwischen den zwei Quellen basierend auf dem Betriebsmodus, wie einem Datenübertragungsmodus und einem energiesparenden Datenübertragungsmodus, aus. In ähnlicher Weise sind eine Quelle für den Empfänger 230 die Daten 240 und 204, wie sie empfangen werden. Eine andere Quelle sind die in dem Puffer 236 gespeicherten Daten.
  • Wenn der Sender 210 in einem Datenübertragungsmodus arbeitet, bestimmt die Logik 214 einen aktuellen Zustand von innerhalb eines Zeitintervalls zu übertragenden Daten. Ein Beispiel für das Zeitintervall ist das Zeitintervall 250. Es sind drei Spannungs-ZeitDiagramme gezeigt, jeweils ein Diagramm für die Eingangsdaten 202 und 204 sowie ein Diagramm für die Daten 220 zwischen dem Sender 210 und dem Empfänger 230. In einigen Ausführungsformen ist das Zeitintervall 250 eine Zeitdauer, die so bestimmt wird, dass sie für die Übertragung von Daten und eine korrekte Interpretation der Daten zur Speicherung oder Verwendung an dem Empfänger 230 ausreicht. Zum Beispiel sind die Daten, die in dem Zeitintervall 250 zu senden sind, eine Teilmenge oder ein Abschnitt der gesamten Daten, die über mehrere Zeitintervalle hinweg zu übertragen sind. In einer Ausführungsform kann der Sender 210 ein Gigabyte (GB) Gesamtdaten übertragen, aber 2 Bits (Binärziffern) für jedes Zeitintervall 250 übertragen. Wenn sowohl der Sender 210 als auch der Empfänger 230 in der Lage ist, während eines Zeitintervalls von 90 Nanosekunden (ns) einen 2-Bit-Zustand zwischen einander zu übertragen, beträgt das Zeitintervall 250 90 ns. In einer solchen Ausführungsform bestimmt die Logik 214 einen aktuellen Zustand.
  • In einer Ausführungsform wird die Datenquelle von den empfangenen Daten 202 und 204 mit einem Wert von 2'b 10 gebildet, wobei „2'b“ einen 2-Bit-Binärwert bezeichnet.
  • Zusätzlich zum aktuellen Zustand bestimmt die Logik 214 auch einen vorherigen Zustand. Der vorherige Zustand ist ein aktueller Zustand eines unmittelbar vorherigen Zeitintervalls vor dem aktuellen Zeitintervall. Wenn das aktuelle Zeitintervall ein anfängliches Zeitintervall ist, ist der vorherige Zustand ein Standardanfangszustand. In einem Beispiel ist der Standardanfangszustand 2b'00. Andere Datengrößen, Zeitintervalldauern und Anfangszustände sind möglich und werden in anderen Ausführungsformen in Betracht gezogen. Um die empfangenen Daten 202 und 204 auf einer einzelnen Datenleitung zu senden, verwendet die Logik 214 den aktuellen Zustand wie auch den vorherigen Zustand, um eine Anzahl von Impulsen zu bestimmen, die als die Daten 220 an den Empfänger 230 zu senden sind. In einer Ausführungsform verwendet die Logik 214 eine Zustandstabelle, die einen vorherigen Zustand basierend auf einer Anzahl von Impulsen, die als die Daten 220 innerhalb des Zeitintervalls 250 empfangen werden, einem aktuellen Zustand zuordnet. In verschiedenen Ausführungsformen verwendet die Logik 234 des Empfängers 230 eine gleiche Zustandstabelle, um die empfangenen Impulse zu decodieren. In verschiedenen Ausführungsformen speichert jede von der Logik 214 und 234 auch eine Kopie des vorherigen Zustands.
  • In einer Ausführungsform speichert jede von der Logik 214 und 234 einen vorherigen Zustand von 2'b00, und die Logik 214 bestimmt, dass der aktuelle Zustand der empfangenen Daten 202 und 204 2'b11 ist. Zum Beispiel gehen die Daten 202 zum Zeitpunkt t1 in eine boolesche ,1' oder einen logischen High-Pegel über, und zu einem späteren Zeitpunkt t3 gehen die Daten 204 in eine boolesche ,1' über, was auch ein logischer Low-Pegel ist. Unter Verwendung des vorherigen Zustands von 2'b00 des aktuellen Zustands von 2'b11 und einer Zustandstabelle, wie der vorherigen Tabelle 150 (von 2), bestimmt die Logik 214, dass 3 Impulse als die Daten 220 an den Empfänger 230 gesendet werden sollten, bevor das Zeitintervall 250 abläuft. In einer Ausführungsform entspricht jede eindeutige Anzahl von Impulsen einem Symbol, das verwendet wird, um den aktuellen 2-Bit-Zustand zuzuordnen oder zu decodieren. In einer Ausführungsform geben 3 Impulse das Symbol D an, 2 Impulse geben das Symbol C an und ein Impuls gibt das Symbol B an. In anderen Ausführungsformen werden jedoch andere Kombinationen von Zuordnungen und Impulsanzahlen zusätzlich zu einer anderen Größe der Zustände verwendet.
  • In einer Ausführungsform wird der erste Impuls des Symbols D zum Zeitpunkt t2 als Reaktion auf den ersten Datenübergang der Daten 202 zum Zeitpunkt tl erzeugt. Daher wartet die Logik 214 keine feste Wartezeit ab, um jeden möglichen Datenübergang der Daten 202 und 204 zu bestimmen, bevor sie mit dem Erzeugen von Impulsen beginnt. In einer Ausführungsform wird der dritte Impuls des Symbols D zum Zeitpunkt t4 als Reaktion auf den zweiten Datenübergang der Daten 204 zum Zeitpunkt t3 erzeugt. Die Zeitdauer für einen letzten Datenübergang bei den Daten 202 und 204, die Impulsbreite und Wartezeiten zwischen Impulsen variieren von einem Design zum anderen und werden jeweils zum Bestimmen des Zeitintervalls 250 verwendet. In verschiedenen Ausführungsformen verwendet die Logik 234 den vorherigen Zustand von 2'b00, die empfangenen 3 Impulse und eine Zustandstabelle, um zu bestimmen, dass der aktuelle Zustand 2'b11 ist. Die Logik 234 sendet entweder den aktuellen Zustand 2'b11 als die Daten 242 und 144 oder speichert den aktuellen Zustand in dem Puffer 236.
  • In dem nächsten Zeitintervall 250 speichert in einer Ausführungsform jede von der Logik 214 und 234 einen vorherigen Zustand 2' 11, und die Logik 214 bestimmt einen aktuellen Zustand der empfangenen Daten 202 und 204. Zum Zeitpunkt t5 gehen die Daten 204 über, was bewirkt, dass der erste Impuls zum Zeitpunkt t6 erzeugt wird. Der Übergang der Daten 202 zum Zeitpunkt t7 bestimmt das zu sendende Symbol, wie das Symbol C, das auch die endgültige Anzahl von zu erzeugenden und an den Empfänger 230 zu sendenden Impulsen bestimmt. In ähnlicher Weise bestimmt die Logik 214 in dem dritten Zeitintervall 250, dass der aktuelle Zustand durch das Symbol B oder einen einzelnen Impuls repräsentiert wird, das/der durch die Logik 234 des Empfängers 230 decodiert oder neu zugeordnet wird.
  • Bezugnehmend auf 4 wird nun ein verallgemeinertes Flussdiagramm einer Ausführungsform eines Verfahrens 300 zum effizienten Übertragen von Daten zwischen Vorrichtungen gezeigt. Zu Erörterungszwecken sind die Schritte in dieser Ausführungsform (sowie für 5, 7 und 11-12) in sequenzieller Reihenfolge gezeigt. Jedoch können in anderen Ausführungsformen einige Schritte in einer anderen Reihenfolge als gezeigt auftreten, einige Schritte können gleichzeitig durchgeführt werden, einige Schritte können mit anderen Schritten kombiniert werden und einige Schritte können fehlen.
  • Logik von E/A-Schnittstellen eines Senders und eines Empfängers versetzen den Sender und den Empfänger in einen Datenübertragungsmodus (Block 302). In verschiedenen Ausführungsformen ist der Sender eines von einer E/A-Schnittstelle einer Host-Rechenvorrichtung oder einer Peripherievorrichtung, und in ähnlicher Weise ist der Empfänger das andere von der Host-Rechenvorrichtung und der Peripherievorrichtung. In einigen Ausführungsformen kommunizieren der Sender und der Empfänger unter Verwendung eines Protokolls für eine serielle Datenkommunikation miteinander. In verschiedenen Ausführungsformen bestimmt das Kommunikationsprotokoll, welche Vorrichtung zu einer bestimmten Zeit der Sender ist. Die Logik der E/A-Schnittstellen bestimmt, dass es Zeit zum Übergehen aus einem Ruhemodus in einen Datenübertragungsmodus ist, basierend auf einem oder mehreren von einem Bestimmen, dass ein Zeitintervall abgelaufen ist, Bestimmen, dass eine zu übertragende Datenmenge einen Schwellenwert überschreitet, und Empfangen eines Steuersignals, das den Übergang von Verarbeitungslogik von einem oder mehreren von dem Sender und dem Empfänger angibt.
  • Die Logik der E/A-Schnittstellen bestimmt einen Standardzustand für ein Impulscodieren von Daten des Senders und des Empfängers (Block 304). Der Standardzustand wird auch als Anfangszustand bezeichnet. In der folgenden Beschreibung übertragen der Sender und der Empfänger Daten als 2-Bit-Zustände, verwenden dazu jedoch eine einzelne Datensignalleitung. In anderen Ausführungsformen werden eine andere Anzahl von Bits und eine andere Anzahl von Datenleitungen verwendet. Zusätzlich werden in anderen Ausführungsformen die Logik und die Anzahl von Datensignalleitungen repliziert, um zwischen dem Sender und dem Empfänger einen Bus bereitzustellen. In verschiedenen Ausführungsformen speichern der Sender und der Empfänger einen Anfangszustand von Daten, der ein vorbestimmter Standardzustand ist. Dieser Anfangszustand wird als vorheriger Zustand für den ersten Zustand verwendet, der vom Sender zum Empfänger übertragen werden soll.
  • Nachdem der Anfangszustand der Daten bestimmt wurde, startet die Senderlogik einen Zeitmesser, um ein Zeitintervall zu messen (Block 306). Die Zeitdauer für einen letzten Datenübergang bei empfangenen Daten, die Impulsbreite und die Wartezeiten zwischen Impulsen variieren von einem Design zum anderen und werden jeweils zum Bestimmen der Dauer des Zeitintervalls verwendet. In einer Ausführungsform startet die Empfängerlogik erst dann einen Zeitmesser zum Messen des gleichen Zeitintervalls, wenn ein Datenübergang vom Sender empfangen wird. Während des Zeitintervalls codiert der Sender parallele Mehrbitdaten in serielle Daten als eine Serie von Impulsen (Block 308). In einer Ausführungsform bestimmt der Sender eine Anzahl (oder einen Zählwert) von Impulsen basierend auf dem empfangenen aktuellen Zustand und dem gespeicherten vorherigen Zustand. In einer Ausführungsform verwendet der Sender eine Symbolerzeugungstabelle äquivalent zu der Tabelle 150 (von 2). Der Sender sendet die seriellen Daten, wie die Anzahl von Impulsen, an den Empfänger (Block 310).
  • Während des gemessenen Zeitintervalls am Empfänger zählt die Empfängerlogik eine Anzahl von Impulsen in den impulscodierten Daten, die vom Sender empfangen werden (Block 312). In einigen Ausführungsformen beginnen die Impulse mit einer steigenden Flanke, wohingegen in anderen Ausführungsformen die Impulse mit einer fallenden Flanke beginnen. Wenn eine steigende Flanke verwendet wird, um den Beginn eines Impulses anzugeben, wird darauf hingewiesen, dass ein letzter Impuls mit einer steigenden Flanke beginnen kann, die fallende Flanke aber außerhalb des Zeitintervalls auftreten kann. In einigen Ausführungsformen zählt die Empfängerlogik jedoch weiterhin den letzten Impuls. Wenn eine fallende Flanke zur Angabe des Beginns eines Impulses verwendet wird, zählt die Empfängerlogik, wenn die entsprechende steigende Flanke des letzten Impulses nach Abschluss des zweiten Zeitintervalls auftritt, in ähnlicher Weise weiterhin den letzten Impuls.
  • Wenn die Logik der Empfänger-E/A-Schnittstelle bestimmt, dass das Zeitintervall nicht abgelaufen ist („Nein“-Zweig des Bedingungsblocks 314), dann kehrt der Steuerfluss des Verfahrens 300 zu Block 312 zurück, wo die Logik das Zählen von empfangenen Impulsen fortsetzt. Wenn die Logik der Empfänger-E/A-Schnittstelle bestimmt, dass das zweite Zeitintervall abgelaufen ist („Ja“-Zweig des Bedingungsblocks 314), dann decodiert die Logik die seriellen Daten, die parallele Daten repräsentieren (Block 316). In einer Ausführungsform bestimmt die Logik den aktuellen Zustand der Daten basierend auf dem Zählwert von Impulsen und dem vorherigen Zustand. Zum Beispiel verwendet die Logik die Anzahl von Impulsen, um den vorherigen Zustand einem aktuellen Zustand zuzuordnen. In verschiedenen Ausführungsformen bestimmt die Logik die Zuordnung unter Verwendung einer Tabelle äquivalent zu der Tabelle 150 (von 2).
  • In einer Ausführungsform gibt ein Zählwert von null Impulsen an, dass der aktuelle Zustand gleich dem vorherigen Zustand ist. In ähnlicher Weise bestimmt die Logik, dass ein Zählwert von einem Impuls angibt, dass sich nur ein bestimmter 2-Bit-Datenzustand geändert hat, wohingegen die Logik bestimmt, dass ein Zählwert von zwei Impulsen angibt, dass sich nur der andere 2-Bit-Datenzustand geändert hat. Wenn zum Beispiel der vorherige Zustand 2'b01 war, wobei „2'b“ einen Zwei-Bit-Binärwert angibt, dann bestimmt in einer Ausführungsform die Logik, dass ein Zählwert von einem Impuls angibt, dass der aktuelle Zustand 2'b00 ist, wobei sich nur das niedrigstwertige Bit geändert hat. In ähnlicher Weise bestimmt die Logik, dass ein Zählwert von zwei Impulsen angibt, dass der aktuelle Zustand 2'b11 ist, wobei sich nur das höchstwertige Bit geändert hat. In diesem Beispiel bestimmt die Logik, dass ein Zählwert von null keine Änderung angibt, sodass der aktuelle Zustand 2'b01 ist, und ein Zählwert von drei Impulsen angibt, dass sich beide Bits geändert haben, sodass der aktuelle Zustand 2'b 10 ist.
  • Die Empfängerlogik sendet den aktuellen Zustand an Verarbeitungslogik und/oder einen Datenspeicher am Empfänger (Block 318). Wenn die E/A-Schnittstellen bestimmen, dass der Datenübertragungsmodus noch nicht beendet ist („Nein“-Zweig des Bedingungsblocks 320), dann kehrt der Steuerfluss des Verfahrens 300 zu Block 306 zurück, wo der Empfänger den Zeitmesser neu startet, um das Zeitintervall zu messen. Andernfalls, wenn die E/A-Schnittstellen bestimmen, dass der Datenübertragungsmodus beendet ist („Ja“-Zweig des Bedingungsblocks 320), dann wechseln die E/A-Schnittstellen sowohl des Senders als auch des Empfängers in einen anderen Betriebsmodus, wie einen Ruhemodus (Block 322).
  • Bezugnehmend auf 5 wird nun ein verallgemeinertes Flussdiagramm einer Ausführungsform eines Verfahrens 400 zum effizienten Übertragen von Daten zwischen Vorrichtungen gezeigt. Logik einer Schnittstelle einer Vorrichtung betreibt eine bidirektionale Signalleitung zwischen einer Host-Rechenvorrichtung und einer Peripherievorrichtung (Block 402). Die Datenübertragung erfolgt basierend auf einem Datenübertragungsmodus, einem Ruhemodus oder anderem. Die Datenleitung entspricht einem physischen Draht mit Kontakten, die eine Verbindung zu anderen Kontakten oder Anschlussstellen herstellen, um einen elektrischen Kurzschluss zwischen der Host-Rechenvorrichtung und der Peripherievorrichtung zu erzeugen Die Schnittstellenlogik ist als Hardware, wie Schaltlogik, als Software oder eine Kombination aus Hardware und Software implementiert. In verschiedenen Ausführungsformen unterstützt die Schnittstellenlogik ein Protokoll für eine serielle Datenkommunikation.
  • Wenn die Logik von einem oder mehreren von dem Sender und dem Empfänger keine Angabe empfängt, dass in einem Energiesparmodus gearbeitet werden soll („Nein“-Zweig des Bedingungsblocks 404), dann kehrt der Steuerfluss des Verfahrens 400 zu Block 402 zurück, wobei die Schnittstellen einen aktuellen Betriebsmodus beibehalten. In einigen Ausführungsformen bestimmen die Schnittstellen basierend auf einem Zeitintervall, einer empfangenen Angabe von einer Energieverwaltungseinheit oder anderem, dass es Zeit zum Wechseln in den Energiesparmodus ist. Wenn die Logik von einem oder mehreren von dem Sender und dem Empfänger eine Angabe empfängt, dass in einem Energiesparmodus gearbeitet werden soll („Ja“-Zweig des Bedingungsblocks 404), dann betreiben die Schnittstellen die bidirektionale Datensignalleitung in einem Ruhemodus, während Daten gespeichert werden (Block 406). Statt Daten auf den bidirektionalen Datenleitungen zu senden, wenn die Daten empfangen werden, speichern die Schnittstellen die empfangenen Daten in entsprechenden Puffern, während die bidirektionale Datenleitung auf einem konstanten Spannungspegel gehalten wird.
  • Wenn die Schnittstellen nicht bestimmen, dass es Zeit zum Beenden des Ruhemodus ist („Nein“-Zweig des Bedingungsblocks 408), dann kehrt der Steuerfluss des Verfahrens 400 zu Block 406 zurück, wobei die Schnittstellen den Ruhemodus beibehalten, während empfangene Daten gespeichert werden. Bedingungen für ein Wechseln aus diesem Ruhemodus in einen Datenübertragungsmodus schließen eines oder mehrere von einem Bestimmen, dass ein Zeitintervall abgelaufen ist, Bestimmen, dass eine Datenmenge, die während dieses Ruhemodus gespeichert wurde, einen Schwellenwert überschreitet, und Empfangen eines Steuersignals, das einen Wechsel angibt, von Verarbeitungslogik der Vorrichtung ein. Wenn die Schnittstellen bestimmen, dass es Zeit zum Beenden des Ruhemodus ist („Ja“-Zweig des Bedingungsblocks 408), dann betreiben die Schnittstellen die bidirektionale Datensignalleitung in einem Datenübertragungsmodus, indem sie die gespeicherten Daten zwischen Vorrichtungen senden (Block 410).
  • Bedingungen für einen Wechsel aus diesem Datenübertragungsmodus schließen eines oder mehrere von einem Bestimmen, dass ein Zeitintervall abgelaufen ist, Bestimmen, dass eine Datenmenge, die während dieses Datenübertragungsmodus übertragen wurde, einen Schwellenwert überschreitet, und Empfangen eines Steuersignals, das einen Wechsel angibt, von Verarbeitungslogik der Vorrichtung ein. In verschiedenen Ausführungsformen erzeugen die Schnittstellen eine Serie von Impulsen, wie zuvor beschrieben. Die Empfangslogik wandelt die Impulse auf der einzelnen Datensignalleitung in zwei oder mehr Datensignale um. Wenn es sich bei dem Kommunikationsprotokoll um das USB-Protokoll für eine serielle Datenkommunikation handelt, wandelt die Empfangslogik die Impulse in zwei Datensignale um.
  • Wenn die Schnittstellen nicht bestimmen, dass es Zeit zum Beenden des Datenübertragungsmodus ist („Nein“-Zweig des Bedingungsblocks 412), dann kehrt der Steuerfluss des Verfahrens 400 zu Block 410 zurück, wo die Schnittstellen den Datenübertragungsmodus beibehalten. Wenn die Schnittstellen bestimmen, dass es Zeit zum Beenden des Datenübertragungsmodus ist („Ja“-Zweig des Bedingungsblocks 412), aber der Energiesparmodus noch nicht beendet ist („Nein“-Zweig des Bedingungsblocks 414), dann kehrt der Steuerfluss des Verfahrens 400 zu Block 406 zurück, wo die Schnittstellen die bidirektionale Datensignalleitung in einem Ruhemodus betreiben, während Daten gespeichert werden. Wenn die Schnittstellen bestimmen, dass es Zeit zum Beenden des Datenübertragungsmodus ist („Ja“-Zweig des Bedingungsblocks 412), und der Energiesparmodus beendet ist („Ja“-Zweig des Bedingungsblocks 414), dann kehrt der Steuerfluss des Verfahrens 400 zu Block 402 zurück, wo die Schnittstellen die bidirektionale Signalleitung basierend auf einem aktuellen Betriebsmodus betreiben, der vom Energiesparmodus verschieden ist.
  • Mit Bezug auf 6 ist ein verallgemeinertes Blockdiagramm einer Ausführungsform eines Rechensystems 500 gezeigt. In verschiedenen Ausführungsformen schließt das Rechensystem 500 einen Prozessorkomplex 510 mit Schnittstellen zum Verbinden mit Peripherievorrichtungen 540A-540B und einer Speicherschnittstelle 560 zum Kommunizieren mit einem Speicher 562 ein. Zum Beispiel schließt in einigen Ausführungsformen der Prozessorkomplex 510 Eingabe/Ausgabe-Schnittstellen (E/A-Schnittstellen) 530A-530B zum Kommunizieren mit den E/A-Schnittstellen 542A-542B der Peripherievorrichtungen 540A-540B ein. Taktquellen, wie Phasenregelkreise (PLLs), Interrupt-Controller, Energieverwaltungen und dergleichen, sind in 5 der Einfachheit der Veranschaulichung halber nicht gezeigt. Außerdem wird darauf hingewiesen, dass die Anzahl von Komponenten des Rechensystems 500 (und die Anzahl von Teilkomponenten für die in 5 gezeigten Komponenten, wie innerhalb des Prozessorkomplexes 510) von Ausführungsform zu Ausführungsform variiert. Zum Beispiel verwendet das Rechensystem 500 in einigen Ausführungsformen eine Kommunikations-Fabric 550 (oder Fabric 550) zum Weiterleiten von Daten zwischen einer zusätzlichen Eingabe/Ausgabe-Schnittstelle (E/A-Schnittstelle) 530C und einer zusätzlichen Peripherievorrichtung 540C mit einer entsprechenden E/A-Schnittstelle 542C. In solchen Ausführungsformen schließt der Prozessorkomplex 510 die Fabric-Schnittstelleneinheit 512 zum Kommunizieren mit der Fabric 550 ein. In anderen Ausführungsformen schließt das Rechensystem 500 die Fabric 550 und die E/A-Schnittstelle 530C nicht ein.
  • In verschiedenen Ausführungsformen ist das Rechensystem 500 in einer von einer Vielfalt von Host-Rechenvorrichtungen enthalten. Beispiele für Host-Rechenvorrichtungen sind ein Desktop-Computer, ein Laptop oder ein Notebook oder ein Tablet-Computer, ein Smartphone, ein Multimediasystem in einem Fahrzeug und dergleichen. Der Begriff „Prozessorkomplex“ wird verwendet, um eine Konfiguration von einem oder mehreren Prozessorkernen zu bezeichnen, die eine lokale Speicherung, wie ein gemeinsam genutztes Cachespeicher-Subsystem verwenden und in der Lage sind, eine Arbeitslast gemeinsam zu verarbeiten. Wie gezeigt, kommuniziert der Prozessorkomplex 510 mit einer oder mehreren Peripherievorrichtungen, wie den Peripherievorrichtungen 540A-540C. Beispiele für die Peripherievorrichtungen 540A-540C sind tragbare Datenspeichervorrichtungen, Multimediavorrichtungen, Drucker, Scanner, Kameras und Videokameras, Tastaturen, Joysticks und dergleichen.
  • Für viele Anwendungen ist es nicht erforderlich, auf Vorrichtungstreiber für den Prozessorkomplex 510 zuzugreifen und sie zu installieren, um mit den Peripherievorrichtungen 540A-540C zu kommunizieren. Die E/A-Schnittstellen 530A-530C und 542A-542C unterstützen bereits eine Verbindung und spätere erneute Verbindung der Peripherievorrichtungen 540A-540C. In verschiedenen Ausführungsformen unterstützen die E/A-Schnittstellen 530A-530C und 542A-542C ein Protokoll für eine serielle Datenkommunikation, wie das Universal Serial Bus-Standardprotokoll (USB-Standardprotokoll), zum Verbinden von Vorrichtungen mit verteilter Echtzeitsteuerung und -sicherheit. Obwohl das USB-Protokoll zwei Datenleitungen verwendet, verwenden in einigen Ausführungsformen eine oder mehrere der E/A-Schnittstellen 530A-530C und 542A-542C eine einzelne Datensignalleitung, während eine der Datenleitungen deaktiviert oder anderweitig ausgeschaltet ist. Wie in einem Beispiel gezeigt, kommunizieren die E/A-Schnittstellen 530B und 542B über eine einzelne Datensignalleitung 576, während die Datenleitung 578 deaktiviert ist. Wenn eine Schnittstelle parallele Mehrbitdaten über eine einzelne Datenleitung zu übertragen hat, codiert in verschiedenen Ausführungsformen die Schnittstelle die parallelen Daten als serielle Daten, wie eine Serie von Impulsen.
  • Während eines Datenübertragungsmodus sendet diejenige der E/A-Schnittstellen 530B und 542B, die zu diesem Zeitpunkt der Sender 570 ist, eine Serie von einem oder mehreren Impulsen auf der einzelnen Datensignalleitung 576 an den Empfänger 580. Wie gezeigt, empfängt der Sender 570 in einer Ausführungsform zwei Datensignale, gezeigt als Daten1 572 und Daten2 574 auf zwei separaten Datensignalleitungen. Der Sender 570 sendet jedoch eine Serie von einem oder mehreren Impulsen auf der einzelnen Datensignalleitung 576 an den Empfänger 580. Der Empfänger 580 erkennt Impulse auf dieser einzelnen Datensignalleitung 576 und wandelt sie in zwei digitale Signale, wie Daten1 582 und Daten2 584, auf zwei separaten Datenleitungen um. Es wird darauf hingewiesen, dass die Datenübertragung in der veranschaulichten Ausführungsform zwar von links nach rechts gezeigt ist, in anderen Ausführungsformen die Datenübertragung jedoch Daten von rechts nach links überträgt, da die E/A-Schnittstellen 530A-530C und 542A-542C eine bidirektionale Datenkommunikation unterstützen.
  • In einer Ausführungsform unterstützen die E/A-Schnittstellen 530A-530C und 542A-542C mehrere Betriebsmodi, wie einen Datenübertragungsmodus, einen Ruhemodus und einen Ruhemodus mit niedrigerer Leistung. Bei dem Ruhemodus wie auch bei dem Ruhemodus mit niedrigerer Leistung halten die E/A-Schnittstellen 530A-530C und 542A-542C einen konstanten Spannungspegel auf einer entsprechenden einzelnen Datensignalleitung aufrecht. Zum Beispiel hält der Sender 570 wie auch der Empfänger 580 einen konstanten Spannungspegel auf der einzelnen Datenleitung 576 aufrecht. Der Ruhemodus mit niedrigerer Leistung verwendet einen ersten Spannungspegel, der niedriger als ein zweiter Spannungspegel des Ruhemodus ist. In einer Ausführungsform beträgt die Energieversorgungsspannung für den Sender 570 wie auch den Empfänger 580 4,0 Volt, und der erste Spannungspegel ist größer oder gleich 4,0 Volt und kleiner als 4,15 Volt. Hier, in dieser Ausführungsform, wird eine Spannungsreserve von 0,15 Volt verwendet. Der zweite Spannungspegel ist gleich der Summe aus der Energieversorgungsspannung und der Spannungsreserve oder 4,15 Volt. Daher wird der Stromverbrauch weiter reduziert, wenn der Ruhemodus mit niedrigerer Leistung verwendet wird.
  • Der Datenübertragungsmodus verwendet den zweiten Spannungspegel und auch einen dritten Spannungspegel, der größer als der zweite Spannungspegel ist. Zum Beispiel verwendet der Datenübertragungsmodus den zweiten Spannungspegel von 4,15 Volt und den dritten Spannungspegel, der gleich der Summe aus der Energieversorgungsspannung und der doppelten Spannungsreserve oder 4,30 Volt ist. Der eine oder die mehreren Impulse, die von dem Sender 570 an den Empfänger 580 auf der einzelnen Datenleitung 576 gesendet werden, weisen Spannungspegel auf, die zwischen 4,15 Volt und 4,30 Volt wechseln. Daher wechseln die Schnittstellen 530A-530C und die Peripherievorrichtungen 540A-540C vor dem Wechsel in den Datenübertragungsmodus zunächst vom Ruhemodus mit niedrigerer Leistung in den Ruhemodus und wechseln dann vom Ruhemodus in den Datenübertragungsmodus.
  • In einigen Ausführungsformen verwendet die Speicherschnittstelle 560 mindestens einen Speicher-Controller und mindestens einen Cache für den Off-Chip-Speicher 562, wie einen synchronen DRAM (SDRAM). Die Speicherschnittstelle 560 speichert Speicheranforderungen in Anforderungswarteschlangen, verwendet eine beliebige Anzahl von Speicheranschlüssen und verwendet Schaltlogik, die in der Lage ist, mit dem Speicher 562 verbunden zu werden, und zwar unter Verwendung eines oder mehrerer von einer Vielfalt von Protokollen, die zum Verbinden mit Speicherkanälen verwendet werden, die zum Verbinden mit Speichervorrichtungen (nicht gezeigt) verwendet werden. Der Speicher 562 speichert eine oder mehrere Anwendungen, ein Basisbetriebssystem (Basis-OS) und manchmal ein virtuelles (Gast-) OS. Kopien von Abschnitten des Basis-OS werden von einem oder mehreren der Prozessoren 520A-520B ausgeführt. Der Speicher 562 speichert auch Quelldaten für Anwendungen, und zwar zusätzlich zu Ergebnisdaten und Zwischendaten, die bei der Ausführung von Anwendungen erzeugt werden.
  • In einigen Ausführungsformen verwenden die Prozessoren 520A-520B eine homogene Architektur. Zum Beispiel ist jeder der Prozessoren 520A-520B ein Universalprozessor, wie eine zentrale Verarbeitungseinheit (CPU), der eine Schaltlogik zum Ausführen von Anweisungen gemäß einem vordefinierten Universalanweisungssatz nutzt. Es wird eine beliebige von einer Vielfalt von Anweisungssatzarchitekturen (ISAs) ausgewählt. In einigen Ausführungsformen unterstützt jeder Kern innerhalb der Prozessoren 520A-520B die Ausführung eines oder mehrerer Threads eines Softwareprozesses außerhalb der Reihenfolge und schließt eine mehrstufige Pipeline ein. In anderen Ausführungsformen unterstützen einer oder mehrere der Prozessoren 520A-520B die Ausführung von Anweisungen in der Reihenfolge. In einigen Ausführungsformen schließen die Prozessoren 520A-520B Einheiten zum Abrufen von Anweisungen, Decodieren von Anweisungen, Durchführen von Abhängigkeitsprüfungen, Durchführen von Registerumbenennungen bei Operandenbezeichnern und Ausführen von Anweisungen ein. Die Prozessoren 520A-520B können die Ausführung einer Vielfalt von Betriebssystemen unterstützen.
  • In anderen Ausführungsformen verwenden die Prozessoren 520A-520B eine heterogene Architektur. In solchen Ausführungsformen handelt es sich bei einem oder mehreren der Prozessoren 520A-520B um einen Prozessor mit einer Architektur zur hochgradig parallelen Datenverarbeitung anstelle einer CPU. In einigen Ausführungsformen verwenden diese anderen Prozessoren der Prozessoren 520A-520B Single Instruction Multiple Data-Kerne (SIMD-). Beispiele für SIMD-Kerne sind Grafikverarbeitungseinheiten (GPUs), digitale Signalverarbeitungskerne (DSP-Kerne) oder andere. In verschiedenen Ausführungsformen verwendet jeder der Prozessoren 520A-520B einen oder mehrere Kerne und eine oder mehrere Ebenen eines Cachespeicher-Subsystems.
  • In verschiedenen Ausführungsformen fließt Datenverkehr verschiedener Art unabhängig durch die Fabric 550. Der unabhängige Fluss wird erreicht, indem zugelassen wird, dass ein einzelner physischer Fabric-Bus eine Anzahl überlagerter virtueller Kanäle oder dedizierter Quell- und Zielpuffer einschließt, die jeweils einen unterschiedlichen Typ von Datenverkehr tragen. Jeder Kanal wird unabhängig flussgesteuert, wobei keine Abhängigkeit zwischen Transaktionen in unterschiedlichen Kanälen besteht. Die Fabric 5110 kann auch paketbasiert und hierarchisch sein mit Brücken, Crossbar-, Punkt-zu-Punkt- oder anderen Verbindungen.
  • Bezugnehmend auf 7 wird nun ein verallgemeinertes Flussdiagramm einer Ausführungsform eines Verfahrens 600 zum effizienten Übertragen von Daten zwischen Vorrichtungen gezeigt. Logik einer Schnittstelle einer Vorrichtung betreibt eine bidirektionale Signalleitung zwischen einer Host-Rechenvorrichtung und einer Peripherievorrichtung in einem Ruhemodus mit niedrigerer Leistung mit einem ersten Spannungspegel auf einer Datenleitung der Schnittstelle (Block 602). Wie zuvor beschrieben, entspricht die Datenleitung einem physischen Draht mit Kontakten, die eine Verbindung zu anderen Kontakten oder Anschlussstellen herstellen, um einen elektrischen Kurzschluss zwischen der Host-Rechenvorrichtung und der Peripherievorrichtung zu erzeugen. Die Schnittstellenlogik ist als Hardware, wie Schaltlogik, als Software oder eine Kombination aus Hardware und Software implementiert. In verschiedenen Ausführungsformen unterstützt die Schnittstellenlogik ein Protokoll für eine serielle Datenkommunikation.
  • Obwohl das Kommunikationsprotokoll mehr als eine Datensignalleitung verwendet, verwendet die Schnittstellenlogik in einigen Ausführungsformen eine einzelne Datensignalleitung mit Spannungspegeln, die höher als ein Energieversorgungsspannungspegel sind, der von Schnittstellenlogik der Host-Rechenvorrichtung und Schnittstellenlogik der peripheren Logik verwendet wird. In verschiedenen Ausführungsformen ist jeder der höheren Spannungspegel um ein ganzzahliges Vielfaches einer Spannungsreserve höher als der Energieversorgungsspannungspegel. Die höheren Spannungspegel auf der einzelnen Datensignalleitung erzeugen Impulse, die von Empfangslogik in separate Datensignale umgewandelt werden. In einigen Ausführungsformen ist der erste Spannungspegel des Ruhemodus mit niedrigerer Leistung gleich dem Energieversorgungsspannungspegel. In anderen Ausführungsformen ist der erste Spannungspegel des Ruhemodus mit niedrigerer Leistung gleich einer Summe aus dem Energieversorgungsspannungspegel und einem Spannungspegel, der niedriger als die Spannungsreserve ist. In einem Beispiel beträgt der Energieversorgungsspannungspegel 4,0 Volt und die Spannungsreserve beträgt 0,15 Volt. Daher hält Schnittstellenlogik im Ruhemodus mit niedrigerer Leistung einen Spannungspegel größer oder gleich 4,0 Volt und kleiner als 4,15 Volt auf der einzelnen Datensignalleitung zwischen Vorrichtungen aufrecht.
  • Wenn die Schnittstellen nicht bestimmen, dass es Zeit zum Wechseln in einen Datenübertragungsmodus ist („Nein“-Zweig des Bedingungsblocks 604), dann kehrt der Steuerfluss des Verfahrens 600 zu Block 602 zurück, wo die Schnittstellen den Ruhemodus mit niedrigerer Leistung beibehalten. In einigen Ausführungsformen bestimmen die Schnittstellen basierend auf einem Zeitintervall, dass es Zeit zum Wechseln in einen anderen Modus ist. In anderen Ausführungsformen bestimmen die Schnittstellen basierend darauf, dass eine zur Übertragung gespeicherte Datenmenge einen Schwellenwert überschreitet, dass es Zeit zum Wechseln in einen anderen Modus ist. In noch anderen Ausführungsformen bestimmen die Schnittstellen basierend auf dem Empfangen eines Steuersignals, das einen Wechsel angibt, von Verarbeitungslogik der Vorrichtung, dass es Zeit zum Wechseln in einen anderen Modus ist.
  • Wenn die Schnittstellen bestimmen, dass es Zeit zum Wechseln in einen Datenübertragungsmodus ist („Ja“-Zweig des Bedingungsblocks 604), dann betreiben die Schnittstellen die bidirektionale Datensignalleitung in einem Ruhemodus mit einem zweiten Spannungspegel, der größer als der erste Spannungspegel ist (Block 606). Wie zuvor beschrieben, ist der erste Spannungspegel des Ruhemodus mit niedrigerer Leistung gleich einer Summe aus dem Energieversorgungsspannungspegel und einem Spannungspegel, der niedriger als die Spannungsreserve ist. In einem Beispiel beträgt der Energieversorgungsspannungspegel 4,0 Volt und die Spannungsreserve beträgt 0,15 Volt. Daher hält Schnittstellenlogik im Ruhemodus mit niedrigerer Leistung einen Spannungspegel größer oder gleich 4,0 Volt und kleiner als 4,15 Volt auf der einzelnen Datensignalleitung zwischen Vorrichtungen aufrecht. In einer Ausführungsform ist der zweite Spannungspegel gleich einer Summe aus dem Energieversorgungsspannungspegel und der Spannungsreserve. Unter Verwendung des früheren Wertebeispiels ist der zweite Spannungspegel die Summe von 4,0 Volt und 0,15 Volt oder 4,15 Volt.
  • Wenn die Schnittstellen nicht bestimmen, dass es Zeit zum Beenden des Ruhemodus ist („Nein“-Zweig des Bedingungsblocks 608), dann kehrt der Steuerfluss des Verfahrens 600 zu Block 606 zurück, wo die Schnittstellen den Ruhemodus beibehalten. Wie zuvor beschrieben, schließen Bedingungen für einen Wechsel in einen anderen Modus eines oder mehrere von einem Bestimmen, dass ein Zeitintervall abgelaufen ist, Bestimmen, dass eine zur Übertragung gespeicherte Datenmenge einen Schwellenwert überschreitet, und Empfangen eines Steuersignals, das einen Wechsel angibt, von Verarbeitungslogik der Vorrichtung ein. Wenn die Schnittstellen bestimmen, dass es Zeit zum Beenden des Ruhemodus ist („Ja“-Zweig des Bedingungsblocks 608), dann betreiben die Schnittstellen die bidirektionale Datensignalleitung in einem Datenübertragungsmodus mit einer Serie von Impulsen zwischen dem zweiten Spannungspegel und einer Summe aus dem zweiten Spannungspegel und einer Spannungsreserve (Block 610). Unter Verwendung des früheren Wertebeispiels erzeugen die Schnittstellen eine Serie von Impulsen zwischen 4,15 Volt und 4,30 Volt. Die Empfangslogik wandelt die Impulse auf der einzelnen Datensignalleitung in zwei oder mehr Datensignale um, die in einem Puffer gespeichert werden sollen. Wenn es sich bei dem Kommunikationsprotokoll um das USB-Protokoll für eine serielle Datenkommunikation handelt, wandelt die Empfangslogik die Impulse in zwei Datensignale um.
  • Wenn die Schnittstellen nicht bestimmen, dass es Zeit zum Beenden des Datenübertragungsmodus ist („Nein“-Zweig des Bedingungsblocks 612), dann kehrt der Steuerfluss des Verfahrens 600 zu Block 610 zurück, wo die Schnittstellen den Datenübertragungsmodus beibehalten. Bedingungen für einen Wechsel aus dem Datenübertragungsmodus schließen eines oder mehrere von einem Bestimmen, dass ein Zeitintervall abgelaufen ist, Bestimmen, dass eine übertragene Datenmenge einen Schwellenwert überschreitet, und Empfangen eines Steuersignals, das einen Wechsel angibt, von Verarbeitungslogik der Vorrichtung ein. Wenn die Schnittstellen bestimmen, dass es Zeit zum Beenden des Datenübertragungsmodus ist („Ja“-Zweig des Bedingungsblocks 612), dann kehrt der Steuerfluss des Verfahrens 600 zu Block 602 zurück, wo die Schnittstellen im Ruhemodus mit niedrigerer Leistung arbeiten.
  • Nun zu 8, wo ein verallgemeinertes Blockdiagramm von Signalwellenformen 700 gezeigt ist. In einer Ausführungsform repräsentiert das Zeitintervall 710 eine Zeitdauer für einen Ruhemodus, während das Zeitintervall 720 eine Zeitdauer für eine Datenübertragung auf einer bidirektionalen Datenleitung repräsentiert. Es sind die Spannungspegel der Signale auf der bidirektionalen Datenleitung gezeigt. Während des Ruhemodus, wie während jedes Zeitintervalls 710, wird die bidirektionale Datenleitung auf einem konstanten Spannungspegel gehalten. Während einer ersten Datenübertragungsperiode, wie des ersten Zeitintervalls 720, werden Daten als eine Serie von Impulsen gesendet. Statt einen Massereferenzspannungspegel zum Messen der Impulse zu verwenden, wird der gleiche konstante Spannungspegel verwendet, der während des vorherigen Ruhemodus verwendet wurde. Zu dem Spannungspegel des Ruhemodus wird die Spannungsreserve 730 addiert, um die Impulse anzugeben. Im Gegensatz dazu werden während der zweiten Datenübertragungsperiode, wie des zweiten Zeitintervalls 720, erneut Daten als eine Serie von Impulsen gesendet. Statt das Massereferenzspannungspegel zum Messen der Impulse zu verwenden, wird der gleiche konstante Spannungspegel verwendet, der während des vorherigen Ruhemodus verwendet wurde. Die Spannungsreserve 730 wird vom Spannungspegel des Ruhemodus entfernt, um die Impulse anzugeben.
  • Nun zu 9, wo ein verallgemeinertes Blockdiagramm einer E/A-Schnittstelle 800 einer Host-Rechenvorrichtung (oder Schnittstelle 800) gezeigt ist. Während eines Datenübertragungsmodus empfängt der Codec 874 Daten von Verarbeitungslogik der Host-Rechenvorrichtung, wie die Daten auf den Datenleitungen 870 und 872. Wenn es sich bei dem Kommunikationsprotokoll um das USB-Protokoll für eine serielle Datenkommunikation handelt, empfängt die Schnittstelle 800 zwei Datensignale. In anderen Ausführungsformen werden ein anderes Kommunikationsprotokoll und eine andere Anzahl von Datensignalleitungen verwendet. In einigen Ausführungsformen sind die Daten, die auf den Datensignalleitungen 870 und 872 empfangen werden, Differenzsignale, und der Codec 874 wandelt die Signale in digitale Signale um, die für eine spätere Planung der Übertragung der Daten in dem Puffer 878 gespeichert werden. Wie gezeigt, empfängt die Schnittstelle 800 eine Energieversorgungsspannung 802, die durch den Spannungsverstärker 804, wie einen Abwärts-/Aufwärtswandler, erhöht wird, um den Spannungspegel 806 bereitzustellen. In einigen Ausführungsformen beträgt die Energieversorgungsspannung 802 4,0 Volt und der Spannungspegel 806 ist um das Doppelte einer Spannungsreserve größer als die Energieversorgungsspannung 802. Wenn die Spannungsreserve 0,15 Volt beträgt, liegt der Spannungspegel 806 bei 4,30 Volt. In einigen Ausführungsformen ist die Erhöhung des Energieversorgungsspannungspegels 802 zum Erzeugen des Spannungspegels 806 programmierbar.
  • In einer Ausführungsform ist der Kondensator 808 so ausgewählt, dass er einen großen Wert aufweist, um Spannungsschwankungen bei dem Spannungspegel 806 zu beseitigen. Zum Beispiel weist in einigen Ausführungsformen der Kondensator 808 eine Kapazität von 5 bis 60 Mikrofarad auf. In einer Ausführungsform schließt die Schnittstelle 800 ein Schaltungselement ein, das die Schalter 810 einschließt und einen Eingangsknoten aufweist, der mit dem Eingangsknoten 807 verbunden ist, und einen Ausgangsknoten aufweist, der mit dem Ausgangsknoten 809 verbunden ist. Dieses Schaltungselement empfängt den Spannungspegel 806 an dem Eingangsknoten 807 und stellt den Spannungspegel 840 an dem Ausgangsknoten 809 bereit. In einer Ausführungsform schließt die Reihe von Schaltern 810 mehrere hintereinander geschaltete Schalter zum Erzeugen von Impulsen an dem Ausgangsknoten 809 basierend auf dem Spannungspegel 806 an dem Eingangsknoten 807 ein. Außerdem erzeugen die Schalter 810 Impulse an dem Ausgangsknoten 809 basierend auf den Eingaben in Steuerschaltlogik von dem Verzögerungsimpulsmodulator (DPM) 876. In der veranschaulichten Ausführungsform schließt die Steuerschaltlogik der Schalter 812-816 Schalter 818 und 820 ein. In anderen Ausführungsformen wird jedoch eine Vielfalt von anderen Arten von Steuerschaltlogik verwendet. In einer Ausführungsform sind die mehreren hintereinander geschalteten Schalter der Schalter 810 durch Feldeffekttransistoren (FETs) implementiert. Obwohl drei Transistoren 812, 814 und 816 gezeigt sind, wird in anderen Ausführungsformen eine andere Anzahl von Transistoren verwendet. In einer Ausführungsform ist der n-leitende Transistor 812 (oder n-FET 812) immer aktiviert oder immer eingeschaltet und schließt eine von einer Vielfalt von Schaltungen zum Überstromschutz (OCP) ein. In der veranschaulichten Ausführungsform wird der n-FET 814 durch einen Schalter 818 aktiviert und deaktiviert, und der p-FET 816 wird durch den Schalter 820 aktiviert und deaktiviert. In verschiedenen Ausführungsformen sind die Schalter 818 und 820 ebenfalls durch Transistoren implementiert. Die Schalter 818 und 820 empfangen Eingabewerte vom Verzögerungsimpulsmodulator 876.
  • In verschiedenen Ausführungsformen ist der Ausgangsknoten 809 der Schalter 810 über die externe einzelne Datensignalleitung mit der externen Peripherievorrichtung verbunden. In verschiedenen Ausführungsformen ist die Schnittstelle 800 repliziert und die Datensignalleitung ist eine von mehreren Datensignalleitungen eines externen bidirektionalen Busses zwischen der Host-Rechenvorrichtung und der Peripherievorrichtung. Schutzschaltlogik und Rauschunterdrückungsschaltlogik, wie passive Bauelemente, wie Dioden, Widerstände und Kondensatoren, sind der Einfachheit der Veranschaulichung halber nicht gezeigt. Der Eingangsknoten 807 der Schalter 810, wie der Anschluss des Schalters 812, empfängt den Spannungspegel 806. Unter Verwendung der Werte des früheren Beispiels empfängt der Schalter 812 4,30 Volt. Wenn die Schnittstelle 800 in einem Ruhemodus arbeitet, deaktiviert der Schalter 818 den n-FET 814, wodurch der Schalter 814 geöffnet wird, und bewirkt, dass der Spannungspegel 806 Strom durch die hintereinander geschalteten Induktivitäten 832-836 der Induktivitäten 830 führt. Obwohl drei Induktivitäten gezeigt sind, schließen in anderen Ausführungsformen die Induktivitäten 830 eine andere Anzahl von Induktivitäten ein. Die Induktivitäten 830 reduzieren die Stromwelligkeit und erhöhen die effektive Ausgangsimpedanz. Die Induktivitäten 830 erhöhen ihre Spannung als Reaktion auf eine schnelle Änderung (zeitliche Änderung) von Strom, der durch die Induktivitäten 830 fließt, und reduzieren die effektive Gate-Source-Spannung des p-FET 816. Die Erhöhung der Spannung der Induktivitäten 830 begrenzt außerdem die Änderung von Strom, der von dem Spannungspegel 806 an dem Eingangsknoten 807 zu dem Spannungspegel 840 an dem Ausgangsknoten 809 fließt, wenn ein Impuls auf der einzelnen Datensignalleitung auftritt, die mit der externen Peripherievorrichtung verbunden ist.
  • Wenn die Schnittstelle 800 im Ruhemodus arbeitet, wählt außerdem der Schalter 820 die Ausgabe des Operationsverstärkers 852 als den Steuereingang des p-FET 816 aus. Der Steuereingang des p-FET 816 ist der Gate-Anschluss des p-FET 816. Der Operationsverstärker 852 vergleicht den Spannungspegel 840 mit dem Spannungspegel 806 abzüglich des Werts der variablen Spannungsquelle 850. Wenn die Schnittstelle 800 im Ruhemodus arbeitet, wird die Spannungsquelle 850 auf die Spannungsreserve oder 0,15 Volt eingestellt. Daher ist der Eingang in den Operationsverstärker 4,30 Volt, was der Wert des Spannungspegels 806 abzüglich 0,15 Volt oder 4,15 Volt ist. Wenn der Spannungspegel 840 an dem Ausgangsknoten 809 gleich dem Wert des anderen Eingangs des Operationsverstärkers 852 oder 4,15 Volt ist, gibt es keine Differenz, die durch den Operationsverstärker 852 verstärkt werden soll. Wenn die Schnittstelle 800 in einem Ruhemodus mit niedrigerer Leistung arbeitet, stellt in einer Ausführungsform Logik die programmierbare Spannungsquelle 850 auf 0,25 Volt anstelle von 0,15 Volt ein, was bewirkt, dass der Operationsverstärker 852 den Schalter 816 derart steuert, dass der Spannungspegel 840 bei 4,05 Volt bereitgestellt wird. Dementsprechend verbraucht die Schnittstelle 800 während des Ruhemodus mit niedrigerer Leistung weniger Strom als während des Ruhemodus. In anderen Ausführungsformen stellt Logik die programmierbare Spannungsquelle 850 auf eine Vielfalt von anderen Spannungspegeln ein.
  • Wenn die Schnittstelle 800 in einem Datenübertragungsmodus arbeitet, aktiviert (schließt) der Schalter 818 den Schalter 816, was bewirkt, dass Signale die Induktivitäten 830 umgehen und an dem Ausgangsknoten 809 eine Serie von Impulsen mit Werten zwischen dem Spannungspegel 806 (oder 4,30 Volt, in einem Beispiel) und der Summe aus der Energieversorgungsspannung und der Spannungsreserve (oder 4,15 Volt, in einem Beispiel) erzeugen. Die Impulse werden von dem Ausgangsknoten 809 auf der einzelnen Datensignalleitung an die externe Peripherievorrichtung gesendet. Wenn die Schnittstelle 800 in einem Empfangsmodus arbeitet, werden Impulse an dem Ausgangsknoten 809 der Schalter 810 empfangen und durch den Operationsverstärker 860 empfangen. In verschiedenen Ausführungsformen weist der Operationsverstärker 860 ein schnelleres Ansprechverhalten als die Induktivitäten 830 auf. Daher verarbeitet der Operationsverstärker 860 die an dem Ausgangsknoten 809 empfangenen Impulse schneller als die Induktivitäten 830.
  • Im Empfangsmodus deaktiviert (öffnet) der Schalter 818 den Schalter 814 und verbindet den Gate-Anschluss des p-FET 816 mit dem Steuerausgang des Verzögerungsimpulsmodulators 876 statt mit dem Ausgang des Operationsverstärkers 852. Der Operationsverstärker 860 vergleicht die empfangenen Impulse mit dem Spannungspegel 806 (oder 4,30 Volt, in einem Beispiel). Einer oder mehrere von dem Verzögerungsimpulsmodulator 876 und dem Codec 874 wandeln die Impulse in digitale Datensignale um, wie unter Verwendung von Zuordnungen, wie zuvor für die Zustandstabelle 150 (von 2) beschrieben. Die umgewandelten Daten werden für eine spätere Übertragung an Verarbeitungslogik der Host-Rechenvorrichtung in dem Puffer 878 gespeichert.
  • Nun zu 10, wo ein verallgemeinertes Blockdiagramm einer E/A-Schnittstelle 900 einer Peripherievorrichtung (oder Schnittstelle 900) gezeigt ist. In verschiedenen Ausführungsformen schließt die Schnittstelle 900 viele der Komponenten der zuvor beschriebenen Schnittstelle 800 (von 9) ein. In einer Ausführungsform verwendet die Schnittstelle 900 jedoch keinen Spannungsverstärker, die Polung der programmierbaren Spannungsquelle 950 ist gegenüber der Polung der Spannungsquelle 850 umgekehrt und die Reihenfolge der Schalter 912, 914 und 916 ist gegenüber der Reihenfolge der Schalter 812, 814 und 816 umgekehrt. Der Schalter 912 schließt eine Rückstromschutzschaltlogik (RCP-Schaltlogik) statt der Überstromschutzschaltlogik (OCP-Schaltlogik), die der Schalter 812 verwendet, ein. Unter Verwendung der früheren beispielhaften Werte der Energieversorgungsspannung und der Spannungsreserve erzeugt die Schnittstelle 900 Impulse zur Datenübertragung zwischen 4,0 Volt und 4,15 Volt statt zwischen 4,15 Volt und 4,30 Volt, wie sie durch die Schnittstelle 800 erzeugt werden. Der Operationsverstärker 960 vergleicht Impulse, die auf der einzelnen Datensignalleitung von der externen Host-Rechenvorrichtung empfangen werden, mit der Energieversorgungsspannung 902 (oder 4,0 Volt, in einem Beispiel). Dieser Vergleich durch den Operationsverstärker 960 steht im Gegensatz zu dem Vergleich von empfangenen Impulsen mit der Summe aus der Energieversorgungsspannung und der doppelten Spannungsreserve (oder 4,3 Volt, in einem Beispiel), wie er durch den Operationsverstärker 860 der Schnittstelle 800 durchgeführt wird.
  • In einigen Ausführungsformen sind die Daten, die auf den Datensignalleitungen 970 und 972 empfangen werden, Differenzsignale, und der Codec 974 wandelt die Signale in digitale Signale um, die für eine spätere Planung der Übertragung der Daten in dem Puffer 978 gespeichert werden. Wie gezeigt, empfängt die Schnittstelle 900 eine Energieversorgungsspannung 902. In einigen Ausführungsformen beträgt die Energieversorgungsspannung 902 4,0 Volt, und während eines Ruhebetriebsmodus ist der Spannungspegel 906 höher als die Energieversorgungsspannung 902, und zwar um eine Spannungsreserve, die auch von einer externen Host-Rechenvorrichtung verwendet wird. Wenn die Spannungsreserve 0,15 Volt beträgt, beträgt der Spannungspegel 906 an dem Schalterausgangsknoten 909 (oder Ausgangsknoten 909) 4,15 Volt, wenn die Schnittstelle 900 im Ruhemodus arbeitet. In einer Ausführungsform ist der Kondensator 908 so ausgewählt, dass er einen großen Wert aufweist, um Spannungsschwankungen bei der Energieversorgungsspannung 902 zu beseitigen. Zum Beispiel weist in einigen Ausführungsformen der Kondensator 908 eine Kapazität von 5 bis 90 Mikrofarad auf.
  • In einer Ausführungsform schließt die Schnittstelle 900 ein Schaltungselement ein, das die Schalter 910 einschließt und einen Eingangsknoten aufweist, der mit dem Eingangsknoten 907 verbunden ist, und einen Ausgangsknoten aufweist, der mit dem Ausgangsknoten 909 verbunden ist. Dieses Schaltungselement empfängt die Energieversorgungsspannung 902 an dem Eingangsknoten 907 und stellt an dem Ausgangsknoten 909 den Spannungspegel 906 bereit. In einer Ausführungsform schließt die Reihe von Schaltern 910 mehrere hintereinander geschaltete Schalter zum Erzeugen von Impulsen basierend auf Eingaben in Steuerschaltlogik von dem Verzögerungsimpulsmodulator 976 ein. Ähnlich wie bei der Schnittstelle 500 sind die Schalter in der Schnittstelle 900 durch Transistoren implementiert. Obwohl drei Transistoren 912, 914 und 916 gezeigt sind, wird in anderen Ausführungsformen eine andere Anzahl von Transistoren verwendet. In der veranschaulichten Ausführungsform schließt die Steuerschaltlogik der Schalter 912-916 Schalter 918 und 920 ein. In anderen Ausführungsformen wird jedoch eine Vielfalt von anderen Arten von Steuerschaltlogik verwendet.
  • In einer Ausführungsform ist der n-leitende Transistor 912 (oder n-FET 912) immer aktiviert oder immer eingeschaltet. In der veranschaulichten Ausführungsform wird der n-FET 914 individuell durch einen Schalter 918 aktiviert und deaktiviert, und der p-FET 916 wird individuell durch den Schalter 920 aktiviert und deaktiviert. In verschiedenen Ausführungsformen sind die Schalter 918 und 920 ebenfalls durch Transistoren implementiert. Die Schalter 918 und 920 empfangen Eingabewerte von dem Verzögerungsimpulsmodulator 976. In verschiedenen Ausführungsformen ist der Ausgangsknoten 909 der Schalter 910 über die externe einzelne Datensignalleitung mit der externen Host-Rechenvorrichtung verbunden. In verschiedenen Ausführungsformen ist die Schnittstelle 900 repliziert und die Datensignalleitung ist eine von mehreren Datensignalleitungen eines externen bidirektionalen Busses zwischen der Host-Rechenvorrichtung und der Peripherievorrichtung. Schutzschaltlogik und Rauschunterdrückungsschaltlogik, wie passive Bauelemente, wie Dioden, Widerstände und Kondensatoren, sind der Einfachheit der Veranschaulichung halber nicht gezeigt. Der Schaltereingangsknoten 907 (oder Eingangsknoten 907) der Schalter 910, wie der Anschluss des Schalters 912, empfängt die Energieversorgungsspannung 902. Unter Verwendung der Werte des früheren Beispiels empfängt der Schalter 912 4,0 Volt an dem Eingangsknoten 907, und der Schalter 916 stellt 4,15 Volt an dem Ausgangsknoten 909 bereit, wenn die Schnittstelle 900 im Ruhemodus arbeitet.
  • Wenn die Schnittstelle 900 im Ruhemodus arbeitet, deaktiviert der Schalter 918 den n-FET 914, wodurch der Schalter 914 geöffnet wird, und bewirkt, dass der Eingangsspannungspegel 906 Strom durch die hintereinander geschalteten Induktivitäten 932-936 der Induktivitäten 930 führt. Obwohl drei Induktivitäten gezeigt sind, schließen in anderen Ausführungsformen die Induktivitäten 930 eine andere Anzahl von Induktivitäten ein. Die Induktivitäten 930 reduzieren die Stromwelligkeit und erhöhen die effektive Ausgangsimpedanz. Die Induktivitäten 930 erhöhen ihre Spannung als Reaktion auf eine schnelle Änderung (zeitliche Änderung) von Strom, der durch die Induktivitäten 930 fließt, und reduzieren die effektive Gate-Source-Spannung des p-FET 916. Die Erhöhung der Spannung der Induktivitäten 930 begrenzt außerdem die Änderung des Stroms, der von dem Spannungspegel 906 zu der Energieversorgungsspannung 902 fließt, wenn ein Impuls auf der einzelnen Datensignalleitung auftritt, die mit der externen Host-Rechenvorrichtung verbunden ist.
  • Wenn die Schnittstelle 900 im Ruhemodus arbeitet, wählt außerdem der Schalter 920 die Ausgabe des Operationsverstärkers 952 als den Steuereingang des p-FET 916 aus. Der Steuereingang des p-FET 916 ist der Gate-Anschluss des p-FET 916. Der Operationsverstärker 952 vergleicht den Spannungspegel 906 mit der Summe aus der Energieversorgungsspannung 902 und der variablen Spannungsquelle 950. Wenn die Schnittstelle 900 im Ruhemodus arbeitet, wird in einer Ausführungsform die Spannungsquelle 950 auf die Spannungsreserve oder 0,15 Volt eingestellt. Daher ist bei Verwendung der Werte der früheren Beispiele die Eingabe in den Operationsverstärker 952 die Summe aus 4,0 Volt und 0,15 Volt oder 4,15 Volt. Wenn der Spannungspegel 906 dieser Summe oder 4,15 Volt entspricht, gibt es keine Differenz, die durch den Operationsverstärker 952 verstärkt werden soll. Wie zuvor für die Schnittstelle 500 beschrieben, stellt in einer Ausführungsform Logik, wenn die Schnittstelle 900 in einem Ruhemodus mit niedrigerer Leistung arbeitet, die programmierbare Spannungsquelle 950 auf 0,05 Volt anstelle von 0,15 Volt ein, was bewirkt, dass der Operationsverstärker 952 den Schalter 916 derart steuert, dass der Spannungspegel 906 bei 4,05 Volt bereitgestellt wird. Dementsprechend verbraucht die Schnittstelle 900 während des Ruhemodus mit niedrigerer Leistung weniger Strom als während des Ruhemodus. In anderen Ausführungsformen stellt Logik die programmierbare Spannungsquelle 950 auf eine Vielfalt von anderen Spannungspegeln ein.
  • Wenn die Schnittstelle 900 in einem Datenübertragungsmodus arbeitet, aktiviert (schließt) der Schalter 918 den Schalter 916, was bewirkt, dass Signale die Induktivitäten 930 umgehen und an dem Ausgangsknoten 909 eine Serie von Impulsen mit Werten zwischen der Energieversorgungsspannung (oder 4,0 Volt, in einem Beispiel) und der Summe aus der Energieversorgungsspannung und der Spannungsreserve (oder 4,15 Volt, in einem Beispiel) erzeugen. Die Impulse werden von dem Ausgangsknoten 909 auf der einzelnen Datensignalleitung an die externe Host-Rechenvorrichtung gesendet. Wenn die Schnittstelle 900 in einem Empfangsmodus arbeitet, werden durch den Operationsverstärker 960 Impulse empfangen. In verschiedenen Ausführungsformen weist der Operationsverstärker 960 ein schnelleres Ansprechverhalten auf als die Induktivitäten 930. Daher verarbeitet der Operationsverstärker 960 die an dem Ausgangsknoten 909 empfangenen Impulse schneller als die Induktivitäten 930.
  • Im Empfangsmodus deaktiviert (öffnet) der Schalter 918 den Schalter 914 und verbindet den Gate-Anschluss des p-FET 916 mit dem Steuerausgang des Verzögerungsimpulsmodulators 976 statt mit dem Ausgang des Operationsverstärkers 952. Der Operationsverstärker 960 vergleicht die empfangenen Impulse mit der Energieversorgungsspannung 902 (oder 4,0 Volt, in einem Beispiel). Einer oder mehrere von dem Verzögerungsimpulsmodulator 976 und dem Codec 974 wandeln die Impulse in digitale Datensignale um, wie unter Verwendung von Zuordnungen, wie zuvor für die Zustandstabelle 200 (von 2) beschrieben. Die umgewandelten Daten werden für eine spätere Übertragung an Verarbeitungslogik der Peripherievorrichtung in dem Puffer 978 gespeichert.
  • Bei jedem der Verfahren 1000 und 1100 werden die Schnittstellen der Host-Rechenvorrichtung und der Peripherievorrichtung beschrieben, wenn sich diese Schnittstellen entweder in einem von mehreren Ruhemodi befinden oder Daten übertragen. Beim Empfangen von Daten werden die zuvor für die Schnittstellen 800 und 900 beschriebenen Schritte verwendet. Bezugnehmend auf 11 wird nun ein verallgemeinertes Flussdiagramm einer Ausführungsform eines Verfahrens 1000 zum effizienten Übertragen von Daten zwischen Vorrichtungen gezeigt. Schnittstellenlogik einer Host-Rechenvorrichtung für eine bidirektionale Signalleitung empfängt einen Energieversorgungsspannungspegel (Block 1002). Ein Spannungsaufwärtswandler erzeugt einen ersten Spannungspegel, der um das Doppelte einer Spannungsreserve höher ist als der Energieversorgungspegel (Block 1004). In einer Ausführungsform ist der Spannungsaufwärtswandler ein Gleichstrom-Gleichstrom-Abwärts-/Aufwärtswandler (DC-DC-Abwärts-/Aufwärtswandler).
  • Eine Reihe von Schaltern der Schnittstellenlogik empfängt den ersten Spannungspegel an einem Eingangsknoten (Block 1006). In einer Ausführungsform handelt es sich bei der Reihe von Schaltern um zwei oder mehr hintereinander geschaltete Transistoren, wie Feldeffekttransistoren (FETs). Einer der Schalter ist in einer elektrisch parallelen Konfiguration mit einer oder mehreren hintereinander geschalteten Induktivitäten verbunden. Wenn dieser Schalter geschlossen ist, fließen elektrische Signale durch diesen Schalter und nicht durch die hintereinander geschalteten Induktivitäten. Wenn der Betriebsmodus der Host-Rechenvorrichtung ein Ruhemodus mit niedrigerer Leistung ist (Zweig „Ruhemodus mit niedrigerer Leistung“ des Bedingungsblocks 1008), dann erzeugt die Schnittstelle der Host-Rechenvorrichtung einen zweiten Spannungspegel, der zwischen dem Energieversorgungsspannungspegel und einer Summe aus der Energieversorgungsspannung und einem Spannungspegel liegt, der niedriger als die Spannungsreserve ist (Block 1010). Wie zuvor beschrieben, erzeugt die Schnittstelle unter Verwendung des früheren Wertebeispiels den zweiten Spannungspegel als einen Spannungspegel, der größer oder gleich 4,0 Volt und kleiner als 4,15 Volt ist. Die Schnittstelle hält den zweiten Spannungspegel am Ausgang der Schnittstelle aufrecht (Block 1012).
  • Wenn der Betriebsmodus der Host-Rechenvorrichtung ein Ruhemodus ist („Ruhemodus“-Zweig des Bedingungsblocks 1008), dann erzeugt die Schnittstelle einen dritten Spannungspegel, der um die Spannungsreserve größer als der Energieversorgungsspannungspegel ist (Block 1014). Wie zuvor beschrieben, erzeugt die Schnittstelle unter Verwendung des früheren Wertebeispiels den dritten Spannungspegel als Summe von 4,0 Volt und 0,15 Volt oder 4,15 Volt. Die Schnittstelle hält den dritten Spannungspegel am Ausgang der Schnittstelle aufrecht (Block 1016).
  • Wenn der Betriebsmodus der Host-Rechenvorrichtung ein Datenübertragungsmodus ist („Datenübertragungsmodus“-Zweig des Bedingungsblocks 1008), dann erzeugt die Schnittstelle eine erste Serie von Impulsen basierend auf dem Energieversorgungsspannungspegel und zu übertragenden Daten (Block 1018). In einer Ausführungsform ruft ein Verzögerungsimpulsmodulator Daten aus einem Puffer ab. Die Daten wurden zuvor durch einen Codec aus zwei separaten analogen Differenzsignalen in ein einzelnes digitales Signal umgewandelt, und eine Repräsentation dieses einzelnen digitalen Signals oder Impulses ist im Puffer gespeichert. Der Verzögerungsimpulsmodulator sendet die Impulse an Steuerschaltlogik der Reihe von Schaltern.
  • In einer Ausführungsform ist ein Schalter in der Reihe von Schaltern in einer parallelen Konfiguration mit einer oder mehreren hintereinander geschalteten Induktivitäten verbunden. Während eines der beiden Ruhemodi ist dieser Schalter geöffnet, wodurch Signale durch die eine oder die mehreren hintereinander geschalteten Induktivitäten geleitet werden. Während des Datenübertragungsmodus ist dieser Schalter geschlossen, wodurch Signale die eine oder die mehreren hintereinander geschalteten Induktivitäten umgehen. Die Reihe von Schaltern erzeugt eine zweite Serie von Impulsen zwischen dem zweiten Spannungspegel und dem dritten Spannungspegel basierend auf den zu übertragenden Daten (Block 1020). Die zweite Serie von Impulsen ist auch von der Steuerschaltlogik abhängig. Unter Verwendung des früheren Wertebeispiels erzeugen die Schnittstellen eine Serie von Impulsen zwischen 4,15 Volt und 4,30 Volt. Die Empfangslogik wandelt die Impulse auf der einzelnen Datensignalleitung in zwei oder mehr Datensignale um, die in einem Puffer gespeichert werden sollen. Wenn es sich bei dem Kommunikationsprotokoll um das USB-Protokoll für eine serielle Datenkommunikation handelt, wandelt die Empfangslogik die Impulse in zwei Datensignale um.
  • Bezugnehmend auf 12 wird nun ein verallgemeinertes Flussdiagramm einer Ausführungsform eines Verfahrens 1100 zum effizienten Übertragen von Daten zwischen Vorrichtungen gezeigt. Schnittstellenlogik einer Peripherievorrichtung für eine bidirektionale Signalleitung empfängt einen Energieversorgungsspannungspegel (Block 1102). Eine Reihe von Schaltern der Schnittstellenlogik empfängt den ersten Spannungspegel an einem Eingangsknoten (Block 1104). In verschiedenen Ausführungsformen weist die Reihe von Schaltern eine gespiegelte Konfiguration einer Reihe von Schaltern in einer entsprechenden Host-Rechenvorrichtung auf. Wenn der Betriebsmodus der Peripherievorrichtung ein Ruhemodus mit niedrigerer Leistung ist (Zweig „Ruhemodus mit niedrigerer Leistung“ des Bedingungsblocks 1106), dann erzeugt die Schnittstelle einen ersten Spannungspegel, der zwischen dem Energieversorgungsspannungspegel und einer Summe aus der Energieversorgungsspannung und einem Spannungspegel liegt, der niedriger als die Spannungsreserve ist (Block 1108). Wie zuvor beschrieben, erzeugt die Schnittstelle der Peripherievorrichtung unter Verwendung des früheren Wertebeispiels den ersten Spannungspegel als Spannungspegel, der größer oder gleich 4,0 Volt und kleiner als 4,15 Volt ist. Die Schnittstelle hält den ersten Spannungspegel am Ausgang der Schnittstelle aufrecht (Block 1110).
  • Wenn der Betriebsmodus der Host-Rechenvorrichtung ein Ruhemodus ist („Ruhemodus“-Zweig des Bedingungsblocks 1108), dann erzeugt die Schnittstelle einen zweiten Spannungspegel, der um die Spannungsreserve größer als der Energieversorgungsspannungspegel ist (Block 1112). Wie zuvor beschrieben, erzeugt die Schnittstelle unter Verwendung des früheren Wertebeispiels den dritten Spannungspegel als Summe von 4,0 Volt und 0,15 Volt oder 4,15 Volt. Die Schnittstelle hält den zweiten Spannungspegel am Ausgang der Schnittstelle aufrecht (Block 1114).
  • Wenn der Betriebsmodus der Host-Rechenvorrichtung ein Datenübertragungsmodus ist („Datenübertragungsmodus“-Zweig des Bedingungsblocks 1108), dann erzeugt die Schnittstelle eine erste Serie von Impulsen basierend auf dem Energieversorgungsspannungspegel und zu übertragenden Daten (Block 1116). Die Reihe von Schaltern erzeugt eine zweite Serie von Impulsen zwischen dem Energieversorgungsspannungspegel und dem zweiten Spannungspegel basierend auf den zu übertragenden Daten (Block 1118). Die zweite Serie von Impulsen ist auch von der Steuerschaltlogik abhängig. Unter Verwendung des früheren Wertebeispiels erzeugt die Schnittstelle der Peripherievorrichtung eine Serie von Impulsen zwischen 4,0 Volt und 4,15 Volt. Die Empfangslogik wandelt die Impulse auf der einzelnen Datensignalleitung in zwei oder mehr Datensignale um, die in einem Puffer gespeichert werden sollen. Wenn es sich bei dem Kommunikationsprotokoll um das USB-Protokoll für eine serielle Datenkommunikation handelt, wandelt die Empfangslogik die Impulse in zwei Datensignale um.
  • Nun zu 13, wo ein verallgemeinertes Blockdiagramm einer E/A-Schnittstelle 1200 zwischen einer Host-Rechenvorrichtung und einer Peripherievorrichtung gezeigt ist. Die E/A-Schnittstelle 1200 kann auch als Schnittstelle 1200 bezeichnet sein. In der veranschaulichten Ausführungsform ist die Host-Rechenvorrichtung links gezeigt, während die Peripherievorrichtung rechts gezeigt ist. In anderen Ausführungsformen ist jedoch die Platzierung umgekehrt und die Komponenten sind vertauscht. Wie gezeigt, kommunizieren die Host-Rechenvorrichtung und die Peripherievorrichtung über Signalleitungen zwischen Stiften 1210 und 1240 und Stiften 1212 und 1242. In einer Ausführungsform überträgt die Signalleitung zwischen den Stiften 1210 und 1240 Daten als Impulse, während die Signalleitung zwischen den Stiften 1212 und 1242 einen Massereferenzspannungspegel überträgt. In verschiedenen Ausführungsformen schließt die Schnittstelle 1200 viele der Komponenten der zuvor beschriebenen Schnittstellen 800 und 900 (von 9 und 10) ein.
  • In einigen Ausführungsformen beträgt die Energieversorgungsspannung 1202 4,0 Volt, und es wird kein Spannungsverstärker verwendet. Ähnlich wie die Induktivitäten 830, die zuvor für die Schnittstelle 800 beschrieben wurden, reduziert die Induktivität 1204 die Stromwelligkeit und erhöht die effektive Ausgangsimpedanz. Die Induktivität 1204 erhöht ihre Spannung als Reaktion auf eine schnelle Änderung (zeitliche Änderung) von Strom, der durch die Induktivität 1204 fließt. Die Erhöhung der Spannung der Induktivität 1204 begrenzt außerdem die Änderung von Strom, der von der Energieversorgungsspannung 1202 zum Spannungspegel an dem Knoten 1206 fließt, wenn ein Impuls auf der einzelnen Datensignalleitung zwischen den Stiften 1210 und 1240 auftritt. Die Induktivität 1234 verhält sich ähnlich wie die Induktivität 1204. Bei dem Kondensator 1208 handelt es sich um einen Wechselstromkopplungskondensator (AC-Kopplungskondensator). Der Kondensator 1208 koppelt ein AC-Signal zwischen dem Knoten 1206 und den Verzögerungsimpulsmodulatoren 1220 und 1222. Der Kondensator 1208 verhindert, dass ein Gleichstromsignal (DC-Signal) weitergeleitet wird, während er nur ein AC-Signal durchlässt. Der Kondensator 1238 verhält sich ähnlich wie der Kondensator 1208.
  • Die Host-Rechenvorrichtung schließt einen Übertragungsverzögerungsimpulsmodulator (Übertragungs-DPM) 1220 und einen Empfangs-DPM 1222 ein. Während eines Datenübertragungsmodus empfängt ein Codec (nicht gezeigt) Daten von Verarbeitungslogik der Host-Rechenvorrichtung. Wie zuvor beschrieben, wird in einigen Ausführungsformen das USB-Protokoll für eine serielle Datenkommunikation verwendet. In einer Ausführungsform stellt die Verarbeitungslogik der Host-Rechenvorrichtung Differenzsignale an den Codec bereit, der die Signale in digitale Signale umwandelt. Der Übertragungs-DPM 1220 übermittelt die digitalen Signale als Impulse an den Knoten 1206.
  • Um noch einmal kurz auf die Datenübertragung 100 und 200 (von 1 und 3) zurückzukommen, sendet der Sender in einer Ausführungsform weiterhin Impulse, aber in einigen Ausführungsformen sendet der Sender sowohl positive als auch negative Impulse und nicht nur positive Impulse. Beispiele für diese Impulse sind in den 14-15 bereitgestellt. In einer Ausführungsform empfängt der Übertragungs-DPM 1220 der Schnittstelle 1200 Daten, wie die Daten 202 und 204 (von 3), und übermittelt sowohl positive als auch negative Impulse. Die Steuerlogik in der Peripherievorrichtung interpretiert die Serie von positiven und negativen Impulsen von dem Übertragungs-DPM 1220 als Symbole. In einer Ausführungsform wird die Symbolerzeugungstabelle 150 (von 2) von Steuerlogik in der Peripherievorrichtung verwendet, um einen vorherigen 2-Bit-Stiftzustand einem aktuellen 2-Bit-Stiftzustand zuzuordnen. Die Tabelle 150 führt die Zuordnung basierend auf sowohl einer Anzahl als auch einer Reihenfolge der positiven und negativen Impulse durch, die auf einer einzelnen Datensignalleitung während eines Zeitintervalls empfangen werden. Der Übertragungs-DPM 1250 in der Peripherievorrichtung weist ein ähnliches Verhalten wie der Übertragungs-DPM 1220 auf.
  • Wenn die Host-Rechenvorrichtung in einem Empfangsmodus arbeitet, werden Impulse an dem Knoten 1206 empfangen und durch den Empfangs-DPM 1222 empfangen. In verschiedenen Ausführungsformen weisen der Empfangs-DPM 1222 und jede Eingangsschaltlogik (nicht gezeigt), wie ein oder mehrere Puffer, ein Operationsverstärker oder anderes, eine schnelleres Ansprechverhalten auf als die Induktivität 1204. Daher verarbeitet der Empfangs-DPM 1222 die an dem Knoten 1206 empfangenen Impulse schneller als die Induktivität 1204. Einer oder mehrere von dem Empfangs-DPM 1222 und einem beliebigen Codec (nicht gezeigt) wandeln die Impulse in digitale Datensignale um, wie unter Verwendung von Zuordnungen, wie zuvor für die Zustandstabelle 150 (von 2) beschrieben. In einer Ausführungsform werden die umgewandelten Daten in einem Puffer für eine spätere Übertragung an Verarbeitungslogik der Host-Rechenvorrichtung gespeichert. In verschiedenen Ausführungsformen weist der Empfangs-DPM 1252 in der Peripherievorrichtung ein ähnliches Verhalten wie der Empfangs-DPM 1222 auf.
  • Nun zu 14, wo ein verallgemeinertes Blockdiagramm einer Ausführungsform von Symbolzuordnungen 1300 gezeigt ist. In verschiedenen Ausführungsformen werden die Symbolzuordnungen 1300 mit derselben Tabelle 150 (von 2) verwendet, aber die Symbolzuordnungen 1300 unterscheiden sich von den Symbolzuordnungen 160 (von 2). Im Gegensatz zu den Symbolzuordnungen 160 verwenden die Symbolzuordnungen 1300 sowohl positive als auch negative Impulse, statt nur positive Impulse. In einer Ausführungsform verwenden ein Sender und ein Empfänger, die die Schnittstelle 1200 (von 12) nutzen, auch die Tabelle 150 und die Symbolzuordnungen 1300, um die Übertragung paralleler Mehrbitdaten als serielle Daten auf einer einzelnen Datenleitung zu unterstützen. In verschiedenen Ausführungsformen verwenden der Sender wie auch der Empfänger jeweils eine Kopie der Tabelle 150 und der Symbolzuordnungen 1300. Der Sender bestimmt basierend auf einer Vielfalt von Bedingungen, dass es Zeit zum Senden von Daten ist. Wenn der Sender parallele Mehrbitdaten an den Empfänger zu senden hat, teilt der Sender die parallelen Mehrbitdaten in zusammenhängende Abschnitte oder Sektionen. Jeder Abschnitt weist einen aktuellen Stiftzustand auf. In einer Ausführungsform weist jeder Abschnitt 2 Bits auf. In anderen Ausführungsformen weist jeder Abschnitt eine andere Anzahl paralleler Mehrbits auf.
  • Der Sender behält einen vorherigen Stiftzustand bei, der während einer vorherigen Datenübertragung der aktuelle Stiftzustand war. Unter Verwendung der Tabelle 150 identifiziert die Steuerlogik des Senders eine Zeile der Tabelle 150 basierend auf dem vorherigen Stiftzustand und identifiziert eine Spalte basierend auf dem aktuellen Stiftzustand. Die Logik des Senders verwendet das resultierende Symbol und die Symbolzuordnungen 1300, um sowohl eine Anzahl als auch eine Reihenfolge von positiven und negativen Impulsen zu bestimmen, die innerhalb eines Zeitintervalls zu senden sind, um den aktuellen Stiftzustand zu repräsentieren. Wenn zum Beispiel der vorherige Stiftzustand 2'b01 ist und der zu sendende aktuelle Stiftzustand 2'b10 ist, verwendet die Steuerlogik des Senders die Tabelle 150, um das Symbol „D“ zu identifizieren. Die Steuerlogik verwendet die Symbolzuordnungen 1300, um zu bestimmen, dass das Symbol „D“ 3 Iterationen einer Kombination aus einem positiven Impuls, gefolgt von einem negativen Impuls, die auf einer seriellen Datenleitung an einen Empfänger zu senden sind, repräsentiert. Alternativ repräsentiert das Symbol „D“ 3 Iterationen eines negativen Impulses, gefolgt von einem positiven Impuls, die auf einer seriellen Datenleitung an einen Empfänger zu senden sind. Der Empfänger schließt eine von einer Vielfalt von Erkennungsschaltungen zum Interpretieren des empfangenen Symbols „D“ ein. In einigen Ausführungsformen wird die alternative Repräsentation des Symbols „D“ verwendet, um zu ermöglichen, dass zusätzliche Seitenbanddaten gleichzeitig mit der Datenübertragung auf der seriellen Datenleitung gesendet werden. In ähnlicher Weise weisen die Symbole „B“ und „C“ alternative Repräsentationen auf, die für eine Seitenbanddatenübertragung zu verwenden sind.
  • Wenn der Sender während des Zeitintervalls keine Impulse sendet, ist in einer Ausführungsform der aktuelle Stiftzustand gleich dem vorherigen Stiftzustand. Diese Zuordnung wird durch die obere Zeile der Symbolzuordnungen 1300 und das Symbol „A“ in der Tabelle 150 angegeben. Die Symbolzuordnungen 1300 ordnen dem Symbol „A“ keine Impulse oder null Impulse zu. Wenn der Sender während eines Zeitintervalls einen Impuls sendet, der dem Symbol „B“ zuzuordnen ist, ändert sich nur ein bestimmtes Bit des aktuellen Stiftzustands. In einigen Ausführungsformen ist das bestimmte Bit das niedrigstwertige Bit, in der Tabelle 150 als „b1“ angegeben. In anderen Ausführungsformen ist das bestimmte Bit das höchstwertige Bit, in der Tabelle 150 als „b0“ angegeben. In einigen Ausführungsformen verwendet das Verfahren 300 (von 4) die Symbolzuordnungen 1300 anstelle der Symbolzuordnungen 160, um Daten umzuwandeln, die auf der seriellen Datenleitung übertragen werden. Zusätzlich verwendet das Rechensystem 500 in einer Ausführungsform die Symbolzuordnungen 1300 zur Datenübertragung auf einer seriellen Datenleitung.
  • Nun zu 15, wo ein verallgemeinertes Blockdiagramm einer Ausführungsform von Symbolzuordnungen 1400 gezeigt ist. In verschiedenen Ausführungsformen werden die Symbolzuordnungen 1400 mit derselben Tabelle 150 (von 2) verwendet. Ähnlich wie die Symbolzuordnungen 1300 verwenden die Symbolzuordnungen 1400 sowohl positive als auch negative Impulse, statt nur positive Impulse. In einer Ausführungsform verwenden ein Sender und ein Empfänger, die die Schnittstelle 1200 (von 12) nutzen, auch die Tabelle 150 und die Symbolzuordnungen 1400, um die Übertragung paralleler Mehrbitdaten als serielle Daten auf einer einzelnen Datenleitung zu unterstützen. In einer Ausführungsform unterscheidet sich mindestens das Symbol „D“ der Symbolzuordnungen 1400 von dem entsprechenden Symbol „D“ der Symbolzuordnungen 1300. Zum Beispiel verwendet ein Beispiel des Symbols „D“ der Symbolzuordnungen 1400 zwei positive Impulse, wie das Symbol „C“, aber die zwei positiven Impulse sind durch zwei aufeinanderfolgende negative Impulse voneinander getrennt. In anderen Ausführungsformen unterscheiden sich ein oder mehrere andere Symbole der Symbolzuordnungen 1400 von dem entsprechenden Symbol der Symbolzuordnungen 1300. Ähnlich wie die Symbolzuordnungen 1300 verwenden die Symbolzuordnungen 1400 alternative Repräsentationen von Symbolen. In einer Ausführungsform ermöglichen die alternativen Symbolrepräsentationen, dass zusätzliche Seitenbanddaten gleichzeitig mit der Datenübertragung auf der seriellen Datenleitung gesendet werden. In einigen Ausführungsformen verwendet das Verfahren 300 (von 4) die Symbolzuordnungen 1400 anstelle der Symbolzuordnungen 160 oder der Symbolzuordnungen 1300, um Daten umzuwandeln, die auf der seriellen Datenleitung übertragen werden. Zusätzlich verwendet das Rechensystem 500 in einer Ausführungsform die Symbolzuordnungen 1400 zur Datenübertragung auf einer seriellen Datenleitung.
  • In verschiedenen Ausführungsformen können Programmanweisungen einer Softwareanwendung verwendet werden, um die zuvor beschriebenen Verfahren und/oder Mechanismen zu implementieren. Die Programmanweisungen können das Verhalten von Hardware in einer Programmiersprache hoher Ebene, wie C, beschreiben. Alternativ kann eine Hardwaredesignsprache (HDL), wie Verilog, verwendet werden. Die Programmanweisungen können auf einem nicht-transitorischen computerlesbaren Speicherungsmedium gespeichert sein. Zahlreiche Typen von Speicherungsmedien sind verfügbar. Das Speicherungsmedium kann durch einen Computer während der Verwendung zugänglich sein, um die Programmanweisungen und die begleitenden Daten für die Programmausführung an den Computer bereitzustellen. In einigen Ausführungsformen liest ein Synthesewerkzeug die Programmanweisungen, um eine Netzliste zu erzeugen, die eine Liste von Gattern aus einer Synthesebibliothek einschließt.
  • Es sollte betont werden, dass die vorstehend beschriebenen Ausführungsformen nur nicht einschränkende Beispiele von Implementierungen sind. Zahlreiche Variationen und Modifikationen werden für den Fachmann ersichtlich, sobald die vorstehende Offenbarung vollständig verstanden ist. Es ist beabsichtigt, dass die folgenden Ansprüche derart interpretiert werden, dass alle solchen Variationen und Modifikationen eingeschlossen sind.

Claims (20)

  1. Einrichtung, umfassend: eine erste Schnittstelle, die dazu konfiguriert ist, Daten von einer externen Verarbeitungslogik zu empfangen; eine zweite Schnittstelle, die dazu konfiguriert ist, Daten über eine oder mehrere bidirektionale Leitungen zu übertragen, und Steuerschaltlogik; wobei als Reaktion auf das Empfangen paralleler Daten an einer Vielzahl von Stiften der ersten Schnittstelle die Steuerschaltlogik konfiguriert ist zum: Bestimmen eines vorherigen Zustands der Vielzahl von Stiften der ersten Schnittstelle, Bestimmen eines Zählwerts von Impulsen mindestens teilweise basierend auf dem vorherigen Zustand und Übermitteln einer Anzahl von Impulsen, die gleich dem Zählwert ist, als serielle Daten auf der zweiten Schnittstelle.
  2. Einrichtung nach Anspruch 1, wobei die Steuerschaltlogik ferner konfiguriert ist zum: Bestimmen eines aktuellen Zustands, der den empfangenen Daten entspricht; und Bestimmen des Zählwerts von Impulsen weiter basierend auf dem aktuellen Zustand.
  3. Einrichtung nach Anspruch 1, wobei eine erste Anzahl der Vielzahl von Stiften der ersten Schnittstelle größer als eine zweite Anzahl der einen oder der mehreren bidirektionalen Leitungen ist.
  4. Einrichtung nach Anspruch 1, wobei die Steuerschaltlogik ferner dazu konfiguriert ist, als Reaktion auf ein Bestimmen eines anfänglichen Übergangs bei einem der Vielzahl von Stiften der ersten Schnittstelle einen ersten Impuls des Zählwerts von Impulsen zu erzeugen.
  5. Einrichtung nach Anspruch 1, wobei die Steuerschaltlogik ferner konfiguriert ist zum: Empfangen der Daten auf der ersten Schnittstelle innerhalb eines ersten Zeitintervalls und Übermitteln des Zählwerts von Impulsen auf der zweiten Schnittstelle, bevor das erste Zeitintervall abläuft.
  6. Einrichtung nach Anspruch 5, wobei der vorherige Zustand ein aktueller Zustand eines unmittelbar vorherigen Zeitintervalls vor dem ersten Zeitintervall ist.
  7. Einrichtung nach Anspruch 5, wobei als Reaktion auf ein Bestimmen, dass das erste Zeitintervall ein anfängliches Zeitintervall ist, der vorherige Zustand ein Standardanfangszustand ist.
  8. Verfahren, umfassend: Übertragen von Daten durch eine erste Schnittstelle auf einer oder mehreren bidirektionalen Leitungen mit einer externen Vorrichtung; Übermitteln von Daten durch eine zweite Schnittstelle an externe Verarbeitungslogik; als Reaktion auf ein Empfangen, durch Steuerschaltlogik, eines Zählwerts von Impulsen als serielle Daten auf der ersten Schnittstelle, wobei die Anzahl von Impulsen gleich einem durch die externe Vorrichtung bestimmten Zählwert von Impulsen ist: Bestimmen, durch die Steuerschaltlogik, eines aktuellen Zustands mindestens teilweise basierend auf dem Zählwert von Impulsen und Übermitteln, durch die Steuerschaltlogik, des aktuellen Zustands auf der zweiten Schnittstelle.
  9. Verfahren nach Anspruch 8, ferner umfassend: Bestimmen, durch die Steuerschaltlogik, eines vorherigen Zustands der einen oder der mehreren bidirektionalen Leitungen und Bestimmen, durch die Steuerschaltlogik, des aktuellen Zustands ferner basierend auf dem vorherigen Zustand.
  10. Verfahren nach Anspruch 8, ferner umfassend ein Inkrementieren, durch die Steuerschaltlogik, des Zählwerts von Impulsen als Reaktion auf das Erkennen eines Ereignisses auf der einen oder den mehreren bidirektionalen Leitungen, wobei das Ereignis einen Übergang von einem Ruhespannungspegel zu einem Datenübertragungsspannungspegel umfasst.
  11. Verfahren nach Anspruch 10, wobei: der Ruhespannungspegel um eine Spannungsreserve größer als ein Energieversorgungsspannungspegel ist und der Datenübertragungsspannungspegel um die Spannungsreserve größer als der Ruhespannungspegel ist.
  12. Verfahren nach Anspruch 11, wobei das Verfahren zum Erkennen eines Impulses ferner ein Vergleichen, durch die Steuerschaltlogik, eines Spannungspegels auf einer bidirektionalen Leitung mit der Energieversorgungsspannung umfasst.
  13. Verfahren nach Anspruch 10, wobei: der Ruhespannungspegel um eine Spannungsreserve größer als ein Energieversorgungsspannungspegel ist und der Datenübertragungsspannungspegel der Energieversorgungsspannungspegel ist.
  14. Verfahren nach Anspruch 13, wobei das Verfahren zum Erkennen eines Impulses ferner ein Vergleichen, durch die Steuerschaltlogik, eines Spannungspegels auf einer bidirektionalen Leitung mit einer Spannung, die um die doppelte Spannungsreserve größer als die Energieversorgungsspannung ist, umfasst.
  15. Verfahren nach Anspruch 9, wobei: der vorherige Zustand ein aktueller Zustand eines unmittelbar vorherigen Zeitintervalls vor einem ersten Zeitintervall ist; und Empfangen, durch die Steuerschaltlogik, des Zählwerts von Impulsen auf der ersten Schnittstelle innerhalb des ersten Zeitintervalls.
  16. Bidirektionale Signalschnittstelle, umfassend: eine Host-Rechenvorrichtung; eine Peripherievorrichtung und eine bidirektionale Datenleitung zwischen der Host-Rechenvorrichtung und der Peripherievorrichtung; und wobei als Reaktion auf das Empfangen paralleler Daten an einer Vielzahl von Stiften die Peripherievorrichtung konfiguriert ist zum: Bestimmen eines vorherigen Zustands der Vielzahl von Stiften; Bestimmen eines Zählwerts von Impulsen mindestens teilweise basierend auf dem vorherigen Zustand und Übermitteln einer Anzahl von Impulsen, die gleich dem Zählwert ist, als serielle Daten auf der bidirektionalen Datenleitung.
  17. Bidirektionale Signalschnittstelle nach Anspruch 16, wobei als Reaktion auf das Bestimmen, dass ein Betriebsmodus ein Energiesparmodus ist, die Peripherievorrichtung konfiguriert ist zum: Speichern von Daten, die an der Vielzahl von Stiften empfangen werden; und Übermitteln eines konstanten Spannungspegels auf der bidirektionalen Datenleitung.
  18. Bidirektionale Signalschnittstelle nach Anspruch 17, wobei als Reaktion auf das Bestimmen eines Übergangs zur Datenübertragung des Energiesparmodus die Peripherievorrichtung ferner dazu konfiguriert ist, die zu übertragenden parallelen Daten als serielle Daten aus dem Puffer statt von der Vielzahl von Stiften abzurufen.
  19. Bidirektionale Signalschnittstelle nach Anspruch 16, wobei die Peripherievorrichtung ferner konfiguriert ist zum: Bestimmen eines aktuellen Zustands, der den empfangenen Daten entspricht; und Bestimmen des Zählwerts von Impulsen weiter basierend auf dem aktuellen Zustand.
  20. Bidirektionale Signalschnittstelle nach Anspruch 16, wobei die Peripherievorrichtung ferner dazu konfiguriert ist, einen ersten Impuls des Zählwerts von Impulsen als Reaktion auf das Bestimmen eines anfänglichen Übergangs bei der Vielzahl von Stiften zu erzeugen.
DE112021003136.8T 2020-06-05 2021-05-26 Verfahren zum durchführen von system- und energieverwaltung über eine serielle datenkommunikationsschnittstelle Pending DE112021003136T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/894,615 US11561601B2 (en) 2020-06-05 2020-06-05 Method for performing system and power management over a serial data communication interface
US16/894,615 2020-06-05
PCT/US2021/034253 WO2021247322A1 (en) 2020-06-05 2021-05-26 Method for performing system and power management over a serial data communication interface

Publications (1)

Publication Number Publication Date
DE112021003136T5 true DE112021003136T5 (de) 2023-03-23

Family

ID=76444695

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021003136.8T Pending DE112021003136T5 (de) 2020-06-05 2021-05-26 Verfahren zum durchführen von system- und energieverwaltung über eine serielle datenkommunikationsschnittstelle

Country Status (5)

Country Link
US (2) US11561601B2 (de)
KR (1) KR20230004864A (de)
CN (2) CN118210368A (de)
DE (1) DE112021003136T5 (de)
WO (1) WO2021247322A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11561601B2 (en) * 2020-06-05 2023-01-24 Apple Inc. Method for performing system and power management over a serial data communication interface

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3210131B2 (ja) * 1993-05-20 2001-09-17 リーダー電子株式会社 コードレステレフォンの測定チャンネルの高速捕捉装置
JPH08172365A (ja) * 1994-12-16 1996-07-02 Matsushita Electric Ind Co Ltd ディジタル音声データ位相変換装置
JP3406440B2 (ja) * 1995-10-30 2003-05-12 Smk株式会社 パルス変調方法とパルス変調装置及びパルス復調装置
US5974369A (en) * 1996-08-28 1999-10-26 Wps Energy Services Inc. Recording and processing metered information
US6946901B2 (en) * 2001-05-22 2005-09-20 The Regents Of The University Of California Low-power high-performance integrated circuit and related methods
US7127631B2 (en) 2002-03-28 2006-10-24 Advanced Analogic Technologies, Inc. Single wire serial interface utilizing count of encoded clock pulses with reset
US7283011B2 (en) 2003-10-10 2007-10-16 Atmel Corporation Method for performing dual phase pulse modulation
US7176742B2 (en) 2005-03-08 2007-02-13 Texas Instruments Incorporated Bootstrapped switch with an input dynamic range greater than supply voltage
US7480282B2 (en) * 2005-03-17 2009-01-20 Agere Systems Inc. Methods and apparatus for controlling ethernet packet transfers between clock domains
JP2007036869A (ja) * 2005-07-28 2007-02-08 Nec Electronics Corp シリアルパラレル変換、パラレルシリアル変換、fifo一体回路
US7764087B2 (en) * 2006-02-01 2010-07-27 Wisconsin Alumni Research Foundation Low swing domino logic circuits
JP5264741B2 (ja) * 2006-10-09 2013-08-14 インシデ エセ ア 温度センサ
US7750827B2 (en) * 2006-10-18 2010-07-06 Ishida Co. Ltd. Coding device, pulse regenerating device, and communications system
KR100969748B1 (ko) * 2007-01-29 2010-07-13 삼성전자주식회사 직렬 통신 시스템에서 직렬 데이터의 송수신 방법 및 장치와 이를 위한 직렬 통신 시스템
WO2010129112A1 (en) * 2009-05-07 2010-11-11 Rambus Inc. Configurable, power supply voltage referenced single-ended signaling with esd protection
CN104335521B (zh) * 2012-05-31 2018-04-24 英特尔公司 数据接口同步
US9093987B1 (en) * 2012-09-28 2015-07-28 Xilinx, Inc. Differential level shifter for improving common mode rejection ratio
US9703737B2 (en) * 2013-03-15 2017-07-11 Intel Corporation Method, apparatus, and system for improving inter-chip and single-wire communication for a serial interface
US20150295562A1 (en) * 2014-04-11 2015-10-15 Mangilal Agarwal Low Power Wireless Sensor System with Ring Oscillator And Sensors for Use in Monitoring of Physiological Data
US10874451B2 (en) 2016-02-29 2020-12-29 Pulse Biosciences, Inc. High-voltage analog circuit pulser and pulse generator discharge circuit
US20170344341A1 (en) 2016-05-27 2017-11-30 Raytheon Company Rate domain numerical processing circuit and method
DE102017118567A1 (de) * 2017-08-15 2019-02-21 Valeo Schalter Und Sensoren Gmbh Verfahren zum Betreiben einer Sensoranordnung in einem Kraftfahrzeug auf Basis eines DSI-Protokolls
US10530347B2 (en) * 2018-03-23 2020-01-07 Sandisk Technologies Llc Receiver-side setup and hold time calibration for source synchronous systems
US10985720B2 (en) * 2019-06-10 2021-04-20 Allegro Microsystems, Llc Capacitive amplifier circuit with high input common mode voltage and method for using the same
US10630314B1 (en) * 2019-06-18 2020-04-21 Nxp B.V. Method and system for asynchronous serialization of multiple serial communication signals
US11561601B2 (en) * 2020-06-05 2023-01-24 Apple Inc. Method for performing system and power management over a serial data communication interface

Also Published As

Publication number Publication date
CN115698972B (zh) 2024-05-07
KR20230004864A (ko) 2023-01-06
US20230108933A1 (en) 2023-04-06
US11561601B2 (en) 2023-01-24
WO2021247322A1 (en) 2021-12-09
CN118210368A (zh) 2024-06-18
US20210382540A1 (en) 2021-12-09
CN115698972A (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
DE112020003957T9 (de) Sekundärgesteuerte aktivklemmen-implementierung für verbesserte effizienz
DE19855645C2 (de) Verfahren und Anordnung zum Betreiben eines Direktzugriffsspeichers mit verringertem Energieverbrauch
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE102015117019B4 (de) Serielle Peripherieschnittstellen-Kettenkommunikation mit rahmengebundener Antwort
DE19733530C2 (de) Mobilfunkgerät
DE102015115080A1 (de) Konfigurierbare digitale Schnittstelle für Schaltspannungsregler
DE112007003113B4 (de) Reduzieren von Leerlauf-Verlustleistung in einem integrierten Schaltkreis
DE102019108205B4 (de) Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE102019107849A1 (de) 424-Kodierungsschemata zur Reduzierung von Kopplung und Leistungsrauschen auf PAM-4-Datenbussen
DE102013110085A1 (de) Host zum Steuern einer nicht-flüchtigen Speicherkarte, System mit demselben sowie Verfahren zum Betreiben des Hosts und des Systems
DE112007000954T5 (de) Korrekte Energieverteilung für Mehrfachspannungschips
DE102014219905A1 (de) Konfiguration von Leistungsdomänen eines Mikrocontroller-Systems
DE202015009993U1 (de) Parallel geschalteter integrierter Spannungsregler
DE102019107670B4 (de) Entspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE102011102152A1 (de) Schema für verteilte Leistungsabgabe zur On-Die-Spannungsskalierung
DE102015202513A1 (de) Vorrichtung und Verfahren zur Datenspeicherung sowie Datenverarbeitungssystem damit
DE112021003136T5 (de) Verfahren zum durchführen von system- und energieverwaltung über eine serielle datenkommunikationsschnittstelle
DE102016206170A1 (de) Serielle draht-debug-brücke
DE19831350A1 (de) Halbleiterschaltungsvorrichtung, die synchron mit einem Taktsignal arbeitet, und Verfahren der Verwendung einer Halbleiterschaltungsvorrichtung, die synchron mit einem Taktsignal arbeitet
DE102019118340A1 (de) Invertierungskodierung für einen bus mit begrenzter hamming-distanz für schnittstellen mit mehreren bytes
DE112014004440T5 (de) Konfliktvermeidung für sequenzielles Einschalten elektronischer Systeme
DE112020003106T5 (de) Wählbare eingabepuffer von allzweck-eingängen und mikrocontroller mit denselben
DE102013106869B4 (de) Schaltungsanordung, Aufrechterhalter-Flipflop, und Verfahren zum Betreiben einer Schaltungsanordung und eines Aufrechterhalter-Flipflops
DE102013104703A1 (de) Ein-Chip-System zum Bereitstellen eines Zugriffs auf geteilten Speicher über eine Chip-zu-Chip-Verbindung, Betriebsverfahren desselben und elektronisches System mit demselben
DE10056152B4 (de) Verfahren zur Durchführung von Busarbitration zwischen Steuerchips eines Chipsatzes mit preemptiver Fähigkeit

Legal Events

Date Code Title Description
R012 Request for examination validly filed