-
GEBIET DER
ERFINDUNG
-
Die vorliegende Erfindung betrifft
das Steuern eines Datenflusses zwischen zusammengeschalteten bzw.
durchgeschalteten Vorrichtungen, insbesondere Videovorrichtungen,
die durch einen Speicher zusammengeschaltet bzw. durchgeschaltet sind.
-
HINTERGRUND
-
Analoge Bewegtbild-Signale wie z.
B. jene, die in herkömmlichen
Fernsehgeräten,
MAZ-Geräten bzw.
Magnetbildaufzeichnungsanlagen oder Videobandrekordern und andere
analoge Videosysteme verwendet werden, sind zeitlich kontinuierliche
und synchrone Signale, die verschiedene Elemente in einem Videosystem
benötigen,
die zu synchronisieren sind, um benutzt zu werden. Mit anderen Worten, analoge
Bewegtbild-Signale haben eine vorbestimmte und feste Rate, auf die
alle Elemente in dem Videosystem synchronisiert werden. Jedes Element
in dem Videosystem ist mit der Annahme entworfen bzw. entwickelt,
dass es eine konstante Rate für
eine Eingabe und Ausgabe von Bewegtbild-Information geben wird.
-
In letzter Zeit wurde es ermöglicht,
digitale Bewegtbilddaten in Datendateien auf einem Computer zu speichern.
Es gibt verschiedene bzw. mehrere Verfahren, um derartige Bewegtbilddaten
wiederzugeben. Ein Verfahren wird "Pushing" bzw. "Drücken" oder "Schieben" oder "Strombildung" bzw. "Echtzeitübertragung" der Bewegtbilddaten
genannt. Die Strombildung basiert auf einer Annahme, und zwar dass
ein System eine mittlere Datenflussrate bereitstellen kann, die
dieselbe ist, wie die äußerste bzw. End-Datenflussrate,
die benötigt
wird, um eine zeitlich kon tinuierliche Ausgabe von analogen Bewegtbild-Bildern
zu einem Betrachter sicherzustellen. Eine ausreichende Pufferung
wird verwendet, um erwartete Wartezeiten im Datentransfer zwischen
den Elementen zu berücksichtigen.
In einigen Fällen kann
es erforderlich sein, dass sowohl die zeitliche als auch räumliche
Auflösung
der Bewegtbild-Information reduziert wird. Derartige Systeme sind
typischerweise entworfen bzw. entwickelt mit der Annahme, dass ein
Transfer von Audio- und Videodaten von einer Quelle durch mehrere
Verarbeitungselemente zu seinem Endziel weder verzögert noch
gestoppt werden kann.
-
Wenn ein Allzweck-Digitalcomputer
verwendet wird, um Bewegtbild-Information zu verarbeiten, kann eine
konstante Flussrate im Allgemeinen nicht aufrecht erhalten werden.
Es kann Variationen der Flussraten wegen verschiedener Wartezeiten
in dem Computersystem geben, und zwar wegen z. B. Disk- bzw. Platten- oder Speicherlesewartezeit,
Unterbrechungen von anderen Verarbeitungselementen in dem Computer
usw. Zusätzlich
ist in einigen Systemen, wie z. B. Editiersystemen, die Fähigkeit
zu stoppen und eine Wiedergabe neu zu starten, wünschenswert. Um derartige Probleme
zu überwinden, ist
ein Verfahren, das verwendet wurde, eine ausreichende Pufferung
in Kombination mit einer Fähigkeit zum
Datentransfer, der zu blockieren ist, bereitzustellen, wie z. B.
in dem US-Patent Nr. 5,045,940 (Peters et al.) gezeigt ist. Diese
Prinzipien werden in einem Computernetzwerk, wie in der veröffentlichten
europäischen
Patentanmeldung Nr. 0 674 414 A2 beschrieben ist, verwendet. Eine
Erweiterung dieser Kombination zu einer Spezialeffektverarbeitung
wird in den PCT-Veröffentlichungen
WO94/24815 und WO95/26100 offenbart. In diesem System gibt ein Datendekomprimierer
Daten in einen ersten Puffer aus, von welchem sie zu einem zweiten
Puffer transferiert werden, der mit einem Spezialeffektprozessor verbunden
ist. Der erste Puffer zeigt an, ob gültige Daten zur Verfügung stehen.
Zusätzlich
zeigt der Spezialeffektprozessor einer Steuerung an, die mit einem
Dekomprimierer verbunden ist, ob er Daten empfangen kann, die auf
einem Speicher in dem zweiten Puffer basieren.
-
Ein Nachteil dieser Systeme ist,
dass sie eine signifikante Menge des Pufferns benutzen, um Verzögerungen
im Datentransfer zwischen den Elementen aufzunehmen. Zusätzlich sind
sie im Allgemeinen vorgesehen bzw. entwickelt, um mit einem einzelnen
vorbestimmten Medienformat verwendet zu werden. Derartige Datenverarbeitungsvorrichtungen übermitteln
im Allgemeinen ferner Daten über eine
Zusammenschaltung, und zwar unter Verwendung einer Direktverbindung über Signalleitungen oder
eines Transportmediums. Die Zusammenschaltungen zwischen einigen
Datenverarbeitungsvorrichtungen werden jedoch realisiert, indem
der Speicher zwischen den Vorrichtungen, die keine Signale bereitstellen,
die eine derartige Steuerung unterstützen, geteilt bzw. mitbenutzt
wird. Diese Vorrichtungen werden im Allgemeinen ferner mit einer
Annahme entwickelt bzw. entworfen, und zwar dass Daten sequenziell
empfangen werden, und zwar entsprechend einer vorbestimmten herkömmlichen
Reihenfolge.
-
Die WO99/52293 offenbart ein System
und ein Verfahren zum Übertragen
von Echtzeitmultimediadaten zwischen einer Zentralverarbeitungseinheit (CPU)
und einer Multimediavorrichtung über
ein Paar von Puffern, wobei die CPU Daten in einen ersten Puffer
zur Wiedergewinnung durch die Multimediavorrichtung speichert, und
wobei die CPU Daten, die in einem zweiten Puffer durch die Multimediavorrichtung
gespeichert sind, wieder gewinnt. Die Rate der Datenspeicherung
oder -wiedergewinnung durch die CPU wird mit Hilfe der Information
gesteuert, die durch die Puffer zu der CPU bereitgestellt bzw. zugeführt werden.
Die Rückkopplungsinformation
bzw. Feedback-Information zeigt an, wie viel Daten in jedem der
Puffer gespeichert werden bzw. sind, so dass die CPU entsprechend
mehr Daten speichern oder wieder gewinnen kann.
-
Ein Speicher wird wie ein Datenpuffer
verwendet und schaltet zwischen den Vorrichtungen, die Daten produzieren
und verbrauchen bzw. verarbeiten, und zwar in Kombination mit einem
Einzelsteuerkanal, der Flusssteuerungsinformation zwischen den Vorrichtungen
befördert,
die durch den Speicher verbunden sind. Der Steuerkanal schließt ein Signal, das
von einem Sender zu einem Empfänger
gesendet ist, ein, das bzw. der dem Empfänger die Erlaubnis zum Lesen
der Daten aus dem Speicher gewährt. Der
Empfänger
erwidert mit einem Signal, das anzeigt, dass Daten aus dem Speicher
gelesen wurden, wobei dem Sender erlaubt wird, Daten zu dem Speicher
bzw. in den Speicher zu schreiben.
-
Der Speicher kann durch den Sender
als ein zirkularer bzw. kreisförmiger
oder ringförmiger
Puffer betrachtet werden. Der Speicher kann ferner ein Doppelpuffer
oder irgendein anderer Speicher sein. Der Sender schreibt Daten
in den Speicher bei sequenziellen Orten bzw. aufeinander folgenden
Orten, bis das Ende des zirkularen bzw. kreisförmigen oder ringförmigen Puffers
erreicht wird. Dieses Ende des Puffers kann durch einen Begrenzungszeiger
repräsentiert
werden. Wenn Daten zu bzw. in den Speicher geschrieben werden, zeigt
der Sender den Umfang bzw. die Menge der gültigen Daten in dem Speicher in
bzw. mit einem Signal zu dem Empfänger über den Steuerkanal an. Der
Empfänger
empfängt
dieses Signal und liest Daten aus dem Speicher bis zu dem Umfang
und begrenzt durch den Umfang, der durch den Sender angezeigt wird.
Die Datenmenge, die durch den Empfänger aus dem Speicher gelesen wird,
wird durch den Empfänger
in einer Erwiderung an den Sender durch den Einzelsteuerkanal gesendet.
Der Sender kann den Speicher nicht überschreiben, bis der Empfänger anzeigt,
dass die Daten aus dem Speicher gelesen wurden. Die Erwiderung,
die durch den Sender empfangen wurde, wird verwendet, um einen Begrenzungszeiger
vorzuschieben bzw. zu erhöhen,
der das Ende des zirkularen bzw. kreisförmigen oder ringförmigen Puffers
anzeigt.
-
Dieser Steuerkanal reduziert die
angefallenen bzw. eingetretenen Transferwartezeiten, indem der Speicherzusammenhang
bzw. die Speicherkohärenz
in den Anwendungen mit ungleichmäßigen Raten
der entweder Sende- oder Empfangsdaten, die aus dem Verwenden eines
gesteuerten fluss-zusammengeschalteten Protokolls resultieren können, gehandhabt
bzw. gemanagt wird.
-
Der Steuerkanal kann ferner verwendet
werden, um Hilfsinformation bzw. zusätzliche Information zu übermitteln,
wie z. B. das Schalten oder andere Paketflusssteuerungsinformationen
zwischen zusammengeschalteten bzw. verbundenen Vorrichtungen. Diese
zusätzliche
Information bzw. Hilfsinformation kann die Startadresse oder einen
Datenpuffer und einen Speicher, die Puffergröße und -konfiguration, und
eine Adresse einer Zielvorrichtung für die Daten beinhalten.
-
Dementsprechend ist ein Aspekt ein
Apparat zum Übermitteln
von Daten zwischen einer ersten Vorrichtung und einer zweiten Vorrichtung.
Die erste Vorrichtung hat eine erste Speichersteuerung, die Daten
in einen Speicher schreibt. Die zweite Vorrichtung hat eine zweite
Speichersteuerung, die Daten aus dem Speicher liest. Ein Steuerkanal übermittelt von
der ersten Vorrichtung zur zweiten Vorrichtung eine Anzeige eines
Umfangs von Daten, die in den Speicher durch die erste Speichersteuerung
geschrieben wurde. Der Steuerkanal übermittelt ferner aus der zweiten
Vorrichtung zur ersten Vorrichtung eine Anzeige des Umfangs an Daten,
die aus dem Speicher durch die zweite Speichersteuerung gelesen
wurde. Die zweite Speichersteuerung liest Daten aus dem Speicher,
bis der Speicher leer ist, wie durch die angezeigte Menge an Daten,
die zu dem Speicher durch die erste Speichersteuerung geschrieben ist,
und den Umfang an Daten, die aus dem Speicher durch die zweite Speichersteuerung
gelesen wird, vorbestimmt ist. In einer Ausführungsform wird das Schreiben
von Daten zu dem Speicher durch die andere Vorrichtung ermöglicht,
außer
wenn der Speicher voll ist, was durch die andere Vorrichtung bestimmt
wird.
-
In einer Ausführungsform schließt eine
Vorrichtung zum Empfangen von Daten aus einer anderen Vorrichtung
durch einen Speicher eine Speichersteuerung zum Lesen von Daten
aus dem Speicher ein. Ein Steuerkanal empfängt aus der anderen Vorrichtung
eine Anzeige von einer Menge von Daten, die in dem Speicher geschrieben
wurden, und zwar durch die andere Vorrichtung, und übermittelt
zu der anderen Vorrichtung eine Anzeige des Umfangs an Daten, die
aus dem Speicher durch die Speichersteuerung gelesen wurden. Die
Speichersteuerung liest Daten aus dem Speicher, bis der Speicher
leer ist, wie durch den angezeigten Umfang an Daten, der zu dem
Speicher durch die andere Vorrichtung geschrieben ist, angezeigt
ist, und den Umfang an Daten, die aus dem Speicher durch die Speichersteuerung
gelesen wurde, bestimmt ist. In einer Ausführungsform wird das Schreiben
der Daten zu dem Speicher durch die andere Vorrichtung ermöglicht, außer wenn
der Speicher voll ist, was durch die andere Vorrichtung bestimmt
wird.
-
In einer anderen Ausführungsform
beinhaltet ein Verfahren für
eine Vorrichtung zur Steuerung eines Datenflusses, der aus einer
anderen Vorrichtung durch einen Speicher empfangen wird, das Empfangen
einer Anzeige eines Umfangs an Daten aus der anderen Vorrichtung,
die in den Speicher durch die andere Vorrichtung geschrieben wurden.
Die Vorrichtung bestimmt aus der angezeigten Menge an Daten, die
zu dem Speicher geschrieben sind, ob der Speicher leer ist, und
zwar durch die andere Vorrichtung, und einen Umfang an Daten, die
aus dem Speicher gelesen wurden. Das Lesen von Daten aus dem Speicher
wird ermöglicht,
außer
wenn der Speicher leer ist, was bestimmt wird. Eine Anzeige des
Umfangs an Daten, die aus dem Speicher gelesen werden, wird zu der
anderen Vorrichtung übermittelt.
In einer Ausführungsform
wird das Schreiben von Daten zu dem Speicher durch die andere Vorrichtung
ermöglicht,
außer
wenn der Speicher voll ist, was durch die andere Vorrichtung bestimmt
wird.
-
In einer anderen Ausführungsform
schließt eine
Vorrichtung zum Übermitteln
von Daten zu einer anderen Vorrichtung durch einen Speicher eine
Speichersteuerung ein, die Daten in den Speicher schreibt. Ein Steuerkanal übermittelt
zu der anderen Vorrichtung eine Anzeige eines Umfangs an Daten, die
in den Speicher geschrieben wurden, und zwar durch die Speichersteuerung
und empfängt
aus der anderen Vorrichtung eine Anzeige des gesamten Umfangs an
Daten, der aus dem Speicher durch die andere Vorrichtung gelesen
wurde. Die Speichersteuerung schreibt Daten zu dem Speicher, bis
der Speicher voll ist, wie durch den angezeigten Umfang an Daten,
die zu dem Speicher durch die Speichersteuerung geschrieben wurde,
und den Umfang an Daten, die aus dem Speicher durch die andere Vorrichtung
gelesen wurden, bestimmt wird.
-
In einer anderen Ausführungsform
beinhaltet ein Verfahren für
eine Vorrichtung zur Steuerung eines Flusses von Daten, die zu einer
anderen Vorrichtung durch einen Speicher übermittelt werden, das Empfangen
einer Anzeige eines Umfangs an Daten aus der anderen Vorrichtung,
die aus dem Speicher durch die andere Vorrichtung gelesen wurde.
Die Vorrichtung bestimmt, ob der Speicher voll ist, und zwar aus
dem angezeigten Umfang der Daten, die aus dem Speicher durch die
andere Vorrichtung gelesen wurden, und einem Umfang an Daten, die
zu dem Speicher geschrieben wurden. Das Schreiben der Daten zu dem
Speicher wird ermöglicht,
außer wenn
der Speicher voll ist, was bestimmt wird. Eine Anzeige des Umfangs
an Daten, die zu dem Speicher geschrieben wurden, wird zu der anderen
Vorrichtung übertragen
bzw. übermittelt.
-
In einer anderen Ausführungsform
ist eine dritte Vorrichtung mit einer dritten Speichersteuerung angeschlossen,
um Daten zu dem Speicher zu schreiben. Ein zweiter Steuerkanal wird
verwendet, um von der dritten Vorrichtung zu der zweiten Vorrichtung
eine Anzeige eines Umfangs an Daten zu übermitteln, die in den Speicher
geschrieben wurden, und zwar durch die dritte Speichersteuerung.
Der zweite Steuerkanal übermittelt
ferner aus der zweiten Vorrichtung zu der dritten Vorrichtung eine
Anzeige des Umfangs an Daten, die aus dem Speicher gelesen wurden,
und zwar durch die zweite Speichersteuerung. Die erste Vorrichtung
und die dritte Vorrichtung schreiben Daten zu separaten Abschnitten
des Speichers. Die zweite Speichersteuerung liest Daten aus dem
Speicher für
die dritte Vorrichtung, bis der Speicher für die dritte Vorrichtung leer
ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher
durch die dritte Speichersteuerung geschrieben wurden, und den Umfang
an Daten, die aus dem Speicher für
die dritte Vorrichtung durch die zweite Speichersteuerung gelesen
wurden, bestimmt ist. Die dritte Speichersteuerung schreibt Daten
zu dem Speicher, bis der Speicher für die dritte Vorrichtung voll
ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher
geschrieben wurden, und zwar durch die dritte Speichersteuerung,
und den Umfang an Daten, die aus dem Speicher für die dritte Vorrichtung durch
die zweite Speichersteuerung gelesen wurden, bestimmt ist.
-
In einer anderen Ausführungsform
ist eine dritte Vorrichtung mit einer dritten Speichersteuerung an
den Speicher angeschlossen, um Daten zu lesen. Ein zweiter Steuerkanal
wird verwendet, um eine Anzeige eines Umfangs von Daten, die in
den Speicher durch die erste Speichersteuerung geschrieben wurden,
zu übermitteln,
und zwar von der ersten Vorrichtung zu der dritten Vorrichtung.
Der zweite Steuerkanal übermittelt
ferner von der dritten Vorrichtung zu der ersten Vorrichtung eine
Anzeige des Umfangs an Daten, die aus dem Speicher gelesen wurden,
und zwar durch die dritte Speichersteuerung. Die zweite Vorrichtung
und die dritte Vorrichtung lesen Daten aus separaten Abschnitten
des Speichers. Die dritte Speichersteuerung liest Daten aus dem
Speicher für die
dritte Vorrichtung, bis der Speicher für die dritte Vorrichtung leer
ist, wie durch den angezeigten Umfang an Daten, der zu dem Speicher
für die
dritte Vorrichtung durch die erste Speichersteuerung geschrieben
wurde, und den Umfang an Daten, die aus dem Speicher für die dritte
Vorrichtung durch die dritte Speichersteuerung gelesen wurden, bestimmt
ist. Die erste Speichersteuerung schreibt Daten zu dem Speicher,
bis der Speicher für
die dritte Vorrichtung voll ist, wie durch den angezeigten Umfang
an Daten, die zu dem Speicher durch die erste Speichersteuerung
geschrieben wurden, und den Umfang an Daten, die aus dem Speicher
für die
dritte Vorrichtung durch die dritte Speichersteuerung gelesen wurden, bestimmt
ist.
-
Die Bereitstellung des Steuerkanals,
um die Umfänge
an Daten, die aus den Vorrichtungen gelesen und in die Vorrichtungen
geschrieben wurden zu übermitteln,
ermöglicht
beide Vorrichtungen, die an den Speicher angeschlossen sind, um
den Datenfluss durch den Speicher zu steuern.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Für
die Zeichnungen gilt:
-
1 ist
ein Blockdiagramm, das zwei Vorrichtungen veranschaulicht, welche
Daten durch einen Speicher teilen und welche durch einen Steuerkanal
kommunizieren;
-
2 ist
ein Zustandsdiagramm bzw. Statusdiagramm eines Flusssteuerungsmechanismus eines
Senders von Daten in 1;
-
3 ist
ein Zustandsdiagramm bzw. Statusdiagramm einer Flusssteuerung, die
durch einen Datenempfänger
durchgeführt
wird;
-
4 ist
ein Blockdiagramm von einer Ausführungsform,
in welcher ein Host-Speicher des Computers zwei Vorrichtungen verbindet;
und
-
5 ist
ein Blockdiagramm von einer Ausführungsform,
in der der Steuerkanal eine Pufferadresse übermittelt, um eine Schaltfähigkeit
bereitzustellen.
-
DETAILLIERTE
BESCHREIBUNG
-
1 veranschaulicht
ein System, in dem Vorrichtungen durch einen Speicher zusammengeschlossen
werden, um Daten von einer Vorrichtung zu der anderen zu übermitteln.
In diesem Zusammenschluss wird eine erste Vorrichtung 10 zu
einer zweiten Vorrichtung 12 durch einen Speicher 14 zusammengeschlossen.
Die erste Vorrichtung 10 gibt Daten zu dem Speicher aus,
z. B. indem eine Maschine bzw. ein Mechanismus mit einem direkten
Speicherzugriff (DMA) verwendet wird. Die zweite Vorrichtung 12 liest
Daten aus dem Speicher 14, z. B. indem eine Maschine bzw.
ein Mechanismus 18 mit einem direkten Speicherzugriff (DMA)
verwendet wird. Der Bus 20, der den DMA-Mechanismus 16 mit
dem Speicher 14 verbindet, und der Bus 22, der
den Speicher 14 mit dem DMA-Mechanismus 18 verbindet, können irgendeine
Art von Datenbus sein. Der Bus 22 kann z. B. einen Host-Speicher eines Computers an
die Vorrichtungen 10 und 12 anschließen, die
an den Bus angeschlossen sind. Ein zusätzlicher Kanal, der als ein
Steuerungskanal 24 bezeichnet wird, stellt eine bidirektionale
Verbindung von der DMA-Vorrichtung 16 zu der DMA-Vorrichtung 18 bereit.
Der DMA-Mechanismus 16 der sendenden Vorrichtung 10 sendet
ein Signal zu dem DMA-Mechanismus der empfangenden Vorrichtung 12,
wie bei 26 angezeigt ist. Dieses Signal stellt eine Anzeige
bereit, so dass der DMA-Mechanismus 18 Daten aus dem Speicher 14 lesen
kann, und kann als ein "Erlaubnis
zu lesen"-Signal
betrachtet werden. Der DMA-Mechanismus 18 der
empfangenen Vorrichtung 12 sendet ein Signal 28 zu
dem DMA-Mechanismus 16. Das Signal stellt eine Anzeige
bereit, so dass der DMA-Mechanismus 16 mehr
Daten zu dem Speicher 14 schreiben kann, und kann als ein "Erlaubnis zu lesen
anerkannt"- oder "Erlaubnis zu schreiben"-Signal betrachtet
werden.
-
Der DMA-Mechanismus 16 geht
dem Umfang und dem Ort des zur Verfügung stehenden Raumes bzw.
Platzes in dem Speicher 14 nach bzw. verfolgt die Spur
des Umfangs und des Ortes des zur Verfügung stehenden Raumes in dem
Speicher 14. Der DMA-Mechanismus 16 kann Daten
zu dem Speicher 14 schreiben, bis der Speicher voll ist.
Der DMA-Mechanismus 18 geht dem Umfang und dem Ort der
gültigen
Daten, die in dem Speicher 14 zur Verfügung stehen, nach bzw. verfolgt
die Spur des Umfangs und des Ortes der gültigen Daten, die in dem Speicher 14 zur
Verfügung
stehen, und liest Daten, bis keine Daten in dem Speicher 14 zur
Verfügung
stehen. Obwohl sich diese Beschreibung auf einen DMA-Mechanismus
bzw. eine DMA-Maschine bezieht, kann irgendeine Art von Speichersteuerung ebenso
verwendet werden.
-
Die Kommunikation bzw. Übermittlung
der Verfügbarkeit
von gültigen
Daten in dem Speicher 14 von dem DMA-Mechanismus 16 zu
dem DMA-Mechanismus 18 kann über den Steuerkanal auf verschiedenen
Wegen bzw. auf verschiedene Arten durchgeführt werden. Zum Beispiel kann
der DMA-Mechanismus 16 Speicherorte oder Bereiche der Speicherorte,
die gültige
Daten beinhalten, identifizieren. Alter nativ kann der DMA-Mechanismus 16 den
Speicher 14 als einen zirkularen bzw. kreisförmigen oder
ringförmigen
Puffer behandeln. Wenn der Speicher ein zirkularer bzw. kreisförmiger oder
ringförmiger
Puffer ist, kann der DMA-Mechanismus 16 die letzte Adresse
senden, zu welcher er Daten (einen Schreibbegrenzungszeiger) zu
dem DMA-Mechanismus 18 geschrieben hat. Der DMA-Mechanismus 18 begrenzt
irgendeine bzw. jede Leseoperation zu diesen Adressen bis zu und
einschließlich
des Schreibbegrenzungszeigers, der von dem DMA-Mechanismus 16 gesendet
wird. Der DMA-Mechanismus 18 gibt ferner die Adresse, bei
welcher er das Lesen stoppt (einen Lesebegrenzungszeiger) zurück. Der
DMA-Mechanismus 16 begrenzt irgendeine bzw. jede Schreiboperation
zu diesen Adressen bis zu und einschließlich diesem Lesebegrenzungszeiger.
Alternativ können
die DMA-Mechanismen 16 und 18 einen
Umfang an Daten übermitteln,
wie z. B. eine Anzahl von Komponenten von Videodaten, die zu dem
Speicher 14 geschrieben werden oder von dem Speicher 14 gelesen
werden. Indem die Größe des Speichers 14 und
der Umfang an Daten, die zu dem Speicher 14 geschrieben
und von dem Speicher 14 gelesen wurden, gefolgt bzw. nachgegangen
wird, können
die DMA-Mechanismen 16 und 18 tatsächlich unterschiedliche
Speicheradresskarten bzw. Speicheradressmaps verwenden, um auf den
Speicher 14 zuzugreifen, und können indirekte Adressen übermitteln.
-
Ein Zustandsdiagramm eines Senders
zur Steuerung eines Datenflusses zu einem Empfänger wird in 2 gezeigt. Der Sender hat typischerweise zwei
Zustände.
Im Schreibzustand 30 werden Daten durch den Sender zu dem
Speicher 14 geschrieben. Der Schreibzustand ist im Allgemeinen
ein anfänglicher
bzw. Initialzustand, falls der Speicher leer ist. Wenn der Sender 10 Daten
zu dem Speicher 14 schreibt, sendet ferner der Sender eine
Anzeige des Umfangs an Daten, die zu dem Speicher zu dem Empfänger geschrieben
wurden. In einem Stoppzustand 32 werden keine Daten geschrieben.
In dem Schreibzustand 30 geht der Sender zum Stoppzustand 32 über und
das Schreiben wird gestoppt, wenn z. B. der Lesebegrenzungszeiger
des Speichers erreicht wird. Diese Begrenzung kann von der Fluss steuerungsinformation
bestimmt werden, die von dem Empfänger über den Steuerkanal empfangen
wird. Falls der Sender den Lese- und Schreibzeigern nachgeht und
falls der Schreibzeiger größer ist als
der Lesezeiger, dann kann die Differenz zwischen der Größe des zur
Verfügung
stehenden Speichers und der Differenz zwischen den Lese- und Schreibzeigern
verwendet werden, um den Umfang des verfügbaren Speicherraumes bzw.
Speicherplatzes zu berechnen. Falls der Lesezeiger größer ist
als der Schreibzeiger, zeigt die Differenz zwischen dem Lese- und Schreibzeiger
den Umfang des zur Verfügung
stehenden Speichers an. Wenn der Speicherplatz bzw. Speicherraum
voll ist, ist die Schreibbegrenzung erreicht und das Schreiben stoppt.
In dem Stoppzustand, falls der Lesezeiger erhöht wird, und zwar in Antwort
auf die Flusssteuerungsinformation von dem Empfänger, findet ein Rückwärtsübergang zu
dem Schreibstatus bzw. ein Übergang
zurück
zu dem Schreibstatus statt. In dem Schreibstatus, falls der Lesezeiger
erhöht
wird, bleibt der Sender in dem Schreibzustand 30. Falls
eine Schreiboperation stattfindet und die Schreibbegrenzung nicht
erreicht wird, bleibt der Sender auch in dem Schreibzustand 30.
-
Ein Zustandsdiagramm eines Empfängers zur
Steuerung eines Datenflusses von einem Sender wird in 3 gezeigt. Der Empfänger hat
einen Lesezustand 34 und einen Stoppzustand 36.
Falls keine Daten in dem Speicher 14 verfügbar sind,
ist der Empfänger
in dem Stoppzustand 36, der im Allgemeinen ein Initialzustand
bzw. anfänglicher
Zustand ist. Der Empfänger
verbleibt bzw. wartet in diesem Zustand bis Daten verfügbar werden
bzw. sind, wie durch den Sender durch die Flusssteuerungsinformation,
die über
den Steuerkanal gesendet werden, angezeigt ist. Ein Übergang
zu dem Lesezustand 34 findet statt, wenn Daten verfügbar werden.
Zum Beispiel kann ein Schreibzeiger erhöht werden durch den Empfang
einer Flusssteuerungsinformation von dem Sender, um die Verfügbarkeit
von Daten anzuzeigen. Der Empfänger
verbleibt in dem Lesezustand 34, bis der Speicher leer
ist, welches z. B. bestimmt werden kann, indem ein Lesebegrenzungszeiger
verwendet wird. Anders ausgedrückt,
falls der Schreibzeiger im Lesezustand 34 er höht wird,
verbleibt der Empfänger
in Lesezustand 34. Falls eine Leseoperation durchgeführt wird
und die Lesebegrenzung nicht erreicht wird, verbleibt der Empfänger auch
im Lesezustand 34. Wenn die Lesebegrenzung erreicht wird, findet
ein Übergang
von dem lesenden Zustand 34 zu dem Stoppzustand 36 statt.
Der Empfänger
kann einem Lesezeiger und einem Schreibzeiger ähnlich zu dem Sender nachgehen
bzw. verfolgen. Der Lesezeiger wird jedes Mal erhöht, wenn
Daten aus dem Speicher 14 gelesen werden. Der Schreibzeiger
wird erhöht,
und zwar in Antwort auf das Signal 26 von dem Sender.
-
Unter Verwendung eines Systems, das
z. B. in den 1 bis 3 gezeigt ist, schaltet der
Steuerkanal 24 den Sender und Empfänger zusammen bzw. verbindet
diese, um Steuerungsinformation ohne komplexes bzw. kompliziertes
Interfacedesign bzw. ohne komplexen bzw. komplizierten Schnittstellenentwurf
zu übermitteln.
Der Steuerkanal kann eine Busarchitektur verwenden, wie z. B. PCI,
wenn DMA-Vorrichtungen
in dem Sender und Empfänger physikalisch
getrennt werden, aber in demselben System sind. Ein bestimmtes bzw.
geeignetes Zusammenschalten kann auch für den Steuerkanal benutzt werden.
-
Bezieht man sich nun auf 4, so realisiert in einer
Ausführungsform
ein Peripher-Komponenten-Verbindungs-(PCI-)Bus 40 sowohl
einen Steuerkanal 42 zwischen den getrennten PCI-Vorrichtungen 44 und 46 als
auch den Datenkanälen 48 und 50 zu
dem Host-Speicher 52 in einem Host-Computersystem. Ein
Host-Computersystem
hat typischerweise einen Prozessor, Eingabevorrichtungen und Ausgabevorrichtungen,
die an den Host-Speicher angeschlossen sind, um Anwendungsprogramme
auszuführen.
Ein ähnliches
Design bzw. ein ähnlicher
Entwurf kann konstruiert werden, und zwar unter Verwendung eines
Computersystems mit einem fortgeschrittenen bzw. verbesserten (oder
beschleunigten) Grafikport- bzw. Grafikanschluss-(AGP)-Bus. In diesem
System schreibt eine PCI-Vorrichtung 46 Daten zu dem Host-Speicher 52 über den
PCI-Bus 40. Die PCI-Vorrichtung 44 liest Daten
von dem Host-Speicher 52 über den PCI-Bus 40.
Die PCI- Vorrichtungen 44 und 46 übermitteln
Steuerungsinformation direkt zusammen über den PCI-Bus 40 oder
durch irgendeinen bzw. jeden anderen Kanal. Ein Vorteil dieser Konstruktion
ist, dass die PCI-Vorrichtungen den Host-Speicher sowohl für ein Schalten
zum Leiten der Daten als auch als einen fluss-kontrollierten Puffer
zwischen den Vorrichtungen verwenden kann.
-
Eine Beispielsausführungsform
eines Systems, das das Schalten durch einen Speicher in einer fluss-kontrollierten
Art und Weise erlaubt, ist in 5 gezeigt.
Dieses System schließt
einen Speicher 60, der drei Puffer 62, 64 und 66 aufweist,
ein. Eine erste Sendevorrichtung 68 sendet Daten zum Puffer 66. Eine
zweite Sendevorrichtung 70 sendet Daten zum Puffer 64.
Eine dritte Sendevorrichtung 72 sendet Daten zum Puffer 62.
Die Empfangsvorrichtung 74 kann Daten von irgendeinem der
Puffer 62, 64 und 66 lesen. In dieser
Figur ist die Empfangsvorrichtung 74 gezeigt, die Daten
von der Sendevorrichtung 72 durch den Puffer 62 empfängt. Die
Sendevorrichtungen 68, 70 und 72 senden
Flusssteuerungsinformationen über
einen Flusssteuerungskanal 76 zu der Empfangsvorrichtung 74.
Die Empfangsvorrichtung 74 sendet die Flusssteuerungsinformation
zurück
zu irgendeiner der Sendevorrichtungen 68, 70 und 72, und
zwar über
den Steuerungskanal 76 entsprechend dem Puffer, von welchem
sie die Daten liest. Falls der Speicher 60 ein Host-Speicher
ist und die Vorrichtungen 68, 70, 72 und 74 PCI-Vorrichtungen sind,
verwendet dieses System den Host-Speicher als einen fluss-kontrollierten
Schalter unter bzw. zwischen den PCI-Vorrichtungen.
-
Der Steuerungskanal kann ferner zusätzliche
Schaltinformation bzw. Hilfs-Schaltinformation zwischen
den angeschlossenen bzw. zusammengeschalteten DMA-Vorrichtungen übermitteln.
Diese Hilfs-Schaltinformation bzw. zusätzliche Schaltinformation erlaubt
entfernten Vorrichtungen, dynamisches Paketschalten durch den Speicher
zu realisieren. Derartige Hilfs-Schaltinformation bzw. zusätzliche
Schaltinformation kann die Startadresse des Datenpuffers und Speichers,
die Puffergröße und -konfiguration
und die Quelladresse der Vorrichtungsverbindung an dem Zielende
einschließen.
Die zusätzliche
Information bzw. Hilfsinformation kann eine Speicheradresse, in
die die Daten zu schreiben sind, oder eine Vorrichtungsadresse,
zu welcher die Daten geleitet werden sollen, beinhalten. Es gibt
verschiedene bzw. mehrere andere Wege bzw. Arten, die Zusatzinformation
bzw. Hilfsinformation zu übermitteln.
In einer Ausführungsform
kann ein Paketprotokoll, wie z. B. in der US-Patentanmeldung mit
dem Titel "A Packet
Protocol for Encoding and Decoding Video Data and Data Flow Signals
and Devices for Implementing the Packet Protocol", eingereicht am 3. April 1998 von Craig
R. Frink und Andrew V. Hoar, welches hierin mit Bezug mit eingeschlossen
wird, verwendet werden, um Kommandodaten bzw. Befehlsdaten in Paketen über den
Steuerungskanal zu transferieren.
-
Indem ein System, in welchem Vorrichtungen
durch einen Speicher in Kombination mit dem separaten Steuerungskanal
angeschlossen bzw. zusammengeschlossen sind, bereitgestellt werden,
wie dies oben beschrieben ist, kann der Datenfluss zwischen den
Vorrichtungen durch den Speicher durch den Empfänger gesteuert werden. Diese
Steuerung des Datenflusses hilft, die Transferwartezeiten bzw. Übertragungswartezeiten
zu reduzieren und den Datenfluss unter bzw. zwischen Vorrichtungen
zu managen bzw. zu handhaben, und zwar wo der Datenfluss bei unregelmäßigen Raten
stattfinden kann. Mehrfache Vorrichtungen, die durch den Speicher
zusammengeschaltet sind, können
den Speicher als Schalter nutzen. Der Speicher kann ferner benutzt
werden, um Daten zu kombinieren, die in einer kongruenten Sequenz
bzw. übereinstimmenden
Sequenz empfangen werden, oder kann eine Kopie der Daten an verschiedene
bzw. mehrere Ziele ausgeben.
-
Nachdem nun ein paar Ausführungsformen beschrieben
wurden, sollte es für
den Fachmann ersichtlich werden, dass das vorangegangene bloß veranschaulichend
und nicht begrenzend ist, wobei dies nur beispielsweise präsentiert
wurde. Zahlreiche Modifikationen und andere Ausführungsformen liegen innerhalb
des Umfangs der Erfindung.