Advanced compiling techniques to reduce RAM usage of static operating systems

Language
en
Document Type
Doctoral Thesis
Issue Date
2004-07-28
Issue Year
2004
Authors
Barthelmann, Volker
Editor
Abstract

In recent years, a rapidly growing number of small embedded systems have been used in very high volumes. One example is the automotive industry, where the number of Electronic Control Units (ECU) in a single car is approaching 100 for high end automobiles and several dozens are used in mid-range cars. Small system-on-chip microcontrollers are often used with static operating systems. As on-chip RAM is rather expensive and only few KBs of RAM are available on such devices, reducing the RAM usage is an important objective in order to save costs - especially in high-volume production. This thesis presents several new approaches to reduce the RAM usage of such systems by applying advanced compilation and optimization techniques. Common optimizations are examined regarding their impact on RAM usage. By selecting classical optimization algorithms regarding their impact on RAM usage, the RAM required for a series of test cases is reduced by almost 20%. Upper bounds for stack sizes of application tasks will be statically calculated using high-level analysis available in the compiler. Comparisons with a commercial tool working on machine-code-level show clear advantages regarding maintainability as well as reliability. Most important, the register sets stored by the operating system when a task is preempted are optimized by abstaining from saving unnecessary registers. Inter-task register-allocation further reduces the RAM required to save those task contexts. The new algorithms have been added to a production quality compiler and a full commercial OSEK implementation was modified to make use of the new optimizations. Tests on real hardware as well as comparisons with commercial tools not only show that the system works and improves usability and maintainability, but also that significant reductions of RAM requirements, and therefore cost savings, are possible. In a series of benchmarks, RAM usage is reduced on average by 30%-60%.

Abstract

In den letzten Jahren wurde eine steigende Anzahl kleiner eingebetteter Systeme in hohen Stückzahlen eingesetzt. Beispielsweise in der Automobilindustrie, wo annähernd 100 elektronische Steuergeräte (ECUs) in einzelnen Oberklassefahrzeugen und bereits mehrere Dutzend in Mittelklassefahrzeugen verbaut werden. Meist werden kleine System-on-Chip Mikrocontroller mit statischen Betriebssystemen benutzt. Da das RAM auf diesen Chips sehr teuer ist und nur wenige KB davon auf solchen Systemen verfügbar sind, ist die Reduzierung des RAM-Verbrauchs ein wichtiger Punkt um Kosten zu senken - besonders bei der Produktion hoher Stückzahlen. Diese Dissertation stellt einige neue Verfahren vor, um den RAM-Verbrauch solcher Systeme durch die Anwendung fortgeschrittener Übersetzungs- und Optimierungstechniken zu reduzieren. Klassische Optimierungen werden hinsichtlich ihrer Auswirkungen auf den RAM-Verbrauch untersucht. Durch geschickte Auswahl von Optimierungsalgorithmen kann der RAM-Verbrauch in einer Testreihe um fast 20% gesenkt werden. Obergrenzen für Stackgrößen der Tasks der Anwendung werden vom Übersetzer statisch berechnet. Durch modulübergreifende Analyse auf Hochsprachenebene werden hier gute Ergebnisse erreicht, die im Vergleich mit einem kommerziell verfügbaren Werkzeug Vorteile in der Handhabbarkeit und Zuverlässigkeit zeigen. Als wichtigster Punkt werden die Registersätze, die das Betriebssystem sichern muss, wenn ein Task unterbrochen wird, optimiert, indem vermieden wird, Register unnötig zu speichern. Registervergabe über Taskgrenzen hinweg reduziert den Speicherbedarf für diese Registersätze weiter. Die neuen Algorithmen wurden in einen Übersetzer eingebaut und eine kommerzielle OSEK Implementierung wurde modifiziert, um die neuen Optimierungen zu nutzen. Tests auf echter Hardware, sowie Vergleiche mit kommerziellen Programmen zeigen nicht nur, dass das System funktioniert und sowohl Benutzbarkeit als auch Wartbarkeit verbessert, sondern auch, dass eine signifikante Reduzierung des RAM-Verbrauchs und der damit verbundenen Kosten möglich ist. In einer Reihe von Benchmarks wird der RAM-Verbrauch i.d.R. um 30%-60% gesenkt.

DOI
Document's Licence
Faculties & Collections
Zugehörige ORCIDs