[gforth] / res / PP-compiler.tex  

gforth: res/PP-compiler.tex


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

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help