9 research outputs found

    Zeitgenaue Simulation gemischt virtuell-realer Prototypen

    Get PDF
    [no abstract

    Parallele und kooperative Simulation für eingebettete Multiprozessorsysteme

    Get PDF
    Die Entwicklung von eingebetteten Systemen wird durch die stetig steigende Anzahl und Integrationsdichte neuer Funktionen in Kombination mit einem erhöhten Interaktionsgrad zunehmend zur Herausforderung. Vor diesem Hintergrund werden in dieser Arbeit Methoden zur SystemC-basierten parallelen Simulation von Multiprozessorsystemen auf Manycore Architekturen sowie zur Verbesserung der Interoperabilität zwischen heterogenen Simulationswerkzeugen entwickelt, experimentell untersucht und bewertet

    Co-Konfiguration von Hardware- und Systemsoftware-Produktlinien

    Get PDF
    Hardwarearchitekturen im Kontext von Eingebetteten Systemen werden immer komplexer und bewegen sich zukünftig immer häufiger in Richtung von Multi- oder Manycore-Systemen. Damit diese Systeme ihre optimale Leistungsfähigkeit – für die oftmals speziellen Aufgaben im Kontext von Eingebetteten Systemen – ausspielen können, beschäftigen sich ganze Forschungszweige mit der anwendungsspezifischen Maßschneiderung dieser Systeme. Insbesondere die Popularität von Hardwarebeschreibungssprachen trägt dazu ihren Teil bei. Jedoch ist die Entwicklung von solchen Systemen, selbst bei der Verwendung von Hardwarebeschreibungssprachen und der damit verbundenen höheren Abstraktionsebene, aufwendig und fehleranfällig. Die Verwendung von Hardwarebeschreibungssprachen lässt allerdings die Grenze zwischen Hard- und Software verschwimmen, denn Hardware kann nun – ähnlich wie auch Software – in textueller Form beschrieben werden. Dies eröffnet Möglichkeiten zur Übertragung von Konzepten aus der Software- auf die Hardwareentwicklung. Ein Konzept um der wachsenden Komplexität im Bereich der Softwareentwicklung zu begegnen, ist die organisierte Wiederverwendung von Komponenten, wie sie in der Produktlinienentwicklung zum Einsatz kommt. Inwieweit sich Produktlinienkonzepte auf Hardwarearchitekturen übertragen lassen und wie Hardware-Produktlinien entworfen werden können, soll in dieser Arbeit detailliert untersucht werden. Die Vorteile der Produktlinientechniken, wie die Möglichkeit zur Wiederverwendung von erprobten und zuverlässigen Komponenten, könnten so auch für Hardwarearchitekturen genutzt werden, um die Entwicklungskomplexität zu reduzieren und so mit erheblich geringerem Aufwand spezifische Hardwarearchitekturen entwickeln zu können. Zudem kann durch die gemeinsame Codebasis einer Produktlinie eine schnellere Markteinführungszeit unter geringeren Entwicklungskosten realisiert werden. Auf Basis dieser neuen Konzepte beschäftigt sich diese Arbeit zudem mit der Fragestellung, wie zukünftig solche parallelen Systeme programmiert und automatisiert optimiert werden können, um den Entwickler von der Anwendung über die Systemsoftware bis hin zur Hardware mit einer automatisierten Werkzeugkette bei der Umsetzung zu unterstützen. Im Fokus stehen dabei die in dieser Arbeit entworfenen Techniken zur durchgängigen Konfigurierung von Hardware und Systemsoftware. Diese Techniken beruhen im Wesentlichen auf den Programmierschnittstellen zwischen den Schichten, deren Zugriffsmuster sich statisch analysieren lassen. Die so gewonnenen Konfigurationsinformationen lassen sich dann zur automatisierten Maßschneiderung der Systemsoftware- und Hardware-Produktlinie für ein spezifisches Anwendungsszenario nutzen. Die anwendungsspezifische Optimierung der Systeme wird in dieser Arbeit mittels einer Entwurfsraumexploration durchgeführt. Der Fokus der Entwurfsraumexploration liegt allerdings nicht allein auf der Hardwarearchitektur, sondern umfasst ebenso die Softwareebene. Denn neben der Maßschneiderung der Systemsoftware, wird auch die auf einer parallelen Programmierschnittstelle aufsetzende Anwendung innerhalb der Entwurfsraumexploration automatisch skaliert, um die Leistungsfähigkeit von Manycore-Systemen ausschöpfen zu können

    Informatikdidaktische Diskussion über das Design eingebetteter Systeme

    Get PDF
    Die Ausbildung künftiger Entwickler eingebetteter Systeme ist heute geprägt von einer subjektiven, kulturspezifischen Gestaltung von Lehr-Lernprozessen, welche die Ergebnisse der Kompetenzforschung zumeist nicht berücksichtigen. Es besteht Konsens, dass in Kompetenzmodellen strukturierte Kompetenzen –kognitive Fähigkeiten und Fertigkeiten, um bestimmte Probleme zu lösen –notwendig sind, um zwischen abstrakten Bildungszielen und konkreten Lehr-Lernprozessen zu vermitteln. Damit stellen die Erforschung von Kompetenzmodellen und Pfaden der Kompetenzaneignung grundlegende Forschungsbedarfe zur Hochschuldidaktik der technischen Informatik dar. In dieser Arbeit werden Konzepte zur theoretischen Fundierung von Laborpraktika der technischen Informatik entwickelt, welche auf Ergebnissen des von der Deutschen Forschungsgemeinschaft geförderten Projektes Kompetenzentwicklung mit eingebetteten Mikro- und Nanosystemen (KOMINA) aufbauen. In der vorliegenden Arbeit wird das Verständnis von eingebetteten Systemen als Teil informatischer Curricula insofern erweitert, als dass sich diese Systeme als Lerngegenstand eignen, um Kompetenzen verschiedener Informatikdisziplinen zu fördern und damit nicht auf die technische Informatik beschränkt sind. Eine Taxonomie zur Vergleichbarkeit fachdidaktischer Publikationen zu eingebetteten Systemen wird weiterentwickelt und angewandt, um institutionelle Besonderheiten sowie die Vielseitigkeit des Praxisfeldes zu erfassen. Forschungsgegenstand ist das im Rahmen von KOMINA entwickelte Entwurfs- und Anwendungspraktikum für eingebettete Systeme. Zielgruppe sind Studierende der Informatik. Es werden typische Lernhürden identifiziert, wodurch neue Erkenntnisse, über die formative Evaluation des unter Beteiligung des Autors entwickelten und durchgeführten Praktikums hinaus, gewonnen werden. Diese Erkenntnisse begründen die Notwendigkeit neuer didaktischer Konzepte und lernförderlicher Software unter Berücksichtigung institutioneller Besonderheiten sowie zielgruppenspezifischer Vorkenntnisse. Kognitive Strukturen als Komponente didaktischer Systeme werden in diesem Forschungsprojekt erforscht. Sie dienen als Basis für die informatikdidaktische Verfeinerung des in KOMINA empirisch evaluierten Kompetenzstrukturmodells für das Entwickeln eingebetteter Mikro- und Nanosysteme. Bislang wurden Erarbeitungsreihenfolgen informatorischer Fachkonzepte in didaktischen Systemen betrachtet, welche drei Funktionen besitzen. Die Orientierung der Lernenden im Fachgebiet, die Organisation zur Planung von Lehr-Lernprozessen sowie die Diskussion didaktischer Entscheidungen. In diesem Beitrag zur Grundlagenforschung zur Hochschuldidaktik der technischen Informatik steht die Diskussion didaktischer Entscheidungen bei der Gestaltung von Lehr-Lernprozessen und Pfaden der Kompetenzaneignung im Vordergrund. Deshalb werden die Anforderungen an die Darstellung kognitiver Strukturen – Ausdrucksstärke, Übersichtlichkeit und Nachvollziehbarkeit – zugunsten der Diskussion didaktischer Entscheidungen angepasst. Der Autor stellt Forschern zur Hochschuldidaktik der technischen Informatik Konzepte bereit, die es ermöglichen Fachkonzepte und Lehr-Lernprozesse zu analysieren sowie durch Anpassung an institutionelle Besonderheiten theoretisch fundiert zu gestalten. Dies sind insbesondere eine Taxonomie zur Identifikation von Lernhürden, die Methodik zur Ausdifferenzierung von Kompetenzen mit Bezug zu den identifizierten Lernhürden, die Visualisierung kognitiver Strukturen mit diesen Kompetenzen im Zentrum sowie die in der Hauptverantwortung des Autors entwickelte lernunterstützende Software Explorative Learning and Visualization Environment. Diese dient als Beispiel für den Einsatz von Simulationen in Laborpraktika der technischen Informatik. Es wird damit exemplarisch gezeigt, wie die informatikdidaktische Verfeinerung des Kompetenzstrukturmodells in Verbindung mit kognitiven Strukturen und lernförderlicher Software zur Überwindung der mithilfe der entwickelten Taxonomie identifizierten Lernhürden eingesetzt werden können.Today, the education of future developers of embedded systems is characterized by a subjective, culture-specific design of teaching and learning processes. This design, mostly, does not take the results of research on competences into account. There is a consensus that competences – cognitive abilities and skills used to solve specific problems – and competence models are needed to mediate between abstract and concrete educational goals of teaching and learning processes. Therewith, the exploration of competence models and paths of competence acquisition are fundamental research needs for didactics of computer engineering at university. Within this work, based on the results of the project competence development with embedded micro- and nanosystems (KOMINA) funded by the German Research Foundation, approaches for a theoretical foundation of laboratory courses of computer engineering have been developed. Within this thesis, the understanding of embedded systems as a part of computer science curricula has been broadened since it is not limited to computer engineering. While these systems are also suitable as learning objects to promote competences within various computer science disciplines. A taxonomy to foster the comparability of research on didactics of computer engineering is further developed and applied in order to conceive institutional particularities and the versatility of the practice field. The design and application laboratory for embedded systems, developed in the context of KOMINA, is the object of research. Students of computer science are the target group. In addition to the formative evaluation of the developed laboratory the taxonomy enables the identification of typical learning barriers. These findings justify the need for new educational concepts as well as learning software, taking institutional particularities and target group specific knowledge into account. Cognitive structures as a component of Didactic Systems are investigated. As they serve as a basis for the refinement of the empirically evaluated competence structure model for the development of embedded micro- and nanosystems. So far, the sequences of teaching units have been considered in Didactic Systems, which posses three functions. The orientation of the learner in the topic, the organization of the planning of teaching and learning processes as well as the discussion of didactic decisions. In this work, regarding the contribution to basic research on didactics of computer engineering at university, the discussion of didactic decisions in the design of educational processes and paths of competence acquisition has priority. Therefore, the demands on the representation of cognitive structures – expressiveness, clarity and comprehensibility – are adjusted in favor of the discussion of didactic decisions. The author provides concepts which allow researchers to analyze technical concepts as well as to develop educational processes in a theoretically established manner. These are, in particular, a taxonomy to identify learning barriers, the methodology for the differentiation of competences related to the identified learning hurdles, and the visualization of cognitive structures with these competences at center. Additionally, the learning software Exploratory Learning and Visualization Environment, that has been developed with the author’s responsibility, is presented. This software serves as an example for the use of simulations in laboratory courses of computer engineering. Thus, the combination of the refinement of the competence structure model in conjunction with cognitive structures in addition to learning software, which can be applied to overcome the identified learning hurdles, is shown as an example

    Tagungsband Dagstuhl-Workshop MBEES: Modellbasierte Entwicklung eingebetteter Systeme 2005

    Get PDF

    Generierung von effizienten Security-/Safety-Monitoren aus modellbasierten Beschreibungen

    Get PDF
    Computer werden heute zunehmend durch kleine Recheneinheiten mit Sensoren zur Erfassung der Außenwelt ergänzt. Diese Recheneinheiten kommunizieren untereinander und mit externen Einheiten, um Informationen weiterzugeben und sich untereinander abzustimmen. Hierdurch findet auch eine Öffnung von sicherheitskritischen eingebetteten Systemen nach außen statt. Die Systeme können nun entweder direkt oder indirekt über zusätzliche Einheiten angegriffen werden. Des Weiteren ist die auf eingebetteten Systemen eingesetzte Software durch beschränkte Ressourcen auf das Nötigste reduziert und bietet keine komplexen Sicherheitsmechanismen. Maßnahmen wie Testen von Software kann deren Fehlerfreiheit nicht sicherstellen. In realen Systemen ist zudem davon auszugehen, dass nicht bekannte Fehler existieren, die u.a. auch von Angreifern ausgenutzt werden können. Die Laufzeitüberwachung solcher Systeme hat sich als geeignet erwiesen, um auch unbekannte Angriffe und Fehler zu erkennen. Zur Spezifikation solcher Laufzeitmonitore über Beschreibungen (Signaturen) von erlaubtem und verbotenem Verhalten haben sich viele verschiedene Spezifikationssprachen herausgebildet. Diese basieren auf verschiedensten Modellierungskonzepten. Zur Generierung von Monitoren aus diesen Spezifikationen in Software und Hardware müssen für die unterschiedlichen Sprachen verschiedenste Codegeneratoren erstellt werden. Des Weiteren besitzen einige der gewöhnlich verwendeten einfach zu verstehenden Spezifikationssprachen keine formalisierte Syntax und Semantik. In dieser Arbeit wird zusammen mit [Pat14] der Model-based Security/Safety Monitor (MBSecMon)-Entwicklungsprozess vorgestellt. Dieser umfasst parallel zu dem eigentlichen Softwareentwicklungsprozess des zu überwachenden Systems die Spezifikation, die Generierung und die Einbindung von Laufzeitmonitoren. Ziel dieser Arbeit ist die Definition einer formal definierten Zwischensprache zur Repräsentation stark verschränkter nebenläufiger Kommunikationen. Zu ihrer Entwicklung werden Anforderungen basierend auf existierenden Arbeiten aufgestellt. Auf Grundlage dieser Anforderungen wird die Zwischensprache Monitor-Petrinetze (MPN) entworfen und formal definiert. Diese Zwischensprache unterstützt die Repräsentation von Signaturen, die in verschiedensten Spezifikationssprachen modelliert sind, und die Generierung von effizienten Laufzeitmonitoren für unterschiedliche Zielplattformen. Die MPNs sind ein auf Petrinetzen basierender Formalismus, der um Konzepte der Laufzeitüberwachung erweitert wurde. Es wird gezeigt, dass die MPN-Sprache alle ermittelten Anforderungen an eine solche Zwischensprache, bis auf ein Hierarchisierungskonzept für Ereignisse, das in dieser Arbeit nicht behandelt wird, erfüllt. Die MPN-Sprache wird in einem prototypischen Werkzeug zur Monitorgenerierung eingesetzt. Dieses unterstützt die MBSecMon-Spezifikationssprache [Pat14] als Eingabesprache und verwendet die MPN-Sprache als Zwischenrepräsentation zur Monitorgenerierung für verschiedenste Plattformen und Zielsprachen. Die generierten Monitore werden auf ihr Laufzeitverhalten und ihren Speicherverbrauch evaluiert. Es hat sich gezeigt, dass sich die MPN-Sprache trotz ihrer hohen Ausdrucksstärke zur einfachen Generierung effizienter Laufzeitmonitore für verschiedenste Plattformen und Zielsprachen eignet

    Compileroptimierung und parallele Code-Generierung für zeitkritische eingebettete Multiprozessorsysteme

    Get PDF
    Durch den voranschreitenden Trend der Digitalisierung gewinnen intelligente digitale Systeme in vielen Bereichen des täglichen Lebens zunehmend an Bedeutung. Dies betrifft insbesondere auch den Bereich sicherheitskritischer Echtzeitsysteme, für deren sicheren Betrieb die Echtzeitfähigkeit nachgewiesen werden muss. Im Gegensatz zu Anwendungsfeldern ohne diese Anforderung sind effiziente Mehrkernprozessoren in Echtzeitsystemen derzeit noch kaum verbreitet. Der Hauptgrund für die bisherige Dominanz der Einzelkernprozessoren sind fehlende Methoden und Werkzeuge, um parallele Echtzeit-Software für Mehrkernprozessoren zu entwickeln und selbst im ungünstigsten Fall noch eine maximale Ausführungszeit (englisch Worst Case Execution Time, kurz WCET) garantieren zu können. In diesem Kontext besteht eines der wesentlichen Probleme darin, dass sich parallel ablaufende Software-Routinen im Hinblick auf ihre Laufzeit gegenseitig beeinflussen können. In Mehrkernprozessoren geschieht dies vor allem bei gleichzeitigen Zugriffen mehrerer Kerne auf eine gemeinsam genutzte Hardware-Ressource. Geeignete Methoden, um den Einfluss dieser als Interferenz bezeichneten Effekte bei der Software-Entwicklung präzise vorherzusagen und sichere Garantien für die Ausführungszeit abzuleiten, sind Gegenstand aktueller Forschung. Gleiches gilt für Software-Werkzeuge zur automatischen Parallelisierung, die auf harte Echtzeitanwendungen spezialisiert sind. Diese Arbeit zielt darauf ab, die Anwendbarkeit von Mehrkernprozessoren in Echtzeitsystemen durch Beiträge in den Bereichen der automatischen Software-Parallelisierung, Code-Optimierung und Hardware-Modellierung signifikant zu verbessern. Als Bestandteil einer Werkzeugkette zur automatischen Parallelisierung von sequentieller Echtzeit-Software wird in dieser Arbeit ein Compiler-Werkzeug zur WCET-optimierten parallelen Code-Generierung und ein zugehöriges paralleles Programmiermodell vorgestellt. Hierdurch können -- weitgehend ohne Zutun eines Endanwenders -- gut vorhersagbare parallele Programme erzeugt werden. Durch das Programmiermodell wird dabei sichergestellt, dass die Ausführungszeit, einschließlich der Interferenzeffekte, mit Hilfe einer statischen WCET-Analyse sicher nach oben abgeschätzt werden kann. Als Teil der Code-Generierung stellt die vorliegende Arbeit zwei Optimierungsmethoden vor, die zum einen den Kommunikations- und Synchronisationsaufwand zwischen den Prozessorkernen reduzieren und zum anderen die optimierte Allokation verteilter Speicher in heterogenen Speicherhierarchien ermöglichen. Erstere ist auf des parallele Programmiermodell abgestimmt und erlaubt die optimierte Platzierung von Kommunikations- und Synchronisationsoperationen sowie das Entfernen redundanter Synchronisation auf einer feingranularen Ebene. Die Optimierung der Speicherallokation ergänzt den Ansatz um ein formales Optimierungsmodell zur Zuweisung der Datenfelder eines generierten Programms zu den Speicherbereichen der Zielplattform. Das Modell bezieht dabei sowohl die Kosten für Interferenzeffekte als auch die Speicherhierarchie von Zielplattformen mit verteilten und heterogenen Speichern mit ein. Um die Schritte zur Generierung, Optimierung und Analyse von paralleler Echtzeit-Software weitgehend plattformunabhängig aufbauen zu können, beinhaltet die vorliegende Arbeit außerdem einen Ansatz zur generischen Modellierung von Mehrkernprozessorarchitekturen. Dieser erlaubt es, die Zielplattform mit Hilfe einer entsprechend erweiterten Architekturbeschreibungssprache (ADL) zu beschreiben, wodurch sich die darauf aufbauenden Entwicklungswerkzeuge mit überschaubarem Aufwand auf ein breites Spektrum von Hardware-Plattformen anwenden lassen. Mit dieser neuartigen Kombination erweitert die vorliegende Arbeit den Stand der Technik um einige wesentliche Bausteine, die die weitgehend automatisierte Parallelisierung von Echtzeit-Software ohne stark einschränkende Annahmen bezüglich der Struktur des Eingabeprogramms ermöglichen. Zu den weiteren Neuerungen dieser Arbeit zählen die Plattformunabhängigkeit bei der WCET-optimierten Software-Parallelisierung und die Berücksichtigung von Interferenzeffekten bei der Speicherallokation in Echtzeitsystemen. Die experimentelle Evaluation der vorgestellten Methoden und deren prototypischer Umsetzung zeigt, dass die WCET aller betrachteten Testanwendungen von der Parallelisierung profitieren kann. Auf einer Plattform mit vier Prozessorkernen konnte z.B. die WCET einer Anwendung aus dem Bereich der Bildverarbeitung durch die Parallelisierung im Vergleich zum sequentiellen Eingabeprogramm um Faktor 3,21 verbessert werden. Auch die Optimierungsansätze für Kommunikation und Speicherallokation führen größtenteils zu einer deutlichen Verbesserung der WCET. So konnten die durch Interferenzen verursachten Kosten im Zuge der Speicherallokation z.B. um bis zu 49% reduziert werden. Insgesamt haben die Ergebnisse dieser Arbeit damit das Potential, die effiziente und kostengünstige Nutzung von Mehrkernprozessoren im Bereich harter Echtzeitsysteme wesentlich voranzutreiben
    corecore