DE69801669T2 - System und verfahren zur stromoptimierung von isochronen daten und taktrateninformation - Google Patents

System und verfahren zur stromoptimierung von isochronen daten und taktrateninformation

Info

Publication number
DE69801669T2
DE69801669T2 DE69801669T DE69801669T DE69801669T2 DE 69801669 T2 DE69801669 T2 DE 69801669T2 DE 69801669 T DE69801669 T DE 69801669T DE 69801669 T DE69801669 T DE 69801669T DE 69801669 T2 DE69801669 T2 DE 69801669T2
Authority
DE
Germany
Prior art keywords
data
host
buffer
bus
usb
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.)
Expired - Lifetime
Application number
DE69801669T
Other languages
English (en)
Other versions
DE69801669D1 (de
Inventor
E. Gulick
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE69801669D1 publication Critical patent/DE69801669D1/de
Application granted granted Critical
Publication of DE69801669T2 publication Critical patent/DE69801669T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

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

Description

    Hintergrund der Erfindung Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Datenbusse und insbesondere das Optimieren der Steuerung des Flusses von isochronen Daten auf Datenbussen.
  • Beschreibung des Standes der Technik
  • US-A-5 249 271 zeigt eine Datenspeicherungssystemsteuerung, welche ein Datenflusssteuerungssystem zum Regulieren des Flusses von Daten durch einen Pufferspeicher einsetzt. Die Datenspeicherungssystemsteuerung kann über einen Computersystembus mit einem Computer verbunden sein.
  • US-A-5 513 326 zeigt ein serielles Datenspeichergerät (Streamer-Bandlaufwerk), welches einen Mikroprozessor, eine Geschwindigkeitssteuerungsschaltung, Lese- und Schreibschaltungen und eine Motorschaltung enthält. Der Mikroprozessor ist an ein System zum Optimieren des Datentransfers angeschlossen, welches eine zentrale Verarbeitungseinheit umfasst, die über eine Steuerung und einen Datenpuffer Daten an das Speichergerät sendet und von ihm empfängt. Die Geschwindigkeitssteuerschaltung passt auf kontinuierlich ändernde Weise die Datentransferrate des Speichergerätes in Abhängigkeit von der Ausnutzung des Datenpuffers an.
  • US-A-5 675 811 zeigt eine Methode zum Übermitteln von Information über einen intelligenten seriellen Bus mit niedriger Leistung.
  • Die Spezifikation des universellen seriellen Busses (USB) ist ein vorgeschlagener Standard für einen isochronen Bus, der jüngst von einer Gruppe von Computerfirmen umfassend Compaq Computer Corporation, Digital Equipment Corporation, IBM Corporation, Intel Corporation, Microsoft Corporation und Northern Telecom vorgestellt wurde. Im weiteren sind verschiedene Aspekte des universellen seriellen Busses beschrieben. Weiterer Hintergrund betreffend den universellen seriellen Bus kann aus der Spezifikation des universellen seriellen Busses erhalten werden.
  • Der universelle serielle Bus ist geplant als eine bidirektionale, isochrone, Niedrigkosten, dynamisch anschließbare, serielle Schnittstelle, um eine einfache Erweiterung von PC-Peripheriegeräten zu fördern und um volle Unterstützung für Echtzeitsprache, Audio und komprimierte Videodaten bereitzustellen. Der universelle serielle Bus stellt eine Zweidraht-Punkt-zu-Punkt- Signalübertragung bereit, bei der die Signale differenziell bei einer Bitrate von 12 Megabits pro Sekunde angesteuert werden. Der universelle serielle Bus umfasst Unterstützung für sowohl isochrone als auch asynchrone Übertragung bei der Datengeschwindigkeit von den 12 Megabits pro Sekunde.
  • Die Spezifikation des universellen seriellen Busses definiert ein universelles serielles Bussystem mittels der Ausdrücke von universellen seriellen Bus "Verbindungen", "Vorrichtungen" und "Hosts". Eine universelle serielle Busverbindung definiert die Art und Weise, auf welche Vorrichtungen an den Host angeschlossen sind und mit ihm kommunizieren, umfassend Bustopologie, Datenflussmodelle, Planung und Beziehungen zwischen den Layern. In jeder denkbaren Topologie eines universellen seriellen Busses gibt es nur einen Host.
  • Die Vorrichtungen des universellen seriellen Busses umfassen Hubs und Funktionseinheiten. Hubs stellen zusätzliche Anschlu spunkte an den universellen seriellen Bus bereit und können in einen Host integriert sein, welcher normalerweise nur einen Anschlusspunkt zum Anschließen eines Hubs oder einer Funktionseinheit bereitstellt. Funktionseinheiten stellen dem System Fähigkeiten bereit, wie z. B. Joystick-, Tastatur-, Mikrofon- und Lautsprecherfähigkeiten.
  • Das grundlegende Datentransferprotokoll des universellen seriellen Busses wird im folgenden beschrieben mit besonderer Beachtung von Fig. 1. Fig. 1 ist ein Diagramm des grundlegenden Pakettransfers 1000 des universellen seriellen Busses. Der grundlegende Transfer 1000 enthält ein Markierungspaket 1002, ein Datenpaket 1004 und ein Übergabepaket 1006. Jedem Paket ist ein Synchronisationsfeld SYNC vorangestellt, welches von einer Eingangsschaltung benutzt, um ankommende Daten mit dem lokalen Takt auszurichten. Es ist mit einer Länge von 8 Bit definiert und wird von dem Anschlussinterface extrahiert.
  • Dem SYNC-Feld in jedem Paket folgt eine Paketidentifizierung PID(T) für das Markierungspaket, PID(D) für das Datenpaket, PID(H) für das Übergabepaket und PID(S) für das Beginn des-Rahmens-Paket, welches als eine Art von Markierungspaket angesehen werden kann. Die Paketidentifizierer PID(T), PID(D), PID(H) und PID(S) enthalten ein 4 Bit breites Identifikationsfeld und ein 4 Bit breites Testfeld, was genutzt wird, um das Format des Pakets und den Typ zu identifizieren. Es gibt zwei Arten von Markierung-1002-Paket-ID-Feldern PiD(T). Diese bezeichnen (i) einen Datentransfer von der Funktionseinheit an den Host und (ii) einen Datentransfer von dem Host zu der Funktionseinheit. Zusätzlich zu der Paket ID, PID(T) umfasst das Markierungspaket ein 8 Bit breites Adressfeld ADDR und ein 3 Bit breites Endpunktfeld ENDP. Das Adressfeld ADDR des Markierungspakets gibt die Funktionseinheit an, welche das Datenpaket empfangen oder senden soll. Das Endpunktfeld ENDP erlaubt das Adressieren von mehr als einem Subkanal von einer individuellen Funktion.
  • Nur ein Typ des Beginn des Rahmenpaketidentifikationsfeldes 1008 PID(S) ist definiert: ein Beginn des-Rahmens-Zeitstempel. Die Adress- und Endpunktfelder des Markierung paketes werden in dem Beginn des-Rahmens- Pakets durch das Zeitstempelfeld ersetzt. Das Zeitstempelfeld für den Beginn-des-Rahmens-Paket stellt einen Taktschlag bereit, welcher für alle Geräte auf dem Bus verfügbar ist. Das Beginn des-Rahmens-Paket wird von dem Host jede 1 ms ± 0,01% gesendet. Zusätzlich wird sowohl für die Markierungs- als auch für die Beginn des-Rahmens-Pakete ein 5 Bit breites zyklisches Redundanzchecksummen-(CRC)-Feld bereitgestellt.
  • Das Datenpaket 1004 enthält eine Paketidentifizierung PLD(D), ein Datenfeld DATA und ein 16 Bit breites zyklisches Redundanzchecksummenfeld CRC16. Beide Typen von Paket-IDs für das Datenfeld data 0 und data 1 identifiziert, ob das Datenpaket das erste mal gesendet wird oder ob es als Wiederholung gesendet wird. Das Datenfeld DATA kann in der Länge variieren von 0 bis N Bytes. Ein Versagen der zyklischen Redundanzchecksumme in dem Datenfeld DATA veranlasst den Empfänger eine Fehler ERR-Übergabe auszugeben.
  • Das Übergabepaket 1006 enthält nur einen Paketidentifizierer PID(H), von welchem vier Typen vorhanden sind. Eine Anerkennungsübergabe ACK zeigt an, dass der Empfänger die Daten akzeptieren wird und dass die CRC erfolgreich war. Eine negative Anerkennung NACK zeigt an, dass der Empfänger nicht akzeptieren kann oder dass die Quelle keine Daten senden kann. Ein ERR-Feld zeigt an, dass der Empfänger die Daten akzeptieren wird, aber dass die CRC fehlgeschlagen hat. Ein Verzögerungsübergabepaket STALL zeigt an, dass die Übertragungs- oder Empfangsleitung verzögert ist. Eine Verzögerungsübergabe ist nur für stromorientierte Endpunkte (zu unterscheiden von nachrichtenorientierten Endpunkten, wie unten diskutiert) definiert.
  • Der Datenfluss auf dem universellen seriellen Bus wird in Ausdrücken von "Leitungen" definiert. Eine Leitung ist eine Verbindung zwischen einem Host und einem Endpunkt. Der universelle serielle Bus definiert "Strom"- und "Nachrichten"-Leitungen. Für eine Stromleitung werden die Daten in vorverhandelten Paketgrößen geschickt. Die Daten fließen in ein Ende der Stromleitung hinein und an dem anderen Ende in der gleichen Reihenfolge heraus. Der Strommodus enthält daher eine Flusskontrolle und setzt keine definierte USB-Struktur ein. Für eine Nachrichtenleitung jedoch wird zuerst eine Anfrage an die Vorrichtung gesendet, welche zu einem späteren Zeitpunkt von einer Antwort von dem Endpunkt gefolgt wird. Nachrichtenleitungen bringen daher eine Struktur in den Datenfluss, welche es erlaubt, Befehle zu kommunizieren. Diese Befehle können eine Bandbreitenzuweisung enthalten.
  • Der universelle serielle Bus unterstützt isochronen, asynchronen und asynchronen interaktiven Datenfluss. Für isochrone Daten ist der Zugriff auf die USB-Bandbreite garantiert. Eine konstante Datenrate durch die Leitung ist vorgesehen und in dem Fall eines Zulieferungsfehlers infolge eines Fehlers gibt es keine Anstrengung, erneut zu versuchen, die Daten zu liefern. Der asynchrone interaktive Datenfluss stellt eine garantierte Servicerate für die Leitung bereit und die Wiederholung eines fehlgeschlagenen Transfers versucht. Der asynchrone Datenfluss bewerkstelligt den Zugriff auf den USB auf einer Basis der Bandbreitenverfügbarkeit und erlaubt ebenfalls den Wiederversuch eines Datentransfers.
  • Der Zeitplan auf dem universellen seriellen Bus ist in Ausdrücken von "Schlitzen", "Rahmen" und "Superrahmen" definiert, wie es in Fig. 2 dargestellt ist, die einen exemplarischen USB-Zeitplan 1100 zeigt. Rahmen 1104b und 1104a beginnen mit einem Beginn des-Rahmens-Paket 1108a bzw. 1108b. jeder Rahmen hat eine Zeitdauer, die etwa 1 ms entspricht. Jeder Rahmen 1104a,1104b ist in einen oder mehrere Schlitze 1102a,1002b z. B. unterteilt. Jeder Schlitz entspricht einer USB-Transaktion, beispielsweise 1110a,1110b,1110c,1110d. Jeder Schlitz ist groß genug, um die schlimmstmögliche Übertragungszeit für die Transaktion zu enthalten, mit der er korrespondiert und enthält die Effekte von Bitkomprimierung, Ausbreitungsverzögerung durch Kabel und Hubs, Antwortverzögerung und Taktdifferenzen zwischen dem Host und dem Endpunkt. Ein Superrahmen 1106 besteht auf einer wiederholbaren Sequenz von individuellen Rahmen und ist der größte planbare zugelassene Zeitbereich.
  • Der universelle serielle Bus stellt sowohl periodische Service als auch aperiodische Service bereit. Für periodische Service, die isochronischen Daten entsprechen, existiert eine feste Periode zwischen der Lieferung des Beginndes-Rahmens-Pakets an einen spezifischen Endpunkt. Ein aperiodischer Service ist jedoch durch eine variable Periode zwischen der Beginn des- Rahmens-Markierung für einen gegebenen Endpunkt charakterisiert. Periodischen Servicen wird in der Planung eine höhere Priorität als aperiodischen Servicen eingeräumt.
  • Übergehend nun zu Fig. 3 ist dort ein abstrahiertes Blockdiagramm einer universellen seriellen Busvorrichtung, wie einem Hub oder einer Funktionsvorrichtung gezeigt. Die universelle serielle Busvorrichtung 1200 enthält ein Vorrichtungsinterface 1202 und ein Klasseninterface 1204. Das Vorrichtungsinterface 1202 enthält einen Vorrichtungsinformations- und Steuerungsblock 1206, welcher für die USB-Vorrichtung erforderlich ist, um an den USB angeschlossen zu werden, und unabhängig ist von der Funktionalität, welche von der Vorrichtung bereitgestellt wird. Das Vorrichtungsinterface enthält weiterhin eine serielle Businterfacemaschine 1210, welche das Management des Businterfaces bereitstellt, umfa send das Ausführen von Anerkennungen und das Erkennen von Paketen, die an die USB-Vorrichtung adressiert sind. Zusätzlich erledigt die Interfacemaschine 1210 das Abtrennen des SYNC-Feldes von einkommenden Paketen. Das Klasseninterface 1204 umfasst einen Klasseninformations- und Steuerungsblock 1214, welcher von der Funktionalität der Vorrichtung (z. B. Hubs und Lokatoren) abhängt. Das Klasseninterface 1204 enthält des Weiteren eine Funktionsmaschine 1216, welche sich auf die von der Vorrichtung implementierte Funktionalität bezieht. Eine USB-Vorrichtung enthält des Weiteren logische Puffer wie einen Paketpuffer 1208 und einen Anpassungspuffer 1212. Der Paketpuffer definiert die maximale Paketgröße, welche die USB-Vorrichtung empfangen oder senden kann. Der Anpassungspuffer bezieht sich darauf, wie flexibel der geplante Generator sein kann in der Zuweisung von Bandbreite für den angeschlossenen Endpunkt und bestimmt den maximalen Betrag von Daten, den der Vorrichtungsendpunkt handhaben kann. Die verschiedenen funktionalen Blöcke der USB-Vorrichtung sind in Fig. 3 nicht miteinander verbunden dargestellt, weil, wie es in der USB-Spezifikation diskutiert ist, die Beziehung zwischen den Komponenten implementationsabhängig sein kann. Zusätzlich kann die universelle serielle Busvorrichtung Speicherplatz enthalten, der lokal in der USB-Vorrichtung ist, jedoch von dem Host adressierbar ist und Herstellerplatz, welcher von dem Hersteller der Vorrichtung definiert werden kann.
  • Während der USB als ein industrieweites Standardperipherieinterface vorgesehen ist, definiert die USB-Spezifikation nicht die Beziehung zwischen den Komponenten in einem Computersystem, welches den USB benutzt. Fig. 4 ist ein Blockdiagramm einer möglichen Konfiguration eines Computersystems, welches den USB benutzt. Es ist festzuhalten, dass die Konfiguration aus Fig. 4 lediglich für anschauliche Zwecke ist. Ein Computersystem 1400 enthält einen Systemtakt 1402, eine CPU 1404, eine Busbrücke 1406, einen Systemspeicher 1408, eine Datenbereitstellung 1410, einen Datenbereitstellungstakt 1412, eine Datenbenutzung 1414, einen Datenbenutzungstakt 1422, einen USB-Host 1416, ein USB-Lnterface 1417, eine USB-Funktionsvorrichtung 1418 und einen PCI-Bus 1420. Der Systemtakt 1402 ist eine konventionelle Takterzeugungsschaltung, welche mit der CPU 1404 gekoppelt ist. Die CPU 1404 ist eine konventionelle zentrale Verarbeitungseinheit, wie ein Mikroprozessor umfassend Mikroprozessoren, welche den X86-Befehlssatz implementieren. Der Systemspeicher 1408 kann eine jegliche konventionelle Datenspeichervorrichtung sein, wie wahlfreie Zugriffsspeicher (RAM) oder Nur-Lese-Speicher (ROM). Der Erweiterungsbu 1420 kann einer von einer Vielzahl von Typen von Erweiterungsbussen sein, umfassend einen Peripheriekomponentenverbindungs-(PCI)-Bus, einen Lndustriestandardarchitektur-(ISA)-Bus, einen erweiterten Industriestandardarchitektur-(EISA)-Bus oder einen Mikrokanalarchitektur- (MCA)-Bus. Die CPU 1404, der Systemspeicher 1408 und der Erweiterungsbus 1420 sind mit der Busbrücke 1406 verbunden. Die Busbrücke 1406 schafft ein Interface zwischen der CPU 1404 und dem Systemspeicher 1408. Darüber hinaus stellt die Busbrücke 1406 ein Interface zwischen dem Erweiterungsbus 1420 und dem Systemspeicher 1408 zur Verfügung.
  • Eine Vielzahl von Vorrichtungen kann den Erweiterungsbus 1420 ansprechen. In dem gezeigten Beispiel sprechen die Datenbereitstellung 1410, die Datenbenutzung 1414, der USB-Host 1416 und die Busbrücke 1406 den Erweiterung bus 1420 an. Der Erweiterungsbus 1420 stellt ein Interface für den Austausch von Daten zwischen den an den Bus angeschlossenen Vorrichtungen zur Verfügung. Z. B. stellt der Erweiterungsbus 1420 ein Interface für die Datenbereitstellung 1410 bereit, um Daten über die Busbrücke 1406 zu dem Systemspeicher 1408 zu befördern. Die Datenbereitstellung 1410 kann jegliche konventionelle Vorrichtung sein, die Eingangsdaten für die Computersystem 1400 bereitstellen kann. Beispielsweise kann die Datenbereitstellung 1410 ein digitaler Signalprozessor zum Verarbeiten von Eingangsdaten von einem Modem oder einer anderen Busbrücke sein, welche Daten für das Computersystem bereitstellt. In dem gezeigten Beispiel enthält die Datenbereitstellung 1410 einen Datenbereitstellungstakt 1412. Auf ähnliche Weise kann die Datenbenutzung 1414 jegliche konventionelle Vorrichtung sein, welche Ausgangsdaten von dem Computersystem 1400 empfängt. Z. B. kann die Datenbenutzung 1414 eine Videografikkarte zum Ausgeben von Videodaten sein. In dem gezeigten Beispiel enthält die Datenbenutzung 1414 einen Datenbenutzungstakt 1416.
  • In dem gezeigten Beispiel spricht der USB-Host 1416 das Computersystem 1400 über den Erweiterungsbus 1420 an. In einem alternativen Beispiel kann der USB-Host 1416 in die Busbrücke 1406 integriert sein. Der USB- Host 1416 stellt ein Interface zwischen dem Computersystem 1400 und dem USB-Interface 1417 bereit. In dem gezeigten Beispiel werden Daten, welche über das USB-Interface 1417 an die USB-Funktionsvorrichtung 1418 ausgegeben werden sollen, über den Erweiterungsbus 1420 zu dem USB-Host 1416 befördert. Die USB-Funktionsvorrichtung 1418 kann jegliche konventionelle Vorrichtung sein, die dem Computersystem 1400 Kapazitäten bereitstellt sowie ein Joystick, ein Keyboard, ein Mikrofon oder ein Lautsprecher. Die zwischen der Datenbereitstellung 1410 und dem USB-Host 1416 oder zwischen dem USB-Host 1416 und der Datenbenutzung 1414 transferierten Daten sind üblicherweise ein zweistufiger Prozess. Die Ausgangsdaten von der Datenbereitstellung 1410 werden zunächst im Systemspeicher 1408 gespeichert. Die Daten von der Datenbereitstellung 1410 können in einem oder mehreren First-Ln/First-Out (FIFO)-RAM-Matrizen mit zwei Eingängen gespeichert werden oder in einem vorbestimmten Bereich des Hauptspeichers. Dann werden die Daten von dem Systemspeicher 1408 an den USB-Host 1416 über den Erweiterungsbus 1420 transferiert. Die von dem USB-Host 1416 empfangenen Daten werden über das USB-Interface 1417 an die USB-Funktionsvorrichtung 1418 ausgegeben.
  • Der Systemspeicher 1408 funktioniert wie ein Puffer zum Speichern von Daten, welche von der Datenbereitstellung 1410 produziert worden sind. Z. B. können die von der Datenbereitstellung 1410 ausgegebenen Daten Daten sein, welche mit einer konstanten periodischen Rate empfangen werden, während der USB-Host 1416 Blöcke von Daten mit einer anderen Rate ausgibt. Entsprechend speichert der Systemspeicher 1408 die von der Datenbereitstellung 1410 empfangenen Daten, so dass die Daten verfügbar sind, wenn der USB-Host 1416 einen Block von Daten benötigt. Auf ähnliche Weise speichern Daten von dem USB-Host 1416 Daten in dem Systemspeicher 1408 und die Datenbenutzung 1414 liest diese Daten aus dem Systemspeicher 1408 aus.
  • Wenigstens drei Probleme treten durch das Puffern von Daten im Systemspeicher 1408 auf. Erstens erzeugt der Transfer von Daten auf dem Erweiterungsbus 1420 unbestimmbare Verzögerungen. Dieses Problem wird verstärkt, weil Daten doppelt auf dem Erweiterungsbus 1420 bewegt werden. Zweitens erzeugt der Transfer von Daten zwischen der Datenbereitstellung 1410 und/oder der Datenbenutzung 1414 und dem USB-Host 1416 Verwaltung aufwand auf dem Erweiterungsbus 1420. Dieses Problem wird genau so verstärkt durch den doppelten Transfer von Daten über den Erweiterungsbus 1420. Zuletzt steigt durch das Puffern von Daten im Systemspeicher 1408 die Belastung der Bandbreite des Systemspeichers an.
  • Darüber hinaus macht es die Pufferung von Daten im Systemspeicher 1408 kompliziert, die Datenrate der Datenbereitstellung 1410 oder der Datenbenutzung 1414 anzupassen, um die Datenbedürfnisse der USB-Funktionsvorrichtung 1418 zu treffen. Um einen Puffer innerhalb des Systemsspeichers 1418 vor dem Überfließen zu schützen, ist es notwendig, die Datenausgangsrate der Datenbereitstellung 1410 anzupassen, so dass sie nahe an der Rate liegt, bei welcher der USB-Host 1416 Daten an die USB-Funktionsvorrichtung 1418 ausgibt. Wenn die Datenrate der Datenbereitstellung 1410 die Rate, bei welcher der USB-Host 1416 an die USB-Funktionsvorrichtung 1418 ausgibt, überschreitet, können die Puffer innerhalb des Systemspeichers 1408 überfließen. Ähnlich kann, wenn die Datenausgangsrate der Datenbereitstellung zu niedrig ist, ein Block von Daten, der über den USB- Host 1416 an die USB-Funktionsvorrichtung 1418 transferiert werden soll, nicht verfügbar sein, was die USB-Funktionsvorrichtung 1418 verhungern lässt. Entsprechend müssen der Datenbereitstellungstakt 1412 und der Datenbenutzungstakt 1416 angepasst werden, um im wesentlichen der Taktrate der USB-Funktionsvorrichtung 1418 zu folgen. Unvorteilhafterweise sind die Datenpuffer in dem Systemspeicher 1418, was die Überwachung des Datenlevels innerhalb des Puffers erschwert, um die relativen Daten der Takte festzustellen und anzupassen.
  • Zusammenfassung der Erfindung
  • Die oben ausgeführten Probleme werden zu einem großen Teil durch ein Verfahren und eine Vorrichtung zur Optimierung der Steuerung von isochronen Daten- und Taktrateninformationen gelöst. Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist ein USB-Host 1416 direkt mit einer Datenbereitstellung oder einer Datenbenutzung verbunden. Ein Datenpuffer ist in dem USB-Host zum Speichern von Daten von der Datenbereitstellung oder zum Speichern von Daten für die Datenbenutzung enthalten. Durch die Umgehung des Systemspeichers und das Hinzufügen des Puffers zu dem USB-Host werden die unbestimmbaren Verzögerungen des Erweiterungsbusses eliminiert und der Verwaltungsaufwand des Transferierens von Daten auf dem Erweiterungsbus ist eliminiert. Genau so wird die Bandbreite des Systemspeichers reduziert. In einer alternativen Ausführungsform kommuniziert die Datenbereitstellung oder die Datenbenutzung mit dem USB-Host über den Erweiterungsbus, aber die Daten werden in dem USB- Host gepuffert anstatt in dem Systemspeicher. In diesem Ausführungsbeispiel werden die von dem Erweiterungsbus verursachten unbestimmbaren Verzögerungen und der Verwaltungsaufwand auf dem Erweiterungsbus reduziert, weil die Daten auf dem Erweiterungsbus lediglich einmal transferiert werden.
  • Die vorliegende Erfindung vereinfacht auch die Taktsteuerung in dem Computersystem. In einem Ausführungsbeispiel der vorliegenden Erfindung befindet sich der Datenpuffer in dem USB-Most. Entsprechend kann der USB- Host die Datenpegel innerhalb des Puffers überwachen, um die verbundenen Raten der Takte zu bestimmen.
  • Allgemeiner gesagt schlägt die vorliegende Erfindung ein universelles serielles Bus-(USB)-Datentransfersystem vor, welches eine Datenbereitstellung, einen USB-Host und eine USB-Funktionsvorrichtung umfasst. Die Datenbereitstellung ist konfiguriert, um einen Strom von Daten für den Transfer über den USB auszugeben. Der USB-Host ist an die Datenbereitstellung angeschlossen, wobei der USB-Host einen Puffer enthält, der konfiguriert ist, um die von der Datenbereitstellung ausgegebenen Daten zu speichern. Die USB-Funktionsvorrichtung ist an den USB-Host angeschlossen. Der USB-Host leitet die in dem Puffer gespeicherten Daten über ein USB-Interface, das zwischen den USB-Host und die USB-Funktionsvorrichtung geschaltet ist, an die USB-Funktionsvorrichtung weiter.
  • Die vorliegende Erfindung schlägt des Weiteren ein universelles serielles Bus-(USB)-Datentransfersystem vor, das eine USB-Funktionsvorrichtung, einen USB-Host und eine Datenbenutzung enthält. Die USB-FunktGonsvorrichtung ist konfiguriert, um einen Strom von Daten auszugeben. Der USB- Host ist an die USB-Funktionsvorrichtung angeschlossen und enthält einen Puffer, der konfiguriert ist, um von der USB-Funktionsvorrichtung ausgegebene Daten zu speichern. Die Datenbenutzung ist an den USB-Host angeschlossen und konfiguriert, um in dem Puffer gespeicherte Daten zu empfangen. Der USB-Host empfängt die Daten von der USB-Funktionsvorrichtung über ein USB-Interface, welches zwischen dem USB-Host und der USB-Funktionsvorrichtung angeschlossen ist.
  • Die vorliegende Erfindung schlägt des Weiteren ein Verfahren zum Transferieren von Daten auf einen USB vor, aufweisend die Schritte: Bereitstellen von Daten zur Übertragung über einen USB; Speichern der Daten in einem Datenpuffer eines USB-Host; Übermitteln der in dem Datenpuffer gespeicherten Daten über ein USB-Lnterface an eine USB-Funktionsvorrichtung; Überwachen eines Pegels der Daten in dem Datenpuffer; Übersenden eines Signals an eine Vorrichtung, das einen Pegel der Daten in dem Datenpuffer anzeigt; und Einstellen einer Taktrate der Vorrichtung in Abhängigkeit von dem Signal, das den Pegel der Daten in dem Puffer anzeigt.
  • Kurze Beschreibung der Zeichnungen
  • Ein besseres Verständnis der vorliegenden Erfindung kann erreicht werden, wenn die folgende detaillierte Beschreibung der bevorzugten Ausführungsform in Verbindung mit den folgenden Zeichnungen gesehen wird, in welchen:
  • Fig. 1 eine Darstellung eines Transfers eines Datenpakets über einen universellen seriellen Bus ist;
  • Fig. 2 eine Darstellung eines Musters eines Zeitplanes für den universellen seriellen Bus ist;
  • Fig. 3 ein Blockdiagramm einer beispielhaften universellen seriellen Busvorrichtung ist;
  • Fig. 4 ein Blockdiagramm eines Computersystems mit einer universellen seriellen Busvorrichtung ist;
  • Fig. 5 ein Blockdiagramm eines verbesserten Computersystems mit einer universellen seriellen Busvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist;
  • Fig. 6 ein Blockdiagramm eines weiteren Ausführungsbeispiels eines verbesserten Computersystems mit einer universellen seriellen Busvorrichtung entsprechend der vorliegenden Erfindung ist;
  • Fig. 7 ein Flussdiagramm ist, das einen optimierten Fluss von Daten und die Anpassung der Taktrate in Übereinstimmung mit einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • Während die Erfindung zahlreichen Modifikationen und alternativen Formen unterworfen werden kann, werden bestimmte Ausführungsbeispiele davon beispielhaft in den Figuren gezeigt und werden hier detailliert beschrieben. Es sollte jedoch verstanden werden, dass die Figuren und die dazugehörige detaillierte Beschreibung nicht beabsichtigt ist, die Erfindung auf die bestimmte offenbarte Form zu limitieren, sondern im Gegenteil soll die Erfindung alle Modifikationen, Äquivalente und Alternativen, welche in den Bereich der vorliegenden Erfindung, wie sie durch die beigefügten Ansprüche definiert ist, umfassen.
  • Detaillierte Beschreibung der Figuren
  • Nun wird auf Fig. 5 Bezug genommen, die ein Blockdiagramm eines verbesserten Computersystems mit einer universellen seriellen Busvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt. Elemente, welche ähnlich oder identisch zu denen in Fig. 4 sind, haben zur Vereinfachen dieselben Bezugszeichen. Ein Computersystem 1500 enthält einen Systemtakt 1402, eine GPU 1404, eine Busbrücke 1406, einen Systemspeicher 1408, eine USB-Funktionsvorrichtung 1418 und einen Erweiterungsbus 1420. Das Computersystem 1500 enthält des Weiteren eine Datenbereitstellung 1502 und einen USB-Host 1504. In dem gezeigten Ausführungsbeispiel ist die Datenbereitstellung 1502 an den Erweiterungsbus 1420 und an den USB-Host 1504 angeschlossen. Von der Datenbereitstellung 1502 an die USB-Funktionsvorrichtung 1418 zu transferierende Daten werden direkt von der Datenbereitstellung 1502 an den USB-Host 1504 übertragen. Der USB-Host 1504 enthält einen Puffer zum Speichern von von der Datenbereitstellung 1502 empfangenen Daten. In einem Ausführungsbeispiel werden Daten nicht in der Datenbereitstellung 1502 gepuffert. In diesem Ausführungsbeispiel werden Daten von der Datenbereitstellung 1502 an den USB-Host 1504 weitergeleitet so wie die Daten erzeugt werden. Die durch den USB-Host 1504 empfangenen und von der Datenbereitstellung 1502 erzeugten Daten werden in einem Datenpuffer gespeichert. Datenpuffer speichert die von der Datenbereitstellung 1502 produzierten Daten, bis der USB-Host 1504 die Daten an die USB-Funktionsvorrichtung 1418 weitergibt. In einem Ausführungsbeispiel lädt der USB-Host 1504 einen Block von Daten einmal jede Millisekunde an die USB- Funktionsvorrichtung 1418 herunter. In diesem Ausführungsbeispiel speichert der USB-Host 1504 von der Datenbereitstellung 1502 empfangene Daten in einem Datenpuffer und lädt einen Block von Daten jede Millisekunde herunter. In einem Ausführungsbeispiel enthält der USB-Host 1504 zwei Puffer. Ein Puffer empfängt Daten von der Datenbereitstellung 1502, während der andere Puffer Daten an die USB-Funktionsvorrichtung 1418 ausgibt. Wenn der datenempfangende Puffer voll ist, werden die Puffer getauscht.
  • Der Transfer von Daten zwischen der Datenbereitstellung 1502 und dem USB-Host 1504 kann über eine Datenleitung über eine Vielzahl von Datenleitungen geschehen. Wenn eine Datenleitung zur Übermittlung von Daten zwischen der Datenbereitstellung 1502 und dem USB-Host 1504 benutzt wird, dann wird die Übertragung der Daten als serielle Datenübertragung bezeichnet. Wenn alternativ eine Vielzahl von Datenleitungen zum Übertragen von Daten zwischen der Datenbereitstellung 1502 und dem USB-Host 1504 benutzt wird, dann wird die Übertragung als parallele Datenübertragung bezeichnet. In beiden Ausführungsbeispielen puffert der USB-Host 1504 die empfangenen Daten, die USB-Funktionsvorrichtung 1418 übertragen worden sind.
  • Wie oben ausgeführt, kann ein Unterschied in der Taktrate zwischen der Datenbereitstellung 1502 und dem USB-Host 1504 bestehen. Unterschiede in der Taktrate kann zumindest zwei verschiedenen Probleme erzeugen. Wenn die Taktrate der Datenbereitstellung 1502 wesentlich größer ist als die Taktrate des USB-Host 1504, d. h. die Datenbereitstellung eilt dem Host voran, dann wird sich der Puffer innerhalb des USB-Host 1504 auffüllen und eventuell überfließen. Wenn andersherum die Taktrate der Datenbereitstellung 1502 hinter der Taktrate des USB-Host 1504 hinterher hängt, dann wird der Puffer sich entleeren und der USB-Host 1504 wird ausgehungert, d. h. es werden nicht genügend Daten in den Puffer sein. Das Aushungern des Host benutzt zumindest die Bandbreite des Busses ineffizient oder noch schlimmer, schafft es nicht, der USB-Funktionsvorrichtung 1418 einen ausreichenden Betrag von Daten zur Verfügung zu stellen. Ein Mechanismus ist vorgesehen, um die Taktrate der Datenbereitstellung 1502 anzupassen, um im wesentlichen der Datenrate des USB-Host 1504 zu entsprechen. Es wird festgehalten, dass die Taktrate der Datenbereitstellung 1502 angepasst wird, da es nicht geschickt ist, die Datenrate des USB-Host 1504 anzupassen. Obwohl in dem gezeigten Ausführungsbeispiel nur eine Datenbereitstellung und keine Datenbenutzer an den USB-Host 1504 angeschlossen sind. In anderen Ausführungsbeispielen können mehrere Datenbereitsteller und/oder Datenbenutzer an den USB-Host 1504 angeschlossen sein. Entsprechend könnte nicht jede Vorrichtung die Taktrate des USB-Host 1504 ändern, um es an diese Vorrichtung anzupassen. Stattdessen wird die Taktrate von jeder Datenbereitstellung oder Datenbenutzung angepasst, um der Taktrate des USB-Host zu entsprechen. Ein Takt-Führe/Folge-Signal wird von dem USB-Host 1504 über einen Takt-Führe/Folge-Leiter 1510 an die Datenbereitstellung 1502 übertragen. Das Takt-Führe/Folge-Signal zeigt der Datenbereitstellung 1502 an, ob die Taktrate der Datenbereitstellung 1502 beschleunigt oder abgebremst werden soll.
  • Um die relativen Taktraten der Datenbereitstellung 1502 und des USB-Nost 1504 zu bestimmen, überwacht der USB-Host 1504 die Pegel des Vollseins oder Leerseins des Puffers, der Daten von der Datenbereitstellung 1502 empfängt. Weil der USB-Host 1504 Blöcke von Daten an die USB-Funktionsvorrichtung 1418 ausgibt, kann die Überwachung des Pegels des Datenpuffers zur selben Zeit wie die Übersendung eines Datenblockes erfolgen. In einem bevorzugten Ausführungsbeispiel wird der Pegel des Datenpuffers unmittelbar vor dem Herunterladen eines Blockes von Daten aus dem Puffer oder unmittelbar nach dem Herunterladen eines Blockes von Daten aus dem Puffer überwacht. Wenn der Puffer voller als erwartet ist, veranlasst das Takt-Führe/Folge-Signal die Datenbereitstellung 1502, ihre Taktrate zu verringern. Umgekehrt veranlasst das Takt-Führe/Folge-Signal die Datenbereitstellung, ihre Taktrate zu erhöhen, wenn der Puffer weniger voll als erwartet ist.
  • Obwohl das Computersystem 1500 lediglich eine Datenbereitstellung und keine Datenbenutzung zeigt, schlägt die vorliegende Erfindung eine Vorrichtung vor, welche eine Vielzahl von Datenbereitstellungen und eine Vielzahl von Datenbenutzungen enthält. Die Kommunikation zwischen anderen Datenbereitstellung und dem USB-Host 1504 wird auf ähnliche Weise durchgeführt wie oben diskutiert wurde für die Kommunikation zwischen der Datenbereitstellung 1502 und dem USB-Host 1504. Die Kommunikation zwischen einer Datenbenutzung und dem USB-Host 1504 ist analog wie bei der obigen Erläuterung, die sich auf die Datenbereitstellung 1502 bezieht. Eine Datenbenutzung empfängt Daten von dem USB-Host 1504, anstatt dass Daten an den USB-Host 1504 übertragen werden. USB 1504 puffert die von der USB-Funktionsvorrichtung 1418 empfangenen Daten und übersendet die Daten an die Datenbenutzung.
  • Das Computersystem 1500 ermöglicht vorteilhafterweise den Transfer von Daten von einer Datenbereitstellung oder an eine Datenbenutzung zu/an einen USB-Host, ohne dass unbestimmte Verzögerungen auf Grund eines Erweiterungsbusses wie eines PCI-Busses eingeführt werden. Des Weiteren erzeugt das Computersystem 1500 keinen Verwaltungsaufwand auf dem Erweiterungsbus oder ein Ansteigen der Belastung der Bandbreite des Systemspeichers.
  • Das Computersystem 1500 ist ein bevorzugtes Ausführungsbeispiel, wenn die Datenbereitstellung 1502 (und/oder eine Datenbenutzung) und der USB- Host 1504 in derselben integrierten Schaltung enthalten sind. Alternativ ist das Computersystem 1500 ein bevorzugtes Ausführungsbeispiel, wenn die Datenbereitstellung 1502 (und/oder eine Datenbenutzung) und der USB- Host 1504 in separaten integrierten Schaltungen mit zugewiesenen Anschlüssen sind.
  • Nun wird auf Fig. 6 Bezug genommen, die ein alternatives Ausführungsbeispiel eines Computersystems zum Transferieren von Daten von einer Datenbereitstellung an eine USB-Funktionsvorrichtung zeigt. Elemente, die ähnlich oder identisch zu denen in den Fig. 4 und 5 sind, haben zur Erleichterung dieselben Bezugszeichen. Ein Computersystem 1600 enthält einen Systemtakt 1402, eine CPU 1404, eine Busbrücke 1406, einen Systemspeicher 1408 und eine USB-Funktionsvorrichtung 1418. Zusätzlich enthält das Computersystem 1600 eine Datenbereitstellung 1602, die an den Erweiterungsbus 1420 angeschlossen ist, und einen mit dem Erweiterungsbus 1420 verbundenen USB-Host 1604. In dem Computersystem 1600 transferiert die Datenbereitstellung 1602 Daten über den Erweiterungsbus 1420 an den USB-Host 1604. In dem gezeigten Ausführungsbeispiel gibt die Datenbereitstellung 1604 die Daten direkt an den USB-Host 1604 weiter. In anderen Worten benutzt die Datenbereitstellung 1602 eine Peer-to-Peer- Kommunikation über den Erweiterungsbus 1420 mit dem USB-Host 1604. Die von der Datenbereitstellung 1602 empfangenen Daten werden im USB- Host 1604 vor der Übersendung an die USB-Funktionsvorrichtung 1418 gepuffert.
  • In einem Ausführungsbeispiel enthält die Datenbereitstellung 1602 einen relativ kleinen Puffer zum Puffern von Daten, bevor die Daten an den USB- Host 1604 transferiert werden. In einem bestimmten Ausführungsbeispiel werden Daten von der Datenbereitstellung 1602 in vier Doppelworten (d. h. 64 Bit breites Wort) Blöcken übertragen. Der USB-Host 1604 speichert die von der Datenbereitstellung 1602 empfangenen Datenblöcke ab, bis die Daten an die USB-Funktionsvorrichtung 1418 transferiert werden.
  • Der USB-Host 1604 leitet eine Takt-Führe/Folge-Anzeige über den Erweiterungsbus 1420 an die Datenbereitstellung 1602 weiter. In einem Ausführungsbeispiel wird das Anpassen der Taktrate durch periodisches Schreiben in ein Register innerhalb der Datenbereitstellung 1602 erzielt. Die Datenbereitstellung 1602 liest das Register periodisch aus, um festzustellen, welche bzw. ob Anpassungen der Taktrate vorzunehmen sind. Weil der USB-Host 1604 Daten in Datenblöcken empfängt und Daten in Datenblöcken ausgibt, sollte das Überwachen des Pegels des Puffers zum selben Zeitpunkt wie der Empfang von Eingangsdaten und das Senden von Ausgangsdaten erfolgen.
  • Das Computersystem 1600 ist das bevorzugte Ausführungsbeispiel, wenn die Datenbereitstellung 1602 (und/oder eine Datenbenutzung) und der USB- Host 1604 in getrennten integrierten Schaltungen angeordnet sind und keine bestimmten Anschlüsse für die Übersendung oder den Empfang von Daten haben.
  • Obwohl das Computersystem 1600 lediglich eine Datenbereitstellung und keine Datenbenutzung zeigt, schlägt die vorliegende Erfindung eine Vorrichtung vor, welche eine Vielzahl von Datenbereitstellungen und eine Vielzahl von Datenbenutzungen enthält. Die Kommunikation zwischen anderen Datenbereitstellungen und dem USB-Host 1604 wird auf ähnliche Weise durchgeführt, wie oben für die Kommunikation zwischen der Datenbereitstellung 1602 und dem USB-Host 1604 diskutiert wurde. Die Kommunikation zwischen einer Datenbenutzung ist analog wie zu der obigen Diskussion, die sich auf die Datenbereitstellung 1602 bezieht. Eine Datenbenutzung empfängt jedoch Daten von dem USB-Host 1604, anstatt Daten an den USB-Host 1604 zu senden. Der USB-Host 1604 sendet entweder periodisch Datennachrichten an die Datenbenutzung oder antwortet auf eine Anfrage für Daten von der datenbenutzenden Vorrichtung am Erweiterungsbus 1420.
  • Nun wird auf Fig. 7 Bezug genommen, welche ein Flussdiagramm zeigt, das ein Verfahren zum Optimieren des Flusses von Daten und Taktrateninformationen zeigt. Im Schritt 702 werden Daten von einer Datenbereitstellung für den Transfer über einen USS-Bus bereitgestellt. Im Schritt 704 werden die im Schritt 702 von der Datenbereitstellung produzierten Daten an einen Datenpuffer innerhalb eines USB-Host befördert. In Schritt 706 werden die Daten von dem USB-Host an eine USB-Funktionsvorrichtung über ein USB- Interface befördert. Im Schritt 708 wird ein Pegel des Datenpuffers innerhalb des USB-Host überwacht. Im Schritt 710 übersendet der USB-Host ein Signal an die Datenbereitstellung, das den Datenpegel des Puffers anzeigt. Im Schritt 712 passt die Datenbereitstellung ihre Taktrate in Abhängigkeit von dem Signal an, das den Datenpegel in dem Puffer anzeigt. In einem Ausführungsbeispiel reduziert die Datenbereitstellung die Taktrate, wenn das Signal anzeigt, dass der Puffer voller als erwartet ist. Umgekehrt steigert die Datenbereitstellung die Taktrate, wenn das Signal anzeigt, dass der Datenpegel in dem Puffer niedriger als erwartet ist.

Claims (20)

1. Datenübertragungssystem zum Übertragen von isochronen Daten, mit
- einer Datenbereitstellungseinrichtung (1502; 1602) zur Ausgabe von Daten zu Übertragungszwecken;
- einem mit der Datenbereitstellungseinrichtung (1502; 1602) gekoppelten Host (1504; 1604); und
- einer mit dem Host (1504; 1604) gekoppelten Funktionsvorrichtung (1418);
- wobei der Host (1504; 1604) einen Puffer zum Speichern der von der Datenbereitstellungseinrichtung (1502; 1602) ausgegebenen Daten aufweist und der Host (1504; 1604) die in dem Puffer gespeicherten Daten über ein zwischen dem Host (1504; 1604) und der Funktionsvorrichtung (1418) gekoppeltes Interface an die Funktionsvorrichtung (1418) übermittelt;
dadurch gekennzeichnet, dass
- die Datenbereitstellungseinrichtung (1502; 1602) zum Ausgeben eines Stroms isochroner Daten vorgesehen ist, wobei der Host (1504; 1604) ein Taktsynchronisiersignal an die Datenbereitstellungseinrichtung (1502; 1602) ausgibt und das Taktsynchronisiersignal dafür sorgt, dass die Datenbereitstellungseinrichtung (1502; 1602) eine Rate zum Ausgeben der isochronen Daten an den Host (1504; 1604) einstellt.
2. Datenübertragungssystem nach Anspruch 1, bei dem die Datenbereitstellungseinrichtung (1502; 1602) die Daten dann an den Host (1504; 1604) ausgibt, wenn diese bereitgestellt werden.
3. Datenübertragungssystem nach Anspruch 1 oder 2, bei dem die Datenbereitstellungseinrichtung (1502; 1602) zur seriellen Übermittlung der Daten an den Host (1504; 1604) vorgesehen ist.
4. Datenübertragungssystem nach Anspruch 1, 2 oder 3, bei dem die Datenbereitstellungseinrichtung (1502; 1602) und der Host (1504; 1604) mit einem Datenübertragungsbus (1420) gekoppelt sind, wobei die Datenbereitstellungseinrichtung (1502; 1602) zum Übertragen der Daten über den Datentransferbus (1420) an den Host (1504; 1604) vorgesehen ist.
5. Datenübertragungssystem nach Anspruch 4, bei dem der Datenübertragungsbus (1420) ein Peripheriekomponenten-Verbindungsbus ist.
6. Datenübertragungssystem nach einem der vorstehenden Ansprüche, bei dem der Host (1504; 1604) zum Übermitteln von Daten in Form von Datenblöcken mit vorbestimmter Größe an die Funktionsvorrichtung (1418) vorgesehen ist.
7. Datenübertragungssystem nach Anspruch 6, bei dem der PufFer des Hosts (1504; 1604) zum Speichern mehrerer Datenblöcke vorgesehen ist.
8. Datenübertragungssystem zum Übertragen von Daten, mit:
- einer Funktionsvorrichtung (1418) zum Ausgeben von Daten
- einem mit der Funktionsvorrichtung (1418) gekoppelten Host (1504; 1604), der einen Puffer zum Speichern der von der Funktionsvorrichtung (1418) ausgegebenen Daten aufweist; und
- einer mit dem Host (1504; 1604) gekoppelten Datenbenutzungseinrichtung (1414), die zum Empfangen der in dem Puffer gespeicherten Daten vorgesehen ist, und
- wobei der Host (1504; 1604) die von der Funktionsvorrichtung (1418) kommenden Daten über ein zwischen dem Host (1504; 1604) und der Funktionsvorrichtung (1418) gekoppeltes Interface empfängt;
dadurch gekennzeichnet, dass
- die Funktionsvorrichtung (1418) zum Ausgeben eines Stroms isochroner Daten vorgesehen ist, wobei der Host (1504; 1604) ein Taktsynchronisiersignal an die Datenbenutzungseinrichtung (1414) ausgibt und das Taktsynchronisiersignal dafür sorgt, dass die Datenbenutzungseinrichtung (1414) eine Rate zum Eingeben der vom Host (1504; 1604) kommenden Daten einstellt.
9. Datenübertragungssystem nach Anspruch 8, bei dem die Datenbenutzungseinrichtung (1414) zum seriellen Empfangen der vom Host (1504; 1604) kommenden Daten vorgesehen ist.
10. Datenübertragungssystem nach Anspruch 8 oder 9, bei dem die Datenbenutzungseinrichtung (1414) und der Host (1504; 1604) mit einem Datenübertragungsbus (1420) gekoppelt sind, wobei die Datenbenutzungseinrichtung (1414) zum Empfangen der vom Host (1504; 1604) kommenden Daten über den Datenübertragungsbus (1420) vorgesehen ist.
11. Datenübertragungssystem nach Anspruch 10, bei dem der Datenübertragungsbus (1420) ein Peripheriekomponenten-Verbindungsbus ist.
12. Datenübertragungssystem nach einem der Ansprüche 8 bis 11, bei dem der Host (1504; 1604) zum Empfangen von von der Funktionsvorrichtung (1418) kommenden Daten in Form von Datenböcken mit vorbestimmter Größe vorgesehen ist.
13. Datenübertragungssystem nach Anspruch 12, bei dem der Puffer des Hosts (1504; 1604) zum Speichern mehrerer Datenblöcke vorgesehen ist.
14. Datenübertragungssystem nach einem der Ansprüche 1 bis 13, bei dem das System ein Datenübertragungssystem mit universellem seriellen Bus zum Übertragen von isochronen Daten über einen universellen seriellen Bus ist, wobei der Host ein Host mit universellem seriellen Bus und die Funktionsvorrichtung eine Funktionsvorrichtung mit universellem seriellen Bus ist.
15. Verfahren zur Datenübertragung, mit folgenden Schritten:
- Bereitstellen von Daten zu Übertragungszwecken;
- Speichern der Daten in einem Datenpuffer eines Hosts (1504; 1604);
- Übermitteln der in dem Datenpuffer gespeicherten Daten über ein Interface an eine Funktionsvorrichtung (1418); und
- Überwachen eines Datenpegels im Datenpuffer; gekennzeichnet durch
- das Übersenden eines Signals an eine Vorrichtung (1502; 1602; 1414), das einen Pegel des Datenpuffers anzeigt; und
- Einstellen einer Taktrate der Vorrichtung in Abhängigkeit von dem Signal, das den Datenpegel in dem Puffer anzeigt.
16. Verfahren zur Datenübertragung nach Anspruch 15, bei dem die Vorrichtung eine Datenbereitstellungseinrichtung (1502; 1602) ist, die zum Ausgeben von Daten an den Host (1504; 1604) vorgesehen ist.
17. VerFahren zur Datenübertragung nach Anspruch 15 oder 16, bei dem die Vorrichtung eine Datenbenutzungseinrichtung (1414) ist, die zum Empfangen von vom Host (1504; 1604) kommenden Daten vorgesehen ist.
18. Verfahren zur Datenübertragung nach Anspruch 15, 16 oder 17, bei dem die Daten als isochrone Daten auf einem universellen seriellen Bus übertragen werden und bei dem die Funktionsvorrichtung eine Funktionsvorrichtung mit einem universellen seriellen Bus und der Host ein Host mit einem universellen seriellen Bus ist.
19. Verfahren zur Datenübertragung nach einem der Ansprüche 15 bis 18, bei dem die Vorrichtung direkt mit dem Host (1504; 1604) gekoppelt ist.
20. Verfahren zur Datenübertragung nach einem der Ansprüche 15 bis 19, bei dem ein Datenübertragungsbus (1420) zwischen der Vorrichtung und dem Host (1504; 1604) gekoppelt ist.
DE69801669T 1997-08-05 1998-05-18 System und verfahren zur stromoptimierung von isochronen daten und taktrateninformation Expired - Lifetime DE69801669T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/906,329 US5958027A (en) 1997-08-05 1997-08-05 Method and system for optimizing the flow of isochronous data and clock rate information
PCT/US1998/010183 WO1999008198A1 (en) 1997-08-05 1998-05-18 Method and system for optimizing the flow of isochronous data and clock rate information

Publications (2)

Publication Number Publication Date
DE69801669D1 DE69801669D1 (de) 2001-10-18
DE69801669T2 true DE69801669T2 (de) 2002-06-20

Family

ID=25422265

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69801669T Expired - Lifetime DE69801669T2 (de) 1997-08-05 1998-05-18 System und verfahren zur stromoptimierung von isochronen daten und taktrateninformation

Country Status (4)

Country Link
US (1) US5958027A (de)
EP (1) EP1002278B1 (de)
DE (1) DE69801669T2 (de)
WO (1) WO1999008198A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19900245B4 (de) * 1998-01-07 2005-09-15 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11312143A (ja) * 1998-04-28 1999-11-09 Clarion Co Ltd 情報処理装置及び方法、カーオーディオシステム及びその制御方法並びに情報処理用プログラムを記録した記録媒体
TW444165B (en) * 1998-05-12 2001-07-01 Primax Electronics Ltd Hot plug and play universal serial bus switch device and control method
US6421702B1 (en) * 1998-06-09 2002-07-16 Advanced Micro Devices, Inc. Interrupt driven isochronous task scheduler system
US6418459B1 (en) * 1998-06-09 2002-07-09 Advanced Micro Devices, Inc. Isochronous task scheduling structure for a non-real-time operating system
US6256687B1 (en) * 1998-08-04 2001-07-03 Intel Corporation Managing data flow between a serial bus device and a parallel port
JP3994555B2 (ja) * 1998-11-18 2007-10-24 ソニー株式会社 データ処理回路およびデータ伝送システム
US6272644B1 (en) * 1999-01-06 2001-08-07 Matsushita Electrical Industrial Co., Ltd. Method for entering powersave mode of USB hub
TW413763B (en) * 1999-03-16 2000-12-01 Winbond Electronics Corp Data conversion device and data flow control method in between USB host and network end
US6647502B1 (en) * 1999-07-13 2003-11-11 Sony Corporation Method and apparatus for providing power based on the amount of data stored in buffers
US6978412B1 (en) * 1999-08-16 2005-12-20 Advanced Micro Devices, Inc. Method and apparatus for adaptive frame tracking
JP2001156807A (ja) * 1999-09-14 2001-06-08 Sony Corp 伝送方法、伝送システム及び伝送装置
US6247071B1 (en) * 1999-10-04 2001-06-12 B2C2, Inc. System for receiving an isochronous data stream at a computer using a main memory buffer
US6813669B1 (en) * 2000-02-24 2004-11-02 International Business Machines Corporation Agent provided by USB device for executing USB device dependent program in USB host
US6839771B1 (en) * 2000-04-13 2005-01-04 Hewlett-Packard Development Company, L.P. Method and system for using a universal serial bus (USB) as a peer-to-peer network
AUPQ896300A0 (en) * 2000-07-24 2000-08-17 Nec Australia Pty Ltd A clock synchronisation method for usb sink devices
JP3974318B2 (ja) * 2000-09-08 2007-09-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 受信再生装置及びその方法
US7103125B1 (en) * 2001-05-16 2006-09-05 Lexmark International, Inc. Method and apparatus for effecting synchronous pulse generation for use in serial communications
US7139344B2 (en) 2001-05-16 2006-11-21 Lexmark International, Inc. Method and apparatus for effecting synchronous pulse generation for use in variable speed serial communications
US7460629B2 (en) 2001-06-29 2008-12-02 Agere Systems Inc. Method and apparatus for frame-based buffer control in a communication system
US20040201684A1 (en) * 2001-10-16 2004-10-14 Eastman Kodak Company Camera and camera data exchange system with dual data bus
US7120813B2 (en) * 2003-01-28 2006-10-10 Robert Antoine Leydier Method and apparatus for clock synthesis using universal serial bus downstream received signals
US6910197B2 (en) * 2003-06-20 2005-06-21 Sun Microsystems, Inc. System for optimizing buffers in integrated circuit design timing fixes
US7478260B2 (en) * 2003-10-20 2009-01-13 Hewlett-Packard Development Company, L.P. System and method for setting a clock rate in a memory card
US7310390B2 (en) * 2003-10-30 2007-12-18 Apple Inc. Decoding coded data streams
US6983437B2 (en) * 2003-11-05 2006-01-03 Sun Microsystems, Inc. Timing verification, automated multicycle generation and verification
US20060209684A1 (en) * 2005-03-18 2006-09-21 Via Technologies, Inc. Data rate controller, and method of control thereof
US7340710B1 (en) 2005-04-18 2008-03-04 Sun Microsystems, Inc. Integrated circuit binning and layout design system
US7404161B2 (en) * 2005-06-08 2008-07-22 Sun Microsystems, Inc. Fullchip functional equivalency and physical verification
US8069294B2 (en) 2006-03-30 2011-11-29 Intel Corporation Power-optimized frame synchronization for multiple USB controllers with non-uniform frame rates
US7702832B2 (en) * 2006-06-07 2010-04-20 Standard Microsystems Corporation Low power and low pin count bi-directional dual data rate device interconnect interface
JP5551512B2 (ja) * 2010-05-21 2014-07-16 ルネサスエレクトロニクス株式会社 通信制御装置、データ通信方法及びプログラム
US8335875B1 (en) * 2011-06-24 2012-12-18 Intel Corporation System and method for performing isochronous data buffering
US9014321B2 (en) * 2011-10-31 2015-04-21 Texas Instruments Incorporated Clock drift compensation interpolator adjusting buffer read and write clocks
JP5978792B2 (ja) * 2012-06-12 2016-08-24 富士通株式会社 伝送装置及び伝送方法
US9246852B2 (en) * 2013-11-05 2016-01-26 National Instruments Corporation Lossless time based data acquisition and control in a distributed system
KR102518285B1 (ko) 2021-04-05 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 및 인터페이스 시스템
KR102415309B1 (ko) * 2020-06-16 2022-07-01 에스케이하이닉스 주식회사 인터페이스 장치 및 그 동작 방법
US11546128B2 (en) * 2020-06-16 2023-01-03 SK Hynix Inc. Device and computing system including the device
KR102519480B1 (ko) 2021-04-01 2023-04-10 에스케이하이닉스 주식회사 PCIe 장치 및 이를 포함하는 컴퓨팅 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513326A (en) * 1989-06-12 1996-04-30 Quantum Corporation System for optimizing data transfer
US5249271A (en) * 1990-06-04 1993-09-28 Emulex Corporation Buffer memory data flow controller
US5734373A (en) * 1993-07-16 1998-03-31 Immersion Human Interface Corporation Method and apparatus for controlling force feedback interface systems utilizing a host computer
US5675811A (en) * 1995-08-18 1997-10-07 General Magic, Inc. Method for transmitting information over an intelligent low power serial bus
US5568192A (en) * 1995-08-30 1996-10-22 Intel Corporation Method and apparatus for processing digital video camera signals
US5859993A (en) * 1996-08-30 1999-01-12 Cypress Semiconductor Corporation Dual ROM microprogrammable microprocessor and universal serial bus microcontroller development system
US5818948A (en) * 1996-10-23 1998-10-06 Advanced Micro Devices, Inc. Architecture for a universal serial bus-based PC speaker controller
US5860119A (en) * 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US5778218A (en) * 1996-12-19 1998-07-07 Advanced Micro Devices, Inc. Method and apparatus for clock synchronization across an isochronous bus by adjustment of frame clock rates

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19900245B4 (de) * 1998-01-07 2005-09-15 National Semiconductor Corp.(N.D.Ges.D.Staates Delaware), Santa Clara Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host

Also Published As

Publication number Publication date
EP1002278B1 (de) 2001-09-12
US5958027A (en) 1999-09-28
WO1999008198A1 (en) 1999-02-18
DE69801669D1 (de) 2001-10-18
EP1002278A1 (de) 2000-05-24

Similar Documents

Publication Publication Date Title
DE69801669T2 (de) System und verfahren zur stromoptimierung von isochronen daten und taktrateninformation
DE69128503T2 (de) Schnittstellenschaltung für intelligentes Netzwerk
DE69714460T2 (de) Steuerungsarchitektur für einen universellen seriellen bus-basierten pc-lautsprecher
EP3429136B1 (de) Verfahren zur übertragung von daten über einen seriellen kommunikationsbus, entsprechend ausgelegter busschnittstelle sowie entsprechend ausgelegtem computerprogramm
DE102006058818B4 (de) Vorrichtung und Verfahren zur Umwandlung von Textmitteilungen
DE69706978T2 (de) Ein aus einem multimedia-bus und einem zentralen ein/ausgabeprozessor bestehendes rechnersystem, das intelligente datenübertragungen ausführt
DE112008000598B4 (de) Relaisschaltungseinheit für ein Fahrzeug
EP2030116B1 (de) Kommunikationsbaustein
DE3043894C2 (de)
DE19649258C2 (de) Bussystem und Verfahren zur Datenübertragung
DE69533790T2 (de) Telekommunikationsschnittstelle für einheitliche Handhabung von variierten analog-abgeleiteten und digitalen Datenströmen
DE69928603T2 (de) Medienzugriffssteuerung
DE69431332T2 (de) Kombinieren von Ton- und Fernsprech-Daten für einem Rechner
DE102007012054B4 (de) Mehrmasterverkettungszweidrahtseriellbus
EP3788756B1 (de) Gateway zur datenkommunikation in einem fahrzeug
DE10392638T5 (de) Koppelpunktschalter mit Serialisierungs- und Deserialisierungsfunktionen
DE19900245A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von USB-Isochrondaten
DE102013020277A1 (de) Bit-timing-symmetrisierung
EP2087646A1 (de) Vorrichtung und verfahren zur manipulation von kommunikations-botschaften
WO2007039627A1 (de) Verfahren zur anbindung eines flexray-teilnehmers mit einem mikrocontroller an eine flexray-kommunikationsverbindung über eine flexray-kommunikationssteuereinrichtung, und flexray-kommunikationssteuereinrichtung, flexray-teilnehmer und flexray-kommunikationssystem zur realisierung dieses verfahrens
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
EP2087647B1 (de) Vorrichtung und verfahren zur manipulation von kommunikations-botschaften
DE102009030952A1 (de) Drahtloses Kommunikationsgerät und Paketübertragungsverfahren dafür
DE102004042068B4 (de) Verfahren, computerlesbares Medium und System zum Handhaben eines fehlgeschlagenen Verbindungstrainings
CN110505268A (zh) 高速传输fota升级固件包的数据传输系统及传输方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition