Annotation of res/PP-compiler.tex, revision 1.16

1.1       andi        1: \documentclass[11pt,a4paper]{article}
                      2: %\usepackage{latexsym}
                      3: \usepackage{url}
                      4: %\usepackage{times}
                      5: \usepackage{comment}
                      6: \pagestyle{plain}
                      7: \setlength{\textwidth}{16truecm}
                      8: \setlength{\textheight}{24truecm}
                      9: \setlength{\oddsidemargin}{-0.3truecm}
                     10: \setlength{\evensidemargin}{-0.3truecm}
                     11: \setlength{\topmargin}{0.0truecm}
                     12: \setlength{\topskip}{0.0truecm}
                     13: \setlength{\headheight}{0.0truecm}
                     14: \setlength{\headsep}{0.0truecm}
                     15: 
                     16: \newcommand{\emn}[1]{{\em #1\/}}
                     17: \newcommand{\NOTE}[1]{{\medskip\bf #1\medskip}}
                     18: 
                     19: \title{\bf PP \emph{Compilation Techniques for Robust Embedded Systems}}
                     20: 
1.13      knoop      21: \author{{\sc Jens Knoop and Andreas Krall}\\
                     22: \{knoop,andi\}@complang.tuwien.ac.at
1.1       andi       23: }
                     24: 
                     25: \bibliographystyle{unsrt}
                     26: 
                     27: \begin{document}
                     28: \maketitle
                     29: 
1.10      knoop      30: PP leader: \emph{Jens Knoop and Andreas Krall (beide E185.1)}
1.1       andi       31: 
1.16    ! knoop      32: Associated researchers: \emph{Anton Ertl (E185.1), Bernhard Gramlich (E185.2),}\\
        !            33: \phantom{Associated researchers: } \ \ \ \ \emph{Franz Puntigam (E185.1)}
1.1       andi       34: 
                     35: \subsubsection*{Motivation:} 
                     36: %\emph{Informal description of the purpose of the PP (3-5 lines)}
                     37: Every embedded system consists of software which is written in a high
                     38: level language, compiled to machine language and executed on a
1.10      knoop      39: processor. For robust embedded systems new verified analysis and
                     40: compilation, simulation, and specification methods are necessary to
                     41: support the programmer during application development and maintenance
                     42: and to optimize for performance, power, space, concurrency and
                     43: reliability during compilation.
                     44: %for short, new programming and
                     45: %compilation techniques for robust embedded systems development and
                     46: %deployment.
1.1       andi       47: 
                     48: \subsubsection*{State of the art and related work:} 
                     49: %\emph{Briefly describe the scientific state of the art (20-30 lines)}
                     50: 
1.2       andi       51: %Compilation Techniques for Reliability
                     52: Because of the exponential increase of the number of transistors and
                     53: the continuing decrease of the feature sizes of current processors
1.10      knoop      54: \emph{soft errors} mainly caused by energetic particles are becoming an
1.2       andi       55: important design issue for robust embedded systems. Blome et
                     56: al.~\cite{Blome+06} observed that a majority of faults that affect the
                     57: architectural state of a processor come from the register file. Lee
1.10      knoop      58: and Shrivastava \cite{LeeShrivastava09a,LeeShrivastava09c} proposed
                     59: different solutions to cope with this problem. The first assigns
                     60: variables depending on their lifetime to either the ECC protected or
                     61: the unprotected part of a register file to balance energy consumption
                     62: and reliability \cite{LeeShrivastava09a}.  The second spills registers
                     63: to ECC protected memory if the register contents are not used for a
                     64: long period \cite{LeeShrivastava09c}.  There exist complete software
                     65: solutions which use different forms of code duplications
                     66: \cite{Oh+02a,Reis+05}, which do failure virtualization
                     67: \cite{WapplerMueller08} or which use techniques like control flow
                     68: checking \cite{Oh+02b}. A complete overview of processor description
                     69: languages and generation of compilers and simulators from processor
                     70: specifications gives the book of Mishra and Dutt \cite{MishraDutt08}.
1.4       andi       71: A good survey of current instruction set simulators gives our chapter
1.10      knoop      72: in the \emph{Handbook of Signal Processing systems} \cite{BrHoKr09}. A
                     73: famous instruction set simulator with modelling of energy consumption
                     74: is \emph{Wattch} \cite{BrooksTiwariMartonosi00}.
                     75: 
                     76: Methods for \emph{compiler verification} do exist
                     77: \cite{Langmaack97a,Po-lncs124,MMO-lncs1283,Goos:99:verifix,Goos:00:ASM,1328444}. 
                     78: Most notably are the pioneering approaches of the
                     79: \emph{ProCoS} \cite{Langmaack96a} and the \emph{Verifix}
1.13      knoop      80: \cite{Goerigk-et-al:CC96,GlesnerGoosZimmeermann04,GoosZimmermann00} projects, and more recently of 
1.10      knoop      81: the \emph{CompCert} project \cite{CompCert,BDL-fm06,Le-popl06}. There
                     82: is also a rich body of work on the related approaches of
                     83: \emph{translation validation}
1.14      knoop      84: \cite{Pnueli98a,Pnueli98b,Ne-pldi00,ZaksPnueli08}, 
1.13      knoop      85: \emph{certifying compilation} 
1.10      knoop      86: \cite{NL-pldi98,Colby-etal-pldi00,BlechPoetzsch07}, and
                     87: \emph{proof-carrying code} \cite{Ne-popl97,AF-popl00,FNSG-tlfi07}. 
1.13      knoop      88: However, an integratedly verified compiler, which is optimizing and
                     89: ensures non-functional program properties such as on time and space
1.14      knoop      90: resources required by the compiled program is still
1.13      knoop      91: missing. Complementary to these approaches are approaches focusing on
                     92: frameworks for verifying compiler optimizations
                     93: \cite{781156,1040335,Kundu+09} or the verification of specific
1.14      knoop      94: compiler optimizations, such as the \emph{Lazy Code Motion}
1.13      knoop      95: \cite{TristanLeroy09} or instruction scheduling
                     96: \cite{TristanLeroy08}. By far more ambitious and a grand challenge for
                     97: computing research is Tony Hoare's vision of a \emph{verifying
                     98: compiler} which proves properties of the translated program
                     99: \cite{Hoare03}.
                    100: 
1.14      knoop     101: \emph{Resource analysis}, especially worst-case execution time analysis $($WCET$)$ for real-time systems, which are often safety-critical, is a vibrant field of research in academia and industry and of fast growing economical relevance,
1.10      knoop     102: especially in the avionics and automotive industry. A survey on
                    103: state-of-the-art tools and methods for WCET analysis has recently been
                    104: given by Wilhelm et al.~\cite{Wilhelm:TECS2008}. The outcomes of the
                    105: WCET Tool Challenges \cite{Gus:ISoLA2006,Holsti:WCET2008}, however,
                    106: demonstrate that all these tools have their own strengths and
                    107: limitations. In particular, they all rely to some extent on
                    108: user-assistance and thus a \emph{trusted information basis} guiding
                    109: the WCET analysis \cite{Prantl:WCET2009}.
                    110: 
1.1       andi      111: 
1.13      knoop     112: %\paragraph{AK}
                    113: %Three aspects of program and compiler correctness exist. The verifying
                    114: %compiler proves properties of the translated program and is a grand challenge
                    115: %for computing research \cite{Hoare03}. A certified compiler like Verifix is
                    116: %proven once to do semantically equivalent optimizations and translations
                    117: %\cite{GlesnerGoosZimmeermann04,GoosZimmermann00}. Translation validation proves
                    118: %at every compiler run that the translation is correct and was introduced by
                    119: %Pnueli et al.\ \cite{Pnueli98a,Pnueli98b} and Necula \cite{Necula00}. Until now
                    120: %some optimizations have been verified, recently lazy code motion
                    121: %\cite{TristanLeroy09}, instruction scheduling \cite{TristanLeroy08}, or the whole
                    122: %code generation phase \cite{BlechPoetzsch07}. Another research direction is the
                    123: %construction of general frameworks for validation \cite{ZaksPnueli08} or
                    124: %generalizations like parameterized equivalence checking \cite{Kundu+09}.
1.9       andi      125:  
1.7       andi      126: 
1.13      knoop     127: 
                    128: 
1.1       andi      129: \subsubsection*{Previous achievements:} 
                    130: %\emph{Brief description of your own contributions to the related
                    131: %scientific state-of-the art (5-10 lines)}
1.10      knoop     132: Jens Knoop's research focuses on proven correct and optimal program
                    133: analyses and optimizations \cite{Kn-lncs1428}. He is the co-inventor
                    134: of the \emph{Lazy Code Motion}
1.13      knoop     135: \cite{KRS-pldi92,KRS-retrolcm04,XueK06}, and numerous other program
                    136: analyses and optimizations including
                    137: \emph{partial dead-code elimination}  \cite{KRS-pldi94} and 
                    138: \emph{partially redundant assignment elimination} \cite{KRS-pldi94}, 
                    139: which are now part of state-of-the-art compilers. Regarding the
                    140: present PP, particularly important are the achievements on
1.16    ! knoop     141: resource-aware program analyses and optimizations including the
1.13      knoop     142: code-size sensitive \emph{Sparse Code Motion} \cite{RKS-popl00}, and its 
                    143: counterpart for \emph{Speculative Code Motion} \cite{scholz04}.
                    144: Recent research in the frame of the FWF project CoSTA and the EU FP7
                    145: project ALL-TIMES focuses on compiler support for
1.10      knoop     146: \emph{worst-case execution time analysis} for safety-critical
                    147: real-time embedded systems
1.13      knoop     148: \cite{Prantl:WCET2009,SchrSchoKn09,Prantl:WLPE2008,prantl_et_al:DSP:2008:1661,kirner_et_al:DSP:2008:1657,kirner_et_al:DSP:2007:1197}.
                    149: 
                    150: % He served on $50+$ 
                    151: %programme committees of international conferences including PLDI, CC,
                    152: %TACAS, Formal Methods, and Supercomputing. He was the General Chair of
                    153: %PLDI'02 and ETAPS'06, and is Programme Committee Co-Chair of PACT'10. He is the
                    154: %iniator and co-founder of the annual workshop series on
                    155: %\emph{Compiler Optimization meets Compiler Verification} (since 2002),
                    156: %co-organizer of 4 Dagstuhl seminars, most recently on \emph{Verifying
                    157: %Optimizing Compilation}, and a member of the European Network of
                    158: %Excellence HiPEAC.
1.10      knoop     159: %, and the IFIP WG 2.4 \emph{Software Implementation Technology}.
1.1       andi      160: 
                    161: Andreas Krall does research in the area of architecture description
                    162: languages and the automatic generation of highly optimizing compilers,
                    163: efficient instruction set simulators and hardware from one single
                    164: specification of a processor \cite{BrFeKrRi09,BrEbKr07,FaKrHo07,
                    165: FarKrStBrand06,Krall+04micro}. An important focus is on optimization
                    166: techniques for embedded processors
1.13      knoop     167: \cite{EbBrSchKrWiKa08,MeKr07,PrKrHo06,HiKr03} as he leads the Christian
1.1       andi      168: Doppler research laboratory {\em compilation techniques for embedded
                    169: processors} with partners from industry (Infineon, OnDemand
                    170: Microelectronics).
                    171: 
1.15      knoop     172: The PP is designed to synergetically combine the complementary
                    173: expertises of Jens Knoop on verified resource-aware program analyses
                    174: and optimizations and of Andreas Krall on compilation techniques for
                    175: embedded processors. Their complementary expertise is essential for
                    176: the PP.
1.13      knoop     177: 
1.1       andi      178: 
                    179: \subsubsection*{Goals (first 4 years):}
                    180: %\emph{Description of the research 
                    181: %topics to be addressed during the first 4 years. Make sure to explicitly 
                    182: %stress what the significant additions to the scientific knowledge are, 
                    183: %and why they are important. (30-40 lines)}
1.13      knoop     184: The goals of the first 4 years are as follows:
1.1       andi      185: 
1.13      knoop     186: \begin{itemize}
                    187: \item New modeling and representation techniques of non-functional 
                    188:       program and system properties on the programming and
                    189:       intermediate language levels
                    190: \item Definitions and measures of non-functional program and system
                    191:       properties (performance, time, space/memory, power,
                    192:       concurrency).
                    193: \item Modeling and representation of these properties alongside 
                    194:       with the programming languages semantics 
                    195: \item Adapting and enhancing state-of-the-art compilation techniques 
                    196:       towards non-functional property and platform awareness
                    197: \item New functional and non-functional property and platform-aware 
                    198:       compilation techniques
                    199: \item Analyses for non-functional program and system properties 
                    200: \item Functional and non-functional property and platform-aware 
                    201:       code generation techniques
                    202: \item Enabling validation and verification throughout the compilation
                    203:       process 
                    204: \item Techniques for reducing or eliminating trusted code,
                    205:       annotation, etc., bases
                    206: \end{itemize}
                    207: These goals are essential for making the development and the
                    208: compilation of embedded systems software more reliable and
                    209: robust. Moreover, they are the basis for the second 4 years extension
                    210: of the project.
1.1       andi      211: 
                    212: 
                    213: \subsubsection*{Work Plan (first 4 years):}
                    214: %\emph{Brief description of how 
                    215: %you intend to conduct the actual research during the first 4 years. Be sure 
                    216: %to also describe and (coarsely) quantify the resources (staff, cost of 
                    217: %special equipment) required for this work in a table. (20-30 lines)}
1.11      knoop     218: Compilation techniques for robust embedded systems comprise different
                    219: areas.  Therefore, the project is divided into three work packages:
1.13      knoop     220: \emph{compilation and simulation techniques for reliability}, \emph{verified
                    221: compilation} and \emph{resource analysis}.
1.1       andi      222: 
1.5       andi      223: \paragraph*{WP1 - Compilation and Simulation Techniques for Reliability}
1.1       andi      224: 
1.6       andi      225: In previous work we have developed a processor description language
                    226: with a very concise semantics from where we automatically generate
                    227: optimized compilers \cite{BrEbKr07} and high efficient instruction set
                    228: simulators \cite{BrFeKrRi09}. This environment we use as testbed for
                    229: our compiler optimizations for embedded processors
                    230: \cite{EbBrSchKrWiKa08,PrKrHo06,MeKr07}. We will extend this
                    231: environment to do research on compilation and simulation techniques to
                    232: enhance the reliability of processor/memory systems by mixed
                    233: hardware/software and pure software techniques. 
1.1       andi      234: 
1.5       andi      235: \begin{itemize}
                    236: \item Specification method to specify an energy consumption model in
                    237:       a processor specification.
                    238: \item Specification method for redundancy and error correction in the
                    239:       processor specification
                    240: \item Specification method for fault injection and fault checking in
                    241:       the processor specification
                    242: \item Generation of optimized instruction set simulators from the
1.6       andi      243:       extended processor specification
                    244: \item Generation of optimizing compilers from the extended processor
                    245:       specification
1.5       andi      246: \item Research into new compiler optimizations to increase reliability by
                    247:       pure software solutions, mixed hardware/software solutions and
                    248:       balancing performance, code space, reliability and energy consumption
                    249: \item Research of correctness proofs and validation of the new optimizations
                    250: 
                    251: \end{itemize}
                    252: 
                    253: \paragraph*{WP2 - Verified Compilation}
                    254: 
1.8       andi      255: Suitable semantics are necessary which support efficient translation
1.11      knoop     256: validation or support easy verification of a compiler. We will
                    257: research into different semantics and into mappings between the
                    258: semantics of our processor description language \cite{BrEbKr07} and a
                    259: compiler backend semantics, intermediate representation semantics
                    260: (compatible to LLVM) and source language semantics. The main research
                    261: will be on verification and translation validation for all kinds of
                    262: compiler optimizations.
1.8       andi      263: 
                    264: \begin{itemize}
                    265: \item Evaluate different semantics regarding suitability for compiler
                    266:       verification and translation validation, eventually develop new
                    267:       semantics
                    268: \item Develop a translator for an automatic mapping from our processor
                    269:       description language into verification semantics
                    270: \item Develop a validation system from the intermediate representation
                    271:       (LLVM) to the processor semantics
                    272: \item Develop a validation system from the source language (C) to the
                    273:       intermediate representation (LLVM)
                    274: \item Research into verification and translation validation for different
                    275:       frontend and backend optimizations
                    276: \end{itemize}
1.5       andi      277: 
1.11      knoop     278: \paragraph*{WP3 - Resource Analysis}
                    279: For safety-critical real-time embedded sytems resource consumption
                    280: measured in terms of a quantitative aspect of a program execution such
                    281: as execution time, storage use, and power consumption belongs rather
                    282: to the functional properties of an application rather its
                    283: non-functional ones. Formal guarantees on resource consumption are
                    284: thus essential and mandatory to ensure the robustness of such
                    285: systems. This requires new and usually more complex but more
                    286: expressive program analyses and transformations to support the (1)
                    287: programmer during source code development by early and automatically
                    288: providing hints on resource consumption and (2) the compiler to
                    289: optimize for resource consumption. In our previous work we focused on
                    290: compiler support for
1.14      knoop     291: \emph{worst-case execution time analysis $($WCET$)$} \cite{Prantl:WCET2009,Prantl:WLPE2008,prantl_et_al:DSP:2008:1661,kirner_et_al:DSP:2008:1657}. Based on this work we will extend this research towards 
1.11      knoop     292: other quantitive aspects of resource consumption, especially storage
                    293: usage, towards these two global objectives, using the programming
                    294: environment used there as testbed for implementation
                    295: \cite{Prantl:WCET2009,Prantl:WLPE2008,prantl_et_al:DSP:2008:1661,kirner_et_al:DSP:2008:1657}.
                    296: 
                    297: \begin{itemize}
                    298: \item Research into new program analyses for providing high-quality
                    299:       bounds on resourse consumption which are useful for both the
                    300:       application programmer and the compiler.
                    301: \item Research new program analyses and static optimizations 
                    302:       to optimize for resource consumption and to help complying to
                    303:       possibly given limits.
                    304: \item Research suitable abstraction levels of interfaces and modes
                    305:       of interaction between fully automatic program analysis and
                    306:       verification methods and semi-automatic ones relying on
                    307:       user-assistance because of undecidability issues
                    308: \item Research the synergies and the trade-off between fully 
                    309:       automatic program analysis and verification methods and
                    310:       semi-automatic ones utilizing user-assistance on high-quality
                    311:       resource bounds and the computational costs to compute them.
                    312: \item Research simulation and profiling methods to assess the 
1.13      knoop     313:       quality of resource consumption analyses and to support 
                    314:       correctness and security checks at run-time. 
1.11      knoop     315: \end{itemize}
                    316: Overall, this WP will contribute to the design, foundations,
                    317: verification, implementation, and application of resource analyses.
                    318: 
1.1       andi      319: 
1.2       andi      320: 
1.1       andi      321: 
                    322: \begin{tabular}{llll}
1.5       andi      323: \\
1.1       andi      324: \hline
1.2       andi      325: {\bf Pos} & {\bf Type} & {\bf Description}    & {\bf Duration} \\
                    326: NN1 & PhD & reliable compilation / simulation & 4 years \\
1.5       andi      327: NN2 & PhD & verified compilation              & 4 years \\
1.14      knoop     328: NN3 & PhD & resource analysis                 & 4 years \\
1.1       andi      329: \hline
                    330: \end{tabular}
                    331: 
                    332: 
                    333: \subsubsection*{Goals (last 4 years):}
                    334: %\emph{Brief description of the 
1.12      andi      335: %research topics to be addressed during the last 4 years. Make sure to 
1.1       andi      336: %explicitly stress what the significant additions to the scientific 
                    337: %knowledge are, and why they are important. (20-30 lines)}
                    338: 
1.12      andi      339: In the last 4 years we will extend the research of the first years into
                    340: some additional directions like
                    341: 
                    342: \begin{itemize}
                    343: \item New programming languages and compilers for RESs
                    344: \item Non-functional properties and requirements as first-class language and
                    345:       compiler citizens
                    346: \item New compilation techniques enabling a uniform and integrated approach
                    347:       for ensuring functional and non-functional program and system requirements
                    348: \item Verified compilers, proof-carrying code, verifying compilation for RESs
                    349: \item Making legacy applications fit to and available on RESs
                    350: \item Techniques for adjusting and decompiling legacy applications
                    351: \end{itemize}
                    352: 
                    353: Application of the results of this research reduces the cost of the
                    354: development of reliable and correct embedded systems and makes them
                    355: safer and robust.
1.1       andi      356: 
                    357: \subsubsection*{Collaboration with other PPs:}
                    358: %\emph{List the PPs you are expecting to collaborate with, and describe briefly
                    359: %the topic and  nature of such a collaboration. (10-20 lines)}
                    360: 
                    361: \begin{itemize}
                    362: \item PP Composition of Non-functional Requirements [I.S.T.A./Henzinger]:
                    363:       Links to specification and modeling of timing properties, to execution
                    364:       models, hardware and software models.
                    365: \item PP Composition and Predictability in RES Architectures
1.14      knoop     366:       [E182.1/Puschner]: Links to hard- and software models for time
1.1       andi      367:       predictable systems, verification of timing behaviour.
                    368: \item PP Formal Verification for Robustness [E184/Veith]: Links to software
1.10      knoop     369:       model-checking and testing of code (on source code and intermediate
1.1       andi      370:       code levels), support for program analysis and transformation.
1.14      knoop     371: \item PP Modeling \& Analysis of Robust Distributed Systems [E182.2/Schmid]:
1.1       andi      372:       Links to functional and non-functional system requirements,
                    373:       distribution, concurrency.
                    374: \end{itemize}
                    375: 
                    376: \subsubsection*{External Collaborations:}
                    377: %\emph{List envisioned international  and national collaborations, and
                    378: %describe briefly the topic and nature  of such a collaboration. (5-10
                    379: %lines)}
1.10      knoop     380: \begin{itemize}
1.12      andi      381: \item Walter Binder, University of Lugano, Switzerland (resource analysis)
                    382: \item Sabine Glesner, TU Berlin, Berlin, Germany (verified compilation)
                    383: \item Aviral Shrivastava, Arizona State University, Tempe, AZ, USA (reliable compilation)
1.10      knoop     384: \item Wolf Zimmermann, Martin-Luther Universit\"at Halle-Wittenberg, Halle, Germany
1.12      andi      385:       (verified compilation)
1.10      knoop     386: \end{itemize}
1.1       andi      387: 
                    388: \begin{comment}
                    389: %Bitte hier die Bibtex-Entries  einfuellen, z.B.,
                    390: 
                    391: 
                    392: ------------------------------------
                    393: 
                    394: @article{Hoare,
                    395:  author = {Tony Hoare},
                    396:  title = {The verifying compiler: A grand challenge for computing research},
                    397:  journal = {Journal of the ACM},
                    398:  volume = {50},
                    399:  number = {1},
                    400:  year = {2003},
                    401:  issn = {0004-5411},
                    402:  pages = {63--69},
                    403:  doi = {http://doi.acm.org/10.1145/602382.602403},
                    404:  publisher = {ACM},
                    405:  address = {New York, NY, USA},
                    406:  }
                    407:  
                    408:  @article{1328444,
                    409:  author = {Jean-Baptiste Tristan and Xavier Leroy},
                    410:  title = {Formal verification of translation validators: a case study on instruction scheduling optimizations},
                    411:  journal = {SIGPLAN Not.},
                    412:  volume = {43},
                    413:  number = {1},
                    414:  year = {2008},
                    415:  issn = {0362-1340},
                    416:  pages = {17--27},
                    417:  doi = {http://doi.acm.org/10.1145/1328897.1328444},
                    418:  publisher = {ACM},
                    419:  address = {New York, NY, USA},
                    420:  }
                    421:  
                    422:  @article{1314860,
                    423:  author = {Jan Olaf Blech and Arnd Poetzsch-Heffter},
                    424:  title = {A Certifying Code Generation Phase},
                    425:  journal = {Electron. Notes Theor. Comput. Sci.},
                    426:  volume = {190},
                    427:  number = {4},
                    428:  year = {2007},
                    429:  issn = {1571-0661},
                    430:  pages = {65--82},
                    431:  doi = {http://dx.doi.org/10.1016/j.entcs.2007.09.008},
                    432:  publisher = {Elsevier Science Publishers B. V.},
                    433:  address = {Amsterdam, The Netherlands, The Netherlands},
                    434:  }
                    435:  
                    436: @INPROCEEDINGS{LeeShrivastava09,
                    437:         TITLE       = {A Compiler Optimization to Reduce Soft Errors in Register Files},
                    438:         AUTHOR      = {Jongeun Lee and Aviral Shrivastava},
                    439:         BOOKTITLE   = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
                    440:         EDITOR      = {Mahmut Kandemir},
                    441:         PUBLISHER   = {ACM},
                    442:         PAGES       = {??--??},
                    443:         ADDRESS     = {Dublin},
                    444:         MONTH       = {June},
                    445:         YEAR        = {2009},
                    446: }
                    447: 
                    448: @BOOK{MishraDutt08,
                    449:         TITLE       = {Processor Description Languages},
                    450:         AUTHOR      = {Prabhat Mishra and Nikil Dutt (Editor)},
                    451:         PUBLISHER   = {Morgan Kaufmann},
                    452:         YEAR        = {2008},
                    453: }
                    454: 
                    455: 
                    456: 
                    457: %Eigene Referenzen ab hier.
                    458: 
                    459: @InProceedings{SchrSchoKn09,
                    460:         TITLE       = "Adding Timing-Awareness to {AUTOSAR} Basic-Software - A Component Based Approach",
                    461:         AUTHOR      = "Dietmar Schreiner and Markus Schordan and Jens Knoop",
                    462:         BOOKTITLE   = "12th IEEE International Symposium on Object/component/service-oriented
                    463:                        Real-time distributed Computing (ISORC 2009)",
                    464:         PUBLISHER   = "IEEE",
                    465:         ADDRESS     = "Tokyo, Japan",
                    466:         YEAR        = "2009",
                    467:         MONTH       = "March",
                    468:         PAGES       = "288--292",
                    469: }
                    470: 
                    471: @inproceedings{Prantl:WLPE2008,
                    472:        Address = {Udine, Italy},
                    473:        Author = {Adrian Prantl and Jens Knoop and Markus Schordan and Markus Triska},
                    474:        Booktitle = {The 18th Workshop on Logic-based methods in Programming Environments (WLPE 2008)},
                    475:        Month = {December 12},
                    476:        Title = {Constraint solving for high-level WCET analysis},
                    477:        Year = {2008},
                    478:         URL = {http://costa.tuwien.ac.at/papers/wlpe08.pdf}
                    479: }
                    480: 
                    481: @InProceedings{prantl_et_al:DSP:2008:1661,
                    482:   author =     "Adrian Prantl and Markus Schordan and Jens Knoop",
                    483:   title =      "TuBound - {A} Conceptually New Tool for Worst-Case
                    484:                 Execution Time Analysis",
                    485:   booktitle =  "8th Intl. Workshop on Worst-Case Execution Time (WCET)
                    486:                 Analysis",
                    487:   year =       "2008",
                    488:   editor =     "Raimund Kirner",
                    489:   publisher =  "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
                    490:                 Germany",
                    491:   address =    "Dagstuhl, Germany",
                    492:   URL =        "http://drops.dagstuhl.de/opus/volltexte/2008/1661",
                    493:   annote =     "Keywords: Worst-case execution time (WCET) analysis,
                    494:                 Tool Chain, Flow Constraints, Source-To-Source",
                    495:   ISBN =       "978-3-939897-10-1",
                    496:   note =       "also published in print by Austrian Computer Society
                    497:                 (OCG) under ISBN 978-3-85403-237-3",
                    498: }
                    499: 
                    500: @InProceedings{kirner_et_al:DSP:2008:1657,
                    501:   author =     "Raimund Kirner and Albrecht Kadlec and Adrian Prantl
                    502:                 and Markus Schordan and Jens Knoop",
                    503:   title =      "Towards a Common {WCET} Annotation Language: Essential
                    504:                 Ingredients",
                    505:   booktitle =  "8th Intl. Workshop on Worst-Case Execution Time (WCET)
                    506:                 Analysis",
                    507:   year =       "2008",
                    508:   editor =     "Raimund Kirner",
                    509:   publisher =  "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
                    510:                 Germany",
                    511:   address =    "Dagstuhl, Germany",
                    512:   URL =        "http://drops.dagstuhl.de/opus/volltexte/2008/1657",
                    513:   annote =     "Keywords: Worst-case execution time (WCET) analysis,
                    514:                 annotation languages, WCET annotation language
                    515:                 challenge",
                    516:   ISBN =       "978-3-939897-10-1",
                    517:   note =       "also published in print by Austrian Computer Society
                    518:                 (OCG) under ISBN 978-3-85403-237-3",
                    519: }
                    520: 
                    521: @InProceedings{kirner_et_al:DSP:2007:1197,
                    522:   author =     "Raimund Kirner and Jens Knoop and Adrian Prantl and
                    523:                 Markus Schordan and Ingomar Wenzel",
                    524:   title =      "{WCET} Analysis: The Annotation Language Challenge",
                    525:   booktitle =  "7th Intl. Workshop on Worst-Case Execution Time (WCET)
                    526:                 Analysis",
                    527:   year =       "2007",
                    528:   editor =     "Christine Rochange",
                    529:   publisher =  "Internationales Begegnungs- und Forschungszentrum
                    530:                 f{"u}r Informatik (IBFI), Schloss Dagstuhl, Germany",
                    531:   address =    "Dagstuhl, Germany",
                    532:   URL =        "http://drops.dagstuhl.de/opus/volltexte/2007/1197",
                    533:   annote =     "Keywords: Worst-case execution time analysis, WCET,
                    534:                 path description, annotation language challenge,
                    535:                 expressiveness, convenience",
                    536: }
                    537: 
                    538: 
                    539: @InProceedings{knoop:DSP:2008:1575,
                    540:   author =     {Jens Knoop},
                    541:   title =      {Data-Flow Analysis for Multi-Core Computing Systems: A Reminder to Reverse Data-Flow Analysis},
                    542:   booktitle =  {Scalable Program Analysis},
                    543:   year =       {2008},
                    544:   editor =     {Florian Martin and Hanne Riis Nielson and Claudio Riva and Markus Schordan},
                    545:   number =     {08161},
                    546:   series =     {Dagstuhl Seminar Proceedings},
                    547:   ISSN =       {1862-4405},
                    548:   publisher =  {Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany},
                    549:   address =    {Dagstuhl, Germany},
                    550:   URL =                {http://drops.dagstuhl.de/opus/volltexte/2008/1575},
                    551:   annote =     {Keywords: Multi-core computing systems, scalable program analysis, reverse data-flow analysis, demand-driven data-flow analysis}
                    552: }
                    553: 
                    554: @InProceedings{conf/cc/XueK06,
                    555:   title =      "A Fresh Look at {PRE} as a Maximum Flow Problem",
                    556:   author =     "Jingling Xue and Jens Knoop",
                    557:   bibdate =    "2006-04-05",
                    558:   bibsource =  "DBLP,
                    559:                 http://dblp.uni-trier.de/db/conf/cc/cc2006.html#XueK06",
                    560:   booktitle =  "CC",
                    561:   booktitle =  "Compiler Construction, 15th International Conference,
                    562:                 {CC} 2006, Held as Part of the Joint European
                    563:                 Conferences on Theory and Practice of Software, {ETAPS}
                    564:                 2006, Vienna, Austria, March 30-31, 2006, Proceedings",
                    565:   publisher =  "Springer",
                    566:   year =       "2006",
                    567:   volume =     "3923",
                    568:   editor =     "Alan Mycroft and Andreas Zeller",
                    569:   ISBN =       "3-540-33050-X",
                    570:   pages =      "139--154",
                    571:   series =     "Lecture Notes in Computer Science",
                    572:   URL =        "http://dx.doi.org/10.1007/11688839_13",
                    573: }
                    574: 
                    575: @InProceedings{scholz04,
                    576:   author =     "Bernhard Scholz and Nigel Horspool and Jens Knoop",
                    577:   title =      "Optimizing for space and time usage with speculative
                    578:                 partial redundancy elimination",
                    579:   booktitle =  "LCTES '04: Proceedings of the 2004 ACM SIGPLAN/SIGBED
                    580:                 conference on Languages, Compilers, and Tools for Embedded Systems",
                    581:   year =       "2004",
                    582:   ISBN =       "1-58113-806-7",
                    583:   pages =      "221--230",
                    584:   location =   "Washington, DC, USA",
                    585:   publisher =  "ACM Press",
                    586: }
                    587: 
                    588: @InProceedings{HiKr03,
                    589:         TITLE       = "{VLIW} Operation Refinement for Reducing Energy Consumption",
                    590:         AUTHOR      = "Ulrich Hirnschrott and Andreas Krall",
                    591:         BOOKTITLE   = "International Symposium on System-on Chip",
                    592:         PUBLISHER   = "IEEE",
                    593:         ADDRESS     = "Tampere, Finland",
                    594:         YEAR        = "2003",
                    595:         PAGES       = "131--134",
                    596: }
                    597: 
                    598: @Article{Krall+04micro,
                    599:   author =       {Andreas Krall and Ulrich Hirnschrott and Christian Panis and Ivan Pryanishnikov},
                    600:   title =        {x{DSP}core: {A} {C}ompiler-{B}ased {C}onfigureable {D}igital {S}ignal {P}rocessor},
                    601:   journal =      {IEEE Micro},
                    602:   year =         {2004},
                    603:   OPTkey =       {},
                    604:   volume =       {24},
                    605:   number =       {4},
                    606:   pages =        {67-78},
                    607:   month =        {July/August},
                    608:   OPTnote =      {},
                    609:   OPTannote =    {},
                    610: }
                    611: 
                    612: @INPROCEEDINGS{FarKrStBrand06,
                    613:         TITLE       = {Effective Compiler Generation by Architecture Description},
                    614:         AUTHOR      = {Stefan Farfeleder and Andreas Krall and Edwin Steiner and Florian Brandner},
                    615:         BOOKTITLE   = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
                    616:         EDITOR      = {Koen De Bosschere},
                    617:         PUBLISHER   = {ACM},
                    618:         PAGES       = {145--152},
                    619:         ADDRESS     = {Ottawa},
                    620:         MONTH       = {June},
                    621:         YEAR        = {2006},
                    622:         URL         = {http://doi.acm.org/10.1145/1134650.1134671},
                    623: }
                    624: 
                    625: @ARTICLE{PrKrHo06,
                    626:         AUTHOR      = {Ivan Pryanishnikov and Andreas Krall and Nigel Horspool},
                    627:         TITLE       = {Compiler Optimizations for Processors with {SIMD} Instructions},
                    628:         JOURNAL     = {Software---Practice and Experience},
                    629:         PUBLISHER   = {Wiley},
                    630:         VOLUME      = {37},
                    631:         NUMBER      = {1},
                    632:         PAGES       = {93--113},
                    633:         YEAR        = {2007},
                    634:         URL         = {http://www3.interscience.wiley.com/cgi-bin/fulltext/112783581/PDFSTART},
                    635: }
                    636: 
                    637: @ARTICLE{FaKrHo07,
                    638:         AUTHOR      = {Stefan Farfeleder and Andreas Krall and Nigel Horspool},
                    639:         TITLE       = {Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures},
                    640:         JOURNAL     = {Journal of Systems Architecture},
                    641:         PUBLISHER   = {Elsevier},
                    642:         VOLUME      = {53},
                    643:         NUMBER      = {8},
                    644:         PAGES       = {501--510},
                    645:         YEAR        = {2007},
                    646: }
                    647: 
                    648: @INPROCEEDINGS{MeKr07,
                    649:         TITLE       = {Instruction Set Encoding Optimization for Code Size Reduction},
                    650:         AUTHOR      = {Michael Med and Andreas Krall},
                    651:         BOOKTITLE   = {International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation},
                    652:         ADDRESS     = {Samos, Greece},
                    653:         PAGES       = {9--17},
                    654:         MONTH       = {July},
                    655:         YEAR        = {2007}
                    656: }
                    657: 
                    658: @INPROCEEDINGS{BrEbKr07,
                    659:         TITLE       = {Compiler Generation from Structural Architecture Descriptions},
                    660:         AUTHOR      = {Florian Brandner and Dietmar Ebner and Andreas Krall},
                    661:         BOOKTITLE   = {International Conference on Compilers, Architecture, and Synthesis for Embedded Systems},
                    662:         ADDRESS     = {Salzburg, Austria},
                    663:         PAGES       = {13--22},
                    664:         MONTH       = {September},
                    665:         YEAR        = {2007}
                    666: }
                    667: 
                    668: @INPROCEEDINGS{EbBrSchKrWiKa08,
                    669:         TITLE       = {Generalized Instruction Selection using {SSA}-Graphs},
                    670:         AUTHOR      = {Dietmar Ebner and Florian Brandner and Bernhard Scholz and Andreas Krall and Peter Wiedermann and Albrecht Kadlec},
                    671:         BOOKTITLE   = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
                    672:         EDITOR      = {John Regehr},
                    673:         PUBLISHER   = {ACM},
                    674:         PAGES       = {31--40},
                    675:         ADDRESS     = {Tucson},
                    676:         MONTH       = {June},
                    677:         YEAR        = {2008},
                    678: }
                    679: 
                    680: @INPROCEEDINGS{BrFeKrRi09,
                    681:         TITLE       = {Fast and Accurate Simulation using the LLVM Compiler Framework},
                    682:         AUTHOR      = {Florian Brandner and Andreas Fellnhofer and Andreas Krall and David Riegler},
                    683:         BOOKTITLE   = {Rapid Simulation and Performance Evaluation: Methods and Tools (RAPIDO'09)},
                    684:         EDITOR      = {Smail Niar, Rainer Leupers, Olivier Temam},
                    685:         PUBLISHER   = {HiPEAC},
                    686:         PAGES       = {1--6},
                    687:         ADDRESS     = {Paphos, Cyprus},
                    688:         MONTH       = {January},
                    689:         YEAR        = {2009},
                    690: }
                    691: \end{comment}
                    692: 
                    693: \bibliography{res}    % Input von res.bib, kommt dann spaeter dazu ...
                    694: 
                    695: \end{document}

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>