DE102007034684A1 - Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System - Google Patents

Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System Download PDF

Info

Publication number
DE102007034684A1
DE102007034684A1 DE102007034684A DE102007034684A DE102007034684A1 DE 102007034684 A1 DE102007034684 A1 DE 102007034684A1 DE 102007034684 A DE102007034684 A DE 102007034684A DE 102007034684 A DE102007034684 A DE 102007034684A DE 102007034684 A1 DE102007034684 A1 DE 102007034684A1
Authority
DE
Germany
Prior art keywords
algo
data
processing
processing units
operations
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.)
Ceased
Application number
DE102007034684A
Other languages
English (en)
Inventor
Wieland Dr. Eckert
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE102007034684A priority Critical patent/DE102007034684A1/de
Priority to DE202007018934U priority patent/DE202007018934U1/de
Priority to US12/220,130 priority patent/US20090031119A1/en
Priority to CNA2008101686198A priority patent/CN101388052A/zh
Publication of DE102007034684A1 publication Critical patent/DE102007034684A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betrieb eines Multiprozessorsystems insbesondere im Zusammenhang mit einem medizinischen bildgebenden System. Die Erfindung bezieht sich außerdem auf eine medizinisch bildgebende Vorrichtung, die zur Durchführung dieses Verfahrens ausgebildet ist. Dabei sind beim Multiprozessorsystem mindestens zwei Verarbeitungseinheiten (PZ1, PZ2, PZ3), zumindest eine Steuereinheit (K) und zu den Verarbeitungseinheiten (PZ1, PZ2, PZ3) zuteilbare Operationen (Algo1, Algo2, Algo3) vorhanden. Durch die Verarbeitungseinheiten (PZ1, PZ2, PZ3) werden von einem Eingang zugeleitete Daten verarbeitet und an einem Ausgang zur Verfügung gestellt. Die zumindest eine Steuereinheit (K) reichert die genannten Daten mit Steuerungsdaten (A1, A2, A3) an, die eine Zuführung der Daten zu den jeweiligen Operationen (Algo1, Algo2, Algo3) zum Zwecke der Verarbeitung festlegen.

