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>