MEMTRACE: A Memory, Performance and Energy Profiler Targeting RISC-Based Embedded Systems for Data-Intensive Applications

dc.contributor.advisorPost, Hans-Ulrichen
dc.contributor.authorHübert, Heikoen
dc.contributor.grantorTechnische Universität Berlin, Fakultät IV - Elektrotechnik und Informatiken
dc.date.accepted2009-05-19
dc.date.accessioned2015-11-20T18:50:22Z
dc.date.available2009-06-15T12:00:00Z
dc.date.issued2009-06-15
dc.date.submitted2009-06-15
dc.description.abstractDer Entwurf eingebetteter Hardware/Software-Systeme unterliegt häufig strengen Anforderungen hinsichtlich verschiedener Kriterien wie z.B. Echtzeitfähigkeit, Energieverbrauch und Chipfläche. Insbesondere bei datenintensiven Anwendungen, beispielsweise in Multimediasystemen, spielt die Anzahl von Speicherzugriffen eine dominierende Rolle. Um diesen Kriterien beim Entwurf gerecht zu werden, muss sowohl die Software optimiert als auch eine adäquate Hardwarearchitektur entwickelt werden. Für komplexe Anwendungen kann diese Entwurfsraum-Exploration aufwändig sein und setzt eine detaillierte Analyse der Anwendung und ihrer Implementierungsalternativen voraus. Um den Entwickler bei Entwurf, Optimierung und Scheduling zu unterstützen, werden deshalb Analysewerkzeuge (Profiler) benötigt. Zahlreiche Programme wurden bereits zu diesem Zweck entwickelt, insbesondere Leistungsanalysewerkzeuge existieren seit langem. Die Speicherzugriffs- und Verlustleistungsanalyse gewannen gerade in den letzten zehn Jahren an Relevanz. Die gegenwärtigen Profiler decken jedoch entweder nur einen Teil dieser Analysen ab oder sie können nicht den benötigten Detaillierungsgrad liefern. Beispielsweise können einige der Werkzeuge die Ergebnisse nicht den Quellcodefunktionen zuordnen. Dies verringert das Optimierungspotential, da die Ursache einer Leistungseinbuße nicht genau lokalisiert werden kann. Andere Profiler liefern hingegen eine eingeschränkte Genauigkeit aufgrund generischer Prozessormodelle, niedriger Abtastfrequenz oder Quellcodemodifikationen (Instrumentation). Analysemethoden mit hoher Genauigkeit benötigen oft lange Simulationszeiten, die eine umfassende Systemanalyse verhindern. In dieser Arbeit wird eine neue Profilingmethode vorgestellt, die sowohl eine genaue, schnelle als auch umfangreiche Analyse ermöglicht und damit die Schwächen der erwähnten Methoden überwindet. Die Arbeit beschreibt die Methodik und deren Umsetzung als MEMTRACE Profiler. Durch einen tracingbasierten Ansatz, der einen zyklengenauen Simulator verwendet, können sowohl eine adäquate Simulationszeit als auch eine ausreichende Genauigkeit erreicht werden. Um einen breiten Bereich an Prozessoren abdecken zu können, wurde eine wohldefinierte Schnittstelle zwischen Profiler und Simulator geschaffen. Dadurch kann jedes zyklengenaue Modell verwendet werden, das einen Zugang zu grundlegenden Prozessorressourcen erlaubt, wie z.B. dem Befehlszähler, Zyklenzähler und den Speicherbussen. Außerdem ist der Profiler vom Quellcode der zu untersuchenden Applikation unabhängig, was zu einer höheren Genauigkeit gegenüber den Ergebnissen instrumentationsbasierter Ansätze führt. MEMTRACE liefert zyklengenaue Analyseergebnisse auf Funktions- bzw. Zeilenebene des C-Quellcodes. Die Ergebnisse umfassen Taktzyklen, zahlreiche Speicherzugriffsstatistiken und Energieverbrauchsabschätzungen für eingebettete RISC Prozessoren. Neben diesen Ergebnissen werden zahlreiche weitere Analyseergebnisse generiert, die auf spezielle Optimierungen zugeschnitten sind, welche im Rahmen dieser Arbeit entwickelt wurden. Dabei wird ein Fokus auf Speicherzugriffe gelegt, da deren Optimierung bei datenintensiven Anwendungen ein hohes Potential zur Steigerung der Systemeffizienz mit sich bringt. Zusätzlich zur Softwareanalyse wird durch den Profiler auch eine Untersuchung bus-basierter Systeme ermöglicht, z.B. bestehend aus einem Prozessor, Speichern und Coprozessoren. Dazu werden die Coprozessoren durch abstrakte, aber zyklengenaue Modelle abgebildet sowie MEMTRACE um detaillierte Busanalysefunktionen erweitert. Um eine Abschätzung der Verlustleistung zu unterstützen, wurde exemplarisch ein instruktionsgenaues Verlustleistungsmodell entwickelt und in den Profiler integriert. Anhand zweier Fallstudien wird gezeigt, wie der Profiler erfolgreich innerhalb des Entwurfs von Hardware/Software Systemen für datenintensive Applikationen Anwendung finden konnte.de
dc.description.abstractThe design of embedded hardware/software systems is often subject to strict requirements concerning various aspects, including real time performance, energy consumption and die area. Especially for data-intensive applications, such as multimedia systems, the number of memory accesses is a dominant factor for these aspects. In order to meet the requirements and design a well-adapted system, it is necessary both to optimize the software and to design an adequate hardware architecture. For complex applications, this design space exploration can be difficult and requires in-depth analysis of the application and its implementation alternatives. This calls for profiling tools, which aid the designer in the design, optimization and scheduling of hardware and software. Numerous tools exist for this purpose, and performance profiling solutions especially have been available for decades. Memory and energy profiling for embedded systems have become major issues within the last 10 years. However, the existing tools either cover only parts of the required profiling results or the statistics are not at the required level of detail. Some of the tools provide results only for the entire application and not at a source-code function level. This restricts the optimization potential, as the cause of a performance loss cannot be localized. Other tools suffer from a restricted level of accuracy. Results are based on generic processor architectures or taken with a low sample rate, or the tools apply source code instrumentation. Available profiling mechanisms with high accuracy suffer from long simulation times. This makes a comprehensive system analysis unfeasible. This work presents a novel profiling methodology, which combines fast, accurate and comprehensive profiling in order to overcome the restrictions of the aforementioned techniques. The work describes the developed technique and its implementation as the MEMTRACE profiling tool. The trade-off between a decent simulation time and a sufficient level of accuracy is reached by using a tracing-based profiling approach that applies cycle-accurate simulators. In order to target a broad range of processors, a well-defined interface is established for interconnection with the processor simulator. Thus any cycle-accurate model can be used, as long as it provides access to basic runtime information such as the program counter, cycle counter and memory busses. The profiler is independent of the application’s source code, which leads to higher accuracy as compared to instrumentation-based tools. METRACE delivers cycle-accurate profiling results on a C function or even source code line level. The results include clock cycles, various memory access statistics and energy consumption estimates for embedded RISC-based processors. In addition to these results, the tool generates numerous statistics tailored to the specific optimization techniques that have been developed in this work. A focus is placed on memory access optimization, since for data-intensive applications, this aspect offers a high potential for increasing system efficiency. Additionally to software analysis, the profiler supports an examination of bus-based systems, for example those composed of a processor, memory devices and coprocessors. For this purpose the coprocessors are represented by abstract but cycle-accurate models and MEMTRACE has been extended by detailed bus analysis features. An instruction-accurate power consumption model has been developed for a sample processor and incorporated into the profiler for energy estimation. Two case studies are presented, which show how the applicability of the profiler and the optimization techniques has been proven in the design of hardware/software systems for data-intensive applications.en
dc.identifier.uriurn:nbn:de:kobv:83-opus-22617
dc.identifier.urihttps://depositonce.tu-berlin.de/handle/11303/2472
dc.identifier.urihttp://dx.doi.org/10.14279/depositonce-2175
dc.languageEnglishen
dc.language.isoenen
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.subject.ddc620 Ingenieurwissenschaften und zugeordnete Tätigkeitenen
dc.subject.otherEingebettete Hardware/Software Systemede
dc.subject.otherEnergieverbrauchde
dc.subject.otherH.264/AVC Decoderde
dc.subject.otherProfilingde
dc.subject.otherSpeicherzugriffede
dc.subject.otherEmbedded hardware/software systemsen
dc.subject.otherEnergy consumptionen
dc.subject.otherH.264/AVC decoderen
dc.subject.otherMemory accessesen
dc.subject.otherProfilingen
dc.titleMEMTRACE: A Memory, Performance and Energy Profiler Targeting RISC-Based Embedded Systems for Data-Intensive Applicationsen
dc.title.translatedMEMTRACE: Ein Speicher-, Leistungs- und Energieprofiler ausgerichtet auf RISC-basierte eingebettete Systeme für datenintensive Anwendungende
dc.typeDoctoral Thesisen
dc.type.versionpublishedVersionen
tub.accessrights.dnbfree*
tub.affiliationFak. 4 Elektrotechnik und Informatik::Inst. Technische Informatik und Mikroelektronikde
tub.affiliation.facultyFak. 4 Elektrotechnik und Informatikde
tub.affiliation.instituteInst. Technische Informatik und Mikroelektronikde
tub.identifier.opus32261
tub.identifier.opus42149
tub.publisher.universityorinstitutionTechnische Universität Berlinen

Files

Original bundle
Now showing 1 - 1 of 1
Loading…
Thumbnail Image
Name:
Dokument_57.pdf
Size:
3.77 MB
Format:
Adobe Portable Document Format

Collections