Description

  • Die Erfindung betrifft ein Verfahren zum Betrieb eines Multiprozessorsystems nach dem Oberbegriff des Patentanspruchs 1, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System. Die Erfindung bezieht sich außerdem auf eine medizinisch bildgebende Vorrichtung, die zur Durchführung dieses Verfahrens ausgebildet ist.
  • In einer typischen Röntgenanlage zur interventionellen Angiografie wird eine zeitliche Folge von Röntgenbildern erstellt. Die Verarbeitung der einzelnen Bilder erfolgt auf immer gleiche Art und Weise, wobei gewisse Forderungen an die Geschwindigkeit der Verarbeitung gestellt werden. Zur Verarbeitung eines Bildes werden Algorithmen zur Bildverbesserung verwendet. Diese Algorithmen sind in Form von Programmen realisiert, die eine Transformation der Bildinformation darstellen. Die rechenaufwändige Verarbeitung von Röntgenbildern kann typischer Weise nicht allein in einer einzelnen Recheneinheit (CPU, DSP, FPGA, ASIC etc.) gelöst werden, sondern muss in mehreren Schritten auf mehreren Recheneinheiten erfolgen. Üblicher Weise wird hierfür eine Pipeline-Architektur gewählt, bei der die gesamte Verarbeitung in einzelne, sequenzielle Schritte zerlegt wird. Die Aufteilung der Schritte kann dann auf eine Mehrzahl von Verarbeitungseinheiten erfolgen, da die Verarbeitungsschritte unabhängig voneinander sind. Dabei ist jeder Verarbeitungsschritt mit einem Parametersatz ausgestattet, der den jeweiligen Verarbeitungsschritt steuert. Beispielsweise wird für den Verarbeitungsschritt "Windowing" zur Rekonstruktion der Dynamik der Grauwerte des Parametersatzes, z. B. bestehend aus "Center, Width" benötigt. Diese Information ist dem Verarbeitungsschritt in geeigneter Weise zuzuführen.
  • Bei der weit verbreiteten Pipeline-Architektur wird das "Pipelining" von Verarbeitungsschritten auf solchen Daten durchgeführt, die in zeitlicher Abfolge verarbeitet werden müssen. Beim Daten-Pipelining werden zu diskreten Zeitpunkten die neu ankommenden Daten einer Verarbeitungseinheit ("Prozess") zugeteilt, die einen ersten Teil eines Algorithmus bzw. einer Operation ("Programm") rechnet. Nach Ablauf dieser Berechnung wird das Zwischenergebnis an eine weitere Verarbeitungseinheit weitergegeben, die dann den nächsten Schritt des Algorithmus auf die Daten anwendet. Dies wird mehrfach wiederholt, bis alle Schritte ausgeführt sind und das Endergebnis zur Verfügung steht. Die Anzahl der dabei ausgeführten Verarbeitungsschritte wird als "Tiefe" der Pipeline bezeichnet. Mit anderen Worten ausgedrückt, besteht eine Implementierung einer Pipeline-Verarbeitung darin, die zu verarbeitenden Daten als eine Art "Strom" zu betrachten, der durch die einzelnen Verarbeitungsschritte "fließt".
  • In 1 ist ein Beispiel für eine solche Implementierung einer Pipeline-Verarbeitung gezeigt. 1 zeigt eine Quelle Q sowie eine Senke S, wobei von der Quelle Q Daten zur Senke S transferiert werden. Des Weiteren ist eine Steuereinheit K, auch Kontrollinstanz genannt, gezeigt, die den Transfer der Daten von einem Prozessor, z. B. PZ1, zum nächsten, z. B. PZ2, steuert. Dargestellt sind mehrere Prozessoren PZ1 bis PZ3, die jeweils mit einem Algorithmus ALGO1, ALGO2, ALGO3 gefüllt werden. Schnittstellen nach außen sind mit IN als Eingang und OUT als Ausgang gekennzeichnet. In einzelnen Verarbeitungsschritten sind Parametersätze A1, A2, A3 durch einen von der Steuereinheit K gesteuerten separaten Mechanismus zur Verfügung gestellt. Zum Beispiel kann das so genannte "Windowing" bei laufender Pipeline-Verarbeitung beeinflusst werden, indem während der Verarbeitung ein neuer bzw. veränderter Parametersatz der Verarbeitungsstufe bereitgestellt wird. Die Parametersätze, welche als Kontrollinformation in Steuerdaten gespeichert sind, sind mit dem (Nutz-)Datenfluss zu synchronisieren. Dadurch wird erreicht, dass eine bestimmte Parameteränderung ab einem bestimmten, zum Beispiel dem n- ten Datensatz erfolgen soll. Eine solche Synchronisation in der bisherigen Pipeline-Architektur erfordert eine besondere Kenntnis über die Topologie des gesamten Verarbeitungssystems. Demnach ist die übergeordnete Steuerungseinheit zu jedem Zeitpunkt darüber informiert, welche Datensatznummer sich gerade in welcher Verarbeitungseinheit befindet. Auf diese Weise kann zum richtigen Zeitpunkt ein veränderter Parametersatz angewiesen werden. Ein weiterer Nachteil dieser Art der Implementierung besteht darin, dass ein zusätzlicher Verarbeitungsschritt nicht ohne weiteres eingefügt werden kann. Dazu benötigt die Steuereinheit eine Information über die veränderte Verarbeitungsdauer. Ähnlich schwierig erweist sich, eine Veränderung der Granularität der Verarbeitungsdaten einzubringen. Wenn beispielsweise ein Verarbeitungsschritt einen zeilenbasierten Algorithmus ausführt, der nächste Verarbeitungsschritt aber auf Daten, bestehend aus drei Zeilen, arbeitet (z. B. Implementierung eines Dreier-Kernels), dann sind neben einer Pufferung der Daten innerhalb der Pipeline eine Verzögerung in der Anwendung der Parametersätze zu berücksichtigen. Solche Schwierigkeiten werden derzeit dadurch gelöst, dass sie entweder ignoriert werden (ein veränderter Parametersatz wirkt sofort auf das nächste Datum), oder dass durch eine übergeordnete Information (zum Beispiel Frame-Number) die Anwendung ab der nächsten sinnvollen Datenstruktur (unterschiedliche Granularität z. B. pixel- oder zeilenweise) erfolgen soll.
  • Es ist nun Aufgabe der Erfindung, die oben genannten Nachteile zu überwinden.
  • Die Aufgabe wird durch die in den unabhängigen Patentansprüchen angegebenen Merkmale gelöst. Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Patentansprüchen gekennzeichnet.
  • Ein wesentlicher Aspekt der Erfindung besteht in einem Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System.
  • Bei diesem System sind mindestens zwei Verarbeitungseinheiten, zumindest eine Steuereinheit und zu den Verarbeitungseinheiten zuteilbare Operationen vorhanden. Durch die Verarbeitungseinheiten werden von einem Eingang zugeleitete Daten verarbeitet und an einem Ausgang zur Verfügung gestellt. Die zumindest eine Steuereinheit reichert die genannten Daten mit Steuerungsdaten an, die eine Zuführung der Daten zu den jeweiligen Operationen zum Zwecke der Verarbeitung festlegen.
  • Vorzugsweise werden die jeweiligen Operationen von der zumindest einen Steuereinheit zu den Verarbeitungseinheiten zugeteilt. Es kann zweckmäßig sein, die Zuführung der Daten zu den jeweiligen Operationen durch eine vorbestimmte Reihenfolge festzulegen bzw. zu steuern.
  • Eine sequenzielle bzw. parallele Verarbeitung der Daten ist möglich. So kann zumindest eine weitere Verarbeitungseinheit bzw. eine verfügbare Verarbeitungseinheit zur Verarbeitung der Daten eingesetzt werden, der zumindest eine Operation zugeteilt wird.
  • Zweckmäßiger Weise werden die vom Eingang zugeleiteten Daten Nutzdaten und Steuerungsdaten umfassen, wobei die Steuerungsdaten vorzugsweise in einem sogenannten Header angeordnet sein können.
  • Während oder nach einer Verarbeitung durch wenigstens eine einer Verarbeitungseinheit zugeteilten Operation werden die Steuerungsdaten angepasst. Dadurch kann eine erneute oder wiederholte Zuführung der Daten zu den jeweiligen Operationen festgelegt werden.
  • Vorzugsweise werden die Daten zu den jeweiligen Operationen zeitlich getaktet zugeführt und verarbeitet.
  • Als Multiprozessorsystem sind Multi-Core-Recheneinheiten oder Cluster-Rechner, Multi-DSP-Konfigurationen, Zellprozessoren, Stream-Prozessoren oder frei programmierbare Logikbausteine denkbar.
  • Eine weitere Ausführungsform der Erfindung besteht darin, dass die Verarbeitungseinheiten, denen Operationen zugeteilt sind, die Daten über zumindest eine gemeinsame Speichereinheit austauschen.
  • Auch ist es vorstellbar, dass die Daten neben bzw. anstatt über eine gemeinsame Speichereinheit über mindestens ein gemeinsames Verbindungsnetzwerk ausgetauscht werden.
  • Die Verbindungen zwischen den Verarbeitungseinheiten können durch das mindestens eine Verbindungsnetzwerk statisch oder dynamisch geschaltet werden.
  • Auch kann der Datenaustausch über das mindestens eine Verbindungsnetzwerk in Form von Datenpaketen stattfinden.
  • Die Zuführung der Daten kann ereignisgesteuert oder taktgesteuert durchgeführt werden.
  • Auch kann ein Bearbeitungspool, auch "worker pools" genannt, verwendet werden. Dabei steuert ein so-genannter Scheduler die Zuführung der Daten an eine der Verarbeitungseinheiten.
  • Ein weiterer Aspekt der Erfindung liegt in einer medizinischen bildgebenden Vorrichtung, die zur Durchführung des erfindungsgemäßen Verfahrens und dessen Ausführungsformen ausgebildet ist. Durch eine Vorrichtung kann zweckmäßiger Weise ein Verbindungsnetzwerk zwischen den Verarbeitungseinheiten aufweisen, bei dem die Verbindungen statisch und/oder dynamisch geschaltet werden können.
  • Die Erfindung weist folgende Vorteile auf:
    Durch die Anreicherung der Nutzdaten durch vollständige Steuerdaten werden folgende Vorteile erreicht:
    • – eine einfache Synchronisation der Steuerdaten mit den Nutzdaten an jeder Stelle der Verarbeitungs-Pipeline,
    • – eine mögliche Erweiterung des Verarbeitungssystems mit zusätzlichen Verarbeitungsschritten, auch in der Pipeline-Verarbeitung,
    • – Möglichkeit des Aufbaus einer nicht-linearen Topologie (Verarbeitungsnetz, Splitting, und nochmalige Kombination),
    • – eine Berechnung in "Verarbeitungszellen" ist nicht mehr auf genau einen Verarbeitungsschritt spezialisiert,
    • – eine mögliche flexiblere Einteilung der Verarbeitungszeiten gegenüber dem herkömmlich streng getakteten Verarbeitungsmodell,
    • – Ermöglichung einer Implementierung von Algorithmen, die durch Konvergenzkriterien gesteuert werden (d. h. Steuerung durch Konvergenz- und Rechenzeit, die Anzahl der Schleifendurchläufe steht nicht von Beginn an fest),
    • – Möglichkeit der Nutzung nicht spezialisierter Verarbeitungseinheiten,
    • – modulare Erweiterbarkeit, wenn höhere Datenraten erforderlich werden. Das heißt, unter Beibehaltung der Latenzzeit werden zusätzliche Verarbeitungseinheiten eingesetzt.
    • – Möglichkeit der Nutzung von spezialisierten sowie universellen Verarbeitungsquellen,
    • – flexible physikalische Topologie vorzugsweise sternförmig, wobei die logische (bevorzugt lineare) Topologie konfigurierbar ist.
  • Im Folgenden wird die Erfindung durch die Beschreibung eines oder mehrere Ausführungsbeispiele unter Bezugnahme auf die Zeichnung näher erläutert. Darin zeigen:
  • 1 die eingangs erwähnte typische Pipeline-Architektur gemäß des Standes der Technik,
  • 2 exemplarisch die erfindungsgemäße Anreicherung des Nutzdatenstroms durch Steuerungsdaten,
  • 3 eine erfindungsgemäße Ausführungsform der Datenverarbeitung mit einem gemeinsamen Speicher, und
  • 4 eine erfindungsgemäße Ausführungsform der Datenverarbeitung mittels eines Verbindungsnetzwerkes.
  • In 2, 3 und 4 werden weitgehend dieselben Komponenten mit den entsprechenden Bezugszeichen wie in 1 verwendet.
  • 2 zeigt eine Pipeline-Architektur gemäß der Erfindung, wobei die Parametersätze P als Steuerungsdaten z. B. A1, A2 bzw. A3 zu den Nutzdaten hinzugefügt werden und mit dem Datenstrom von einer Verarbeitungseinheit PZ1 bzw. PZ2 (Prozessor) zur nächsten Verarbeitungseinheit PZ2 bzw. PZ3 "durchgereicht" werden. In den Figuren lediglich durch einen separaten Pfeil neben dem Datenstrompfeil angedeutet, werden die Steuerungsdaten A1, A2, A3 nach jedem Verarbeitungsschritt z. B. Algo 1, Algo 2, Algo 3 angepasst und in die den nächsten Verarbeitungsschritt übergeführt.
  • Wie vorstehend erwähnt, werden in den Datenstrukturen zur Pipeline-Verarbeitung nicht nur die notwendigen Eingangsdaten bzw. Nutzdaten (Pixel, Grauwerte) repräsentiert, sondern auch in einem separaten und zusätzlichen Strukturelement die Parametersätze für die nachfolgenden Verarbeitungsstufen der Pipeline eingetragen. Dadurch werden die Eingangsdaten durch die Steuerungseinheit mit den Anweisungen zur weiteren Verarbeitung an einer gesonderten Stelle (z. B. im sogenannten Header) angereichert und die nachfolgenden Verarbeitungsstufen können ohne weitere Verbindung zur Steuereinheit unabhängig ihre jeweiligen Verarbeitungsschritte durchführen. Die gesamte Verarbeitung erfolgt vollständig datengetrieben und daher gewissermaßen asynchron. Mit anderen Worten ausgedrückt, in jeder Verarbeitungsstufe werden als Eingangsdatensatz nicht nur die eigentlichen Nutzdaten sondern zusätzlich die Steuerungsdaten empfangen. Aus den Steuerungsdaten kann die Verar beitungsstufe den für diesen Schritt notwendigen Parametersatz extrahieren und entsprechend des Algorithmus auf die Eingangsdaten bzw. Nutzdaten anwenden und dadurch die Ausgangsdaten erstellen. Die weitere Verarbeitung erfolgt dann wie bereits beschrieben.
  • Der Vorteil dieses Verfahrens besteht darin, dass die aufwendige und fehlerträchtige Synchronisation der Steuerungseinheit mit den einzelnen Verarbeitungsstufen vollständig entfällt. Die Parametersätze sind zu jedem Zeitpunkt direkt mit den Nutzdaten verknüpft und für den jeweiligen Verarbeitungsschritt verfügbar.
  • Ein weiterer Vorteil liegt darin, dass von einer strikten Pipelinearchitektur zu einer "Zellen-Architektur" verallgemeinert werden kann. Bei der Pipeline-Architektur wird von jeder Verarbeitungseinheit genau ein Algorithmus auf die Daten angewendet, die Verarbeitungsstufen sind auf diesen Algorithmus spezialisiert und arbeiten in einem festen vorgegebenen Takt. In der nun möglichen Zellenarchitektur kann eine Verarbeitungszelle z. B. aufgrund von Kriterien der erlaubten Verarbeitungszeitdauer entscheiden, mehrere Schritte, auch von verschiedenen Algorithmen, durchzuführen. Auf diese Art werden z. B. iterative Algorithmen einfacher zu realisieren sein.
  • Wenn ein Datensatz eine kürzere Verarbeitungszeit erlaubt, weil z. B. Konvergenzbedingungen sehr schnell erfüllt sind, kann dieser Verarbeitungsschritt auch schneller abgeschlossen werden. Wenn wiederum derselbe Datensatz eine etwas längere Verarbeitung in der nächsten Verarbeitungsstufe benötigt, kann die nächste Verarbeitungsstufe nun auch mehr Rechenzeit in Anspruch nehmen. Insgesamt ergibt sich anstatt des bisher vorherrschenden strikt getakteten Verarbeitungsschemas ein asynchrones Verarbeitungsmodell.
  • Insbesondere die Parametrierung dieser nun variabel lange andauernden Verarbeitungsschritte ist mit dem erfindungsgemäßen Ansatz einfach durchführbar. Die Zellen-basierte Verarbeitung erlaubt also eine größere Menge von Algorithmen zu implementieren als dies bei einer getakteten Pipeline-Verarbeitung möglich wäre. Dabei können mehr Algorithmen als Prozessoren vorhanden sein, wobei einem Prozessor mehrere Algorithmen zugeteilt sein können.
  • Im Sinne einer vereinfachten Implementierung wird weiterhin eine logische Verarbeitungskette betrachtet, wobei auch andere Topologien (z. B. Verzweigungen, Vereinigungen etc.) denkbar sind.
  • Aufgrund der kombinierten Struktur von Nutzdaten- und Steuerungsdaten kann auch eine an ein "Blackboard"-Modell angelehnte Verarbeitungsmethode mit mindestens einem gemeinsamen Speicher SP – wie sie in 3 dargestellt ist – verwendet werden. Dabei werden die Daten in einem gemeinsamen Speicher SP "veröffentlicht". Eine freie Verarbeitungseinheit z. B. PZ1 reagiert nun auf solche offenen Arbeitsaufträge, indem sie die Daten aufnimmt, den nächsten Verarbeitungsschritt anhand der beigefügten Steuerungsdaten auf die Nutzdaten anwendet, und das resultierende Ergebnis mit dem zusätzlichen Vermerk des jetzt durchgeführten Verarbeitungsschrittes versehen wieder auf dem gemeinsamen Speicher hinterlegt. Dieses Vorgehen kann ereignisgesteuert umgesetzt werden. Auch kann es durch einen Bearbeitungspool, auch "worker pools" genannt, realisiert werden. Dabei steuert ein so-genannter Scheduler die Zuteilung des Arbeitsauftrags an eine der Verarbeitungseinheiten.
  • Ein wesentlicher Vorteil diesen Modells liegt darin, dass Algorithmus und Prozessor (bzw. Verarbeitungseinheit) nun voneinander entkoppelt sind. Demnach ist nicht nur eine sequentielle Verarbeitung, sondern auch eine parallele Verarbeitung möglich. Es können verfügbare Prozessoren bzw. weitere Prozessoren als Erweiterung bei der Verarbeitung der Daten berücksichtigt werden, indem die Algorithmen je nach Art des Prozessors (Kapazität, Fähigkeiten) den verschiedenen Prozessoren (z. B. DSP, Cell-, Multi-Core, Cluster-Prozessoren, Stream-Prozessoren bzw. FPGA) zugeteilt werden. Bei Betrachtung der 4 kann die schematische Darstellung beispielsweise durch einen auf den Prozessor PZ3 folgenden Prozessor z. B. PZ4 mit einem Algorithmus Algo 4 als Erweiterung gedanklich ergänzt werden.
  • Ein weiteres Verarbeitungsmodell kann dadurch realisiert werden, dass die Daten neben oder anstatt in einem gemeinsamen Speicher abgelegt zu werden, – wie in 4 gezeigt – durch ein gemeinsames Verbindungsnetzwerk VN transportiert werden. Dies kann als eine Ausführungsform des gemeinsamen Speichers ("Blackboard"-Modell) angesehen werden, bei dem nur jeweils paarweise gemeinsam genutzte Aus- und Eingangsdaten modelliert werden. Indem die dynamische Rekonfigurierbarkeit eines hierarchischen "packet switched network" genutzt wird, kann fast die gleiche Flexibilität erreicht werden wie durch das oben genannte "Blackboard"-Modell. Die Vermittlung an eine Verarbeitungseinheit kann durch Versendung von sogenannten Multicast-Paketen realisiert werden. Meist wird die gewünschte Topologie (häufig: linear) vorab definiert und durch das Netzwerk verschaltet.

