-
Die
Erfindung bezieht sich allgemein auf Computerbusse und insbesondere
auf Verfahren und Vorrichtungen zum Erweitern eines Busses, um zumindest
eine Hilfsfunktion zu unterstützen,
und auf ein Filter zur Erweiterung eines Busses.
-
Peripheriegeräte sind
im allgemeinen vorgesehen, um die Funktionalität eines Personalcomputers (PC)
zu erweitern. Beispielsweise kann ein DVD/RW (Digital Video Disk/Re-Writable)-Laufwerk für Videospeicherung
und -wiedergewinnung unter Verwendung des PCs verwendet werden.
Einige Peripheriegeräte
sind nützlicher,
wenn sie mit einer Hilfsfunktion verbunden sind. Beispielsweise
kann ein DVD+RW-Laufwerk mit einer Videoerfassungs- und Komprimierungsfunktion
zum Erzeugen einer DVD aus analogen Audio- und Videoeingangssignalen verbunden
sein. Das heißt,
die Videoerfassungsfunktion kann analoge Audio- und Videoeingangssignale
(z. B. von einem Videocamcorder) zu digitalen Ausgangssignalen umwandeln.
Die Komprimierungsfunktion kann die digitalen Ausgangssignale komprimieren
(z. B. unter Verwendung der MPEG (Moving pictures Experts Group
= Standardisierungsgremium für
Bewegtbildkompression) -Dateikomponierungsstandards der Internationalen
Normungsorganisation (ISO = International Organization for Standardization)
zum Schreiben der DVD unter Verwendung des DVD+RW-Laufwerks. Andere
Funktionen können
DVD-Softwareverfassung
umfassen (z. B. Hinzufügen
eines Navigationsmenüs,
Bearbeiten von Video oder Audio), usw.
-
Ein
PC ist typischerweise mit nur einer begrenzten Anzahl von Bussen
und Verbindungen zu demselben versehen. Beispielsweise unterstützt ein ATA-Bus
(ATA = Advanced Technologe Attachment) ein Maximum von zwei Einzelfunktion-ATA- Geräten für jedes
Hoststeuerungstor. Wo zwei ATA-Geräte auf einem einzigen ATA Bus
vorliegen, ist es erforderlich, daß eines der ATA-Geräte als ein
Master-Gerät konfiguriert
ist, und es erforderlich ist, daß das andere Gerät als ein
Slave-Gerät
konfiguriert ist. Ferner ist ein PC typischerweise nur mit zwei
ATA-Hoststeuerungen versehen, und begrenzt somit die Anzahl von Geräten, die
auf demselben unterstützt
werden, auf vier. Außerdem
wurde der ATA-Bus ursprünglich
zum Verbinden von Festplattenlaufwerken mit PCs entwickelt. Der
ATA-Bus hat sich seither zu der universalen Schnittstelle zum Unterstützen von
Speichergeräten entwickelt,
und wird nun allgemein verwendet, um CD-ROM-Laufwerke, DVD-Laufwerke, usw. zu
verbinden. Der ATA-Bus ist jedoch nach wie vor typischerweise auf
das Unterstützen
von Speichergeräten
(z. B. dem DVD+RV-Laufwerk) begrenzt. Die Hilfsfunktion muß nicht
notwendigerweise eine Speicherung sein (z. B. die oben erörterte Videoerfassungs-
und Komprimierungsfunktion). Daher werden diese Hilfsfunktionen
nicht durch den ATA-Bus unterstützt
und müssen
statt dessen über
einen getrennten Bus mit dem PC verbunden werden.
-
Zur
Veranschaulichung, die Hilfsfunktion kann durch eine PCI Erweiterungsplatine
oder -karte (PCI = Peripheral Component Interconnect) geliefert werden.
Das Installieren sowohl eines Peripheriegeräts (z. B. des DVD+RW-Laufwerks)
als auch einer getrennten PCI-Erweiterungskarte (z. B. der Videoerfassungs-
und Komprimierungsfunktion) kann für den typischen PC-Benutzer
eine mühsame
Aufgabe sein. Daher kann es sein, daß einige Benutzer davon abgehalten
werden, ein Produkt zu kaufen, das eine solche Installation erfordert.
Außerdem
weist ein PC typischerweise nur eine begrenzte Anzahl (z. B. 3 oder
4) von PCI-Verbindern oder -Schlitzen auf. Diese können bereits
durch andere PCI-Erweiterungskarten
(z. B. einen Graphikbeschleuniger, eine Soundkarte, eine Modemkarte,
usw.) besetzt sein. Gleichartig dazu reduziert das Installieren
der Hilfsfunktion als eine PCI-Erweiterungskarte die Verfügbarkeit
von PCI-Verbindern
für später installierte PCI-Erweiterungskarten.
-
Aus
der
DE 692 27 731
T2 ist eine Buserweiterung für das Anschließen eines
Hilfsbusses an einen einzelnen Port auf einem Hauptbus bekannt, durch
welche mehrere Host-Rechner auf dem Hauptbus mit mehreren Peripherie-Geräten auf
dem Hilfsbus verbunden werden können.
Der Hauptbus und der Hilfsbus haben übereinstimmende Busstrukturen.
Die Buserweiterung besitzt eine eindeutige Adresse auf jedem Hauptbus
und jedem Hilfsbus. Es findet innerhalb der Gesamtbusstruktur eine
eindeutige Adresszuordnung statt. Eine Umformatierung von Signalen
ist nicht erforderlich, da der Hauptbus und der Hilfsbus übereinstimmende
Strukturen haben.
-
Aus
der
EP 0 723 232 A1 sind
ein Steuerverfahren und eine Steuervorrichtung zum Unterstützen von
Hartplattenlaufwerken oder CD-ROM-Laufwerken durch PCMCIA-Schnittstellen
bekannt. Eine PCMCIA-Steuerung
40 ist mit einem Bus des
Computersystems verbunden, um PCMCIA-Schnittstellenfunktionen zu
implementieren. Eine ATA-Steuerung ist mit dem ISA-Bus verbunden,
um ATA-Schnittstellenfunktionen zu implementieren. Eine Multiplexerschaltung
verbindet sowohl die PCMCIA-Steuerung
als auch die ATA-Steuerung, um entsprechende Schnittstellenfunktionen
unter der Steuerung eines Auswahlsignals zu implementieren.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren, eine
Vorrichtung und ein Filter zum Erweitern eines Busses mit verbesserten
Charakteristika zu schaffen, um zumindest eine Hilfsfunktion zu
unterstützen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1, eine Vorrichtung
gemäß Anspruch 5
und ein Filter gemäß Anspruch
16 gelöst.
-
Eine
Vorrichtung zum Erweitern eines Busses, um zumindest eine Hilfsfunktion
zu unterstützen, ist
vorgesehen. Ein Filter zum Abfangen und Leiten eines Signals, das über den Bus
ausgegeben wird, kann vorgesehen sein. Das Filter kann eine Steuerlogik
zum Lesen des abgefangenen Signals und zum Bestimmen eines Bestimmungsorts
für dasselbe
umfassen. Das Filter kann außerdem
einen Multiplexer umfassen, der der Steuerlogik zum Neuausgeben des
abgefangenen Signals zu dem Bestimmungsort wirksam zugeordnet ist.
Der Multiplexer gibt das abgefangene Signal zu einer der zumindest
einen Hilfsfunktionen neu aus, wenn das abgefangene Signal als funktionsspezifisch
bezeichnet ist. Alternativ gibt der Multiplexer das abgefangene
Signal über
den Bus neu zu einem Peripheriegerät aus, wenn das abgefangene
Signal als gerätespezifisch
bezeichnet ist.
-
Ein
Verfahren zum Erweitern eines Busses, um zumindest eine Hilfsfunktion
zu unterstützen, kann
folgende Schritte umfassen: Abfangen eines Signals, das über den
Bus ausgegeben wird, Neuausgeben des abgefangenen Signals zu einer
der zumindest einen Hilfsfunktionen, wenn das abgefangene Signal
als funktionsspezifisch bezeichnet ist, und Neuausgeben des abgefangenen
Signals über
den Bus zu dem Peripheriegerät,
wenn das Signal als gerätespezifisch
bezeichnet ist.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
beiliegende Zeichnungen näher
erläutert. Es
zeigen:
-
1 ein
Diagramm auf hoher Ebene, das ein herkömmliches Ausführungsbeispiel
zum Verbinden sowohl eines Peripheriegeräts als auch einer Hilfsfunktion
mit einem Host darstellt;
-
2 ein
Diagramm auf hoher Ebene, das ein Ausführungsbeispiel zum Erweitern
eines Busses zum Bilden einer Schnittstelle zwischen einem Host und
einem Peripheriegerät
darstellt, um zumindest eine Hilfsfunktion zu unterstützen;
-
3 ein
Diagramm auf hoher Ebene, das ein weiteres Ausführungsbeispiel zum Erweitern
eines Busses zum Bilden einer Schnittstelle zwischen einem Host
und einem Peripheriegerät
darstellt, um zumindest eine Hilfsfunktion zu unterstützen;
-
4 ein
Diagramm auf hoher Ebene, das noch ein weiteres Ausführungsbeispiel
zum Erweitern eines Busses zum Bilden einer Schnittstelle zwischen
einem Host und einem Peripheriegerät darstellt, um zumindest eine
Hilfsfunktion zu unterstützen;
-
5 ein
Diagramm auf hoher Ebene, das ein Ausführungsbeispiel eines Filters
zum Erweitern eines Busses zum Bilden einer Schnittstelle zwischen
einem Host und einem Peripheriegerät darstellt, um zumindest eine
Hilfsfunktion zu unterstützen;
-
6 ein
beispielhaftes Signal, das über
den Bus ausgegeben wird;
-
7 einen
beispielhaften Operationscode des in 6 gezeigten
beispielhaften Signals;
-
8 ein
Prozeßflußdiagramm,
das die Interaktion verschiedener Komponenten der Buserweiterungsvor richtung
und des Buserweiterungsverfahrens darstellt; und
-
9 ein
Flußdiagramm,
das die Schritte eines Ausführungsbeispiels
eines Verfahrens zum Erweitern eines Busses zum Bilden einer Schnittstelle zwischen
einem Host und einem Peripheriegerät darstellt, um zumindest eine
Hilfsfunktion zu unterstützen.
-
Eine
Vorrichtung 10 (z. B. 2) zum Erweitern
eines Busses (130) zum Bilden einer Schnittstelle zwischen
einem Host 120 und einem Peripheriegerät 100, um zumindest
eine Hilfsfunktion 110 zu unterstützen, ist hierin gezeigt und
beschrieben. Kurz gesagt, die ATA-Spezifikation ist als ein ANSI-Standard
definiert (ANSI = American National Standards Institute = amerikanisches
Institut für
Normung). Die IDE-Steuerung
(IDE = integrated drive electronics = integrierte Treiberelektronik)
für den
Bus 130 unterstützt
zwei Peripheriegeräte
pro Kanal. Die beiden Peripheriegeräte können als ein Master-Gerät (z. B. 100)
und ein Slave-Gerät
(z. B. 105) konfiguriert sein. Die verbesserte IDE(E-IDE
= enhanced IDE)-Steuerung unterstützt vier Geräte, indem
der ATA-Bus weiter
in einen primären
Bus 130 und einen sekundären Bus 135 unterteilt
wird. Die meisten PCs weisen einen primären ATA-Bus 130 und
einen sekundären ATA-Bus 135 als
Teil der Hauptplatine (nicht gezeigt) auf. Ein zusätzlicher
Dualkanal ATA-Hostadapter (nicht gezeigt) kann unter Verwendung
einer Erweiterungsplatine oder -karte zu den meisten PCs 125 hinzugefügt werden.
In jedem Fall unterstützt
jeder ATA-Bus 130, 135 nach wie vor nur ein Maximum
von zwei Einzelfunktionsperipheriegeräten 100, 105 (d.
h. das Master-Gerät und das
Slave-Gerät)
für jedes Hoststeuerungstor.
-
Die
Peripheriegeräte 100 können jedoch
mit Hilfsfunktionen 110 verbunden sein, um die Funktionalität des PC 125 weiter
zu verbessern. Ein DVD+RW-Laufwerk kann beispielsweise mit zugeordneten
Funktionen verbunden sein, wie z. B. Videoer fassungs- und Komprimierungsfunktionen
zum Erzeugen von DVDs. Obwohl diese Hilfsfunktionen 110 auf
einer Erweiterungsplatine oder -karte (z. B. PCI-Erweiterungsplatine 115 in 1)
enthalten sein können,
sind die Erweiterungsverbindungen in den PCs 125 typischerweise
ebenfalls in der Zahl begrenzt. Daher gibt es den Wunsch, den ATA-Bus
zu erweitern, um sowohl das Peripheriegerät als auch die Hilfsfunktion
zu unterstützen.
Die vorliegende Erfindung bezieht sich auf ein solches Verfahren
und eine solche Vorrichtung zum Erweitern eines Busses 130, 135,
zum Bilden einer Schnittstelle zwischen einem Host 120 und
einem Peripheriegerät 100,
um zumindest eine Hilfsfunktion 110 zu unterstützen.
-
Gemäß den Lehren
der vorliegenden Erfindung kann ein Filter 200 (5)
zum Erweitern eines Busses 130 zum Bilden einer Schnittstelle
zwischen einem Host 120 und einem Peripheriegerät 100 vorgesehen
sein, um zumindest eine Hilfsfunktion 110 zu unterstützen. Das
Filter 200 fängt
ein Signal 500 ab, das durch den Host 120 ausgegeben
wird, und leitet dasselbe über
den Bus 130. Das Signal 500 kann beispielsweise
in einem Puffer 510 gespeichert werden. Das Filter kann
eine Steuerlogik 520 zum Lesen des abgefangenen Signals 500 (z.
B. einen Operationscode 610 in 6) und zum
Bestimmen eines Bestimmungsortes für das abgefangene Signal 500 (5)
umfassen. Das heißt,
das Signal 500 (das z. B. einen funktionsspezifischen Operationscode 610 aufweist)
kann für
eine Hilfsfunktion 110 beabsichtigt sein. Alternativ kann
das Signal 500 (das z. B. einen gerätespezifischen Befehlscode 720 aufweist)
für das
Peripheriegerät 100 beabsichtigt
sein. Das Filter 200 kann fernereinen Multiplexer 530 umfassen,
der wirksam der Steuerlogik 520 zugeordnet ist. Der Multiplexer 530 kann
das abgefangene Signal 500 zu einer der Hilfsfunktionen 110 neu
ausgeben (z. B. wenn der Operationscode 610 funktionsspezifisch
ist). Alternativ kann der Multiplexer 530 das abgefangene
Signal 500 über
den Bus 130 zu dem Peripheriegerät 100 neu ausgeben
(z. B. wenn der Operationscode 610 gerätespezifisch ist).
-
Die
Vorrichtung 10 kann wie folgt betrieben werden. Ein Signal 500 (5),
das durch den Host 120 über
den Bus 130 ausgegeben wird, kann durch das Filter 200 abgefangen
werden. Das abgefangene Signal 500 kann zu einer der Hilfsfunktionen 110 neu ausgegeben
werden, wenn das Signal 500 als funktionsspezifisch bezeichnet
ist. Alternativ kann das abgefangene Signal 500 über den
Bus 131 neu zu dem Peripheriegerät 100 ausgegeben werden,
wenn das Signal 500 als gerätespezifisch bezeichnet ist.
Als solcher kann der Bus 130 zum Bilden einer Schnittstelle
zwischen einem Host 120 und einem Peripheriegerät 110 erweitert
werden, um zumindest eine Hilfsfunktion 110 zu unterstützen.
-
Obwohl
ein Bus sonst auf die Anzahl von Peripheriegeräten, die derselbe unterstützt, begrenzt sein
kann, kann der Bus 130, 135 gemäß der Erfindung
erweitert werden, um zumindest eine Hilfsfunktion 110 zu
unterstützen.
Die Hilfsfunktion(en) 110 können über die gleiche Verbindung
oder den gleichen Bus 130, 135 unabhängig zugreifbar
sein, während
dieselben an dem Host 120 als ein einziges gültiges Peripheriegerät 100 erscheinen.
Gemäß dieser Konfiguration
wird eine einzelne ATA-Verbindung (Master oder Slave), die typischerweise
nur ein einzelnes Funktionsgerät 100 unterstützt, erweitert,
um sowohl das einzelne Funktionsgerät 100 als auch eine
oder mehrere Hilfsfunktionen 110 zu unterstützen. Außerdem können die
Hardware sowohl für
die Hilfsfunktion 110 als auch für das Peripheriegerät 100 zusammen
gehäust
werden. Außerdem
erfordert die Erfindung nur eine einzige Busverbindung. Das integrierte
Gerät ist
somit kosteneffektiv in der Herstellung und leicht zu installieren.
-
Nachdem
die Vorrichtung 10 und die Verfahren zum Erweitern eines
Busses zum Bilden einer Schnittstelle zwischen einem Host und einem
Peripheriegerät
um zumindest eine Hilfsfunk tion unterstützen allgemein beschrieben
wurde, werden nun verschiedene Ausführungsbeispiele der Erfindung näher beschrieben.
-
1 ist
ein Diagramm auf hoher Ebene, das ein herkömmliches Ausführungsbeispiel
zum Verbinden sowohl eines Peripheriegeräts 100 als auch einer
Hilfsfunktion 110 mit einem Host 120 darstellt.
Bei diesem Ausführungsbeispiel
sind ein erstes Peripheriegerät 100 (z.
B. ein DVD+RW-Laufwerk) und optional ein zweites Peripheriegerät 105 (z.
B. ein Festplattenlaufwerk) mit dem Host 120 (z. B. einem
PC 125) über
einen ATA-Bus 130 (z. B. entweder als ein Master- oder
als ein Slave-Gerät)
verbunden. Da der ATA-Bus 130 nur die beiden Speichergeräte 100, 105 auf
demselben unterstützen
kann, wird die Hilfsfunktion 110 (z. B. die Videoerfassungs- und -komprimierungsfunktion)
getrennt auf einer Funktionskarte 115 (z. B. einer PCI-Erweiterungsplatine) geliefert,
und über
einen PCI-Bus 140 mit dem Host verbunden. Gemäß diesem
Ausführungsbeispiel muß der Benutzer
sowohl das Peripheriegerät 100 als
auch die Hilfsfunktion 110 (z. B. die Funktionskarte 115)
durch Verbinden von beiden mit dem PC 125 getrennt installieren.
Außerdem
ist dadurch ein PCI-Verbinder
auf dem PC 125 besetzt, oder es kann sein, daß bereits
andere PCI-Erweiterungsplatinen (z. B. ein Graphikbeschleuniger,
eine Soundkarte, usw.) die PCI-Verbinder oder Schlitze auf dem PC 125 besetzen.
-
2 ist
ein Diagramm auf hoher Ebene, das ein Ausführungsbeispiel einer Vorrichtung 10 der Erfindung
zum Erweitern eines Busses 130, 135 zum Bilden
einer Schnittstelle zwischen einem Host 120 und einem Peripheriegerät 100, 105 darstellt,
um zumindest eine Hilfsfunktion 110 zu unterstützen. Ein Befehlstreiber 250 an
dem Host 120 kennzeichnet ein Signal (z. B. 500 in 5)
als funktionsspezifisch oder gerätespezifisch,
wie es nachfolgend näher
beschrieben ist. Das Signal 500 wird zu einer ATA-Schnittstelle 275 geleitet
und über
den Bus 130 ausgegeben.
-
Vorzugsweise
hält sich
der Bus 130 an den Standard für einen ATA-Anhang (ATA = Advanced Technology
Attachment) und Variationen desselben (ATA-1, ATA-2, ATA-3, usw.),
einschließlich,
aber nicht beschränkt
auf den ATA-Paketschnittstellen (ATAPI)-Standard
und Variationen desselben (ATA/ATAPI-4, ATA/ATAPI-5, usw.). Als
solches kann jedes Standardperipheriegerät, das sich nach dem ATA-Standard richtet,
und von verschiedenen Herstellern geliefert wird, gemäß den Lehren
der Erfindung verwendet werden. Es ist jedoch klar, daß andere
geeignete Busse 130 als innerhalb des Schutzbereiches der
Erfindung angesehen werden, wie z. B. ein Kleincomputer-Schnittstellen(SCSI
= small computer system interface)-Bus.
-
Auf
dem Bus 130 kann ein Filter 200 vorgesehen sein,
um das Signal 500, das durch den Host 120 ausgegeben
wird, abzufangen und über
den Bus 130 zu seinem Bestimmungsort zu leiten. Das heißt, das
abgefangene Signal 500 kann durch das Filter 200 gelesen
werden, und der Bestimmungsort des Signals 500 kann bestimmt
werden. Das Signal 500 kann als gerätespezifisch bezeichnet sein
(z. B. auf der Basis des Operationscodes 610, der in 6 gezeigt
ist), und somit ist der Bestimmungsort des Signals 500 das
Peripheriegerät 100.
Entsprechend kann das abgefangene Signal 500 über den
ATA-Bus 131 zu dem Peripheriegerät 100 neu ausgegeben werden,
wenn das Signal 500 so bezeichnet ist. Alternativ kann
das Signal 500 als funktionsspezifisch bezeichnet sein
(z. B. auf der Basis des Operationscodes 610 in 6)
und somit ist der Bestimmungsort des Signals 500 die Hilfsfunktion 110.
Dementsprechend kann das abgefangene Signal 500 über einen
Hilfsbus 260 (z. B. einen Mikrosteuerungsbus) an die Hilfsfunktion 110 neu
ausgegeben werden, wenn das Signal 500 so bezeichnet ist.
-
Obwohl
die Erfindung hier so dargestellt ist, wie dieselbe unter Verwendung
eines PC (z. B. 125) implementiert werden kann, ist es
klar, daß die
Erfindung nicht auf die Verwendung mit PCs beschränkt ist.
Der Host 120 kann ein Desktop- PC, ein Laptop, eine Netzwerkworkstation,
ein Netzwerkserver, ein einzeln stehendes Gerät oder jeder andere geeignete
Host sein, der jetzt bekannt ist oder später entwickelt wird, ist aber
nicht darauf beschränkt.
Obwohl die Erfindung hierin so dargestellt ist, daß sie unter Verwendung
eines Mikrosteuerungsbusses implementiert sein kann, ist außerdem klar,
daß die
Hilfsfunktion 110 über
das Filter 200 mit dem ATA-Bus 130 über jeden
geeigneten Hilfsdatenbus 260 verbunden sein kann, wie z.
B. einen IDE-Bus (IDE = Integrated Drive Electronics), einen Parallelbus,
einen Speicherbus, usw.
-
Obwohl
die Erfindung hierin so dargestellt ist, wie sie für ein DVD+RW-Laufwerk
implementiert sein kann, ist außerdem
klar, daß das
Peripheriegerät 100 jedes
geeignete ATA-Gerät
sein kann. Das Peripheriegerät 100 kann
beispielsweise ein Massenspeichergerät, ein optisches Gerät, ein Bandlaufwerk,
ein Ziplaufwerk usw. sein. Gleichartig dazu, obwohl die Erfindung
hierin so dargestellt ist, wie sie für Videoerfassungs- und Komprimierungsfunktionen
implementiert ist, kann die Hilfsfunktion 110 jede geeignete Funktion
sein. Beispielsweise kann die Hilfsfunktion 110 jedes geeignete
Datengerät
sein, wie z. B. eine Meßsonde,
eine Audioquelle, ein Informationserfassungsgerät, ein Speichergerät, usw.
In der Tat kann die Hilfsfunktion 110 selbst ein ATA/ATAPI-Gerät sein,
wobei der Hilfsbus 260 ebenfalls vorzugsweise ein ATA-Bus
ist. Als solches können
zwei oder mehr ATA-Geräte mit einer
einzelnen ATA/ATAPI-Verbindung verbunden sein (z. B. beide mit der
Masterverbindung oder beide mit der Slaveverbindung). Bei solch
einem Ausführungsbeispiel
sind die ATA-Geräte
vorzugsweise konfiguriert, um nicht miteinander in Konflikt zu kommen.
-
Es
ist ferner klar, daß das
Peripheriegerät
als ein Master-Gerät 100 konfiguriert
sein kann (wie es in 2, 3 und 4 gezeigt
ist), oder das Peripheriegerät
als ein Slave-Gerät 105 konfiguriert
sein kann. Als solches kann das Filter 200 so konfiguriert sein,
um Signale 500 abzu fangen, die an das Master-Gerät 100 oder
an das Slave-Gerät 105 ausgegeben
werden. In der Tat können
ein oder mehrere Filter 200 vorgesehen sein, um Signale 500 abzufangen,
die an das Master-Gerät 100 und
an das Slave-Gerät 105 ausgegeben
werden. Ferner kann jede Anzahl von Hilfsfunktionen 110 gemäß den Lehren der
vorliegenden Erfindung geliefert werden, wie es ferner nachfolgend
mit Bezugnahme auf 3 und 4 dargestellt
ist.
-
3 ist
ein Diagramm auf hoher Ebene, das ein weiteres Ausführungsbeispiel
zum Erweitern eines Busses 130 zum Bilden einer Schnittstelle
zwischen einem Host 120 und einem Peripheriegerät 100 darstellt,
um zumindest eine Hilfsfunktion 110 zu unterstützen. Erneut
kann der Befehlstreiber 250 den Bestimmungsort für das Signal 500 bezeichnen (5).
Das Signal 500 kann zu der ATA-Schnittstelle 275 weitergeleitet
werden, wo es über
den Bus 130 ausgegeben wird. Erneut hält sich der Bus 130 vorzugsweise
an den ATA-Standard
und Variationen desselben, einschließlich, aber nicht beschränkt auf, den
ATAPI-Standard und Variationen desselben.
-
Bei
dem in 3 gezeigten Ausführungsbeispiel kann eine Mehrzahl
von Filtern 200–203 vorgesehen
sein, vorzugsweise in Reihe entlang dem Hilfsbus 260, um
das Signal 500 abzufangen und zu dem Peripheriegerät 100 oder
zu einer der Mehrzahl von Hilfsfunktionen 110–113 zu
leiten. Bei diesem Ausführungsbeispiel
kann das Signal 500 durch das erste Filter 200 abgefangen
werden (d. h. Filter 1). Das Signal 500 ist vorzugsweise
mit dem beabsichtigten Bestimmungsort bezeichnet. Das heißt, das
Signal 500 kann als gerätespezifisch
bezeichnet werden, was anzeigt, daß das Signal 500 für das Peripheriegerät 100 beabsichtigt
ist. Alternativ kann das Signal 500 als funktionsspezifisch
für eine
der Hilfsfunktionen 110–113 bezeichnet sein.
-
Wiederum,
wenn das Signal 500 als gerätespezifisch bezeichnet ist,
kann das abgefangene Signal 500 über den ATA-Bus 130 neu
zu dem Peripheriegerät 100 ausgegeben
werden. Alternativ kann das abgefangene Signal 500 über den
Hilfsbus 260 (z. B. einen Mikrokontrollerbus) zu einer
der Hilfsfunktionen 110–113 neu ausgegeben
werden, wenn das Signal 500 so bezeichnet ist. Gemäß diesem Ausführungsbeispiel
fängt ein
zweites Filter 201 (z. B. Filter 2) das Signal 500,
das über
den Hilfsbus 260 neu ausgegeben wird, und das zweite Filter 201 bestimmt
einen Bestimmungsort für
das Signal 500. Wo das Signal 500 als funktionsspezifisch
für eine
zweite Hilfsfunktion 201 (z. B. Hilfsfunktion 2) bezeichnet
ist, wird das Signal 500 zu der zweiten Hilfsfunktion 111 neu
ausgegeben. Alternativ, wo das Signal 500 als funktionsspezifisch
für eine
andere Hilfsfunktion (z. B. 110, 112 und 113)
bezeichnet ist, wird das Signal 500 über den Hilfsbus 260 zu
dem nächsten
Filter 202 (z. B. Filter 3) neu ausgegeben, usw., bis das
Signal 500 an einem Bestimmungsort (d. h. einer Hilfsfunktion 110–113)
empfangen wird.
-
Bei
dem in 4 gezeigten Ausführungsbeispiel kann eine Reihe
von Filtern 200–203 entlang dem
ATA-Bus 130 in Reihe vorgesehen sein, um das Signal 500 (von 5)
abzufangen und zu dem Peripheriegerät 100 oder zu einer
der Mehrzahl von Hilfsfunktionen 110–113 zu leiten. Wiederum
ist das Signal 500 vorzugsweise als gerätespezifisch (d. h. für das Peripheriegerät 100)
oder funktionsspezifisch (d. h. für eine der Hilfsfunktionen 110–113)
bezeichnet.
-
Das
abgefangene Signal kann über
den Hilfsbus 260 (z. B. einen Mikrokontrollerbus) zu einer Hilfsfunktion 110 neu
ausgegeben werden, wenn das Signal 500 als funktionsspezifisch
für eine
spezielle Hilfsfunktion 110 (z. B. Hilfsfunktion 1) bezeichnet
ist. Andernfalls kann das abgefangene Signal 500 über den
ATA-Bus 131 neu zu dem Peripheriegerät 100 ausgegeben werden.
Gemäß diesem
Ausführungsbeispiel
kann das Signal, das über
den ATA-Bus 131 neu ausgegeben wird, durch ein zweites
Filter 201 (z. B. Filter 2) abgefangen werden. Wo das Signal 500 als
funktionsspezifisch für
eine zweite Hilfsfunktion 111 (z. B. Hilfsfunktion 2) bezeichnet
ist, wird das Signal 500 zu der zweiten Hilfsfunktion 111 neu
ausgegeben. Andernfalls wird das Signal 500 erneut über den
ATA-Bus 131 neu ausgegeben, usw., bis das Signal 500 an
einem Bestimmungsort empfangen wird (d. h. einer Hilfsfunktion 110–113 oder
einem Peripheriegerät 100).
-
Es
ist klar, daß das
Signal 500 standardmäßig zu einer
Hilfsfunktion (z. B. 110) oder einem Peripheriegerät 100 neu
ausgegeben werden kann. Wo das Signal 500 beispielsweise
nicht als funktionsspezifisch für
eine oder mehrere Hilfsfunktionen bezeichnet ist, die mit dem Filter 200 verbunden
sind, kann das Signal 500 durch das Filter 200 neu
ausgegeben werden, ohne eine weitere Bestimmung durch das Filter
bezüglich
des letztendlichen Bestimmungsorts des Signals 500.
-
Es
ist ferner klar, daß die
in 3 und 4 gezeigten Ausführungsbeispiele
lediglich beispielhaft sind für
Hardwarearchitektur für
eine Mehrzahl von Filtern. Die Filter 200–203 müssen jedoch
nicht als getrennte und eigene Hardware vorgesehen sein. Ein oder
mehrere einzelne Filter 200 können eine Mehrzahl von Funktionen 110–113 unterstützen. Beispielsweise
kann eine oder mehrere der Hardwarekomponenten (z. B. Steuerlogik 520,
Multiplexer 530 in 5) der Mehrzahl
von Filtern 200–203 als
eine einzelne Hardwareschaltung kombiniert werden. Oder ein einzelner
Multiplexer 530 kann beispielsweise mit unterschiedlichen
Ausgängen
zu den verschiedenen Funktionen 110–113 versehen sein. Gleichartig
dazu müssen
die Filter 200–203 nicht
miteinander in Reihe geschaltet sein, und können parallel geschaltet sein,
oder eine Kombination, wenn dieselben als einzelne Hardwareschaltung
implementiert sind. In der Tat müssen
die Filter 200–203 nicht durch
den Hilfsbus 140 oder den ATA-Bus 131 verbunden
sein, und können
statt dessen durch eine andere geeignete Schaltungsanordnung verbunden sein.
-
5 ist
ein Diagramm auf hoher Ebene, das ein Ausführungsbeispiel eines Filters 200 zum Erweitern
eines Busses zum Bilden einer Schnittstelle zwischen einem Host 120 und
einem Peripheriegerät 100 darstellt,
um zumindest eine Hilfsfunktion 110 zu unterstützen. Wie
es oben erklärt
ist, kann der Host 100 ein Signal 500 über den
Bus 130 ausgeben. Das Filter 200 fängt das
Signal 500 ab, und speichert das Signal 500 vorzugsweise
in einem Puffer 510. Das Filter 200 umfaßt außerdem vorzugsweise
eine Steuerlogik 520, die dem Puffer 510 zum Lesen
des Signals 500 und zum Bestimmen eines Bestimmungsorts
für das
Signal 500 wirksam zugeordnet ist. Wo das Signal 500 beispielsweise
als gerätespezifisch
bezeichnet ist (z. B. durch den Operationscode 610 in 6),
gibt ein Multiplexer 530 das Signal 500 über den
Bus 131 neu zu dem Peripheriegerät 100 aus. Wo das
Signal 500 als funktionsspezifisch bezeichnet ist (z. B.
durch den Operationscode 610 in 6), gibt
der Multiplexer 530 das Signal 500 neu der Hilfsfunktion 110 aus
(z. B. über
den Hilfsbus 260).
-
Vorzugsweise
umfaßt
das Filter 200 außerdem
einen Übersetzer 540,
der dem Multiplexer 530 wirksam zugeordnet ist. Als solches,
wenn das Signal 500 durch den Multiplexer 530 neu
zu der Hilfsfunktion 110 ausgegeben wird, kann das Signal 500 durch den Übersetzer 540 für den Hilfsbus 260 formatiert werden.
Sobald es formatiert ist, wird das Signal 500 über den
Hilfsbus 260 neu zu der Hilfsfunktion 110 ausgegeben
werden.
-
Das
in 5 gezeigte Ausführungsbeispiel des Filters 200,
das mit Bezugnahme darauf beschrieben ist, ist lediglich darstellend
für die
funktionalen Aspekte desselben, und soll den Schutzbereich der Erfindung
nicht darauf begrenzen. Es ist klar, daß das Filter 200 jede
geeignete Form annehmen kann. Das Filter 200 kann beispielsweise
einen Feldprogrammierbares-Gate-Array(FPGA = Field-Programmable
Gate Array)-Logikchip oder ein anderes Gate-Array, eine anwendungsspezifische
integrierte Schaltung (ASIC = Application Specific Integrated Circuit),
eine Mikrosteuerung, Zustandvernetzungshardware, usw. umfassen.
Die Hardwarespezifikationen für
das Filter 200 können
von Entwurfsüberlegungen
abhängen,
wie z. B. Herstellungskosten, Größe, Herstellungsvolumen,
Signallatenzanforderungen, und anderen.
-
Außerdem ist
klar, daß jedes
der mehreren Filter 200–203 (3 und 4)
auch eine ähnliche Architektur
aufweisen kann. Alternativ können
ein oder mehrere Multiplexer 530 als Teil eines einzelnen Filters 200 vorgesehen
sein, um eine Mehrzahl von Hilfsfunktionen 110–113 zu
unterstützen.
Gleichartig dazu können
andere Komponenten von einem oder mehreren der Filter 200–203 integriert
sein, beispielsweise als eine einzelne Schaltungsplatine. Andere
Ausführungsbeispiele
des Filters 200 und der Mehrzahl der Filter 200–203 werden
ebenfalls in Betracht gezogen.
-
Ein
Rückführungssignal 550,
das durch das Peripheriegerät 100 über den
ATA-Bus für
den Host 120 ausgegeben wird, ist in 5 ebenfalls
dargestellt. Das Rückführungssignal 550 kann
durch das Filter 200 abgefangen werden, und kann vorzugsweise
in dem Puffer 510 gespeichert werden. Die Steuerlogik 520 kann
bestimmen, ob das Rückführungssignal 550 für den Bus 130 formatiert
ist. Das Rückführungssignal 550 kann
beispielsweise bereits für
den ATA-Bus formatiert sein, wo das Rückführungssignal 550 durch
das Peripheriegerät 100 ausgegeben
wird. Als solches gibt das Filter 200 das Rückführungssignal 550 von
dem Peripheriegerät 100 neu über den Bus 130 zu
dem Host 120 aus.
-
Ein
Rückführungssignal 555,
das durch die Hilfsfunktion 110 über den Hilfsbus 260 für den Host 120 ausgegeben
wird, ist ebenfalls in 5 dargestellt. Das Rückführungssignal 555 kann
durch das Filter 200 abgefangen werden und kann vorzugsweise
in dem Puffer 510 gespeichert werden. Die Steuerlogik 520 kann
bestimmen, ob das Rückführungssignal 555 für den ATA-Bus 130 formatiert
ist. Das Rückführungssignal 555 kann
statt dessen für
den Hilfsbus 260 formatiert sein, beispielsweise wo das Rückführungssignal 555 durch
die Hilfsfunktion 110 ausgegeben wird. Als solches ist
das Rückführungssignal 555 durch
den Übersetzer 540 für den ATA-Bus 130 formatiert.
Sobald es formatiert ist, gibt das Filter 200 das Rückführungssignal 555 von
der Hilfsfunktion über
den ATA-Bus 130 zu dem Host 120 neu aus.
-
Es
ist klar, daß gemäß anderen
Ausführungsbeispielen
das Rückführungssignal 550 nicht durch
das Filter 200 abgefangen oder gepuffert werden muß. Bei solch
einem Ausführungsbeispiel
kann das Rückführungssignal 550 direkt über den
Bus 130 zu dem Host 120 ausgegeben werden. Gleichartig dazu,
wo die Translations- oder Formatierungsfunktion für das Rückführungssignal 555,
das über
den Bus 130 ausgegeben werden soll, nicht benötigt wird, kann
das Rückführungssignal 555 ebenfalls über den Bus 130 direkt
zu dem Host 120 ausgegeben werden, und muß nicht
durch das Filter 200 abgefangen oder gepuffert werden.
Beispielsweise kann es sein, daß die
Translationsfunktion nicht benötigt
wird, wo der Bus 130 und der Hilfsbus 260 auf
der gleichen Bustechnologie basieren (z. B. wo beide ATA-Busse sind).
-
Wenn
Daten von der Hilfsfunktion 110 angefordert wurden, wird
es vorzugsweise nur der Hilfsfunktion 110 erlaubt, Daten
zurück
zu dem Host 120 zu übertragen
(z. B. über
das Rückführungssignal 555),
um diese Anforderung zu erfüllen.
Gleichartig dazu, wenn Daten von dem Peripheriegerät 100 angefordert
wurden, wird es nur dem Peripheriegerät 100 erlaubt, Daten
zurück
zu dem Host 120 zu übertragen
(z. B. über
das Rückführungssignal 550),
um diese Anforderung zu erfüllen.
Vorzugsweise können das
Peripheriegerät 100 und
die Hilfsfunktion 110 eine Unterbrechung an den Host 120 ausgeben,
die einen Abschluß einer
Ausgabe anzeigt. Bis eine Aufgabe abgeschlossen ist, gibt das Filter 200 keine Rückführungssignale 550, 555 von
anderen Hilfsfunktionen (z. B. 201, 202) oder
von dem Peripheriegerät 100 neu
aus, je nach Fall.
-
6 stellt
ein beispielhaftes Signal 500 dar. Das Signal 500 ist
vorzugsweise ein Befehlsdeskriptorblock (CDB = command descriptor
block), wie er durch das SCSI SPG-2 Dokument und das SCSI-Architekturmodel
(SAM-2), und Variationen dazu definiert ist. Das Signal 500 kann
einen Operationscode 610, reservierte/Dienstbytes 611, 616,
logische Blockadreßbytes 612 bis 615, Übertragungslängen- und/oder
Parameterlistenlängenbytes 617, 618 und ein
Steuerbyte 619 umfassen.
-
Der
Operationscode 610 des CDB ist in 7 näher gezeigt.
Der Operationscode 610 kann acht Bits umfassen (jedes Bit
wird im allgemein als 700 bezeichnet). Das Feld, das die
Bits „7”, „6” und „5” umfaßt, kann
als der Gruppencodewert 710 bezeichnet werden. Das Feld,
das die verbleibenden Bits umfaßt,
kann als der Befehlscode 720 bezeichnet werden. Wenn die
Bits „6” und „7” des Gruppencodewerts 710 beide
auf „1” gesetzt
sind, ist der Befehlscode 720 verkäuferspezifisch (d. h. der Befehlscode 720 ist
funktionsspezifisch). Wenn der Gruppencodewert 710 beispielsweise „110” oder „111” ist, kann
ein funktionsspezifischer Befehlscode 720 für eine Videoerfassungs-
und -komprimierungsfunktion Befehle umfassen, wie zum Beispiel „Plag”, „Pause”, „Stop”, und alle
anderen Befehle, die notwendig sind, um die Hilfsfunktion 110 zu
steuern. Wenn die Bits „6” und „7” des Gruppencodewerts 710 nicht
beide auf „1” gesetzt
sind, ist der Befehlscode 720 gerätespezifisch. Wenn der Gruppencodewert 710 beispielsweise „010”, „000”, „100”, „011”, „001” oder „101” ist, kann
der gerätespezifische
Befehlscode 720 für
ein DVD+RW-Laufwerk Befehle umfassen, wie zum Beispiel „Lese DVD
Strukturbefehl”, „Lese TOC/PMA/ATIP-Befehl” und alle
anderen Anweisungen, die notwendig sind, um das Peripheriegerät 100 zu
steuern.
-
Es
ist klar, daß das
mit Bezugnahme auf 6 und 7 gezeigte
und beschriebene beispielhafte Signal 500 lediglich ein
Signal darstellen soll, das durch einen Host über einen ATA-Bus ausgegeben
wird. Es ist außerdem
klar, daß ein
Rückführungssignal 550,
das durch das Peripheriegerät 100 ausgegeben
wird, ähnlich
dargestellt sein kann. Gleichartig dazu kann ein Rückführungssignal 555, das
durch eine der Hilfsfunktionen 200 ausgegeben wird, ebenfalls ähnlich dargestellt
sein, obwohl es für den
Hilfsbus 260 formatiert sein kann.
-
8 ist
ein Prozeßflußdiagramm,
das ein Ausführungsbeispiel
der Interaktion verschiedener Komponenten der Buserweiterungsvorrichtung
und des Buserweiterungsverfahrens darstellt, wie es in einem Microsoft
WINDOWS® Betriebssystemumgebung
verwendet werden kann. Eine Geräteanwendung 800 (z.
B. computerlesbarer Programmcode) kann sich zum Bilden einer Schnittstelle
mit dem Peripheriegerät 100 auf
dem Host 120 befinden. Gleichartig dazu kann sich eine
Hilfsanwendung 810 (z. B. ein computerlesbarer Programmcode)
ebenfalls auf dem Host 120 befinden, zum Bilden einer Schnittstelle
mit der Hilfsfunktion 110. Entweder die Geräteanwendung 800 oder
die Hilfsanwendung 810 können einen Befehl ausgeben,
der zu dem Befehlstreiber 250 weitergeleitet wird. Beispielsweise
kann ein Benutzer einen Befehl ausgeben (z. B. über eine Benutzerschnittstelle),
um Daten auf ein DVD-Laufwerk zu schreiben, oder um ein Menü für eine DVD
zu bearbeiten. Wenn der Befehl von der Geräteanwendung 800 für das Peripheriegerät 100 empfangen
wird, erstellt die Geräteschnittstelle 820 einen
CDB und kennzeichnet denselben als gerätespezifisch. Beispielsweise
kann die Treiberschnittstelle 820 die Bits „6” und „7” des Gruppencodes 710 auf „Null” setzen, und
demselben einen Gerätebefehlscode 720 zuordnen.
Wo der Befehl von der Hilfsanwendung 810 für die Hilfsfunktion 110 empfangen
wird, erstellt der Hilfsfunktionstreiber 825 einen CDB
und kennzeichnet denselben als funktionsspezifisch. Der Hilfsfunktionstreiber 825 kann
beispielsweise die Bits „6” und „7” des Gruppencodewerts 710 auf „Eins” setzen, und
demselben einen käuferdefinierten
Befehlscode 720 zuordnen. Der Befehlstreiber 250 kann
außerdem
ein Eingabe/Ausgabe(I/O = In put/Output)-Teilsystem 830 zum
Handhaben aller Steuerbefehle umfassen, beispielsweise von Microsoft
WINDOWS® Explorer.
Das I/O-Teilsystem 830 kann außerdem den Zugriff auf den
Bus 130 synchronisieren. Das Signal 500 kann dann über den
ATA-Hardwaretreiber 840 (z. B. einen ATA-Bus Niedrigpegellogiktreiber) über den
Bus 130 zu dem Peripheriegerät 100 oder der Hilfsfunktion 110 ausgegeben
werden, wie es oben erörtert
ist.
-
Es
ist klar, daß das
Prozeßflußdiagramm
von 8 die Erfindung nicht darauf beschränken soll. Statt
dessen ist das Ausführungsbeispiel
von 8 als beispielhafte Implementierung der Buserweiterungsvorrichtung
und des Buserweiterungsverfahren für die Verwendung mit einem
Microsoft WINDOWS® Betriebssystem vorgesehen.
Modifikationen und Variationen, sowohl für das Microsoft WINDOWS® Betriebssystem
als auch für
andere Betriebssysteme, werden ebenfalls als innerhalb des Schutzbereichs der
Erfindung angesehen.
-
Außerdem,
wie es in 8 gezeigt ist, sind das Peripheriegerät 100 und
die Hilfsfunktion 110 vorzugsweise zusammen als ein integriertes
Gerät 850 gehäust. Das
heißt,
die Hardware sowohl für
die Hilfsfunktion 110 als auch das Peripheriegerät 100 können mit
einer einzelnen ATA-Verbindung zum Verbinden des Peripheriegeräts 100 und
der Hilfsfunktion 110 mit dem Host 120 gehäust sein.
Es ist klar, daß das
integrierte Gerät 850 auch
als ein externes Gerät
gehäust
werden kann, obwohl das integrierte Gerät 850 vorzugsweise
für die
Installation für ein
internes oder teilweise internes Gerät für den Host 120 gehäust wird.
-
9 ist
ein Flußdiagramm,
das die Schritte eines Ausführungsbeispiels
eines Verfahrens zum Erweitern eines Busses 130, 135 zum
Bilden einer Schnittstelle zwischen einem Host 120 und
einem Peripheriegerät 100 darstellt,
um zumindest eine Hilfsfunktion 110 zu unterstützen. In
Schritt 900 kann das Signal 500 abgefangen werden.
Das Signal 500 kann beispielsweise über den Bus 130 über den
Host 120 ausgegeben werden, und durch das Filter 200 (z. B.
durch den Puffer 510) abgefangen werden. In Schritt 910 wird
eine Bestimmung bezüglich
des Bestimmungsorts des Signals 500 durchgeführt (z.
B. durch die Steuerlogik 520). Der Operationscode 610 kann
das Signal 500 beispielsweise als gerätespezifisch bezeichnen, und
der Bestimmungsort für
das Signal 500 ist somit das Peripheriegerät 100.
Als solches kann das Signal 500 in Schritt 920 über den ATA-Bus 131 neu
zu dem Peripheriegerät 100 ausgegeben
werden. Alternativ kann der Operationscode 610 das Signal 500 als
funktionsspezifisch bezeichnen, und der Bestimmungsort für das Signal 500 ist somit
eine Hilfsfunktion 110. Als solches kann das Signal 500 in
Schritt 930 neu zu der Hilfsfunktion 110 ausgegeben
werden (z. B. über
den Hilfsbus 260).
-
Es
ist klar, daß die
Schritte, die mit Bezug auf 9 gezeigt
und beschrieben sind, lediglich darstellend sind für Ausführungsbeispiele
eines Verfahrens der Erfindung, und den Schutzbereich der Erfindung
nicht darauf beschränken
sollen. Beispielsweise können
andere Schritte das Abfangen des Signals 500 umfassen,
nachdem es in Schritt 920 zu einer der Hilfsfunktion neu
ausgegeben wurde, und das Leiten derselben zu einer Vielzahl von
anderen Hilfsfunktionen 110–113, wie es oben
mit Bezugnahme auf 3 und 4 beschrieben
ist. Als weiteres Beispiel kann das Signal 500 in Schritt 920 anfangs zu
einer der Mehrzahl von Hilfsfunktionen 110–113 geleitet
werden. Andere Ausführungsbeispiele
werden ebenfalls als innerhalb des Schutzbereichs der Erfindung
angesehen.