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>