77 research outputs found

    Effiziente Mehrkernarchitektur für eingebettete Java-Bytecode-Prozessoren

    Get PDF
    Die Java-Plattform bietet viele Vorteile für die schnelle Entwicklung komplexer Software. Für die Ausführung des Java-Bytecodes auf eingebetteten Systemen eignen sich insbesondere Java-(Bytecode)-Prozessoren, die den Java-Bytecode als nativen Befehlssatz unterstützen. Die vorliegende Arbeit untersucht detailliert die Gestaltung einer Mehrkernarchitektur für Java-Prozessoren zur effizienten Nutzung der auf Thread-Ebene ohnehin vorhandenen Parallelität eines Java-Programms. Für die Funktionalitäts- und Leistungsbewertung eines Prototyps wird eine eigene Trace-Architektur eingesetzt. Es wird eine hohe Leistungssteigerung bei nur geringem zusätzlichem Hardwareaufwand erzielt sowie eine höhere Leistung als bekannte alternative Ansätze erreicht

    Eine Methode der effizienten und verifizierbaren Programmannotation für den Transport von Escape-Informationen

    Get PDF
    JIT compilation is frequently employed in order to speedup the execution of platform-independent and dynamically extensible mobile code applications. Since the time required for dynamic compilation directly influences a program's execution time, JIT compilers usually utilize only simple and fast techniques for program analysis and optimization. Program annotations can be used to improve the analysis and optimizitation process of a JIT compiler. Program annotations allow a mobile code system derive information about a program, on the producer side, and transmit that information along with the program to the consumer side. In this work, we present an inherently safe annotation technique for the safe transmission of escape information. The annotation technique described in this work is built on the SafeTSA mobile code format and is implemented as a simple extension of SafeTSA's type system. The space required for these annotations is minimal, and measurements of compilation time show that using information from an offline escape analysis in form of program annotations is evident faster than performing the escape analysis at runtime

    Transformation von Multiphysics-Modellen in einen FPGA-Entwurf für den echtzeitfähigen HiL-Test eingebetteter Systeme

    Get PDF
    Mit der vorliegenden Arbeit wird eine durchgängige Werkzeugkette von der Modellbildung physikalischer Simulationen bis zur Entwurfsautomatisierung für FPGA-basierte Echtzeitsimulationen etabliert. Modelica wurde als vielseitige, intuitive und objektorientierte Sprache zur Modellbildung ausgewählt. Die entwickelte Werkzeugkette nutzt Methoden der High-Level-Synthese, um einen Entwurf in VHDL zu generieren. Dabei können sowohl Entwürfe in Fließkomma-, als auch Festkomma-Arithmetik erzeugt werden

    Die Sicherheitsaspekte von mobilem Code

    Get PDF

    Entwurfsmethodik für hybride Software- und Systemarchitektur

    Get PDF
    Die Softwaretechnik gewinnt in der Automobilindustrie durch Trends wie das automatisierte Fahren und die Vernetzung von Fahrzeugen mit der Infrastruktur weiter an Bedeutung. Software-basierte Funktionen müssen dabei neben der Implementierung und dem Test in einer frühen Phase der Entwicklung im Rahmen eines gemeinsamen Systems aus Softwarekomponenten und Steuergeräten entworfen werden. Die Spezifikation von Kommunikationsbeziehungen zwischen Softwarekomponenten wird heute über den Ansatz einer Signal-orientierten Architektur erreicht. Die vorliegende Arbeit analysiert das hierzu entsprechende Entwurfsmodell und entwickelt es zu einem hybriden Modell aus Signal- und Service-Orientierung weiter. Die Modellentwicklung wird weitergehend durch eine Entwurfsmethodik gestützt und im Rahmen des Systementwurfs in das V-Modell eingebunden. Hierdurch entsteht eine Alternative zur heutigen Spezifikation von Kommunikationsbeziehungen auf Basis von Signalen durch Services. Speziell bei Änderungen tragen diese den Vorteil, dass Folgeanpassungen an den Kommunikationsschnittstellen eines Steuergeräts reduziert werden. Die Softwareimplementierung, welche heute durch eine strikte Synchronisation mit der Entwicklung und Weiterentwicklung von Steuergeräten beeinflusst ist, wird dadurch vereinfacht

    Beiträge zur Automatisierung der frühen Entwurfsphasen verteilter Systeme

    Get PDF
    With the rapid increasing speed of electronic devices systems with highercomplexity, interconnectedness and heterogeneity can be developed. The developmentof such systems can only be done by teams of specialists. Atthe same time the development needs to happen in parallel to ensure anearly time to market. Therefore in the traditional design process the designis described in form of a written specification of the common system andpartitioned to several teams. This takes place in early design stages at highproduct uncertainty. Sub system development assumptions and decisions aremade without being able to evaluate the effect on the common system. Thusmany critical errors, especially those, caused by coupling effects, are discoveredduring system integration at the end of the design process. Furthermorean optimization of the common system is not possible, because of the lack ofa common system model. Hence the traditional design process is a high riskdevelopment process. In the Mission Level Design approach, an executable specification of thecommon system instead of a written specification is developed after conceptdevelopment. These is validated and optimized against the requirements ofthe common system. The such validated specification of the coupled systemis then passed on to specialist teams for sub system development. The subsystems are then integrated. In this manner integration problems can besolved in the early design stages. Development time and risk can be reducedsignificantly. To increase the specification quality and speed while developing common systemmodels, in the present work, standardized methods for specification andperformance evaluation of distributed systems and methods for automatedmapping of function into architecture are developed. This allows architectureoptimization of the common system in the early design stages. In addition,methods for transformation of the abstract design into implementations aredeveloped.Mit der rapide steigenden Geschwindigkeit elektronischer Bauelemente könnenSysteme mit erhöhter Komplexität, Vernetzung und Heterogenität entwickeltwerden. Dies hat zur Folge, dass eine Entwicklung nur durch Teamsvon Spezialisten durchführbar ist. Gleichzeitig muss die Entwicklung parallelerfolgen, um eine möglichst frühzeitige Produkteinführung zu ermöglichen.Im traditionellen Entwurfsprozess wird daher der Entwurf in Form einer geschriebenenSpezifikation des Gesamtsystems erfasst und anschließend aufmehrere Teams aufgeteilt. Dies erfolgt in den frühen Entwurfsphasen, welchedurch eine hohe Unsicherheit über das Produkt gekennzeichnet sind. Dabeimüssen bei der Entwicklung der Subsysteme Annahmen und Entscheidungengetroffen werden, ohne den Einfluss auf das Gesamtsystem abschätzenzu können. Kopplungseffekte werden weitestgehend ignoriert. Viele kritische,insbesondere durch Kopplungseffekte hervorgerufene Fehler, können folglicherst bei der Integration am Ende der Entwicklung entdeckt werden. Zudem isteine Optimierung des Gesamtsystems nicht möglich, da kein Gesamtsystemmodellvorliegt. Der traditionelle Entwurfsprozess besitzt daher ein hohesEntwicklungsrisiko. Beim Entwurfsansatz Mission Level Design wird nach dem Konzeptentwurfanstatt einer geschriebenen eine ausführbare Spezifikation des Gesamtsystemsentwickelt. Diese wird gegen die Gesamtsystemanforderungen validiertund optimiert. Daraufhin wird die Spezifikation des gekoppelten Gesamtsystemsan mehrere Teams zur Entwicklung der Subsysteme weitergegeben,welche dann wieder zu einem Gesamtsystem integriert werden. Integrationsproblemewerden so schon in den frühen Entwurfsphasen gelöst, was einewesentliche Verringerung von Entwicklungszeit und -risiko bewirkt. Um die Spezifikationsqualität und -geschwindigkeit bei der Entwicklung vonGesamtsystemmodellen zu erhöhen, werden im Rahmen der Arbeit standardisierteMethoden zur Beschreibung und Leistungsbewertung verteilterSysteme, sowie zum automatisierten Mapping von Funktion in Architekturentwickelt. Dies ermöglicht bereits in den frühen Entwurfsphasen eine Architekturoptimierungdes Gesamtsystems. Zusätzlich werden Methoden zurÜberführung des abstrakten Entwurfs in Implementationen entwickelt

    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

    Untersuchungen zur Kostenoptimierung für Hardware-Emulatoren durch Anwendung von Methoden der partiellen Laufzeitrekonfiguration

    Get PDF
    Der vorliegende Band der wissenschaftlichen Schriftenreihe Eingebettete Selbstorganisierende Systeme widmet sich der Optimierung von Hardware Emulatoren durch die Anwendung von Methoden der partiellen Laufzeitrekonfiguration. An aktuelle Schaltkreis- und Systementwürfe werden zunehmend divergente Anforderungen gestellt. Einer sehr kurzen Entwicklungszeit für eine schnelle Markteinführung steht, um teure und aufwändige Re-Desings zu verhindern, eine möglichst umfangreiche Testabdeckung des Entwurfs gegenüber. Um die Zeit für die Tests zu reduzieren, kommen überwiegend FPGA-basierte HW-Emulatoren zum Einsatz. Durch den Einfluss der steigenden Komplexität aktueller Entwürfe auf die Emulator-Plattform reduziert sich jedoch signifikant die Performance der Emulatoren. Die in Emulatoren eingesetzten FPGAs sind aber zunehmend partiell zur Laufzeit rekonfigurierbar. Der in der vorliegenden Arbeit umgesetzte Ansatz behandelt die Anwendung von Methoden der Laufzeitrekonfiguration auf dem Gebiet der Hardware-Emulation. Dafür ist zunächst eine Partitionierung des zu testenden Entwurfs in möglichst funktional unabhängige Systemteile notwendig. Für eine optimierte und ressourceneffiziente Platzierung der einzelnen HW-Module während der Emulation, ist ein ebenfalls auf dem FPGA platziertes Kommunikationsnetzwerk implementiert. Der vorgestellte Ansatz wird an verschiedenen Beispielen anschaulich illustriert. So kann der Leser die Mächtigkeit der entwickelten Methodik nachvollziehen und wird motiviert, das Verfahren auch auf weitere Anwendungsfälle zu übertragen.Current circuit and system designs consist a lot of gate numbers and divergent requirements. In contrast to a short development and time to market schedule, the needs for perfect test coverage and quality are rising. One approach to cover this problem is the FPGA based functional test of electronic circuits. State of the art FPGA platforms doesn't consist enough gates to support fully custom designs. The thesis catches this problem and gives some approaches to use partial dynamic reconfiguration to solve the size problem. A fully automated design flow demonstrates partial partitioning of designs, modifications to use dynamic reconfiguration and its schedule. At the end of the work, some examples demonstrates the power of the approach

    SoCRocket - A flexible and extensible Virtual Platform for the development of robust Embedded Systems

    Get PDF
    Der Schwerpunkt dieser Arbeit liegt in der Erhöhung des Abstraktionsniveaus im Entwurfsprozess, speziell dem Entwurf von Systemen auf Basis von Virtuellen Plattformen (VPs), Transaction-Level-Modellierung (TLM) und SystemC. Es wird eine ganzheitliche Methode vorgestellt, mit der komplexe eingebettete Systeme effizient modelliert werden können. Ergebnis ist eine der RTL-Synthese nahezu gleichgestellte Genauigkeit bei wesentlich höherer Flexibilität und Simulationsgeschwindigkeit. Das SoCRocket-System orientiert sich dazu an existierenden Standards und stellt Methoden zu deren effizientem Einsatz zur Verbesserung von Simulationsgeschwindigkeit und Simulationsgenauigkeit vor. So wird unter anderem gezeigt, wie moderne Multi-Kanal-Protokolle mit Split-Transfers durch Ausgleich des Intertransaktions-Timings ohne die Einführung zusätzlicher Protokollphasen zeitlich genau modelliert werden können. Standardisierungslücken in den Bereichen Speichermodellierung und Systemkonfiguration werden durch standardoffene Lösungen geschlossen. Darüber hinaus wird neue Infrastruktur zur Modellierung von Signalkommunikation auf Transaktionsebene, der Verifikation von Komponenten und der Modellierung des Energieverbrauchs vorgestellt. Zur Demonstration wurden die Kernkomponenten einer im europäischen Raumfahrtsektor maßgeblichen Hardwarebibliothek modelliert. Alle Komponenten wurden zunächst in Unit-Tests verifiziert und anschließend in einem Systemprototypen integriert. Zur Verifikation der Funktion, sowie Bestimmung von Simulationsgeschwindigkeit und zeitlicher Genauigkeit, wurde dieser für unterschiedliche Abstraktionsstufen konfiguriert und mit einem in VHDL beschriebenen RISC-Referenzentwurf (LEON3MP) verglichen. Das System mit losem Timing (LT) und blockierender Kommunikation ist im Durchschnitt 561-mal schneller als die RTL-Referenz und weist eine durchschnittliche Timing-Abweichung von 7,04% auf. Das System mit näherungsweise akkuratem Timing (AT) und nicht-blockierender Kommunikation ist 335-mal schneller. Die durchschnittliche Timing-Abweichung beträgt hier nur noch 3,03%, was einer Standardabweichung von 0.033 und damit einer sehr hohen statistischen Sicherheit entspricht. Die verschiedenen Abstraktionsniveaus können zur Realisierung mehrstufiger Architekturexplorationen eingesetzt werden. Dies wird am Beispiel einer hyperspektralen Bildkompression verdeutlicht.The focus of this work is raising the abstraction level in the development process, especially for the design of systems based on Virtual Platforms (VPs), Transaction Level Modeling (TLM), and SystemC. A holistic method for efficient modeling of complex embedded systems is presented. Results are accuracies close to RTL synthesis but at much higher flexibility, and simulation performance. The SoCRocket system integrates existing standards and introduces new methods for improvement of simulation performance and accuracy. It is shown, amongst others, how modern multi-channel protocols with split transfers can be accurately modeled by compensating inter-transaction timing without introducing additional protocol phases. Standardization gaps in the area of memory modeling and system configuration are closed by standard-open solutions. Furthermore, new infrastructure for modeling signal communication on transaction level, verification of components, and estimating power consumption are presented. All components have been verified in unit tests and were subsequently integrated in a system prototype. For functional verification, as well as measurement of simulation performance and accuracy, the prototype was configured for different abstractions and compared to a VHDL-based RISC reference design (LEON3MP). The loosely-timed platform prototype with blocking communication (LT) is in average 561 times faster than the RTL reference and shows an average timing deviation of 7,04%. The approximately-timed system (AT) with non-blocking communication is 335 times faster. Here, the timing deviation is only 3,03 %, corresponding to a standard deviation of 0.033, proving a very high statistic certainty. The system’s various abstraction levels can be exploited by a multi-stage architecture exploration. This is demonstrated by the example of a hyperspectral image compression
    corecore