-
Gebiet der
Erfindung
-
Diese
Anwendung bezieht sich allgemein auf ein Computersystem und insbesondere
auf einen Mechanismus zum Anschließen eines externen Geräts, wie
z. B. eines CD-Laufwerks, an das Computersystem über den universellen seriellen
Bus oder USB.
-
Hintergrund
-
Computersysteme,
insbesondere Personalcomputersysteme (PCs) verwenden Peripheriegeräte, neben
anderen Aufgaben für
Datenspeicherung und -wiedergewinnung und Kommunikation. Peripheriegeräte umfassen
Festplatten, Diskettenlaufwerke, Compact-Disk-(CD-)Geräte, die
CD-R-Laufwerke (CD-R = CD-Recordable
= beschreibbare CD) und CD-RW-Laufwerke (CD-RW = CD-Re-Writeable
= wiederbeschreibbare CD) umfassen, Bandlaufwerke, Modems, Tastaturen,
Zeigevorrichtungen (Maus) und Scanner. Peripheriegeräte können intern
befestigt sein, d. h. innerhalb des Computergehäuses oder außerhalb
des Computergehäuses
befestigt sein. Peripheriegeräte
sind verbunden mit und kommunizieren mit dem Computer durch eine
Schnittstelle, wie z. B. eine Integrated-Drive-Electronic (IDE),
Enhanced-Integrated-Drive-Electronic (EIDE), AT-Attachment-Packet-Interface (ATAPI),
Small Computer System Interface (SCSI) oder Peripheral-Component-Interconnect-(PCI-)Schnittstellen.
-
Benutzerinstallierte
Peripheriegeräte,
die intern angeordnet sind, sind allgemein nicht wünschenswert.
Benutzer haben typischerweise nicht die notwendigen Fähigkeiten
für eine
solche Installation und Konfiguration. Die Installation umfasst
das Öffnen
eines Computergehäuses,
das Befestigen des Geräts
an dem Gehäuse,
das Verbinden von Leistungs leitungen mit der Leistungsversorgung,
das Verbinden von Datenleitungen mit der Hauptplatine, das Installieren
einer Steuerkarte auf der Hauptplatine und das Konfigurieren von
Jumperblöcken
auf dem Gerät
(wie z. B. Master/Slave auf IDE, SCSI-IDs für SCSI). Nach der Installation
muss der Benutzer dann das Gerät
für den
Betrieb in dem System konfigurieren. Dies kann das Zurücksetzen
von Parametern in dem Basiseingabe/ausgabesystem (BIOS; BIOS = Basic
Input Output System) und/oder das Konfigurieren von Dateien in dem
Betriebssystem (OS; OS = operating system) umfassen. Obwohl der Plug-and-Play-Mechanismus
die Konfigurationsaspekte etwas vereinfacht hat, ist die Installation
dennoch für
die meisten Benutzer zu schwierig.
-
Eine
Lösung
dieses Problems ist, Peripheriegeräte extern mit vorkonfigurierten
und vorinstallierten Toren zu koppeln, wie z. B. seriellen Toren
oder parallelen Toren. Diese Tortypen sind bei den meisten Computern
Standard. Der Benutzer müsste
lediglich ein Kabel von dem Gerät
mit dem geeigneten Tor an dem Computergehäuse verbinden, und ein Leistungsversorgungskabel
mit einer Wandsteckdose verbinden. Ein Problem, das sich jedoch
ergeben kann, ist, dass serielle Tore im Allgemeinen langsam sind.
Ferner haben einige serielle Torsteuerungen keine Datenpufferung,
was bewirken kann, dass Daten verloren gehen, wenn höhere Kommunikationsgeschwindigkeiten
verwendet werden. Darüber
hinaus werden externe Peripheriegeräte ebenfalls regelmäßig mit
tragbaren Computern, wie z. B. Laptops, verwendet, die wenige, wenn überhaupt,
interne Gerätebuchten
haben. Probleme können
auch entstehen, wenn das parallele Tor verwendet wird. Das parallele
Tor ist kein Systembus, sondern eher ein Verbinder zu einer Karte,
die mit dem Systembus verbunden ist. Das parallele Tor ist entworfen,
um mehrere Datenbits gleichzeitig auf mehreren Drähten zu senden
und zu empfangen. Die Karte, die mit dem Systembus verbunden ist,
mit einem parallelen Chipsatz, wandelt die parallelen Daten in Systembusdaten
um und umgekehrt. Allgemein werden unterschiedliche parallele Chipsätze bei
unterschiedlichen Computersystemen verwendet. Folglich können viele Inkompatibilitäten entstehen,
wenn externe Geräte, die
einen einzigen Kommunikationsstandard verwenden, mit anderen Paralleltorchipsätzen verwendet werden,
die möglicherweise
unterschiedliche und inkompatible Standards verwenden. Darüber hinaus kann
das parallele Tor in einer Vielzahl von Modi arbeiten, wie z. B.
Bidirektional-, ECP-(ECP = Extended Capability Port), SPP-(SSP =
standard printer port) und EPP-(EPP = enhanced parallel port)Modi. Bei
einigen Computern sind bestimmte Modi zu langsam, um Geräte mit hoher
Datenrate zu unterstützen, wie
z. B. ein CD-RW, und somit kann das Gerät nicht in diesem Modus arbeiten.
Um einen ordnungsgemäßen Betrieb
sicherzustellen, müsste
ein Benutzer die Paralleltoreinstellungen in dem BIOS ändern.
-
Eine
weitere Lösung
ist das Hinzufügen
einer Schnittstellenkarte zu dem System, wie z. B. eine SCSI-Karte.
Dies würde
es einem Benutzer ermöglichen,
das externe Gerät
in die Karte einzustecken. Diese Lösung erfordert jedoch die Installation
der Karte, typischerweise in einen ISA- oder PCI-Erweiterungsschlitz
auf der Hauptplatine, die sich in dem Computergehäuse befindet,
wie es oben beschrieben ist. Die Installation einer Schnittstellenkarte
verursacht generell auch die Schwierigkeiten im Zusammenhang mit
der Benutzerkonfiguration von Geräten, die in dem Computersystem
installiert sind.
-
Ein
weiterer Lösungsansatz
umfasst das Verwenden des universellen seriellen Busses oder USB.
Dieser Bus weist einen externen Verbindungspunkt auf und würde somit
ein einfaches Anschließen des
externen Geräts
ermöglichen.
Der USB ist ein Merkmal der meisten Computer, die nach 1997 gebaut
wurden. Der USB arbeitet mit Windows 98 und Windows 2000 und wird
somit von diesen Betriebssystemen unterstützt. Die Verwendung des USB
ergibt jedoch bei bestimmten Anwendungen Probleme. Ein Problem ist,
dass der USB ein gemeinschaftlich verwendeter Bus ist, der es ermöglicht,
dass mehrere Geräte
gleichzeitig in den gleichen Bus eingesteckt werden, und somit alle
die endgültige
Gesamtbandbreite des Busses gemeinschaftlich verwenden. Die Bandbreitenverfügbarkeit
für eines
der mehreren Geräte
kann somit begrenzt sein.
-
Ein
weiteres Problem ergibt sich durch die verfügbaren Datenübertragungsmodi
auf dem USB. Derzeit gibt es allgemein zwei Kommunikationsmodi zum Übertragen
von Daten, einen Bulk-Modus und einen Isochron-Übertragungsmodus. Der Bulk-Modus
liefert Fehlerkorrektur und stellt dadurch im Allgemeinen sicher,
dass, falls fehlerhafte Daten in einem Datenpaket enthalten sind,
das Paket allgemein zurückgesendet
wird, bis es in ordnungsgemäßer Form geliefert
wird. Obwohl eine solche Fehlerkorrektur und Neuübertragung dazu beiträgt, eine
genaue Datenübertragung
sicherzustellen, können
die Prozesse der Korrektur und Neuübertragung die Kommunikationsrate
für Bulk-Moduskommunikation
wesentlich verlangsamen. Obwohl Isochron-Datenübertragung im Allgemeinen zuerst übertragen
wird und mit im Voraus zugewiesener Bandbreite auf dem USB vorgesehen
ist, wird einem Bulk-Modus
im Allgemeinen eine geringere Priorität für die Übertragung zugewiesen und ist
daher nicht mit einer garantierten Bandbreite versehen. Bulk-Daten
werden allgemein nur übertragen,
nachdem Daten mit höherer
Priorität zuerst übertragen
wurden.
-
Obwohl
die Integrität
von Bulk-Daten sichergestellt werden kann, wird Datenübertragung
daher häufig
durch Daten höherer
Priorität
unterbrochen. Daher ist dieser Modus nicht geeignet für die Verwendung
mit Geräten,
die einen kontinuierlichen Datenfluss erfordern, wie z. B. CD-R-
oder CD-RW-Geräte. Es ist
anzumerken, wenn auf ein CD-RW-Gerät oder andere „Fortlaufender-Fluss-" Datenempfangsgeräte geschrieben
wird, wie z. B. ein CD-R oder digitales Audiobandgerät, der Datenfluss
vorzugsweise ununterbrochen sein sollte. Falls es eine Unterbrechung bei
der Bulk-Datenübertragung
gibt, die später
wieder aufgenommen wird, kann es sein, dass das CD-RW- oder andere
Datenempfangsgerät
nicht in der Lage ist, den Betrieb nahtlos wieder aufzunehmen, wo
eine vorhergehende Übertragung
beendet wurde. Bei einer Anwendung, wie z. B. Schreiben auf eine
CD-R-Platte, kann dies bewirken, dass ein CD-„Brennen" fehlschlägt.
-
Diese
Probleme ergeben sich mit dem Entwurf des USB. Der USB ist entworfen
für HID-(HID
= Human Interface Device-)Geräte,
z. B. Tastaturen, Mäuse,
Joysticks usw. Diese Geräte
haben geringe Datenratengeschwindigkeiten und empfangen normalerweise
keine kontinuierlichen Datenströme. Folglich
gibt es im Allgemeinen wenig systemspezifische Unterstützung in
Computerbetriebssystemen für
Konstantflussgeräte
mit hoher Geschwindigkeit, wie z. B. CD- oder CD-RW-Laufwerke.
-
Die
Universeller-Serieller-Bus-Spezifikation Überarbeitung 1.1 vom 23. September
1998 gibt eine Übersicht über die
Architektur des universellen seriellen Busses und beschreibt ferner
den Isochron-Übertragungsmodus.
Gemäß der oben
genannten Spezifikation ist der universelle serielle Bus ein Kabelbus,
der Datenaustausch zwischen einem Host-Computer und einem großen Bereich
von gleichzeitig zugreifbaren Peripheriegeräten unterstützt. Die angehängten Peripheriegeräte verwenden die
USB-Bandbreite gemeinsam durch ein host-geplantes token-basiertes
Protokoll. Ferner liefert der universelle serielle Bus eine gemeinschaftlich
verwendete Verbindung. Zugriff zu der Verbindung wird geplant und
geordnet, um Isochron-Datenübertragungen
zu unterstützen
und Entscheidungsmehraufwand zu eliminieren. Gemäß der Spezifikation kann eine
Robustheit des universellen seriellen Busses erreicht werden durch
CRC-Schutz über
Steuer- und Datenfeldern. Der universelle serielle Bus unterstützt ferner
Fehlererfassung. Um Schutz gegen Fehler zu liefern, umfasst jedes
Paket Fehlerschutzfelder. Das Protokoll umfasst getrennte CRCs für Steuer-
und Datenfelder jedes Pakets. Es wird davon ausgegangen, dass ein
falscher CRC ein verfälschtes
Paket anzeigt. Das Protokoll ermöglicht
ferner Fehlerhandhabung in Hardware oder Software. Hardwarefehlerhandhabung
umfasst das Berichten und Neuversuchen einer fehlgeschlagenen Übertragung.
Eine USB-Host-Steuerung
versucht eine Übertragung,
die Fehler verursacht, bis zu drei Mal bevor die Klient-Software über den
Ausfall informiert wird. Der USB unterstützt ferner Isochron-Übertragungen.
Isochrone Daten sind fortlaufend und Echtzeit bei der Erzeugung,
Lieferung und Verbrauch. Zeitbezogene Informationen werden durch
die beständige
Rate impliziert, bei der isochrone Daten empfangen und übertragen
werden. Isochrone Daten müssen
bei der Rate geliefert werden, bei der sie empfangen werden, um
die Zeitgebung beizubehalten. Außerdem müssen bei der Lieferungsrate
isochrone Daten auch empfindlich sein gegenüber Lieferverzögerungen. Die
rechtzeitige Lieferung von isochronen Daten wird sichergestellt
auf Kosten potentieller Übertragungsverluste
in dem Datenstrom. Anders ausgedrückt, jeder Fehler bei elektrischer Übertragung
wird nicht durch Hardwaremechanismen, wie z. B. Wiederholungen,
korrigiert.
-
In
Kapitel 5.6 der oben genannten Spezifikation werden Einzelheiten über Isochron-Übertragungen
beschrieben. In einer Universeller-Serieller-Bus-Umgebung liefert
eine Isochron-Übertragung einen
garantierten Zugriff zu Universeller-Serieller-Bus-Bandbreite mit
gebundener Latenzzeit und einer garantierten konstanten Datenrate
durch die Röhre,
so lange Daten an die Röhre
geliefert werden. In dem Fall eines Lieferausfalls aufgrund eines
Fehlers wird jedoch keine Wiederholung des Versuchs, die Daten zu
liefern, ausgeführt.
Ferner ist gemäß der USB-Spezifikation
eine isochrone Röhre
eine Stromröhre
und daher immer unidirektional. Eine Endpunktbeschreibung identifiziert,
ob der Kommunikationsfluss einer bestimmten isochronen Röhre in den oder
aus dem Host ist. Falls ein Gerät
bidirektionalen Isochron-Kommunikationsfluss erfordert, müssen zwei
isochrone Röhren
verwendet werden, eine in jede Richtung. Fehler bei Isochron-Übertragungen können durch
Verwenden einer CRC-Prüfung
erfasst werden.
-
Ein
universeller serieller Bus umfasst ferner Unterbrechungsübertragungen,
die entworfen sind, um Geräte
zu unterstützen,
die kleine Mengen von Daten selten senden oder empfangen müssen, aber mit
begrenzter Benutzungsdauer. Die Unterbrechungsübertragung umfasst garantierte
maximale Benutzungsdauern und umfasst ferner eine Wiederholung der Übertragungsversuche
bei der nächsten Periode
im Fall eines gelegentlichen Lieferausfalls aufgrund eines Fehlers
auf dem Bus.
-
Daher
gibt es einen Bedarf in der Technik an einer externen Schnittstelle
für einen
Computer, die eine hohe Datenrate aufweist und die mit dem verwendeten
Betriebssystem kompatibel ist.
-
Zusammenfassung
der Erfindung
-
Diese
und andere Aufgaben, Merkmale und technische Vorteile werden erreicht
durch ein System und Verfahren, das es ermöglicht, dass ein externes Gerät mit einer
Schnittstelle auf einem Host-Computer verbunden wird, der gut unterstützt wird
durch das systemeigene Betriebssystem des Host-Computers und eine hohe garantierte
Kommunikationsbandbreite aufweist, und dass Fehlerkorrekturinformationen direkt
in einen Datenstrom zwischen dem Host-Computer und dem Gerät aufgenommen
werden, während
solche Daten gesendet werden. Die Einführung der Fehlerkorrekturinformation
in den Datenstrom kann erreicht werden durch Verwenden von Hardware,
Firmware, Software oder einer Kombination von zwei oder mehr dieser
drei Lösungsansätze. Solche
Fehlerkorrekturinformationen können
entweder durch den Hostcomputer oder das externe Gerät eingeführt werden.
Ein Datenzuverlässigkeitsmechanismus
kann Datenneuübertragung
gemäß festgelegten Protokollen
implementieren, wie z. B. TCP, Kermit oder Zmodem, oder kann Fehlerkorrektur
gemäß dem Reed-Solomon-Algorithmus
implementieren. Die aufgelisteten Datenneuübertragung- und Fehlerkorrekturprotokolle
sind in der Technik gut bekannt und werden daher hier nicht näher erörtert.
-
Bei
einem bevorzugten Ausführungsbeispiel wird
der universelle serielle Bus (USB) auf einem Host-Computer für Kommunikation
mit dem externen Gerät
verwendet. Der USB ist im Allgemeinen gut unterstützt auf
Personalcomputern und hat im Allgemeinen eine hohe Kommunikationsbandbreite.
Vorzugsweise wird der Isochron-Übertragungsmodus
verwendet für
Datenübertragung
zwischen dem USB und dem externen Gerät und ermöglicht daher eine hohe, im
Voraus zugewiesene Bandbreite, die reserviert wird für das externe
Gerät,
dessen Datenempfangsanforderungen latenz-intolerant sind.
-
Hierin
werden Daten, die für
Fehlerkorrekturzwecke verwendet werden, als „Fehlerkorrekturdaten" oder „Fehlerkorrekturcode" bezeichnet, und Daten,
die für
Lieferung an und Verwendung durch das externe Gerät beabsichtigt
sind, werden als „Gerätdaten" oder „echte
Daten" bezeichnet.
Ein allgemeiner Begriff für
einen Mechanismus zum Sicherstellen einer genauen Datenlieferung
ist „Datenzuverlässigkeitsmechanismus". Vorzugsweise verwendet
der Datenzuverlässigkeitsmechanismus
Fehlerkorrekturdaten zum Bestimmen, ob Daten in einem Paket oder
einem anderen Datenbehälter
fehlerhaft sind. Auf die Bestimmung hin, dass fehlerhafte Daten vorliegen,
kann der Datenzuverlässigkeitsmechanismus
entweder die Daten an dem Gerät
korrigieren, das die fehlerhaften Daten empfangen hat, ohne Neuübertragung,
oder eine Neuübertragung
der Daten von dem Sendegerät
anfordern. Die Korrektur von Daten an einem Empfangsgerät (im Gegensatz zu
der Neuübertragung
des betreffenden Pakets) wird hierin als „Vor-Ort"-Datenkorrektur bezeichnet. Vorzugsweise
können
sowohl der Host-Computer als auch die verschiedenen möglichen
externen Geräte Sender
und Empfänger
von Daten sein, und beide können
Datenzuverlässigkeitsmechanismen
implementieren. Hierin bezieht sich eine „latenz-intolerante" Operation oder Gerät auf eine Bedingung, bei der eine
Verzögerung
bei der Datenübertragung
im Wesentli chen einen Prozess oder den Betrieb eines Geräts behindert,
und wo eine solche Behinderung nicht notwendiger Weise behoben wird
durch Liefern der angeforderten Daten zu einem späteren Zeitpunkt.
-
Bei
einem bevorzugten Ausführungsbeispiel werden
Fehlerkorrekturdaten vorzugsweise in den Datenstrom eingeführt, während die
Daten den Host-Computer für
das verbundene externe Gerät verlassen.
Die Fehlerkorrekturdaten können
auch in einen Datenstrom eingeführt
werden, während
ein solcher Datenstrom das externe Gerät in Richtung Host-Computer verlässt. Vorzugsweise
haben sowohl der Host-Computer
als auch das externe Gerät die
Fähigkeit,
die Fehlerkorrekturdaten zu verarbeiten, die zusammen mit den Gerätdaten empfangen werden,
um zu bestimmen, ob ein übertragenes
Datenpaket verfälschte
Daten enthält.
Abhängig
von der Art des verwendeten Fehlerkorrekturschemas oder Datenzuverlässigkeitsmechanismus
kann eine Antwort auf eine Bestimmung, dass übertragene Daten Fehler enthalten,
umfassen, dass das Empfangsgerät
(entweder der Host-Computer oder ein externes Gerät) anfordern,
dass das Datenpaket, das die fehlerhaften Daten enthält, neu übertragen
wird. Alternativ kann das Datenempfangsgerät die fehlerhaften Daten auf
das Empfangen der Daten hin korrigieren, wo das Fehlerkorrekturschema
ausreichend Informationen für
eine solche Korrektur liefert.
-
Es
ist ein Vorteil der vorliegenden Erfindung, dass eine externe Schnittstelle
vorgesehen ist, die eine hohe Datenrate aufweist und gut unterstützt wird durch
das systemeigene Betriebssystem des Host-Computers.
-
Es
ist ein weiterer Vorteil der vorliegenden Erfindung, dass ausreichend
Bandbreite im Voraus zugewiesen werden kann für eine Kommunikation mit einem
externen Gerät,
das die externe Schnittstelle mit hoher Datenrate verwendet.
-
Es
ist noch ein weiterer Vorteil der vorliegenden Erfindung, dass Fehlerkorrektur
implementiert werden kann für
hohe Datenratenkommunikation auf der externen Schnittstelle.
-
Das
Vorhergehende hat die Merkmale und technischen Vorteile der vorliegenden
Erfindung eher grob dargestellt, damit die folgende detaillierte
Beschreibung der Erfindung besser verständlich ist. Zusätzliche
Merkmale und Vorteile der Erfindung, die Gegenstand der Ansprüche der
Erfindung bilden, werden hierin nachfolgend beschrieben. Für Fachleute
auf diesem Gebiet sollte klar sein, dass die Konzeption und das
spezifische offenbarte Ausführungsbeispiel
ohne weiteres als eine Basis zum Modifizieren oder Entwerfen anderer
Strukturen zum Ausführen
der gleichen Zwecke der vorliegenden Erfindung verwendet werden
kann.
-
Kurze Beschreibung
der Zeichnungen
-
Für ein vollständigeres
Verständnis
der vorliegenden Erfindung und die Vorteile derselben wird nachfolgend
auf die folgende Beschreibung in Verbindung mit den beiliegenden
Zeichnungen Bezug genommen.
-
1 zeigt
einen Host-Computer, der mit einem externen Gerät gemäß einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung verbunden ist;
-
2 zeigt
alternative Übertragungsmodi die
verfügbar
sind für
eine Kommunikation zwischen einem Host-Computer und einem externen Gerät gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung;
-
3 zeigt
ein Datenpaket, das von einem Host-Computer zu einem externen Gerät übertragen wird,
gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung; und
-
4 stellt
ein Computersystem 400 dar, das angepasst ist, um ein bevorzugtes
Ausführungsbeispiel
der vorliegenden Erfindung zu verwenden.
-
Detaillierte
Beschreibung
-
1 zeigt
einen Host-Computer 101, der mit einem externen Gerät 104 gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung verbunden ist. Bei einem bevorzugten
Ausführungsbeispiel
ist der Host-Computer 101 mit einem externen Gerät 104 verbunden,
das die Verbindung 103 verwendet, wobei diese Verbindung
mit dem Computertor 102 und dem Externes-Gerät-Tor 105 verbunden
ist.
-
Bei
einem bevorzugten Ausführungsbeispiel ist
der Host-Computer
ein Personalcomputer, auf dem das WindowsTM-Betriebssystem läuft. Alternativ könnte der
Host-Computer ein Apple-iMacTM-Computer
sein, oder eine andere Marke eines Personalcomputers, auf dem ein
geeignetes Betriebssystem läuft, und
alle solche Variationen liegen innerhalb des Schutzbereichs der
Erfindung. Das Tor 102 auf dem Host-Computer ist vorzugsweise mit einem
universellen seriellen Bus oder USB verbunden. Der USB wird ausgewählt, weil
er vorzugsweise eine hohe Ebene an Softwareunterstützung auf
dem systemeigenen Betriebsystem des Host-Computers hat, und minimiert
dadurch vorzugsweise den Bedarf an spezialisierter Software zum
Implementieren einer Verbindung mit dem externen Gerät 104.
Nachdem die Daten aus dem Tor 102 auf dem Host-Computer 101 übertragen
wurden, werden die Daten vorzugsweise entlang der Verbindung 103 zu
dem Tor 105 auf dem externen Gerät 104 kommuniziert.
-
Bei
einem bevorzugten Ausführungsbeispiel hat
das externe Gerät 104 vorzugsweise
latenz-intolerante Datenübertra gungsanforderungen.
Anders ausgedrückt,
das Gerät 104 führt vorzugsweise
Operationen durch, für
die eine Verzögerung
bei der Übertragung
von Daten zu dem Gerät 104 bewirken kann,
dass eine fortlaufende Operation unterbrochen wird, anstatt lediglich
verzögert.
Ein Beispiel eines solchen latenz-intoleranten Geräts ist ein
Compact-Disk-Re-Writeable-(CD-RW-)Gerät, das allgemein
von einer ununterbrochenen Datenübertragung bei
einer einheitlichen Datenübertragungsrate
oder Bandbreite abhängt.
Wo die Datenübertragung
zu einem CD-RW-Gerät
unterbrochen wird, die auf eine CD schreibt oder eine solche „brennt", kann das Brennen
fehlschlagen, was erfordert, dass der Prozess neu begonnen wird.
-
Andere
Typen von externem Gerät
können
in Verbindung mit der vorliegenden Erfindung verwendet werden. Geräte, die
latenz-intolerante Operationen durchführen, profitieren jedoch mehr
von der vorliegenden Erfindung als diejenigen, die latenz-tolerante
Operationen durchführen.
-
2 zeigt
alternative Übertragungsmodi, die
für eine
Kommunikation zwischen einem Host-Computer und einem externen Gerät gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung verfügbar
sind. Ein Datenstrom, der unter Verwendung des Isochron-Übertragungsmodus übertragen
wird, ist durch das Element 201 dargestellt. Ein Datenstrom,
der durch den Bulk-Übertragungsmodus übertragen
wird, ist durch das Element 202 dargestellt. Eine Kommunikationssteuerung
zum Entscheiden zwischen den beiden Übertragungsmodi ist durch das
Element 203 dargestellt.
-
Allgemein
hat der Isochron-Übertragungsmodus
den Vorteil einer hohen vorab zugewiesenen Bandbreite und stellt
dadurch sicher, dass Daten, die unter Verwendung des Isochron-Übertragungsmodus
kommuniziert werden, zuverlässig
bei einer vorbestimmten Rate geliefert werden können. Ein Nachteil des Isochron-Übertragungsmodus
ist, dass derselbe im Allgemeinen keinen eingebauten Datenzuverlässigkeitsme chanismus
hat, entweder in der Form einer Datenneuübertragung oder Fehlerkorrektur
an einem Empfangsgerät.
Der Bulk-Übertragungsmodus,
dessen Datenübertragung
durch das Element 202 dargestellt ist, weist im Allgemeinen eine
eingebaute Fehlererfassung auf, die es ermöglicht, dass Datenpakete mit
fehlerhaften Bits durch Neuübertragen
des gesamten Pakets korrigiert werden.
-
Das
Reed-Solomon-Fehlerkorrekturschema ist ein mögliches Fehlerkorrekturschema,
das bei der vorliegenden Erfindung verwendet werden kann. Die Erfindung
ist jedoch nicht auf die Verwendung eines bestimmten Fehlerkorrekturschemas
begrenzt. Das Reed-Solomon-Fehlerkorrekturschema ist in der Technik
gut bekannt und wird hierin daher nicht näher erörtert.
-
Allgemein
wählt eine
Kommunikationssteuerung 203 oder ein anderer Entscheidungsmechanismus
Datenpakete für
die Übertragung
aus dem Tor 102 aus, entweder von dem Isochron-Datenstrom 201 oder
dem Bulk-Datenstrom 202. Alle Daten, die darauf warten,
auf dem Isochron-Datenstrom 201 gesendet zu werden, erhalten
vorzugsweise Priorität gegenüber den
Daten auf dem Bulk-Datenstrom 202, und bewirken dadurch
im Allgemeinen, dass Übertragungsdaten
auf dem Bulk-Datenstrom 202 warten, bis der Isochron-Datenstrom 201 vollständig bedient ist.
-
Bei
einem bevorzugten Ausführungsbeispiel wird
der Isochron-Datenstrom verwendet für die Kommunikation mit dem
externen Gerät 104.
Um eine Genauigkeit der Daten sicherzustellen, die an das externe
Gerät 104 gesendet
werden, sind vorzugsweise Fehlerkorrekturcodes in den Datenpaketen
in dem Isochron-Datenstrom 201 eingebaut, während diese
Pakete das Tor 102 für
eine Übertragung entlang
der Verbindung 103 zu dem externen Gerät 104 umfassen. Vorzugsweise
fügt der
Fehlerkorrekturcodegenerator 204 Fehlerkorrekturdaten 205 in den
Isochron-Datenstrom 201 ein, während die isochronen Stromdatenpakete
das Tor 102 des Host-Computers 101 verlassen (1).
-
Das
externe Gerät 104 besitzt
vorzugsweise einen Mechanismus zum Einführen von Fehlerkorrekturdaten 205 in
Datenpakete, die von dem externen Gerät 104 zu dem Host-Computer 101 übertragen
werden, was der Operation des Fehlerkorrekturcodegenerators 204 entspricht,
die oben erörtert
wurde. Der Fehlerkorrekturcodegenerator 204 und ein ähnlicher
Mechanismus in dem externen Gerät 104 können in
Hardware, Firmware, Software oder einer Kombination von zwei oder
mehr dieser drei Lösungsansätze in dem
Host-Computer 101 und dem externen Gerät 104 implementiert
sein.
-
Alternativ
könnte
der Fehlerkorrekturcodegenerator 204 in einem getrennten
Rechengerät
in Kommunikation mit dem Host-Computer 101 implementiert
sein, und alle solchen Alternativen liegen innerhalb des Schutzbereichs
der vorliegenden Erfindung. Das Durchführen von Fehlerkorrektur bei
der vorliegenden Erfindung kann das Implementieren eines ähnlichen
Protokolls wie festgelegten Datenübertragungsprotokollen umfassen,
die eingebaute Datenübertragungen
aufweisen, wie z. B. TCP, Kermit und Zmodem oder „Vor-Ort"-Fehlerkorrektur, wie z. B. diejenige,
die durch den Reed-Solomon-Algorithmus
geliefert wird.
-
3 zeigt
ein Datenpaket, das von dem Host-Computer 101 zu dem externen
Gerät 104 übertragen
wird, gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung. Das Datenpaket 301 umfasst
vorzugsweise sowohl Gerätdaten
für die
eventuelle Verwendung durch das Gerät 104 oder den Host-Computer 101,
und Fehlerkorrekturdaten 205 zum Prüfen der Genauigkeit der Gerätdaten optional
zum Korrigieren der Gerätdaten.
Vorzugsweise umfassen Datenpakete, die von dem externen Gerät 104 zu
dem Host-Computer 101 übertragen
werden, ebenfalls sowohl Gerätdaten
als auch Fehlerkorrekturdaten für
den Empfang und die angemessene Verarbeitung an dem Host-Computer 101.
-
Bei
einem bevorzugten Ausführungsbeispiel umfasst
jedes Datenpaket 301 einen vorausgewählten Satz von Gerätdatenbits,
dargestellt in 3 durch eine Sequenz von kleinen „d's", gefolgt von einer vorausgewählten Anzahl
von Fehlerkorrekturdatenbits, dargestellt in 3 durch
eine Sequenz von kleinen „e's". Die Sequenz von Daten- und Fehlerkorrekturbits
in dem Paket 301 ist eine bevorzugte Sequenz für Datenpakete,
die von dem Host-Computer 101 zu dem externen Gerät 104 übertragen
werden. Für
ein Datenpaket, das von dem externen Gerät 104 zu dem Host-Computer 101 übertragen
wird, würden die
Datenbits vorzugsweise auf ähnliche
Weise die Fehlerkorrekturbits führen.
In dem Fall der Kommunikation von dem Gerät 104 zu dem Host 101 würden die
Datenbits, die in 3 durch „d's" dargestellt sind,
vorzugsweise so dargestellt, dass sie sich links von den Fehlerkorrekturbits
befinden, die in 3 durch „e's" dargestellt
sind.
-
Alternativ
können
jedoch Fehlerkorrekturdatenbits irgendwo innerhalb der Datenpakete 301 angeordnet
sein, und die relative Anzahl von Gerätdatenbits und Fehlerkorrekturdatenbits
können
variieren, abhängig
von der Art des Computers 101, des externen Geräts 104 und
der ausgeführten
Anwendungen, und alle solchen Variationen sind in dem Schutzbereich
der vorliegenden Erfindung enthalten.
-
Bei
einem bevorzugten Ausführungsbeispiel kommen
die Gerätdaten
von dem Isochron-Datenstrom 201 (2), und
die Fehlerkorrekturdaten werden durch den Fehlerkorrekturcodegenerator 204 (2)
in das Datenpaket 301 eingefügt, bevor das Datenpaket den
Host-Computer 101 verlässt.
Vorzugsweise wird ein Fehlerkorrekturschema verwirklicht, bei dem
der Host-Computer 101 und das externe Gerät 104 zusammenarbeiten,
um sicherzustellen, dass die fehlerhaften Daten erfasst und korrigiert werden.
Ein bevorzugtes Fehlerkorrekturschema würde es dem Gerät 104 ermöglichen,
fehlerhafte Daten zu erfassen, die in dem Tor 105 des Geräts 104 ankommen,
und die Fehlerkorrekturdaten zu verwenden, um sowohl Fehler in den
Daten zu erfassen und vorzugsweise solche Fehler in dem übertragenen
Datenpaket zu korrigieren, genau an dem externen Gerät 104 oder „Vor-Ort". Bei einem alternativen Ausführungsbeispiel
zeigt das externe Gerät
auf die Erfassung eines Fehlers hin die Existenz einer Fehlerbedingung
an und fordert die Neuübertragung
des Datenpakets mit fehlerhaften Daten an.
-
Bei
einem bevorzugten Ausführungsbeispiel tritt
Datenkommunikation bidirektional auf zwischen dem Host-Computer 101 und
dem externen Gerät 104.
Gleichartig dazu werden die Prozesse des Einfügens von Fehlerkorrekturdaten
in Datenpakete vor der Übertragung,
den Versuch, fehlerhafte Daten auf der Basis der Fehlerkorrekturdaten
zu korrigieren und/oder der Anforderung der Neuübertragung von Daten basierend
auf einer Fehlerbestimmung in den übertragenen Daten vorzugsweise
sowohl durch den Host-Computer 101 als auch das externe
Gerät 104 durchgeführt.
-
4 stellt
das Computersystem 400 dar, das angepasst ist, um die vorliegende
Erfindung zu verwenden. Eine zentrale Verarbeitungseinheit (CPU) 401 ist
mit dem Systembus 402 gekoppelt. Die CPU 401 kann
jede Universal-CPU sein, wie z. B. eine HP PA-8200. Die vorliegende
Erfindung ist jedoch nicht beschränkt durch die Architektur der
CPU 401, so lange die CPU 401 die erfindungsgemäßen Operationen,
wie sie hierin beschrieben sind, unterstützt. Der Bus 402 ist
mit dem Direktzugriffspeicher (RAM) 403 gekoppelt, der
SRAM, DRAM oder SDRAM sein kann. Der ROM 404 ist auch mit
dem Bus 402 gekoppelt, der PROM, EPROM oder EEPROM sein
kann. Der RAM 403 und ROM 404 halten Benutzer-
und Systemdaten und Programme, wie es in der Technik gut bekannt
ist. Der Systembus 402 ist vorzugsweise ebenfalls mit dem
universellen seriellen Bus 415 gekoppelt, über den
Universeller-Serieller-Busadapter 414. Ein oder mehrere
Tore können mit
dem universellen seriellen Bus 415 verbunden sein.
-
Der
USB-Adapter 414 kann ein getrenntes Hardwarestück sein,
das in den Systembus eingesteckt wird. Alternativ kann der USB-Adapter 414 in Chipsätze auf
der Computer-Hauptplatine integriert sein.
-
Der
Systembus 402 ist auch mit einem Eingabe-/Ausgabe-(I/O-)Adapter 405,
einer Kommunikationsadapterkarte 411, einem Benutzerschnittstellenadapter 408 und
einem Anzeigeadapter 409 gekoppelt. Der I/O-Adapter 405 verbindet
Speichergeräte 406,
wie z. B. eine oder mehrere von Festplatte, CD-Laufwerk, Diskettenlaufwerk,
Bandlaufwerk, mit dem Computersystem. Der Kommunikationsadapter 411 ist
angepasst, um das Computersystem 400 mit einem Netzwerk 412 zu
koppeln, das ein oder mehreres von lokalem (LAN), weitem (WAN) Ethernet- oder
Internet-Netzwerk sein kann. Der Benutzerschnittstellenadapter 408 koppelt
Benutzereingabegeräte,
wie z. B. Tastatur 413 und Zeigevorrichtung 407 mit
dem Computersystem 400. Der Anzeigeadapter 409 wird
durch die CPU 401 getrieben, um die Anzeige auf der Anzeigevorrichtung 410 zu
steuern.