Annotation of res/PP-compiler.tex, revision 1.5
1.1 andi 1: \documentclass[11pt,a4paper]{article}
2: %\usepackage{latexsym}
3: \usepackage{url}
4: %\usepackage{times}
5: \usepackage{comment}
6:
7: \pagestyle{plain}
8: \setlength{\textwidth}{16truecm}
9: \setlength{\textheight}{24truecm}
10: \setlength{\oddsidemargin}{-0.3truecm}
11: \setlength{\evensidemargin}{-0.3truecm}
12: \setlength{\topmargin}{0.0truecm}
13: \setlength{\topskip}{0.0truecm}
14: \setlength{\headheight}{0.0truecm}
15: \setlength{\headsep}{0.0truecm}
16:
17: \newcommand{\emn}[1]{{\em #1\/}}
18: \newcommand{\NOTE}[1]{{\medskip\bf #1\medskip}}
19:
20: \title{\bf PP \emph{Compilation Techniques for Robust Embedded Systems}}
21:
22: \author{{\sc Ulrich Schmid}\\
23: s@ecs.tuwien.ac.at
24: }
25:
26: \bibliographystyle{unsrt}
27:
28: \begin{document}
29: \maketitle
30:
1.2 andi 31: PP leader: \emph{Jens Knoop and Andreas Krall}
1.1 andi 32:
1.2 andi 33: Associated researchers: \emph{}
1.1 andi 34:
35:
36:
37: \subsubsection*{Motivation:}
38: %\emph{Informal description of the purpose of the PP (3-5 lines)}
39: Every embedded system consists of software which is written in a high
40: level language, compiled to machine language and executed on a
1.5 ! andi 41: processor. For robust embedded systems new verified compilation,
! 42: simulation and specification methods are necessary to optimize for
! 43: performance, power, space, concurrency and reliability.
1.1 andi 44:
45: \subsubsection*{State of the art and related work:}
46: %\emph{Briefly describe the scientific state of the art (20-30 lines)}
47:
1.2 andi 48: %Compilation Techniques for Reliability
49:
50: Because of the exponential increase of the number of transistors and
51: the continuing decrease of the feature sizes of current processors
52: soft errors mainly caused by energetic particles are becoming an
53: important design issue for robust embedded systems. Blome et
54: al.~\cite{Blome+06} observed that a majority of faults that affect the
55: architectural state of a processor come from the register file. Lee
56: and Shrivastava and proposed different solutions to cope with this
57: problem. The first assigns variables depending on their lifetime to
58: either the ECC protected or the unprotected part of a register file to
59: balance energy consumption and reliability \cite{LeeShrivastava09a}.
60: The second spills registers to ECC protected memory if the register
61: contents are not used for a long period \cite{LeeShrivastava09c}.
1.4 andi 62: There exist complete software solutions which use different forms of
63: code duplications \cite{Oh+02a,Reis+05}, which do failure
64: virtualization \cite{WapplerMueller08} or which use techniques like
65: control flow checking \cite{Oh+02b}. A complete overview of processor
66: description languages and generation of compilers and simulators from
67: processors specifications gives the book of Mishra and Dutt \cite{MishraDutt08}.
68: A good survey of current instruction set simulators gives our chapter
69: in the Handbook of Signal Processing systems \cite{BrHoKr09}. A famous
70: instruction set simulator with modelling of energy consumtion is Wattch
71: \cite{BrooksTiwariMartonosi00}.
1.1 andi 72:
1.2 andi 73: Compiler Verification \cite{Hoare,1328444,1314860}
1.1 andi 74:
75: WCET \cite{}
76:
77: \subsubsection*{Previous achievements:}
78: %\emph{Brief description of your own contributions to the related
79: %scientific state-of-the art (5-10 lines)}
80: Jens Knoop has a long history on work on program analysis with topics
81: like partial redundancy elimination or lazy code motion
82: \cite{knoop:DSP:2008:1575,conf/cc/XueK06,scholz04}. Recently he
83: changed his research focus on worst case execution time analysis
84: \cite{SchrSchoKn09,Prantl:WLPE2008,prantl_et_al:DSP:2008:1661,
85: kirner_et_al:DSP:2008:1657,kirner_et_al:DSP:2007:1197}. He is involved
86: in the organization of many compiler conferences and since 2002 program
87: cochair of the yearly workshop on compiler optimization meets verification.
88:
89: Andreas Krall does research in the area of architecture description
90: languages and the automatic generation of highly optimizing compilers,
91: efficient instruction set simulators and hardware from one single
92: specification of a processor \cite{BrFeKrRi09,BrEbKr07,FaKrHo07,
93: FarKrStBrand06,Krall+04micro}. An important focus is on optimization
94: techniques for embedded processors
95: \cite{EbBrSchKrWiKa08,MeKr07,PrKrHo06,HiKr03} as he lead the Christian
96: Doppler research laboratory {\em compilation techniques for embedded
97: processors} with partners from industry (Infineon, OnDemand
98: Microelectronics).
99:
100:
101: \subsubsection*{Goals (first 4 years):}
102: %\emph{Description of the research
103: %topics to be addressed during the first 4 years. Make sure to explicitly
104: %stress what the significant additions to the scientific knowledge are,
105: %and why they are important. (30-40 lines)}
106:
107: New modeling and representation techniques of non-functional program and system properties on the programming and intermediate language levels
108: Definitions and measures of non-functional program and system properties (performance, time, space/memory, power, concurrency).
109: Modeling and representation of these properties alongside with the programming languages semantics
110: Adapting and enhancing state-of-the-art compilation techniques towards non-functional property and platform awareness
111: New functional and non-functional property and platform-aware compilation techniques
112: Analyses for non-functional program and system properties
113: Functional and non-functional property and platform-aware code generation techniques
114: Enabling validation and verification throughout the compilation process
115: Techniques for reducing or eliminating trusted code, annotation, etc., bases
116:
117:
118: \subsubsection*{Work Plan (first 4 years):}
119: %\emph{Brief description of how
120: %you intend to conduct the actual research during the first 4 years. Be sure
121: %to also describe and (coarsely) quantify the resources (staff, cost of
122: %special equipment) required for this work in a table. (20-30 lines)}
123:
1.5 ! andi 124: The project is divided into three work packages.
1.1 andi 125:
1.5 ! andi 126: \paragraph*{WP1 - Compilation and Simulation Techniques for Reliability}
1.1 andi 127:
1.5 ! andi 128: (1) Specification and efficient simulation of reliable processors
! 129: (partial redundancy, ECC, lockstep etc) and compiler optimizations to
! 130: exploit/balance reliabiliy features. Connection with CESAR NN1
1.1 andi 131:
1.5 ! andi 132: \begin{itemize}
! 133: \item Specification method to specify an energy consumption model in
! 134: a processor specification.
! 135: \item Specification method for redundancy and error correction in the
! 136: processor specification
! 137: \item Specification method for fault injection and fault checking in
! 138: the processor specification
! 139: \item Generation of optimized instruction set simulators from the
! 140: processor specification
! 141: \item Generation of optimizing compilers from the processor specification
! 142: \item Research into new compiler optimizations to increase reliability by
! 143: pure software solutions, mixed hardware/software solutions and
! 144: balancing performance, code space, reliability and energy consumption
! 145: \item Research of correctness proofs and validation of the new optimizations
! 146:
! 147: \end{itemize}
! 148:
! 149: \paragraph*{WP2 - Verified Compilation}
! 150:
! 151: translation verification, specification of semantics of IRs solving
! 152: subproblems.
! 153:
! 154: \paragraph*{WP3 - Worst Case Ececution Time Analysis}
1.1 andi 155:
1.5 ! andi 156: WCET
1.2 andi 157:
1.1 andi 158:
159: \begin{tabular}{llll}
1.5 ! andi 160: \\
1.1 andi 161: \hline
1.2 andi 162: {\bf Pos} & {\bf Type} & {\bf Description} & {\bf Duration} \\
163: NN1 & PhD & reliable compilation / simulation & 4 years \\
1.5 ! andi 164: NN2 & PhD & verified compilation & 4 years \\
1.2 andi 165: NN3 & PhD & WCET & 4 years \\
1.1 andi 166: \hline
167: \end{tabular}
168:
169:
170: \subsubsection*{Goals (last 4 years):}
171: %\emph{Brief description of the
172: %eesearch topics to be addressed during the last 4 years. Make sure to
173: %explicitly stress what the significant additions to the scientific
174: %knowledge are, and why they are important. (20-30 lines)}
175:
176: New programming languages and compilers for RESs
177: Non-functional properties and requirements as first-class language and compiler citizens
178: New compilation techniques enabling a uniform and integrated approach
179: for ensuring functional and non-functional program and system requirements
180: Replacing trust by proof
181: Certifying compilation, proof-carrying code, translation validation
182: Verified compilers, verifying compilation for RESs
183: Making legacy applications fit to and available on RESs
184: Techniques for adjusting and decompiling legacy applications
185:
186: \subsubsection*{Collaboration with other PPs:}
187: %\emph{List the PPs you are expecting to collaborate with, and describe briefly
188: %the topic and nature of such a collaboration. (10-20 lines)}
189:
190: \begin{itemize}
191: \item PP Composition of Non-functional Requirements [I.S.T.A./Henzinger]:
192: Links to specification and modeling of timing properties, to execution
193: models, hardware and software models.
194: \item PP Composition and Predictability in RES Architectures
195: [E182/Puschner]: Links to hard- and software models for time
196: predictable systems, verification of timing behaviour.
197: \item PP Formal Verification for Robustness [E184/Veith]: Links to software
198: model checking and testing of code (on source code and intermediate
199: code levels), support for program analysis and transformation.
200: \item PP Modeling \& Analysis of Robust Distributed Systems [E182/Schmid]:
201: Links to functional and non-functional system requirements,
202: distribution, concurrency.
203: \end{itemize}
204:
205: \subsubsection*{External Collaborations:}
206: %\emph{List envisioned international and national collaborations, and
207: %describe briefly the topic and nature of such a collaboration. (5-10
208: %lines)}
209:
1.2 andi 210: Aviral Shrivastava, Arizona State University, Tempe, AZ, USA
211:
212: Wolf Zimmermann, Universit\"at Halle, Halle, Germany
1.1 andi 213:
214: \begin{comment}
215: %Bitte hier die Bibtex-Entries einfuellen, z.B.,
216:
217:
218: ------------------------------------
219:
220: @article{Hoare,
221: author = {Tony Hoare},
222: title = {The verifying compiler: A grand challenge for computing research},
223: journal = {Journal of the ACM},
224: volume = {50},
225: number = {1},
226: year = {2003},
227: issn = {0004-5411},
228: pages = {63--69},
229: doi = {http://doi.acm.org/10.1145/602382.602403},
230: publisher = {ACM},
231: address = {New York, NY, USA},
232: }
233:
234: @article{1328444,
235: author = {Jean-Baptiste Tristan and Xavier Leroy},
236: title = {Formal verification of translation validators: a case study on instruction scheduling optimizations},
237: journal = {SIGPLAN Not.},
238: volume = {43},
239: number = {1},
240: year = {2008},
241: issn = {0362-1340},
242: pages = {17--27},
243: doi = {http://doi.acm.org/10.1145/1328897.1328444},
244: publisher = {ACM},
245: address = {New York, NY, USA},
246: }
247:
248: @article{1314860,
249: author = {Jan Olaf Blech and Arnd Poetzsch-Heffter},
250: title = {A Certifying Code Generation Phase},
251: journal = {Electron. Notes Theor. Comput. Sci.},
252: volume = {190},
253: number = {4},
254: year = {2007},
255: issn = {1571-0661},
256: pages = {65--82},
257: doi = {http://dx.doi.org/10.1016/j.entcs.2007.09.008},
258: publisher = {Elsevier Science Publishers B. V.},
259: address = {Amsterdam, The Netherlands, The Netherlands},
260: }
261:
262: @INPROCEEDINGS{LeeShrivastava09,
263: TITLE = {A Compiler Optimization to Reduce Soft Errors in Register Files},
264: AUTHOR = {Jongeun Lee and Aviral Shrivastava},
265: BOOKTITLE = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
266: EDITOR = {Mahmut Kandemir},
267: PUBLISHER = {ACM},
268: PAGES = {??--??},
269: ADDRESS = {Dublin},
270: MONTH = {June},
271: YEAR = {2009},
272: }
273:
274: @BOOK{MishraDutt08,
275: TITLE = {Processor Description Languages},
276: AUTHOR = {Prabhat Mishra and Nikil Dutt (Editor)},
277: PUBLISHER = {Morgan Kaufmann},
278: YEAR = {2008},
279: }
280:
281:
282:
283: %Eigene Referenzen ab hier.
284:
285: @InProceedings{SchrSchoKn09,
286: TITLE = "Adding Timing-Awareness to {AUTOSAR} Basic-Software - A Component Based Approach",
287: AUTHOR = "Dietmar Schreiner and Markus Schordan and Jens Knoop",
288: BOOKTITLE = "12th IEEE International Symposium on Object/component/service-oriented
289: Real-time distributed Computing (ISORC 2009)",
290: PUBLISHER = "IEEE",
291: ADDRESS = "Tokyo, Japan",
292: YEAR = "2009",
293: MONTH = "March",
294: PAGES = "288--292",
295: }
296:
297: @inproceedings{Prantl:WLPE2008,
298: Address = {Udine, Italy},
299: Author = {Adrian Prantl and Jens Knoop and Markus Schordan and Markus Triska},
300: Booktitle = {The 18th Workshop on Logic-based methods in Programming Environments (WLPE 2008)},
301: Month = {December 12},
302: Title = {Constraint solving for high-level WCET analysis},
303: Year = {2008},
304: URL = {http://costa.tuwien.ac.at/papers/wlpe08.pdf}
305: }
306:
307: @InProceedings{prantl_et_al:DSP:2008:1661,
308: author = "Adrian Prantl and Markus Schordan and Jens Knoop",
309: title = "TuBound - {A} Conceptually New Tool for Worst-Case
310: Execution Time Analysis",
311: booktitle = "8th Intl. Workshop on Worst-Case Execution Time (WCET)
312: Analysis",
313: year = "2008",
314: editor = "Raimund Kirner",
315: publisher = "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
316: Germany",
317: address = "Dagstuhl, Germany",
318: URL = "http://drops.dagstuhl.de/opus/volltexte/2008/1661",
319: annote = "Keywords: Worst-case execution time (WCET) analysis,
320: Tool Chain, Flow Constraints, Source-To-Source",
321: ISBN = "978-3-939897-10-1",
322: note = "also published in print by Austrian Computer Society
323: (OCG) under ISBN 978-3-85403-237-3",
324: }
325:
326: @InProceedings{kirner_et_al:DSP:2008:1657,
327: author = "Raimund Kirner and Albrecht Kadlec and Adrian Prantl
328: and Markus Schordan and Jens Knoop",
329: title = "Towards a Common {WCET} Annotation Language: Essential
330: Ingredients",
331: booktitle = "8th Intl. Workshop on Worst-Case Execution Time (WCET)
332: Analysis",
333: year = "2008",
334: editor = "Raimund Kirner",
335: publisher = "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik,
336: Germany",
337: address = "Dagstuhl, Germany",
338: URL = "http://drops.dagstuhl.de/opus/volltexte/2008/1657",
339: annote = "Keywords: Worst-case execution time (WCET) analysis,
340: annotation languages, WCET annotation language
341: challenge",
342: ISBN = "978-3-939897-10-1",
343: note = "also published in print by Austrian Computer Society
344: (OCG) under ISBN 978-3-85403-237-3",
345: }
346:
347: @InProceedings{kirner_et_al:DSP:2007:1197,
348: author = "Raimund Kirner and Jens Knoop and Adrian Prantl and
349: Markus Schordan and Ingomar Wenzel",
350: title = "{WCET} Analysis: The Annotation Language Challenge",
351: booktitle = "7th Intl. Workshop on Worst-Case Execution Time (WCET)
352: Analysis",
353: year = "2007",
354: editor = "Christine Rochange",
355: publisher = "Internationales Begegnungs- und Forschungszentrum
356: f{"u}r Informatik (IBFI), Schloss Dagstuhl, Germany",
357: address = "Dagstuhl, Germany",
358: URL = "http://drops.dagstuhl.de/opus/volltexte/2007/1197",
359: annote = "Keywords: Worst-case execution time analysis, WCET,
360: path description, annotation language challenge,
361: expressiveness, convenience",
362: }
363:
364:
365: @InProceedings{knoop:DSP:2008:1575,
366: author = {Jens Knoop},
367: title = {Data-Flow Analysis for Multi-Core Computing Systems: A Reminder to Reverse Data-Flow Analysis},
368: booktitle = {Scalable Program Analysis},
369: year = {2008},
370: editor = {Florian Martin and Hanne Riis Nielson and Claudio Riva and Markus Schordan},
371: number = {08161},
372: series = {Dagstuhl Seminar Proceedings},
373: ISSN = {1862-4405},
374: publisher = {Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Germany},
375: address = {Dagstuhl, Germany},
376: URL = {http://drops.dagstuhl.de/opus/volltexte/2008/1575},
377: annote = {Keywords: Multi-core computing systems, scalable program analysis, reverse data-flow analysis, demand-driven data-flow analysis}
378: }
379:
380: @InProceedings{conf/cc/XueK06,
381: title = "A Fresh Look at {PRE} as a Maximum Flow Problem",
382: author = "Jingling Xue and Jens Knoop",
383: bibdate = "2006-04-05",
384: bibsource = "DBLP,
385: http://dblp.uni-trier.de/db/conf/cc/cc2006.html#XueK06",
386: booktitle = "CC",
387: booktitle = "Compiler Construction, 15th International Conference,
388: {CC} 2006, Held as Part of the Joint European
389: Conferences on Theory and Practice of Software, {ETAPS}
390: 2006, Vienna, Austria, March 30-31, 2006, Proceedings",
391: publisher = "Springer",
392: year = "2006",
393: volume = "3923",
394: editor = "Alan Mycroft and Andreas Zeller",
395: ISBN = "3-540-33050-X",
396: pages = "139--154",
397: series = "Lecture Notes in Computer Science",
398: URL = "http://dx.doi.org/10.1007/11688839_13",
399: }
400:
401: @InProceedings{scholz04,
402: author = "Bernhard Scholz and Nigel Horspool and Jens Knoop",
403: title = "Optimizing for space and time usage with speculative
404: partial redundancy elimination",
405: booktitle = "LCTES '04: Proceedings of the 2004 ACM SIGPLAN/SIGBED
406: conference on Languages, Compilers, and Tools for Embedded Systems",
407: year = "2004",
408: ISBN = "1-58113-806-7",
409: pages = "221--230",
410: location = "Washington, DC, USA",
411: publisher = "ACM Press",
412: }
413:
414: @InProceedings{HiKr03,
415: TITLE = "{VLIW} Operation Refinement for Reducing Energy Consumption",
416: AUTHOR = "Ulrich Hirnschrott and Andreas Krall",
417: BOOKTITLE = "International Symposium on System-on Chip",
418: PUBLISHER = "IEEE",
419: ADDRESS = "Tampere, Finland",
420: YEAR = "2003",
421: PAGES = "131--134",
422: }
423:
424: @Article{Krall+04micro,
425: author = {Andreas Krall and Ulrich Hirnschrott and Christian Panis and Ivan Pryanishnikov},
426: title = {x{DSP}core: {A} {C}ompiler-{B}ased {C}onfigureable {D}igital {S}ignal {P}rocessor},
427: journal = {IEEE Micro},
428: year = {2004},
429: OPTkey = {},
430: volume = {24},
431: number = {4},
432: pages = {67-78},
433: month = {July/August},
434: OPTnote = {},
435: OPTannote = {},
436: }
437:
438: @INPROCEEDINGS{FarKrStBrand06,
439: TITLE = {Effective Compiler Generation by Architecture Description},
440: AUTHOR = {Stefan Farfeleder and Andreas Krall and Edwin Steiner and Florian Brandner},
441: BOOKTITLE = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
442: EDITOR = {Koen De Bosschere},
443: PUBLISHER = {ACM},
444: PAGES = {145--152},
445: ADDRESS = {Ottawa},
446: MONTH = {June},
447: YEAR = {2006},
448: URL = {http://doi.acm.org/10.1145/1134650.1134671},
449: }
450:
451: @ARTICLE{PrKrHo06,
452: AUTHOR = {Ivan Pryanishnikov and Andreas Krall and Nigel Horspool},
453: TITLE = {Compiler Optimizations for Processors with {SIMD} Instructions},
454: JOURNAL = {Software---Practice and Experience},
455: PUBLISHER = {Wiley},
456: VOLUME = {37},
457: NUMBER = {1},
458: PAGES = {93--113},
459: YEAR = {2007},
460: URL = {http://www3.interscience.wiley.com/cgi-bin/fulltext/112783581/PDFSTART},
461: }
462:
463: @ARTICLE{FaKrHo07,
464: AUTHOR = {Stefan Farfeleder and Andreas Krall and Nigel Horspool},
465: TITLE = {Ultra Fast Cycle-Accurate Compiled Emulation of Inorder Pipelined Architectures},
466: JOURNAL = {Journal of Systems Architecture},
467: PUBLISHER = {Elsevier},
468: VOLUME = {53},
469: NUMBER = {8},
470: PAGES = {501--510},
471: YEAR = {2007},
472: }
473:
474: @INPROCEEDINGS{MeKr07,
475: TITLE = {Instruction Set Encoding Optimization for Code Size Reduction},
476: AUTHOR = {Michael Med and Andreas Krall},
477: BOOKTITLE = {International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation},
478: ADDRESS = {Samos, Greece},
479: PAGES = {9--17},
480: MONTH = {July},
481: YEAR = {2007}
482: }
483:
484: @INPROCEEDINGS{BrEbKr07,
485: TITLE = {Compiler Generation from Structural Architecture Descriptions},
486: AUTHOR = {Florian Brandner and Dietmar Ebner and Andreas Krall},
487: BOOKTITLE = {International Conference on Compilers, Architecture, and Synthesis for Embedded Systems},
488: ADDRESS = {Salzburg, Austria},
489: PAGES = {13--22},
490: MONTH = {September},
491: YEAR = {2007}
492: }
493:
494: @INPROCEEDINGS{EbBrSchKrWiKa08,
495: TITLE = {Generalized Instruction Selection using {SSA}-Graphs},
496: AUTHOR = {Dietmar Ebner and Florian Brandner and Bernhard Scholz and Andreas Krall and Peter Wiedermann and Albrecht Kadlec},
497: BOOKTITLE = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems},
498: EDITOR = {John Regehr},
499: PUBLISHER = {ACM},
500: PAGES = {31--40},
501: ADDRESS = {Tucson},
502: MONTH = {June},
503: YEAR = {2008},
504: }
505:
506: @INPROCEEDINGS{BrFeKrRi09,
507: TITLE = {Fast and Accurate Simulation using the LLVM Compiler Framework},
508: AUTHOR = {Florian Brandner and Andreas Fellnhofer and Andreas Krall and David Riegler},
509: BOOKTITLE = {Rapid Simulation and Performance Evaluation: Methods and Tools (RAPIDO'09)},
510: EDITOR = {Smail Niar, Rainer Leupers, Olivier Temam},
511: PUBLISHER = {HiPEAC},
512: PAGES = {1--6},
513: ADDRESS = {Paphos, Cyprus},
514: MONTH = {January},
515: YEAR = {2009},
516: }
517: \end{comment}
518:
519: \bibliography{res} % Input von res.bib, kommt dann spaeter dazu ...
520:
521: \end{document}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>