% IMPORTANT: The following is UTF-8 encoded. This means that in the presence
% of non-ASCII characters, it will not work with BibTeX 0.99 or older.
% Instead, you should use an up-to-date BibTeX implementation like “bibtex8” or
% “biber”.
@PHDTHESIS{Weihua:774325,
author = {Weihua, Sheng},
othercontributors = {Leupers, Rainer and Isshiki, Tsuyoshi},
title = {{A} compiler infrastructure for embedded multicore
{S}o{C}s},
school = {Rheinisch-Westfälische Technische Hochschule Aachen},
type = {Dissertation},
address = {Aachen},
reportid = {RWTH-2019-11475},
pages = {1 Online-Ressource (128 Seiten) : Illustrationen,
Diagramme},
year = {2019},
note = {Veröffentlicht auf dem Publikationsserver der RWTH Aachen
University 2020; Dissertation, Rheinisch-Westfälische
Technische Hochschule Aachen, 2019},
abstract = {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.},
cin = {611910},
ddc = {621.3},
cid = {$I:(DE-82)611910_20140620$},
typ = {PUB:(DE-HGF)11},
doi = {10.18154/RWTH-2019-11475},
url = {https://publications.rwth-aachen.de/record/774325},
}