DE69908765T2 - Verfahren und vorrichtung zur steuerung des datenflusses zwischen miteinander durch einen speicher verbundenen geräten - Google Patents

Verfahren und vorrichtung zur steuerung des datenflusses zwischen miteinander durch einen speicher verbundenen geräten Download PDF

Info

Publication number
DE69908765T2
DE69908765T2 DE69908765T DE69908765T DE69908765T2 DE 69908765 T2 DE69908765 T2 DE 69908765T2 DE 69908765 T DE69908765 T DE 69908765T DE 69908765 T DE69908765 T DE 69908765T DE 69908765 T2 DE69908765 T2 DE 69908765T2
Authority
DE
Germany
Prior art keywords
memory
data
memory controller
amount
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69908765T
Other languages
English (en)
Other versions
DE69908765D1 (de
Inventor
R. Craig FRINK
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avid Technology Inc
Original Assignee
Avid Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avid Technology Inc filed Critical Avid Technology Inc
Application granted granted Critical
Publication of DE69908765D1 publication Critical patent/DE69908765D1/de
Publication of DE69908765T2 publication Critical patent/DE69908765T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Description

  • 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.

Claims (11)

  1. Apparat zum Übermitteln von Daten zwischen einer ersten Vorrichtung und einer zweiten Vorrichtung, der Folgendes umfasst: in der ersten Vorrichtung eine erste Speichersteuerung, die Daten in einen Speicher schreibt; in der zweiten Vorrichtung eine zweite Speichersteuerung, die Daten von dem Speicher liest; dadurch gekennzeichnet, dass der Apparat weiter Folgendes umfasst: einen Steuerkanal, der angeordnet ist, um von der ersten Vorrichtung zu der zweiten Vorrichtung eine Anzeige des Umfangs an Daten zu übermitteln, die in den Speicher durch die erste Speichersteuerung geschrieben werden, und der angeordnet ist, um von der zweiten Vorrichtung zu der ersten Vorrichtung eine Anzeige des Umfangs an Daten zu übermitteln, die von dem Speicher durch die zweite Speichersteuerung gelesen werden; und wobei die zweite Speichersteuerung Daten von dem Speicher liest, bis der Speicher leer ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher durch die erste Speichersteuerung geschrieben werden, und den Umfang an Daten, die von dem Speicher durch die zweite Speichersteuerung gelesen werden, bestimmt wird.
  2. Apparat nach Anspruch 1, der weiter Folgendes umfasst: eine dritte Vorrichtung mit einer dritten Speichersteuerung und die angeschlossen ist, um Daten zu dem Speicher zu schreiben; einen zweiten Steuerkanal, der angeordnet ist, um von der dritten Vorrichtung zu der zweiten Vorrichtung eine Anzeige eines Umfangs an Daten zu übermitteln, die in den Speicher durch die dritte Speichersteuerung geschrieben werden, und der angeordnet ist, um von der zweiten Vorrichtung zu der dritten Vorrichtung eine Anzeige des Umfangs an Daten zu übermitteln, die von dem Speicher durch die zweite Speichersteuerung gelesen werden; wobei die erste Vorrichtung und die dritte Vorrichtung Daten zu getrennten Abschnitten des Speichers schreiben; und wobei die zweite Speichersteuerung Daten von dem Speicher für die dritte Vorrichtung liest, 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 werden, und den Umfang an Daten, die von dem Speicher für die dritte Vorrichtung durch die zweite Speichersteuerung gelesen werden, bestimmt wird.
  3. Apparat nach einem vorhergehenden Anspruch, bei welchem die erste Speichersteuerung Daten zu dem Speicher schreibt, bis der Speicher voll ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher durch die erste Speichersteuerung geschrieben werden, und den Umfang an Daten, die von dem Speicher durch die zweite Speichersteuerung gelesen werden, bestimmt wird.
  4. Apparat nach Anspruch 2 oder 3, bei welchem die dritte Speichersteuerung Daten zu dem Speicher schreibt, bis der Speicher für die dritte Vorrichtung voll ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher durch die dritte Speichersteuerung geschrieben werden, und den Umfang an Daten, die von dem Speicher für die dritte Vorrichtung durch die zweite Speichersteuerung gelesen werden, bestimmt wird.
  5. Apparat nach einem der Ansprüche 2 bis 4, der weiter Folgendes umfasst: eine vierte Vorrichtung mit einer vierten Speichersteuerung und die angeschlossen ist, um Daten von dem Speicher zu lesen; einen dritten Steuerkanal, der angeordnet ist, um von der ersten Vorrichtung zu der vierten Vorrichtung eine Anzeige eines Umfangs an Daten zu übermitteln, die in den Speicher durch die erste Speichersteuerung geschrieben werden, und angeordnet ist, um von der vierten Vorrichtung zu der ersten Vorrichtung eine Anzeige des Umfangs an Daten zu übermitteln, die von dem Speicher durch die vierte Speichersteuerung gelesen werden; wobei die zweite Vorrichtung und die vierte Vorrichtung Daten von getrennten Abschnitten des Speichers lesen; und wobei die vierte Speichersteuerung Daten von dem Speicher für die vierte Vorrichtung liest, bis der Speicher für die vierte Vorrichtung leer ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher für die vierte Vorrichtung durch die erste Speichersteuerung geschrieben werden, und den Umfang and Daten, die von dem Speicher für die vierte Vorrichtung durch die vierte Speichersteuerung gelesen werden, bestimmt wird.
  6. Apparat nach Anspruch 5, bei welchem die erste Speichersteuerung Daten zu dem Speicher schreibt, bis der Speicher für die vierte Vorrichtung voll ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher durch die erste Speichersteuerung geschrieben werden, und den Umfang an Daten, die von dem Speicher für die vierte Vorrichtung durch die vierte Speichersteuerung gelesen werden, bestimmt wird.
  7. Apparat nach Anspruch 5 oder 6, der weiter Folgendes umfasst: einen vierten Steuerkanal, der angeordnet ist, um von der dritten Vorrichtung zu der vierten Vorrichtung eine Anzeige eines Umfangs an Daten zu übermitteln, die in den Speicher durch die dritte Speichersteuerung geschrieben werden, und der angeordnet ist, um von der vierten Vorrichtung zu der dritten Vorrichtung eine Anzeige des Umfangs an Daten zu übermitteln, die von dem Speicher durch die vierte Speichersteuerung gelesen werden; wobei die vierte Speichersteuerung Daten von dem Speicher für die vierte Vorrichtung liest, bis der Speicher für die vierte Vorrichtung leer ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher für die vierte Vorrichtung durch die dritte Speichersteuerung geschrieben werden, und den Umfang an Daten, die von dem Speicher für die vierte Vorrichtung durch die vierte Speichersteuerung gelesen werden, bestimmt wird.
  8. Apparat nach Anspruch 7, bei welchem die dritte Speichersteuerung Daten zu dem Speicher schreibt, bis der Speicher für die vierte Vorrichtung voll ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher durch die dritte Speichersteuerung geschrieben werden, und den Umfang an Daten, die von dem Speicher für die vierte Vorrichtung durch die vierte Speichersteuerung gelesen werden, bestimmt wird.
  9. Apparat nach Anspruch 1, der weiter Folgendes umfasst: eine dritte Vorrichtung mit einer dritten Speichersteuerung und die angeschlossen ist, um Daten von dem Speicher zu lesen; und einen zweiten Steuerkanal, der angeordnet ist um von der ersten Vorrichtung zu der dritten Vorrichtung eine Anzeige eines Umfangs an Daten zu übermitteln, die in Speicher durch die erste Speichersteuerung geschrieben werden, und angeordnet ist, um von der dritten Vorrichtung zu der ersten Vorrichtung eine Anzeige des Umfangs an Daten zu übermitteln, die von dem Speicher durch die dritte Speichersteuerung gelesen werden; wobei die zweite Vorrichtung und die dritte Vorrichtung Daten von getrennten Abschnitten des Speichers lesen; und wobei die dritte Speichersteuerung Daten von dem Speicher für die dritte Vorrichtung liest, bis der Speicher für die dritte Vorrichtung leer ist, wie durch den angezeigten Umfang an Daten, die zu dem Speicher für die dritte Vorrichtung durch die erste Speichersteuerung geschrieben werden, und den Umfang an Daten, die von dem Speicher für die dritte Vorrichtung durch die dritte Speichersteuerung gelesen werden, bestimmt wird.
  10. Apparat nach Anspruch 9, bei welchem die erste Speichersteuerung Daten zu dem Speicher schreibt, 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, und den Umfang an Daten, die von dem Speicher für die dritte Vorrichtung durch die dritte Speichersteuerung gelesen werden, bestimmt wird.
  11. Apparat nach einem vorhergehenden Anspruch, bei welchem jede Vorrichtung eine Videoverarbeitungsvorrichtung ist und die Daten Videodaten sind.
DE69908765T 1998-04-03 1999-03-31 Verfahren und vorrichtung zur steuerung des datenflusses zwischen miteinander durch einen speicher verbundenen geräten Expired - Fee Related DE69908765T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/055,017 US6134607A (en) 1998-04-03 1998-04-03 Method and apparatus for controlling data flow between devices connected by a memory
US55017 1998-04-03
PCT/US1999/007155 WO1999052293A1 (en) 1998-04-03 1999-03-31 Method and apparatus for controlling data flow between devices connected by a memory

Publications (2)

Publication Number Publication Date
DE69908765D1 DE69908765D1 (de) 2003-07-17
DE69908765T2 true DE69908765T2 (de) 2004-05-19

Family

ID=21995026

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69908765T Expired - Fee Related DE69908765T2 (de) 1998-04-03 1999-03-31 Verfahren und vorrichtung zur steuerung des datenflusses zwischen miteinander durch einen speicher verbundenen geräten

Country Status (6)

Country Link
US (1) US6134607A (de)
EP (1) EP1068734B1 (de)
AU (1) AU3460999A (de)
CA (1) CA2326983C (de)
DE (1) DE69908765T2 (de)
WO (1) WO1999052293A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030133448A1 (en) * 1998-04-03 2003-07-17 Craig R. Frink Packet protocol for encoding and decoding video data and data flow signals and devices for implementing the packet protocol
US6961801B1 (en) 1998-04-03 2005-11-01 Avid Technology, Inc. Method and apparatus for accessing video data in memory across flow-controlled interconnects
US6625674B1 (en) * 1998-09-24 2003-09-23 International Business Machines Corporation Method and apparatus for state-independent non-interrupt-driven handshake with positive acknowledgement
US6260082B1 (en) * 1998-12-23 2001-07-10 Bops, Inc. Methods and apparatus for providing data transfer control
GB9915341D0 (en) * 1999-06-30 1999-09-01 Nortel Networks Corp Multiple access parallel memory and method
US6629164B1 (en) * 1999-11-10 2003-09-30 Digi International Inc. Character counter and match registers in a serial interface
US6643717B1 (en) 1999-11-10 2003-11-04 Digi International Inc. Flow control
JP4422848B2 (ja) * 2000-02-21 2010-02-24 キヤノン株式会社 画像形成装置
US8073994B2 (en) 2000-05-03 2011-12-06 At&T Laboratories Data transfer, synchronising applications, and low latency networks
US7330904B1 (en) * 2000-06-07 2008-02-12 Network Appliance, Inc. Communication of control information and data in client/server systems
US7010614B2 (en) * 2000-07-05 2006-03-07 International Business Machines Corporation System for computing cumulative amount of data received by all RDMA to determine when a complete data transfer has arrived at receiving device
US20020108115A1 (en) * 2000-12-11 2002-08-08 The Associated Press News and other information delivery system and method
US6795886B1 (en) * 2000-12-22 2004-09-21 Ncr Corporation Interconnect switch method and apparatus
GB2371641B (en) * 2001-01-27 2004-10-06 Mitel Semiconductor Ltd Direct memory access controller for circular buffers
KR20050042024A (ko) * 2001-10-31 2005-05-04 톰슨 라이센싱 에스.에이. 홈 비디오 서버용 승인 제어 시스템
US7743182B2 (en) * 2002-02-06 2010-06-22 Hewlett-Packard Development Company, L.P. Method and apparatus for synchronizing a software buffer index with an unknown hardware buffer index
US6734579B1 (en) * 2002-07-24 2004-05-11 Apple Computer, Inc. System and method for activating a first device from a second device
US7069454B1 (en) * 2002-07-24 2006-06-27 Apple Computer, Inc. System and method for deactivating a first device from a second device
US7949777B2 (en) * 2002-11-01 2011-05-24 Avid Technology, Inc. Communication protocol for controlling transfer of temporal data over a bus between devices in synchronization with a periodic reference signal
CN100397268C (zh) * 2002-12-23 2008-06-25 西门子能量及自动化公司 利用plc的存储设备的方法和结构
US7535836B2 (en) 2003-02-12 2009-05-19 Broadcom Corporation Method and system to provide word-level flow control using spare link bandwidth
US7120708B2 (en) * 2003-06-30 2006-10-10 Intel Corporation Readdressable virtual DMA control and status registers
NZ528325A (en) * 2003-09-18 2006-05-26 Endace Technology Ltd Data transfer management method, software and system
US7274967B2 (en) * 2003-10-10 2007-09-25 Nokia Corporation Support of a wavetable based sound synthesis in a multiprocessor environment
US7290069B2 (en) * 2004-04-16 2007-10-30 National Instruments Corporation Data acquisition system which monitors progress of data storage
US7650386B2 (en) * 2004-07-29 2010-01-19 Hewlett-Packard Development Company, L.P. Communication among partitioned devices
US8432810B2 (en) 2008-03-28 2013-04-30 Apple Inc. Techniques for reducing buffer overflow in a communication system
US8751737B2 (en) * 2009-06-26 2014-06-10 Alcatel Lucent Method and apparatus for using a shared ring buffer to provide thread synchronization in a multi-core processor system
US8904067B2 (en) * 2012-03-13 2014-12-02 Microsoft Corporation Adaptive multi-threaded buffer

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2440058A1 (fr) * 1978-10-27 1980-05-23 Materiel Telephonique Systeme de memoire tampon pour unite d'echange entre deux unites fonctionnelles et procede de mise en oeuvre
JPS57153359A (en) * 1981-03-18 1982-09-21 Ibm Data processing system with common memory
JPS62251951A (ja) * 1986-04-22 1987-11-02 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション デ−タ処理システム
JPH077375B2 (ja) * 1988-06-17 1995-01-30 日本電気株式会社 バス制御方式
JPH02109153A (ja) * 1988-10-18 1990-04-20 Fujitsu Ltd プロセッサ間データ伝送方式
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
US5117486A (en) * 1989-04-21 1992-05-26 International Business Machines Corp. Buffer for packetizing block of data with different sizes and rates received from first processor before transferring to second processor
US5455913A (en) * 1990-05-14 1995-10-03 At&T Global Information Solutions Company System and method for transferring data between independent busses
US5511165A (en) * 1992-10-23 1996-04-23 International Business Machines Corporation Method and apparatus for communicating data across a bus bridge upon request
US5664104A (en) * 1992-12-18 1997-09-02 Fujitsu Limited Transfer processor including a plurality of failure display units wherein a transfer process is prohibited if failure is indicated in a failure display unit
US5473756A (en) * 1992-12-30 1995-12-05 Intel Corporation FIFO buffer with full/empty detection by comparing respective registers in read and write circular shift registers
US5604866A (en) * 1993-09-30 1997-02-18 Silicon Graphics, Inc. Flow control system having a counter in transmitter for decrementing and incrementing based upon transmitting and received message size respectively for indicating free space in receiver
EP0928452A1 (de) * 1996-09-25 1999-07-14 Advanced Micro Devices, Inc. Multmedia-datensteuergerät

Also Published As

Publication number Publication date
AU3460999A (en) 1999-10-25
CA2326983C (en) 2008-07-15
DE69908765D1 (de) 2003-07-17
WO1999052293A1 (en) 1999-10-14
US6134607A (en) 2000-10-17
CA2326983A1 (en) 1999-10-14
EP1068734A1 (de) 2001-01-17
EP1068734B1 (de) 2003-06-11

Similar Documents

Publication Publication Date Title
DE69908765T2 (de) Verfahren und vorrichtung zur steuerung des datenflusses zwischen miteinander durch einen speicher verbundenen geräten
DE69812338T2 (de) Video auf anfrage mit videorecorderähnlichen funktionen
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69210243T2 (de) Kommunikationseinrichtung und bilddatenübertragungsverfahren von einem sender zu einem oder mehreren empfängern
DE69730656T2 (de) Medienserver in dem ein SCSI-Bus eingesetzt wird und in dem eine SCSI-logische Einheit zur Differenzierung zwischen Transfer/Modi benutzt wird
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE69826258T2 (de) Anzeigevorrichtung mit einem oder mehreren fenstern und platzierungsabhängiger kursor- und funktionskontrolle
DE60103965T2 (de) Aktualisierung von Rasterbildern in einem Anzeigegerät mit einem Bildspeicher
DE3587910T2 (de) Peripheres Interface-System.
DE602005003471T2 (de) Verfahren und system zur interaktiven steuerung von medien über ein netzwerk
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
CH634940A5 (en) Channel-adapter arrangement
DE69909608T2 (de) Paketprotokoll zur kodierung und dekodierung von videodaten und datenflusssignalen
DE69738356T2 (de) Vorrichtung und Verfahren zum Aufzeichnen/Wiedergeben von Daten
DE69931896T2 (de) Fairness-schema für eine serielle schnittstelle
DE69935940T2 (de) Zielknoten, Datenkommunikationssystem, Kontrollverfahren eines Zielknotens und Verfahren zum Betreiben eines Datenkommunikationssystems
DE3888445T2 (de) Graphisches Anzeigesystem mit einem Sekundärbildspeicher für Bildelemente.
JPH08511915A (ja) 適応型画像伸張
CH704037B1 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum synchronisierten sowie sequenziellen Übertragen von Audio- und Videodaten.
EP0895165A2 (de) Kommunikationssystem mit einer DMA-Einheit
DE69730658T2 (de) Medienserver und Verfahren zur Unterlaufvermeidung eines Fifo-Servers während der Mehrkanalsanlaufphase
DE102008003894A1 (de) Datenverbreitung und Zwischenspeicherung
DE69631364T2 (de) MPEG-Dekoder mit gemeinsamer Benutzung eines Speichers
DE69825636T2 (de) Verfahren und gerät zum bereitstellen und einschliessen von kontrollinformation in einem bussystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee