h1

h2

h3

h4

h5
h6
http://join2-wiki.gsi.de/foswiki/pub/Main/Artwork/join2_logo100x88.png

A compiler infrastructure for embedded multicore SoCs = Eine Compiler-Infrastruktur für eingebettete Multicore-SoCs



Verantwortlichkeitsangabevorgelegt von M.Sc. Weihua Sheng

ImpressumAachen 2019

Umfang1 Online-Ressource (128 Seiten) : Illustrationen, Diagramme


Dissertation, Rheinisch-Westfälische Technische Hochschule Aachen, 2019

Veröffentlicht auf dem Publikationsserver der RWTH Aachen University 2020


Genehmigende Fakultät
Fak06

Hauptberichter/Gutachter
;

Tag der mündlichen Prüfung/Habilitation
2019-11-28

Online
DOI: 10.18154/RWTH-2019-11475
URL: http://publications.rwth-aachen.de/record/774325/files/774325.pdf

Einrichtungen

  1. Lehrstuhl für Software für Systeme auf Silizium (611910)

Inhaltliche Beschreibung (Schlagwörter)
compiler (frei) ; multicore (frei) ; system-on-chip (frei)

Thematische Einordnung (Klassifikation)
DDC: 621.3

Kurzfassung
Compiler spielen eine zentrale Rolle im Softwareentwicklungsprozess für Mikroprozessoren, indem sie High-Level Programmiersprachen automatisch in maschinenspezifischen ausführbaren Code übersetzen. Während Prozessoren lange Zeit skalar waren, galten Compiler aufgrund ihrer erfolgreichen internen Kapselung maschinenspezifischer Details als Black Box in der Software-Community. Vor über einem Jahrzehnt begannen große Hersteller von Computerprozessoren, mehrere (einfache) Kerne zu einem einzigen Chip zu bauen, nämlich Multicores, um die Skalierung gemäß Moores Gesetz beizubehalten. Die Embedded-Computing-Branche folgte diesem Beispiel und führte einige Jahre später Multicores in aggressiven Marketingkampagnen ein, um die Anzahl der Prozessoren für die Produktdifferenzierung in der Unterhaltungselektronik herauszustellen. Die Performance "Free Lunch", die auf dem Wachstum schnellerer Prozessoren basiert, ist vorbei. Die Compilertechnologie wird nicht für Multicore-Architekturen entwickelt und skaliert, was erheblich zur Softwarekrise im Multicore-Zeitalter beiträgt. Diese Arbeit befasst sich mit den Herausforderungen, die mit der Entwicklung von Compilern für die Entwicklung von Multicore-SoCs (Systems-On-Chip) verbunden sind, wobei der Schwerpunkt auf eingebetteten Systemen wie drahtlosen Terminals und Modems liegt. Form follows function. Eingebettete Systeme adressieren im Allgemeinen eine viel engere Anwendungsdomäne als andere Computerdomänen. Dies erfordert eingebettete Produkte, deren Leistung um ein Vielfaches effizienter ist als die von Allzweckcomputern. Daher wird ein höherer Grad an Heterogenität bei Prozessoren und bei der Organisation der SoC-Architektur oft als Mittel zur Erfüllung derart strenger Anforderungen angesehen. Die Softwareentwicklung für solch komplexe Multicore-Plattformen ist zu einer entmutigenden Aufgabe geworden. Darüber hinaus sind die Lebenszyklen eingebetteter Produkte in der Regel viel kürzer. Infolgedessen sind die Ausgaben der Unternehmen für Softwareentwicklung in letzter Zeit in die Höhe geschossen. Our approach to tackling the multicore programming challenge is presented herein from a practical perspective. Eine einfache und übersichtliche C-Spracherweiterung mit der Bezeichnung CPN (d. H. C für Prozessnetzwerke) dient zum Erfassen von Streaming-Modellen, die in eingebetteten Anwendungen üblich sind. Als Kernkomponente für eine Multicore-Compiler-Infrastruktur wurde der Source-to-Source-Compiler cpn-cc entwickelt. Im Gegensatz zu den Compilern für skalare Prozessoren erfordert cpn-cc nicht nur CPN-Programme als Eingabe, sondern auch eine Mapping-Description, die die räumliche und zeitliche Zuordnung von Prozessen zu Verarbeitungselementen angibt, die auf der Ziel-Multicore-Plattform verfügbar sind. Die cpn-cc- und umgebenden Softwarekomponenten im Framework werden erweiterbar und an verschiedene Anforderungen in der Multicore-Entwurfspraxis anpassbar gemacht. Mehrere reale Multicore-Plattformen wie TI OMAP 3530 und TI C6678 sowie virtuelle Plattformen auf Systemebene wurden erfolgreich als Zielplattformen eingesetzt. Das Mapping von Benchmarks auf Multicores mit dieser Methode hat zu einer guten Beschleunigung geführt, und die Produktivität der Softwareentwicklung wurde ebenfalls erheblich verbessert. Darüber hinaus haben fortgeschrittene Anwendungsfälle wie die automatische Kalibrierung von Streaming-Anwendungen für die Erkundung von Software-Mappings und die Migration von Legacy-Software für Tablets die Vielseitigkeit der in dieser Arbeit entwickelten Multicore-Compiler-Infrastruktur demonstriert.

