DE102004001680B4 - Dynamische Steuerung von Rechnerressourcen bei der Pipelineverarbeitung von Daten unter Verwendung von Anytime Algorithmen - Google Patents

Dynamische Steuerung von Rechnerressourcen bei der Pipelineverarbeitung von Daten unter Verwendung von Anytime Algorithmen Download PDF

Info

Publication number
DE102004001680B4
DE102004001680B4 DE102004001680A DE102004001680A DE102004001680B4 DE 102004001680 B4 DE102004001680 B4 DE 102004001680B4 DE 102004001680 A DE102004001680 A DE 102004001680A DE 102004001680 A DE102004001680 A DE 102004001680A DE 102004001680 B4 DE102004001680 B4 DE 102004001680B4
Authority
DE
Germany
Prior art keywords
processing
pipeline
runtime
time
data
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 - Fee Related
Application number
DE102004001680A
Other languages
English (en)
Other versions
DE102004001680A1 (de
Inventor
Jörg Illmann
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 Healthcare GmbH
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 DE102004001680A priority Critical patent/DE102004001680B4/de
Priority to US11/033,506 priority patent/US8161486B2/en
Publication of DE102004001680A1 publication Critical patent/DE102004001680A1/de
Application granted granted Critical
Publication of DE102004001680B4 publication Critical patent/DE102004001680B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)

Abstract

