Zusammenfassung
Das Konzept der Superblöcke wurde auf dem Gebiet der Compileroptimierungen in der Vergangenheit bereits erfolgreich zur Optimierung der ACET (Average Case Execution Time) verwendet. Superblöcke sind dabei spezielle Ketten von Basisblöcken, die es erleichtern, Optimierungen über Basisblockgrenzen anzuwenden und somit ein höheres Optimierungspotential zu schaffen. In der vorliegenden Arbeit wurde dieses Konzept zum ersten Mal zur Reduktion der WCET (Worst Case Execution Time) von Programmen für eingebettete Systeme ausgenutzt. Die WCET ist im Kontext der eingebetteten Systeme eine wichtige Metrik, da viele eingebettete Systeme unter Echtzeitbedingungen arbeiten müssen und hierzu eine sichere obere Schranke für die Laufzeit eines Programms unabdingbar ist.
Die vorgestellte Superblockbildung baut auf einem neuartigen Trace-Selektions-Algorithmus auf, der WCET-Daten auswertet. Außerdem wurde das Konzept der Superblöcke zum ersten Mal auf der Quellcodeebene angewandt. Auf diese Weise findet die Optimierung früher statt, so daß eine größere Anzahl nachfolgender Optimierungen von der erzielten Umstrukturierung profitieren kann. Weiterhin wurden die klassischen Optimierungen Common Subexpression Elimination (CSE) und Dead Code Elimination (DCE) an die Anwendung in Quellcode-Superblöcken angepasst. Mit diesen Techniken wurde auf einer Testmenge von 55 bekannten Standard-Benchmarks eine durschnittliche WCET-Reduktion von bis zu 10.2% erzielt.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Literaturverzeichnis
P. P. Chang, S. A. Mahlke, and W. W. Hwu, “Using Profile Information to Assist Classic Code Optimizations,” Software-Practice & Experience, vol. 21, no. 12, 1991.
R. Kidd and W. W. Hwu, “Abstract Improved Superblock Optimization in GCC,” in GCC Summit, 2006.
J. A. Fisher, “Trace Scheduling: A Technique for Global Microcode Compaction,” IEEE Transactions on Computers, vol. 30, no. 7, 1981.
P. P. Chang and W. W. Hwu, “Trace Selection for Compiling Large C Application Programs to Microcode,” in Proc. of MICRO, 1988.
W. W. Hwu, S. A. Mahlke, and W. Y. C. et al., “The Superblock: an Effective Technique for VLIW and Superscalar Compilation,” The Journal of Supercomputing, vol. 7, 1993.
AbsInt GmbH, “Worst-Case Execution Time Analyzer aiT for TriCore,” http://www.absint.com/ait, 2010.
W. Zhao, W. Kreahling, D. Whalley et al., “Improving WCET by Optimizing Worst-Case Paths,” in Proc. of RTAS, 2005.
Y.-T. S. Li, S. Malik, and A. Wolfe, “Efficient Microarchitecture Modeling and Path Analysis for Real-Time Software,” in Proc. of RTSS, 1995.
A. C. Shaw, “Reasoning About Time in Higher-Level Language Software,” IEEE Transactions on Software Engineering, vol. 15, 1989.
A. W. Appel, Modern Compiler Implementation in C. New York, NY, USA: Cambridge University Press, 1997.
H. Falk, P. Lokuciejewski, and H. Theiling, “Design of a WCET-Aware C Compiler,” in Proc. of ESTIMEDIA, 2006.
Lokuciejewsi, Paul and Falk, Heiko and Marwedel, Peter and Theiling, Henrik, “WCET-Driven, Code-Size Critical Procedure Cloning,” in Proc. of SCOPES, 2008
Kelter, Timon, “Superblock-basierte High-Level WCET-Optimierungen”, Diplomarbeit, Lehrstuhl Informatik 12, TU Dortmund, 2009
Li, Yau-Tsun Steven and Malik, Sharad, “Performance Analysis of Embedded Software Using Implicit Path Enumeration”, in Proc. of DAC, 1995
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Kelter, T. (2011). Superblock-basierte Quellcodeoptimierungen zur WCET-Reduktion. In: Halang, W.A., Holleczek, P. (eds) Eingebettete Systeme. Informatik aktuell, vol 1. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16189-6_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-16189-6_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-16188-9
Online ISBN: 978-3-642-16189-6
eBook Packages: Computer Science and Engineering (German Language)