Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

System und Verfahren zur verbesserten Softwareentwicklung mittels Mehrkernprozessoren

IP.com Disclosure Number: IPCOM000172216D
Original Publication Date: 2008-Jul-25
Included in the Prior Art Database: 2008-Jul-25
Document File: 3 page(s) / 76K

Publishing Venue

Siemens

Related People

Juergen Carstens: CONTACT

Abstract

Bei der Entwicklung von Softwareapplikationen zur Steuerung und Ueberwachung von automatisierten technischen Prozessen muessen der Programmcode und die Daten waehrend der Laufzeit des Programms geaendert werden. Dies ist bisher nur moeglich, wenn eine erneute vollstaendige Rekompilierung bzw. Uebersetzung des gesamten Programms vorgenommen wird. Der Nachteil dabei ist, dass diese Uebersetzung sehr zeitintensiv ist. Zusaetzlich wird der Debug-Prozess durch die mit der Neukompilation einhergehende Wartezeit bis zum Abschluss des Uebersetzungsvorgangs in die Laenge gezogen. Dies betrifft alle gaengigen Softwarearchitekturen und Programmiersprachen, wie C/C++, Fortran, Pascal, Assembler, C#, Java. Runtime-Plattformen und Engineeringsysteme sind ebenfalls gleichermassen betroffen.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 50% of the total text.

Page 1 of 3

System und Verfahren zur verbesserten Softwareentwicklung mittels Mehrkernprozessoren

Idee: Matthias Kube, DE-Nuernberg; Marc Holz, DE-Nuernberg

Bei der Entwicklung von Softwareapplikationen zur Steuerung und Ueberwachung von automatisierten technischen Prozessen muessen der Programmcode und die Daten waehrend der Laufzeit des Programms geaendert werden. Dies ist bisher nur moeglich, wenn eine erneute vollstaendige Rekompilierung bzw. Uebersetzung des gesamten Programms vorgenommen wird. Der Nachteil dabei ist, dass diese Uebersetzung sehr zeitintensiv ist. Zusaetzlich wird der Debug-Prozess durch die mit der Neukompilation einhergehende Wartezeit bis zum Abschluss des Uebersetzungsvorgangs in die Laenge gezogen. Dies betrifft alle gaengigen Softwarearchitekturen und Programmiersprachen, wie C/C++, Fortran, Pascal, Assembler, C#, Java. Runtime-Plattformen und Engineeringsysteme sind ebenfalls gleichermassen betroffen.

Das Problem wird durch die Entwicklung einer Entwicklungsumgebung geloest, die eine Verbesserung des Softwareentwicklungsprozesses, speziell des Debug-Prozesses und der Qualitaetssicherung, ermoeglicht. Die Entwicklungsumgebung wird auf einem verteilten Rechnersystem betrieben, in dem die einzelnen Recheneinheiten ueber ein Bussystem gekoppelt sind. Das Rechnersystem besteht aus mindestens zwei Recheneinheiten. Auf der ersten Recheneinheit, die im Standardbetrieb laeuft (z.B. Intel x86: Ring0 (Kernel-Mode) + Ring3 (User-Mode)), wird das Betriebssystem (Treiber, Dienste Speicherverwaltung) und die Entwicklungsumgebung betrieben. Auf der zweiten Recheneinheit wird das von der Entwicklungsumgebung erzeugte und zu debuggende/analysierende Programm betrieben. Diese zweite Recheneinheit laeuft im Modus der privilegierten Instruktionen (Ring0). Der physikalische Datenaustausch des Verfahrens (siehe Abbildung 1) erfolgt beispielsweise ueber L2- Caches, Speicher, I/O-Register. Der logische Datenaustausch erfolgt z.B. ueber privilegierte Instruktionen, Treiber, oder spezielle Register.

An einem konkreten Beispiel wird das neuartige Verfahren und System beschrieben (siehe Abbildungen 1 und 2). Mittels der speziell entwickelten DIE (Integrated Development Environment) wird die Software wie gewohnt in einer der oben genannten Programmiersprachen entwickelt. Der nun folgende Debug-Prozess wird durch die IDE konkret unter Nutzung der Multikernprozessoren bzw. des SMP- (Symmetric-Multiprocessing) Systems unterstuetzt. Ziel ist die Aenderung eines Teils der Daten und des Codes zur Laufzeit des Programms unter Vermeidung einer sonst ueblichen Neukompilation. Realisiert wird dies konkret wie folgt:

• Eine speziell angepasste IDE wird implementiert.

• Der Entwickler programmiert Software in Standardprogrammiersprache (C/C++, etc.) mit Hilfe der IDE.

• Die IDE startet das geschriebene Programm unter Nutzung OS-sp...