Die Erfindung betrifft eine dynamische Steuerung von Rechnerressourcen bei der Verarbeitung von Prozessdaten (10) in einer Pipeline (12). Die Pipeline (12) umfaßt eine Vielzahl von Pipeline-Prozessoren (Pi), die jeweils nach einem Anytime Ansatz arbeiten, und ein Ergebnis zu einem einstellbaren Zeitpunkt generieren können. Durch Erfassung des Laufzeitverhaltens der beteiligten Pipeline-Prozessoren (Pi) über einen IST-Wert kann unmittelbar und zur Laufzeit Einfluss auf die Ressourcenverteilung genommen werden, ohne dass die Verarbeitung der Prozessdaten (10) unterbrochen werden muss.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zur dynamischen Steuerung, vorzugsweise zum dynamischen Zuweisen, von Rechnerressourcen auf eine Vielzahl von Pipeline-Prozessoren einer Pipeline bei der Verarbeitung von Prozessdaten unter veränderlichen Laufzeitbedingungen.
  • Bei der Verarbeitung von Daten auf dem medizinischen Gebiet sind die Rahmenbedingungen häufig sehr unterschiedlich: Zum einen gibt es Anwendungen, die ein sehr schnelles Verarbeiten der Daten erfordern, wie z. B. bei der Prozessdatenverarbeitung im Umfeld einer chirurgischen Operation, beispielsweise bei computergesteuerten minimal invasiven Eingriffen. Zum anderen existieren anderen Anwendungen, bei denen verstärkt auf eine möglichst umfassende Datenerfassung geachtet werden muss und bei denen die Verarbeitungszeit von geringerer Bedeutung ist, wie z. B. bei einer Analyse von bereits erfassten Daten eines Patienten im Zusammenhang mit dem Aufstellen eines Behandlungsplanes.
  • Daraus ergibt sich, dass je nach Anwendung und Einsatzzweck in ganz unterschiedlicher Weise auf die zur Verfügung stehenden Rechnerressourcen zugegriffen wird.
  • Aus den oben beispielhaft skizzierten Anwendungsfällen ergibt sich, dass die Verarbeitungsprozesse teilweise über einen relativ langen Zeitraum aktiv sind. Dies kann dazu führen, dass die aktuell zur Verfügung stehenden Rechnerressourcen über die Dauer der Verarbeitung schwanken.
  • Bei bisherigen Systemen aus dem Stand der Technik konnten diese Schwankungen der Laufzeitbedingungen und/oder der Rechnerressourcen nicht berücksichtigt werden. Es wurde von festen, d. h. zu einem Zeitpunkt erfassten Laufzeitparametern ausgegangen. Von daher erwiesen sich vielfach Anwendungen als defizitär, wenn während der Laufzeit Änderungen hinsichtlich der Systemkomponenten auftreten, z. B. dass für einen Verarbeitungsprozess nicht genügend Rechenkapazität zur Verfügung steht oder dass ein Verarbeitungsergebnis in ungenügender Qualität generiert wird (beispielsweise ein Bild, das mit einer viel zu geringen Auflösung dargestellt wird und von daher nicht brauchbar ist).
  • Bisherige Lösungen basierten auf einem monolithischen Verarbeitungskonzept, das weder eine Modularisierung der Verarbeitungsprozesse noch eine Flexibilität gegenüber variablen Systemparametern zuließ.
  • So zeigt der Fakultätsbericht „Globale dynamische Lastbalancierung in datenintensiven Anwendungen”, W. Becker, Bericht Nr. 1993/1, August 1998, dass es bekannt ist, einer Applikation zugeordnete Algorithmen auf unterschiedliche Prozesse derart aufzuteilen, dass die Verarbeitungszeit optimiert werden kann.
  • Aus der Konferenzveröffentlichung „Using Uncertainty within Computation”, D. Bernstein et al., AAAI 2001, Fall Symposium, Nov. 2001, ist es weiterhin bekannt, eine untere und obere Grenze als Optimierungsproblem für eine besondere Art von Any-Time-Algorithmen, den Contract-Algorithmen, bereitzustellen. Im Gegensatz zu einem sequentiellen Pipeline-Ansatz basiert dieses Modell auf einem Parallelverarbeitungsansatz.
  • Ebenfalls ist es aus dem Aufsatz „Decision-Theoretic Control of Inference for Time-Critical Applications”, Dean, T., Technical Report No. CS-89-44, Brown University, Dep. of Computer Science, Rhode Island 02912, 1990 bekannt, zeitkritische Applikationen nach entscheidungstheoretischen Kriterien zu optimieren.
  • Weiterhin kann der Fachmann dem Aufsatz „Monitoring and control of anytime algorithms: A dynamic programming approach”, E. A. Hansen, S. Zilberstein, Artificial Intelligence, Vol. 126, Issue 1–2, pp. 139–157, 2001, Elsevier Science Publishers Ltd. einen dynamischen Ansatz zur Steuerung von Anytime-Algorithmen entnehmen, bei dem Parameter zur Laufzeit überwacht werden.
  • Besonders einige Echtzeitsysteme auf dem Gebiet der Medizintechnik erfordern jedoch die garantierte Einhaltung von vorgegebenen Zeitbedingungen. So ist es für diese Systeme charakteristisch, dass z. B. innerhalb eines vordefinierten Zeitfensters ein Verarbeitungsprozess fertiggestellt, Messdaten erfasst bzw. verarbeitet oder bestimmte Tasks angestoßen sein müssen.
  • In Bezug auf die medizinische Datenverarbeitung von Bilddaten können die aktuellen Anforderungen an den Verarbeitungsprozess insgesamt jedoch sehr unterschiedlich sein. Sollen z. B. Bilder im Rahmen einer Befundanalyse verarbeitet werden, so ist ein maximaler Genauigkeitsgrad der Bilder entscheidend. Wie lange der Verarbeitungsprozess zur Darstellung der Bilder dauert ist in diesem Fall von nachrangiger Bedeutung. Im Gegensatz dazu muss aber z. B. die Datenabfrage von Bildern im Rahmen eines operativen Eingriffs mit einem minimalen Zeitaufwand erfolgen. Hier steht also die Einhaltung der zeitlichen Rahmenbedingungen im Vordergrund. Ein System, das für verschiedene Anwendungen ausgelegt und anwendbar ist (wie z. B. ein System zur Verarbeitung von medizinischen Bilddaten), sollte deshalb auf sich zur Laufzeit des Prozesses ändernde Systembedingungen und auch auf sonstige Bedingungen flexibel reagieren können.
  • Vergegenwärtigt man sich nun weiterhin, dass eine Vielzahl von Prozessen zeitgleich ablaufen, so wird deutlich, dass die System- oder Rechnerressourcen über die Zeit sehr starken Schwankungen unterliegen.
  • Systeme, die auf einmal erfassten Rechnerressourcen basieren und nicht flexibel auf Schwankungen hinsichtlich der Rechnerressourcen eingehen können, sind zum einen fehleranfällig und zum anderen ermöglichen sie es nicht, die Systemressourcen für den aktuellen Prozess optimal auszunutzen. Sollen z. B. Bildverarbeitungsergebnisse angezeigt werden, während sich die verfügbaren Ressourcen zur Laufzeit des Prozesses ändern, so wäre es wünschenswert, den aktiven Verarbeitungsprozess dynamisch an die veränderten, aktuell verfügbaren Ressourcen anzupassen, ohne den Verarbeitungsprozess unterbrechen zu müssen.
  • Bekannt sind Pipeline Konzepte für die Verarbeitung von Prozessdaten. Das Pipeline Konzept basiert auf einer sequentiellen Verarbeitung durch eine Vielzahl von hintereinander geschalteten Pipeline Elementen oder Pipeline-Prozessoren. Um dies zu ermöglichen, muss der Verarbeitungsprozess so strukturiert werden, dass er in kompakte, kleinere Module zerlegt werden kann. Diesen Verarbeitungsmodulen werden dann einzelne Pipeline-Prozessoren zugeordnet. Damit entsteht der Vorteil, dass diese einzelnen Module leichter erstellt, validiert und an neue Anforderungen angepasst werden können, als wenn man einen monolithischen Gesamtblock hätte.
  • Mit dem Pipeline Konzept ist weiterhin der Vorteil verbunden, dass eine bessere Lastverteilung des Gesamtsystems erzielt werden kann.
  • Auch ist es durch die Modularität des Systems möglich, sehr flexibel einzelne Module auf andere Art oder mit anderen Modulen zu kombinieren. Damit kann das Gesamtsystem geändert werden, ohne dass die Module an sich neu erstellt werden müssen.
  • Aus einem anderen Umfeld sind sogenannte Anytime Algorithmen bekannt. Anytime Algorithmen wurden für Echtzeitsysteme entwickelt und sind bisher für Systeme auf dem Gebiet der Künstlichen Intelligenz und der Robotik eingesetzt worden und basieren auf dem Ansatz, dass ein Verarbeitungsergebnis zu jedem vordefinierbaren Zeitpunkt generiert werden kann. Je nach Umfang des Zeitintervalls, das für den Verarbeitungsprozess zur Verfügung steht, wird das Ergebnis in unterschiedlichen Qualitäts- oder Gütestufen generiert: Ist das Zeitintervall kurz, so ist die Gütestufe für das Verarbeitungsergebnis geringer; ist das Zeitintervall lang, so ist die Gütestufe für das Verarbeitungsergebnis höher. Mit dem Anytime Ansatz wird es möglich, die Güte bzw. Qualität des Verarbeitungsergebnisses der Verarbeitungszeit gegenüberzustellen und diese beiden Faktoren gegeneinander abzuwägen. Bei Anytime Systemen kann die Verarbeitungszeit sozusagen vom Anwender bestimmt bzw. gewählt werden. Das Anytime Konzept erfordert eine teilweise redundante Verarbeitung von Daten und ist insofern mit dem Ansatz der Parallelverarbeitung verwandt.
  • Im Unterschied dazu basiert die Pipelineverarbeitung auf einem rein sequentiellen Ansatz.
  • Die Erfindung basiert auf einer Kombination des Pipeline- und des Anytime-Ansatzes.
  • Ausgehend vom eingangs erwähnten Stand der Technik hat sich die vorliegende Erfindung deshalb zur Aufgabe gesetzt, einen Weg aufzuzeigen, mit dem die Rechnerressourcen zur Laufzeit dynamisch den Verarbeitungs-Prozessoren zugewiesen werden können, ohne dass der Verarbeitungsprozess unterbrochen werden muss.
  • Die Aufgabe wird durch ein Verfahren nach beiliegendem Patentanspruch 1 und durch eine Vorrichtung nach beiliegendem Patentanspruch 10 gelöst.
  • Gemäß einem Aspekt dient das Verfahren zur dynamischen Steuerung von allgemeinen Systemressourcen in Bezug auf mehrere Prozessoren, die vorzugsweise in einer Pipeline angeordnet sein können, bei der Verarbeitung von Prozessdaten unter veränderlichen Laufzeitbedingungen. Das Verfahren sieht weiterhin vor, dass:
    • – ein SOLL-Wert für eine gesamte Verarbeitungszeit erfasst wird
    • – ein Monitoring zur Laufzeit erfolgt, das einen IST-Wert für die Verarbeitungszeit jeweils eines einzelnen Prozessors erfasst,
    • – ein Logging von Meta-Daten bezüglich der Verarbeitung des jeweiligen Prozessors zur Laufzeit erfolgt,
    • – ein Anytime-Algorithmus angewendet wird, der jeweils einem Prozessor zugeordnet ist und der ein Ergebnis der Verarbeitung des jeweiligen Prozessors zu einem beliebig wählbaren Zeitpunkt, insbesondere vom Anwender wählbaren Zeitpunkt, generiert, und dass
    • – ein Control Mechanismus angewendet wird, der zur dynamischen Steuerung der Rechnerressourcen in Hinblick auf die Prozessoren in Abhängigkeit von dem IST-Wert bestimmt ist, wobei Daten, zumindest umfassend Prozessdaten (10) und Meta-Daten (18), von einem i-ten Pipeline-Prozessor (Pi) zu einem nachfolgenden, i + 1-ten Pipeline-Prozessor (Pi + 1) weitergeleitet werden.
  • Vorzugsweise sind die Prozessoren als Pipeline-Prozessoren ausgebildet, also in einer Pipeline angeordnet. Es ist jedoch auch denkbar, dass die Prozessoren zwar ebenfalls modular agieren aber nach einer anderen Struktur funktional miteinander interagieren.
  • Vorzugsweise umfasst die Aufgabenlösung einen weiteren Schritt, nämlich das Erfassen eines SOLL-Wertes für eine gesamte Verarbeitungszeit. Dieser SOLL-Wert kann vom Anwender eingegeben werden oder kann automatisch aus anderen Systemeigenschaften ermittelt werden. Ist dieser SOLL-Wert erfasst, wird dieser auch bei dem Control Mechanismus berücksichtigt, als dass dieser die Steuerung insbesondere das Zuweisen von Rechnerressourcen auf die Prozessoren in Abhängigkeit von dem IST- und dem SOLL-Wert vornimmt.
  • Eine weitere Aufgabenlösung liegt in einer Vorrichtung nach Anspruch 10.
  • In der bevorzugten Ausführungsform der Erfindung ist der Control Mechanismus zur Laufzeit aktiviert. Es ist jedoch auch möglich, dass der Control Mechanismus bereits im Vorfeld oder in weiteren zeitlich ggf. nachgelagerten Zeitabschnitten aktiv ist. Der Control Mechanismus ist derart ausgelegt, dass er auch unter variablen Laufzeitbedingungen die aktuell verfügbaren Rechnerressourcen steuert. Insbesondere ist er zur Zuweisung der verfügbaren Ressourcen auf die Pipeline-Prozessoren bestimmt. Damit wird der Vorteil erzielt, dass die Verarbeitungsressourcen für den jeweiligen Verarbeitungsprozess während des Ablaufs und damit mit maximaler Aktualität geplant werden können. Damit ist es möglich, auf spezifische Anforderungen, die indirekt Systemparameter betreffen, einzugehen und ein optimales Verarbeitungsergebnis zu erzielen.
  • Das Verfahren ist in der bevorzugten Ausführungsform so ausgelegt, dass das Monitoring kontinuierlich und/oder in vorbestimmbaren Zeitintervallen erfolgt. Damit kann der Anwender den Grad der gewünschten Aktualität und Flexibilität wählen.
  • Vorteilhafterweise greift der Control Mechanismus auf einen Execution-Time-Scheduler zu, der die Rechnerressourcen zur Laufzeit und ohne eine Unterbrechung der Verarbeitung der Prozessdaten dynamisch den Pipeline-Prozessoren derart zuweist, dass der SOLL-Wert für die gesamte Verarbeitungszeit eingehalten wird. Es ist jedoch auch möglich, dass der Control Mechanismus selbst so ausgelegt ist, dass der die Rechnerressourcen zur Laufzeit dynamisch den Pipeline-Prozessoren zuweist unter Berücksichtigung von IST- und SOLL-Wert. Dabei soll der IST-Wert dem SOLL-Wert angeglichen werden.
  • Die Meta-Daten umfassen zumindest Information über die Verarbeitungszeit (Timing Information) des jeweiligen Pipeline-Prozessors. Hier können aber noch weitere Verarbeitungsdaten in Bezug auf den jeweiligen Prozessor, wie z. B. Qualitätsstufe des Verarbeitungsergebnisses, Prozessorleistung, freier Speicherplatz etc. abgelegt sein. Diese Meta-Daten werden neben den Prozessdaten von Pipeline-Prozessor zu Pipeline-Prozessor weiter gereicht. Damit ist ein Pipeline-Prozessor immer über den exakt aktuellen Verarbeitungsstatus und/oder das Ergebnis des vorhergehenden Prozessors informiert.
  • Die hohe Variabilität des Systems ist darin zu sehen, dass der Anwender die Verarbeitungszeit nahezu frei bestimmen kann. Abhängig von seiner Wahl der Verarbeitungszeit ist die Qualität bzw. Güte des Verarbeitungsergebnisses. Die gesamte Verarbeitungszeit wird über den SOLL-Wert vom Anwender definiert. Dieser kann auch zur Laufzeit verändert oder erstmals eingestellt werden. Die Qualitätsstufe des Verarbeitungsergebnisses ergibt sich unmittelbar aus diesem SOLL-Wert.
  • Ein wichtiger Vorteil des Verfahrens ist darin zu sehen, dass der SOLL-Wert für die Verarbeitungszeit auch zur Laufzeit dynamisch einstellbar ist, ohne, dass die Verarbeitung der Prozessdaten unterbrochen werden muss. Sollen beispielsweise Bildverarbeitungsergebnisse dargestellt werden und werden die Anforderungen während der Berechnung verändert (z. B. die zur Verfügung stehende Zeit wird verkürzt), so können schritthaltend mit dieser Änderung Bildverarbeitungsergebnisse angezeigt werden (bezogen auf vorstehendes Beispiel: mit einer verringerten Qualität bzw. Auflösung).
  • Die Meta-Daten werden vorzugsweise dezentral und/oder parallel in den Pipeline-Prozessoren erfasst. Damit können Ressourcenzuweisungen oder sonstige Einstellungen kontinuierlich angepasst oder verändert werden.
  • Die erfassten Meta-Daten werden an den Execution Time Scheduler weitergeleitet und von ihm verarbeitet. Das Ergebnis dieser Steuerungsaufgabe kann dann wieder zu einer Neuverteilung der Rechnerressourcen führen. Bei längeren Verarbeitungszyklen sehen das Verfahren und das System hier einen iterativen Prozess vor.
  • Die Aufgabenlösung nach Anspruch 10 sieht eine Anordnung vor, die mehrere Elemente umfasst: vorzugsweise ist ein Erfassungsmodul, ein Monitoringmodul, eine Logging-Einheit, eine Anytime-Einheit, die jeweils einem Pipeline-Prozessor zugeordnet ist, und eine Control-Einheit vorgesehen. Das heißt, bezogen auf die gesamte Anordnung, sind eine Vielzahl von Pipeline-Prozessoren und diesen jeweils zugeordneten Anytime Einheiten vorgesehen. Bevorzugterweise ist die Logging-Einheit ebenfalls modular aufgebaut und ist dem jeweiligen Pipeline-Prozessor zugeordnet. Die Control-Einheit ist vorzugsweise als zentrales Bauteil ausgebildet, der mit allen Pipeline-Prozessoren der Pipeline und mit dem Erfassungsmodul in Datenaustausch steht. Alternativ kann vorgesehen sein, dass einem Pipeline-Prozessor nicht nur eine Anytime Einheit zugeordnet ist, sondern ein Verbund von Anytime Einheiten, die alle auf die Funktionalität des jeweiligen Pipeline-Prozessors bezogen sind.
  • Die vorstehend beschriebenen Ausführungsformen des Verfahren können auch als Computerprogrammprodukt ausgebildet sein, mit einem von einem Computer lesbaren Medium und mit einem Computerprogramm und zugehörigen Programmcode-Mitteln, wobei der Computer nach Laden des Computerprogramms zur Durchführung des oben beschriebenen Verfahrens veranlasst wird.
  • Eine alternative Aufgabenlösung sieht ein Speichermedium vor, das zur Speicherung des vorstehend beschriebenen, computerimplementierten Verfahrens bestimmt ist und von einem Computer lesbar ist.
  • Zusätzliche, vorteilhafte Ausführungsformen ergeben sich aus den Unteransprüchen.
  • In der folgenden detaillierten Figurenbeschreibung werden Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung besprochen. In dieser zeigen:
  • 1 eine schematische Übersicht über eine beispielhafte Architektur mit drei Pipeline-Prozessoren und
  • 2 ein Ablaufdiagramm über den Ablauf gemäß einer bevorzugten Ausführungsform.
  • Unter Bezugnahme auf 1 wird nachfolgend die grundlegende Struktur des Systems erläutert. Für die Verarbeitung von Prozessdaten 10 ist eine Pipeline 12 vorgesehen, die aus mehreren, vorzugsweise in Reihe geschalteten Pipeline-Prozessoren Pi besteht, dabei kennzeichnet die Bezugsziffer Pi den i-ten Pipeline-Prozessor. Den verschiedenen Pipeline-Prozessoren Pi werden, abhängig von der Aufgabe (also von der Art der Verarbeitung der Prozessdaten 10) unterschiedliche Tasks zugeordnet.
  • Ziel ist es, dass nach einem Durchlauf durch die Verarbeitungspipeline 12 ein Verarbeitungsergebnis generiert wird.
  • Bei komplexen Systemen und/oder bei komplexen Verarbeitungsaufgaben ergeben sich häufig Schwankungen hinsichtlich der Verfügbarkeit von Rechnerressourcen – und dies auch zur Laufzeit des Verarbeitungsvorganges –. Das kann möglicherweise dazu führen, dass eine zu Beginn des Verarbeitungsvorganges getroffenen Einstellung oder Festlegung hinsichtlich der Ressourcen sich zu einem späteren Zeitpunkt als unzutreffend erweist, was sich insgesamt negativ für das Verarbeitungsergebnis auswirkt.
  • Um auf diese Schwankungen auch zur Laufzeit flexibel reagieren zu können, ist es vorgesehen, die jeweiligen Pipeline-Prozessoren Pi der Pipeline 12 jeweils mit einem oder mehreren Anytime Algorithmen auszubilden. Das hat zur Folge, dass die Zeitspanne, die notwendig ist, um das Verarbeitungsergebnis des jeweiligen Pipeline-Prozessors Pi zu generieren, variabel eingestellt werden kann – in Abhängigkeit von einer Qualitäts- oder Gütestufe des Verarbeitungsergebnisses. Damit wird es möglich, die Ressourcen auch zur Laufzeit optimal auf die Pipeline-Prozessoren Pi zu verteilen.
  • Ein Erfassungsmodul 16 dient zur Erfassung eines SOLL-Wertes für die gesamte Verarbeitungszeit. Dieser SOLL-Wert kann vom Anwender, abhängig von den aktuellen Systemanforderungen, eingestellt werden. Das Erfassungsmodul 16 steht in Datenaustausch mit einem Control Mechanismus. Der Control Mechanismus dient zur Steuerung der Ressourcen in Hinblick auf die Pipeline-Prozessoren Pi. Der Control Mechanismus umfaßt ein zentrales Bauteil, nämlich den Execution Time Scheduler 20. Der Execution Time Scheduler 20 steht in Datenaustausch mit den für den Verarbeitungsprozess aktivierten bzw. benötigten Pipeline-Prozessoren Pi und mit dem Erfassungsmodul 16 (in der Zeichnung nicht dargestellt).
  • In dem in 1 dargestellten Beispiel besteht die Pipeline 12 aus drei Pipeline-Prozessoren P1, P2 und P3. Als zentrales Element ist der Execution Time Scheduler 20 vorgesehen. Jeder Pipeline-Prozessor Pi erfaßt seine Verarbeitungszeit (in der Zeichnung als ”ProcTime” bezeichnet). Meta-Daten 18 umfassen hauptsächlich diese vorgenannten Timing Informationen. Wesentlich ist, dass zusätzlich zu den zu verarbeitenden Prozessdaten 10 auch die Meta-Daten 18 von Pipeline-Prozessor Pi zu nachfolgendem Pipeline-Prozessor Pi + 1 weitergeleitet werden. Nach Durchlaufen der Pipeline 12 werden diese Verarbeitungszeiten akkumuliert und in dem Execution Time Scheduler 20 verarbeitet. Diese Zeiten beziehen sich auf die aktuellen Verarbeitungszeiten und definieren von daher einen IST-Wert für die Verarbeitungszeit eines jeweiligen Pipeline-Prozessors Pi. Der vom Erfassungsmodul 16 erfasste SOLL-Wert der Verarbeitung wird auch dem Execution Time Scheduler 20 zugeführt. Deshalb ist der Execution Time Scheduler 20 in der Lage, den IST-Wert und den SOLL-Wert in Bezug zueinander zu setzen und die Ressourcen so zuzuweisen, dass bei dem folgenden Durchlaufen der Pipeline 12 oder nach einer Sequenz von Pipelinedurchläufen der IST-Wert dem SOLL-Wert angepasst wird.
  • In 2 ist ein Ablaufdiagramm dargestellt, das den grundlegenden Ablauf der Verfahrensschritte gemäß der bevorzugten Ausführungsform zeigt.
  • Da eine Vielzahl von Pipeline-Prozessoren Pi vorgesehen sind, die – je nach Anwendungsfall – unterschiedliche Tasks erfüllen, ist es nicht immer zwingend, dass alle Pipeline-Prozessoren Pi für die jeweilige Verarbeitung notwendig sind. Deshalb werden in einem ersten Schritt die Pipeline-Prozessoren Pi erfasst, die für den aktuellen Verarbeitungsprozess erforderlich sind.
  • Zur Laufzeit werden dann die jeweiligen Verarbeitungszeiten der einzelnen Pipeline-Prozessoren Pi erfasst und überwacht. Dieses Monitoring findet auch zur Laufzeit statt.
  • In einem weiteren Verfahrensschritt, der in einer alternativen Ausführungsform auch zeitlich vorgelagert sein kann, werden die Laufzeitbedingungen erfasst. Hierunter fallen Parameter, wie insbesondere zur Verfügung stehende Rechnerressourcen, Art der gewünschten Verarbeitung und andere Parameter. Ebenso wird der SOLL-Wert erfasst, der eine Aussage über die gewünschte gesamte Verarbeitungszeit bzw. über die Qualitätsstufe des Verarbeitungsergebnisses macht.
  • Die erfassten Werte, von denen einige auch zur Laufzeit und andere im Vorfeld vor der eigentlichen Verarbeitung ermittelt werden können, werden dem Execution Time Scheduler 20 zugeführt. Dieser errechnet aufgrund der Werte eine optimale Belegung der Pipeline-Prozessoren Pi mit den aktuell verfügbaren Rechnerressourcen. Oder mit anderen Worten errechnet der Execution Time Scheduler 20, wie viel Verarbeitungszeit ein Pipeline-Prozessor Pi verbrauchen darf, damit der SOLL-Wert für den gesamten Verarbeitungsprozess eingehalten werden kann. Den Pipeline-Prozessoren Pi werden also Verarbeitungszeiten zugewiesen, innerhalb derer sie das Ergebnis an den nächsten Pipeline-Prozessor Pi + 1 weiterreichen müssen.
  • Mögliche Interdependenzen zwischen den Verarbeitungszeiten der einzelnen Pipeline-Prozessoren Pi können durch Erfassen von zusätzlichen Interdependenz-Daten verarbeitet werden. Ist es beispielsweise notwendig, dass ein i-ter Pipeline-Prozessor Pi von seinem Vorgänger, dem Pipeline-Prozessor Pi – 1 weiß, in welcher Qualitätsstufe er sein Ergebnis erzeugt hat, so ist es möglich, diese Information bei den Meta-Daten 18 zu übermitteln.
  • Nach Durchlaufen der Pipeline 12 wird überprüft, ob das Ergebnis der Pipelineverarbeitung mit dem SOLL-Wert übereinstimmt. Falls dies bejaht wird, ist das Verfahren beendet. Andernfalls kann die Pipeline 12 iterativ durchlaufen werden, bis der IST-Wert mit dem SOLL-Wert übereinstimmt.
  • Es ist jedoch auch möglich, dass der SOLL-Wert nur einmal zu Beginn der Verarbeitung und nicht dynamisch zur Laufzeit erfasst wird. Dies vereinfacht zwar das Verfahren, führt jedoch auch zu einer eingeschränkten Flexibilität, denn dann ist der Soll-Wert fest definiert und kann nicht dynamisch variiert werden.
  • Das wesentliche Architekturkonzept liegt auf der Anpassungsmöglichkeit der Systembedingungen zur Laufzeit. Verändern sich z. B. die Anforderungen an das Verarbeitungsergebnis der Prozessdaten 10 oder verändern sich die verfügbaren Rechnerressourcen zur Laufzeit, so kann sofort und unmittelbar eine Anpassung der Verteilung der Verarbeitungszeiten in den Pipeline-Prozessoren Pi bzw. in den Stufen der Pipeline 12 erfolgen, ohne dass die Verarbeitung unterbrochen werden muss. Beispielsweise werden Bilder, die bereits teilweise berechnet sind, nach den geänderten, neuen Rahmenbedingungen weiter berechnet.
  • Durch die Verwendung des Pipelinekonzeptes wird es möglich, dass parallel also gleichzeitig mehrere Tasks (z. B. Darstellen von Bildern) in den unterschiedlichen Stufen der Pipeline 12 abgearbeitet werden. Dies führt zu einer deutlichen Zeiteinsparung, da Berechnungen teilweise parallel ausgeführt werden können. Insgesamt bringt dies den Vorteil einer verbesserten Lastverteilung und nützt die positiven Eigenschaften von Multiprozessorsystemen aus.
  • Mit der Verwendung eines Anytime Ansatzes bei der Architektur der einzelnen Pipeline-Prozessoren Pi wird ein Abwägen zwischen der Verarbeitungszeit einerseits und der Qualität des Verarbeitungsergebnisses andererseits möglich. Damit kann wesentlich flexibler auf Systemänderungen reagiert werden, was bei Verfahren nach dem Stand der Technik teilweise gar nicht möglich war. Auch kann erreicht werden, dass die verfügbaren Ressourcen zu jedem Zeitpunkt optimal auf die aktiven Verarbeitungsmodule, insbesondere auf die Pipeline-Prozessoren Pi, verteilt werden können.