Claims (18)

  1. Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System, bei dem mindestens zwei Verarbeitungseinheiten (PZ1, PZ2, PZ3), zumindest eine Steuereinheit (K) und zu den Verarbeitungseinheiten (PZ1, PZ2, PZ3) zuteilbare Operationen (Algo 1, Algo 2, Algo 3) vorhanden sind, wobei durch die Verarbeitungseinheiten (PZ1, PZ2, PZ3) von einem Eingang (IN) zugeleitete Daten verarbeitet und an einem Ausgang (OUT) zur Verfügung gestellt werden, dadurch gekennzeichnet, dass die zumindest eine Steuereinheit (K) die genannten Daten mit Steuerungsdaten (A1, A2, A3) anreichert, die eine Zuführung der Daten zu den jeweiligen Operationen (Algo 1, Algo 2, Algo 3) zum Zwecke der Verarbeitung festlegen.
  2. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die Zuführung der Daten zu den jeweiligen Operationen (Algo 1, Algo 2, Algo 3) durch eine vorbestimme Reihenfolge festgelegt wird.
  3. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die jeweiligen Operationen (Algo 1, Algo 2, Algo 3) von der zumindest einen Steuereinheit (K) zu den Verarbeitungseinheiten (PZ1, PZ2, PZ3) zugeteilt werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Zuführung der Daten zu den jeweiligen Operationen (Algo 1, Algo 2, Algo 3) eine sequentielle und/oder eine parallele Verarbeitung der Daten ermöglicht.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Verarbeitung der Daten zumindest eine weitere Verarbeitungseinheit dynamisch hinzugefügt wird, der zumindest eine Operation zuteilbar ist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die vom Eingang zugeleiteten Daten Nutzdaten umfassen, die mit den genannten Steuerungsdaten (A1, A2, A3) angereichert werden.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Steuerungsdaten (A1, A2, A3) während oder nach einer Verarbeitung durch wenigstens eine einer Verarbeitungseinheit zugeteilten Operation (Algo 1, Algo 2, Algo 3) derart angepasst werden, dass diese eine erneute oder wiederholte Zuführung der Daten zu den jeweiligen Operationen (Algo 1, Algo 2, Algo 3) festlegen.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Daten zu den jeweiligen Operationen (Algo 1, Algo 2, Algo 3) zeitlich getaktet zugeführt und verarbeitet werden.
  9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Multiprozessorsystem mit Multi-Core Recheneinheiten oder Cluster-Rechnern, mit Multi-DSP Konfigurationen, mit Cell-Prozessoren, mit Stream-Prozessoren oder mit Freiprogrammierbaren Logikbausteinen betrieben wird.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Operationen (Algo 1, Algo 2, Algo 3) zugeteilten Verarbeitungseinheiten (PZ1, PZ2, PZ3) die Daten über zumindest eine gemeinsame Speichereinheit (SP) austauschen.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Operationen (Algo 1, Algo 2, Algo 3) zugeteilten Verarbeitungeinheiten (PZ1, PZ2, PZ3) die Daten über mindestens ein gemeinsames Verbindungsnetzwerk (VN) austauschen.
  12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zwischen den Verarbeitungseinheiten (PZ1, PZ2, PZ3) statische Verbindungen durch das mindestens eine Verbindungsnetzwerk (VN) geschaltet werden.
  13. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass zwischen den Verarbeitungseinheiten (PZ1, PZ2, PZ3) Verbindungen durch das mindestens eine Verbindungsnetzwerk (VN) dynamisch geschaltet werden.
  14. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Daten über das mindestens eine Verbindungsnetzwerk (VN) in Form von Datenpaketen ausgetauscht werden können.
  15. Verfahren nach einem der vorhergehenden Ansprüche 10 bis 14, dadurch gekennzeichnet, dass die Zuführung der Daten ereignis-gesteuert durchgeführt wird.
  16. Verfahren nach einem der vorhergehenden Ansprüche 10 bis 14, dadurch gekennzeichnet, dass die Zuführung der Daten an die Verarbeitungseinheiten, die zu einem so-genannten Bearbeitungspools gehören, von einen so-genannten Scheduler durchgeführt wird.
  17. Medizinische bildgebende Vorrichtung, ausgebildet zur Durchführung eines Verfahrens nach wenigstens einem der vorhergehenden Ansprüche.
  18. Vorrichtung nach Anspruch 17, dadurch gekennzeichnet, dass die Vorrichtung ein Verbindungsnetzwerk zwischen den Verarbeitungseinheiten aufweist, bei dem Verbindungen statisch oder dynamisch schaltbar sind.
DE102007034684A 2007-07-25 2007-07-25 Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System Ceased DE102007034684A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102007034684A DE102007034684A1 (de) 2007-07-25 2007-07-25 Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System
DE202007018934U DE202007018934U1 (de) 2007-07-25 2007-07-25 Medizinische Bildgebende Vorrichtung zum Betrieb eines Multiprozessorsystems
US12/220,130 US20090031119A1 (en) 2007-07-25 2008-07-22 Method for the operation of a multiprocessor system in conjunction with a medical imaging system
CNA2008101686198A CN101388052A (zh) 2007-07-25 2008-07-25 用于与医学成像系统相关的操作多处理器系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007034684A DE102007034684A1 (de) 2007-07-25 2007-07-25 Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System

Publications (1)

Publication Number Publication Date
DE102007034684A1 true DE102007034684A1 (de) 2009-01-29

Family

ID=40157182

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102007034684A Ceased DE102007034684A1 (de) 2007-07-25 2007-07-25 Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System
DE202007018934U Expired - Lifetime DE202007018934U1 (de) 2007-07-25 2007-07-25 Medizinische Bildgebende Vorrichtung zum Betrieb eines Multiprozessorsystems

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202007018934U Expired - Lifetime DE202007018934U1 (de) 2007-07-25 2007-07-25 Medizinische Bildgebende Vorrichtung zum Betrieb eines Multiprozessorsystems