Compilers play a pivotal role in the software development process for microprocessors, by automatically translating high-level programming languages into machine-specific executable code. For a long time, while processors were scalar, compilers were regarded as a black box among the software community, due to their successful internal encapsulation of machine-specific details. Over a decade ago, major computing processor manufacturers began to compile multiple (simple) cores into a single chip, namely multicores, to retain scaling according to Moore's law. The embedded computing industry followed suit, introducing multicores years later, amid aggressive marketing campaigns aimed at highlighting the number of processors for product differentiation in consumer electronics. While the transition from scalar (uni)processors to multicores is an evolutionary step in terms of hardware, it has given rise to fundamental changes in software development. The performance ``free lunch'', having ridden on the growth of faster processors, is over. Compiler technology does not develop and scale for multicore architectures, which contributes considerably to the software crisis in the multicore age. This thesis addresses the challenges associated with developing compilers for multicore SoCs (Systems-On-Chip) software development, focusing on embedded systems, such as wireless terminals and modems. Form follows function. Embedded systems generally address a much narrower application domain than other computing domains do. This requires embedded products that are several degrees more efficient in performance than general-purpose computing products. Therefore, a higher degree of heterogeneity in processors and SoC architecture organization is often perceived as a means of meeting such stringent requirements. Software development for such complex multicore platforms has become a daunting task. Additionally, the life cycles of embedded products are typically much shorter. Consequently, companies' spending on software engineering has recently skyrocketed. Our approach to tackling the multicore programming challenge is presented herein from a practical perspective. A clean, lightweight C language extension, called CPN (i.e., C for process networks), is designed to capture streaming models that are common in embedded applications. A source-to-source compiler, cpn-cc, was developed as the core component for a multicore compiler infrastructure. Unlike the compilers for scalar processors, cpn-cc requires not only CPN programs as input, but also requires a mapping description that specifies the spatial and temporal mapping of processes to processing elements available in the target multicore platform. The cpn-cc and surrounding software components in the framework are rendered extensible and customizable to various requirements in the multicore design practice. Several real-world multicore platforms, such as TI OMAP 3530 and TI C6678, as well as system-level virtual platforms, have been successfully used as target platforms. Mapping benchmarks onto multicores using this method has achieved good speedups, and software development productivity has also been greatly improved. Moreover, advanced use cases, such as automatic calibration of streaming applications for software mapping exploration and legacy software migration for tablets, have demonstrated the versatility of the multicore compiler infrastructure developed in this work.

OpenAccess:
Volltext herunterladen PDF
(zusätzliche Dateien)

Dokumenttyp
Dissertation / PhD Thesis

Format
online

Sprache
English

Externe Identnummern
HBZ: HT020318063

Interne Identnummern
RWTH-2019-11475
Datensatz-ID: 774325

Beteiligte Länder
Germany

 GO


OpenAccess

QR Code for this record

The record appears in these collections:
Dokumenttypen > Qualifikationsschriften > Dissertationen
Fakultät für Elektrotechnik und Informationstechnik (Fak.6)
Publikationsserver / Open Access
Öffentliche Einträge
Publikationsdatenbank
611910

 Datensatz erzeugt am 2019-12-05, letzte Änderung am 2023-04-08


Dieses Dokument bewerten:

Rate this document:
1
2
3
 
(Bisher nicht rezensiert)