DE69833122T2 - Signalverarbeitungsvorrichtung und verfahren zur verbindungsplanung zwischen prozessoren in einer signalverarbeitungsvorrichtung - Google Patents

Signalverarbeitungsvorrichtung und verfahren zur verbindungsplanung zwischen prozessoren in einer signalverarbeitungsvorrichtung Download PDF

Info

Publication number
DE69833122T2
DE69833122T2 DE69833122T DE69833122T DE69833122T2 DE 69833122 T2 DE69833122 T2 DE 69833122T2 DE 69833122 T DE69833122 T DE 69833122T DE 69833122 T DE69833122 T DE 69833122T DE 69833122 T2 DE69833122 T2 DE 69833122T2
Authority
DE
Germany
Prior art keywords
signal
input
output
time
processes
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
DE69833122T
Other languages
English (en)
Other versions
DE69833122D1 (de
Inventor
Hugo Adwin TIMMER
Anton Jeroen LEIJTEN
Louis Jozef VAN MEERBERGEN
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.)
NXP BV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE69833122D1 publication Critical patent/DE69833122D1/de
Publication of DE69833122T2 publication Critical patent/DE69833122T2/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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Description

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

Claims (9)

  1. Signalverarbeitungsvorrichtung, umfassend: – eine Anzahl von Verarbeitungselementen (10a–f), – Eingänge in die und Ausgänge aus den Verarbeitungselementen (10a–f) in der Anzahl, – eine Schaltmatrix (12), die zwischen den Eingängen und Ausgängen eingebunden und geeignet ist, gleichzeitig zwei oder mehr auswählbare Verbindungen zwischen den Eingängen und Ausgängen für die Kommunikation von Signalströmen zwischen einem Satz von Prozessen herzustellen, die in den Verarbeitungselementen (10a–f) parallel ausgeführt werden, – ein Vergabeglied (14) für das Auswählen der durch die Schaltmatrix (12) hergestellten Verbindungen, wobei das Vergabeglied (14) eingerichtet ist, eine jeweilige Zuweisung von Eingängen und Ausgängen herzustellen, die miteinander in jedem der aufeinanderfolgenden Zeitschlitze für die Übermittlung von Fraktionen der Signalströme zu verbinden sind, wobei das Vergabeglied (14) eingerichtet ist, die jeweiligen Zuweisungen für die Kommunikation von Signalströmen zwischen dem Satz von Prozessen für eine Anzahl von Zeitschlitzen im Voraus festzulegen, dadurch gekennzeichnet, dass das Vergabeglied (14) eingerichtet ist, eine Anforderung zum Herstellen einer weiteren Verbindung zwischen einem spezifizierten Eingang und Ausgang für die weitere Kommunikation zwischen weiteren Prozessen während der Anzahl von Zeitschlitzen zu empfangen und die Herstellung der weiteren Verbindung in einem Zeitschlitz auszuwählen, in welchem der spezifizierte Eingang und Ausgang nicht durch den Satz von Prozessen für die Kommunikation von Signalströmen, für welche die Zuweisung im Voraus festgelegt wurde, verwendet wird, wobei das Vergabeglied (14) ferner ein Echtzeit-Vergabeglied und ein Nichtechtzeit-Vergabeglied (64) umfasst.
  2. Signalverarbeitungsvorrichtung nach Anspruch 1, wobei jede Fraktion eine Aufeinanderfolge von mindestens zwei Abtastungen eines Signalstroms bereitstellt, der zwischen einem Eingang und Ausgang in einem Zeitschlitz übermittelt wird.
  3. Signalverarbeitungsvorrichtung nach Anspruch 1, wobei das Vergabeglied (14) die jeweiligen Zuweisungen festlegt, so dass sie in periodischen Zyklen erneut auftreten.
  4. Signalverarbeitungsvorrichtung nach Anspruch 3, wobei sich die jeweiligen Anzahlen von Zeitschlitzen, die jeweiligen Signalströme zugewiesen sind, im periodischen Zyklus entsprechend den Bandbreiten der jeweiligen Signalströme unterscheiden.
  5. Signalverarbeitungsvorrichtung nach Anspruch 1, wobei das Vergabeglied (14) dynamisch umprogrammierbar ist, um einen Satz jeweiliger Zuweisungen, die im Voraus festgelegt wurden, bei einer Veränderung des Satzes der Prozesse, die während des Einsatzes der Vorrichtung parallel ausgeführt werden, abzuändern.
  6. Signalverarbeitungsvorrichtung nach Anspruch 5, wobei mindestens ein Verarbeitungselement eingerichtet ist, eine Anzahl von FIFO-Pufferspeichern (42, 44) zu unterstützen, von denen jeder fortlaufende Signalabtastungen aus einem jeweiligen Strom empfängt, der in einen Prozess eingegeben wird, der durch das mindestens eine Verarbeitungselement ausgeführt wird, wobei die Ausführung eines jeden Prozesses von den Zeitschlitzen abgekoppelt ist, in denen Signalabtastungen für den Prozess über die Schaltmatrix (12) übermittelt werden.
  7. Signalverarbeitungsvorrichtung nach Anspruch 6, wobei das mindestens eine Verarbeitungselement (10a–f) eine Anzahl von Zustandsspeichern (402, 404) enthält, von denen jeder einen Verarbeitungszustand eines jeweiligen Prozesses speichert, wobei das Verarbeitungselement (10a–f) zwischen den Prozessen schaltet, indem es zwischen den Zustandsspeichern (402, 404) und zwischen den FIFO-Pufferspeichern (42, 44) schaltet.
  8. Signalverarbeitungsvorrichtung nach Anspruch 7, wobei das mindestens eine Verarbeitungselement (10a–f) eingerichtet ist, in jedem Zeitschlitz auf einen speziellen Prozess zu schalten, wo die Zuweisung für die Ausgabe aus diesem speziellen Prozess über die Schaltmatrix (12) vorgesehen ist.
  9. Verfahren zum Planen einer Zuweisung von Zeitschlitzen, in denen Eingänge und Ausgänge von Verarbeitungselementen (10a–f), die gleichzeitig ablaufende Prozesse ausführen, miteinander über eine Schaltmatrix (12) verbunden sind, wobei das Verfahren umfasst: – Kompilieren einer Liste von Eingabe-Ausgabe-Verbindungen, die für jeweilige Zeitschlitze aus einer Grundperiode von Zeitschlitzen geplant werden müssen; – Suchen nach einem Satz von Verbindungen aus der Liste, so dass jeder Eingang und jeder Ausgang höchstens einmal unter den Verbindungen in dem Satz vorkommt und jeder einzelne Eingang oder Ausgang in den Verbindungen des Satzes enthalten ist, wenn dieser jeweilige Eingang oder Ausgang in nicht weniger Zeitschlitzen der Grundperiode zu verbinden ist als irgendein anderer der Eingänge oder Ausgänge, die unter den Verbindungen in der Liste vorkommt; – Festlegen der Zuweisung in einem jeweiligen Zeitschlitz, so dass alle Eingang-Ausgang-Verbindungen in dem Satz in diesem Zeitschlitz vorkommen; – Wiederholen der Such- und Festlegungsschritte für die Verbindungen, die außerhalb des jeweiligen Zeitschlitzes für die Planung übrig bleiben.
