DE69533020T2 - Verfahren und apparat zur kompilierung paralleler bildverarbeitungsprogramme - Google Patents

Verfahren und apparat zur kompilierung paralleler bildverarbeitungsprogramme Download PDF

Info

Publication number
DE69533020T2
DE69533020T2 DE69533020T DE69533020T DE69533020T2 DE 69533020 T2 DE69533020 T2 DE 69533020T2 DE 69533020 T DE69533020 T DE 69533020T DE 69533020 T DE69533020 T DE 69533020T DE 69533020 T2 DE69533020 T2 DE 69533020T2
Authority
DE
Germany
Prior art keywords
processing
arithmetic
image processing
arithmetic processors
parallel
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
DE69533020T
Other languages
English (en)
Other versions
DE69533020D1 (de
Inventor
Satoshi Katsuo
Taro Shigata
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of DE69533020D1 publication Critical patent/DE69533020D1/de
Publication of DE69533020T2 publication Critical patent/DE69533020T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Description

  • Die Erfindung betrifft ein Kompilierungsverfahren für ein Parallelverarbeitungsprogramm, das Ausführungscodes eines unter Verwendung einer Programmiersprache aufgestellten Programms generiert, damit mehrere arithmetische Prozessoren eine parallele Bildverarbeitung ausführen können, ferner ein Bildverarbeitungsgerät für die Durchführung einer Bildverarbeitung durch Parallelverarbeitung mehrerer Operationen, sowie ein Bildverarbeitungsverfahren, das den Betrieb des Bildverarbeitungsgeräts ermöglicht.
  • In dem Parallelverarbeitungssystem führt der Programmentwickler bei der von dem Benutzer definierten Prozedur der Verteilung (Verarbeitung) auf mehrere Prozessoren, die diesen eine Parallelverarbeitung ermöglicht, die Programmbeschreibung und -erstellung im allgemeinen so durch, daß die verteilten Prozeduren von den jeweiligen betroffenen Prozessoren ausgeführt werden.
  • Wenn man davon ausgeht, daß die von dem Benutzer definierte Prozedur in das Parallelverarbeitungssystem geladen wird, erstellt der Programmentwickler ein Source-Programm in der Weise, daß die Verteilung der Last auf die jeweiligen Prozessoren in einem Parallelverarbeitungssystem im voraus in geeigneter Weise erfolgt, wie dies oben beschrieben wurde.
  • Deshalb muß der Programmentwickler das Source-Programm so beschreiben, daß die Last zweckmäßig auf die einzelnen Prozessoren verteilt wird, damit die Verarbeitung mit hoher Effizienz erfolgt.
  • Bei der Erstellung des Programms muß der Programmentwickler sich bei der Verteilung der Last auf die einzelnen Prozessoren jedoch der Zahl der Prozessoren bewußt sein, auf die die Last verteilt wird. Dies erschwert die Arbeit des Programmentwicklers.
  • Bei der Bildverarbeitung mit Hilfe eines Parallelverarbeitungssystems treten bei der Bildaufteilung Fälle auf, in denen die Zahl kleiner Bereiche, die durch das Teilen entstehen, größer ist als die Zahl der Prozessoren und die Zahl der kleinen Bereiche nicht durch die Zahl der Prozessoren geteilt werden kann (unteilbar ist), so daß sich in dem Bild ein Restbereich, d.h. ein Bruchteilbereich, ergibt. Wenn ein solcher Bruchteilbereich auftritt, wird veranlaßt, daß einer der Prozessoren eine Bruchteilverarbeitung für den Bruchteilbereich durchführt.
  • Wenn für den Fall, daß die Last verteilt wird, einem Teil der Prozessoren die Verarbeitung für die integrale Durchführung der Berechnung von Ergebnissen der Bildverarbeitung in kleinen Bereichen auferlegt wird, die durch das Unterteilen eines Bilds gewonnen werden, muß dieser Teil der Prozessoren über zwei Arten von Ausführungscodes verfügen, nämlich den über den Ausführungscode für die arithmetische Verarbeitung der kleinen Bereiche und über den oben beschriebenen Ausführungscode für die Integrationsverarbeitung für die integrale Durchführung der Operation. Da die Erstellung eines solchen Programms für den Programmentwickler zur Folge hat, ein Programm erstellen zu müssen, bei dem er auch die oben erwähnte Integrationsverarbeitung in Rechnung stellen muß, ist seine Arbeitsbelstung noch größer als die oben erwähnte Arbeit.
  • Darüber hinaus werden dem Prozessor zwei Arten von Ausführungscodes zugeführt, so daß die Menge der Ausführungscodes für den Prozessor größer wird als die Menge der Ausführungscodes für die arithmetische Verarbeitung von kleinen Bereichen. Außerdem erfolgt die Integrationsverarbeitung zusätzlich, so daß die benutzte Speicherkapazität im wesentlichen zweimal aufgewendet wird.
  • Die vorliegende Erfindung entstand im Hinblick auf die oben beschriebenen realen Umstände, und es ist ihr Ziel, ein Kompilierungsverfahren für ein Parallelverarbeitungsprogramm zur Verfügung zu stellen, das ein Anwachsen der zu generierenden Ausführungscodes verhindert, ohne daß sie eine große Arbeitsbelastung für den Programmentwickler zur Folge hat.
  • Es ist ein weiteres Ziel der Erfindung, ein Bildverarbeitungsgerät und ein Bildverarbeitungsverfahren zu schaffen, die sich für die Generierung von Ausführungscodes, z.B. in Abhängigkeit von dem benutzten Anwendungsprogramm usw., eignen und so eine Bildverarbeitung ermöglichen, die effizienter ist als beim Stand der Technik.
  • Aspekte der vorliegenden Erfindung sind in den anliegenden Ansprüchen angegeben.
  • Im Hinblick auf die oben beschriebenen Probleme ist ein Kompilierverfahren für ein Parallelverarbeitungsprogramm gemäß einem Ausführungsbeispiel der Erfindung auf ein Kompilierungsverfahren für ein Parallelverarbeitungsprogramm gerichtet, das ein unter Verwendung einer Programmiersprache aufgestelltes Programm kompiliert, um es einer Mehrzahl von arithmetischen Prozessoren zu ermöglichen, eine parallele Bildverarbeitung auszuführen, um Ausführungscodes zu generieren, wobei das Verfahren umfaßt: einen Analysierschritt zur Durchführung einer Identifizierung und Analyse einer Steueranweisung aus dem aufgestellten Programm, an die ein Identifizierer angehängt ist, der Parallelverarbeitung bei der Bildverarbeitung anzeigt, und einen Ausführungscode-Generierschritt zum Generieren von Paral lelverarbeitungs-Ausführungscodes für die betreffenden arithmetischen Prozessoren nach Maßgabe des in dem Analysierschritt gewonnenen Analyseergebnisses und der Zahl der mehreren arithmetischen Prozessoren.
  • Das Bildverarbeitungsverfahren gemäß einem Ausführungsbeispiel der Erfindung ist auf ein Bildverarbeitungsverfahren zur Durchführung einer Bildverarbeitung nach Maßgabe von Ausführungscodes eines unter Verwendung einer Programmiersprache aufgestellten Programms gerichtet, das es einer Mehrzahl von Prozessoren ermöglicht, die Bildverarbeitung parallel durchzuführen, wobei das Verfahren umfaßt: einen Analysierschritt zur Durchführung einer Identifizierung und Analyse einer Steueranweisung aus dem aufgestellten Programm, an die ein Identifizierer angehängt ist, der Parallelverarbeitung bei der Bildverarbeitung anzeigt, einen Ausführungscode-Generierschritt zum Generieren von Parallelverarbeitungs-Ausführungscodes für die betreffenden arithmetischen Prozessoren nach Maßgabe des in dem Analysierschritt gewonnenen Analyseergebnisses und der Zahl der mehreren arithmetischen Prozessoren und einen Bildverarbeitungsschritt, in dem die arithmetischen Prozessoren jeweils eine Bildverarbeitung auf der Basis der erstellten Ausführungscodes durchführen.
  • Ein Bildverarbeitungsgerät nach einem Ausführungsbeispiel der Erfindung ist auf ein Bildverarbeitungsgerät gerichtet, das sich für die Durchführung der Bildverarbeitung durch Parallelverarbeitung mehrerer Operationen eignet, wobei das Gerät aufweist: eine Mehrzahl von arithmetischen Mitteln jeweils zur Durchführung paralleler Operationen der Bildverarbeitung für entsprechende kleine Bereiche, die durch Unterteilen eines Bilds eines zugeführten Bildsignals gewonnen werden, sowie eine Steuereinrichtung für die Datenzuführung zur Durchführung einer integralen Operation auf der Basis der jeweiligen Operationsergebnisse aus den arithmetischen Mitteln.
  • 1 zeigt ein Blockdiagramm, aus dem die Konfiguration eines Bildverarbeitungsgeräts nach einem Ausführungsbeispiel der Erfindung hervorgeht,
  • 2 zeigt ein Hauptflußdiagramm zur Erläuterung der Arbeitsweise des Bildverarbeitungsgeräts,
  • 3 zeigt ein Flußdiagramm zur Erläuterung der Verarbeitungsprozedur der Subroutine 1 in dem Hauptflußdiagramm,
  • 4 zeigt eine Modellansicht zur Erläuterung der Beziehung zwischen der Bildkonfiguration des Bildverarbeitungsgeräts und kleiner unterteilter Bereiche sowie die Art der Bewegung des kleinen unterteilten Bereichs,
  • 5 zeigt ein Flußdiagramm zur Erläuterung der Verarbeitungsprozedur der Subroutine 2 in dem Hauptflußdiagramm,
  • 6 zeigt eine Modellansicht eines Bildbeispiels für den Fall, daß in der Subroutine 2 ein Parallelverarbeitungs-Flag gesetzt ist,
  • 7 zeigt ein Flußdiagramm zur Erläuterung der Verarbeitungsprozedur der Subroutine 3 in dem Hauptflußdiagramm.
  • Anhand der anliegenden Zeichnungen werden nun Ausführungsbeispiele eines Kompilierverfahrens für ein Parallelverarbeitungsprogramm, ein Bildverarbeitungsgerät und ein Bildverarbeitungsverfahren gemäß der Erfindung beschrieben.
  • Das Kompilierverfahren für ein Parallelverarbeitungsprogramm gemäß der Erfindung ist ein Verfahren, das folgende Schritte umfaßt: In einem Analyseschritt wird ein erstelltes Programm analysiert, in einem Ausführungscode-Generierungsschritt wird zur Generierung von Ausführungscodes zwischen dem Programm der arithmetischen Prozessoren und Programmen mit Ausnahme des obigen auf der Basis des Analyseergebnisses aus dem Analyseschritt unterschieden, um dadurch Ausführungscodes der Prozessoren zu generieren, die die jeweiligen Funktionen ausführen.
  • In diesem Ausführungsbeispiel wird ein Beispiel eines Bildverarbeitungsgeräts (Einheit) beschrieben, bei dem das oben erwähnte Verfahren angewendet wird.
  • Die Bildverarbeitungseinheit umfaßt, wie in 1 dargestellt, z.B. einen Einheits-Steuerteil 1 zum Steuern der Gesamteinheit, einen Datenfluß-Steuerteil 2 zum Steuern des Datenflusses, einen Arithmetikteil 3 mit einer Mehrzahl von arithmetischen Prozessoren, einen Programmpuffer 4 und einen Eingabe-/Ausgabeteil 5.
  • Der Einheits-Steuerteil 1 steuert den Programmpuffer 5 für das Laden von Programmen entsprechend dem Datenfluß-Steuerteil 2 und dem Arithmetikteil 3 in den Programmpuffer 4 in dem Programmspeicher innerhalb des Prozessors des Datenfluß-Steuerteils 2 und das Speichern von Programmen in den jeweiligen arithmetischen Prozessoren des Arithmetikteils 3 über einen Speicherbus 4. Darüber hinaus führt der Einheits-Steuerteil 3 eine Ausführungssteuerung der jeweiligen arithmetischen Prozessoren des Datenfluß-Steuerteils 2 und des Arithmetikteils 3 durch und die Taktzuführung an diese.
  • Der Datenfluß-Steuerteil 2 führt auf der Basis der jeweiligen Operationsergebnisse aus dem Arithmetikteil 3 eine integrale Operation durch und verteilt und liefert das Ergebnis dieser Operation nach Bedarf an den Arithmetikteil 3. Dies wird nun praxisnäher erläutert. Der Datenfluß-Steuerteil 2 liefert ein Steuersignal an einen (nicht dargestellten) gemeinsam genutzten Speicher innerhalb des Eingabe-/Ausgabeteils 5. Auf diese Weise führt der Datenfluß-Steuerteil 2 eine Steuerung durch, durch die Daten aus dem gemeinsam genutzten Spei cher über einen Datenbus 7 auf die (nicht dargestellten) verteilten Speicher in den jeweiligen arithmetischen Prozessoren verteilt werden. Darüber hinaus führt der Datenfluß-Steuerteil 2 das Senden und den Empfang von Steuersignalen für die jeweiligen arithmetischen Prozessoren des Arithmetikteils 3 durch, um das Verarbeitungsergebnis aus dem arithmetischen Prozessor zu sammeln, in dem die arithmetische Verarbeitung bezüglich der gelieferten Daten abgeschlossen wurde. Dann führt der Datenfluß-Steuerteil 2 eine Steuerung durch, um Daten des Verarbeitungsergebnisses über den Datenbus 7 an den gemeinsam genutzten Speicher in dem Eingabe-/Ausgabeteil 5 zu liefern. Der Datenfluß-Steuerteil 2 führt eine Steuerung durch, um die nächsten Daten über den Datenbus 7 aus dem gemeinsam genutzten Speicher für den arithmetischen Prozessor zu verteilen, in dem die arithmetische Verarbeitung abgeschlossen wurde. Der Datenfluß-Steuerteil 2 wiederholt das Verteilen und Sammeln von Daten in der oben beschriebenen Weise, um eine Steuerung durchzuführen, bis das Programm des Datenfluß-Steuerteils 2 abgeschlossen wurde.
  • Wie oben beschrieben wurde, ist die Bildverarbeitungseinheit so ausgebildet, daß ein angeliefertes Bildsignal einer Parallelverarbeitung unterzogen wird, so daß die Geschwindigkeit der Bildverarbeitung gesteigert wird. Darüber hinaus ist die Bildverarbeitungseinheit so ausgebildet, daß die jeweiligen arithmetischen Prozessoren an einer Vielzahl von kleinen Bereichen, die durch Unterteilen der Bilddaten gewonnen werden, das gleiche Programm ausführen. Das heißt, die Bildverarbeitungseinheit enthält mehrere arithmetischen Prozessoren zur Ausführung des gleichen Programms und führt so eine parallele Bildverarbeitung (Bilddarstellung) mit hoher Geschwindigkeit durch mittels einer Architektur, die ein einzelnes Bild in kleine Bereiche unterteilt, um eine Parallelverarbeitung durchzuführen.
  • Für die Verarbeitung der Bilder ist eine Bildverarbeitung vorgesehen, die nicht innerhalb kleiner unterteilter Bereiche abgeschlossen wird, um so dem Modell zu entsprechen, das dieser Architektur genügt. Als Bildverarbeitung dieser Art ist z.B. der Fall vorgesehen, bei dem der mittlere Dichtewert aller Bilder bestimmt wird oder dgl.
  • Wenn die Last der Bildverarbeitung in der Bildverarbeitungseinheit auf mehrere arithmetische Prozessoren verteilt wird, so daß ein Teil der arithmetischen Prozessoren eine Integrationsverarbeitung ausführen kann, bei der die Ergebnisse der betreffenden Bildverarbeitung der Lastverteilung gesammelt werden, benötigt der Arithmetikteil 3 zwei Arten von Ausführungscodes, nämlich einen Ausführungscode für den arithmetischen Prozessor zur Verarbeitung von unterteilten Bereichen, und einen Ausführungscode für den arithmetischen Prozessor zur Integrationsverarbeitung. Die auf diese Weise generierten Ausführungscodes führen nicht zu einem Modell, das der oben beschriebene Architektur genügt, und die Menge der generierten Ausführungscodes vergrößert sich.
  • Im Hinblick hierauf ermöglicht die Bildverarbeitungseinheit, bei der die Erfindung angewendet wird, den jeweiligen arithmetischen Prozessoren des Arithmetikteils 3, ein geteiltes Programm auf der Basis eines Modells auszuführen, das der Architektur genügt, um die betreffenden arithmetischen Ergebnisse in den Datenfluß-Steuerteil 3 zu übernehmen und eine Integrationsverarbeitung durchzuführen und ferner eine Verarbeitung durchzuführen, durch die dieses Integrationsverarbeitungsergebnis an die betreffenden arithmetischen Prozessoren des Arithmetikteils 2 ausgeliefert wird, so daß diese eine Operation ausführen können usw.
  • Für den Fall, daß die Zahl der zu verarbeitenden Bilder groß ist, wurde auch ein Verfahren vorgeschlagen, bei der Bilder den jeweiligen arithmetischen Prozessoren Stück für Stück zugeteilt werden. Falls die Zahl der zu verarbeitenden Bilder durch die Zahl der arithmetischen Prozessoren teilbar ist, gibt es keinen arithmetischen Prozessor, der während der Parallelverarbeitung leerläuft, so daß der Grad der Parallelverarbeitung maximal verbessert wird. Darüber hinaus wird auch eine Kommunikation zwischen dem Datenfluß-Steuerteil 2 und den arithmetischen Prozessoren des Arithmetikteils 3 überflüssig, wie sie bei der oben beschriebenen Bildteilungsverarbeitung erforderlich war. Für den Fall, daß die Zahl der zu verarbeitenden Bilder durch die Zahl der arithmetischen Prozessoren teilbar ist, ist aus diesem Grund die Verarbeitungsgeschwindigkeit der parallelen Bildverarbeitung, die den jeweiligen arithmetischen Prozessoren jeweils in Einzelbildern zugeteilt wird, höher.
  • In der Konfiguration der Bildverarbeitungseinheit und bei der quantitativen Beziehung des Bildsignals gibt es jedoch Fälle, in denen dann, wenn die Zahl der Bilder eines zugeführten Bildsignals durch die Zahl der arithmetischen Prozessoren des Arithmetikteils 3 geteilt wird, die Zahl der Bilder nicht durch die Zahl der arithmetischen Prozessoren teilbar ist, so daß ein Rest bleibt.
  • Wenn sich der Zustand ergibt, in dem eine solche Beziehung gilt, gibt es Fälle, in denen in der Bildverarbeitungseinheit der Parallelismus (der Grad der Parallelverarbeitung) extrem verringert wird, so daß die Effizienz der Bildverarbeitung beträchtlich herabgesetzt wird.
  • Als praxisnahes Beispiel werde nun der Fall betrachtet, daß Bilder (Bilddarstellungen) von 17 Rahmen in einer Konfiguration verarbeitet werden, bei der der Arithmetikteil 3 z.B. 16 arithmetische Prozessoren enthält. Dann wird bei der Verarbeitung des 17. Rahmens nur einer der arithmetischen Prozessoren in dem Arithmetikteil 3 tätig, während 15 arithmetische Prozessoren inaktiv sind. Deshalb befinden sich diese arithmetischen Prozessoren im Leerlauf. Dies hat zur Folge, daß die Effizienz der Bildverarbeitung verringert wird.
  • Im Hinblick darauf verfügt die vorliegende Bildverarbeitungseinheit über Verarbeitungsmodi in Verbindung sowohl mit dem Fall, daß ein Bild in kleine Bereiche unterteilt ist, damit die arithmetischen Prozessoren in Übereinstimmung mit dem Modell, das der oben beschriebene Architektur genügt, in jedem dieser kleinen Bereiche tätig werden können, als auch in Verbindung mit dem Fall, daß Bilder jeweils als Einzelbilder den entsprechenden arithmetischen Prozessoren zugeordnet werden, damit diese aktiv werden können, wobei dieser Fall nicht mit dem Modell konform ist, das der Architektur genügt.
  • Die Verarbeitung für die verschiedenen Fälle wird z.B. von einem Host-Computer 10 durchgeführt, der, wie in 1 dargestellt, die Kompilierung vornimmt. Darüber hinaus führt der Host-Computer 10 auch die Verarbeitung zu verschiedenen Fällen der Kompilierung durch, um die Bildteilungsverarbeitung, einschließlich der Integrationsverarbeitung, auf Basis des Modells der oben beschriebenen Architektur auszuführen, sowie eine Kompilierung für das Zuordnen der Verarbeitung aller jeweiligen Bilder zu arithmetischen Prozessoren, um dadurch eine Verarbeitungseffizienz zu erreichen, die höher ist als beim Stand der Technik.
  • Es folgt nun eine Erläuterung in Verbindung mit einem Bildverarbeitungsverfahren, die es der oben erwähnten Bildverarbeitungseinheit ermöglicht, eine Hochgeschwindigkeits-Bildverarbeitung durch Parallelverarbeitung durchzuführen, wobei auf die Flußdiagramme von 2, 3 und 5 Bezug genommen wird, sowie eine Erläuterung in Verbindung mit von der Bildverarbeitungseinheit verarbeiteten Pixeln und deren Blockkonfiguration, wobei auf 4 Bezug genommen wird. Wie oben beschrieben wurde, werden Ausführungscodes eines Parallelverarbeitungsprogramms, die nach Kompilierung an die Bildverarbeitungseinheit geliefert werden, von dem Host-Computer 10 generiert, der außerhalb der Bildverarbeitungseinheit angeordnet ist.
  • Der Host-Computer 10 beginnt mit der Kompilierung des Parallelverarbeitungsprogramms, wie dies z.B. in 2 dargestellt ist. Dann geht die Verarbeitungsprozedur weiter zu der Subroutine SUB1.
  • In dieser Subroutine SUB1 führt der Host-Computer 10 in dem Bildverarbeitungs-Source-Programm, in dem die Prozedur des Parallelverarbeitungsprogramms beschrieben ist, eine Identifizierung und Analyse der Steueranweisung durch, an die ein Identifizierer angehängt ist, der Parallelverarbeitung anzeigt. Die Verarbeitungsprozedur geht dann weiter zu der Subroutine SUB2.
  • In der Subroutine SUB2 unterscheidet der Host-Computer anhand der Beziehung zwischen der Zahl der Bilder, die der Bildverarbeitung unterzogen werden, und der Zahl der arithmetischen Prozessoren des Arithmetikteils 3 und des Analyseergebnisses der Subroutine SUB1, ob die Bildverarbeitung durch Bildteilungsverarbeitung oder durch parallele Bildverarbeitung ausgeführt wird. Die Verarbeitungsprozedur geht dann weiter zu der Subroutine SUB3.
  • In der Subroutine SUB3 generiert der Host-Computer 10 Ausführungscodes auf der Basis des Ergebnisses der Subroutine SUB2.
  • Der Host-Computer 10 führt die Verarbeitung in der Reihenfolge dieser drei Subroutinen SUB1 bis SUB3 durch, um dadurch das Kompilieren des Parallelverarbeitungsprogramms abzuschließen. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S1.
  • In dem Schritt S1 liefert der Host-Computer 10 die in den Subroutinen SUB1 bis SUB3 kompilierten Ausführungscodes an den Einheits-Steuerteil 1 der Bildverarbeitungseinheit. Der Einheits-Steuerteil 1 speichert dann (temporär) einmal die Ausführungscodes aus dem Host-Computer 10 in den Programmpuffer 4, um anschließend eine Steuerung durchzuführen, durch die die Ausführungscodes eines Programms, das dem Datenfluß-Steuerteil 2 und dem Arithmetikteil 3 in dem Programmpuffer 4 entspricht, über den Speicherbus 6 in den Programmspeicher in dem Prozessor des Datenfluß-Steuerteils 2 und den entsprechenden arithmetischen Prozessoren des Arithmetikteils 3 geladen werden.
  • In dem Schritt S2 verarbeiten die arithmetischen Prozessoren des Arithmetikteils 3 zweidimensionale Daten, die nach Maßgabe der Ausführungscodes über den Eingabe-/Ausgabeteil 5 in Einheiten kleiner Bereiche, die durch Teilen eines Bilds gewonnen werden, oder in Einheiten aus jeweils einem Rahmen angeliefert werden. Der arithmetische Prozessor des Datenfluß-Steuerteils 2 führt nach Maßgabe der Ausführungscodes das Zuführen/Sammeln von Daten und/oder die Integrationsverarbeitung von Operationsergebnissen des Arithmetikteils 3 durch. Durch eine solche Serie von arithmetischen Verarbeitungen wird die Bildverarbeitung mit hoher Geschwindigkeit durchgeführt.
  • Im folgenden wird die Prozedur der oben erwähnten Subroutinen SUB1 bis SUB3 beschrieben.
  • Im vorliegenden Beispiel wird in dem Source-Programm des Parallelverarbeitungsprogramms eine mit der sog. C-Sprache konforme Sprache benutzt, die eine höhere Sprache ist.
  • In der Subroutine SUB1 analysiert das aufgestellte Source-Programm, ob es innerhalb der "Funktion" eine integrale arithmetische Verarbeitung gibt oder nicht, die eine arithmetische Verarbeitung darstellt, bei der die in mehreren kleinen Bereichen durch die Benutzung geteilter zweidimensionalen Daten gewonnenen Operationsergebnisse zur Durchführung einer integralen Operation verwendet werden, und ob es eine Verteilungsverarbeitung gibt oder nicht, bei der das Ergebnis der oben erwähnten integralen Operation auf die betreffenden arithmetischen Prozessoren verteilt wird usw..
  • In dem Schritt S10 des Flußdiagramms von 3 analysiert der Host-Computer z.B. die Konfigurationsdatei (im folgenden kurz als CONFIG.FILE bezeichnet) für die Bildverarbeitungseinheit. In der CONFIG.FILE ist als Header-Information z.B. eine Information wie die Zahl der arithmetischen Prozessoren in dem Arithmetikteil 3 der Bildverarbeitungseinheit 2 angegeben. Dann wird die Gesamtzahl der arithmetischen Prozessoren in der Bildverarbeitungseinheit unter Verwendung dieser Information geprüft.
  • In dem Schritt S11 analysiert der Host-Computer dann das Source-Programm des Parallelverarbeitungsprogramms.
  • In der Sprache zur Beschreibung des Source-Codes des Parallelverarbeitungsprogramms werden vfor und hfor für neue Parallelverarbeitung benutzt, wobei "v" und "h" als Identifizierer vorgestellt werden, welche als Schlüsselwörter dienen, die die Durchführung paralleler Verarbeitung bei der Bildverarbeitung anregen und Wiederholung in vertikaler Richtung bzw. Wiederholung in horizontaler Richtung bezeichnen, z.B. für eine Anweisung der C-Sprache, die wiederholte Verarbeitung bezeichnet. Parameter innerhalb der Klammern der vfor-Anweisung und der hfor-Anweisung sind die gleichen wie für die Anweisung der C-Sprache.
  • In ähnlicher Weise sind die Parameter (Variablen) Vinit und Hinit für eine neue Parallelverarbeitung, die sich auf durch Teilen eines Bilds gewonnene kleine Bereiche bezieht, Parameter, die Koordinaten in vertikaler Richtung bzw. in horizontaler Richtung in der linken oberen Position des kleinen Bereichs bezeichnen.
  • Als ein Beispiel des Source-Programms wird nun das im folgenden beschriebene Formatbeispiel betrachtet.
  • Figure 00090001
  • Figure 00100001
  • Parameter innerhalb der Klammern der vfor-Anweisung und der hfor-Anweisung des Source-Programms, d.h. Vinit=0; Vinit<512 und Hinit=0; Hinit<768 zeigen an, daß das Bild, wie in 4(a) dargestellt, aus 512×768 Pixeln besteht. Vinit+=8 und Hinit+=8 zeigen an, daß die kleinen Bereiche, die durch Unterteilen des Bilds gewonnen werden, aus Blöcken der Größe 8×8 Pixeln bestehen. Vinit=0 und Hinit=0 zeigen an, daß das Lesen oder Schreiben aus/in kleinen Bereichen durch die hfor-Anweisung zuerst von dem linken oberen zu dem rechten Ende des Bilds ausgeführt wird und dann durch die vfor-Anweisung das Lesen oder Schreiben aus/in dem kleinen Bereich an der linken Endposition ausgeführt wird, die der nächsten Zeile entspricht.
  • Für das Lesen oder Schreiben des kleinen Bereichs werden die Lese-Anweisung und die Schreib-Anweisung benutzt. Das erste Argument x der Lese-Anweisung und der Schreib-Anweisung ist der Puffer-(Anordnungs)-Name zum Speichern des kleinen Bereichs, das zweite Argument ist die Festlegung der Größe in horizontaler Richtung, und das dritte Argument ist die Festlegung der Größe in vertikaler Richtung.
  • Wenn die Aufmerksamkeit auf die vfor-Anweisung der Anweisungen (1–1–1), (1–2–1), die hfor-Anweisung der Anweisungen (1–1–2), (1–2–2), die Lese-Anweisung der Anweisungen (1-1–3), (1–2–3) und die Schreib-Anweisung der Anweisungen (1–1–5), (1–2–5) gerichtet wird, kann der Host-Computer 10 in dem Schritt S11 durch Analyse des Source-Programms die Parameter des kleinen Bereichs erkennen, die für die Generierung der Ausführungscodes des Datenfluß-Steuerteils 2 erforderlich sind. Das heißt, der Host-Computer 10 kann durch Analyse des Source-Programms die Größen in horizontaler/vertikaler Richtung, die Anfangsposition und die Art der Bewegung eines kleinen Bereichs erkennen. Die Gesamtzahl der zu verarbeitenden kleinen Bereiche des Gesamtbilds ist aus der vfor-Anweisung und der hfor-Anweisung ersichtlich.
  • In dem Schritt S12 erstellt der Host-Computer 10 dann auf der Basis des Analyseergebnisses von Schritt S11 eine Informationstabelle des Datenfluß-Steuerteils 2. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S13.
  • In dem Schritt S13 erstellt der Host-Computer 10 eine Informationstabelle für die Verarbeitung des arithmetischen Prozessors innerhalb des Source-Programms. Die Informationstabelle für die Verarbeitung des arithmetischen Prozessors ist eine Tabelle, in der Informationen gesammelt werden, die in dem Source-Programm für die Verarbeitung der betreffenden kleinen Bereiche durch Analyse, z.B. des von dem Syntax-Schlüsselwort vfor der Anweisung (1–2–1) oder hfor der Anweisung (1–2–1) usw. umschlossenen Source-Programm gewonnen werden.
  • In dem Schritt S14 entnimmt der Host-Computer 10 dann die Information des ersten arithmetischen Blocks. Das heißt, der Host-Computer 10 liest eine Information ein, die die arithmetische Verarbeitung angibt, die von dem arithmetischen Prozessor bezüglich kleiner Bereiche ausgeführt wird, z.B. die Anweisung (1–1–4) zwischen der Lese-Anweisung, der Anweisung (1–1–3), und der Schreib-Anweisung der Anweisung (1–1–5), oder die Anweisung (1–2–4) zwischen der Lese-Anweisung der Anweisung (1–2–3), und der Schreib-Anweisung der Anweisung (1–2–5). Der arithmetische Block ist hier ein Block, der von vfor und hfor eingeschlossen ist und den Operationsinhalt beschreibt, den die arithmetischen Prozessoren ausführen.
  • In dem Schritt S15 prüft der Host-Computer 10 dann, ob die Berechnungsformel zur Durchführung der Integrationsverarbeitung in dem arithmetischen Block, der in dem Schritt S14 ausgelesen wurde, enthalten ist oder nicht. Für den Fall, daß keine Berechnungsformel, z.B. die Anweisung (1–1–6), zur Durchführung der Integrationsverarbeitung bezüglich der Bildverarbeitung des kleinen Bereichs enthalten ist (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S17. Für den Fall hingegen, daß eine Berechnungsformel, wie z.B. die Anweisung (1–1–6) enthalten ist (JA), geht die Verarbeitungsprozedur weiter zu dem Schritt S16.
  • In dem Schritt S16 stellt der Host-Computer 10 z.B. das Integrations-Flag auf (setzt es auf "1"), so daß der arithmetische Prozessor in dem Datenfluß-Steuerteil 2 eine Operation ausführen kann, die sich auf die Berechnungsformel bezieht. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S17.
  • Es ist zu beachten, daß der Host-Computer 10 in dem Schritt S15 auch das Vorhandensein oder Nichtvorhandensein der Verteilung des Ergebnisses der integralen Operation prüfen kann. Das heißt, für den Fall, daß keine Berechnungsformel vorliegt, wie z.B. die Anweisung (1–2–4) (NEIN), geht die Verarbeitungsprozedur des Host-Computers 10 weiter zu dem Schritt S17. Wenn hingegen eine Berechnungsformel vorliegt, wie die Anweisung (1–2–4) (JA), kann die Verarbeitungsprozedur des Host-Computers 10 zu dem Schritt S16 weitergehen, um in dem Schritt S16 das Verteilungs-Flag aufzustellen (zu setzen) und zu dem Schritt S17 überzugehen.
  • In dem Schritt S17 prüft der Host-Computer 10, ob ein Bruchteil erzeugt wird oder nicht, wenn die arithmetischen Prozessoren kleinen Bereichen des Bilds entsprechen können. Das heißt dieser Bruchteil zeigt den Rest an, der entsteht, wenn bei der Teilung des Bilds in kleine Bereiche die Gesamtzahl der kleinen Bereiche nicht durch die Gesamtzahl der arithmetischen Prozessoren teilbar ist. Die Bruchteilzahl für den kleinen Bereich bedeutet in dem Source-Programm für die Verarbeitung der betreffenden kleinen Bereiche, daß sie kleiner ist als die Zahl der arithmetischen Prozessoren.
  • Die Verarbeitungsprozedur des Host-Computers 10 geht dann weiter zu dem Schritt S18, wenn der Bruchteil existiert (JA) bzw. zu dem Schritt S19, wenn kein Bruchteil existiert (NEIN).
  • In dem Schritt S18 setzt der Host-Computer 10 das Bruchteil-Flag. Die Verarbeitungsprozedur geht so weiter zu dem Schritt S19.
  • In dem Schritt S19 prüft der Host-Computer 10, ob die Analyseverarbeitung für alle arithmetischen Blöcke abgeschlossen wurde. Wenn die Analyseverarbeitung noch nicht für alle arithmetischen Blöcke abgeschlossen wurde (NEIN), geht die Verarbeitung weiter zu dem Schritt S19N.
  • In dem Schritt S19N liest der Host-Computer 10 die Information des nächsten arithmetischen Blocks ein, um die Analyse fortzusetzen. Nachdem der Host-Computer 10 die Information des nächsten arithmetischen Blocks eingelesen hat, geht die Verarbeitungsprozedur weiter zu dem Schritt S15. Wenn die Analyseverarbeitung in dem Schritt S19 hingegen für alle arithmetischen Blöcke abgeschlossen wurde (JA), geht die Verarbeitungsprozedur des Computers 10 auf Rücklauf, um die Subroutine SUB1 abzuschließen.
  • Es folgt eine Erläuterung in Verbindung mit der Parallelverarbeitung für ein Verarbeitungsprogramm, einschließlich der Integrationsverarbeitung, z.B. für vier unten angegebene Bilder. Dieses Verarbeitungsprogramm hat z.B. das im folgenden beschriebene Format.
  • Figure 00130001
  • In diesem Verarbeitungsprogramm ist der Fall dargestellt, daß die Bildverarbeitung für vier Bilder durchgeführt wird, die jeweils z.B. aus 512×768 Pixeln bestehen, wie dies in 6 dargestellt ist, wenn in dem Arithmetikteil 3 z.B. vier arithmetische Prozessoren vorhanden sind. Bei einer solchen Operation, bei der alle Bilder als Einheit benutzt werden, gibt es Fälle, in denen eine Bildverarbeitung durchgeführt wird, um z.B. die mittlere Dichte aller Bilder usw. zu bestimmen. Um eine solche Bildverarbeitung auf der Basis des der oben beschriebenen Architektur entsprechenden Modells durchzuführen, unterscheidet der Host-Computer 10 in der Subroutine SUB2 zwischen Bildteilungsverarbeitung, einschließlich Integrationsverarbeitung, die in der SUB1 analysiert wird, und paralleler Bildverarbeitung, um die Bildoperation (Bilddarstellung) durch entsprechende Prozessoren für jeweils eine Rahmeneinheit parallel durchzuführen.
  • Wie 5 zeigt, entnimmt der Host-Computer 10 in dem Schritt S20 des Flußdiagramms der Subroutine SUB2 die Information des ersten arithmetischen Blocks. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S21.
  • In dem Schritt S21 unterscheidet der Host-Computer 10 anhand des Vorhandenseins oder Nichtvorhandenseins des Integrationsverarbeitungs-Flags, ob Integrationsverarbeitung vorliegt oder nicht. Wenn Integrationsverarbeitung vorliegt, wie dies z.B. durch die Anweisung (2–8) angezeigt wird, da das Integrationsverarbeitungs-Flag gesetzt sein sollte (JA), geht die Verarbeitungsprozedur des Host-Computers 10 weiter zu dem Schritt S22. Wenn keine In tegrationsverarbeitung vorliegt (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S25.
  • In dem Schritt S22 prüft der Host-Computer 10, ob die Zahl der zu verarbeitenden Bilder gleich 1 ist oder nicht. Wenn die Zahl der zu verarbeitenden Bilder gleich 1 ist (JA), geht die Verarbeitungsprozedur des Host-Computers 10 weiter zu dem Schritt S25. Wenn die Zahl der zu verarbeitenden Bilder gleich 2 oder größer ist (NEIN), d.h. bei einem Programm, wie es z.B. durch die Anweisung (2–2) bis zu der Anweisung (2–5) angegeben ist, geht die Verarbeitungsprozedur weiter zu dem Schritt S23.
  • In dem Schritt S23 prüft der Host-Computer 10, ob die Zahl der zu verarbeitenden Bilder durch die Zahl der arithmetischen Prozessoren in dem Arithmetikteil 3 teilbar ist oder nicht. Wenn die Zahl der zu verarbeitenden Bilder durch die Zahl der arithmetischen Prozessoren teilbar ist (JA), geht die Verarbeitungsprozedur des Host-Computers 10 weiter zu dem Schritt S24. Wenn die Zahl der zu verarbeitenden Bilder nicht durch die Zahl der arithmetischen Prozessoren in dem Arithmetikteil 3 geteilt werden kann (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S25.
  • In dem Schritt S24 setzt der Host-Computer 10 das Parallelverarbeitungs-Flag. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S25.
  • In dem Schritt S25 prüft der Host-Computer 10, ob die Analyse für alle arithmetischen Blöcke abgeschlossen wurde oder nicht. Wenn die Analyse des arithmetischen Verarbeitungsverfahrens noch nicht für alle arithmetischen Blöcke abgeschlossen wurde (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S26.
  • In dem Schritt S26 liest der Host-Computer 10 die Information des nächsten arithmetischen Blocks ein, um die Analyse fortzusetzen. Nachdem der Host-Computer 10 die Information des nächsten arithmetischen Blocks eingelesen hat, geht die Verarbeitungsprozedur weiter zu dem Schritt S22. Wenn hingegen die Analyseverarbeitung für alle arithmetischen Blöcke in dem Schritt S25 abgeschlossen wurde (JA), geht die Verarbeitungsprozedur des Host-Computers 10 weiter auf Rücklauf. Damit ist die Subroutine SUB2 abgeschlossen.
  • Wenn in dieser Weise eine Unterscheidung zwischen der parallelen Bildverarbeitung und der Bildteilungsverarbeitung durchgeführt wird, sind Maßnahmen dagegen getroffen, daß das Modell, das z.B. auf der oben beschriebenen Architektur beruht, nicht verletzt wird, wenn in der nachfolgenden Subroutine SUB3 die Ausführungscode-Generierung für das Programm durchgeführt wird. Die dem Analyseergebnis entsprechende Kompilierung und die Steuerung der Verarbeitung des in dieser Weise ausgeführten Source-Programms erfolgt nach dem in 7 dargestellten Flußdiagramm der Subroutine SUB3.
  • In dem Schritt S30 prüft der Host-Computer 10, ob das für die Implementierung der Kompilierung gelieferte Source-Programm ein Programm für den Datenfluß-Steuerteil 2 ist oder nicht. Falls das Source-Programm ein Programm für den Datenfluß-Steuerteil 2 ist (JA), geht die Verarbeitungsprozedur des Host-Computers 10 weiter zu dem Schritt S31. Für den Fall, daß das Source-Programm kein Programm für den Datenfluß-Steuerteil 2 ist (NEIN), wird es als Programm für einen arithmetischen Prozessor betrachtet. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S40.
  • In dem Schritt S31 prüft der Host-Computer 10, ob das Flag für parallele Bildverarbeitung gesetzt ist oder nicht. Wenn das Flag für parallele Bildverarbeitung gesetzt ist (JA), prüft der Host-Computer 10, ob angegeben ist, daß die Zahl der Bilder durch die Zahl der arithmetischen Prozessoren teilbar war. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S32. Wenn das Flag für parallele Bildverarbeitung nicht gesetzt ist (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S33.
  • In dem Schritt S32 liefert der Host-Computer 10 alle Daten eines Bildes an das entsprechende Exemplar der arithmetischen Prozessoren, um Ausführungscodes des Datenfluß-Steuerteils 2 zu generieren, der die Bildverarbeitung für mehrere Bildern parallel ausführt. Anschließend geht die Verarbeitungsprozedur weiter zu dem Schritt S43. Die Verarbeitung in diesem Schritt ist eine Verarbeitung, in der z.B. der mittlere Dichtewert eines Bilds oder dgl. als praxisnäherer Bildverarbeitung erfolgt. So werden als Ausführungscodes, die für den Datenfluß-Steuerteil 2 generiert werden, z.B. Ausführungscodes generiert, um die Daten eines Bilds zu senden, die für die Verarbeitung von einem arithmetischen Prozessor in dem Arithmetikteil 3 benötigt werden.
  • In dem Schritt S33 prüft der Host-Computer 10, ob das Integrations-Flag gesetzt ist oder nicht. Wenn das Integrations-Flag nicht gesetzt ist (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S37. Wenn das Integrations-Flag gesetzt ist (JA), geht die Verarbeitungsprozedur weiter zu dem Schritt S34.
  • In dem Schritt S34 prüft der Host-Computer 10, ob das Bruchteil-Flag gesetzt ist oder nicht. Wenn das Bruchteil-Flag gesetzt ist (JA), geht die Verarbeitungsprozedur weiter zu dem Schritt S35. Wenn kein Bruchteil-Flag gesetzt ist (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S36.
  • In dem Schritt S35 generiert der Host-Computer 10 Ausführungscodes des Datenfluß-Steuerteils 2, der eine Bildteilungsverarbeitung, einschließlich einer Integrationsverarbeitung und einer Bruchteilverarbeitung vornimmt. Somit geht die Verarbeitung weiter zu dem Schritt S43.
  • Die Bildteilungsverarbeitung umfaßt eine Verarbeitung, um Daten, wie das durch die Durchführung einer integralen Verarbeitungsprozedur gewonnene Ergebnis oder dgl., als numerische Werte an die jeweiligen arithmetischen Prozessoren in dem Arithmetikteil 3 zu senden, wie dies die Gelegenheit erfordert, so daß die betreffenden arithmetischen Prozessoren eine Operation auf der Basis der ihnen zugeführten numerischen Werte ausführen.
  • Die Ausführungscodes der Bildteilungsverarbeitung werden aus einem Source-Programm generiert, das so ausgebildet ist, daß es wiederholt eine Steuerung durchführt, bei der der Prozessor des Datenfluß-Steuerteils 2 die Daten kleiner Bereiche, die der Zahl der arithmetischen Prozessoren in dem Arithmetikteil 3 entsprechen, aus dem gemeinsam genutzten Speicher in dem Eingabe-/Ausgabeteil 5 ausliest, um sie an die verteilten Speicher in den betreffenden arithmetischen Prozessoren zu liefern und die entsprechenden verarbeiteten Daten in dem gemeinsam genutzten Speicher in dem Eingabe-/Ausgabeteil 5 zu sammeln, nachdem die Operationen der arithmetischen Prozessoren abgeschlossen wurden.
  • Der Ausführungscode der Bruchteilverarbeitung ist ein Ausführungscode, durch den die Zahl der wiederholt ausgeführten Verarbeitung, die für Bilddaten des Restbereichs durchgeführt wird, um 1 erhöht wird, so daß sie die bedingte Anweisung enthält, den Schreibzugriff für den gemeinsam genutzten Speicher des Eingabe-/Ausgabeteils 5 für das Datenverarbeitungsergebnis aus dem Abschnitt zu sperren, der über der Gesamtzahl der kleinen Bereiche liegt. Die Bruchteilverarbeitung bedeutet nämlich eine Verarbeitung, bei der der Datenfluß-Steuerteil 2 nur Operationsergebnisse bezüglich aller kleinen Bereiche in den gemeinsam genutzten Speicher des Eingabe-/Ausgabeteils 5 einschreibt und mit Ausnahme der obigen keine Ergebnisse in den gemeinsam genutzten Speicher des Eingabe-/Ausgabeteils 5 einschreibt.
  • In dem Schritt S36 generiert der Host-Computer 10 dann Ausführungscodes des Datenfluß-Steuerteils 2, der eine Bildteilungsverarbeitung ausführt, einschließlich einer Integrationsverarbeitung. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S43.
  • Wenn hingegen die Verarbeitungsprozedur aufgrund des Entscheidungsergebnisses (NEIN) in dem Schritt S33 zu dem Schritt S37 übergeht, prüft der Host-Computer 10 auch in diesem Schritt S37, ähnlich wie in dem Schritt S34, ob das Bruchteil-Flag gesetzt ist oder nicht. Wenn das Bruchteil-Flag gesetzt ist (JA), geht die Verarbeitungsprozedur des Host-Compu ters 10 weiter zu dem Schritt S38. Wenn kein Bruchteil-Flag gesetzt ist (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S39.
  • In dem Schritt S38 generiert der Host-Computer 10 Ausführungscodes des Datenfluß-Steuerteils 2, der eine Bildteilungsverarbeitung, einschließlich einer Bruchteilverarbeitung, ausführt. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S43.
  • In dem Schritt S39 generiert der Host-Computer 10 in üblicher Weise Ausführungscodes des Datenfluß-Steuerteils 2. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S43.
  • In dem Schritt S40 prüft der Host-Computer 10 hingegen, ob ein Integrationsverarbeitungs-Flag gesetzt ist oder nicht. Wenn das Integrationsverarbeitungs-Flag gesetzt ist (JA), geht die Verarbeitungsprozedur des Host-Computers 10 weiter zu dem Schritt S41. Wenn kein Integrationsverarbeitungs-Flag gesetzt ist (NEIN), geht die Verarbeitungsprozedur weiter zu dem Schritt S42.
  • In dem Schritt S41 generiert der Host-Computer 10 Ausführungscodes für die arithmetischen Prozessoren des Datenfluß-Steuerteils 2 und des Arithmetikteils 3, einschließlich der Integrationsverarbeitung. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S43.
  • In dem Schritt S42 generiert der Host-Computer 10 in üblicher Weise Ausführungscodes für die arithmetischen Prozessoren des Arithmetikteils 3. Dann geht die Verarbeitungsprozedur weiter zu dem Schritt S43.
  • In dem Schritt S43 prüft der Host-Computer 10, ob die Generierung von Ausführungscodes für die arithmetischen Prozessoren des Datenfluß-Steuerteils 2 und des Arithmetikteils 3 für alle arithmetischen Blöcken abgeschlossen wurde oder nicht. Wenn die Kompilierung noch nicht abgeschlossen wurde (NEIN), kehrt die Verarbeitungsprozedur des Host-Computers 10 zu dem Schritt S30 zurück, um die oben beschriebene Prozedur zu wiederholen. Wenn die Kompilierung hingegen abgeschlossen wurde (JA), geht die Verarbeitungsprozedur des Host-Computers 10 auf Rücklauf und beendet so die Subroutine SUB3, in der diese Verarbeitung zur Generierung der Ausführungscodes durchgeführt wird.
  • Wie oben festgestellt wurde, wird ein Lösungsweg beschritten, bei dem die Verarbeitung in Abhängigkeit von der Zahl der angelieferten Bilder und der Zahl der arithmetischen Prozessoren umgeschaltet wird, um die arithmetische Verarbeitung von Einheiten kleiner Bereiche oder eines Rahmens in den entsprechenden arithmetischen Prozessoren des Arithmetikteils 3 durchzuführen und eine integrale arithmetische Verarbeitung durch den arithmetischen Prozessor des Datenfluß-Steuerteils 2 durchzuführen, um das Ergebnis der integralen arithmetischen Verarbeitung so, wie es die Gelegenheit erfordert, an die jeweiligen arithmetischen Prozessoren des Arithmetikteils 3 auszugeben und dadurch die betroffenen arithmetischen Prozessoren in die Lage zu versetzen, sich der Bildverarbeitung für den gegebenen Bereich zu widmen und so die Art der zu generierenden Ausführungscodes beschränken zu können, indem automatisch eine Methode mit höherer Effizienz gewählt wird, ohne das der oben beschriebene Architektur entsprechende Modell zu verletzen. Auf diese Weise kann die Menge der generierten Ausführungscodes so klein wie möglich gehalten werden, und außerdem ist eine Programmoptimierung möglich.
  • Darüber hinaus wird ein Lösungsweg beschritten, bei dem ein Identifizierer detektiert wird, der Parallelverarbeitung in dem Source-Programm anzeigt, um auf der Basis des Identifizierers eine Unterscheidung zu treffen zwischen der Verarbeitung des Datenfluß-Steuerteils 2 und derjenigen des Arithmetikteils 3, und Ausführungscodes für eine Vielzahl von arithmetischen Prozessoren des Arithmetikteils 3 zu generieren und damit dem Programmentwickler die Möglichkeit zu verschaffen, das Programm zu schreiben, ohne daß er sich der Rollenverteilung für die jeweiligen arithmetischen Prozessoren bewußt sein muß, so daß die Zeit für die Programmentwicklung verkürzt werden kann. Dadurch können die Entwicklungskosten niedrig gehalten werden.
  • Es wird außerdem ein Lösungsweg beschritten, um die oben beschriebene Bruchteilverarbeitung entsprechend dem Bruchteil (Rest) durchzuführen, der in Bezug auf die Zahl der arithmetischen Prozessoren und der Zahl der unterteilten kleinen Bereiche festgelegt wird, so daß eine effiziente Verarbeitung mit einer Anzahl von Ausführungscodes möglich ist, die im Vergleich zu der herkömmlichen Menge an Ausführungscodes sehr niedrig gehalten wird.
  • Bei dem Bildverarbeitungsverfahren wird ein Lösungsweg beschritten, um nach einer Prozedur vorzugehen, bei der die Operationsergebnisse in den arithmetischen Prozessoren gesammelt werden, deren Rollen in Abhängigkeit von der Zahl der unterteilen Bilder verteilt werden, um eine Integrationsverarbeitung derselben durchzuführen und dadurch die Menge der generierten Ausführungscodes in dem Bildverarbeitungsverfahren stark reduzieren zu können, so daß die Effizienz der Bildverarbeitung verbessert werden kann. Auf diese Weise ist eine Entwicklung in kurzer Zeit möglich, und die Entwicklungskosten können niedrig gehalten werden.
  • Darüber hinaus wird bei dem Bildverarbeitungsverfahren ein Lösungsweg beschritten, bei dem die Zahl der zu verarbeitenden Bilder und die Zahl der arithmetischen Prozessoren entsprechend einer ausgeführten Verarbeitung, z.B. einer Verarbeitung der mittleren Dichte usw., geprüft wird, um ein Verarbeitungsverfahren zur Generierung der Ausführungscodes auszuwählen, so daß die Verarbeitungsgeschwindigkeit höher sein kann als bei der herkömmlichen Bildverarbeitung. Auf diese Weise wird z.B. auch in dem Anwendungsprogramm die Bildverarbeitung durchgeführt, ohne das Modell zu verletzen, das der Architektur genügt, die als Architektur für die Parallelverarbeitung benötigt wird, so daß die Verarbeitungsgeschwindigkeit höher sein kann als bei der herkömmlichen Bildverarbeitung.
  • Das Bildverarbeitungsgerät ist so ausgebildet, daß in den betreffenden arithmetischen Prozessoren des Arithmetikteils eine arithmetische Verarbeitung von Daten durchgeführt wird, die von dem Datenfluß-Steuerteil angeliefert wurden, um eine integrale Operation durchzuführen, indem die Verarbeitungsergebnisse der betreffenden arithmetischen Prozessoren benutzt werden, die in dem Datenfluß-Steuerteil gesammelt werden, um sie ein zweites Mal auf die betreffenden arithmetischen Prozessoren zu verteilen, wenn die Gelegenheit dies erfordert, so daß die betreffenden arithmetischen Prozessoren des Arithmetikteils sich der Verarbeitung für die Berechnung von gegebenen kleinen Bereichen widmen können, um die Bildverarbeitung durch Parallelverarbeitung der angelieferten Bildsignale zu implementieren und so eine höherwetige Bildverarbeitung durchführen zu können, als dies beim Stand der Technik möglich ist.
  • Bei der Kompilierung eines unter Verwendung einer Programmiersprache aufgestellten Programms, das es einer Mehrzahl von arithmetischen Prozessoren ermöglicht, die Bildverarbeitung parallel durchzuführen, um Ausführungscodes zu generieren, werden erfindungsgemäß die Identifizierung und die Analyse der Steueranweisung, an die ein Identifizierer angehängt ist, der Parallelverarbeitung bei der Bildverarbeitung anzeigt, von dem erstellen Programm ausgeführt, so daß Ausführungscodes für die Parallelverarbeitung der betreffenden arithmetischen Prozessoren generiert werden, die dem Analyseergebnis und der Zahl der arithmetischen Prozessoren entsprechen. Die jeweiligen arithmetischen Prozessoren führen dann die Bildverarbeitung auf der Basis der generierten Ausführungscodes durch, so daß die Operationsergebnisse der betroffenen arithmetischen Prozessoren einer Integrationsverarbeitung unterzogen werden können, so daß der Programmentwickler das Programm beschreiben (schreiben) kann, ohne daß er sich der Rollenverteilung der jeweiligen Prozessoren bewußt sein muß. Dadurch kann die Programmentwicklungszeit verkürzt werden. So kann die Arbeitslast des Programmentwicklers verringert werden, so daß die Entwicklungskosten niedriger gehalten werden können.

Claims (13)

  1. Verfahren zum Kompilieren eines parallelen Verarbeitungsprogramms, wobei das parallele Verarbeitungsprogramm generierte Ausführungscodes aufweist, die so betrieben werden können, daß sie es einer Mehrzahl von arithmetischen Prozessoren ermöglichen, eine parallele Bildverarbeitung auszuführen, wobei das Verfahren die Verfahrensschritte aufweist: (A) Analysieren einer Steueranweisung (SUB1) eines Quellprogramms, um festzustellen, ob daran ein Identifizierer für die parallele Bildverarbeitung angehängt ist, und (B) wenn der Identifizierer für die parallele Bildverarbeitung an die Steueranweisung angehängt ist, Generieren von Ausführungscodes (SUB3), wobei der Verfahrensschritt (A) einen Verfahrensschritt umfaßt, um festzustellen, ob die Zahl der der Bildverarbeitung zu unterziehenden Bilder durch die Zahl der arithmetischen Prozessoren ohne Rest teilbar ist oder nicht, und wenn dies der Fall ist, der Verfahrensschritt (B) den Verfahrensschritt des Generierens von Ausführungscodes für die arithmetischen Prozessoren umfaßt, um zu ermöglichen, daß die Bilder einer parallelen Verarbeitung durch entsprechende arithmetische Prozessoren unterzogen werden.
  2. Verfahren nach Anspruch 1, bei dem die Bilder für die Verarbeitung in kleine Bereiche partitioniert werden und die Mehrzahl von arithmetischen Prozessoren so betrieben werden können, daß sie die Bildverarbeitung der kleinen Bereiche parallel ausführen und diese Bearbeitung wiederholen, bis das ganze Bild verarbeitet ist.
  3. Verfahren nach Anspruch 2, bei dem der Verfahrensschritt (A) einen Verfahrensschritt umfaßt, um festzustellen (S 17), ob die Zahl der kleinen Bereiche, die der Bildverarbeitung unterzogen werden, durch die Zahl der arithmetischen Prozessoren ohne Rest teilbar ist, und falls nicht, der Verfahrensschritt (B) den Verfahrensschritt des Generierens eines Ausführungscodes oder von Ausführungscodes umfaßt, um das Einschreiben eines Verarbeitungsergebnisses eines arithmetischen Prozessors oder von arithmetischen Prozessoren in einen Speicher zu sperren, bis der Rest verarbeitet wurde.
  4. Verfahren nach Anspruch 1 oder 2 oder 3, mit dem weiteren Verfahrensschritt: (C) Verarbeiten der Bilder (S2) auf der Basis der generierten Ausführungscodes.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Verfahrensschritt (A) den Verfahrensschritt umfaßt, daß auf der Basis des Ergebnisses der an den kleinen Bereichen durchzuführenden Bildverarbeitung detektiert wird, ob eine integrale Operation vorliegt oder nicht, und einen Verfahrensschritt, in dem detektiert wird, ob an dem Ergebnis der integralen Operation eine Verteilungsoperation vorzunehmen ist oder nicht.
  6. Gerät zum Kompilieren eines parallelen Verarbeitungsprogramms, wobei das parallele Verarbeitungsprogramm generierte Ausführungscodes aufweist, die so betrieben werden können, daß sie es einer Mehrzahl von arithmetischen Prozessoren ermöglichen, eine parallele Bildverarbeitung auszuführen, wobei das Gerät aufweist: eine Einrichtung (1) zum Analysieren einer Steueranweisung eines Quellprogramms, um festzustellen, ob daran ein Identifizierer für die parallele Bildverarbeitung angehängt ist, und eine Einrichtung (1, 4) zum Generieren von Ausführungscodes, wenn der Identifizierer für die parallele Bildverarbeitung an die Steueranweisung angehängt ist, und wobei die Einrichtung zum Analysieren einer Steueranweisung so betrieben werden kann, daß sie feststellt, ob die Zahl der der Bildverarbeitung zu unterziehenden Bilder durch die Zahl der arithmetischen Prozessoren ohne Rest teilbar ist oder nicht, und wenn dies der Fall ist, die Einrichtung zum Generieren von Ausführungscodes so betrieben werden kann, daß sie Ausführungscodes für die arithmetischen Prozessoren generiert, die es ermöglichen, daß die Bilder einer parallelen Verarbeitung durch entsprechende arithmetische Prozessoren unterzogen werden.
  7. Gerät nach Anspruch 6, bei dem die Bilder für die Verarbeitung in kleine Bereiche partitioniert werden und die Mehrzahl von arithmetischen Prozessoren so betrieben werden können, daß sie die Bildverarbeitung der kleinen Bereiche parallel ausführen und diese Bearbeitung wiederholen, bis das ganze Bild verarbeitet ist.
  8. Gerät nach Anspruch 7, bei dem die Einrichtung zum Analysieren einer Steueranweisung so betrieben werden kann, daß sie feststellt, ob der Zahl der der Bildverarbeitung zu unterziehenden kleinen Bereiche durch die Zahl der arithmetischen Prozessoren ohne Rest teilbar ist oder nicht, und falls nicht, die Einrichtung zum Generieren von Ausführungscodes so betrieben werden kann, daß sie einen Ausführungscode oder Ausführungscodes generiert, um das Einschreibens eines Verarbeitungsergebnisses eines arithmetischen Prozessors oder von arithmetischen Prozessoren in einen Speicher zu sperren, bis der Rest verarbeitet wurde.
  9. Gerät nach Anspruch 6 oder 7 oder 8, das ferner aufweist: die genannten Mehrzahl von arithmetischen Prozessoren zur Verarbeitung der Bilder (3) auf der Basis der generierten Ausführungscodes,
  10. Gerät nach einem der Ansprüche 6 bis 9, bei dem die Einrichtung zum Analysieren einer Steueranweisung so betrieben werden kann, daß sie auf der Basis des Ergebnisses der an den kleinen Bereichen durchzuführenden Bildverarbeitung feststellt, ob eine integrale Operation vorliegt oder nicht, und detektiert, ob an dem Ergebnis der integralen Operation eine Verteilungsoperation vorzunehmen ist oder nicht.
  11. Gerät nach einem der vorhergehenden Ansprüche 6 bis 6, das ferner aufweist: die genannten Mehrzahl von arithmetischen Prozessoren und eine Einrichtung (2) für die Steuerung der Datenzuführung für die Ausführung einer integralen Operation auf der Basis der betreffenden Ergebnisse aus den arithmetischen Prozessoren.
  12. Gerät nach Anspruch 11, bei dem die Mehrzahl von arithmetischen Prozessoren auf eine Steuereinrichtung ansprechen, die so betrieben werden kann, daß sie in Abhängigkeit von der Zahl der zu verarbeitenden Bilder eine selektive Umschaltung vornimmt, um eine der folgenden Tätigkeiten auszuführen: eine erste parallele Bildverarbeitung in den mehreren arithmetischen Prozessoren in Bezug auf entsprechende geteilte kleine Bereiche eines Bilds eines zugeführten Bildsignals in Abhängigkeit von der Zahl der Bilder des Bildsignals, wobei die mehreren arithmetischen Prozessoren so betrieben werden können, daß sie auf der Basis der betreffenden Bildverarbeitungsergebnisse aus diesen arithmetischen Prozessoren eine integrale Operation ausführen, und eine zweite parallele Bildverarbeitung in jedem arithmetischen Prozessor in Bezug auf eine Mehrzahl von Bildern und die Zahl der arithmetischen Prozessoren, wobei die Bildverarbeitung in Einheiten eines Bilds des zugeführten Bildsignals erfolgt.
  13. Gerät nach Anspruch 12, bei dem die Steuereinrichtung eine solche Steuerung vornimmt, daß, falls die Zahl der zu verarbeitenden Bilder gleich 1 ist oder falls der durch Teilen der Zahl von Bildern durch die Zahl von arithmetischen Prozessoren gewonnene Wert einen Rest aufweist die Steuereinrichtung veranlaßt, daß die erste Bildverarbeitung stattfindet, und für den Fall, daß die Zahl der zu verarbeitenden Bilder durch die Zahl der arithmetischen Prozessoren geteilt werden kann, die Steuereinrichtung veranlaßt, daß die zweite Bildverarbeitung stattfindet.
DE69533020T 1994-03-28 1995-03-24 Verfahren und apparat zur kompilierung paralleler bildverarbeitungsprogramme Expired - Lifetime DE69533020T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP5714194 1994-03-28
JP5714294 1994-03-28
JP5714294 1994-03-28
JP5714194 1994-03-28
PCT/JP1995/000552 WO1995026530A1 (fr) 1994-03-28 1995-03-24 Procede de compilation de programmes a execution parallele, imageur et procede de traitement d'image

Publications (2)

Publication Number Publication Date
DE69533020D1 DE69533020D1 (de) 2004-06-17
DE69533020T2 true DE69533020T2 (de) 2005-04-07

Family

ID=26398165

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69533020T Expired - Lifetime DE69533020T2 (de) 1994-03-28 1995-03-24 Verfahren und apparat zur kompilierung paralleler bildverarbeitungsprogramme

Country Status (4)

Country Link
US (2) US5721883A (de)
EP (1) EP0715264B1 (de)
DE (1) DE69533020T2 (de)
WO (1) WO1995026530A1 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721883A (en) * 1994-03-28 1998-02-24 Sony Corporation System and method for implementing parallel image processing
JP3203180B2 (ja) * 1996-03-27 2001-08-27 三菱電機株式会社 幾何学演算装置
BR9911631B1 (pt) 1998-06-30 2009-12-01 material de eletreto.
US7092983B1 (en) * 2000-04-19 2006-08-15 Silicon Graphics, Inc. Method and system for secure remote distributed rendering
US7783695B1 (en) * 2000-04-19 2010-08-24 Graphics Properties Holdings, Inc. Method and system for distributed rendering
US7062527B1 (en) 2000-04-19 2006-06-13 Silicon Graphics, Inc. Management and scheduling of a distributed rendering method and system
US7253919B2 (en) * 2000-11-30 2007-08-07 Ricoh Co., Ltd. Printer with embedded retrieval and publishing interface
EP1441777A4 (de) * 2001-07-17 2007-05-30 Kerberos Proximal Solutions Flüssigkeitsaustauschsystem für die kontrollierte und lokalisierte irrigation und aspiration
JP2003150395A (ja) * 2001-11-15 2003-05-23 Nec Corp プロセッサとそのプログラム転送方法
US7861169B2 (en) 2001-11-19 2010-12-28 Ricoh Co. Ltd. Multimedia print driver dialog interfaces
US7747655B2 (en) * 2001-11-19 2010-06-29 Ricoh Co. Ltd. Printable representations for time-based media
US20040181815A1 (en) * 2001-11-19 2004-09-16 Hull Jonathan J. Printer with radio or television program extraction and formating
US7415670B2 (en) * 2001-11-19 2008-08-19 Ricoh Co., Ltd. Printer with audio/video localization
US7424129B2 (en) * 2001-11-19 2008-09-09 Ricoh Company, Ltd Printing system with embedded audio/video content recognition and processing
US7314994B2 (en) * 2001-11-19 2008-01-01 Ricoh Company, Ltd. Music processing printer
US7225950B2 (en) * 2002-05-10 2007-06-05 The Hartz Mountain Corporation Lint roll/dispensable fluid container apparatus
US7275159B2 (en) * 2003-08-11 2007-09-25 Ricoh Company, Ltd. Multimedia output device having embedded encryption functionality
JP2005108230A (ja) * 2003-09-25 2005-04-21 Ricoh Co Ltd オーディオ/ビデオコンテンツ認識・処理機能内蔵印刷システム
US8077341B2 (en) * 2003-09-25 2011-12-13 Ricoh Co., Ltd. Printer with audio or video receiver, recorder, and real-time content-based processing logic
US7440126B2 (en) * 2003-09-25 2008-10-21 Ricoh Co., Ltd Printer with document-triggered processing
US7528977B2 (en) * 2003-09-25 2009-05-05 Ricoh Co., Ltd. Printer with hardware and software interfaces for peripheral devices
US7505163B2 (en) * 2003-09-25 2009-03-17 Ricoh Co., Ltd. User interface for networked printer
US20050071746A1 (en) * 2003-09-25 2005-03-31 Hart Peter E. Networked printer with hardware and software interfaces for peripheral devices
US7864352B2 (en) * 2003-09-25 2011-01-04 Ricoh Co. Ltd. Printer with multimedia server
US7573593B2 (en) * 2003-09-25 2009-08-11 Ricoh Company, Ltd. Printer with hardware and software interfaces for media devices
US20050068573A1 (en) * 2003-09-25 2005-03-31 Hart Peter E. Networked printing system having embedded functionality for printing time-based media
US20050071763A1 (en) * 2003-09-25 2005-03-31 Hart Peter E. Stand alone multimedia printer capable of sharing media processing tasks
US7508535B2 (en) * 2003-09-25 2009-03-24 Ricoh Co., Ltd. Stand alone multimedia printer with user interface for allocating processing
US7528976B2 (en) * 2003-09-25 2009-05-05 Ricoh Co., Ltd. Stand alone printer with hardware/software interfaces for sharing multimedia processing
US7511846B2 (en) * 2003-09-25 2009-03-31 Ricoh Co., Ltd. Printer having embedded functionality for printing time-based media
US7570380B2 (en) * 2003-09-25 2009-08-04 Ricoh Company, Ltd. Printer user interface
US20070285429A1 (en) * 2003-12-22 2007-12-13 Koninklijke Philips Electronic, N.V. System for Generating a Distributed Image Processing Application
US7603615B2 (en) * 2004-03-30 2009-10-13 Ricoh Co., Ltd. Multimedia projector-printer
US8274666B2 (en) * 2004-03-30 2012-09-25 Ricoh Co., Ltd. Projector/printer for displaying or printing of documents
US7421521B2 (en) * 2004-04-05 2008-09-02 Intel Corporation System, method and device for real time control of processor
US7325699B2 (en) * 2004-12-17 2008-02-05 Kimberly-Clark Worldwide, Inc. Lint-reducing container
US7551312B1 (en) 2005-03-17 2009-06-23 Ricoh Co., Ltd. Annotable document printer
US7642208B2 (en) * 2006-12-14 2010-01-05 Kimberly-Clark Worldwide, Inc. Abrasion resistant material for use in various media
US8238624B2 (en) * 2007-01-30 2012-08-07 International Business Machines Corporation Hybrid medical image processing
US8462369B2 (en) * 2007-04-23 2013-06-11 International Business Machines Corporation Hybrid image processing system for a single field of view having a plurality of inspection threads
US8331737B2 (en) * 2007-04-23 2012-12-11 International Business Machines Corporation Heterogeneous image processing system
US8326092B2 (en) * 2007-04-23 2012-12-04 International Business Machines Corporation Heterogeneous image processing system
KR20090000898A (ko) 2007-06-28 2009-01-08 엘지전자 주식회사 저작권이 적용된 사용자 손수 저작물의 생성과 운용을 위한방법 및 장치
US8675219B2 (en) * 2007-10-24 2014-03-18 International Business Machines Corporation High bandwidth image processing with run time library function offload via task distribution to special purpose engines
US9135073B2 (en) * 2007-11-15 2015-09-15 International Business Machines Corporation Server-processor hybrid system for processing data
US20090132582A1 (en) * 2007-11-15 2009-05-21 Kim Moon J Processor-server hybrid system for processing data
US20090150556A1 (en) * 2007-12-06 2009-06-11 Kim Moon J Memory to storage communication for hybrid systems
US9332074B2 (en) * 2007-12-06 2016-05-03 International Business Machines Corporation Memory to memory communication and storage for hybrid systems
US8229251B2 (en) * 2008-02-08 2012-07-24 International Business Machines Corporation Pre-processing optimization of an image processing system
US8379963B2 (en) * 2008-03-28 2013-02-19 International Business Machines Corporation Visual inspection system
US8121363B2 (en) * 2008-06-12 2012-02-21 International Business Machines Corporation Thermographic image processing system
US8261117B2 (en) * 2008-09-11 2012-09-04 International Business Machines Corporation Virtualization in a multi-core processor (MCP)
US8438404B2 (en) * 2008-09-30 2013-05-07 International Business Machines Corporation Main processing element for delegating virtualized control threads controlling clock speed and power consumption to groups of sub-processing elements in a system such that a group of sub-processing elements can be designated as pseudo main processing element
US8732716B2 (en) * 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US8341638B2 (en) * 2008-09-30 2012-12-25 International Business Machines Corporation Delegated virtualization across physical partitions of a multi-core processor (MCP)
US7804329B2 (en) * 2008-11-21 2010-09-28 International Business Machines Corporation Internal charge transfer for circuits
US9824008B2 (en) 2008-11-21 2017-11-21 International Business Machines Corporation Cache memory sharing in a multi-core processor (MCP)
US9122617B2 (en) 2008-11-21 2015-09-01 International Business Machines Corporation Pseudo cache memory in a multi-core processor (MCP)
US8806129B2 (en) 2008-11-21 2014-08-12 International Business Machines Corporation Mounted cache memory in a multi-core processor (MCP)
US9886389B2 (en) * 2008-11-21 2018-02-06 International Business Machines Corporation Cache memory bypass in a multi-core processor (MCP)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0642237B2 (ja) * 1983-12-28 1994-06-01 株式会社日立製作所 並列処理装置
JP2738692B2 (ja) * 1988-01-29 1998-04-08 株式会社日立製作所 並列化コンパイル方法
JPH04211830A (ja) * 1990-02-05 1992-08-03 Matsushita Electric Ind Co Ltd 並列化コンパイル方式
US5437034A (en) * 1991-04-19 1995-07-25 Hitachi, Ltd. Method of generating from source program object program by which final values of variables for parallel execution are guaranteed
JPH0512033A (ja) * 1991-07-03 1993-01-22 Hitachi Ltd 並列化コンパイル方式
US5450554A (en) * 1991-11-11 1995-09-12 Matsushita Electric Industrial Co., Ltd. Apparatus for detecting possibility of parallel processing and method thereof and a program translation apparatus utilized therein
US5721883A (en) * 1994-03-28 1998-02-24 Sony Corporation System and method for implementing parallel image processing

Also Published As

Publication number Publication date
US5721883A (en) 1998-02-24
EP0715264A1 (de) 1996-06-05
DE69533020D1 (de) 2004-06-17
EP0715264A4 (de) 1996-07-10
WO1995026530A1 (fr) 1995-10-05
EP0715264B1 (de) 2004-05-12
US6029001A (en) 2000-02-22

Similar Documents

Publication Publication Date Title
DE69533020T2 (de) Verfahren und apparat zur kompilierung paralleler bildverarbeitungsprogramme
DE19728726B4 (de) Robotercontroller und dessen Steuerverfahren
EP0346801B1 (de) Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem
DE69628480T2 (de) Ausnahmebehandlung in einem Datenprozessor
DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
DE60018306T2 (de) System und verfahren zum regressionstesten von druckerausgabe mit darstellungslisten
DE102004057021A1 (de) Verfahren und System zum Testen eines Computersystems durch ein Anlegen einer Last
DE112006003917T5 (de) Verfahren, Gerät und System angewendet in einem Cachespeicher-Kohärenzprotokoll
DE10255125A1 (de) Dezentralisierte Automatische Testung von Grafischen Benutzerschnittstellen(GUI) von Software
DE3842289C2 (de) Verfahren zur Entwicklung von Programmen für ein verteiltes Datenverarbeitungssystem
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE2449547A1 (de) Computer- und datenverarbeitungsanlage
DE69913323T2 (de) Verfahren zur zuteilung von ressourcen
DE2244402A1 (de) Datenverarbeitungsanlage
DE102013006396A1 (de) Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit
DE19600428C2 (de) Vorrichtung und Verfahren zum Reduzieren eines durch einen Prozeß verwendeten tatsächlichen Arbeitssatzes eines Prozesses in einem Computersystem mit virtuellem Speicher
DE3209046A1 (de) Verfahren zur steuerung von terminals
DE3538214C2 (de) Multiprozessorsystem
DE4422637A1 (de) Rechnersystem und Verfahren zum Problemlösen
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE3930807C2 (de) Drucksteuerungsverfahren und -system
DE602004001718T2 (de) Verfahren zur Echtzeitkorrektur nicht funktionierender Pixel in der digitalen Radiographie
DE10000586A1 (de) Verfahren und Vorrichtung zum Verhindern von Drucküberläufen durch das Rasterisieren komplexer Seitenstreifen unter Verwendung eines Hilfsprozessors
DE10003101A1 (de) Nebenbedingungs-Erzeugungsvorrichtung für Logiksynthese und Nebenbedingungs-Erzeugungsverfahren dafür

Legal Events

Date Code Title Description
8364 No opposition during term of opposition