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