Country Status (3)

Country Link
US (1) US20090031119A1 (de)
CN (1) CN101388052A (de)
DE (2) DE102007034684A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7700469B2 (en) 2008-02-26 2010-04-20 Micron Technology, Inc. Methods of forming semiconductor constructions
GB2553597A (en) * 2016-09-07 2018-03-14 Cisco Tech Inc Multimedia processing in IP networks
DE102017217908A1 (de) * 2017-10-09 2019-04-11 Robert Bosch Gmbh Recheneinheit und Betriebsverfahren hierfür
CN108874548B (zh) * 2018-07-11 2021-04-02 深圳市东微智能科技股份有限公司 数据处理调度方法、装置、计算机设备和数据处理系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59132070A (ja) * 1983-01-18 1984-07-30 Mitsubishi Electric Corp アレイ演算用デ−タ処理装置
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
US6118452A (en) * 1997-08-05 2000-09-12 Hewlett-Packard Company Fragment visibility pretest system and methodology for improved performance of a graphics system
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6092174A (en) * 1998-06-01 2000-07-18 Context, Inc. Dynamically reconfigurable distributed integrated circuit processor and method
US7167148B2 (en) * 2003-08-25 2007-01-23 Texas Instruments Incorporated Data processing methods and apparatus in digital display systems

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Manolescu,D.-A.: A Data Flow Pattern Language. In: The 4th Pattern languages of programming conferen ce (PLoP '97); Washington University Technical Rep ort 97-34. <http://st-www.cs. uiuc.edu/users/han m er/PLoP-97/Workshops.html> (recherchiert am 09.04. 08)
Manolescu,D.-A.: A Data Flow Pattern Language. In: The 4th Pattern languages of programming conference (PLoP '97); *
Washington University Technical Report 97-34. http://st-www.cs.uiuc.edu/users/hanmer/PLoP-97/Workshops.html (recherchiert am 09.04.08); *

Also Published As

Publication number Publication date
DE202007018934U1 (de) 2010-01-07
CN101388052A (zh) 2009-03-18
US20090031119A1 (en) 2009-01-29

Similar Documents

Publication Publication Date Title
EP1116128B1 (de) Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks
DE4309314C2 (de) Feldzusammenstellungseinrichtung zum Vereinigen von Daten
DE2853239C2 (de)
DE1900141C3 (de) HilfsSteuerwerk für eine Datenverarbeitungsanlage
DE2712224A1 (de) Datenverarbeitungsanlage
DE2015971A1 (de) Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden
DE2758830A1 (de) Rechenvorrichtung
DE2321112A1 (de) Elektrische signalverarbeitungsanlage
DE102005005073B4 (de) Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen
DE3507584C2 (de)
DE102007034684A1 (de) Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System
WO2007033812A1 (de) Programmierung und layoutdesign von hardware
DE2944757A1 (de) Prozessrechner
DE102011107646A1 (de) Verfahren und System zur dynamischen Verteilung von Programmfunktionen in verteilten Steuerungssystemen
DE3307194C2 (de)
DE60221515T2 (de) Speichersystem für schleifenbeschleunigung nach wunsch
DE2245284A1 (de) Datenverarbeitungsanlage
DE1574877B1 (de) Verfahren und Einrichtung zur Kopplung von datenverarbeitenden Anlagen
EP0265555A1 (de) Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen
DE2459476C3 (de)
EP2963541A1 (de) Implementierung einer Konstanten in FPGA-Code
DE2024584B2 (de) Steuereinrichtung für eine allgemeine Datenverarbeitungseinrichtung
DE102006028939B4 (de) Programm-Pipelining-Verfahren zum Verarbeiten von Streaming-Daten in medizinischen Bildverarbeitungssystemen
DE1916377B2 (de) Verfahren und Anordnung zur Verschiebung von Datenfeldern
DE102017126094A1 (de) Verfahren zum Auslesen von Variablen aus einem FPGA

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8120 Willingness to grant licences paragraph 23
8131 Rejection