Claims (18)

  1. Verfahren zur dynamischen Steuerung von Rechnerressourcen in Bezug auf mehrere Pipeline-Prozessoren (Pi) einer Pipeline (12) bei der Verarbeitung von Prozeßdaten (10) unter veränderlichen Laufzeitbedingungen, umfassend: – Erfassen eines SOLL-Wertes für eine gesamte Verarbeitungszeit, – ein Monitoring zur Laufzeit, das einen IST-Wert für die Verarbeitungszeit jeweils eines einzelnen Pipeline-Prozessors (Pi) erfaßt, – Logging von Meta-Daten (18) bezüglich der Verarbeitung des jeweiligen Pipeline-Prozessors (Pi) zur Laufzeit, – ein Anytime-Algorithmus, der jeweils einem Pipeline-Prozessor (Pi) zugeordnet ist und der ein Ergebnis der Verarbeitung des jeweiligen Pipeline-Prozessors (Pi) zu einem einstellbaren Zeitpunkt generiert, und – ein Control Mechanismus, der zur dynamischen Steuerung der Rechnerressourcen in Hinblick auf die Pipeline-Prozessoren (Pi) in Abhängigkeit von dem SOLL- und dem IST-Wert bestimmt ist, wobei Daten, zumindest umfassend Prozessdaten (10) und Meta-Daten (18), von einem i-ten Pipeline-Prozessor (Pi) zu einem nachfolgenden, i + 1-ten Pipeline-Prozessor (Pi + 1) weitergeleitet werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Control Mechanismus auch zur Laufzeit und/oder unter variablen Laufzeitbedingungen zur Steuerung, vorzugsweise zur Zuweisung von aktuell verfügbaren Rechnerressourcen auf die Pipeline-Prozessoren (Pi) bestimmt ist.
  3. Verfahren nach mindestens einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, dass das Monitoring kontinuierlich und/oder in vorbestimmbaren Zeitintervallen erfolgt.
  4. Verfahren nach mindestens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der Control Mechanismus unter Zugriff auf einen Execution-Time-Scheduler (20) arbeitet, der die Rechnerressourcen zur Laufzeit und ohne eine Unterbrechung der Verarbeitung der Prozeßdaten (10) dynamisch den Pipeline-Prozessoren (Pi) derart zuweist, dass der SOLL-Wert für die gesamte Verarbeitungszeit eingehalten wird.
  5. Verfahren nach mindestens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Meta-Daten (18) zumindest Information über die Verarbeitungszeit des jeweiligen Pipeline-Prozessors (Pi) umfassen.
  6. Verfahren nach mindestens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der SOLL-Wert vom Anwender einstellbar ist und dass eine Qualitätsstufe des Verarbeitungsergebnisses abhängig ist von diesem SOLL-Wert.
  7. Verfahren nach mindestens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der SOLL-Wert für die Verarbeitungszeit auch zur Laufzeit dynamisch einstellbar ist, ohne, daß die Verarbeitung der Prozessdaten (10) unterbrochen werden muß.
  8. Verfahren nach mindestens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Meta-Daten (18) dezentral und/oder parallel in den Pipeline-Prozessoren (Pi) erfasst werden.
  9. Verfahren nach mindestens einem der vorstehenden Ansprüche 4 bis 8, dadurch gekennzeichnet, dass die Meta-Daten (18) an den Execution Time Scheduler (20) weitergeleitet und von ihm verarbeitet werden.
  10. Vorrichtung zur dynamischen Steuerung von Rechnerressourcen in Bezug auf mehrere Pipeline-Prozessoren (Pi) einer Pipeline (12) bei der Verarbeitung von Prozeßdaten (10) unter veränderlichen Laufzeitbedingungen, umfassend: – zumindest ein Erfassungsmodul (16), das zum Erfassen eines SOLL-Wertes für eine gesamte Verarbeitungszeit bestimmt ist, – zumindest ein Monitoringmodul, das einen IST-Wert für die Verarbeitungszeit jeweils eines einzelnen Pipeline-Prozessors (Pi) zur Laufzeit erfaßt, – zumindest eine Logging-Einheit, die zum Logging von Meta-Daten (18) bezüglich der Verarbeitung des jeweiligen Pipeline-Prozessors (Pi) zur Laufzeit bestimmt ist, – zumindest eine Anytime-Einheit, die zum Ablauf eines Anytime-Algorithmus ausgelegt ist, der jeweils einem Pipeline-Prozessor (Pi) zugeordnet ist und der ein Ergebnis der Verarbeitung des jeweiligen Pipeline-Prozessors (Pi) zu einem einstellbaren Zeitpunkt generiert, und – zumindest eine Control Einheit, die zur dynamischen Steuerung der Rechnerressourcen in Hinblick auf die Pipeline-Prozessoren (Pi) in Abhängigkeit von dem SOLL- und dem IST-Wert bestimmt ist, wobei Daten, zumindest umfassend Prozessdaten (10) und Meta-Daten (18), von einem i-ten Pipeline-Prozessor (Pi) zu einem nachfolgenden, i + 1-ten Pipeline-Prozessor (Pi + 1) weitergeleitet werden.
  11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Control Einheit auch zur Laufzeit und/oder unter variablen Laufzeitbedingungen zur Steuerung, vorzugsweise zu Zuweisung von aktuell verfügbaren Rechnerressourcen auf die Pipeline-Prozessoren (Pi), bestimmt ist.
  12. Vorrichtung nach mindestens einem der Ansprüche 10 oder 11, dadurch gekennzeichnet, dass das Monitoringmodul ein Monitoring kontinuierlich und/oder in vorbestimmbaren Zeitintervallen ausführt.
  13. Vorrichtung nach mindestens einem der vorstehenden Ansprüche 10 bis 12, dadurch gekennzeichnet, dass die Control Einheit unter Zugriff auf einen Execution-Time-Scheduler (20) arbeitet, der die Rechnerressourcen zur Laufzeit und ohne eine Unterbrechung der Verarbeitung der Prozeßdaten (10) dynamisch den Pipeline-Prozessoren (Pi) derart zuweist, dass der SOLL-Wert für die gesamte Verarbeitungszeit eingehalten wird.
  14. Vorrichtung nach mindestens einem der vorstehenden Ansprüche 10 bis 13, dadurch gekennzeichnet, dass die Meta-Daten (18) zumindest Information über die Verarbeitungszeit des jeweiligen Pipeline-Prozessors (Pi) umfassen.
  15. Vorrichtung nach mindestens einem der vorstehenden Ansprüche 10 bis 14, dadurch gekennzeichnet, dass der SOLL-Wert vom Anwender einstellbar ist und dass eine Qualitätsstufe des Verarbeitungsergebnisses abhängig ist von diesem SOLL-Wert.
  16. Vorrichtung nach mindestens einem der vorstehenden Ansprüche 10 bis 15, dadurch gekennzeichnet, dass der SOLL-Wert für die Verarbeitungszeit auch zur Laufzeit dynamisch einstellbar ist, ohne, dass die Verarbeitung der Prozessdaten (10) unterbrochen werden muss.
  17. Vorrichtung nach mindestens einem der vorstehenden Ansprüche 10 bis 16, dadurch gekennzeichnet, dass die Meta-Daten (18) dezentral und/oder parallel in den Pipeline-Prozessoren (Pi) erfasst werden.
  18. Vorrichtung nach mindestens einem der vorstehenden Ansprüche 13 bis 17, dadurch gekennzeichnet, dass die Meta-Daten (18) an den Execution Time Scheduler (20) weitergeleitet und von ihm verarbeitet werden.