DE69833122T 1997-10-21 1998-10-08 Signalverarbeitungsvorrichtung und verfahren zur verbindungsplanung zwischen prozessoren in einer signalverarbeitungsvorrichtung Expired - Lifetime DE69833122T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP97203272 1997-10-21
EP97203272 1997-10-21
PCT/IB1998/001564 WO1999021080A2 (en) 1997-10-21 1998-10-08 Signal processing device and method of planning connections between processors in a signal processing device

Publications (2)

Publication Number Publication Date
DE69833122D1 DE69833122D1 (de) 2006-03-30
DE69833122T2 true DE69833122T2 (de) 2006-08-24

Family

ID=8228847

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69833122T Expired - Lifetime DE69833122T2 (de) 1997-10-21 1998-10-08 Signalverarbeitungsvorrichtung und verfahren zur verbindungsplanung zwischen prozessoren in einer signalverarbeitungsvorrichtung

Country Status (5)

Country Link
US (1) US6400410B1 (de)
EP (1) EP0950225B1 (de)
JP (1) JP3893625B2 (de)
DE (1) DE69833122T2 (de)
WO (1) WO1999021080A2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594718B1 (en) * 2000-04-29 2003-07-15 Hewlett-Packard Development Company, L.P. Arbitration scheme for equitable distribution of bandwidth for agents with different bandwidth requirements
US7072353B2 (en) * 2000-06-15 2006-07-04 At&T Corp. Flexible bandwidth allocation in high-capacity grooming switches
DE10151938A1 (de) * 2001-10-22 2003-05-08 Siemens Ag System und Verfahren zur dynamischen Darstellung des Ist-Zustandes eines Auftrages in Relation zu einem Zielzustand
US20090300626A1 (en) * 2008-05-29 2009-12-03 Honeywell International, Inc Scheduling for Computing Systems With Multiple Levels of Determinism
JP2011223273A (ja) * 2010-04-08 2011-11-04 Sony Corp 画像処理装置、画像処理方法および画像処理システム
US20160127061A1 (en) * 2014-11-05 2016-05-05 Qualcomm Incorporated Broadcast interface

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521874A (en) * 1982-09-28 1985-06-04 Trw Inc. Random access memory device
JPS61214694A (ja) * 1985-03-18 1986-09-24 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション データ伝送のスイッチング装置
NL8800053A (nl) * 1988-01-11 1989-08-01 Philips Nv Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem.
NL8800071A (nl) * 1988-01-13 1989-08-01 Philips Nv Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem.
US5450557A (en) * 1989-11-07 1995-09-12 Loral Aerospace Corp. Single-chip self-configurable parallel processor
US5121502A (en) * 1989-12-20 1992-06-09 Hewlett-Packard Company System for selectively communicating instructions from memory locations simultaneously or from the same memory locations sequentially to plurality of processing
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
JPH06314264A (ja) * 1993-05-06 1994-11-08 Nec Corp セルフ・ルーティング・クロスバー・スイッチ
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US5497373A (en) * 1994-03-22 1996-03-05 Ericsson Messaging Systems Inc. Multi-media interface
US6020931A (en) * 1996-04-25 2000-02-01 George S. Sheng Video composition and position system and media signal communication system

