DE69701351T2 - Signalverarbeitungsvorrichtung bestehend aus mehr als einem verarbeitungselement - Google Patents
Signalverarbeitungsvorrichtung bestehend aus mehr als einem verarbeitungselementInfo
- Publication number
- DE69701351T2 DE69701351T2 DE69701351T DE69701351T DE69701351T2 DE 69701351 T2 DE69701351 T2 DE 69701351T2 DE 69701351 T DE69701351 T DE 69701351T DE 69701351 T DE69701351 T DE 69701351T DE 69701351 T2 DE69701351 T2 DE 69701351T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- processing
- processing element
- processes
- input
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures of general purpose stored program computers data or demand driven
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Description
- Die Erfindung bezieht sich auf eine Signalverarbeitungsanordnung zum Durchführen von Prozessen, von denen ein erster Prozess ein Daten-Token erzeugt mit einer Prozessidentifikation und einer Vielzahl von Datenitems und von denen ein zweiter Prozess die Datenitems des ersten Prozesses bearbeitet, wobei diese Signalverarbeitungsanordnung mit den nachfolgenden Elementen versehen ist:
- - einem ersten Verarbeitungselement, das den ersten Prozess durchführt und die Datenitems nacheinander erzeugt, und
- - einem zweiten Verarbeitungselement, das in Reaktion auf den Empfang des Daten- Tokens, gesteuert durch die Prozessidentifikation, die Vielzahl von Datenitems verarbeiten.
- Eine derartige Signalverarbeitungsanordnung ist bekannt aus einem Artikel von Bang W. Lee u. a. in "Proceedings" der IEEE 1994 "Custom integrated circuits conference (CICC; San Diego, Mai 1994) Seiten 103-106 mit dem Titel:"Data Flow Processor for Multi-standars Video Codec".
- Namentlich Videosignalverarbeitung erfordert Verarbeitungsgeschwindigkeiten die mit der heutigen IC-Technik nur durch Parallel-Verarbeitung in einer Anzahl Verarbeitungselementen verwirklichbar sind. Herkömmlich wird für die Berechnung der Parallelverarbeitung eine "Control Flow Architecture" mit einer zentral orientierten Programmregelung benutzt, wobei die Ablaufsteuerung der jeweiligen parallelen Prozesse, die Datenitems erfahren, fest liegt.
- Der genannte Artikel von Bang W. Lee schlägt vor, die parallelen Prozesse zu steuern mit Hilfe eines Datenflussprinzips. Nach dem Datenflussprinzip wird mit Einheiten von Daten, die als Daten-Token bezeichnet werden, gearbeitet, die entsprechend verschiedenen Prozessen verarbeitet werden. Jedes Daten-Token enthält nebst herkömmlichen Datenitems auch eine Prozessidentifikation, woraus sich herleiten lässt, nach welchem Prozess die Datenitems verarbeitet werden müssen. Der Prozessor startet den Prozess in Reaktion auf die Verfügbarkeit des zu verarbeitenden Daten-Tokens, wobei der Prozess anhand der Prozessidentifikation gewählt wird, ohne dass eine zentral koordinierte Programmsteuerung im Voraus bestimmt, welcher Prozess zu welchem Zeitpunkt gestartet werden soll.
- Es ist nun u. a. eine Aufgabe der vorliegenden Erfindung, eine Signalverarbeitungsanordnung de eingangs erwähnten Art zu schaffen, wobei die Verarbeitungseffizienz weiter gesteigert wird.
- Die Signalverarbeitungsanordnung nach der vorliegenden Erfindung weist das Kennzeichen auf, dass das zweite Verarbeitungselement dazu eingerichtet ist, mit der Verarbeitung der Datenitems anzufangen in Reaktion auf den Anfang des Empfangs des Daten-Tokens, unabhängig davon, ob das erste Verarbeitungselement alle Datenitems des Daten-Tokens erzeugt hat. Auf diese Weise funktioniert die Verarbeitungsanordnung wie eine Pipeline, in der parallel aufeinanderfolgende Verarbeitungsprozesse auf einem Strom von Datenitems oder auf Abschnitten davon durchgeführt werden. Ein Daten-Token vertritt einen mehrere Datenitems aufweisenden Abschnitt eines Stroms, die je im Grunde in einem Prozess identisch behandelt werden, wie beispielsweise Abtastwerte eines zeitkontinuierlichen oder raumkontinuierlichen Signals. Bei einem Verarbeitungselement können auf diese Weise wechselweise mehrere Abschnitte des Stromes eintreffen, die je eine beschränkte Länge haben und der Anfang des Verarbeitungsprozesses an einem Abschnitt des Stroms einmalig für den ganzen Strom nach dem Datenflussprinzip anhand der Prozessidentifikationen aufgeteilt. Diese Art und Weise der Verarbeitung weicht ab von dem Datenflussprinzip, und bedeutet, dass ein Verarbeitungsprozess eines Daten-Tokens nicht länger als unteilbar behandelt wird.
- Eine Ausführungsform der Signalverarbeitungsanordnung nach der vorliegenden Erfindung, wobei das erste und das zweite Verarbeitungselement einen Teil eines Systems aus wenigstens drei Verarbeitungselementen bildet und wobei diese Signalverarbeitungsanordnung mit einer Kommunikationsverbindung zwischen Verarbeitungselementen des Systems versehen ist, die zugeordnet werden kann, weist das Kennzeichen auf, dass die Signalverarbeitungsanordnung einen Zuordnungsregler aufweist, der mit Information über eine Abbildung der Prozesse auf den Systemverarbeitungselementen versehen ist, wobei dieser Zuordnungsregler in Reaktion auf den Anfang der Erzeugung des Daten-Tokens und unter Ansteuerung der Information über die Abbildung in Bezug auf die Prozessidentifikation in dem Daten-Token, die Kommunikationsverbindung zur Übertragung des Daten-Tokens von dem ersten Verarbeitungselement zu einem Eingang des zweiten Verarbeitungselement zuordnet, wenn die Kommunikationsverbindung nicht zugeordnet ist zur Übertragung eines anderen Daten-Tokens zu dem genannten Eingang des zweiten Verarbeitungselementes. Auf diese Weise versorgt der Zuordnungsregler im Wesentlichen die Erledigung. Wenn der Zuordnungsregler den Daten-Token mit der Prozessidentifikation zu dem zweiten Verarbeitungselement durchlässt, wird das zweite Verarbeitungselement dadurch damit anfangen, den zweiten Prozess zu verarbeiten.
- Eine andere Ausführungsform der Signalverarbeitungsanordnung nach der vorliegenden Erfindung weist das Kennzeichen auf, dass das erste Verarbeitungselement mit einer Verarbeitungseinheit und mit einem Ausgang FIFO zwischen der Verarbeitungseinheit und der Kommunikationsverbindung versehen ist, wobei die Verarbeitungseinheit den ersten Prozess durchführt, die Datenitems erzeugt und hintereinander in den Ausgang FIFO einschreibt und die Datenitems danach aus dem Ausgang FIFO ausgelesen werden zur Übertragung über die Kommunikationsverbindung, wenn der Zuordnungsregler die Kommunikationsverbindung zur Übertragung des Daten-Tokens zugeordnet hat. Auf diese Weise kann das erste Verarbeitungselement die Erzeugung von Datenitems fortsetzen, auch wenn der Zuordnungsregler die Kommunikationsverbindung noch nicht zugeordnet hat zur Übertragung des Daten- Tokens, beispielsweise weil das zweite Verarbeitungselement noch damit beschäftigt ist, einen vorhergehenden Daten-Token zu verarbeiten, oder weil die Erzeugung noch nicht angefangen hat und ein weiterer Daten-Token, der in dem zweiten Prozess mit dem Daten-Token kombiniert verarbeitet werden soll.
- Eine weitere Ausführungsform der Signalverarbeitungsanordnung nach der vorliegenden Erfindung weist das Kennzeichen auf, dass das zweite Verarbeitungselement mit einer Verarbeitungseinheit und einem Eingang FIFO zwischen der Verarbeitungseinheit und dem Eingang des Verarbeitungselementes versehen ist, wobei die Datenitems nacheinander aus dem ersten Verarbeitungselement über die Kommunikationsverbindung in den Eingang FIFO eingeschrieben werden und die Verarbeitungselement die Datenitems nacheinander aus dem FIFO ausliest zur Verar beitung nach dem zweiten Prozess und wobei der Zuordnungsregler dazu eingerichtet ist, die Kommunikationsverbindung zu dem zweiten Verarbeitungselement zuzuordnen zur Übertragung des Daten-Tokens in Reaktion auf die Detektion, dass ein letztes Datenitem eines vorhergehenden Daten-Tokens in den Eingang FIFO eingeschrieben ist. Die Verarbeitungseinheit verarbeitet Daten-Token auf diese Weise in der Reihenfolge, in der sie eintreffen und sie braucht nicht spezifisch für Datenflussverarbeitung entworfen zu sein. Auf diese Weise kann bereits ein Anfang von Übertragung des Daten-Tokens gemacht werden, bevor der vorhergehende Daten-Token völlig verarbeitet worden ist.
- Bei Verarbeitung nach dem Datenflussprinzip besteht die Gefahr vor Deadlock. Deadlock entsteht beispielsweise wenn die Verarbeitung aussetzt durch zuviel erzeugte Daten-Token für verschiedene Prozesse, ohne dass für irgendeinen Prozess Daten-Token für alle Eingänge verfügbar sind. Dies ist namentlich ein Problem bei einer Signalverarbeitungsanordnung mit funktionsspezifischen Verarbeitungselementen, die je sehr effizient ausgebildet sind zum Durchführen von Prozessen, die eine bestimmte Funktion (DCT, Filtern usw.) haben, die aber nicht imstande sind, andere Prozesse durchzuführen. Dadurch ist es nicht möglich, durch Änderungen in der Wahl der Zuordnung von Prozessen zu Verarbeitungselementen Deadlock zu vermeiden.
- Ein anderes Problem, das entsteht durch Zuordnung mehrerer Prozesse zu demselben Verarbeitungselement ist "Starvation". Ein durch Starvation befallener Prozess gelangt nur selten zur Durchführung, weil viel mehr Daten-Token anderer Prozesse als von dem befallenen Prozess bei einem Verarbeitungselement anlangen.
- Eine Ausführungsform der Signalverarbeitungsanordnung nach der vorliegenden Erfindung weist das Kennzeichen auf, dass die Signalverarbeitungsanordnung mit den nachfolgenden Elementen versehen ist:
- - Sequenzprogrammierungsmitteln zum Programmieren einer Prozessreihenfolge einer Anzahl programmierbarer selektierter Prozesse;
- - Sequenzsteuermittel zum Beschränken einer Übertragungsreihenfolge, wobei in dieser Beschränkung die Prozesse Daten-Token über die Kommunikationsverbindung übertragen entsprechend der Prozessreihenfolge von Prozessen, die in den Sequenz programmierungsmitteln programmiert ist. Auf diese Weise kann der Programmierer der Signalverarbeitungsanordnung oder des Compilers beim Programmieren der Signalverarbeitungsanordnung Maßnahmen treffen um Deadlock und Starvation zu vermeiden, beispielsweise dadurch, dass spezifiziert wird, dass die Prozesse, die Eingänge liefern für verschiedene Prozesse, die demselben Verarbeitungselement zugeordnet sind, wechselweise gestartet werden.
- Eine weitere Ausführungsform der Signalverarbeitungsanordnung nach der vorliegenden Erfindung weist das Kennzeichen auf, dass die Sequenzprogrammierungsmittel mit dem Zuordnungsregler gekoppelt sind, damit die Zuordnung der Verbindung zur Übertragung des Daten-Tokens gesperrt wird, solange der zweite Prozess nach der Prozessreihenfolge noch nicht an die Reihe ist. Auf diese Art und Weise wird zur Beschränkung der Reihenfolge die Kommunikationsarbitrage benutzt, die auch sonst bereits erforderlich ist.
- Die Signalverarbeitungsanordnung nach der vorliegenden Erfindung hat weitere Ausführungsformen, in denen das zweite Verarbeitungselement einen weiteren Eingang hat, in dem der zweite Prozess zusammen mit einem dritten Prozess auf dem zweiten Verarbeitungselement abgebildet ist, wobei der zweite Prozess über den Eingang und den weiteren Eingang Daten von dem ersten Prozess bzw. einem vierten Prozess empfängt und wobei der zweite Prozess über den Eingang und den weiteren Eingang Daten von einem fünften bzw. sechsten Prozess empfängt und wobei die Sequenzprogrammierungsmittel derart programmiert sind, dass eine Reihenfolge, in der Daten-Token des ersten und fünften Prozesses über die Kommunikationsverbindung zu dem ersten bzw. zweiten Prozess übertragen wird, mit einer Reihenfolge übereinstimmt, in der Daten des vierten und sechsten Prozesses über die Kommunikationsverbindung zu dem ersten bzw. zweiten Prozess übertragen wird. Auf diese Weise wird die Deadlock-Situation vermieden, die entsteht, wenn Verarbeitungselemente verschiedene Daten-Token für einen der Eingänge erzeugen und dadurch nicht dazu kommen, die Erzeugung eines zugeordneten Daten-Tokens für den anderen Eingang durchzuführen.
- Eine andere Ausführungsform der Signalverarbeitungsanordnung nach der vorliegenden Erfindung weist das Kennzeichen auf, dass das zweite Verarbei tungselement einen weiteren Eingang hat, der an die Kommunikationsverbindung angeschlossen ist zum Empfangen eines weiteren Daten-Tokens, wobei der zweite Prozess Datenitems aus dem Daten-Token und dem weiteren Daten-Token in Kombination verarbeitet, und der Zuordnungsregler die Kommunikationsverbindung nur zur Übertragung des Daten-Tokens zuordnet, wenn ein Anfang der Erzeugung des Daten- Tokens sowie ein Anfang der Erzeugung des weiteren Daten-Tokens durch den Zuordnungsregler detektiert sind. Der Zuordnungsregler sorgt auf diese Weise für die sog. "Matching" von Daten-Token, d. h., dass die Daten-Token, die paarweise bei dem zweiten Verarbeitungselement anlangen für denselben zweiten Prozess bestimmt sind. Das zweite Verarbeitungselement kann auf diese Weise ohne weitere Matching die eintreffenden Daten-Token verarbeiten.
- Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im Folgenden näher beschrieben. Es zeigen:
- Fig. 1 eine Signalverarbeitungsanordnung,
- Fig. 2 ein Beispiel einer Datenflussgraphik,
- Fig. 3 ein Verarbeitungselement,
- Fig. 4 eine Tabelle eines Reglers,
- Fig. 5 ein Flussdiagramm für einen Regler,
- Fig. 6 ein Beispiel einer Datenflussgraphik,
- Fig. 7 Beispiel einer Ablaufsteuerung.
- Fig. 1 zeigt eine Signalverarbeitungsanordnung. Diese umfasst beispielsweise fünf Verarbeitungselemente 10a-e, eine programmierbare Regeleinheit 12 und einen Kreuzschienenschalter 14. Die Verarbeitungselemente 10a-e können über den Kreuzschienenschalter 14 miteinander verbunden werden. Der Kreuzschienenschalter 14 steht unter Ansteuerung der Regeleinheit 12.
- Fig. 2 zeigt ein Beispiel einer Datenflussgraphik 20. Die Datenflussgraphik 20 stellt einen zusammengesetzten Datenverarbeitungsprozess dar, der aus Prozessen (A,B,C,D,E,P,Q) aufgebaut ist. Jeder Prozess (A,B,C,D,E,P,Q) entspricht einer bestimmten Datenverarbeitungsfunktion. Die Funktion des Prozesses A könnte bei spielsweise eine Fourier-Transformation sein und die Prozesse A und C könnten das Quantisieren des reellen und imaginären Anteils der Fourier-Transformierten sein, ein anderer Prozess könnte eine Huffman-Decodierung oder eine Lauflängencode-Decodierung durchführen usw. Verschiedene Prozesse können dieselbe Funktion haben, durchgeführt an verschiedenen Daten.
- Jeder Prozess wird in der Datenflussgraphik 20 durch einen eigenen Knotenpunkt (A,B,C,D,E,P,Q) symbolisiert. Edges E0-E9 in der Datenflussgraphik symbolisieren einen Datenaustausch zwischen den Prozessen (A,B,C,D,E,P,Q). Nach der Datenflussgraphik 20 treffen die Daten bei einem Prozess A über einen Edge E0 ein. Der Prozess A erzeugt zwei Arten von Ausgangsdaten, die über Edges E1, E2 zu den Prozessen B bzw. C gehen. Der Prozess B erzeugt wieder zwei Arten von Ausgangsdaten, die über Edges E3, E4 zu den Prozessen D bzw. P gehen. Der Prozess C erzeugt nur eine Art von Ausgangsdaten, die über den Edge Es zu dem Prozess P gehen. Der Prozess P empfängt zwei Arten von Eingangsdaten und erzeugt nur eine Art von Ausgangsdaten, die über Edge E7 zu dem Prozess E gehen. Der Prozess D erzeugt Ausgangsdaten, die über Edge E6 zu dem Prozess Q gehen. Der Prozess Q erzeugt das Endergebnis der zusammengesetzten Datenverarbeitung über Edge E9.
- Im Betrieb führt der Signalprozessor nach Fig. 1 die Datenflussgraphik 20 beispielsweise an jedem einer Reihen von Bildsignalen durch. Dazu werden die jeweiligen Prozesse (A,B,C,D,E,P,Q) auf dem System von Verarbeitungselementen 10a-e abgebildet. Beispielsweise Prozesse A und B auf dem Verarbeitungselement 10a, Prozesse P und Q auf dem Verarbeitungselement 10b und Prozesse C,D,E auf den Verarbeitungselementen 10c-e. Es können also mehrere Prozesse auf demselben Verarbeitungselement abgebildet werden. Auch könnte es in Abweichung von dem Beispiel Verarbeitungselemente geben, auf denen überhaupt kein Prozess abgebildet wird.
- Das eintreffende Bildsignal wird einem Verarbeitungselement 10a zugeführt, auf dem der Prozess A abgebildet ist. Dieses Verarbeitungselement 10a führt die Funktion des Prozesses A für jedes Bild durch und erzeugt für jedes Bild die zwei Arten von Datengegenständen, die aus dem Prozess A folgen. Diese zwei Arten von Datengegenständen werden jeweils über den Kreuzschienenschalter 14 zu den Verarbeitungselementen 10a, 10c übertragen, auf denen die Prozesse B, C abgebildet sind, die entsprechend der Datenflussgraphik 20 die Ergebnisse des Prozesses A empfangen. An diesen Verarbeitungselementen 10a, 10c werden diese Datengegenstände ihrerseits wieder verarbeitet.
- Fig. 3 zeigt eine Ausführungsform eines Verarbeitungselementes. Das Verarbeitungselement umfasst eine Verarbeitungseinheit 50 mit zwei Eingängen, die über FIFOs 52a,b mit den Eingängen des Verarbeitungselementes verbunden sind. Weiterhin ist ein Ausgang der Verarbeitungseinheit 50 über einen FIFO 54 mit einem Eingang eines Routers 56 gekoppelt. Das Verarbeitungselement umfasst weiterhin eine Durchführungskontrolleinheit 58. Die FIFOs 52a, 2, 54 haben je einen Eingangstakteingang, einen Ausgangstakteingang, einen FIFO-voll/nicht voll- Ausgang und einen FIFO-leer/nicht leer-Ausgang. Der Ausgangstakteingang der FIFOs 52a,b und der Eingang der Verarbeitungseinheit 50 sind mit der Durchführungskontrolleinheit 58 gekoppelt, zusammen mit den FIFO-leer/nicht leer-Ausgängen dieser FIFOs. Der Eingangstakteingang und der Voll/nicht voll-Ausgang des FIFOs 54 an dem Ausgang der Verarbeitungseinheit 50 sind auch mit der Durchführungskontrolleinheit 58 gekoppelt.
- Der Eingangstakteingang und der FIFO-voll/nicht voll-Ausgang der FIFOs 52a,b an dem Eingang sind mit der Kontrolleinheit 12 gekoppelt. Der Ausgangstakteingang und der FIFO-leer/nicht leer-Ausgang des FIFOs 54 sind mit dem Router 56 gekoppelt. Der Router ist mit der Kontrolleinheit 12 (nicht dargestellt) verbunden.
- Im Betrieb werden den Eingängen der Eingangs-FIFOs 52a,b die jeweiligen Daten-Token zugeführt. Ein Daten-Token umfasst beispielsweise eine Anzahl Datenitems, die zusammen ein Bild darstellen und die aufeinanderfolgend in einen Eingang FIFO 52a,b eingeschrieben werden. Weiterhin umfasst ein Daten-Token beispielsweise einen Länge-Code, der die Anzahl Datenitems in dem Daten-Token angibt, eine Anzeige der Funktion, nach der das Bildsignal verarbeitet werden soll und eine Identifikation des Edge, dem die Ausgangsdaten dieser Funktion in der Datenflussgraphik entsprechen.
- Die Durchführungskontrolleinheit 58 steuert, wenn die Verarbeitungseinheit 50 aktiv wird, beispielsweise wenn die FIFOs 52a,b dem Eingang ein nicht leer-Signal abgeben und den FIFO 54 an dem Ausgang ein nicht-voll-Signal abgibt. Wenn die Verarbeitungseinheit 50 in Gang gesetzt wird, liest diese aus den FIFOs 52a,b den Länge-Code und die Anzeige der Funktion, die an den eintreffenden Daten durchgeführt werden soll. Daraufhin liest die Verarbeitungseinheit 50 die Datenitems nacheinander aus den Eingangs-FIFOs 52a,b. Die Datenitems werden verarbeitet gemäß der Anzeige der Funktion, beispielsweise dadurch, dass eine Fourier-Transformation durchgeführt wird oder dadurch, dass eine variable-Länge-Codierung durchgeführt wird. Die Verarbeitung kann starten, sobald die Anzeige der Funktion und ein erstes Datenitem in den Eingangs-FIFOs 52a,b verfügbar sind. Mit dem Start der Verarbeitung braucht nicht gewartet zu werden, bis alle Datenitems verfügbar sind. Im Allgemeinen werden die Eingangs-FIFOs 52a,b sogar zu kurz sein um alle Datenitems in einem Daten-Token gleichzeitig zu enthalten.
- Die Verarbeitung führt zu einer Reihe Ausgangs-Datenitems. Die Verarbeitungseinheit 50 führt diese Datenitems nacheinander dem Ausgangs-FIFO 54 zu, wobei zunächst aber die Identifikation des Edge stattfindet, dem die Ausgangsdaten dieser Funktion entsprechen. Je nach der Funktion kann auch das Zuführen von datenitems zu dem Ausgangs-FIFO 54 bereits starten bevor alle Datenitems an dem Eingang angelangt sind.
- Der Router 56 detektiert anhand des leer/nicht-leer-Signals des FIFOs 54 an dem Ausgang der Verarbeitungseinheit 50, ob Ausgangsdaten verfügbar sind. Sollte dies der Fall sein, und sollte diese Verfügbarkeit bei der Kontrolleinheit 12 noch nicht erkannt sein, so wird die Verfügbarkeit an der Kontrolleinheit 12 erkannt, zusammen mit der Identifikation des Edge in der Datenflussgraphik, dem die Ausgangs- Daten entsprechen. In Reaktion gibt die Kontrolleinheit zu dem Router 56 die Funktion der Verarbeitung an, die aus dieser Verarbeitung folgt. Weiterhin ordnet die Kontrolleinheit 12 eine Verbindung zu über den Kreuzschienenschalter 14 mit dem Verarbeitungselement, das diese Verarbeitung durchführen soll.
- Nachdem die Kontrolleinheit 12 den Router 56 mitteilt, dass die Kommunikationsverbindung verfügbar ist, sendet der Router 56 die Anzeige der Funktion und die Anzeige des Edge über den Kreuzschienenschalter 14 (nicht dargestellt). Wenn der Prozess, den das Verarbeitungselement durchführt, Ausgangsdaten über mehr als nur einen Edge erzeugt, sind diese Edges vorzugsweise aufeinanderfolgend nummeriert. Die Kontrolleinheit 12 braucht dann nur die niedrigste Nummer dem Router 56 oder der Verarbeitungseinheit zuzusenden; der Router 56 oder die Verarbeitungseinheit kann die Nummern der aufeinanderfolgenden Ausgangs-Edges dann selbst erzeugen.
- Der Router 56 führt daraufhin dem Ausgangs-Takteingang des Ausgangs-FIFO 54 Taktsignale zu, wodurch die Datenitems nacheinander aus dem Ausgangs-FIFO 54 über die Kreuzschienenschalter 14 (nicht dargestellt) gesendet werden. Dabei wird dafür gesorgt, dass die Versendung unterbrochen wird, wenn der FIFI 54 mit den Ausgangsdaten leer ist oder der FIFO 52a,b, dem diese Ausgangsdaten zugeführt werden, voll ist. Dies wird beispielsweise dadurch gesteuert, dass die Kontrolleinheit 12 oder die leer/nicht-leer-Signale und voll/nicht-voll-Signale über den Kreuzschienenschalter 14 zwischen den betreffenden Verarbeitungselementen 10a-b ausgetauscht werden.
- Die Kontrolleinheit 12 umfasst eine Darstellung der Datenflussgraphik und ist programmierbar, so dass verschiedene Datenflussgraphiken darin dargestellt werden können. Die Kontrolleinheit 12 steuert die Verarbeitungselemente 10a-e und den Kreuzschienenschalter 14, so dass die programmierte Datenflussgraphik tatsächlich durchgeführt wird.
- Fig. 4 zeigt in Tabellenform eine Darstellungsform der Datenflussgraphik zum Gebrauch durch die Kontrolleinheit 12. Die Tabelle umfasst für jeden Edge der Datenflussgraphik eine einzelne Reihe. In jeder Reihe steht beispielsweise
- - eine Identifikation des betreffenden Edge,
- - eine Identifikation der Funktion der Verarbeitung, die an den Daten durchgeführt werden soll, die nach diesem Edge übertragen werden,
- - eine Identifikation des Verarbeitungselementes, das die Funktion durchführen soll und nötigenfalls vom Eingang dieses Verarbeitungselementes, über den die Daten zugeführt werden sollen,
- - eine Identifikation eines weiteren Edge, über den Datentransport erlaubt werden darf, nachdem Daten über den betreffenden Edge transportiert sind.
- Fig. 5 zeigt ein Flussdiagramm eines Beispiel eines Verfahrens, nach dem die Kontrolleinheit 12 diese Tabelle benutzt. Das Flussdiagramm geht davon aus, dass ein Verarbeitungselement 10a-e der Kontrolleinheit 12 mitteilt, wann Ausgangsdaten von einem Prozess für Transport verfügbar sind und dass das Verarbeitungselement 10a-e erkennt, mit welchen Edge in der Datenflussgraphik diese Daten übereinstimmen.
- Die Kontrolleinheit 12 führt das Flussdiagramm für jedes der Verarbeitungselemente 10a-e wiederholt durch, beispielsweise auf "Round Robin"-Basis. In einem ersten Schritt 40 des Flussdiagramms testet die Kontrolleinheit 12, ob ein Signal von einem betreffenden ersten Verarbeitungselement 10a-e empfangen worden ist. Wenn nicht, dann endet die Durchführung des Flussdiagramms. Wenn ja, dann testet die Kontrolleinheit 12 in einem zweiten Schritt 42, ob Datentransport entsprechend dem Edge, den das betreffende Verarbeitungselement 10a-e erkennt, gesperrt worden ist. Der Zweck und die Art und Weise, wie dies geschieht, wird nachher noch näher erläutert; zur Beschreibung des Flussdiagramms reicht es, dass die Kontrolleinheit 12 die Durchführung des Flussdiagramm beendet, wenn der Edge nicht gesperrt ist, und einen dritten Schritt 44 durchführt, wenn Datentransport gesperrt worden ist. In dem dritten Schritt 44 bestimmt die Kontrolleinheit 12 anhand des erkannten Edge und der Tabelle, welches der Verarbeitungselemente 10a-e die verfügbaren Daten verarbeiten soll und welchen Eingang dieses (zweiten) Verarbeitungselementes 10a-e diese Daten zugeführt werden sollen. In dem nächsten, vierten Schritt 46 testet die Kontrolleinheit 12, ob dieser Eingang bereits reserviert ist für die Zufuhr anderer Daten. Wenn ja, so wird die Durchführung des Flussdiagramms beendet, wenn nicht, so reserviert die Kontrolleinheit 12 den Eingang und führt einen fünften Schritt 48 durch.
- In dem fünften Schritt 48 steuert die Kontrolleinheit 12 den Kreuzschienenschalter 14 derart, dass dieser eine Verbindung zwischen einem Ausgang des ersten Verarbeitungselementes 10a-e, das erkannt hat, dass Ausgangsdaten verfügbar sind und dem Eingang des zweiten Verarbeitungselementes 10a-e, das die Daten verarbeiten soll. Die Kontrolleinheit 12 sperrt den erkannten Edge für einen anderen Ausgang, beispielsweise dadurch, dass ein Speicherelement, das die gesperrten/freigegebenen Zustände, die der Edge angibt, entsprechend zu laden. Die Kontrolleinheit 12 bestimmt danach anhand des erkannten Edge und der Tabelle, welcher weitere Edge gesperrt werden soll. Die Kontrolleinheit 12 sperrt diesen Edge beispielsweise dadurch, dass das betreffende Speicherelement entsprechend geladen wird. Wie aus der Tabelle hervorgeht, kann dabei der ursprünglich erkannte Edge sofort wieder gesperrt werden, so dass der erkannte Edge im Wesentlichen ständig gesperrt ist.
- Die Kontrolleinheit 12 bestimmt anhand des erkannten Edge aus der tabelle die Funktion, die an den Ausgangsdaten durchgeführt werden soll und schickt eine Anzeige dieser Funktion zu dem ersten Verarbeitungselement 10a-e. Weiterhin bestimmt die Kontrolleinheit eine Identifikation des niedrigst nummerierten Ausgangsedge des Prozesses, der diese Funktion durchführt und schickt diesen dem ersten Verarbeitungselement 10a-e zu. Dazu umfasst die Kontrolleinheit 12 vorzugsweise für jede Edge-Reihe, nebst der Information über die Funktion des Prozesses, der dieser Edge Daten zuführt, auch Information (nicht dargestellt) über den niedrigst nummerierten Edge, der Ausgangsdaten dieses Prozesses überträgt. Diese Information kann aber auch dadurch gefunden werden, dass Prozessidentifikationsinformation benutzt wird und eine Tabelle mit Prozessidentifikationsausgangsedgebeziehungen benutzt werden.
- Die Wirkungsweise der Signalverarbeitungsanordnung nach der vorliegenden Erfindung wird nun anhand eines Beispiels einer vereinfachten Datenflussgraphik näher erläutert.
- Fig. 6 zeigt ein Beispiel einer Datenflussgraphik. Diese Datenflussgraphik umfasst fünf Prozesse R, S. T, U, V. ein erster Prozess R hat zwei ausgehende Edges I, J, die zu einem ersten bzw. zweiten aufeinanderfolgenden Prozess S. U gehen. Die aufeinanderfolgenden Prozesse S. U haben je einen ausgehenden Edge, die zu betreffenden weiteren aufeinanderfolgenden Prozessen T, V gehen.
- Fig. 7 zeigt ein stark vereinfachtes Beispiel der Ablaufsteuerung der Durchführung der Prozesse der Datenflussgraphik nach Fig. 6. Das Beispiel geht davon aus, dass die Prozesse R, S und U nach Fig. 6 je von einem eigenen Verarbeitungselement durchgeführt werden und dass die Prozesse T und V an dem selben Verarbeitungselement durchgeführt werden. Fig. 7 umfasst eine Anzahl Spuren OI, OJ, OS, OU, OT/V, welche die Erzeugung von Datenitems in den Verarbeitungselementen darstellen. Weiterhin umfasst Fig. 7 eine Spur A11, die angibt, welche Verbindung über den Kreuzschienenschalter zugeordnet ist. Die ersten zwei Spuren OI, OJ zeigen die Erzeugung von Datenitems in dem Verarbeitungselement, das den ersten Prozess R durchführt. Die dritte und vierte Spur OS, OU zeigen die Erzeugung von Datenitems in den Verarbeitungselementen, die den ersten und zweiten aufeinanderfolgenden Prozess S. U durchführen. Die fünfte Spur OT/V zeigt die Erzeugung von Datenitems an dem Ausgang des Verarbeitungselementes, das die weiteren aufeinanderfolgenden Prozesse T, V durchführt.
- Das Beispiel nach Fig. 7 zeigt, dass der Prozess S in Reaktion auf aufeinanderfolgende Datenitems, die über den eintreffenden Edge I eintreffen, abhängig von dem Inhalt dieser Datenitems verschiedene Anzahl Ausgangsdatenitems erzeugt: in dem Beispiel 1, 3, 4, 0, 4, 0, 1. Dies ist beispielsweise der Fall bei einem "veränderliche Länge-Decoder", wie dieser bei MPEG-Decodierung verwendet wird. Die erzeugten Datenitems werden zu Daten-Token kombiniert. Der Prozess S selbst bestimmt die Anzahl Datenitems, die zu einem Daten-Token kombiniert werden. Der Prozess S kombiniert beispielsweise jede Vierergruppe erzeugter Datenitems zu einem Daten-Token. Der Prozess U funktioniert auf ähnliche Weise, erzeugt aber in Reaktion auf die aufeinanderfolgenden Datenitems in dem Beispiel 1, 2, 0, 1, 3, 0 Datenitems.
- Sobald der Prozess S mit der Erzeugung von Datenitems anfängt, ordnet die Kontrolleinheit 12 über den Kreuzschienenschalter 14 eine Verbindung des Verarbeitungselementes zu, das den Prozess S durchführt, zu dem Verarbeitungselement, das den Prozess T durchführt. Der Prozess T erzeugt für jeweils zwei empfangene Datenitems nur einen Ausgangsdatenitem. Indem der Prozess T durchgeführt wird, fängt auch der Prozess U damit an, Datenitems zu erzeugen. Dies wird der Kontrolleinheit mitgeteilt, was jedoch nicht unmittelbar zu einer Zuordnung führt, weil das Verarbeitungselement, das den Prozess V an diesen Datenitems durchführen soll, und die Verbindung zu diesem Verarbeitungselement noch dem Prozess T zugeordnet sind. Solange die Verbindung noch nicht zugeordnet ist, werden die erzeugten Datenitems in dem Ausgangs-FIFO des Verarbeitungselementes gepuffert, das den Prozess U durchführt. Dieses Verarbeitungselement kann dadurch ggf. bereits mit einem nachfolgenden Prozess anfangen, noch bevor die erzeugten Datenitems verschickt worden sind.
- Die Verbindung zu dem Verarbeitungselement, das den Prozess durchführen soll, wird dem Ausgang des Prozesses U zum Zuführen zu dem Prozess V nur zugeordnet, nachdem ein vollständiger Daten-Token (vier Datenitems) des Prozesses S bei dem Verarbeitungselement angelangt ist, der den Prozess T durchführt. Danach werden die Datenitems aus dem Ausgangs-FIFO des Verarbeitungselementes, das den Prozess U durchführt, gelesen und dem Verarbeitungselement zugeführt, das den Prozess V durchführt. Dieses Verarbeitungselement fängt damit an, den Prozess V durchzuführen. In dem weiteren Verlauf der Spuren führt dieses Verarbeitungselement abwechselnd den Prozess T oder den Prozess V durch, abhängig von der Verfügbarkeit eines Anfangs eines Daten-Tokens. So wird dieses Verarbeitungselement beispielsweise zweimal nacheinander dem Prozess T zugeordnet, wenn kein Daten-Token des Prozesses V verfügbar ist. Auf diese Weise ist der Prozess, der zu einem bestimmten Zeitpunkt an diesem Verarbeitungselement durchgeführt wird, nicht vorbestimmt, sondern abhängig von dem Inhalt der Datenitems (beispielsweise in dem veränderlich- Länge-Decoder). Das Verarbeitungselement kann auf diese Weise effizienter benutzt werden als mit einer vorbestimmten Ablaufsteuerung.
- In dem Beispiel verarbeitet das Verarbeitungselement, das den Prozess T und V durchführt, die Datenitems sofort, sobald diese erforderlichen Datenitems eintreffen. Sollten diese Prozesse T und V noch einen anderen Eingang haben, so hätte dieses Verarbeitungselement möglicherweise mit der Verarbeitung der Datenitems warten müssen, bis entsprechende Datenitems an einem anderen Eingang verfügbar wären. Die Übertragung von Datenitems über den Kreuzschienenschalter 14 kann jedoch beim Warten fortfahren, weil die betreffenden Datenitems in dem Eingangs- FIFO aufgefangen werden. Der Kreuzschienenschalter wird dadurch früher frei zur Übertragung anderer Daten-Tokens.
- In einem Prozess selbst wird im Grunde ermittelt, wieviel Datenitems zu einem Daten-Token kombiniert werden. Die Wahl dieser Anzahl ist ein Kompromiss. Daten-Tokens, die nur wenig Datenitems aufweisen, sind in einer bestimmten Hinsicht vorteilhaft, weil dadurch die Flexibilität der Ablaufsteuerung auf diese Weise größer ist (solange ein Daten-Token dauert, kann die Verbindung zu einem Verarbeitungselement nicht abermals zugeordnet werden, seien innerhalb des Daten-Tokens auch noch keine neuen Datenitems verfügbar). Dagegen sind Daten-Token mit viel Datenitems in einer anderen Ansicht vorteilhaft, weil diese weniger Übertragungszusatz erfordern und die Kontrolleinheit weniger belasten mit u. a. Arbitrage. Auch kann eine minimale Anzahl Datenitems in einem Daten-Token erforderlich sein, wegen der Tatsache, dass Datenitems zusammen verarbeitet werden müssen. Die Wahl der Anzahl Daten-Items, die zu einem Daten-Token kombiniert werden, führt bei einer Signalverarbeitungsanwendung, wie Video-Decodierung, zu einer einstellbaren mittleren Effizienz innerhalb bestimmter Randbedingungen, wie der Randbedingung einer rechtzeitigen Reaktion. Man wählt deshalb vorzugsweise diejenige Anzahl Datenitems, die zu einem Daten-Token kombiniert wird, das, gegeben die gemeinsam durchzuführenden Prozesse, die Effizienz optimiert.
- Eine Signalverarbeitungsanordnung, die nach dem Datenflussprinzip arbeitet, kann bei bestimmten Arten von Aufgaben unter Umständen in eine Deadlock- Situation gelangen, namentlich wenn keine spezielle Matching-Einheiten benutzt werden. Dies zeigt sich anhand der Datenflussgraphik nach Fig. 2. Es wird dabei vorausgesetzt, dass die Prozesse P und Q von demselben Verarbeitungselement durchgeführt werden. Die beiden Prozesse haben zwei Eingänge. Das Vorhandensein entsprechender Daten-Tokens, die für denselben Prozess P oder Q bestimmt sind an den Eingängen dieses Verarbeitungselementes führt zu der Durchführung des betreffenden Prozesses. Wenn aber an verschiedenen Eingängen Daten-Tokens für verschiedene Prozesse in dem Eingangs-FIFO verfügbar sind, entsteht Deadlock: es kann kein einziger Prozess durchgeführt werden.
- Zur Vermeidung dieser Art von Deadlocksituationen ist die Kontrolleinheit 12 mit einem Mechanismus versehen, der dafür sorgt, dass selektierte Prozesse nur in einer vorprogrammierten Reihenfolge Verbindungen zugeordnet bekommen zur Übertragung von Daten-Token. Dies ermöglicht es dem Programmierer im Falle der Datenflussgraphik nach Fig. 2 beispielsweise zu bestimmen, dass die Prozesse B, C, E und D in dieser Reihenfolge zyklisch Verbindungen zugeordnet bekommen (die anderen Prozesse dürfen unabhängig von diesen Prozessen Verbindungen zugeordnet bekommen). Dadurch kann der Programmierer gewährleisten, dass die Daten-Tokens an den jeweiligen Eingängen des Verarbeitungselementes, das die Prozesse P und Q durchführt, in der Reihenfolge bestimmt für denselben Prozess P oder Q eintreffen: Zunächst darf beispielsweise nur der Prozess B oder C eine Verbindung zugerdnet bekommen. Auf diese Art und Weise kann der obengenannte Deadlock nicht entstehen. Selbstverständlich kann dies mit mehr Programmierungen verwirklicht werden, beispielsweise dadurch, dass bestimmt wird, dass C und D wechselweise eine Verbindung zugeordnet bekommen, ebenso wie B und E (dies geht davon aus, dass C und D denselben Eingängen des Verarbeitungselementes Daten-Token liefern, das die Prozesse P und Q durchführt). Zunächst dürfen dann beispielsweise nur B und C eine Verbindung zugeordnet bekommen.
- Der Mechanismus, der dafür sorgt, dass selektierte Prozesse nur in einer vorprogrammierten Reihenfolge Verbindungen zugeordnet bekommen, ist in der Schaltungsanordnung nach Fig. 1 beispielsweise implementiert worden mittels der Tabelle nach Fig. 4, die angibt, welchen weiteren Edge in der Datenflussgraphik freigegeben werden soll, nachdem ein bestimmter Edge aktiv gemacht worden ist. In der Tabelle kann beispielsweise programmiert werden, dass nach Edge E4 (Ausgang von B) als weiterer Edge der Edge Es (Ausgang von C) freigegeben worden ist. Bei Edge E5 kann man Programmieren, dass als weiterer Edge E8 freigegeben werden soll. Bei Edge E8 kann man programmieren, dass als weiterer Edge E6 freigegeben wird und bei Edge E6 kann man programmieren, dass als weiterer Edge E4 freigegeben werden soll. Die übrigen Edges können ständig freigegeben sein. Bei einer zugehörigen Ausgangseinstellung der Freigabe gewährleistet der Programmierer auf diese Weise, dass kein Deadlock auftreten kann.
- Eine andere Art und Weise zur Vermeidung der Deadlock-Probleme ist die Verwendung eines Verarbeitungselementes mit einer Speicherfunktion. Ein derartiges Verarbeitungselement kann ebenso wie alle anderen Verarbeitungselemente über den Kreuzschienenschalter 12 Daten-Token empfangen und versenden, wenn die betreffenden Verbindungen von der Kontrolleinheit 14 zugeordnet worden sind. Das Speicher-Verarbeitungselement umfasst einen Speicher, der eine Anzahl Datenitems speichern kann und zu einem späteren Zeitpunkt wieder erzeugen kann.
- Das Speicher-Verarbeitungselement kann beispielsweise eine Matchin- Funktion durchführen: es speichert Daten-Tokens, bestimmt für einen gewissen Prozess mit mehr als nur einem Eingang, bis für alle Eingänge ein Daten-Token verfügbar ist. In Reaktion auf diese Verfügbarkeit werden die betreffenden Daten-Tokens danach dem Verarbeitungselement zugeführt, das den betreffenden Prozess durchführen soll. Außerdem kann das Speicher-Verarbeitungselement dazu dienen, einen Daten-Token zu multiplizieren, indem Kopien eines empfangenen Daten-Tokens versendet werden. Dies ist beispielsweise nützlich wenn mehrere Prozesse dieselben Datenitems verarbeiten sollen.
Claims (9)
1. Signalverarbeitungsanordnung zum Durchführen von Prozessen, von
denen ein erster Prozess ein Daten-Token erzeugt mit einer Prozessidentifikation und
einer Vielzahl von Datenitems und von denen ein zweiter Prozess die Datenitems des
ersten Prozesses bearbeitet, wobei diese Signalverarbeitungsanordnung mit den
nachfolgenden Elementen versehen ist:
- einem ersten Verarbeitungselement, das den ersten Prozess durchführt und die
Datenitems nacheinander erzeugt, und
- einem zweiten Verarbeitungselement, das in Reaktion auf den Empfang des Daten-
Tokens, gesteuert durch die Prozessidentifikation, die Vielzahl von Datenitems
verarbeiten, dadurch gekennzeichnet, dass das zweite Verarbeitungselement dazu
eingerichtet ist, mit der Verarbeitung der Datenitems anzufangen in Reaktion auf den
Anfang des Empfangs des Daten-Tokens, unabhängig davon, ob das erste
Verarbeitungselement alle Datenitems des Daten-Tokens erzeugt hat.
2. Signalverarbeitungsanordnung nach Anspruch 1, wobei wobei das erste
und das zweite Verarbeitungselement einen Teil eines Systems aus wenigstens drei
Verarbeitungselementen bildet und wobei diese Signalverarbeitungsanordnung mit
einer Kommunikationsverbindung zwischen Verarbeitungselementen des Systems
versehen ist, die zugeordnet werden kann, weist das Kennzeichen auf, dass die
Signalverarbeitungsanordnung einen Zuordnungsregler aufweist, der mit Information über
eine Abbildung der Prozesse auf den Systemverarbeitungselementen versehen ist,
wobei dieser Zuordnungsregler in Reaktion auf den Anfang der Erzeugung des Daten-
Tokens und unter Ansteuerung der Information über die Abbildung in Bezug auf die
Prozessidentifikation in dem Daten-Token, die Kommunikationsverbindung zur
Übertragung des Daten-Tokens von dem ersten Verarbeitungselement zu einem Eingang
des zweiten Verarbeitungselement zuordnet, wenn die Kommunikationsverbindung
nicht zugeordnet ist zur Übertragung eines anderen Daten-Tokens zu dem genannten
Eingang des zweiten Verarbeitungselementes.
3. Signalverarbeitungsanordnung nach Anspruch 2, dadurch
gekennzeichnet, dass das erste Verarbeitungselement mit einer Verarbeitungseinheit und mit einem
Ausgang FIFO zwischen der Verarbeitungseinheit und der
Kommunikationsverbindung versehen ist, wobei die Verarbeitungseinheit den ersten Prozess durchführt, die
Datenitems erzeugt und hintereinander in den Ausgang FIFO einschreibt und die
Datenitems danach aus dem Ausgang FIFO ausgelesen werden zur Übertragung über die
Kommunikationsverbindung, wenn der Zuordnungsregler die
Kommunikationsverbindung zur Übertragung des Daten-Tokens zugeordnet hat.
4. Signalverarbeitungsanordnung nach Anspruch 3, dadurch
gekennzeichnet, dass der Ausgangs-FIFO einen "FIFO-voll"-Ausgang hat, die mit der
Verarbeitungseinheit gekoppelt ist zum Aufheben der Durchführen des ersten Prozesses, wenn
der Ausgangs-FIFO voll ist.
5. Signalverarbeitungsanordnung nach Anspruch 2, 3 oder 4, dadurch
gekennzeichnet, dass das zweite Verarbeitungselement mit einer Verarbeitungseinheit
versehen ist und einen Eingangs-FIFO zwischen der Verarbeitungseinheit und dem
Eingang des Verarbeitungselementes vorgesehen ist, wobei die Datenitems
nacheinander von dem ersten Verarbeitungselement aus über die Kommunikationsverbindung
in den Eingangs-FIFO eingeschrieben werden und die Verarbeitungseinheit die
Datenitems nacheinander aus dem FIFO zur Verarbeitung nach dem zweiten Prozess
ausliest und wobei der Zuordnungsregler dazu eingerichtet ist, die
Kommunikationsverbindung dem zweiten Verarbeitungselement zuzuordnen zur Übertragung des
Daten-Tokens in Reaktion auf die Detektion, dass ein letztes Fatenitem eines
vorhergehenden Daten-Tokens in den Eingangs-FIFO eingeschrieben ist.
6. Signalverarbeitungsanordnung nach einem der Ansprüche 2 bis 5,
dadurch gekennzeichnet, dass die Signalverarbeitungsanordnung mit den nachfolgenden
Mitteln versehen ist:
- Sequenzprogrammierungsmitteln zum Programmieren einer Prozessreihenfolge einer
Anzahl programmierbarer selektierter Prozesse;
- Sequenzsteuermittel zum Beschränken einer Übertragungsreihenfolge, wobei in
dieser Beschränkung die Prozesse Daten-Token über die Kommunikationsverbindung
übertragen entsprechend der Prozessreihenfolge von Prozessen, die in den
Sequenzprogrammierungsmitteln programmiert ist.
7. Signalverarbeitungsanordnung nach Anspruch 6, dadurch
gekennzeichnet, dass die Sequenzprogrammierungsmittel mit dem Zuordnungsregler gekoppelt
sind, damit die Zuordnung der Verbindung zur Übertragung des Daten-Tokens
gesperrt wird, solange der zweite Prozess nach der Prozessreihenfolge noch nicht an die
Reihe ist.
8. Signalverarbeitungsanordnung nach Anspruch 6 oder 7, wobei das
zweite Verarbeitungselement einen weiteren Eingang hat, in dem der zweite Prozess
zusammen mit einem dritten Prozess auf dem zweiten Verarbeitungselement
abgebildet ist, wobei der zweite Prozess über den Eingang und den weiteren Eingang Daten
von dem ersten Prozess bzw. einem vierten Prozess empfängt und wobei der zweite
Prozess über den Eingang und den weiteren Eingang Daten von einem fünften bzw.
sechsten Prozess empfängt und wobei die Sequenzprogrammierungsmittel derart
programmiert sind, dass eine Reihenfolge, in der Daten-Token des ersten und fünften
Prozesses über die Kommunikationsverbindung zu dem ersten bzw. zweiten Prozess
übertragen wird, mit einer Reihenfolge übereinstimmt, in der Daten des vierten und
sechsten Prozesses über die Kommunikationsverbindung zu dem ersten bzw. zweiten
Prozess übertragen wird.
9. Signalverarbeitungsanordnung nach einem der Anspruche 2 bis 8,
dadurch gekennzeichnet, dass das zweite Verarbeitungselement einen weiteren Eingang
hat, der an die Kommunikationsverbindung angeschlossen ist zum Empfangen eines
weiteren Daten-Tokens, wobei der zweite Prozess Datenitems aus dem Daten-Token
und dem weiteren Daten-Token in Kombination verarbeitet, und der Zuordnungsregler
die Kommunikationsverbindung nur zur Übertragung des Daten-Tokens zuordnet,
wenn ein Anfang der Erzeugung des Daten-Tokens sowie ein Anfang der Erzeugung
des weiteren Daten-Tokens durch den Zuordnungsregler detektiert sind.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP96203069 | 1996-11-04 | ||
| PCT/IB1997/001187 WO1998020427A1 (en) | 1996-11-04 | 1997-09-29 | Signal processing device, using more than one processing element |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69701351D1 DE69701351D1 (de) | 2000-04-06 |
| DE69701351T2 true DE69701351T2 (de) | 2000-08-24 |
Family
ID=8224545
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69701351T Expired - Lifetime DE69701351T2 (de) | 1996-11-04 | 1997-09-29 | Signalverarbeitungsvorrichtung bestehend aus mehr als einem verarbeitungselement |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US6049818A (de) |
| EP (1) | EP0877985B1 (de) |
| JP (1) | JP3987581B2 (de) |
| KR (1) | KR100500742B1 (de) |
| DE (1) | DE69701351T2 (de) |
| WO (1) | WO1998020427A1 (de) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6629167B1 (en) * | 2000-02-18 | 2003-09-30 | Hewlett-Packard Development Company, L.P. | Pipeline decoupling buffer for handling early data and late data |
| WO2004088938A1 (ja) * | 2003-03-31 | 2004-10-14 | Fujitsu Limited | 通信装置及び通信方法 |
| US9330060B1 (en) * | 2003-04-15 | 2016-05-03 | Nvidia Corporation | Method and device for encoding and decoding video image data |
| US9501448B2 (en) | 2008-05-27 | 2016-11-22 | Stillwater Supercomputing, Inc. | Execution engine for executing single assignment programs with affine dependencies |
| GB2471067B (en) * | 2009-06-12 | 2011-11-30 | Graeme Roy Smith | Shared resource multi-thread array processor |
| US9405826B1 (en) * | 2013-07-15 | 2016-08-02 | Marvell International Ltd. | Systems and methods for digital signal processing |
| WO2015126495A2 (en) * | 2014-02-20 | 2015-08-27 | Stillwater Supercomputing, Inc. | Execution engine for executing single assignment programs with affine dependencies |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4149243A (en) * | 1977-10-20 | 1979-04-10 | International Business Machines Corporation | Distributed control architecture with post and wait logic |
| US4354225A (en) * | 1979-10-11 | 1982-10-12 | Nanodata Computer Corporation | Intelligent main store for data processing systems |
| JPH03500461A (ja) * | 1988-07-22 | 1991-01-31 | アメリカ合衆国 | データ駆動式計算用のデータ流れ装置 |
| US5842033A (en) * | 1992-06-30 | 1998-11-24 | Discovision Associates | Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system |
| US5606666A (en) * | 1994-07-19 | 1997-02-25 | International Business Machines Corporation | Method and apparatus for distributing control messages between interconnected processing elements by mapping control messages of a shared memory addressable by the receiving processing element |
-
1997
- 1997-09-29 DE DE69701351T patent/DE69701351T2/de not_active Expired - Lifetime
- 1997-09-29 JP JP52115798A patent/JP3987581B2/ja not_active Expired - Fee Related
- 1997-09-29 EP EP97940303A patent/EP0877985B1/de not_active Expired - Lifetime
- 1997-09-29 KR KR10-1998-0705114A patent/KR100500742B1/ko not_active Expired - Fee Related
- 1997-09-29 WO PCT/IB1997/001187 patent/WO1998020427A1/en not_active Ceased
- 1997-11-04 US US08/963,932 patent/US6049818A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP3987581B2 (ja) | 2007-10-10 |
| JP2000504451A (ja) | 2000-04-11 |
| EP0877985B1 (de) | 2000-03-01 |
| DE69701351D1 (de) | 2000-04-06 |
| KR100500742B1 (ko) | 2005-11-21 |
| KR19990076985A (ko) | 1999-10-25 |
| EP0877985A1 (de) | 1998-11-18 |
| WO1998020427A1 (en) | 1998-05-14 |
| US6049818A (en) | 2000-04-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3300261C2 (de) | ||
| DE3300263C2 (de) | ||
| DE3751853T2 (de) | Vorrichtung für ein fehlertolerantes Rechnersystem mit erweiterungsfähigem Prozessorabschnitt | |
| DE3300262C2 (de) | ||
| DE2856483C2 (de) | ||
| DE2162806C2 (de) | Speichersteuereinheit zur vereinfachter Pufferung von Anforderungen der Ein- Ausgabekanäle | |
| DE69625725T2 (de) | Von Multitasking Gebrauch machendes Sortieren | |
| DE3914265C2 (de) | ||
| DE4121446C2 (de) | Terminal-Server-Architektur | |
| DE2134402B2 (de) | Vorrichtung zum Abfragen der Verfügbarkeit eines Kommunikationsweges zu einer Eingabe-Ausgabeeinheit | |
| DE2313724A1 (de) | Elektronische datenverarbeitungsanlage | |
| DE2943149C2 (de) | Ringnetzwerk mit mehreren an eine Daten-Ringleitung angeschlossenen Prozessoren | |
| DE3049774C2 (de) | ||
| DE1774052B1 (de) | Rechner | |
| DE19709210A1 (de) | RAM-Speicherschaltung | |
| DE69701351T2 (de) | Signalverarbeitungsvorrichtung bestehend aus mehr als einem verarbeitungselement | |
| EP0062141B1 (de) | Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem | |
| EP0175095B1 (de) | Datenübertragungsverfahren über einen Multiprozessorbus | |
| DE3426902C2 (de) | Schaltungsanordnung zum Konfigurieren von Peripherieeinheiten in einer Datenverarbeitungsanlage | |
| DE10006265A1 (de) | Vorrichtung zum Steuern des Datenaustauschs in einem Kommunikationsteilnehmer | |
| EP3548975B1 (de) | Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage | |
| DE4213792A1 (de) | Verfahren zum Betreiben eines Datenübertragungssystems | |
| EP1191453B1 (de) | Vorrichtung zur Auswahl und Weiterleitung von empfangenen Unterbrechungsanfragen gemäss konfigurierbarer Konditionen | |
| DE60005157T2 (de) | Verfahren und anordnung für blockdatenübertragung | |
| EP1567938B1 (de) | Speichersystem mit mehreren speichercontrollern and verfahren zu deren synchronisierung |
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 |