DE102004001680A 2004-01-12 2004-01-12 Dynamische Steuerung von Rechnerressourcen bei der Pipelineverarbeitung von Daten unter Verwendung von Anytime Algorithmen Expired - Fee Related DE102004001680B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102004001680A DE102004001680B4 (de) 2004-01-12 2004-01-12 Dynamische Steuerung von Rechnerressourcen bei der Pipelineverarbeitung von Daten unter Verwendung von Anytime Algorithmen
US11/033,506 US8161486B2 (en) 2004-01-12 2005-01-12 Dynamic control of computer resources for the pipeline processing of data using anytime algorithms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004001680A DE102004001680B4 (de) 2004-01-12 2004-01-12 Dynamische Steuerung von Rechnerressourcen bei der Pipelineverarbeitung von Daten unter Verwendung von Anytime Algorithmen

Publications (2)

Publication Number Publication Date
DE102004001680A1 DE102004001680A1 (de) 2005-08-04
DE102004001680B4 true DE102004001680B4 (de) 2012-07-05

Family

ID=34716472

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004001680A Expired - Fee Related DE102004001680B4 (de) 2004-01-12 2004-01-12 Dynamische Steuerung von Rechnerressourcen bei der Pipelineverarbeitung von Daten unter Verwendung von Anytime Algorithmen