Also Published As

Publication number Publication date
JP3893625B2 (ja) 2007-03-14
WO1999021080A2 (en) 1999-04-29
JP2001508270A (ja) 2001-06-19
DE69833122D1 (de) 2006-03-30
EP0950225A2 (de) 1999-10-20
EP0950225B1 (de) 2006-01-04
US6400410B1 (en) 2002-06-04
WO1999021080A3 (en) 1999-08-05

Similar Documents

Publication Publication Date Title
DE69734064T2 (de) Anordnung und verfahren zur dynamischen bandbreitenzuordnung in einem paketstromkodierer
DE3300261C2 (de)
DE69832410T2 (de) Pipeline-kommunikationssystem mit fester latenz-zeit unter verwendung von dynamischer echtzeit-bandbreitenzuweisung
DE3300263C2 (de)
DE3223658C2 (de) System und Verfahren zur Umwandlung eines zwischenzeilenlosen Videosignals in ein Zwischenzeilenvideosignal
DE2214769C2 (de) Zeitmultiplex-Vermittlungsanlage
EP0847165A1 (de) Digitales Datenübertragungsnetz und Verfahren zum Betreiben des Datenübertragungsnetzes
EP1723750B1 (de) Verfahren zur Datenkommunikation
DE69833122T2 (de) Signalverarbeitungsvorrichtung und verfahren zur verbindungsplanung zwischen prozessoren in einer signalverarbeitungsvorrichtung
WO2006000517A2 (de) Verfahren und vorrichtung zur steuerung eines bussystems sowie entsprechendes bussystem
EP0463207B1 (de) Programmgesteuerte Kommunikationsanlage
DE3532481A1 (de) Datenverarbeitungsanordnung
DE10200201A1 (de) Zyklusbasiertes zeitgesteuertes Kommunikationssystem
EP0184706B1 (de) Schnittstelleneinrichtung
WO2016083378A1 (de) Verfahren und vorrichtung zur weiterleitung von daten
CH653783A5 (de) Steuereinrichtung, insbesondere fuer fernsprechvermittlungsanlagen.
WO2008092805A2 (de) Netzwerkkomponente, verfahren zum betrieb einer solchen netzwerkkomponente, automatisierungssystem mit einer solchen netzwerkkomponente, verfahren zur datenübermittlung in einem automatisierungssystem unter verwendung einer solchen netz-werkkomponente sowie korrespondierendes computerprogramm und computerprogrammprodukt
EP0231434B1 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
DE602004001316T2 (de) Verfahren und Gerät zur Ablauffolgesteuerung der abwärtsgerichteten Packetdatenübertragung in einem drahtlosen Kommunikationssystem
WO2003028320A1 (de) Verfahren zum betrieb eines isochronen, zyklischen kommunikationssystems
EP0472775B1 (de) Programmgesteuerte Kommunikationsanlage bzw. Vermittlungseinrichtung
EP1078458B1 (de) Zeitgabevorrichtung und zeitgabeverfahren
EP3906642B1 (de) Verfahren zur datenkommunikation und computerprogramm
WO2005002145A1 (de) Anordnung und verfahren zur verwaltung eines speichers
EP3676995B1 (de) Master eines bussystems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: EISENFUEHR, SPEISER & PARTNER, 10178 BERLIN

8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL