File:  [gforth] / res / PP-compiler.tex
Revision 1.17: download - view: text, annotated - select for diffs
Mon Jun 29 18:14:19 2009 UTC (14 years, 9 months ago) by knoop
Branches: MAIN
CVS tags: HEAD
*** empty log message ***

    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: 
   21: \author{{\sc Jens Knoop and Andreas Krall}\\
   22: \{knoop,andi\}@complang.tuwien.ac.at
   23: }
   24: 
   25: \bibliographystyle{unsrt}
   26: 
   27: \begin{document}
   28: \maketitle
   29: 
   30: PP leader: \emph{Jens Knoop and Andreas Krall (beide E185.1)}
   31: 
   32: Associated researchers: \emph{Anton Ertl (E185.1), Bernhard Gramlich (E185.2),}\\
   33: \phantom{Associated researchers: } \ \ \ \ \emph{Franz Puntigam (E185.1)}
   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
   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.
   47: 
   48: \subsubsection*{State of the art and related work:} 
   49: %\emph{Briefly describe the scientific state of the art (20-30 lines)}
   50: 
   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
   54: \emph{soft errors} mainly caused by energetic particles are becoming an
   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
   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}.
   71: A good survey of current instruction set simulators gives our chapter
   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}
   80: \cite{Goerigk-et-al:CC96,GlesnerGoosZimmeermann04,GoosZimmermann00} projects, and more recently of 
   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}
   84: \cite{Pnueli98a,Pnueli98b,Ne-pldi00,ZaksPnueli08}, 
   85: \emph{certifying compilation} 
   86: \cite{NL-pldi98,Colby-etal-pldi00,BlechPoetzsch07}, and
   87: \emph{proof-carrying code} \cite{Ne-popl97,AF-popl00,FNSG-tlfi07}. 
   88: However, an integratedly verified compiler, which is optimizing and
   89: ensures non-functional program properties such as on time and space
   90: resources required by the compiled program is still
   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
   94: compiler optimizations, such as the \emph{Lazy Code Motion}
   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: 
  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,
  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: 
  111: 
  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}.
  125:  
  126: 
  127: 
  128: 
  129: \subsubsection*{Previous achievements:} 
  130: %\emph{Brief description of your own contributions to the related
  131: %scientific state-of-the art (5-10 lines)}
  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}
  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
  141: resource-aware program analyses and optimizations including the
  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
  146: \emph{worst-case execution time analysis} for safety-critical
  147: real-time embedded systems
  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.
  159: %, and the IFIP WG 2.4 \emph{Software Implementation Technology}.
  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
  167: \cite{EbBrSchKrWiKa08,MeKr07,PrKrHo06,HiKr03} as he leads the Christian
  168: Doppler research laboratory {\em compilation techniques for embedded
  169: processors} with partners from industry (Infineon, OnDemand
  170: Microelectronics).
  171: 
  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.
  177: 
  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)}
  184: The goals of the first 4 years are as follows:
  185: 
  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.
  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)}
  218: Compilation techniques for robust embedded systems comprise different
  219: areas.  Therefore, the project is divided into three work packages:
  220: \emph{compilation and simulation techniques for reliability}, \emph{verified
  221: compilation} and \emph{resource analysis}.
  222: 
  223: \paragraph*{WP1 - Compilation and Simulation Techniques for Reliability}
  224: 
  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. 
  234: 
  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
  243:       extended processor specification
  244: \item Generation of optimizing compilers from the extended processor
  245:       specification
  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: 
  255: Suitable semantics are necessary which support efficient translation
  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.
  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}
  277: 
  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
  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 
  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 
  313:       quality of resource consumption analyses and to support 
  314:       correctness and security checks at run-time. 
  315: \end{itemize}
  316: Overall, this WP will contribute to the design, foundations,
  317: verification, implementation, and application of resource analyses.
  318: 
  319: 
  320: 
  321: 
  322: \begin{tabular}{llll}
  323: \\
  324: \hline
  325: {\bf Pos} & {\bf Type} & {\bf Description}    & {\bf Duration} \\
  326: NN1 & PhD & reliable compilation / simulation & 4 years \\
  327: NN2 & PhD & verified compilation              & 4 years \\
  328: NN3 & PhD & verified compilation              & 4 years \\
  329: NN4 & PhD & resource analysis                 & 4 years \\
  330: \hline
  331: \end{tabular}
  332: 
  333: 
  334: \subsubsection*{Goals (last 4 years):}
  335: %\emph{Brief description of the 
  336: %research topics to be addressed during the last 4 years. Make sure to 
  337: %explicitly stress what the significant additions to the scientific 
  338: %knowledge are, and why they are important. (20-30 lines)}
  339: 
  340: In the last 4 years we will extend the research of the first years into
  341: some additional directions like
  342: 
  343: \begin{itemize}
  344: \item New programming languages and compilers for RESs
  345: \item Non-functional properties and requirements as first-class language and
  346:       compiler citizens
  347: \item New compilation techniques enabling a uniform and integrated approach
  348:       for ensuring functional and non-functional program and system requirements
  349: \item Verified compilers, proof-carrying code, verifying compilation for RESs
  350: \item Making legacy applications fit to and available on RESs
  351: \item Techniques for adjusting and decompiling legacy applications
  352: \end{itemize}
  353: 
  354: Application of the results of this research reduces the cost of the
  355: development of reliable and correct embedded systems and makes them
  356: safer and robust.
  357: 
  358: \subsubsection*{Collaboration with other PPs:}
  359: %\emph{List the PPs you are expecting to collaborate with, and describe briefly
  360: %the topic and  nature of such a collaboration. (10-20 lines)}
  361: 
  362: \begin{itemize}
  363: \item PP Composition of Non-functional Requirements [I.S.T.A./Henzinger]:
  364:       Links to specification and modeling of timing properties, to execution
  365:       models, hardware and software models.
  366: \item PP Composition and Predictability in RES Architectures
  367:       [E182.1/Puschner]: Links to hard- and software models for time
  368:       predictable systems, verification of timing behaviour.
  369: \item PP Formal Verification for Robustness [E184/Veith]: Links to software
  370:       model-checking and testing of code (on source code and intermediate
  371:       code levels), support for program analysis and transformation.
  372: \item PP Modeling \& Analysis of Robust Distributed Systems [E182.2/Schmid]:
  373:       Links to functional and non-functional system requirements,
  374:       distribution, concurrency.
  375: \end{itemize}
  376: 
  377: \subsubsection*{External Collaborations:}
  378: %\emph{List envisioned international  and national collaborations, and
  379: %describe briefly the topic and nature  of such a collaboration. (5-10
  380: %lines)}
  381: \begin{itemize}
  382: \item Walter Binder, University of Lugano, Switzerland (resource analysis)
  383: \item Sabine Glesner, TU Berlin, Berlin, Germany (verified compilation)
  384: \item Aviral Shrivastava, Arizona State University, Tempe, AZ, USA (reliable compilation)
  385: \item Wolf Zimmermann, Martin-Luther Universit\"at Halle-Wittenberg, Halle, Germany
  386:       (verified compilation)
  387: \end{itemize}
  388: 
  389: \begin{comment}
  390: %Bitte hier die Bibtex-Entries  einfuellen, z.B.,
  391: 
  392: 
  393: ------------------------------------
  394: 
  395: @article{Hoare,
  396:  author = {Tony Hoare},
  397:  title = {The verifying compiler: A grand challenge for computing research},
  398:  journal = {Journal of the ACM},
  399:  volume = {50},
  400:  number = {1},
  401:  year = {2003},
  402:  issn = {0004-5411},
  403:  pages = {63--69},
  404:  doi = {http://doi.acm.org/10.1145/602382.602403},
  405:  publisher = {ACM},
  406:  address = {New York, NY, USA},
  407:  }
  408:  
  409:  @article{1328444,
  410:  author = {Jean-Baptiste Tristan and Xavier Leroy},
  411:  title = {Formal verification of translation validators: a case study on instruction scheduling optimizations},
  412:  journal = {SIGPLAN Not.},
  413:  volume = {43},
  414:  number = {1},
  415:  year = {2008},
  416:  issn = {0362-1340},
  417:  pages = {17--27},
  418:  doi = {http://doi.acm.org/10.1145/1328897.1328444},
  419:  publisher = {ACM},
  420:  address = {New York, NY, USA},
  421:  }
  422:  
  423:  @article{1314860,
  424:  author = {Jan Olaf Blech and Arnd Poetzsch-Heffter},
  425:  title = {A Certifying Code Generation Phase},
  426:  journal = {Electron. Notes Theor. Comput. Sci.},
  427:  volume = {190},
  428:  number = {4},
  429:  year = {2007},
  430:  issn = {1571-0661},
  431:  pages = {65--82},
  432:  doi = {http://dx.doi.org/10.1016/j.entcs.2007.09.008},
  433:  publisher = {Elsevier Science Publishers B. V.},
  434:  address = {Amsterdam, The Netherlands, The Netherlands},
  435:  }
  436:  
  437: @INPROCEEDINGS{LeeShrivastava09,
  438:         TITLE       = {A Compiler Optimization to Reduce Soft Errors in Register Files},
  439:         AUTHOR      = {Jongeun Lee and Aviral Shrivastava},
  440:         BOOKTITLE   = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
  441:         EDITOR      = {Mahmut Kandemir},
  442:         PUBLISHER   = {ACM},
  443:         PAGES       = {??--??},
  444:         ADDRESS     = {Dublin},
  445:         MONTH       = {June},
  446:         YEAR        = {2009},
  447: }
  448: 
  449: @BOOK{MishraDutt08,
  450:         TITLE       = {Processor Description Languages},
  451:         AUTHOR      = {Prabhat Mishra and Nikil Dutt (Editor)},
  452:         PUBLISHER   = {Morgan Kaufmann},
  453:         YEAR        = {2008},
  454: }
  455: 
  456: 
  457: 
  458: %Eigene Referenzen ab hier.
  459: 
  460: @InProceedings{SchrSchoKn09,
  461:         TITLE       = "Adding Timing-Awareness to {AUTOSAR} Basic-Software - A Component Based Approach",
  462:         AUTHOR      = "Dietmar Schreiner and Markus Schordan and Jens Knoop",
  463:         BOOKTITLE   = "12th IEEE International Symposium on Object/component/service-oriented
  464:                        Real-time distributed Computing (ISORC 2009)",
  465:         PUBLISHER   = "IEEE",
  466:         ADDRESS     = "Tokyo, Japan",
  467:         YEAR        = "2009",
  468:         MONTH       = "March",
  469:         PAGES       = "288--292",
  470: }
  471: 
  472: @inproceedings{Prantl:WLPE2008,
  473: 	Address = {Udine, Italy},
  474: 	Author = {Adrian Prantl and Jens Knoop and Markus Schordan and Markus Triska},
  475: 	Booktitle = {The 18th Workshop on Logic-based methods in Programming Environments (WLPE 2008)},
  476: 	Month = {December 12},
  477: 	Title = {Constraint solving for high-level WCET analysis},
  478: 	Year = {2008},
  479:         URL = {http://costa.tuwien.ac.at/papers/wlpe08.pdf}
  480: }
  481: 
  482: @InProceedings{prantl_et_al:DSP:2008:1661,
  483:   author =	"Adrian Prantl and Markus Schordan and Jens Knoop",
  484:   title =	"TuBound - {A} Conceptually New Tool for Worst-Case
  485: 		 Execution Time Analysis",
  486:   booktitle =	"8th Intl. Workshop on Worst-Case Execution Time (WCET)
  487: 		 Analysis",
  488:   year = 	"2008",
  489:   editor =	"Raimund Kirner",
  490:   publisher =	"Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
  491: 		 Germany",
  492:   address =	"Dagstuhl, Germany",
  493:   URL =  	"http://drops.dagstuhl.de/opus/volltexte/2008/1661",
  494:   annote =	"Keywords: Worst-case execution time (WCET) analysis,
  495: 		 Tool Chain, Flow Constraints, Source-To-Source",
  496:   ISBN = 	"978-3-939897-10-1",
  497:   note = 	"also published in print by Austrian Computer Society
  498: 		 (OCG) under ISBN 978-3-85403-237-3",
  499: }
  500: 
  501: @InProceedings{kirner_et_al:DSP:2008:1657,
  502:   author =	"Raimund Kirner and Albrecht Kadlec and Adrian Prantl
  503: 		 and Markus Schordan and Jens Knoop",
  504:   title =	"Towards a Common {WCET} Annotation Language: Essential
  505: 		 Ingredients",
  506:   booktitle =	"8th Intl. Workshop on Worst-Case Execution Time (WCET)
  507: 		 Analysis",
  508:   year = 	"2008",
  509:   editor =	"Raimund Kirner",
  510:   publisher =	"Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
  511: 		 Germany",
  512:   address =	"Dagstuhl, Germany",
  513:   URL =  	"http://drops.dagstuhl.de/opus/volltexte/2008/1657",
  514:   annote =	"Keywords: Worst-case execution time (WCET) analysis,
  515: 		 annotation languages, WCET annotation language
  516: 		 challenge",
  517:   ISBN = 	"978-3-939897-10-1",
  518:   note = 	"also published in print by Austrian Computer Society
  519: 		 (OCG) under ISBN 978-3-85403-237-3",
  520: }
  521: 
  522: @InProceedings{kirner_et_al:DSP:2007:1197,
  523:   author =	"Raimund Kirner and Jens Knoop and Adrian Prantl and
  524: 		 Markus Schordan and Ingomar Wenzel",
  525:   title =	"{WCET} Analysis: The Annotation Language Challenge",
  526:   booktitle =	"7th Intl. Workshop on Worst-Case Execution Time (WCET)
  527: 		 Analysis",
  528:   year = 	"2007",
  529:   editor =	"Christine Rochange",
  530:   publisher =	"Internationales Begegnungs- und Forschungszentrum
  531: 		 f{"u}r Informatik (IBFI), Schloss Dagstuhl, Germany",
  532:   address =	"Dagstuhl, Germany",
  533:   URL =  	"http://drops.dagstuhl.de/opus/volltexte/2007/1197",
  534:   annote =	"Keywords: Worst-case execution time analysis, WCET,
  535: 		 path description, annotation language challenge,
  536: 		 expressiveness, convenience",
  537: }
  538: 
  539: 
  540: @InProceedings{knoop:DSP:2008:1575,
  541:   author =	{Jens Knoop},
  542:   title =	{Data-Flow Analysis for Multi-Core Computing Systems: A Reminder to Reverse Data-Flow Analysis},
  543:   booktitle =	{Scalable Program Analysis},
  544:   year =	{2008},
  545:   editor =	{Florian Martin and Hanne Riis Nielson and Claudio Riva and Markus Schordan},
  546:   number =	{08161},
  547:   series =	{Dagstuhl Seminar Proceedings},
  548:   ISSN =	{1862-4405},
  549:   publisher =	{Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany},
  550:   address =	{Dagstuhl, Germany},
  551:   URL =		{http://drops.dagstuhl.de/opus/volltexte/2008/1575},
  552:   annote =	{Keywords: Multi-core computing systems, scalable program analysis, reverse data-flow analysis, demand-driven data-flow analysis}
  553: }
  554: 
  555: @InProceedings{conf/cc/XueK06,
  556:   title =	"A Fresh Look at {PRE} as a Maximum Flow Problem",
  557:   author =	"Jingling Xue and Jens Knoop",
  558:   bibdate =	"2006-04-05",
  559:   bibsource =	"DBLP,
  560: 		 http://dblp.uni-trier.de/db/conf/cc/cc2006.html#XueK06",
  561:   booktitle =	"CC",
  562:   booktitle =	"Compiler Construction, 15th International Conference,
  563: 		 {CC} 2006, Held as Part of the Joint European
  564: 		 Conferences on Theory and Practice of Software, {ETAPS}
  565: 		 2006, Vienna, Austria, March 30-31, 2006, Proceedings",
  566:   publisher =	"Springer",
  567:   year = 	"2006",
  568:   volume =	"3923",
  569:   editor =	"Alan Mycroft and Andreas Zeller",
  570:   ISBN = 	"3-540-33050-X",
  571:   pages =	"139--154",
  572:   series =	"Lecture Notes in Computer Science",
  573:   URL =  	"http://dx.doi.org/10.1007/11688839_13",
  574: }
  575: 
  576: @InProceedings{scholz04,
  577:   author =	"Bernhard Scholz and Nigel Horspool and Jens Knoop",
  578:   title =	"Optimizing for space and time usage with speculative
  579: 		 partial redundancy elimination",
  580:   booktitle =	"LCTES '04: Proceedings of the 2004 ACM SIGPLAN/SIGBED
  581: 		 conference on Languages, Compilers, and Tools for Embedded Systems",
  582:   year = 	"2004",
  583:   ISBN = 	"1-58113-806-7",
  584:   pages =	"221--230",
  585:   location =	"Washington, DC, USA",
  586:   publisher =	"ACM Press",
  587: }
  588: 
  589: @InProceedings{HiKr03,
  590:         TITLE       = "{VLIW} Operation Refinement for Reducing Energy Consumption",
  591:         AUTHOR      = "Ulrich Hirnschrott and Andreas Krall",
  592:         BOOKTITLE   = "International Symposium on System-on Chip",
  593:         PUBLISHER   = "IEEE",
  594:         ADDRESS     = "Tampere, Finland",
  595:         YEAR        = "2003",
  596:         PAGES       = "131--134",
  597: }
  598: 
  599: @Article{Krall+04micro,
  600:   author =       {Andreas Krall and Ulrich Hirnschrott and Christian Panis and Ivan Pryanishnikov},
  601:   title =        {x{DSP}core: {A} {C}ompiler-{B}ased {C}onfigureable {D}igital {S}ignal {P}rocessor},
  602:   journal =      {IEEE Micro},
  603:   year =         {2004},
  604:   OPTkey =       {},
  605:   volume =       {24},
  606:   number =       {4},
  607:   pages =        {67-78},
  608:   month =        {July/August},
  609:   OPTnote =      {},
  610:   OPTannote =    {},
  611: }
  612: 
  613: @INPROCEEDINGS{FarKrStBrand06,
  614:         TITLE       = {Effective Compiler Generation by Architecture Description},
  615:         AUTHOR      = {Stefan Farfeleder and Andreas Krall and Edwin Steiner and Florian Brandner},
  616:         BOOKTITLE   = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
  617:         EDITOR      = {Koen De Bosschere},
  618:         PUBLISHER   = {ACM},
  619:         PAGES       = {145--152},
  620:         ADDRESS     = {Ottawa},
  621:         MONTH       = {June},
  622:         YEAR        = {2006},
  623:         URL         = {http://doi.acm.org/10.1145/1134650.1134671},
  624: }
  625: 
  626: @ARTICLE{PrKrHo06,
  627:         AUTHOR      = {Ivan Pryanishnikov and Andreas Krall and Nigel Horspool},
  628:         TITLE       = {Compiler Optimizations for Processors with {SIMD} Instructions},
  629:         JOURNAL     = {Software---Practice and Experience},
  630:         PUBLISHER   = {Wiley},
  631:         VOLUME      = {37},
  632:         NUMBER      = {1},
  633:         PAGES       = {93--113},
  634:         YEAR        = {2007},
  635:         URL         = {http://www3.interscience.wiley.com/cgi-bin/fulltext/112783581/PDFSTART},
  636: }
  637: 
  638: @ARTICLE{FaKrHo07,
  639:         AUTHOR      = {Stefan Farfeleder and Andreas Krall and Nigel Horspool},
  640:         TITLE       = {Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures},
  641:         JOURNAL     = {Journal of Systems Architecture},
  642:         PUBLISHER   = {Elsevier},
  643:         VOLUME      = {53},
  644:         NUMBER      = {8},
  645:         PAGES       = {501--510},
  646:         YEAR        = {2007},
  647: }
  648: 
  649: @INPROCEEDINGS{MeKr07,
  650:         TITLE       = {Instruction Set Encoding Optimization for Code Size Reduction},
  651:         AUTHOR      = {Michael Med and Andreas Krall},
  652:         BOOKTITLE   = {International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation},
  653:         ADDRESS     = {Samos, Greece},
  654:         PAGES       = {9--17},
  655:         MONTH       = {July},
  656:         YEAR        = {2007}
  657: }
  658: 
  659: @INPROCEEDINGS{BrEbKr07,
  660:         TITLE       = {Compiler Generation from Structural Architecture Descriptions},
  661:         AUTHOR      = {Florian Brandner and Dietmar Ebner and Andreas Krall},
  662:         BOOKTITLE   = {International Conference on Compilers, Architecture, and Synthesis for Embedded Systems},
  663:         ADDRESS     = {Salzburg, Austria},
  664:         PAGES       = {13--22},
  665:         MONTH       = {September},
  666:         YEAR        = {2007}
  667: }
  668: 
  669: @INPROCEEDINGS{EbBrSchKrWiKa08,
  670:         TITLE       = {Generalized Instruction Selection using {SSA}-Graphs},
  671:         AUTHOR      = {Dietmar Ebner and Florian Brandner and Bernhard Scholz and Andreas Krall and Peter Wiedermann and Albrecht Kadlec},
  672:         BOOKTITLE   = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
  673:         EDITOR      = {John Regehr},
  674:         PUBLISHER   = {ACM},
  675:         PAGES       = {31--40},
  676:         ADDRESS     = {Tucson},
  677:         MONTH       = {June},
  678:         YEAR        = {2008},
  679: }
  680: 
  681: @INPROCEEDINGS{BrFeKrRi09,
  682:         TITLE       = {Fast and Accurate Simulation using the LLVM Compiler Framework},
  683:         AUTHOR      = {Florian Brandner and Andreas Fellnhofer and Andreas Krall and David Riegler},
  684:         BOOKTITLE   = {Rapid Simulation and Performance Evaluation: Methods and Tools (RAPIDO'09)},
  685:         EDITOR      = {Smail Niar, Rainer Leupers, Olivier Temam},
  686:         PUBLISHER   = {HiPEAC},
  687:         PAGES       = {1--6},
  688:         ADDRESS     = {Paphos, Cyprus},
  689:         MONTH       = {January},
  690:         YEAR        = {2009},
  691: }
  692: \end{comment}
  693: 
  694: \bibliography{res}    % Input von res.bib, kommt dann spaeter dazu ...
  695: 
  696: \end{document}

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