Country Status (2)

Country Link
US (1) US8161486B2 (de)
DE (1) DE102004001680B4 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082171B1 (en) * 2005-08-04 2011-12-20 Demandware Inc. Methods and systems for hosting business applications having pipeline-based business logic using shared computing resources
US7844959B2 (en) * 2006-09-29 2010-11-30 Microsoft Corporation Runtime optimization of distributed execution graph
US8201142B2 (en) * 2006-09-29 2012-06-12 Microsoft Corporation Description language for structured graphs
US20080082644A1 (en) * 2006-09-29 2008-04-03 Microsoft Corporation Distributed parallel computing
US8811743B2 (en) * 2010-06-09 2014-08-19 Microsoft Corporation Resource-aware computer vision
DE102011079429A1 (de) * 2011-07-19 2013-01-24 Siemens Aktiengesellschaft Performancesimulation von medizintechnischen Prozeduren in einer Client-Server-Umgebung
US10528904B2 (en) 2016-10-20 2020-01-07 Micro Focus Llc Workflow processing via policy workflow workers
EP3467598B1 (de) * 2017-10-04 2021-09-29 TTTech Computertechnik AG Verfahren und vorrichtung zur bestimmung der schlitzdauer in einem zeitgesteuerten steuerungssystem
CN113408902B (zh) * 2021-06-21 2022-08-26 北京思路智园科技有限公司 基于人工智能的全流程生产调度系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255359A (en) * 1989-10-23 1993-10-19 International Business Machines Corporation Picking function for a pipeline graphics system using hierarchical graphics structures
GB2296565B (en) * 1994-12-23 1999-06-16 Intravascular Res Ltd Ultrasound imaging
US6308174B1 (en) * 1998-05-05 2001-10-23 Nortel Networks Limited Method and apparatus for managing a communications network by storing management information about two or more configuration states of the network
US6591262B1 (en) * 2000-08-01 2003-07-08 International Business Machines Corporation Collaborative workload management incorporating work unit attributes in resource allocation
US7089220B2 (en) * 2003-06-24 2006-08-08 Palo Alto Research Center Incorporated Complexity-directed cooperative problem solving

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
D.Bernstein et al: Using Uncertainty within Com- putation, AAAI 2001 Fall Symposium, Nov.2001 *
DEAN, T.: Decision-Theoretic Control of Inference for Time-Critical Applica-tions, Technical Report No. CS-89-44 [online]. Brown University, Dept. of Computer Sci-ence, Providence, Rhode Island 02912, 1990 [recherchiert am 21.11.2008]. Im Internet: *
DEAN, T.: Decision-Theoretic Control of Inference for Time-Critical Applica-tions, Technical Report No. CS-89-44 [online]. Brown University, Dept. of Computer Sci-ence, Providence, Rhode Island 02912, 1990 [recherchiert am 21.11.2008]. Im Internet: <URL: ftp://ftp.cs.brown.edu/pub/techreports/89/cs89-44.pdf>
HANSEN, E.; ZILBERSTEIN, S.: Monitoring and control of anytime algo-rithms: a dynamic programming approach; Artificial Intelligence, Volume 126, Issue 1-2, pp. 139-157, 2001, Elsevier Science Publishers Ltd. *
W.Becker: Globale dynamische Lastbalancierung in datenintensiven Anwendungen, Fakultätsbericht Nr. 1993/1 August 1998 *

