-
Die
Erfindung betrifft eine Signalverarbeitungsvorrichtung gemäß dem Vorkennzeichnungsteil von
Anspruch 1 und ein Verfahren zur Zuweisungsplanung von Zeitschlitzen,
in denen Verbindungen zwischen Eingängen und Ausgängen von
Prozessoren über
eine Schaltmatrix hergestellt werden.
-
Eine
solche Signalverarbeitungsvorrichtung ist aus der US-Patentschrift
Nr. 5,103,311 bekannt. Diese Vorrichtung enthält eine Anzahl von Verarbeitungselementen,
welche verschiedene Stufen einer Videosignalverarbeitungsaufgabe
in echter Gleichzeitigkeit ausführen.
Ein Verarbeitungselement empfängt
an einem Eingang Signalabtastungen von Signalströmen, verarbeitet die Signalabtastungen
und gibt an einem Ausgang Signalabtastungen eines verarbeiteten
Signalstroms aus. Die Ströme
werden zwischen den Verarbeitungselementen über eine Schaltmatrix übertragen,
welche eine Anzahl von Parallelverbindungen herstellt, eine jede
zwischen dem Eingang eines Verarbeitungselements und dem Ausgang
einer Signalstromquelle zum Eingang des Verarbeitungselements. Diese
Quelle kann ein weiteres Verarbeitungselement oder ein Eingang der
Vorrichtung sein.
-
Jedes
Verarbeitungselement verfügt über sein
eigenes Programm. Das Programm eines Verarbeitungselements bestimmt,
von welchen anderen Verarbeitungselement Abtastungen eines Signalstromes über eine
Schaltmatrix empfangen werden.
-
Viele
der Verarbeitungselemente können verschiedene
Prozesse in einer zeitlich verschränkten Form ausführen. Um
das zu unterstützen,
werden die durch die Schaltmatrix hergestellten Verbindungen regelmäßig umgeschaltet,
um Abtastungen von verschiedenen Signalströmen aus verschiedenen Quellen
zu empfangen. Diese Umschaltungen werden auch im Verarbeitungselement
programmiert. Alle Verbindungen, die hergestellt werden, sind somit im
Programm lange vor der Ausführung
der Prozesse vergeben worden. Auf diesem Wege kann die Effizienz
des Einsatzes der Schaltmatrix und der Verarbeitungselemente zum
Zeitpunkt der Programmierung optimiert werden, und das Echtzeitverhalten
kann gewährleistet
werden.
-
Die
programmierte Vergabe weist jedoch den Nachteil auf, dass der Signalverarbeitungsvorrichtung
die nötige
Flexibilität
fehlt, die zum Bearbeiten von Multimediaanwendungen benötigt wird,
in denen verschiedene Kombinationen von Signalströmen auf
verschiedenen Wegen zu bearbeiten sind, einige von ihnen interaktiv.
-
Ein
Beitrag im ACM Operating Systems Review 23 (3), S. 141–151 (1989)
mit dem Titel „The
Real-Time Operating System of Mars" von A. Damm, J. Reisiger, W. Schwabl
und H. Kopetz, informiert über ein
dezentrales Echtzeit-Datenverarbeitungssystem, das
für die
Prozesssteuerung bestimmt ist. Dieses System verwendet einen einzigen
Bus, mit dem alle Eingänge
und Ausgänge
verbunden sind. Das Echtzeitverhalten ist gewährleistet, indem der Bus in
vorgegebenen Zeitschlitzen für
die Übertragung
von harten Echtzeitnachrichten zugewiesen wird. Der Bus wird auf
Anforderung anderen als den harten Echtzeitnachrichten in nicht
genutzten Zeitfenstern zugewiesen. Das gewährleistet automatisch, dass die
Eingänge
und Ausgänge
für die Übertragung
verfügbar
sind, wenn der Bus zugewiesen ist, weil mit einem Bus, im Gegensatz
zu dem Fall einer Schaltmatrix, die Eingänge und Ausgänge dem
einzelnen Informationskanal zugeordnet sind, der den verschiedenen
aufeinanderfolgenden Übertragungen
zugewiesen ist.
-
Unter
anderem ist es eine Aufgabe der Erfindung, eine Signalbearbeitungsvorrichtung
bereitzustellen, in welcher die Effizienz des Einsatzes der Verarbeitungselemente
und der Schaltmatrix optimiert werden kann und in welcher das Echtzeitverhalten
für eine
Anzahl von Signalströmen
gewährleistet werden
kann, die aber eine höhere
Flexibilität
bei der Bearbeitung der Signalströme erlaubt.
-
Die
erfindungsgemäße Signalverarbeitungsvorrichtung
wird durch den Kennzeichnungsteil von Anspruch 1 gekennzeichnet.
Die Erfindung sieht eine feste Zuweisung von Verbindungen für einen
Satz von Prozessen vor, so dass die Effizienz dieser Prozesse optimiert
und ein Echtzeitverhalten gewährleistet
werden kann. Vorzugsweise werden die Zeitschlitze in einem periodisch
wiederkehrenden Muster zugewiesen, das in einem kleinen Speicher
programmiert werden kann. Das Vergabeglied kann bei einer Laufzeitanforderung
durch die beteiligten Prozesse auch andere Verbindungen für die Dauer
von Zeitschlitzen herstellen. Diese Verbindungen werden zwischen
Eingängen
und Ausgängen
hergestellt, die nicht durch den Satz von Prozessen, deren Verbindungen
im Voraus zugewiesen wurden, verwendet werden. Nicht genutzte Eingänge und
Ausgänge können zum
Beispiel auftreten, weil diese Eingänge und Ausgänge nicht
im Voraus zugewiesen wurden oder weil die Verarbeitungselemente
anzeigen, dass der zugewiesene Eingang und/oder Ausgang zu diesem
Zeitpunkt durch den Satz von Prozessen nicht wirklich genutzt wird.
-
Eine
Ausführungsform
der erfindungsgemäßen Verarbeitungsvorrichtung
wird in Anspruch 2 beschrieben. Gemäß dieser Ausführungsform
unterhält die
Schaltmatrix für
eine Zeitdauer ständig
Verbindungen zwischen Eingängen
und Ausgängen,
so dass mehr als ein Signalwert, aber weit weniger als der gesamte
Strom-(oder Video-)Rahmen übertragen
werden kann. Das verringert die durch die Vorrichtung verbrauchte
Leistung, da die Schaltmatrix weniger oft schalten muss. Zur gleichen
Zeit gewährleistet
sie eine effiziente Verwendung der Verarbeitungselemente, da sie
ein flexibles Schalten zwischen den Prozessen ermöglicht.
-
In
einer Ausführungsform
der erfindungsgemäßen Verarbeitungsvorrichtung
ist die Zuweisung von Zeitschlitzen programmierbar. Wenn ein Benutzer
also eine andersartige Funktion von der Vorrichtung abfordert, dann
kann der von der Vorrichtung ausgeführte Satz von Prozessen verändert werden, und
durch das Vergabeglied kann eine Zuweisung ausgeführt werden,
die für
den neuen Satz von Prozessen optimal ist.
-
In
einer weiteren Ausführungsform
der erfindungsgemäßen Verarbeitungsvorrichtung
werden First-In-First-Out-Pufferspeicher für die unterschiedlichen Ströme verwendet,
die für
die Ausführung
unterschiedlicher Prozesse bei einem Prozesselement eintreffen.
Auf diesem Wege kann die Planung der Zuweisung unabhängig vom
Zeitpunkt der Ausführung
der unterschiedlichen Prozesse ausgeführt werden, so dass eine optimale
Planung verwendet werden kann.
-
Anspruch
9 beschreibt ein Verfahren zur Planung der Zuweisung von Zeitschlitzen
auf einem Wege, der sicherstellt, dass das Übertragungsvermögen der
Schaltmatrix voll ausgenutzt werden kann.
-
Diese
und andere vorteilhafte Gesichtspunkte der Erfindung werden auf
eine nicht einschränkende
Weise unter Verwendung der folgenden Figuren beschrieben.
-
1 zeigt
eine Signalverarbeitungsvorrichtung,
-
2 zeigt
ein Funktionsschema,
-
3 zeigt
ein Beispiel einer periodischen Zuweisung,
-
4 zeigt
ein Verarbeitungselement,
-
5 zeigt
ein Flussdiagramm eines Zuweisungsplanungsalgorithmus,
-
6 zeigt
ein Vergabeglied.
-
1 zeigt
eine Signalverarbeitungsvorrichtung. Die Vorrichtung enthält eine
Anzahl von Verarbeitungselementen 10a–f (von denen sechs dargestellt
sind), die durch eine Schaltmatrix 12 verbunden sind. Ein
Kommunikationsvergabeglied 14 weist (nicht dargestellte)
Verbindungen zu den Verarbeitungselementen 10a–f und der
Schaltmatrix für
die Auswahl von Verbindungen auf, die durch die Schaltmatrix hergestellt
werden. Außerdem
enthält
die Vorrichtung einen Zentralprozessor 18 und einen steuerungsorientierten
Bus 16, der die Verarbeitungselemente 10a–f, das
Vergabeglied 14 und den Zentralprozessor 18 verbindet.
-
Im
Einsatz verarbeitet die Signalverarbeitungsvorrichtung zum Beispiel
gleichzeitig eine Anzahl von Videosignalen. Diese Videosignale sind
in Strömen
von fortlaufenden Pixelwerten enthalten. Ein Verarbeitungselement 10a–f kann
einen solchen Strom von Pixelwerten erzeugen, der zum Beispiel durch
Bearbeiten der Pixelwerte eines Eingangsstromes, von einem äußeren Eingangsvideosignal
oder mit Hilfe eines Grafikprozesses abgeleitet wird. Ein Strom
von Pixelwerten kann auch in ein Verarbeitungselement 10a–f eingegeben
werden, wo es entsprechend irgendeinem vorgegebenen Prozess verarbeitet
wird, der durch dieses Verarbeitungselement 10a–f ausgeführt wird.
Gewöhnlich
hängt jeder
fortlaufende Pixelwert eines verarbeiteten Signalstroms von einem
jeweiligen fortlaufenden Pixelwert eines eintreffenden Signalstroms
oder von einem fortlaufenden Pixelwert-Gleitfenster ab.
-
Typische
Beispiele für
Prozesse, welche durch die Verarbeitungselemente 10a–f einzeln
ausgeführt
werden, enthalten die horizontale Auflösungsverminderung eines Videosignalstroms,
die vertikale Auflösungsverminderung
eines Videosignalstroms, das Filtern, das MPEG-Dekodieren usw., d.h.
Prozesse bei einem Körnigkeitsgrad,
bei dem es wenige Querverbindungen zwischen den Pipelines gibt,
welche aber oft nicht von selbst eine vollständige Eingangs-Ausgangs-Beziehung
zwischen einem empfangenen Videosignal und einem dargestellten Videosignal
ausbilden. Die meisten dieser Prozesse müssen harte Echtzeitbedingungen
erfüllen,
weil diese Prozesse direkt oder indirekt Ausgabebilder ergeben,
die rechtzeitig dargestellt werden müssen, um sichtbare Störungen zu
vermeiden. Andere Prozesse, wie z.B. die Konstruktion eines Teletextbildes, müssen keine
harten Echtzeitbedingungen erfüllen, sollten
aber bei einer garantierten mittleren Geschwindigkeit ablaufen.
-
2 zeigt
ein Funktionsschema einer hypothetischen einfachen Signalverarbeitungsaufgabe. Das
Funktionsschema verwendet Knoten 20a–c, 22a–c, 24a–c, 26,
um symbolisch eine Anzahl von Prozessen „Eingabe" (2×)
T1–T7
und „Ausgabe" darzustellen, die
durch die Verarbeitungselemente 10a–f auszuführen sind. Das Funktionsschema
verwendet die Verbindungen 21a–c, 23a–c, 25a–c zwischen
den Knoten 20a–c, 22a–c, 24a–c, 26,
um die Kommunikation von Signalströmen C1–C6, A7, A8 zwischen diesen
Prozessen darzustellen. Das Funktionsschema zeigt drei Prozess-Pipelines
T1–T7,
die an einem gemeinsamen Ausgabeprozess zusammenlaufen. Ein Beispiel
einer Funktion, die durch ein solches Funktionsschema ausgeführt wird,
ist zum Beispiel eine gleichzeitige Wiedergabe von zwei unterschiedlichen Videosignalen
mit einem eingeblendeten Grafikbild.
-
Eine
Anzahl von Verbindungen 21a–c, 23a–c ist durch
durchgezogene Linien dargestellt, um anzuzeigen, dass die entsprechende
Kommunikation von Signalströmen
C1–C7
den harten Echtzeitbedingungen genügen muss. Andere Verbindungen 25a–c sind
durch gestrichelte Linien dargestellt, um anzuzeigen, dass für andere
Signalströme
A7, A8 die harten Echtzeitbedingungen nicht erfüllt zu werden brauchen. Die
für die
Signalströme
erforderliche Bandbreite kann unterschiedlich sein. Zum Beispiel
kann die Bandbreite eines Stroms C1 doppelt so groß wie die
für jede
der anderen Ströme
C2–C7
einzeln benötigte
sein, wenn der Strom C1 ein Bild mit einer höheren Auflösung darstellt.
-
Im
Einsatz werden die verschiedenen Prozesse T1–T7 durch die Verarbeitungselemente 10a–f ausgeführt. Bei
jedem der Verarbeitungselemente 10a–c können mehrere Prozesse T1–T7 in einer
zeitverschränkten
Form ausgeführt
werden. Zum Beispiel könnten
die zwei Prozesse T2, T3 durch ein erstes Verarbeitungselement 10a ausgeführt werden, und
andere Prozesse T1, T4 könnten
durch andere Verarbeitungselemente 10b, c ausgeführt werden. Die
Eingabeprozesse „Eingabe" können an
zwei separaten Eingabeprozessoren 10d, e und die Ausgabeprozesse
an einem separaten Ausgabeprozessor 10f laufen.
-
Da
mehrere Verarbeitungselemente 10a–f mehr als einen Prozess in
einer zeitverschränkten Form
ausführen
können,
müssen
diese Verarbeitungselemente 10a–f Pixelwerte von mehr als
einem unterschiedlichen Verarbeitungselement 10a–f an ihren
Eingängen
empfangen oder von ihren Ausgängen
Pixelwerte an mehr als ein unterschiedliches Verarbeitungselement 10a–f übertragen.
In dem obigen Beispiel würde
das Verarbeitungselement, welches die Prozesse T2 und T3 ausführt, Pixelwerte von
den Verarbeitungselementen empfangen müssen, die einen Eingabeprozess
bzw. den Prozess T1 ausführen.
Das Verarbeitungselement, das die Prozesse T2 und T3 ausführt, müsste an
das Ausgabeverarbeitungselement und das Verarbeitungselement T4
ausgeben usw.
-
Das
legt den Zeitintervallen, zu denen die Kommunikation von Signalströmen C1–C7 zwischen diesen
Prozessen über
die Schaltmatrix 12 stattfindet, Einschränkungen
auf, weil weder zu einem Zeitpunkt Signalströme von mehr als einer Quelle
an einem Eingang eines Verarbeitungselements 10a–f eintreffen
können,
noch zu einem Zeitpunkt Signalströme von einem Ausgang eines
Verarbeitungselements 10a–f an mehr als einen Bestimmungsort übertragen
werden können.
(Um solche Einschränkungen
bei der Kommunikation zu vermeiden, müssten im Wesentlichen alle
Verarbeitungselemente 10a–f für alle unterschiedlichen Prozesse,
welche durch das Verarbeitungselement in zeitverschränkter Form
ausgeführt
werden können,
mit getrennt schaltbaren Eingängen
und Pufferspeichern an die Schaltmatrix 12 angeschlossen
werden. Es wurde jedoch festgestellt, dass die separat schaltbaren
Eingänge einen übermäßig großen Bereich
des integrierten Schaltkreischips benötigen würden, damit alle außer einer
sehr kleinen Anzahl von Prozessen in zeitverschränkter Form ausgeführt werden
können.
Deshalb ist es nicht wünschenswert,
diese Einschränkungen
zu umgehen).
-
Um
die Echtzeitkommunikation der Signalströme C1–C7 unter diesen Einschränkungen
zu gewährleisten,
ist die Anwendung der Schaltmatrix 12 in Zeitschlitze unterteilt.
In jedem Zeitschlitz stellt die Schaltmatrix 12 einen Satz
von Verbindungen zwischen Eingängen
und Ausgängen
her. Dieser Satz von Verbindungen kann von einem Zeitschlitz zum nächsten verändert werden.
Vorzugsweise erlaubt jeder Zeitschlitz die Übertragung einer Anzahl fortlaufender
Pixelwerte. Das verringert die Leistungsaufnahme in der Schaltmatrix 12,
weil in Videoströmen gewöhnlich weniger
Signalübergänge zwischen
fortlaufenden Pixelwerten eines Signalstroms als zwischen Pixelwerten
verschiedener Signalströme
benötigt
werden. Andererseits erlaubt jeder Zeitschlitz die Übertragung
von weit weniger als einem ganzen Videorahmen, um es zu ermöglichen,
dass mehr als ein Prozess in Echtzeit an demselben Verarbeitungselement 10a–f ausgeführt werden
kann, ohne übermäßig große Pufferspeicher
zu verwenden. Es wurde festgestellt, dass 16 Pixelwerte pro Zeitschlitz
mit einer Pixelfrequenz (Taktfrequenz) von 64 MHz einen guten Kompromiss
darstellen.
-
Das
Vergabeglied 14 wählt
aus, welche Verbindungen die Schaltmatrix herstellen wird. Vor dem Ausführen der
Prozesse T1–T7
wird für
jeden Zeitschlitz die Zuweisung von Verbindungen zu Signalströmen C1–C6 auf
einem Wege geplant, der die Echtzeitübertragung der Signalströme gewährleistet. Die
Planung kann ausgeführt
werden, wenn die Programme kompiliert sind, das heißt, bevor
der Prozess tatsächlich
ausgeführt wird.
Vorzugsweise werden die Zuweisungen mit einer Wiederholungsperiode, die
viel kleiner ist als das für
die Verarbeitung eines Video-Rahmens benötigte Gesamtzeitintervall,
periodisch wiederholt. In jeder Periode wird jedem Signalstrom C1–C6 eine
Anzahl von Zeitschlitzen zugewiesen, die proportional zu der für diesen
Signalstrom benötigten
Bandbreite (Pixelwerte pro Zeiteinheit) ist.
-
3 zeigt
ein Beispiel für
eine solche periodische Zuweisung, die durch eine Matrix dargestellt ist.
Aufeinanderfolgende Zeilen der Matrix entsprechen aufeinanderfolgenden
Zeitschlitzen in einer Periode. Die drei am weitesten rechts stehenden
Spalten entsprechen den verschiedenen Eingängen der Verarbeitungselemente 10a–f und die
vier am weitesten links stehenden Spalten entsprechen den verschiedenen
Ausgängen
der Verarbeitungselemente 10a–f. In der Matrix ist angezeigt,
welchem Signalstrom C1–C6
jeder Eingang oder Ausgang in jedem Zeitschlitz zugewiesen ist.
Zum Beispiel ist in einem ersten Zeitschlitz (obere Zeile) der erste
Eingang dem Signalstrom C1 zugewiesen, und das zweite Eingangsterminal
ist dem Signalstrom C3 zugewiesen. Der zweite Ausgang ist dem Signalstrom
C3 zugewiesen, und der dritte Ausgang ist dem Signalstrom C1 zugewiesen.
Die zweite, dritte und vierte Zeile zeigen, welchen Signalströme C1–C6 die
Eingänge
und Ausgänge
jeweils in einem zweiten, dritten und vierten Zeitschlitz zugewiesen
sind. In einem fünften,
sechsten, siebenten und achten Zeitschlitz werden die Eingänge und
der Ausgang wieder so zugewiesen, wie entsprechend in der ersten,
zweiten, dritten und vierten Zeile der Matrix angezeigt ist, und so
weiter. Somit werden die Zuweisungen mit einer Periode von vier
Zeitschlitzen wiederholt.
-
Es
wird angemerkt, dass einem ersten Signalstrom C1 in jeder Periode
Eingänge
und Ausgänge
in zwei Zeitschlitzen zugewiesen wurden und dass für die anderen
Signalströme
C2–C6
ein Eingang und Ausgang in einem Zeitschlitz zugewiesen wurde. Das geschieht,
weil die Bandbreite von C1 doppelt so groß ist wie jene der anderen
Ströme
C2–C6.
-
Die
Verarbeitungselemente 10a–f führen die Prozesse aus, welche
die empfangenen Signalwerte verwenden, so dass im Mittel in jeder
Periode gerade so viele Signalwerte verarbeitet werden, wie dort empfangen
wurden. Jedoch ist die Ausführung
nicht notwendigerweise fest an die Übertragung gekoppelt. Die Verarbeitungselemente 10a–f erreichen
das durch ein Zwischenspeichern der für einen Signalstrom übertragenen
Signalwerte. In gleicher Weise führen
die Verarbeitungselemente 10a–f ein Zwischenspeichern der
Signalwerte des Signalstroms aus, der durch die Prozesse erzeugt
wird. In den Puffer speichern brauchen höchstens M Signalwerte gespeichert
zu werden, wobei M die Anzahl der Signalwerte ist, die in einer
Periode übertragen
werden kann, d.h., bevor die Zuweisungen wiederholt werden. Wird
der Zeitpunkt für
den Beginn der Verarbeitung der Signalwerte sorgfältig ausgewählt, dann
ist sogar ein kleinerer Pufferspeicher für M/2 Signalwerte ausreichend.
Ist die Periode nicht zu lang, dann sorgt bereits ein relativ kleiner
Pufferspeicher dafür, dass
immer ausreichend Signalwerte gespeichert werden können.
-
4 zeigt
ein Beispiel eines Verarbeitungselements mit zwei Eingängen und
einem Ausgang. Das Verarbeitungselement enthält einen Prozessor 40 mit
zwei Eingängen.
Das Verarbeitungselement weist zwei Eingänge auf, die über FIFO(First
In First Out)-Eingabeeinheiten 42, 44 mit den
jeweiligen Eingängen
des Prozessors 40 verbunden sind. Die FIFO-Eingabeeinheiten 42, 44 stellen
eine Anzahl von logischen FIFO-Pufferspeichern 422, 424 bereit, einen
für jeden
Prozess, der durch das Verarbeitungselement ausgeführt wird.
In der Praxis können die
FIFOs als ein Speicher realisiert werden, der in einer FIFO-Weise
adressiert wird, und die logischen FIFOs können denselben Speicher gemeinsam
nutzen. Ein Demultiplexer 420 lenkt die Signalwerte, die aus
dem mit der Schaltmatrix verbundenen Eingang erhalten wurden, in
den passenden FIFO-Pufferspeicher 422, 424.
Der Prozessor 40 weist einen Ausgang auf, der über eine
FIFO-Ausgabeeinheit 46 mit dem
einzelnen Ausgang des Verarbeitungselements verbunden ist. Die FIFO-Ausgabeeinheit
unterhält eine
Anzahl von logischen FIFO-Pufferspeichern 460, 462,
einen für
jeden ausgeführten
Prozess. Die Ausgabe der FIFO-Einheiten 460, 462 wird über einen
Router 464 der Schaltmatrix zugeleitet. Die FIFO-Pufferspeicher 460, 462 können zum
Beispiel als separate FIFOs realisiert werden, oder sie können mit
einem Speicher für
Signalwerte von unterschiedlichen FIFOs und einer Anzahl von Zeigern realisiert
werden, um den Überblick über die
Speicherplätze
zu behalten, die für
die verschiedenen logischen FIFO-Pufferspeicher verwendet wurden.
-
Der
Prozessor 40 weist einen zustandsfreien Verarbeitungslogikteil 400 („zustandsfrei": sein Ausgangssignal
hängt zu
einem beliebigen Zeitpunkt nur von seinem Eingangssignal zu dem
einen Zeitpunkt und nicht von mehreren Eingangs- oder Ausgangssignalen
ab) sowie eine Anzahl von Zustandsspeichern 402, 404 auf,
einen für
jeden Prozess, der vom Verarbeitungselement gemeinsam auf verschränkte Weise
ausgeführt
werden kann. Das Schalten zwischen der Ausführung unterschiedlicher Prozesse wird
durch Schalten der Eingangspuffer 422, 424 und der
Zustandsspeicher erreicht, welche die Eingabe der zustandsfreien
Verarbeitungslogik bereitstellen. Somit kann ein Umschalten zwischen
un terschiedlichen Prozessen ohne irgendwelche Wartezustände erreicht
werden. Die Signalwerte aus jedem Strom werden im Allgemeinen in
der Reihenfolge verarbeitet, in der sie eintreffen, aber das Schalten
zwischen unterschiedlichen Prozessen muss nicht genau auf das Eintreffen
von Signalwerten für
unterschiedliche Ströme
folgen: das Verarbeiten von Signalwerten von unterschiedlichen Strömen muss
nicht in der Reihenfolge des Eintreffens geschehen.
-
Die
Zuweisung von Eingängen
und Ausgängen
für Signalströme C1–C6 von
Echtzeitprozessen T1–T7
in den jeweiligen Zeitschlitzen wird im Voraus geplant, um der Echtzeitspezifikation
gerecht zu werden; dies kann ausgeführt werden, wenn die Programme
kompiliert werden oder zur Laufzeit, bevor ein Prozess beginnt.
Die Echtzeitspezifikation wird ausgedrückt als die erforderliche Bandbreite
der Signalströme
C1–C6,
die in die Prozessen T1–T7
einbezogen sind, zum Beispiel als die Anzahl der Zeitschlitze, die
für den
Prozess in einer bestimmten Zeiteinheit benötigt werden. Die Planung muss
für jeden Signalstrom
C1–C6
gewährleisten,
dass sowohl ein Eingang und als auch ein Ausgang und die Schaltmatrix 12 für eine ausreichende
Anzahl von Zeitschlitzen in jeder Periode verfügbar sind, um den Signalstrom C1–C3 zu übermitteln.
-
Vorzugsweise
wird eine Schaltmatrix 12 verwendet, die in der Lage ist,
gleichzeitig so viele Verbindungen wie die Anzahl M der mit der
Schaltmatrix 12 verbundenen Eingänge oder Ausgänge bereitzustellen,
je nachdem welche kleiner ist. Allgemeiner sollte die Schaltmatrix
vorzugsweise pro Zeiteinheit mindestens so viel Bandbreite für die Übertragung von
Signalwerten auf die oder von den M Eingängen oder Ausgängen bereitstellen,
wie die Prozessoren hinter oder vor den M Eingängen oder Ausgängen pro
Zeiteinheit zu verarbeiten in der Lage sind. Damit legt die Schaltmatrix
der Zuweisung keine Einschränkungen
auf, und es muss nur sichergestellt werden, dass für jeden
Signalstrom C1 – C6
sowohl ein Eingang als auch ein Ausgang für eine ausreichende Anzahl
von Zeitschlitzen zur Verfügung
steht.
-
Die
Anzahl K der pro Zeiteinheit verfügbaren Zeitschlitze muss ausreichend
groß sein,
um sicherzustellen, dass immer ein Zeitschlitz gefunden werden kann,
in welchem der Eingang und der Ausgang, die für einen jeweiligen Signalstrom
C1–C6
benötigt werden,
beide zur gleichen Zeit frei sind. Bei einer fortlaufenden Zuweisung
von Eingängen
und Ausgängen
für eine
Reihe von Signalströmen
wurde festgestellt, dass die Anzahl K gleich oder größer sein muss
als das Zweifache minus eins der Anzahl N der Zeitschlitze, die
tatsächlich
durch alle die Signalströme
C1–C6
genutzt werden, die in einen Eingang einlaufen (K ≥ 2 N – 1). Bei
der fortlaufenden Planung wird die Zuweisung zuerst für eine Untermenge
der Signalströme
C1–C6
geplant, und dann werden einem einzelnen Strom außerhalb
der Untermenge in einem Zeitschlitz Eingang und Ausgang zugewiesen, wobei
sowohl dieser Eingang als auch dieser Ausgang noch frei sind. In
diesem Fall wird der untere Grenzwert dieser Anzahl K benötigt, um
sicherzustellen, dass Eingang und Ausgang, die durch den einzelnen
Signalstrom benötigt
werden, beide in einem Zeitschlitz der K Zeitschlitze frei sein
werden, im ungünstigsten
Falle, wenn der Ausgang anderen Signalströmen in (N – 1) Zeitschlitzen zugewiesen
ist, die sich von allen den (N – 1)
Zeitschlitzen unterscheiden, in denen der Eingang anderen Signalströmen C1–C6 zugewiesen
ist.
-
Es
wurde jedoch festgestellt, dass abgesichert werden kann, dass tatsächlich ein
Zuweisungsschema existiert, selbst wenn K = N ist. Um ein solches
Zuweisungsschema zu finden, wird begonnen, nach einem Satz von Verbindungen
für Signalströme C1–C6 zwischen
verschiedenen Eingängen
und Ausgängen
zu suchen, in welchem alle jene Eingänge und Ausgänge eingeschlossen
sind, die Signalströme
C1–C6
in allen Zeitschlitzen K zu übertragen
haben, um der Echtzeitspezifikation gerecht zu werden. Es kann bewiesen
werden, dass ein solcher Satz von Verbindungen immer existiert.
Der Beweis verwendet eine Umformulierung des Zuweisungsproblems
im Rahmen der Graphentheorie. Es wird ein Graph mit Knoten verwendet,
von denen jeder einem zugeordneten Eingang oder Ausgang entspricht.
Im Graph sind zwischen den Knoten, die jedem Eingang-Ausgang-Paar
entsprechen, so viele Kanten enthalten, wie es in der Zeiteinheit,
in der dieses Paar verbunden werden muss, Zeitschlitze gibt. Der
ausgesuchte Satz von Verbindungen, der zu Beginn dieses Absatzes
erwähnt
wurde, entspricht einer Untermenge von Kanten des Graphen, in welcher
nicht mehr als eine Kante mit einem beliebigen Knoten verbunden
ist und mit welcher alle Knoten verbunden sind, die mit einer maximalen
Anzahl von Kanten des Graphen verbunden sind. Nach einem Theorem
der Graphentheorie, das in dem Beitrag von P. Hall mit dem Titel „On representations
of subsets", veröffentlicht
in Journal of the London Mathematical Society, Bd. 10, S. 26 bis 30
(1934), dargelegt wird, gibt es immer eine solche Untermenge.
-
5 zeigt
ein Flussdiagramm eines Algorithmus für die Zuweisungsplanung von
Eingängen und
Ausgängen
der Verarbeitungselemente 10a–f für unterschiedliche Signalströme in unterschiedlichen Zeitschlitzen.
In einem ersten Schritt 50 wird ein Zeitschlitzzählwert K1
zu K initialisiert. Eine Liste von Eingang-Ausgang-Paaren wird vorbereitet,
die ein Paar für
jeden Zeitschlitz enthält,
welches durch irgendeinen Strom C1– C6 in K Zeitschlitzen eine
Verbindung benötigt.
In einem zweiten Schritt 52 wird überprüft, ob diese Liste leer ist;
ist das so, dann ist die Planung beendet, wenn nicht, dann geht
der Algorithmus zu einem dritten Schritt 54 über. In
dem dritten Schritt 54 sucht der Algorithmus nach einer ersten
Untermenge der Liste von Eingang-Ausgang-Paaren für Signalströme C1–C6. Die
Suche ist auf die erste Untermenge beschränkt, die bestimmte Bedingungen
erfüllt.
In allen Paaren der ersten Untermenge kann jeder Eingang und jeder
Ausgang nur einmal vorkommen, und alle Eingänge und Ausgänge, die
in K1 der Paare auf der Liste auftreten, müssen in der ersten Untermenge
enthalten sein. Der oben erwähnte
Beweis stellt sicher, dass eine solche erste Untermenge gefunden
werden kann, indem zum Beispiel eine umfassende Durchsuchung aller möglichen
Untermengen vorgenommen wird oder indem ein polynomialer Zeitgraphabdeckungsalgorithmus
verwendet wird, wie er z.B. in dem Beitrag von P. Hall und in einem
Beitrag vom J. E. Hopcroft und R. M. Karp mit dem Titel „An n^(5/2)
Algorithm for Maximum Matchings in Bipartite Graphs", SIAM J. Comput.,
Bd. 2, Nr. 4, 1973, beschrieben ist. Die erste Untermenge entspricht
den Verbindungen, die in einem ersten Zeitschlitz in jeder Zeiteinheit
hergestellt werden.
-
In
einem vierten Schritt 56 entfernt der Algorithmus die Paare
der ersten Untermenge aus der Liste und vermindert K1. Danach wird
der Algorithmus vom zweiten Schritt 52 an wiederholt. Bei
jeder Wiederholung erzeugt der dritte Schritt eine Zuweisung für einen
weiteren Zeitschlitz. Nach K Wiederholungen sind in der Liste keine
weiteren Verbindungen übrig.
-
Dieser
Algorithmus erzeugt einen Zuweisungsplan, der dann, wenn er durch
das Vergabeglied 14 verwirklicht ist, sicherstellt, dass
Eingänge und
Ausgang, die mit der Schaltmatrix 12 verbundenen sind,
in einer ausreichenden Anzahl von Zeitschlitzen den verschiedenen
Strömen
so zugewiesen werden, dass die harten Echtzeiteinschränkungen eingehalten
werden können.
In den verbleibenden Zeitschlitzen, die nicht für die Ströme verwendet werden, welche
harte Echtzeiteinschränkungen
einzuhalten haben, können
andere Ströme übertragen werden,
die keine harten Echtzeiteinschränkungen einzuhalten
haben. Das Vergabeglied 14 weist diese verbleibenden Zeitschlitze
auf Anforderung von den Verarbeitungselementen 10a–f zu. Ein
Verarbeitungselement gibt eine solche Anforderung aus, wenn Signalwerte
für einen
solchen „anderen" Strom verfügbar sind,
und das Vergabeglied 14 gibt einer solchen Anforderung
statt, wenn ein Eingang und Ausgang, die für die Übertragung des „anderen" Stroms benötigt werden,
in einem Zeitschlitz ungenutzt sind, weil zum Beispiel dieser Eingang
und Ausgang nicht zugewiesen wurde oder weil ein zugewiesener Zeitschlitz
nicht verwendet wird.
-
Um
zu gewährleisten,
dass K = N immer möglich
ist, werden die Zuweisungen ohne Berücksichtigung der Zeitdifferenz
zwischen der Eingabe von Signalwerten in einen Prozessor und der
Ausgabe der bearbeiteten Signalwerte aus diesem Prozessor geplant.
Auch das zeitliche Koordinieren der Zuweisung für unterschiedliche Eingangsströme bei Prozesse
mit mehr als einem Eingangsstrom wird nicht in Betracht gezogen.
Die Zuweisung von Zeitschlitzen für nicht periodische Anforderungen
zieht nach sich, dass die Zeitdifferenz sogar veränderlich sein
kann. Somit ist es unerwünscht,
der Zeitdifferenz zwischen Eingabe und Ausgabe Einschränkungen aufzuerlegen,
außer
denen, die sich aus der Verwendung eines periodisch wiederkehrenden
Musters von Zuweisungen ergeben.
-
Die
FIFO-Pufferspeicher 422, 424, 460, 462 gewährleisten,
dass es möglich
ist, die Prozesse unter diesen Bedingungen auszuführen. Zum
Beispiel kann ein Prozessor einen Prozess wieder aufnehmen, wenn
er feststellt, dass für
die Ausgabe aus diesem Prozess ein Zeitschlitz zugewiesen ist. In
diesem Falle werden Signalwerte, die für die unterschiedlichen durch
den Prozessor ausgeführten
Prozesse eingegeben wurden, nicht notwendigerweise in der gleichen
Reihenfolge ausgeführt,
in der sie an dem Verarbeitungselement eintreffen. Durch Pufferspeicherung
der Signalwerte von unterschiedlichen Signalströmen für unterschiedliche Zeitdauern
in den FIFO-Pufferspeichern 422, 424 können diese
Signal in einer Wartestellung gehalten werden, bis ein Zeitschlitz
für die
Ausgabe zur Verfügung
steht. In diesem Falle wird normalerweise kein FIFO-Pufferspeicher
am Ausgang des Verarbeitungselements benötigt. (In diesem Falle wird
der FIFO nur in Prozessoren benötigt,
die zur Erzeugung von Mehrfachausgabeströmen aus einem einzelnen Prozess
in der Lage sind, oder in dem Falle, dass es keine Eins-zu-Eins-Übereinstimmung
zwischen den Eingangssignalwerten und den Ausgangssignalwerten, z.B.
für das
Variabellängendekodieren
oder Subabtasten, gibt.)
-
6 zeigt
eine Ausführungsform
eines Vergabegliedes, das eine solche Zuweisung ausführt. Das
Vergabeglied enthält
einen Ladeschaltkreis 68 mit harten Echtzeit-Dienstanforderungseingaben 69. Ein
Ausgang des Ladeschaltkreises ist mit einem Zuweisungsspeicher 60 verbunden.
Der Zuweisungsspeicher 60 weist Ausgänge auf, die über jeweilige Kombinationsschaltkreise 66a–d mit den
Ausgängen 65–d des Vergabegliedes
verbunden sind. Der Zuweisungsspeicher 60 weist einen Adresseneingang auf,
der mit einem Zeitschlitzzähler 62 verbunden
ist. Ein Signalwert-Takteingang ist über einen Verteiler 63 mit
einem Zähleingang
des Zeitschlitzzählers 62 verbunden.
Das Vergabeglied enthält
ein Nichtechtzeit-Vergabeglied 64 mit einer Schnittstelle 65 für Kommunikationsanforderungen
und Ausgänge,
die mit den Kommunikationsschaltkreisen 66a–d verbunden
sind.
-
Im
Einsatz speichert der Zuweisungsspeicher 60 Informationen,
welche die Zuweisung von Eingängen
und Ausgängen
der Schaltmatrix 12 zu zugehörigen Prozessen in unterschiedlichen
Zeitschlitzen festlegen. Der Zuweisungsspeicher 60 weist
einen zugehörigen
Bereich für
jeden Zeitschlitz auf. Der Inhalt eines jeden Bereichs weist Eintragungen
für jeden
Eingang und jeden Ausgang auf, der mit der Schaltmatrix 12 verbunden
ist. Jede Eintragung spezifiziert, auf welchen oder von welchem
logischen FIFO, der mit dem Eingang oder Ausgang verbunden ist,
Signalwerte übertragen
werden müssen
und wie der Eingang oder Ausgang intern in der Schaltmatrix zu verbinden
ist.
-
Die
Inhalte der jeweiligen Bereiche des Zuweisungsspeichers 60 werden
in aufeinanderfolgenden Zeitschlitzen ausgegeben. Dazu wird ein
Taktsignal an den Verteiler 63 angelegt, und der Verteiler 63 überträgt in jedem
Taktzyklus Q einen Zählimpuls auf
den Zeitschlitzzähler 62.
Jeder Taktzyklus kennzeichnet die gleichzeitige Übergabe eines Satzes von Signalwerten über die
Schaltmatrix 12. Ein Zeitschlitz enthält Q derartige Übergaben
(zum Beispiel Q = 16). Der Zählwert
des Zeitschlitzzählers 62 stellt die
Zeitschlitz-Taktzahl
dar und wird als Adresse für den
Zuweisungsspeicher 60 verwendet. Als Reaktion gibt der
Zuweisungsspeicher 60 die Inhalte des Bereichs für den Zeitschlitz
aus. Die verschiedenen Eintragungen aus diesem Inhalt werden den
Funktionselementen 10a–f
und der Schaltmatrix 12 übergeben, um die richtigen
logischen FIFOs bzw. die richtigen Verbindungen auszuwählen.
-
Der
Ladeschaltkreis 68 enthält
Informationen, die den Zuweisungsplan abbilden, der für die Vorrichtung
erzeugt wurde. Dieser Plan weist den Signalströmen in verschiedenen Zeitschlitzen
Eingänge
und Ausgänge
zu. Der Ladeschaltkreis 68 weist Echtzeit-Dienstanforderungseingänge 69 auf, über welche
mitgeteilt wird, dass einer der geplanten Signalströme zu beginnen
hat. In Reaktion darauf lädt der
Ladeschaltkreis 68 Informationen in die Bereiche des Zuweisungsspeichers 60,
in welchem diesem Signalstrom Eingänge und Ausgänge zugewiesen
werden. Diese Informationen werden so ausgewählt, dass sie die Schaltmatrix
und die logischen FIFOs veranlassen, die Verbindungen herzustellen.
Das Laden kann zum Beispiel durch Einbeziehen eines jeweiligen Programms
in den Lade schaltkreis 68 für jeden Strom und durch Ausführen des
Ladeprogramms für
einen speziellen Strom realisiert werden, wenn angezeigt wird, dass
dieser spezielle Strom beginnt.
-
Wenn
ein Signalstrom aufhört,
dann wird das ebenfalls dem Ladeschaltkreis 68 angezeigt,
der daraufhin die Eintragungen, die im Zuweisungsspeicher 60 für diesen
Strom erzeugt wurden, zurücksetzt.
Somit werden in den Zeitschlitzen, die einem Signalstrom zugewiesen
wurden, keine Freigabesignale für einen
zugewiesenen Eingang und Ausgang vom Zuweisungsspeicher 60 auf
die Schaltmatrix 12 übertragen,
wenn dieser Signalstrom nicht aktiv ist. Natürlich werden in den Zeitschlitzen
auch keine Freigabesignale für
Eingänge
und Ausgänge
vom Zuweisungsspeicher 60 auf die Schaltmatrix 12 übertragen,
wenn diese Eingänge
und Ausgänge überhaupt
nicht zugewiesen worden sind.
-
Das
Nichtechtzeit-Vergabeglied 64 empfängt ferner Anforderungen für den Einsatz
von Eingang-Ausgang-Paaren zur Übertragung
von Signalströmen,
die keine harten Echtzeiteinschränkungen einzuhalten
brauchen. Das Nichtechtzeit-Vergabeglied 64 schlichtet
Konflikte zwischen diesen weiteren Anforderungen auf eine herkömmliche
Weise und gibt Steuersignale für
jeden Eingang und Ausgang aus, der mit der Schaltmatrix und den
Funktionselementen verbunden ist, um anzuzeigen, welcher Eingang
und Ausgang angeschlossen und welcher logische FIFO verwendet werden
sollte. Diese Steuersignale werden in die Kombinationsschaltkreise 66a–d eingegeben.
Der Kombinationsschaltkreis überträgt diese
Steuersignale nur dann auf die Schaltmatrix 12 und die
Verarbeitungselemente 10a–f, wenn sie keine Freigabesignale
von der Zuweisungsmatrix 60 erhalten. Anderenfalls übertragen
die Kombinationsschaltkreise 66a–d die Signale aus dem Zuweisungsspeicher 60.
Das eröffnet
die Möglichkeit,
dass die Kombinationsschaltkreise 66a–d Steuersignale für nur einen
Eingang oder Ausgang eines Eingang-Ausgang-Paares übertragen,
welches für
einen Nichtechtzeit-Signalstrom benötigt wird. Dies wird nachgewiesen,
und die Signalübertragung
wird durch die Schaltmatrix unterdrückt. Es wird den Quellen der Nichtechtzeit-Anforderungen
zurückgemeldet,
ob den Anforderungen stattgegeben wird.
-
Somit
hat die Zuweisung von Eingängen
und Ausgängen,
die durch den Zuweisungsspeicher 60 festgelegt wird, immer
Vorrang gegenüber
einer Zuweisung bei Nichtechtzeit-Anforderungen. Den Nichtechtzeit-Anforderungen
werden in den Zeitschlitzen stattgegeben, deren Eingänge und
deren Ausgang nicht für
harte Echtzeitsignalströme
verwendet werden, entweder weil diese Eingänge und dieser Ausgang nicht
zugewiesen sind oder weil der harte Echtzeitstrom nicht aktiv ist.
-
Der
Zentralprozessor 18 ist mit einer (nicht dargestellten)
Benutzerschnittstelle verbunden. Eine Benutzerperson kann diese
Benutzerschnittstelle verwenden, um die Funktion oder Funktionenkombination
auszuwählen,
die durch eine Anlage, welche die Vorrichtung enthält, auszuführen ist.
Wenn die Anlage eine spezielle Funktion oder Funktionenkombination
ausführt,
dann wird gesagt, dass sie sich in einem speziellen Zustand befindet.
Somit kann der Benutzer die Anlage zwischen einer Anzahl von unterschiedlichen
Zuständen
schalten. Jeder Zustand entspricht einem jeweiligen Satz von Prozessen,
die gleichzeitig unter harten Echtzeiteinschränkungen auszuführen sind.
Um optimalen Gebrauch von der Vorrichtung zu machen, wird vorzugsweise
für jeden Zustand
ein getrennter Zuweisungsplan aufgestellt. Der Zuweisungsplan legt
fest, welche Eingänge
und Ausgänge
der Verarbeitungselemente 10a–f den Signalströmen in welchen
Zeitschlitzen zugewiesen werden. Im Prinzip könnte dieser Zuweisungsplan
jedes Mal beim Auftreten eines neuen Zustandes, zum Beispiel durch
den Zentralprozessor 18, geplant werden, aber Pläne können auch
im Voraus für
jeden möglichen
Zustand der Anlage, in welcher die Vorrichtung verwendet werden
kann, aufgestellt und in der Vorrichtung gespeichert werden. Wenn
der Benutzer die Anlage in einen speziellen Zustand schaltet, dann wird
der Zuweisungsplan für
diesen Zustand aufgesucht und durch den Zentralprozessor 18 in
den Ladeschaltkreis 68 des Vergabegliedes 14 geladen.
-
Schalter
zwischen Zuständen
können
auch durch innere Ereignisse ausgelöst werden. Löst der Benutzer
zum Beispiel einen Schalter zwischen einem ersten und zweiten Zustand
aus, dann kann es notwendig sein, die Verarbeitung etlicher Bilder
zu vollenden, die vor dem Auslösen
des Schalters begonnen wurde, und mit der Verarbeitung anderer Bilder
erst nach dem Abschluss der Verarbeitung dieser Bilder zu beginnen.
In diesem Falle wird eine Anzahl von Zwischenzuständen festgelegt,
durch welche die Anlage von dem ersten in den zweiten Zustand gelangt.
Jeder Zwischenzustand weist seinen eigenen Satz von Prozessen und
seinen eigenen Zuweisungsplan auf, der in das Vergabeglied 14 geladen wird.
Die Übergänge zwischen
dem ersten Zustand, den Zwischenzuständen und dem zweiten Zustand werden
durch innere Ereignisse, wie z.B. den Abschluss eines Prozesses,
ausgelöst.
Diese Reihen von Zustandsübergängen werden
zum Beispiel durch ein Signal freigegeben, das von der Benutzerschnittstelle
empfangen wird.
-
Die
Ausführung
von Prozessen durch die Verarbeitungselemente 10a–f wird
auf Basis eines Datenflussprinzips gestartet. Unter den Verarbeitungselementen 10a–f gibt
es Eingabeprozessoren, welche die äußeren Eingaben, wie z.B. Videosignale, empfangen. Diese
Eingabeprozessoren sind programmiert, Signalströme zu erzeugen und diese Signalströme den anderen
Verarbeitungselementen 10a–f über die Schaltmatrix 12 zuzuführen.
-
Ist
ein Eingabeprozessor programmiert, einen Signalstrom zu erzeugen,
dann weist der Eingabeprozessor ein äußeres Ereignis, wie z.B. den
Beginn eines Videorahmens, nach, welches programmiert ist, den Signalstrom
zu starten. Daraufhin sendet der Eingabeprozessor eine harte Echtzeitanforderung
an das Vergabeglied 14, um für diesen Signalstrom eine Zuweisung
eines Ausganges des Eingabeprozessors und eines entsprechenden Einganges
eines anderen Verarbeitungselements 10a–f zu erhalten. Wenn das Vergabeglied 14 meldet,
dass für den
Signalstrom eine Verbindung verfügbar
ist, dann sendet der Eingabeprozessor als erstes einen Datenkopf,
der den Signalstrom kennzeichnet, und anschließend sendet er die Signalwerte
des Signalstroms. Der Datenkopf und die nachfolgenden Signalwerte
werden über
eine Anzahl von Zeitschlitzen verteilt, in denen das Vergabeglied 14 dem
Signalstrom den Eingang und Ausgang zuweist. Durch den Eingang und
Ausgang können
andere Signalströme laufen,
die in anderen Zeitschlitzen verschränkt sind. Ist der Ausgang nicht
verfügbar,
dann führt
der Eingabeprozessor eine Zwischenspeicherung der Signalwerte in
einem FIFO-Pufferspeicher aus. Die vorausgeplante Zuweisung stellt
sicher, dass genügend Zeitschlitze
zugewiesen sind, so dass im Eingabeprozessor kein Überlauf
des Pufferspeichers auftritt. Abschließend, zum Beispiel am Ende
des Videorahmens, teilt der Eingabeprozessor dem Vergabeglied 14 mit,
dass die Eingänge
und der Ausgang nicht länger
zuzuweisen sind.
-
Ein
Verarbeitungselement 10a–f das den Signalstrom vom
Eingabeprozessor empfängt,
liest zuerst aus dem Datenkopf, welcher Signalstrom begonnen hat.
Daraufhin beginnt das Verarbeitungselement 10a–f den Prozess,
der diesen Signalstrom verarbeitet. Das Verarbeitungselement 10a–f kann
dies zum Beispiel aus einer gespeicherten Entsprechungstabelle zwischen
Signalströmen
und Prozessen bestimmen. Nachdem er gestartet wurde, erzeugt der Prozess
einen verarbeiteten Signalstrom, der einen neuen Datenkopf enthält, auf
den die Signalwerte des verarbeiteten Signalstroms folgen. Diese
Signalwerte (und wenn nötig
der Datenkopf) werden in einen logischen FIFO-Pufferspeicher eingegeben. Ebenso
wie der Eingabeprozessor fordert das Verarbeitungselement 10a–f vom Vergabeglied
eine Zuweisung von Eingängen
und Ausgängen
für den
verarbeiteten Signalstrom und übermittelt
den Datenkopf sowie Signalwerte, wenn das Vergabeglied 14 mitteilt,
dass in einem Zeitschlitz Eingang und Ausgang verfügbar sind.
Nachdem der Eingabesignalstrom beendet ist, beendet das Verarbeitungselement 10a–f auch
den verarbeiteten Signal strom und teilt dem Vergabeglied mit, dass
die Eingänge
und der Ausgang nicht länger
zuzuweisen sind.
-
Somit
wird jedes Verarbeitungselement durch das Eintreffen eines Signalstroms
mit Ausnahme des Eingabestroms getriggert. Eine ausführlichere
Beschreibung des Datenflussprinzips kann gefunden werden in der
ebenfalls anhängigen
Patentanmeldung Nr.
EP 19960203069 ,
veröffentlicht
als WO 982047, die von den Erfindern der vorliegenden Anmeldung
eingereicht wurde.