DE69628798T2 - Verfahren zur Übertragung von Multimediadaten - Google Patents

Verfahren zur Übertragung von Multimediadaten Download PDF

Info

Publication number
DE69628798T2
DE69628798T2 DE69628798T DE69628798T DE69628798T2 DE 69628798 T2 DE69628798 T2 DE 69628798T2 DE 69628798 T DE69628798 T DE 69628798T DE 69628798 T DE69628798 T DE 69628798T DE 69628798 T2 DE69628798 T2 DE 69628798T2
Authority
DE
Germany
Prior art keywords
input
output
data
multimedia data
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69628798T
Other languages
English (en)
Other versions
DE69628798D1 (de
Inventor
Masaaki Iwasaki
Shouji Aoba-ku Nakamura
Tadashi Aoba-ku Takeuchi
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of DE69628798D1 publication Critical patent/DE69628798D1/de
Publication of DE69628798T2 publication Critical patent/DE69628798T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Description

  • HINTERGRUND DER ERFINDUNG
  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft ein Eingabe/Ausgabe-Untersystem eines Computersystems. Insbesondere betrifft die Erfindung ein Steuerverfahren und eine Steuervorrichtung für periodische Eingabe/Ausgabe zum Realisieren einer Echtzeit-Eingabe/Ausgabe-Funktion für Multimediadaten wie Videobilddaten oder Audiodaten.
  • BESCHREIBUNG DER EINSCHLÄGIGEN TECHNIK
  • Bei vorhandenen Computersystemen wird die Eingabe/Ausgabe so ausgeführt, wie es unten beschrieben ist. Ein Prozessor (CPU) startet eine Eingabe/Ausgabe-Operation eines Eingabe/ Ausgabe-Controllers. Der zum Steuern von Eingabe/Ausgabe-Geräten dienende Eingabe/Ausgabe-Controller informiert den Prozessor unter Verwendung eines externen Interrupts über den Abschluss der Eingabe/Ausgabe-Operation. Z. B. wird eine derartige Verarbeitung in einem Plattenlaufwerksgerät ausgeführt.
  • Dafür wird gemäß den folgenden Tatsachen gesorgt. Als Erstes kann das Betriebssystem nicht vorab vorhersagen, wann das Anwendungsprogramm eine Eingabe/Ausgabe-Anforderung ausgibt. Zweitens ist die bis zum Abschluss der ausgegebenen Eingabe/Ausgabe-Operation benötigte Zeit unbestimmt. Anders gesagt, werden externe Interrupts als Maßnahme für den Eingabe/Ausgabe-Controller verwendet, um den Prozessor über ein Eingabe/Ausgabe-Abschlussereignis zu informieren, dessen Auftrittszeitpunkt nicht vorhergesagt werden kann.
  • Eine Schnittstelle zu einem Programm (oder einer Funktion oder einer Unterroutine), wie es vom System für das Anwendungsprogramm erzeugt wird, um für die Ausführung einer derartigen Eingabe/Ausgabe-Operation zu sorgen, wird als normale Eingabe/Ausgabe-Schnittstelle bezeichnet.
  • Jedoch kommt es bei der Eingabe/Ausgabe von Multimediadaten wie Videobildern, die eine Echtzeitverarbeitung benötigen, zu einem Problem dahingehend, dass der für die Echtzeitübertragung benötigte Datenübertragungsdurchsatz aufgrund des Overheads dieser Interruptverarbeitung nicht realisiert werden kann. Genauer gesagt, bilden neben der Interruptverarbeitung für den Eingabe/Ausgabe-Abschluss Overheads für Aufruf- und Task-Umschaltvorgänge des Eingabe/Ausgabe-Systems zu Flaschenhälsen bei der Funktionsfähigkeit. (Nachfolgend werden diese allgemein als Softwareoverheads bezeichnet.) Bei Quicktime für Applecomputer (Multimediaerweiterung des Macintosh-Betriebssystems) ist eine neue Anwendungsschnittstelle vorhanden, um diesen Softwareoverhead zu verringern (Inside Macintosh: Quick Time and Inside Macintosh: Quick Time Components). Wenn die in diese Schnittstelle von einer Videodigitalisiereinrichtung (Videoeingabevorrichtung) aufgenommenen Videobilder an eine Anzeigevorrichtung ausgegeben werden, werden einige Initialisierungsfunktionen aufgerufen, und dann wird die Anzeigestartfunktion SGStartPreview aufgerufen.
  • Wenn die Anwendung die Funktion SGStartPreview aufgerufen hat, wird die Übertragung von Videodaten von der Videodigitalisiereinrichtung an die Anzeigevorrichtung gestartet. Nach dem Start dieses Übertragungsvorgangs wird die Funktion SGStartPreview normal zum Abschluss gebracht, ohne dass auf den Abschluss der Datenübertragung gewartet wird, und es erfolgt Rückkehr zur Anwendung, wobei jedoch die Übertragung der Videodaten fortgesetzt wird. Anders gesagt, werden in eine Vielzahl von Blöcken unterteilte Videodaten kontinuierlich nacheinander von der Videodigitalisiereinrichtung an die Anzeigevorrichtung übertragen, jedoch wird die Anwendung nicht über den Abschluss der Übertragung jedes Blocks informiert. Nach dem Aufrufen der Funktion SGStop durch die Anwendung kann die Übertragung der Videodaten beendet werden.
  • Die Schnittstelle in Quick Time gibt die Steuerung nicht an die Anwendung zurück, wenn die Operation zur Eingabe von der Videodigitalisiereinrichtung oder die Operation zur Ausgabe an die Anzeigevorrichtung abgeschlossen wurde. Wenn die Übertragung von Videodaten einmal gestartet ist, wird sie ohne Eingreifen der Anwendung fortgesetzt, bis explizit die Stoppfunktion SGStop aufgerufen wird.
  • Eine Schnittstelle zu einem Programm (oder einer Funktion oder einer Unterroutine), das durch das System für das Anwendungsprogramm erzeugt wird, um für die Ausführung einer derartigen Eingabe/Ausgabe-Operation zu sorgen, wird als Multimediadatenübertragungs-Schnittstelle bezeichnet.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Multimediadaten sind durch ein großes Volumen und dadurch gekennzeichnet, dass sequenziell auf sie zugegriffen wird und dass das pro Zeiteinheit zu übertragende Datenvolumen vorhergesagt werden kann. Da Multimediadaten Signale bewegter Bilder und Sprachsignale enthalten, ist für ihre Übertragung eine Echtzeitverarbeitung erforderlich. Ferner werden Multimediadaten auf verschiedenen Medien gespeichert. Außerdem erfolgt die Übertragung zwischen verschiedenen Ein richtungen, wie den Medien, einer Netzwerk-Steuervorrichtung und einer Anzeigevorrichtung.
  • Aus dem Gesichtspunkt der Eingabe/Ausgabe-Vorrichtung gesehen, wird die oben beschriebene Videodigitalisiereinrichtung jeweils durch einen Anwendungstask belegt. Jedoch wird der größere Teil der Eingabe/Ausgabe-Vorrichtungen durch mehrere Anwendungstasks gemeinsam genutzt.
  • Ein externer Interrupt, der über den Abschluss der Eingabe/ Ausgabe-Operation informiert, wird durch einen Eingabe/Ausgabe-Controller zum Steuern der Eingabe/Ausgabe-Vorrichtung erzeugt. Bei existierenden Systemen kann die normale Eingabe/Ausgabe-Schnittstelle, die einen externen Interrupt für jeden Abschluss einer Eingabe/Ausgabe-Operation erfordert, nicht gemeinsam mit der Multimediadatenübertragungs-Schnittstelle vorliegen, die keinen externen Interrupt bei jedem Abschluss einer Eingabe/Ausgabe-Operation erzeugt.
  • Es ist eine Aufgabe der Erfindung, eine vereinheitlichte Anwendungsschnittstelle zu schaffen, die unabhängig von der Art der Vorrichtungen der Quelle und des Ziels bei Multimedia-Datenübertragungsvorgängen verwendbar ist.
  • Eine andere Aufgabe der Erfindung ist es, eine Anwendungsschnittstelle zu schaffen, bei der es nicht erforderlich ist, eine physikalische Eingabe/Ausgabe-Vorrichtung zu spezifizieren, so dass ein für eine bestimmte Hardwarevorrichtung entwickelter Anwendungstask auch auf einer anderen Hardwarevorrichtung laufen kann.
  • Eine andere Aufgabe der Erfindung ist es, dafür zu sorgen, dass Vorrichtungen wie eine Plattenlaufwerksvorrichtung und eine Netzwerk-Steuervorrichtung, die durch einen Anwendungstask unter Verwendung der normalen Eingabe/Ausgabe-Schnitt stelle, die einen Eingabe/Ausgabe-Abschlussinterrupt benötigt, und einen Anwendungstask unter Verwendung der Multimediadatenübertragungs-Schnittstelle, die den Eingabe/Ausgabe-Abschlussinterrupt unterdrückt, gemeinsam genutzt werden.
  • Eine andere Aufgabe der Erfindung ist es, zu verhindern, dass bei Daten, die durch einen der oben beschriebenen Tasks übertragen und eingegeben/ausgegeben werden, eine Verzögerung auftritt.
  • Um die oben beschriebenen Aufgaben zu lösen, sind durch die Erfindung die folgenden vier Anwendungsschnittstellen für Multimedia-Datenübertragung geschaffen. Hierbei kennzeichnen die Begriffe "Eingangsport" und "Ausgangsport" das Datenziel bzw. die Datenquelle. Wenn in der Plattenlaufwerksvorrichtung Dateien gespeichert werden, werden sie durch Dateinamen oder Dateideskriptoren gekennzeichnet. Wenn Kommunikationsvorrichtungen vorliegen, werden sie durch Socket- oder Kommunikationsportdeskriptoren gekennzeichnet.
  • Beim Initialisieren eines Eingangs- und eines Ausgangsports, oder danach, wird eine erste Anwendungsschnittstelle mit Portkennungen spezifiziert, und es wird erklärt, dass die Ports solche für Multimedia-Datenübertragung sind.
  • Eine zweite Anwendungsschnittstelle wird mit Portkennungen spezifiziert, die jedem dieser Ports eindeutig zugeordnet sind, um eine Kombination (Kanal) aus einem Eingangs- und einem Ausgangsport zu definieren, und der Kanal wird mit einer eindeutigen Kennung (Kanalkennung) versehen.
  • Eine dritte Anwendungsschnittstelle ist mit dieser Kanalkennung spezifiziert, und sie startet die Übertragung von Multimediadaten. Eine vierte Anwendungsschnittstelle ist mit dieser Kanalkennung spezifiziert, und sie stoppt die Über tragung der Multimediadaten.
  • Um diese Schnittstelle zu realisieren, verfügt ein erfindungsgemäßes Computersystem über eine Kanaltabelle, die die Zuordnung zwischen Eingabe/Ausgabe-Vorrichtungen, Ports und Kanälen angibt, eine Verarbeitungseinheit zum Eingeben von Daten in die Kanaltabelle sowie eine Verarbeitungseinheit zum automatischen Erzeugen eines Eingabe/Ausgabe-Befehls, zum Starten einer Eingabe/Ausgabe-Operation und zum Überwachen des Endes des Eingabe/Ausgabe-Befehls.
  • Ferner verfügt ein erfindungsgemäßes Computersystem über einen Statusmerker oder ein Statusflag, das für jede Eingabe/ Ausgabe-Vorrichtung anzeigt, ob sie eine Eingabe/Ausgabe-Verarbeitung an Echtzeit-Multimediadaten, wie Videobildern, ausführt, eine Verarbeitungseinheit zum Setzen des Statusflags, wenn die Übertragung von Multimediadaten an die Eingabe/Ausgabe-Vorrichtung unter Verwendung der dritten Anwendungsschnittstelle gestartet wird, eine Verarbeitungseinheit zum Rücksetzen des Statusflags, wenn die Übertragung von Multimediadaten an die Eingabe/Ausgabe-Vorrichtung unter Verwendung der vierten Anwendungsschnittstelle gestoppt wird, eine Verarbeitungseinheit zum Steuern des Ein/Aus-Zustands des externen Interrupts zum Zeitpunkt des Abschlusses der Eingabe/Ausgabe-Operation für die Eingabe/Ausgabe-Vorrichtung entsprechend dem Statusflag, wenn der Eingabe/Ausgabe-Befehl ausgegeben wird, und eine Verarbeitungseinheit zum Erkennen des Abschlusses der Eingabe/Ausgabe-Operation durch periodischen Abruf im Fall, wenn das Statusflag gesetzt ist und der externe Interrupt von der Eingabe/Ausgabe-Vorrichtung ausgeschaltet ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • 1 ist ein Diagramm, das die Konfiguration von Hardware eines erfindungsgemäßen Computersystems zeigt;
  • 2 ist ein Diagramm, das die Konfiguration von Software eines erfindungsgemäßen Computersystems zeigt;
  • 3 ist ein Diagramm, das die Struktur einer periodischen Kanaltabelle zeigt;
  • 4 ist ein Diagramm, das die Struktur einer Eingabe/Ausgabe-Befehlsschlange zeigt;
  • 5 ist ein Flussdiagramm, das den Verarbeitungsablauf eines Lese/Schreib-Moduls zeigt;
  • 6 ist ein Flussdiagramm, das den Verarbeitungsablauf eines Lese/Schreib-Abschlussverarbeitungsmoduls zeigt;
  • 7 ist ein Flussdiagramm, das den Verarbeitungsablauf eines periodisch angesteuerten Moduls zeigt;
  • 8 zeigt einen Teil einer Befehlsnachverarbeitung im Verarbeitungsablauf der 7;
  • 9 zeigt einen Teil einer Nächste-Periode-Startverarbeitung im Verarbeitungsablauf der 7;
  • 10 ist ein Flussdiagramm, das den Verarbeitungsablauf von Zyklischen-Port-Definieren zeigt;
  • 11 ist ein Flussdiagramm, das den Verarbeitungsablauf von Zyklischen-Kanal-Definieren; und
  • 12 ist ein Flussdiagramm, das den Verarbeitungsablauf von Zyklischen-Kanal-Starten zeigt.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Unter Bezugnahme auf die Zeichnung werden nun bevorzugte Ausführungsformen der Erfindung beschrieben.
  • (1) Systemkonfiguration
  • Nun wird die Systemkonfiguration der Hardware und der Software einer bevorzugten Ausführungsform grob beschrieben.
  • Die 1 zeigt die Hardwarekonfiguration. Hinsichtlich der Hardware sind ein Prozessor (CPU) 101, ein Hauptspeicher 102, ein externer Timer 103 und verschiedene Eingabe/Ausgabe-Controller 104 bis 107 über einen Bus 108 verbunden. Eingabe/Ausgabe-Vorrichtungen wie Plattenlaufwerke 109 bis 112 sowie Netzwerkadapter 113114 sind mit den Eingabe/Ausgabe-Controllern 104 bis 107 verbunden.
  • Die Eingabe/Ausgabe-Controller 104 bis 107 verfügen über DMA-Übertragungsfunktionen, und sie übertragen Daten entsprechend einer vom Prozessor 101 angegebenen Reihenfolge zwischen dem Hauptspeicher 102 und Eingabe/Ausgabe-Vorrichtungen. Vom Prozessor 101 an die Eingabe/Ausgabe-Controller 104 bis 107 gelieferte Befehle werden als Eingabe/Ausgabe-Befehle an den Hauptspeicher 102 geliefert. Die Eingabe/Ausgabe-Controller 104 bis 107 verfügen über die Funktion des gemeinsamen Verarbeitens einer Befehlskette, die dadurch erzeugt wird, dass mehrere Eingabe/Ausgabe-Befehle durch Zeiger verkettet werden. Für jeden Befehl in der Befehlskette kann das Betriebssystem (OS) spezifizieren, ob ein externer Interrupt erzeugt werden sollte, wenn die Operation gemäß dem Befehl abgeschlossen ist.
  • Der externe Timer 103 hat die Funktion des Ausgebens eines externen Interrupts an den Prozessor 101 mit festen Zeitin tervallen. Das Zeitintervall (die Periode) der Interrupts kann durch das Betriebssystem gesteuert werden.
  • Die 2 zeigt Softwarekomponenten in Zusammenhang mit der Erfindung. Wie bei der Hardware, wie bei den oben beschriebenen Eingabe/Ausgabe-Vorrichtungen, sorgt das Betriebssystem für eine Steuerung, um zu verhindern, dass das Anwendungsprogramm (der Benutzerprozess) dieselben in unvernünftiger Weise nutzt, und der Benutzerprozess nutzt die Hardware indirekt durch Ausgeben eines Systemaufrufs.
  • Um die durch den Benutzerprozess ausgegebenen Prozess-Eingabe/Ausgabe-Aufforderungen zu verarbeiten, existieren, innerhalb des Betriebssystems, ein Eingabe/Ausgabe-Puffer 205, Steuerdaten wie eine Eingabe/Ausgabe-Befehlsschlange 204, ein periodisch angesteuertes Statusflag 203 und eine periodische Kanaltabelle 211 sowie Softwaremodule wie ein Timerinterrupthändler 214, ein Eingabe/Ausgabe-Interrupthändler 208, ein periodisch angesteuertes Modul 212, ein Scheduler 209 und ein Eingabe/Ausgabe-Verarbeitungsmodul 201.
  • Das periodisch angesteuerte Statusflag 203 zeigt für jede Eingabe/Ausgabe-Vorrichtung an, ob die Übertragung von Multimediadaten aktiv ist oder nicht. Unter Verwendung eines Timerinterrupts von einem externen Timer 213 als Gelegenheit wird das periodisch angesteuerte Modul 212 gestartet. Genauer gesagt, unterbricht der Prozessor beim Auftreten eines Timerinterrupts ein aktuell ausgeführtes Programm, und er startet den Timerinterrupthändler 214. Dieser Händler 214 startet das periodisch angesteuerte Modul 212 über einen Scheduler 209. Wenn das periodisch angesteuerte Statusflag 203 gesetzt ist, nimmt das periodisch angesteuerte Modul 212 auf die periodische Kanaltabelle 211 Bezug, sie führt eine Eingabe/Ausgabe-Operations-Abschlussprüfung für Eingabe/Ausgabe-Vorrichtungen aus, die bei der Multimedia-Datenübertra gung aktiv sind, und sie führt die Startverarbeitung für den nächsten Eingabe/Ausgabe-Befehl aus. Wenn das periodisch angesteuerte Statusflag 203 rückgesetzt ist, prüft der Eingabe/Ausgabe-Interrupthändler 208 den Abschluss der Eingabe/Ausgabe-Operation für diese Eingabe/Ausgabe-Vorrichtung.
  • Das Eingabe/Ausgabe-Verarbeitungsmodul 201 verfügt über ein Lese/Schreib-Modul 202 und ein Lese/Schreib-Abschlussverarbeitungsmodul 210. Das Eingabe/Ausgabe-Verarbeitungsmodul 201 führt eine Verarbeitung für eine Vorrichtungs-Eingabe/ Ausgabe-Operation aus, die unter Verwendung der normalen Eingabe/Ausgabe-Schnittstelle vom Anwendungsschnittstelle angefordert wird. Andererseits führen die Module 215 bis 218 eine Verarbeitung zur Datenübertragung aus, wie sie unter Verwendung der Multimediadatenübertragungs-Schnittstelle von der Anwendungsschnittstelle angefordert wird. Diese Module werden von der CPU ausgeführt. Einzelheiten dieser Module werden später beschrieben.
  • (2) Multimediadatenübertragungs-Schnittstelle
  • Nun wird die durch die Erfindung geschaffene Anwendungsschnittstelle für Multimedia-Datenübertragung beschrieben.
  • Nachfolgend werden vier Arten von durch die Erfindung bereitgestellten Anwendungsschnittstellen in der durch das Anwendungsprogramm bewirkten Nutzungsreihenfolge beschrieben, nämlich Zyklischen-Port-Definieren, Zyklischen-Kanal-Definieren, Zyklischen-Kanal-Starten und Zyklischen-Kanal-Stoppen. Mit Ausnahme von für die Erfindung spezifischen Funktionsnamen und Begriffen folgen Ausdrücke in der folgenden Beschreibung den Funktionsnamen und Begriffen des Betriebssystems UNIX.
  • Beschreibungsform: Zyklischen-Port-Definieren (fd)
    Funktion: Initialisiert Eingabe/Ausgabe-Ports. Nachfolgend erfolgt Spezifizierung mit einer Portkennung, und es wird erklärt, dass der Port ein Port für Multimedia-Datenübertragung ist.
    Argument: Eine Portkennung fd ist ein Dateideskriptor, der als Rücklieferungswert eines offenen Systemaufrufs (im Fall einer Datei auf einer Platte) oder eines Socket-Systemaufrufs (im Fall einer Netzwerkkommunikation) erhalten wird.
    Rücklieferungswert: Portkennung (positive ganze Zahl). Wenn der Rücklieferungswert eine negative ganze Zahl ist, trat ein Fehler auf.
  • Beschreibungsform: Zyklischen-Kanal-Definieren (von, bis, Rate)
    Funktion: Spezifikation mit Portkennungen, die Ports eindeutig zugeordnet sind; definiert eine Kombination (Kanal) eines Eingangsports (von) und eines Ausgangsports (zu) und versorgt diesen Kanal mit einer eindeutigen Kennung (Kanalkennung).
    Argument: Das Argument "von" spezifiziert die Portkennung eines Eingangsports.
    Das Argument "zu" spezifiziert die Portkennung eines Ausgangsports.
    Das Argument "Rate" spezifiziert eine Datenübertragungsrate.
    Im Fall einer variablen Bitrate spezifiziert es die maximale Übertragungsrate.
    Rücklieferungswert: Kanalkennung (positive ganze Zahl). Wenn der Rücklieferungswert eine negative ganze Zahl ist, ist ein Fehler aufgetreten.
  • Beschreibungsform: Zyklischen-Kanal-Starten (Kanal)
    Funktion: Spezifikation mit einer Kanalkennung; startet die
    Multimedia-Datenübertragung auf diesem Kanal.
    Argument: Das Argument "Kanal" spezifiziert eine Kanalken nung.
    Rücklieferungswert: Der Rücklieferungswert ist im Fall einer normalen Beendigung null. Andernfalls ist ein Fehler aufgetreten.
  • Beschreibungsform: Zyklischen-Kanal-Stoppen (Kanal)
    Funktion: Spezifikation mit einer Kanalkennung; beendet die Multimedia-Datenübertragung in diesem Kanal. Außerdem wird der Kanal freigegeben.
    Argument: Das Argument "Kanal" spezifiziert eine Kanalkennung.
    Rücklieferungswert: Der Rücklieferungswert ist im Fall einer normalen Beendigung null. Andernfalls ist ein Fehler aufgetreten.
  • Im Anwendungsprogramm werden als Erstes die Datenquelle und das Datenziel dadurch in einen zugriffsfähigen Status gebracht, dass ein offener Systemaufruf bzw. ein Socket-Systemaufruf ausgegeben wird. Ferner wird sowohl für die Datenquelle als auch das Datenziel Zyklischen-Port-Definieren aufgerufen. Anschließend wird durch einmaliges Aufrufen von Zyklischen-Kanal-Definieren ein Kanal zur Datenübertragung definiert. Durch einmaliges Aufrufen von Zyklischen-Kanal-Starten wird die Datenübertragung gestartet. Nach diesem Modulaufruf wird die Datenübertragung vom System automatisch ausgeführt, und demgemäß kann das Anwendungsprogramm eine andere Verarbeitung ausführen, oder es kann beendet werden. Zyklischen-Kanal-Stoppen wird dann aufgerufen, wenn das Anwendungsprogramm die einmal gestartete Übertragung zwangsweise beendet oder den in Zyklischen-Kanal-Definieren definierten Kanal freigibt.
  • (3) Datenstruktur und Verarbeitung
  • Während im vorigen Abschnitt die Multimediadatenübertra gungs-Schnittstelle beschrieben wurde, werden im vorliegenden Abschnitt die Datenstruktur und die Verarbeitung durch das System zum Realisieren der Datenübertragung beschrieben.
  • Die periodisch angesteuerte Statusflagtabelle 203 verfügt über Flags für jeweilige Eingabe/Ausgabe-Vorrichtungen, und jedes Flag repräsentiert, ob sich die Vorrichtung im periodisch angesteuerten Zustand befindet. Hinsichtlich der Netzwerkadapter 113114 werden das Sendesystem und das Empfangssystem als jeweils unabhängige Vorrichtungen angesehen. Diese Tabelle 203 wird zum Systemstart-Zeitpunkt erzeugt und während des Systemsbetriebs im Hauptspeicher 102 platziert. Für eine Vorrichtung können mehrere Kanäle definiert werden. Wenn das Flag einer bestimmten Vorrichtung gesetzt ist, führt mindestens einer der die Vorrichtung betreffenden Kanäle eine Multimediaübertragung aus, und die Vorrichtung befindet sich im periodisch angesteuerten Zustand. Wenn das Flag rückgesetzt ist, führen alle die Vorrichtung betreffenden Kanäle keine Multimediaübertragung aus und die Vorrichtung befindet sich im normalen Betriebszustand. Bei Ausführung der Funktion Zyklischen-Kanal-Starten, wird das Flag der jeweiligen Vorrichtung gesetzt. Wenn ein aktiver Kanal als Ergebnis der Ausführung der Funktion Zyklischen-Kanal-Stoppen für die Vorrichtung verschwunden ist, wird das Flag rückgesetzt.
  • Die Struktur der periodischen Kanaltabelle 211 ist in der 3 dargestellt. Wie es in der 3 dargestellt ist, ist die Tabelle unterteilt, um jeweiligen Vorrichtungen zugewiesen zu werden. Durch Zeiger eines Indexabschnitts 301 wird auf Information (302309) mehrerer Kanäle, die zu jeweiligen Vorrichtungen gehören, gezeigt. Diese Tabelle 211 wird zum Systemstart-Zeitpunkt erzeugt und während des Systembetriebs im Hauptspeicher 102 platziert. Information (302 bis 309) betreffend die Kanäle, wird durch Ausführen der oben beschriebenen Funktion Zyklischen-Port-Definieren sowie der Funktion Zyklischen-Kanal-Definieren eingestellt.
  • Die periodische Kanaltabelle 211 verfügt über die folgenden Felder:
    • (a) Portkennung 302: Dort ist eine Kennung gespeichert, die eindeutig dem einschlägigen Eingabe/Ausgabe-Port zugewiesen ist.
    • (b) Eingabe/Ausgabe-Klassifizierung 303: Sie kennzeichnet die Eingabe/Ausgabe-Unterscheidung (oder Empfangen/Senden) für den einschlägigen Eingabe/Ausgabe-Port. Im Fall einer Plattenlaufwerksvorrichtung bedeutet "Eingabe" das Lesen von Daten von der Platte und "Ausgabe" bedeutet das Schreiben von Daten auf die Platte. Im Fall einer Netzwerkvorrichtung bedeutet "Eingabe" den Empfang eines Pakets vom Netzwerk, und "Ausgabe" bedeutet das Senden eines Pakets an das Netzwerk.
    • (c) Kanalkennung 304: Dort ist eine Kennung eines Kanals einschließlich des einschlägigen Eingabe/Ausgabe-Ports gespeichert.
    • (d) Kanalstatus 305: Dies kennzeichnet den Status des Kanals einschließlich des einschlägigen Eingabe/Ausgabe-Ports. D. h., ob der einschlägigen Kanal periodisch angesteuert wird oder nicht (d. h. aktiv ist oder nicht).
    • (e) Nummer 306 einer gepaarten Vorrichtung: Dort ist die Kennzahl einer Vorrichtung mit einem Eingabe/Ausgabe-Port als Paar mit dem einschlägigen Eingabe/Ausgabe-Ports zum Bilden eines Kanals gespeichert. Typischerweise unterscheidet sich eine Vorrichtung mit einem Eingangsport von der Vorrichtung mit einem Ausgangsport. (Im Fall einer Dateikopie können jedoch die beiden Vorrichtungen dieselbe Einzelvorrichtung bilden.)
    • (f) Kennung 307 eines gepaarten Ports: Dort ist die Kennung eines Eingabe/Ausgabe-Ports gespeichert, der ein Paar mit dem einschlägigen Eingabe/Ausgabe-Port bildet, um einen Ka nal zu erzeugen. Jeder einzelne Eingabe/Ausgabe-Port gehört nicht gleichzeitig zu mehreren Kanälen. Außerdem wird ein Kanal immer durch ein Paar aus einem Eingangsport und einem Ausgangsport erzeugt.
    • (g) Übertragungsrate 308: Dort ist die Eingabe/Ausgabe-Datenübertragungsrate für den einschlägigen Kanal (im Fall fester Bitraten) gespeichert. Im Fall variabler Bitraten ist die maximal zulässige Datenübertragungsrate gespeichert.
    • (h) Prozesskennung 309: Dort ist die Prozesskennung des Prozesses unter Verwendung des einschlägigen Kanals gespeichert. Es wird kein einzelner Kanal von mehreren Prozessen gleichzeitig genutzt. Wenn der Prozess anormal endet, wird die gerade ausgeführte Eingabe/Ausgabe-Verarbeitung abgebrochen und der einschlägigen Kanal wird automatisch freigegeben.
  • Die Struktur der Eingabe/Ausgabe-Befehlsschlange 204 ist in der 4 dargestellt. Dieser Eingabe/Ausgabe-Befehl wird durch das Zyklischen-Kanal-Starten-Modul, das Normal-Eingabe/Ausgabe-Modul und das periodisch angesteuerte Modul erzeugt. Dieser Eingabe/Ausgabe-Befehl ist ein Befehl, der als Anweisung an die Eingabe/Ausgabe-Steuerung geliefert wird. Die Eingabe/Ausgabe-Befehlsschlange 204 verfügt über einen Warteschlangenkopf 401 und eine Warteschlange bildende Befehle 402. Der Kopf 401 der Eingabe/Ausgabe-Befehlsschlange zeigt auf drei Arten von Warteschlangen für jede Vorrichtung. In jeder Warteschlange bilden die Eingabe/Ausgabe-Befehle 402 eine Warteschlange. Eine Warte-Warteschlange 414 ist eine Schlange zum Speichern, in der Empfangsreihenfolge, der durch die Anwendung ausgegebenen Anforderungen. Eine aktive Warteschlange 414 enthält Eingabe/Ausgabe-Befehle, die die Eingabe/Ausgabe-Operation starteten. Hinsichtlich der Eingabe/Ausgabe-Befehle in dieser Warteschlange 415 besteht die Möglichkeit, dass der Eingabe/Ausgabe-Controller aktuell auf die Befehle zugreift. Eine Abschluss-Warte- schlange 416 speichert Eingabe/Ausgabe-Befehle, für die die Datenübertragung durch Eingabe/Ausgabe-Vorrichtungen beendet wurde.
  • Der Warteschlangenkopf 401 wird zum Systemstart-Zeitpunkt erzeugt und während des Systembetriebs im Hauptspeicher platziert. Die oben beschriebenen Module erzeugen die Befehle 402 in einem Bereich des Hauptspeichers und verketten sie.
  • Der Eingabe/Ausgabe-Befehl 402 verfügt über die folgenden Felder:
    • (a) Zeiger 403 auf den nächsten Befehl: Dies ist ein Zeiger zum Verketten mehrerer Datenübertragungsbefehle. Hierbei wird angenommen, dass jede Vorrichtung über die Befehlsverkettungsfunktion verfügt.
    • (b) Pufferadresse 404: Sie kennzeichnet die oberste Adresse eines Puffers zum Übertragen von Daten durch jeden Befehl.
    • (c) Übertragungsdatenlänge 405: Sie spezifiziert die Bytegröße der durch jeden Befehl übertragenen Daten.
    • (d) Kopfbereichsadresse 406: Im Fall der Eingabe/Ausgabe-Controller 106 und 107 für Netzwerkvorrichtungen kennzeichnet die oberste Adresse des Bereichs zum Speichern des Kopfs des Kommunikationsprotokolls. Hierbei ist angenommen, dass die Eingabe/Ausgabe-Controller 106 und 107 für Netzwerkvorrichtungen über die sogenannte Kopfteil- und Kopfzusammenstellfunktion verfügen. Im Fall der Eingabe/Ausgabe-Controller 104 und 105 für Plattenlaufwerksvorrichtungen kennzeichnet das aktuelle Feld die Sektoradresse einer Platte in Verbindung mit einem Kopflängenfeld 407.
    • (e) Kopflänge 407: Im Fall der Eingabe/Ausgabe-Controller 106 und 107 für Netzwerkvorrichtungen kennzeichnet dies die Größe des Kopfs des Kommunikationsprotokolls. Im Fall der Eingabe/Ausgabe-Controller 104 und 105 für Plattenlaufwerksvorrichtungen kennzeichnet das aktuelle Feld die Sektor adresse einer Platte in Verbindung mit einem Kopfbereichs-Adressenfeld 406.
    • (f) Eingabe/Ausgabe-Klassifizierung 408: Sie spezifiziert die Eingabe/Ausgabe-Unterscheidung des einschlägigen Eingabe/Ausgabe-Befehls. Im Fall einer Plattenlaufwerksvorrichtung bedeutet "Eingabe" das Lesen von Daten von einer Platte, und "Ausgabe" bedeutet das Schreiben von Daten auf eine Platte. Im Fall einer Netzwerkvorrichtung bedeutet "Eingabe" das Empfangen eines Pakets vom Netzwerk, und "Ausgabe" bedeutet das Senden eines Pakets an das Netzwerk.
    • (g) Interruptsteuerungsflag 409: Wenn der Eingabe/Ausgabe-Controller die Ausführung des einschlägigen Eingabe/Ausgabe-Befehls abgeschlossen hat, spezifiziert das Interruptsteuerflag, ob der Interrupt an die CPU geliefert werden sollte. Wenn ein Interrupt erzeugt wurde, beendet die einschlägige Vorrichtung die Ausführung der Eingabe/Ausgabe-Operation, bis die CPU einen Interrupthändler ausführt und eine Interruptanforderung der Vorrichtung akzeptiert. Typischerweise wird durch Setzen des Interruptsteuerflags nur im Befehl am Ende der Befehlskette und durch Rücksetzen der Interruptsteuerflags in anderen Befehlen die Auftrittsanzahl von Interrupts verringert und die Belastung seitens der CPU gelindert.
    • (h) Abschlussflag 410: Es handelt sich um ein Flag, das anzeigt, ob der einschlägige Befehl vom Eingabe/Ausgabe-Controller bereits ausgeführt wurde. Bevor der Eingabe/Ausgabe-Controller gestartet wird, löscht die CPU dieses Feld. Wenn die Eingabe/Ausgabe-Operation für den einschlägigen Befehl abgeschlossen ist, trägt der Eingabe/Ausgabe-Controller einen Abschlusscode im aktuellen Feld ein. Durch Bezugnahme auf das aktuelle Feld kann die CPU-Seite die Abschlusssituation des Eingabe/Ausgabe-Befehls bestimmen.
    • (i) Portkennung 411: Dort ist die Portkennung eines Eingabe/Ausgabe-Ports gespeichert, der dem einschlägigen Eingabe/Ausgabe-Befehl zugeordnet ist.
    • (j) Prozesskennung 412: Dort ist die Prozesskennung des Prozesses gespeichert, der den einschlägigen Eingabe/Ausgabe-Befehl ausgab. Wenn das OS dem Prozess, von dem die Befehlsausgabe herrührte, darüber informiert, dass der Eingabe/Ausgabe-Befehl abgeschlossen wurde, bezieht sie sich auf das aktuelle Feld.
  • Nun wird die Verarbeitung durch das in der "Multimediadatenübertragungs-Schnittstelle" beschriebene Multimedia-Übertragungsmodul beschrieben.
  • Die 10 ist ein Flussdiagramm das Zyklischen-Port-Definieren-Moduls. Durch Bezugnahme auf eine durch das OS auf Grundlage eines durch ein Argument spezifizierten Dateideskriptors verwaltete Tabelle wird eine zugehörige Vorrichtungsnummer erhalten (Schritt 1001). Dann wird nach einem freien Datensatz für die der Vorrichtungsnummer zugeordnete periodische Kanaltabelle 211 gesucht (Schritt 1002). In der Portkennung 302 dieses Datensatzes wird der Dateideskriptor des Arguments gespeichert (Schritt 1003). Ferner wird die Prozesskennung des Anwendungsprogramms (Benutzerprozesses), das dieses Modul aufgerufen hat, hergeleitet und in der Prozesskennung 309 abgespeichert.
  • Die 11 ist ein Flussdiagramm des Zyklischen-Kanal-Definieren-Moduls. Zu allererst wird geklärt, dass die durch das Argument "von" spezifizierte Eingabeportkennung und die durch das Argument "an" spezifizierte Ausgabeportkennung bereits in periodischen Kanaltabelle 211 registriert sind (Schritt 1101). Dann wird ein Punkt eines Datensatzes in Zusammenhang mit dem Eingabeport der periodischen Kanaltabelle 211 eingetragen. Die Eingabe/Ausgabe-Klassifizierung 303 wird auf "Eingabe" gesetzt (Schritt 1102). In die Nummer 306 der gepaarten Vorrichtung und die Kennung 307 des gepaarten Ports wird die Information des Ausgabeports eingetragen (Schritt 1103). Dann wird ein Punkt eines Datensatzes in Zusammenhang mit dem Ausgabeport der periodischen Kanaltabelle 211 eingetragen. Die Eingabe/Ausgabe-Klassifizierung 303 wird auf "Ausgabe" gesetzt (Schritt 1104). In die Nummer 306 der gepaarten Vorrichtung und die Kennung 307 des gepaarten Ports wird die Information des Eingabeports eingetragen (Schritt 1105). Danach wird zwischen dem Eingabeport und dem Ausgabeport eine neue Kanalkennung zugewiesen, und diese wird in die Kanalkennungen 304 sowohl des Datensatzes seitens des Eingabeports als auch desjenigen seitens des Ausgabeports eingetragen (Schritt 1106). Die zugehörigen Kanalzustände 305 werden auf "Stopp" gesetzt (Schritt 1107). Schließlich wird die durch das Argument spezifizierte Übertragungsrate in die Übertragungsrate 308 beider Datensätze eingetragen (Schritt 1108).
  • Die 12 ist ein Flussdiagramm des Zyklischen-Kanal-Starten-Moduls. Zuallererst wird ermittelt, ob der durch das Argument spezifizierte Kanal in der periodischen Kanaltabelle 211 existiert (Schritt 1201). Wenn der Kanal nicht existiert, wird für eine Fehlerrücklieferung gesorgt (Schritt 1202). Wenn der Kanal existiert, werden Flags sowohl der eingangsseitigen Vorrichtung als auch der ausgangsseitigen Vorrichtung der Statusflagtabelle 203 für die periodische Ansteuerung geprüft (Schritt 1203). Wenn das Flag einer der Vorrichtungen. rückgesetzt ist, wird die Eingabe/Ausgabe-Befehlsschlange 401 untersucht, und es wird auf den Abschluss des Eingabe/Ausgabe-Befehls der Warte-Warteschlange und der aktiven Warteschlange der zugehörigen Vorrichtung gewartet (Schritt 1204). Danach werden die Flags beider Vorrichtungen gesetzt (Schritt 1205).
  • Anschließend wird der in der 4 dargestellte Befehl erzeugt. Daten werden nicht direkt vom Eingabe- zum Ausgabeport gesendet, sondern immer über den Hauptspeicher 102. Um die Datenübertragung auszuführen, ist es daher erforderlich, einen Eingabebefehl zum Senden von Daten vom Eingabeport zum Hauptspeicher sowie einen Ausgabebefehl zum Senden von Daten vom Hauptspeicher zum Ausgabeport zu erzeugen. Ferner ist es erforderlich, da die Datenmenge, die unter Verwendung eines Befehls gesendet werden kann, wegen Hardwareeinschränkungen beschränkt ist, erforderlich, mehrere Befehle zu erzeugen. In diesem Modul werden Eingabebefehle entsprechend der ersten einen Periode der Datenübertragung, wie sie in der Ansteuerungsperiode des periodisch angesteuerten Moduls, z. B. 10 ms, ausgeführt werden können, erzeugt und in der Warte-Warteschlange 414 registriert. Auf Grundlage der Übertragungsrate 308 in der periodischen Kanaltabelle 211 sowie der Ansteuerungsperiode wird die in einer Periode übertragene Datenmenge bestimmt (Schritt 1206). Ferner wird geprüft, ob die Übertragungsrate die durch die Hardware bestimmten Grenzmöglichkeiten überschreitet (Schritt 1207). Wenn die Übertragungsrate die Grenzmöglichkeiten überschreitet, wird für eine Fehlerrücklieferung gesorgt (Schritt 1208). Auf Grundlage der Menge an Übertragungsdaten erfolgt eine Berechnung zum Bestimmen, wieviele (N) Befehle dazu zu verwenden sind, für die Übertragung zu sorgen (Schritt 1209). Auf Grundlage des berechneten Wert von N werden 2N Puffer zur Eingabe/Ausgabe von Daten zugeordnet (Schritt 1210, 1212). Wenn nicht 2N Puffer zugeordnet werden können, wird für eine Fehlerrücklieferung gesorgt (Schritt 1211). Der Kanalzustand 305 der beide Ports betreffenden Datensätze in der periodischen Kanaltabelle wird auf "in Betrieb" gesetzt (Schritt 1213). Im Hauptspeicher werden entsprechend dem in der 4 dargestellten Befehlsformat N Eingabebefehle erzeugt, und diese werden in der Warte-Warteschlange 414 der eingabeseitigen Vorrichtung verkettet (d. h. in die Warteschlange eingestellt) (Schritt 1214). Das Interruptsteuerflag 209 jedes Befehls in der Warte-Warteschlange wird rückgesetzt (Schritt 1215) und es wird für eine Rückgabe gesorgt.
  • In diesem Zustand sind nur Eingabebefehle entsprechend der ersten einen Periode in die Warte-Warteschlange eingereiht. Die anschließende Verarbeitung wird vom periodisch angesteuerten Modul 212 übernommen. Die Operation dieses periodisch angesteuerten Moduls wird später beschrieben.
  • Im Zyklischen-Kanal-Stoppenmodul wird der Kanalzustand 305 des einschlägigen Kanals in der periodischen Kanaltabelle 211 auf "Stopp" gesetzt. Ferner werden die Datensätze des einschlägigen Kanals in der periodischen Kanaltabelle 211 gelöscht. Wenn alle zur selben Vorrichtung gehörenden anderen Kanäle im Stoppzustand vorliegen, wird das einschlägige Flag der Statusflagtabelle 203 für periodische Ansteuerung rückgesetzt.
  • Nun wird die durch die normale Eingabe/Ausgabe-Schnittstelle ausgeführte Eingabe/Ausgabe-Verarbeitung beschrieben. Diese normale Eingabe/Ausgabe-Schnittstelle entspricht der durch UNIX bereitgestellten Lese- oder Schreibfunktion. Da die normale Eingabe/Ausgabe-Schnittstelle und die Multimediadatenübertragungs-Schnittstelle dieselbe Vorrichtung gemeinsam nutzen, wird jedoch innerhalb des Moduls eine spezielle Verarbeitung ausgeführt.
  • Die 5 und 6 zeigen Flussdiagramme des Lese- und des Schreibmoduls.
  • Die in der 5 dargestellten Verarbeitungsschritte 501 bis 504 des Lese/Schreib-Moduls 202 und ein Verarbeitungsablauf, wie er folgt, wenn sich im Schritt 505 ergibt, dass das Statusflag betreffend die periodische Ansteuerung rückgesetzt ist (d. h., die Verarbeitungsschritte 506, 507, 508, 509, 510 und 511) sind vorhanden, um die Eingabe/Ausgabe-Verarbeitung im herkömmlichen Betriebssystem zu realisieren.
  • Von einem Dateideskriptor des Arguments wird eine Eingabe/ Ausgabe-Vorrichtung hergeleitet (Schritt 501). Im Hauptspeicher 102 wird ein Puffer zur Daten-Eingabe/Ausgabe zugeordnet. Es wird ein Eingabe/Ausgabe-Befehl erzeugt (Schritt 503). Dabei werden alle Interruptsteuerflags im Befehl rückgesetzt. Dieser Befehl wird in die Warte-Warteschlange 414 eingetragen (Schritt 504).
  • Dann wird das Flag der einschlägigen Vorrichtung in der Statusflagtabelle 203 für die periodische Ansteuerung geprüft (Schritt 505). Wenn das Flag rückgesetzt ist, wird darauf gewartet, dass die aktive Warteschlange 515 leer wird. Anders gesagt, wird, nachdem die aktuell ablaufende Eingabe/ Ausgabe beendet wurde (Schritte 505 und 507) der Inhalt der Warte-Warteschlange 414 unverändert in die aktive Warteschlange 415 verschoben (Schritt 508). Das Interruptsteuerflag 409 des am Hinterende der aktiven Warteschlange liegenden Befehls wird gesetzt (Schritt 509). Danach wird ein Eingabe/Ausgabe-Controller gestartet (Schritt 510) und es wird auf den Abschluss der Eingabe/Ausgabe-Operation gewartet (Schritt 511). Der Eingabe/Ausgabe-Controller führt eine Daten-Eingabe/Ausgabe entsprechend dem Befehl in der aktiven Warteschlange aus.
  • Wenn das Statusflag für die periodische Ansteuerung der zugehörigen Vorrichtung gesetzt ist, erzeugt das aktuelle Modul einen Befehl und trägt diesen in die Warte-Warteschlange 414 ein (Schritt 504), und danach wird der Eingabe/Ausgabe-Controller nicht tatsächlich gestartet. Der tatsächliche Start des Eingabe/Ausgabe-Controllers wird durch das periodisch angesteuerte Modul 212 übernommen, und das Modul gelangt in den Wartezustand (Schritt 511).
  • Wenn das Statusflag für die periodische Ansteuerung rückge setzt ist, wird der Wartezustand durch den Eingabe/Ausgabe-Abschlussinterrupt vom Eingabe/Ausgabe-Controller aufgehoben. Wenn das Statusflag für periodische Ansteuerung gesetzt ist, wird der Wartezustand durch eine vom periodisch angesteuerten Modul gelieferte Meldung aufgehoben. Außerdem wird die in der 6 dargestellte Verarbeitung durch das Lese/ Schreib-Abschlussverarbeitungsmodul ausgeführt.
  • Wenn das Statusflag für periodische Ansteuerung in der 5 rückgesetzt ist, wird der Eingabe/Ausgabe-Befehl aus der aktiven Warteschlange 415 ausgetragen (Schritte 602 und 603). Wenn das Statusflag für periodische Ansteuerung gesetzt ist, wird ein Austragen aus der Abschluss-Warteschlange 416 ausgeführt (Schritte 604 und 605). Danach wird der Bereich für den abgeschlossenen Eingabe/Ausgabe-Befehl und den für die Daten-Eingabe/Ausgabe verwendeten Puffer freigegeben (Schritte 606 und 607).
  • In den 7 und 9 ist ein Flussdiagramm für das periodisch angesteuerte Modul 212 dargestellt. Dieses periodisch angesteuerte Modul wird durch einen Timerinterrupt als Trigger periodisch gestartet.
  • Die in der 7 dargestellte Verarbeitung durch das periodisch angesteuerte Modul 212 besteht aus zwei Teilen, nämlich einer Nachverarbeitung eines innerhalb einer Periode abgeschlossenen Eingabe/Ausgabe-Befehls sowie dem Start eines in der nächsten einen Periode auszuführenden Eingabe/ Ausgabe-Befehls. Bei jeder Verarbeitung werden Vorrichtungen in der Reihenfolge ihrer Nummer durchgefahren, und es wird untersucht, ob sie sich im periodisch angesteuerten Zustand befinden (Schritte 701, 702, 704, 706, 707, 709 und 710). Im Fall des periodisch angesteuerten Zustand werden ein Befehlsnachverarbeitungsmodul und ein Nächste-Periode-Startmodul aufgerufen (Schritte 800 und 900).
  • In der 8 ist ein Flussdiagramm des dem Schritt 800 entsprechenden Befehlsnachverarbeitungsmoduls dargestellt. Zuallererst werden in der aktiven Warteschlange 415 eingetragene Eingabe/Ausgabe-Befehle einzeln entnommen (Schritt 801). Es wird ermittelt, ob der einschlägige Befehl in Zusammenhang mit der Multimedia-Datenübertragung (periodische Datenübertragung) steht, wozu auf die Portkennung 411 in den Befehlen und auf die periodische Kanaltabelle 211 Bezug genommen wird (Schritt 802). Im Fall einer Nicht-Multimedia-Datenübertragung wird der einschlägige Befehl in die Abschluss-Warteschlange 813 verschoben (Schritt 813). Im Fall einer Multimedia-Datenübertragung wird ermittelt, ob der Kanal aktiv ist, wozu auf den Kanalstatus 305 in der periodischen Kanaltabelle 211 Bezug genommen wird (Schritt 803), und es wird das Abschlussflag 410 des einschlägigen Eingabe/Ausgabe-Befehls geprüft (Schritt 804). Wenn die Ausführung des einschlägigen Eingabe/Ausgabe-Befehls noch nicht abgeschlossen ist, d. h., wenn die Datenübertragung einer Periode nicht während einer Periode abgeschlossen ist, erfolgt die Verzweigung zu einer Fehlerverarbeitung 805 und die anschließende Eingabe/Ausgabe betreffend den einschlägigen Kanal wird gestoppt (Schritt 805).
  • Wenn sich im Schritt 806 ergibt, dass der abgeschlossene Eingabe/Ausgabe-Befehl einen Eingabeprozess betrifft, werden Vorbereitungen zur Übertragung der eingegebenen Daten an einen Ausgabeport in der nächsten Periode getroffen (Schritte 807, 808, 809 und 810). Wenn sich im Schritt 806 ergibt, dass der abgeschlossene Eingabe/Ausgabe-Befehl einen Ausgabeprozess betrifft, wird der einschlägige Eingabe/Ausgabe-Befehl gelöscht (Schritt 811). Während im oben beschriebenen Eingabe/Ausgabe-Starten-Modul der Dateneingabebefehl in einem Eingabeport an den Hauptspeicher erzeugt wird, wird in diesem Fall unter Verwendung des Eingabebefehls ein Teil um geschrieben, und es wird ein Datenausgabebefehl vom Hauptspeicher an einen Ausgabeport erzeugt (Schritte 807 und 808). Auch hinsichtlich des Datenpuffers wird der für die Eingabeverarbeitung verwendete Puffer unverändert an die Ausgabeverarbeitung übergeben. Dieser Ausgabebefehl wird in die Warte-Warteschlange 414 der Ausgabevorrichtung eingereiht (Schritt 809). Während im Zyklischen-Kanal-Starten-Modul nur Eingabebefehle für die erste eine Periode erzeugt werden, werden Eingabebefehle für die nächste Periode unter Verwendung von in der aktiven Warteschlange enthaltenen Eingabebefehlen erzeugt. Die Pufferadresse 404 und die zu verwendende Adresse 406 der Vorrichtung, von der die Eingabe herrührte, werden umgeschrieben, und das Abschlussflag 410 wird rückgesetzt, und es wird das Einreihen in die Warteschlange 414 der Eingabevorrichtung ausgeführt (Schritt 810). Das Erzeugen von Eingabebefehlen wird in jeder Periode fortgesetzt, bis die Übertragung aller Daten vom Eingabeport abgeschlossen ist. Daher werden die Eingabe- und die Ausgabeoperation in einem Doppelpuffersystem parallel ausgeführt, und die Ausgabeoperation wird mit einer Verzögerung von einer Periode im Vergleich zur Eingabeoperation ausgeführt.
  • Die bisher beschriebene Verarbeitung wird ausgeführt, bis die aktive Warteschlange 415 leer wird (Schritt 812).
  • In der 9 ist ein Flussdiagramm des dem Schritt 900 entsprechenden Nächste-Periode-Startmoduls dargestellt. Der Inhalt der Warteschlange 414 für jede Vorrichtung wird in die aktive Warteschlange 415 verschoben (Schritt 901). Es wird ein Eingabe/Ausgabe-Controller gestartet (Schritt 902). Dieser Eingabe/Ausgabe-Controller führt eine Daten-Eingabe/Ausgabe-Operation entsprechend einem in der aktiven Warteschlange 415 enthaltenen Befehl aus. Ferner hebt der Eingabe/Ausgabe-Controller, um eine Nacharbeitung eines durch die normale Eingabe/Ausgabe-Schnittstelle erzeugten Eingabe/Aus gabe-Befehls auszuführen, der innerhalb einer Periode abgeschlossen wurde (durch den Schritt 813 in die Abschluss-Warteschlange verschobener Eingabe/Ausgabe-Befehl) den Wartezustand des Lese/Schreib-Abschlussverarbeitungsmoduls 210 auf (Schritt 903).
  • Das periodisch angesteuerte Modul wiederholt die oben beschriebene Verarbeitung mit einer vorbestimmten Periode.
  • Beim vorliegenden Beispiel informiert das periodisch angesteuerte Modul das Anwendungsprogramm nicht darüber, dass die Multimedia-Datenübertragung abgeschlossen wurde. Alternativ kann das periodisch angesteuerte Modul das Anwendungsprogramm darüber informieren, dass die Multimedia-Datenübertragung abgeschlossen wurde oder aufgrund eines Fehlers abgebrochen wurde. Auch kann der Übertragungsdatensatz z. B. in einer Logdatei abgespeichert werden, und es kann z. B. die Situation der Datenübertragung durch einen Befehl angezeigt werden.
  • So können die Multimedia-Datenübertragung und die normale Eingabe/Ausgabe-Verarbeitung gleichzeitig für dieselbe Vorrichtung ausgeführt werden.
  • Fig. 1
  • 101
    Prozessor
    102
    Hauptspeicher
    104–107
    Eingabe/Ausgabe-Controller
  • Fig. 2
  • 201
    Eingabe/Ausgabe-Verarbeitungsmodul
    202
    Lese/Schreib-Modul
    203
    Statusflagtabelle betreffend periodische Ansteuerung
    204
    Eingabe/Ausgabe-Befehlswarteschlange
    205
    Eingabe/Ausgabe-Puffer
    208
    Eingabe/Ausgabe-Interrupthändler
    209
    Scheduler
    210
    Lese/Schreib-Abschlussverarbeitungsmodul
    211
    periodische Kanaltabelle
    211
    periodisch angesteuertes Modul
    214
    Timerinterrupthändler
    215
    Zyklischen-Port-Definieren-Modul
    216
    Zyklischen-Kanal-Definieren-Modul
    217
    Zyklischen-Kanal-Start-Modul
    218
    Zyklischen-Kanal-Stopp-Modul
    Control
    Steuerung
    DMA Transfer
    DMA-Übertragung
    Reference
    Bezugnahme
    Update
    Aktualisierung
  • Fig. 3
  • 211
    periodische Kanaltabelle
    302
    Portkennung
    303
    Eingabe/Ausgabe-Klassifizierung
    304
    Kanalkennung
    305
    Kanalstatus
    306
    Nummer der gepaarten Vorrichtung
    307
    Kennung des gepaarten Ports
    308
    Übertragungsrate
    309
    Prozesskennung
    Device Number
    Vorrichtungsnummer
    Pointer
    Zeiger
  • Fig. 4
  • 401
    Kopf der Eingabe/Ausgabe-Befehlsschlange
    403
    Zeiger auf den nächsten Befehl
    404
    Pufferadresse
    405
    Übertragungsdatenlänge
    406
    Kopfbereichsadresse
    407
    Kopflänge
    408
    Eingabe/Ausgabe-Klassifizierung
    409
    Interruptsteuerflag
    410
    Abschlussflag
    411
    Portkennung
    412
    Prozesskennung
    413
    Vorrichtungsnummer
    414
    Zeiger auf die Warte-Warteschlange
    415
    Zeiger auf die aktive Warteschlange
    416
    Zeiger auf die Abschlusswarteschlange
    Head
    Kopf
    Tail
    Hände
  • Fig. 5
  • 501
    Eingabe/Ausgabe-Vorrichtung aus dem Dateideskriptor herleiten
    502
    Freien Eingabe/Ausgabe-Puffer zuordnen
    503
    Eingabe/Ausgabe-Befehl erzeugen (Interruptsteuerflags 409 rücksetzen)
    504
    erzeugten Eingabe/Ausgabe-Befehl zur Warte-Warte schlange 414 hinzufügen
    505
    Statusflag 203 für periodische Ansteuerung prüfen
    506
    Ist die aktive Warteschlange 415 leer?
    507
    Warten auf den Abschluss der Eingabe/Ausgabe-Operation
    508
    Verschieben des Inhalts der Warte-Warteschlange 414 in die aktive Warteschlange 415
    509
    Setzen des Interruptsteuerflags 409 des Befehls, der sich am Hinterende der aktiven Warteschlange befindet
    510
    Starten des Eingabe/Ausgabe-Controllers
    511
    Warten auf den Abschluss der Eingabe/Ausgabe-Operation
    No
    nein
    Read/Write Module
    Lese/Schreib-Modul
    To Read/Write Completion Processing Module
    zum Lese/ Schreib-Abschlussverarbeitungsmodul
    Yes
    ja
  • Fig. 6
  • 601
    Prüfen des Statusflags 203 betreffend periodische Ansteuerung
    602
    Herausnehmen des abgeschlossenen Eingabe/Ausgabe-Befehls aus der aktiven Warteschlange 415
    603
    Löschen des Zeigers 415 der aktiven Warteschlange
    604
    Entnehmen des abgeschlossenen Eingabe/Ausgabe-Befehls aus der Abschluss-Warteschlange 416
    605
    Löschen des Zeigers 416 der Abschlusswarteschlange
    606
    Löschen des abgeschlossenen Eingabe/Ausgabe-Befehls
    607
    Freigeben des Puffers
    Off
    aus
    On
    ein
    Read/Write Completion Processing Module
    Lese/Schreib-Abschlussverarbeitungsmodul
    Return
    zurück
  • Fig. 7
  • 701
    Vorrichtungsnummer = 1
    702
    Statusflag 203 betreffend periodische Ansteuerung gesetzt?
    704
    Vorrichtungsnummer = Vorrichtungsnummer +1
    705
    Vorrichtungsnummer > Anzahl der Vorrichtungen?
    706
    Vorrichtungsnummer = 1
    707
    Statusflag 203 betreffend periodische Ansteuerung gesetzt?
    709
    Vorrichtungsnummer = Vorrichtungsnummer + 1
    710
    Vorrichtungsnummer > Anzahl der Vorrichtungen?
    800
    Nachverarbeitung des Befehls
    900
    Start der nächsten Periode
    No
    nein
    Pause Until Next Start
    Pause bis zum nächsten Start
    Periodic Driven Module
    periodisch angesteuertes Modul
    Yes
    ja
  • Fig. 8
  • 801
    X ← Eingabe/Ausgabe-Befehl, der sich am Kopf der aktiven Warteschlange 415 befindet (Herausnehmen aus der Warteschlange)
    802
    Kanal?
    803
    Kanalstatus?
    804
    Abschlussflag 410 von X?
    805
    Fehler: Die angeforderte Übertragungsrate kann nicht unterstützt werden
    806
    Eingabe/Ausgabe-Klassifizierung 408 von X?
    807
    Erzeugen einer Kopie von Y ← X; Eingabe/Ausgabe-Klassifizierung 408 von ← "Ausgabe"; Portkennung 411 von Y ← Kennung 307 des gepaarten Ports; Abschlussflag 410 von Y ← Rücksetzen
    808
    Wenn die gepaarte Vorrichtung ein Netzwerk ist, Kopf erzeugen
    809
    Y in die Warte-Warteschlange der gepaarten Vorrichtung eintragen
    810
    Aktualisieren der X-Pufferadresse; Abschlussflag 410 von X ← Rücksetzen; Aktualisieren der Eingangsdatenadressen 406 und 407; Eintragen von X in die Warte-Warteschlange 414
    811
    X löschen
    812
    Ist die aktive Warteschlange 415 leer?
    813
    Eintragen von X in die Abschlusswarteschlange 416
    Check Up Termination Of Command Of Preceding Period
    Abschluss des Befehls der vorigen Periode prüfen
    Command Postprocessing
    Befehls-Nachverarbeitung
    Create Input Command Of Next Period
    Eingabebefehl für die nächste Periode erzeugen
    Create Output Command
    Ausgabebefehl erzeugen
    No
    nein
    Off
    aus
    On
    ein
    Operation
    Operation ausführen
    Return
    zurück
    Stop
    Stopp
    Yes
    ja
  • Fig. 9
  • 901
    Warte-Warteschlange 414 der einschlägigen Vorrichtung in die aktive Warteschlange 415 verschieben
    902
    Starten des Eingabe/Ausgabe-Controllers
    903
    Information an das Lese/Schreib-Abschlussverarbeitungsmodul
    Next Period Start
    Start der nächsten Periode
    Return
    zurück
  • Fig. 10
  • 1001
    Erhalten der Vorrichtungsnummer aus dem Dateideskriptor des Arguments
    1002
    Suche nach einem leeren Datensatz in der periodischen Kanaltabelle 211
    1003
    Einspeichern des Dateideskriptors in die Portkennung 302
    1004
    Einspeichern der Prozesskennung des Benutzerprozesses in das Prozesskennungsfeld 309
    Define-Cyclic-Port
    Zyklischen-Port-Definieren
    Return
    zurück
  • Fig. 11
  • 1101
    Existenz des Arguments "von" und des Arguments "an" klären
    1102
    Eingabe/Ausgabe-Klassifizierung 303 des Eingabeports auf "Eingabe" setzen
    1103
    Ausgabeport in der Nummer 306 der gepaarten Vorrichtung und der Kennung 307 des gepaarten Ports im Eingangsport eintragen
    1104
    Eingabe/Ausgabe-Klassifizierung 303 des Ausgabeports auf "Ausgabe" setzen
    1105
    Eingabeport in die Nummer 306 der gepaarten Vorrichtung und die Kennung 307 des gepaarten Ports des Ausgangsports eintragen
    1106
    Neue Kanalkennung zuweisen und diese in die Kanalkennungen 304 beider Ports eintragen
    1107
    Kanalzustände 305 beider Ports auf "Stopp" setzen
    1108
    Übertragungsrate des Arguments in die Übertragungsraten 308 beider Ports eintragen
    Define-Cyclic-Channel
    Zyklischen-Kanal-Definieren
    Return
    zurück
  • Fig. 12
  • 1201
    Ist der Kanal korrekt eingestellt?
    1202
    Fehler: Noch nicht initialisiert
    1203
    Statusflag 203 betreffend periodische Ansteuerung?
    1204
    Warten auf den Abschluss des gerade ausgeführten Eingabe/Ausgabe-Befehls
    1205
    Statusflag 203 betreffend periodische Ansteuerung setzen
    1206
    Datenübertragungsmenge für eine Periode berechnen
    1207
    Entspricht die Übertragungsrate der Grenze oder ist sie kleiner?
    1208
    Fehler: Überschreiten der Übertragungsratengrenze
    1209
    Berechnen der Anzahl (N) von Eingangsbefehlen
    1210
    Können N × 2 Eingabe/Ausgabe-Puffer zur Verfügung gestellt werden?
    1211
    Fehler: Unzureichende Puffer
    1212
    Zuordnen von N × 2 Eingabe/Ausgabe-Puffern
    1213
    Kanalstatus auf "Operationsausführung" setzen
    1214
    N Eingangsbefehle erzeugen und Einreihen derselben in die Schlange 414
    1215
    Interruptsteuerflag jedes Befehls rücksetzen
    No
    nein
    Off
    aus
    On
    ein
    Return
    zurück
    Start-Cyclic-Channel
    Zyklischen-Kanal-Starten
    Yes
    ja

Claims (8)

  1. Verfahren zum Übertragen von Multimediadaten von einem Eingabegerät an ein Ausgabegerät in einem mehrere Ein/Ausgabegeräte aufweisenden Computersystem, wobei: Ursprung und Ziel für die Multimediadaten-Übertragung bestimmt werden und der Beginn der Multimediadaten-Übertragung von einem Anwendungsprogramm angewiesen wird, und die Multimediadaten-Übertragung unter Verwendung eines periodischen angesteuerten Programms (212) nach der von dem Anwendungsprogramm erteilten Anweisung durchgeführt wird, wobei das Anwendungsprogramm nach Erteilen der Anweisung zum Übertragungsbeginn unabhängig vom Zustand der Multimediadaten-Übertragung andere Verarbeitungen durchführen kann, und das periodische angesteuerte Programm mit einer vorgegebenen Periode arbeitet, die Multimediadaten unterteilt und sie in mehreren Perioden überträgt.
  2. Verfahren zum Übertragen von Multimediadaten nach Anspruch 1, wobei eine Ein/ Ausgabesteuerung (104107) zur Steuerung von an Multimediadaten-Übertragung beteiligten Ein/Ausgabegeräten derart gesteuert wird, daß sie keinen den Abschluß des Ein/Ausgabevorgangs angebenden Interrupt erzeugt, und wobei der Abschluß des Ein/Ausgabevorgangs von dem periodischen angesteuerten Programm erfaßt wird.
  3. Verfahren zum Übertragen von Multimediadaten nach Anspruch 2, wobei in dem Fall, daß während der Multimedia-Übertragung ein weiteres Anwendungsprogramm einen nicht-periodischen Daten-Ein/Ausgabevorgang mit einem Ein- oder einem Ausgabegerät durchführt: das weitere Anwendungsprogramm eine Daten-Ein/Ausgabeanweisung ausgibt und den Abschluß des Daten-Ein/Ausgabevorgangs abwartet, und das periodische angesteuerte Programm bei Empfang der Daten-Ein/Ausgabeanweisung die Ein/Ausgabeverarbeitung mit dem Gerät durchführt und das weitere Anwendungsprogramm davon benachrichtigt, daß der Daten-Ein/Ausgabevorgang abgeschlossen ist.
  4. Verfahren zum Übertragen von Multimediadaten nach Anspruch 1, wobei das Anwendungsprogramm jeweils Ursprungs- und Ziel-Ports unter Verwendung von Ursprung und Ziel der Daten angebenden Portkennungen initialisiert, unter Verwendung einer Eingangsport- und einer Ausgangsport-Kennung einen für die Übertragung zu verwendenden Kanal bestimmt, und unter Verwendung einer diesen Kanal angebenden Kanalkennung den Übertragungsbeginn anweist.
  5. Computersystem mit mehreren Ein/Ausgabegeräten, umfassend: eine Gruppe von Multimediadaten-Übertragungsmoduln (215218), die bei Aufruf durch ein Anwendungsprogramm zum Zeitpunkt einer Multimediadaten-Übertragung von einem Eingangs- an ein Ausgangsgerät einen Datenursprung, ein Datenziel und einen Datenübertragungskanal sowie Beginn und Ende der Datenübertragung bestimmen, eine Gruppe von Daten-Ein/Ausgabemoduln (201), die bei Aufruf seitens eines Anwendungsprogramms zum Zeitpunkt der Durchführung eines nicht-periodischen Daten-Ein/Ausgabevorgangs in Verbindung mit einem Ein/Ausgabegerät einen Daten-Ein/Ausgabevorgang durchführen, und ein periodisch aktiviertes periodisches angesteuertes Programm (212), das bei Vorliegen einer von dem Multimediadaten-Übertragungsmodul erteilten Anweisung zum Übertragungsbeginn die zu übertragenden Daten unterteilt und die Übertragung in mehreren Perioden durchführt und bei Vorliegen einer während der Multimediadaten-Übertragung von der Daten-Ein/Ausgabe-Modulgruppe erteilten Ein/Ausgabeanweisung bezüglich eines Gerätes den Daten-Ein/Ausgabevorgang durchführt und eine Nachricht über den Abschluß des Ein/Ausgabevorgangs an die Modulgruppe zurückgibt.
  6. Computersystem nach Anspruch 5, wobei in dem Fall, daß sich das betreffende Gerät des Ein/Ausgabevorgangs in einer Multimediadaten-Übertragung befindet, die Daten-Ein/Ausgabe-Modulgruppe das periodische angesteuerte Programm veranlaßt, den Ein/Ausgabevorgang durchzuführen, und in dem Fall, daß sich das jeweilige Gerät des Ein/Ausgabevorgangs nicht in einer Multimediadaten-Übertragung befindet, die Daten-Ein/Ausgabe-Modulgruppe den Ein/Ausgabevorgang darin durchführt.
  7. Computersystem nach Anspruch 5, mit ferner einer periodischen angesteuerten Statusmerkertabelle (203), die für jedes Gerät einen Merker aufweist, der angibt, ob sich das Gerät in einer Multimediadaten-Übertragung befindet, und die von der Multimediadaten-Übertragungsmodulgruppe gesetzt/gelöscht wird, und einer periodischen Kanaltabelle (211), die für jedes Gerät eine Information enthält, die für die das Gerät betreffende Multimedia-Übertragung benutzt wird, wobei die periodische Kanaltabelle von der Multimediadaten-Übertragungsmodulgruppe aktualisiert wird.
  8. Maschinenlesbares Programmspeichergerät, in dem gespeichert sind: eine Gruppe von Multimediadaten-Übertragungsmoduln (215218), die bei Aufruf seitens eines Anwendungsprogramms während einer Multimediadaten-Übertragung von einem Eingabe- an ein Ausgabegerät einen Datenursprung, ein Datenziel und einen Datenübertragungskanal sowie Beginn und Ende der Datenübertragung bestimmen, eine Gruppe von Daten-Ein/Ausgabemoduln (201), die bei Aufruf seitens eines Anwendungsprogramms während der Durchführung eines nicht-periodischen Daten-Ein/Ausgabevorgangs in Verbindung mit einem Ein/Ausgabegerät einen Daten-Ein/Ausgabevorgang durchführen, und ein periodisch aktiviertes periodisches angesteuertes Programm (212), das bei Vorliegen einer von dem Multimediadaten-Übertragungsmodul erteilten Anweisung zum Übertragungsbeginn die Daten unterteilt und die Übertragung in mehreren Perioden durchführt und bei Vorliegen einer von der Daten-Ein/Ausgabe-Modulgruppe erteilten Ein/Ausgabeanweisung bezüglich eines Geräts während einer Multimediadaten-Übertragung den Daten-Ein/Ausgabevorgang durchführt und eine Nachricht über den Abschluß des Ein/Ausgabevorgangs an die Modulgruppe zurückgibt.
DE69628798T 1995-10-16 1996-10-11 Verfahren zur Übertragung von Multimediadaten Expired - Lifetime DE69628798T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26677595 1995-10-16
JP26677595 1995-10-16

Publications (2)

Publication Number Publication Date
DE69628798D1 DE69628798D1 (de) 2003-07-31
DE69628798T2 true DE69628798T2 (de) 2004-04-29

Family

ID=17435532

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69628798T Expired - Lifetime DE69628798T2 (de) 1995-10-16 1996-10-11 Verfahren zur Übertragung von Multimediadaten

Country Status (3)

Country Link
US (3) US5892968A (de)
EP (1) EP0768609B1 (de)
DE (1) DE69628798T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0768609B1 (de) * 1995-10-16 2003-06-25 Hitachi, Ltd. Verfahren zur Übertragung von Multimediadaten
US7116635B2 (en) * 1996-03-28 2006-10-03 Hitachi, Ltd. Process execution method and apparatus
US6400819B1 (en) * 1996-03-28 2002-06-04 Hitachi, Ltd. Method and apparatus for executing communication in real-time and data structure for real-time data communication
KR100243271B1 (ko) * 1996-12-20 2000-02-01 윤종용 광 디스크 데이타 재생 시스템의 명령 대기 장치 및 방법
US6195345B1 (en) * 1997-12-03 2001-02-27 Ericsson Messaging Systems, Inc. High capacity multimedia messaging exchanges
JP3525070B2 (ja) * 1999-01-27 2004-05-10 松下電器産業株式会社 アクセス制御装置及びアクセス方法
US6782465B1 (en) * 1999-10-20 2004-08-24 Infineon Technologies North America Corporation Linked list DMA descriptor architecture
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US20030191816A1 (en) * 2000-01-11 2003-10-09 Spoovy, Llc System and method for creating and delivering customized multimedia communications
US6754716B1 (en) 2000-02-11 2004-06-22 Ensim Corporation Restricting communication between network devices on a common network
US7343421B1 (en) 2000-02-14 2008-03-11 Digital Asset Enterprises Llc Restricting communication of selected processes to a set of specific network addresses
US6948003B1 (en) 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US7143024B1 (en) 2000-07-07 2006-11-28 Ensim Corporation Associating identifiers with virtual processes
US6909691B1 (en) 2000-08-07 2005-06-21 Ensim Corporation Fairly partitioning resources while limiting the maximum fair share
US6732211B1 (en) * 2000-09-18 2004-05-04 Ensim Corporation Intercepting I/O multiplexing operations involving cross-domain file descriptor sets
DE10051147B4 (de) * 2000-10-16 2005-04-14 Siemens Ag Verfahren zum Zugriff auf ein IP-Netz und zur Arbeit in diesem
US7219354B1 (en) 2000-12-22 2007-05-15 Ensim Corporation Virtualizing super-user privileges for multiple virtual processes
JP4227846B2 (ja) * 2003-06-18 2009-02-18 Necインフロンティア株式会社 マルチメディアデータ転送システム、呼接続制御装置及びそれらに用いる端末連携方法並びにそのプログラム
EP1653354A4 (de) * 2003-08-04 2008-03-26 Hitachi Ltd Echtzeit-steuersystem
TWI252628B (en) * 2004-08-04 2006-04-01 Apacer Technology Inc Multimedia device having wireless transmission function
US8595748B1 (en) * 2007-12-21 2013-11-26 Ibiquity Digital Corporation Systems and methods for transmitting and receiving large objects via digital radio broadcast
WO2009150702A1 (en) * 2008-06-13 2009-12-17 Thomson Licensing Apparatus and method for displaying log information
CN101674154B (zh) * 2008-09-08 2012-12-19 鸿富锦精密工业(深圳)有限公司 通信系统及通信方法
EP2381364A4 (de) * 2009-01-15 2012-01-04 Ibm Vorrichtung, verfahren und computerprogramm zur unterstützung einer datenverbindung unter mehreren anwendungen
US9258257B2 (en) * 2013-01-10 2016-02-09 Qualcomm Incorporated Direct memory access rate limiting in a communication device
US20150186180A1 (en) * 2013-12-30 2015-07-02 David W. Schroth Systems and methods for affinity dispatching based on network input/output requests

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060140A (en) * 1986-01-16 1991-10-22 Jupiter Technology Inc. Universal programmable data communication connection system
US4823304A (en) 1987-01-15 1989-04-18 International Business Machines Incorporated Method of providing synchronous message exchange in an asychronous operating environment
US5475860A (en) * 1992-06-15 1995-12-12 Stratus Computer, Inc. Input/output control system and method for direct memory transfer according to location addresses provided by the source unit and destination addresses provided by the destination unit
US5339413A (en) * 1992-08-21 1994-08-16 International Business Machines Corporation Data stream protocol for multimedia data streaming data processing system
JP2516317B2 (ja) * 1992-10-13 1996-07-24 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ処理システムとディジタル信号プロセッサへのロ―ディング方法
CA2104753C (en) * 1992-10-29 1999-02-16 Kotikalapudi Sriram Bandwidth allocation, transmission scheduling, and congestion avoidance in broadband atm networks
EP0680235B1 (de) * 1994-04-28 2001-09-12 Hewlett-Packard Company, A Delaware Corporation Erzeugung von Kanalsidentifizierer
US5712976A (en) 1994-09-08 1998-01-27 International Business Machines Corporation Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes
EP0768609B1 (de) * 1995-10-16 2003-06-25 Hitachi, Ltd. Verfahren zur Übertragung von Multimediadaten
US5754884A (en) * 1996-05-20 1998-05-19 Advanced Micro Devices Method for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller

Also Published As

Publication number Publication date
US6629124B1 (en) 2003-09-30
US5892968A (en) 1999-04-06
EP0768609A2 (de) 1997-04-16
US6145015A (en) 2000-11-07
EP0768609A3 (de) 1999-02-03
EP0768609B1 (de) 2003-06-25
DE69628798D1 (de) 2003-07-31

Similar Documents

Publication Publication Date Title
DE69628798T2 (de) Verfahren zur Übertragung von Multimediadaten
EP0333123B1 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE60036465T2 (de) Rechneradapterkarte für die kombinierung von eingang-/ausgangfertigstellungsberichten und verwendung derselben
DE60108911T2 (de) Prozessorschnittstelle mit geringem overhead
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE60004886T2 (de) System und verfahren zum bereitstellen einer sammlung von wiederverwendbaren fäden zum behandeln von gepufferten aufgaben
DE69723726T2 (de) Anwendungsprogrammierungsschnittstelle für Datenübertragung und Busverwaltung einer Busstruktur
DE60005001T2 (de) Netzwerkablaufsteuerungverfahren und -system für echtzeitanwendungen sowie ein entsprechendes computerlesbares speichermedium
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE4011745A1 (de) Taskverfolgungseinrichtung
DE60109060T2 (de) Interkommunikationsvorprozessor
EP0701204A2 (de) Verfahren zur Überlastvermeidung bei einem Systemanlauf eines Mehrrechnersystems und Mehrrechnersystem dafür
CH629010A5 (de) Anschlussschaltung fuer eine eingabe/ausgabeschnittstelle in einer datenverarbeitungsanlage.
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE4223454A1 (de) Datenuebertragungssystem fuer eine digitale signalverarbeitungsvorrichtung
EP0303869B1 (de) Modular strukturiertes digitales Kommunikationssystem mit betriebstechnischen Kommunikationsmitteln
EP0360135B1 (de) Verfahren zur Interruptverarbeitung in einer Datentverarbeitungsanlage
DE69936744T2 (de) Datenverarbeitungsverfahren
EP0466948A1 (de) Kommunikationssystem mit einem der zentralen Steuerung dienenden Multiprozessorsystem
EP0010135B1 (de) Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen
DE10085501B3 (de) Ein Verfahren und eine Einrichtung für einen isochronen Datentransport über einen asynchronen Bus

Legal Events

Date Code Title Description
8364 No opposition during term of opposition