Also Published As

Publication number Publication date
US8161486B2 (en) 2012-04-17
US20050188180A1 (en) 2005-08-25
DE102004001680A1 (de) 2005-08-04

Similar Documents

Publication Publication Date Title
EP1831786B1 (de) Verfahren zur verteilung von rechenzeit in einem rechnersystem
DE60223394T2 (de) Verfahren und vorrichtung zum einteilen von anforderungen für einen dynamischen direktzugriffsspeicherbaustein
EP2954467A1 (de) Verfahren und vorrichtung zur steuerung einer mit einer erneuerbaren energiequelle betreibbaren energieerzeugungsanlage
EP3508930B1 (de) System und verfahren zur steuerung und/oder analytik eines industriellen prozesses
DE112010003595T5 (de) Verfahren, System und maschinenverarbeitbares Medium zur Bereitstellung einer verteiltenPrädikatvorhersage
DE102004001680B4 (de) Dynamische Steuerung von Rechnerressourcen bei der Pipelineverarbeitung von Daten unter Verwendung von Anytime Algorithmen
DE10392278T5 (de) Verfahren und Vorrichtung zur Speicherzugangssteuerung
EP1939728B1 (de) System und Verfahren zur Berechnung von Schäden durch Naturkatastrophen
EP3125056A1 (de) System und verfahren zur steuerung und/oder analytik eines industriellen prozesses
DE69911986T2 (de) Einrichtung und verfahren zum ausgleichen und verteilen von steueralgorithmenlasten
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE102007051803A1 (de) Verfahren und Vorrichtung zur Datenverarbeitung
EP3080668A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE102016007651B4 (de) Numerische Steuerung mit Funktion zur automatischen Auswahl eines Speicherungsziels für ein Bearbeitungsprogramm
DE102020214951A1 (de) Verfahren zum dynamischen Zuweisen von Speicherbandbreite
DE102019206541A1 (de) Verfahren zum Durchführen von computerunterstützten XiL-Simulationen
DE102004059972B4 (de) Thread-Scheduling-Verfahren, und Thread-List-Scheduler-Vorrichtung
DE102019207342A1 (de) Konzept für eine Datenverarbeitung für ein zumindest teilautomatisiertes Führen eines Kraftfahrzeugs
DE102019108328A1 (de) Verfahren, Vorrichtung, Computerprogramm und Computerprogrammprodukt zur Verarbeitung von Messdatensätzen
WO2012152804A1 (de) Verfahren zum betrieb mindestens einer datenbank auf einem hardwarepool
EP1507181B1 (de) Verfahren und Vorrichtung zur mehrstufigen Datenverarbeitung, insbesondere zur Diagnose, in einer technischen Anlage
DE3542436A1 (de) Datenflussprozessorsystem
DE10360319B3 (de) Verfahren zum Steuern der Auslastung einer Datenverarbeitungsanlage
DE102022132033A1 (de) Computerimplementiertes Verfahren zur Steuerung und/oder Regelung einer Ein-Kompressor-Station mit einem Kompressor
DE102020203863A1 (de) Methoden und Techniken zur Minimierung der Verschlechterung von Bauteilen durch Lastausgleich auf einem Multiprozessor-Steuergerät für Kraftfahrzeuge

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20121006

R081 Change of applicant/patentee

Owner name: SIEMENS HEALTHCARE GMBH, DE

Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee