Heiko Falk

dblp:65/6364 · DBLP profile ↗
← Back
55ranked-venue papers
10as first author
8since 2021 · last 2025
0000-0003-1196-0122ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 26 · 7 first-author · 7 since 2021Software engineering, systems software and programming languages · 8 · 1 first-author · 3 since 2021Applied, interdisciplinary, general and emerging computing · 7 · 1 first-authorArtificial intelligence and machine learning · 1Human-computer interaction and ubiquitous computing · 1
YearPublicationVenuePosition
2025 Work in Progress: Optimizing Schedulability Using Cache-Bypassing
abstract
We present an optimization technique to improve system schedulability using selective cache bypassing. By allocating parts of the application to uncached memory sections during compilation, context-switching costs and intra-task cache interference are reduced, leading to improved schedulability. We compare the performance of simulated annealing and the strength pareto evolutionary algorithm (SPEA) for the optimization problem. Our evaluation demonstrates an increase in schedulability by up to 20 percentage points using SPEA.
Thilo Leon Fischer, Heiko Falk
RTAS2
2025 Compiler-level DMA-aware multi-objective dynamic SPM allocation
abstract
Abstract Real-time embedded systems need to meet timing and energy constraints to avoid potential disasters. Compiler-level ScratchPad Memory (SPM) allocation can be used to optimize a program’s Worst-Case Execution Time (WCET) and energy consumption. However, static allocation is limited by SPM size constraints. Dynamic SPM allocation resolves this by allocating code to SPM during runtime, but copying code using the CPU increases WCET and energy consumption. To address this, we integrate a Direct Memory Access (DMA) model and DMA analysis at the compiler level and propose a single-objective DMA Call Placement Optimization (DCPO). In this paper, we consider functions and loops as dynamic allocation candidates. DCPO finds appropriate places within the code to place DMA transfer calls such that the DMA controller and the CPU run parallelly—minimizing the total execution time required by the DMA controller for dynamic allocation of functions and loops during runtime. Additionally, we propose a compiler-level DMA-aware multi-objective dynamic SPM allocation that uses DCPO and simultaneously minimizes WCET and energy objectives, yielding Pareto optimal solutions. Comparative evaluations demonstrate the superiority of our approach over state-of-the-art multi- and single-objective optimizations.
Shashank Jadhav, Heiko Falk
Real Time Syst.2
2025 Towards Analysing Cache-Related Preemption Delay in Non-Inclusive Cache Hierarchies
abstract
The impact of preemptions has to be considered when determining the schedulability of a task set in a preemptively scheduled system. In particular, the contents of caches can be disturbed by a preemption, thus creating context-switching costs. These context-switching costs occur when a preempted task needs to reload data from memory after a preemption. The additional delay created by this effect is termed cache-related preemption delay (CRPD). The analysis of CRPD has been extensively studied for single-level caches in the past. However, for two-level caches, the analysis of CRPD is still an emerging area of research. In contrast to a single-level cache, which is only affected by direct preemption effects, the second-level cache in a two-level hierarchy can be subject to indirect interference after a preemption. Accesses that could be served from the L1 cache in the absence of preemptions, may be forwarded to the L2 cache, as the relevant data was evicted by a preemption. These accesses create the indirect interference in the L2 cache and can cause further evictions. Recently, a CRPD analysis for two-level non-inclusive cache hierarchies was proposed. In this article, we show that this state-of-the-art analysis is unsafe as it potentially underestimates the CRPD. Furthermore, we show that the analysis is pessimistic and can overestimate the indirect preemption effects. To address these issues, we propose a novel analysis approach for the CRPD in a two-level non-inclusive cache hierarchy. We prove the correctness of the presented approach based on the set of feasible program execution traces. We implemented the presented approach in a worst-case execution time (WCET) analysis tool and compared the performance to existing analysis methods. Our evaluation shows that the presented analysis increases task set schedulability by up to 14 percentage points compared with the state-of-the-art analysis.
Thilo Leon Fischer, Heiko Falk
ACM Trans. Embed. Comput. Syst.2
2024 Shared Cache Analysis Under Preemptive Scheduling
abstract
When sharing a cache between multiple cores, the inter-core interference has to be considered in the worst-case execution time (WCET) analysis. Current interference models are overly pessimistic or not applicable to preemptively scheduled systems. We propose a novel technique to model interference in a preemptive system to classify accesses as cache hits or potential misses. We account for inter-core interference by considering the potential execution scenarios on the interfering core and find the worst-case interference pattern. The resulting access classifications are then used to compute the cache-related preemption delay. Our evaluation shows that the proposed analysis significantly increases the cache hit classifications, reduces WCET on average by up to 11.7%, and reduces worst-case response times on average by up to 15.4% compared to the existing classification technique.
Thilo Leon Fischer, Heiko Falk
DATE2
2024 Timing-aware analysis of shared cache interference for non-preemptive scheduling
abstract
Abstract In multi-core architectures, the last-level cache (LLC) is often shared between cores. Sharing the LLC leads to inter-core interference, which impacts system performance and predictability. This means that tasks running in parallel on different cores may experience additional LLC misses as they compete for cache space. To compute a task’s worst-case execution time (WCET), a safe bound on the inter-core cache interference has to be determined. We propose an interference analysis for set-associative shared least-recently-used caches. The analysis leverages timing information to establish tight bounds on the worst-case interference and classifies individual accesses as either cache hits or potential cache misses. We evaluated the analysis performance for systems containing 2 and 4 cores using shared caches up to 64 KB. The evaluation shows an average WCET reduction of up to 23.3% for dual-core systems and 8.5% for quad-core systems.
Thilo Leon Fischer, Heiko Falk
Real Time Syst.2
2023 WCET Analysis of Shared Caches in Multi -Core Architectures using Event-Arrival Curves
abstract
We propose a novel analysis approach for shared LRU caches to classify accesses as definitive cache hits or potential misses. In this approach inter-core cache interference is modelled as an event stream. Thus, by analyzing the timing between subsequent accesses to a particular cache block, it is possible to bound the inter-core interference. This perspective allows us to classify accesses as cache hits or potential misses using a data-flow analysis. We compare the performance of the presented approach to a partitioning of the shared cache.
Thilo Leon Fischer, Heiko Falk
DATE2
2023 The TeamPlay Project: Analysing and Optimising Time, Energy, and Security for Cyber-Physical Systems
abstract
Non-functional properties, such as energy, time, and security (ETS) are becoming increasingly important in Cyber-Physical Systems (CPS) programming. This article describes TeamPlay, a research project funded under the EU Horizon 2020 programme between January 2018 and June 2021. TeamPlay aimed to provide the system designer with a toolchain for developing embedded applications where ETS properties are first-class citizens, allowing the developer to reflect directly on energy, time and security properties at the source code level. In this paper we give an overview of the TeamPlay methodology, introduce the challenges and solutions of our approach and summarise the results achieved. Overall, applying our TeamPlay methodology led to an improvement of up to 18% performance and 52% energy usage over traditional approaches.
Benjamin Rouxel, Christopher Brown 0002, Emad Samuel Malki Ebeid, Kerstin Eder, Heiko Falk, Clemens Grelck, Jesper Holst, Shashank Jadhav, Yoann Marquer, Marcos Martinez de Alejandro, Kris Nikov, Ali Sahafi, Ulrik Pagh Schultz Lundquist, Adam Seewald, Vangelis Vassalos, Simon Wegener, Olivier Zendra
DATE5
2021 Predicting Objectives on a Reduced Search Space of Multiobjective Function Inlining
abstract
The Worst-Case Execution Time (WCET), energy consumption, and code size are among the most important criteria of hard real-time systems. To estimate the WCET and energy consumption at compile time, static analyzers are often used: they estimate the objectives by invoking time-consuming microarchitecture, data flow, and control flow analyses. The expensive analyses make it almost infeasible to use evolutionary algorithms for solving multiobjective problems with these two objectives at compile time, since any evolutionary algorithm extensively evaluates objectives to find solutions. We propose a method that speeds up an evolutionary algorithm supplying it with a reduced search space and prediction model fitted on the reduced search space, so the algorithm needs to explore a smaller search space and can use fast predictions instead of time-consuming estimations to evaluate the WCET and energy consumption. The proposed approach is general enough to be used for any compiler-based optimization. We demonstrate the advantages of it solving a multiobjective function inlining problem at compile time.
Kateryna Muts, Heiko Falk
SCOPES2
2020 Work-In-Progress: Fine-Grained On-Chip Energy Measurement of a Real-Time Multi-Core Processor
abstract
Embedded systems are often constrained by their energy consumption. To create energy-efficient software or to validate worst-case energy behavior, sophisticated energy models can be used. Measuring the energy consumption of a processor on a fine-grained level for an energy model typically requires the design of custom measurement hardware. In this paper we present a simple measurement setup using the on-chip ADC of a TriCore AURIX TC277 multi-core processor, utilizing one core as a measurement core without the need of external or additional HW. We show that with this setup, a reasonable level of accuracy can be achieved. Furthermore, this also enables on-line power measurements and energy-aware decisions for, e.g., mixed criticality systems.
Dominic Oehlert, Edward Umaña Williams, Heiko Falk
RTSS3
2020 Compiler-based WCET prediction performing function specialization
abstract
The Worst-Case Execution Time (WCET) is one of the most important criteria of hard real-time systems. Many optimizations have been proposed to improve WCET of an embedded application at compile time. Moreover, since modern embedded systems must also satisfy the additional design criteria like, e.g., code size or energy consumption, more often the compiler's optimizations go towards multi-objective optimization problems. Evolutionary algorithms are the most widely used method to solve a multi-objective problem. In order to find the set of the best trade-offs between the objectives, any evolutionary algorithm requires extensive evaluations of the objective functions. Thus, considering WCET as an objective in a multi-objective problem is infeasible in many cases, because the WCET analysis at compile time can be very time-consuming. For this reason, we propose a method based on a machine learning technique to predict the values of WCET at compile time. A well-known compiler-based optimization, function specialization, is considered as a base for the proposed prediction model. A regression method is analyzed in terms of making WCET predictions as precise as possible performing function specialization.
Kateryna Muts, Heiko Falk
SCOPES2
2020 Compiling for the Worst Case: Memory Allocation for Multi-task and Multi-core Hard Real-time Systems
abstract
Modern embedded hard real-time systems feature multiple tasks running on multiple processing cores. Schedulability analysis of such systems is usually performed on an abstract system level with each task being represented as a black box with fixed timing properties. If timing constraints are violated, then optimizing the system on a code-level to achieve schedulability is a tedious task. To tackle this issue, we propose an extension to the WCET-aware C Compiler framework WCC. We integrated an optimization framework based on Integer-Linear Programming into the WCC that is able to optimize a multi-core system with multiple tasks running on each core with regards to its schedulability. We evaluate the framework by providing two approaches on a schedulability aware static Scratchpad Memory (SPM) allocation: one based on Integer-Linear Programming (ILP) and one based on a genetic algorithm.
Arno Luppold, Dominic Oehlert, Heiko Falk
ACM Trans. Embed. Comput. Syst.3
2019 Multi-Objective Optimization for the Compiler of Real-Time Systems based on Flower Pollination Algorithm
abstract
Real-time systems usually face stringent constraints such as execution time, energy consumption, code-size, etc. Performing multi-objective optimization at compile time is one way to find approximations over the possible solutions which fulfill these constraints. Flower pollination algorithm (FPA) is a relatively recently proposed metaheuristic algorithm which makes use of the evolutionary characteristics of flower pollination process to find solutions to an optimization problem. In this paper, we propose a theoretical framework for an extension for the WCET-A ware C Compiler (WCC) framework [2] for performing multi-objective optimizations based on the FPA during compile time.
Shashank Jadhav, Heiko Falk
SCOPES2
2019 Compiler-Based Code Compression for Hard Real-Time Systems
abstract
Real-Time Systems often come with additional requirements apart from being functionally correct and adhering to their timing constraints. Another common additional optimization goal is to meet code size requirements. Code compression techniques might be utilized to meet code size constraints in embedded systems. We show how to extend a compiler targeting hard real-time systems by an asymmetric compiler-based code compression/decompression, where the compression is performed at the compilation time and the decompression takes place at the execution time. Moreover, experimental results show the impact of the decompression algorithm on the estimated Worst-Case Execution Time that is one of the key properties of hard real-time systems.
Kateryna Muts, Arno Luppold, Heiko Falk
SCOPES3
2019 Favorable Adjustment of Periods for Reduced Hyperperiods in Real-Time Systems
abstract
The hyperperiod defines the time span after which the temporal behavior of a periodical real-time system repeats. It is the key property which determines the complexity of both analysis and exhaustive simulation of a given system. Unfortunately, the hyperperiod may easily become very large. We introduce an ILP-based approach to modify the periods in a task set according to user constraints to retrieve an optimal solution for a drastically reduced hyperperiod.
Dominic Oehlert, Arno Luppold, Heiko Falk
SCOPES3
2019 Correction to: A compiler framework for the reduction of worst-case execution times
abstract
The article A compiler framework for the reduction of worst-case execution times, written by Heiko Falk and Paul Lokuciejewski, was originally published electronically on the publisher’s internet portal (currently SpringerLink) on 22 July 2010 without open access.
Heiko Falk, Paul Lokuciejewski
Real Time Syst.1
2019 Code-Inherent Traffic Shaping for Hard Real-Time Systems
abstract
Modern hard real-time systems evolved from isolated single-core architectures to complex multi-core architectures which are often connected in a distributed manner. With the increasing influence of interconnections in hard real-time systems, the access behavior to shared resources of single tasks or cores becomes a crucial factor for the system’s overall worst-case timing properties. Traffic shaping is a powerful technique to decrease contention in a network and deliver guarantees on network streams. In this paper we present a novel approach to automatically integrate a traffic shaping behavior into the code of a program for different traffic shaping profiles while being as least invasive as possible. As this approach is solely depending on modifying programs on a code-level, it does not rely on any additional hardware or operating system-based functions. We show how different traffic shaping profiles can be implemented into programs using a greedy heuristic and an evolutionary algorithm, as well as their influences on the modified programs. It is demonstrated that the presented approaches can be used to decrease worst-case execution times in multi-core systems and lower buffer requirements in distributed systems.
Dominic Oehlert, Selma Saidi, Heiko Falk
ACM Trans. Embed. Comput. Syst.3
2018 Compiler-based Extraction of Event Arrival Functions for Real-Time Systems Analysis
abstract
Event arrival functions are commonly required in real-time systems analysis. Yet, event arrival functions are often either modeled based on specifications or generated by using potentially unsafe captured traces. To overcome this shortcoming, we present a compiler-based approach to safely extract event arrival functions. The extraction takes place at the code-level considering a complete coverage of all possible paths in the program and resulting in a cycle accurate event arrival curve. In order to reduce the runtime overhead of the proposed algorithm, we extend our approach with an adjustable level of granularity always providing a safe approximation of the tightest possible event arrival curve. In an evaluation, we demonstrate that the required extraction time can be heavily reduced while maintaining a high precision.
Dominic Oehlert, Selma Saidi, Heiko Falk
ECRTS3
2018 Multi-Criteria Compiler-Based Optimization of Hard Real-Time Systems
abstract
Real-Time Systems often come with additional requirements apart from being functionally correct and adhering to their timing constraints. Common additional optimization goals are meeting code size requirements or the reduction of energy consumption. We show how to extend modern compiler frameworks to allow for optimizations towards multiple design criteria.
Kateryna Muts, Arno Luppold, Heiko Falk
SCOPES3
2018 Mitigating Data Cache Aging through Compiler-Driven Memory Allocation
abstract
Many embedded systems have to operate flawlessly over several years. One of the key issues which may cause computational errors over time are memory errors inflicted by aging effects. We propose a compiler-based optimization in order to mitigate such effects on data caches using SRAM memory cells.
Dominic Oehlert, Arno Luppold, Heiko Falk
SCOPES3
2018 Measuring and Modeling Energy Consumption of Embedded Systems for Optimizing Compilers
abstract
Estimating energy consumption already during development as precisely as possible is crucial for many embedded system designs. These energy estimates should be expressed such that they can be used by subsequent automated optimizations during the compilation phase in order to minimize the expected energy consumption. In this paper we present our current approach on measuring and modeling, and subsequently using the derived energy estimates. Our model is implemented within an optimizing compiler, allowing for future energy focused compiler optimizations.
Mikko Roth, Arno Luppold, Heiko Falk
SCOPES3
2017 Schedulability-aware SPM Allocation for preemptive hard real-time systems with arbitrary activation patterns
abstract
In hard real-time multi-tasking systems each task has to meet its deadline under any circumstances. If one or several tasks violate their timing constraints, compiler optimizations can be used to optimize the Worst-Case Execution Time (WCET) of each task with a focus on the system's schedulability. Existing approaches are limited to single-tasking or strictly periodic multitasking systems. We propose a compiler optimization to perform a schedulability-aware static instruction Scratchpad Allocation for arbitrary activation patterns and deadlines. The approach is based on Integer-Linear Programming and is evaluated for the Infineon TriCore TC1796 microcontroller.
Arno Luppold, Heiko Falk
DATE2
2017 Bus-Aware Static Instruction SPM Allocation for Multicore Hard Real-Time Systems
abstract
Over the past years, multicore systems emerged into the domain of hard real-time systems. These systems introduce common buses and shared memories which heavily influence the timing behavior. We show that existing WCET optimizations may lead to suboptimal results when applied to multicore setups. Additionally we provide both a genetic and a precise Integer Linear Programming (ILP)-based static instruction scratchpad memory allocation optimization which are capable of exploiting multicore properties, resulting in a WCET reduction of 26% in average compared with a bus-unaware optimization. Furthermore, we show that our ILP-based optimization's average runtime is distinctively lower in comparison to the genetic approach. Although limiting the number of tasks per core to one and partially exploiting private instruction SPMs, we cover the most crucial elements of a multicore setup: the interconnection and shared resources.
Dominic Oehlert, Arno Luppold, Heiko Falk
ECRTS3
2016 Cache-Aware Instruction SPM Allocation for Hard Real-Time Systems
abstract
To improve the execution time of a program, parts of its instructions can be allocated to a fast Scratchpad Memory (SPM) at compile time. This is a well-known technique which can be used to minimize the program's worst-case Execution Time (WCET). However, modern embedded systems often use cached main memories. An SPM allocation will inevitably lead to changes in the program's memory layout in main memory, resulting in either improved or degraded worst-case caching behavior.
Arno Luppold, Christina Kittsteiner, Heiko Falk
SCOPES3
2016 Practical Challenges of ILP-based SPM Allocation Optimizations
abstract
Scratchpad Memory (SPM) allocation is a well-known technique for compiler-based code optimizations. Integer-Linear Programming has been proven to be a powerful technique to determine which parts of a program should be moved to the SPM. Although the idea is quite straight-forward in theory, the technique features several challenges when being applied to modern embedded systems. In this paper, we aim to bring out the main issues and possible solutions which arise when trying to apply those optimizations to existing hardware platforms.
Dominic Oehlert, Arno Luppold, Heiko Falk
SCOPES3
2015 Code Optimization of Periodic Preemptive Hard Real-Time Multitasking Systems
abstract
In hard real-time systems, each task has to provably finish its execution within its respective deadline. Compiler optimizations can be used to improve each task's timing behavior. However, current compilers do not consider tasks' deadlines and can therefore not be used to reliably optimize hard real-time systems with regard to its schedulability. We propose a compiler optimization framework based on Integer-Linear Programming which allows for schedulability aware code optimizations of hard real-time multitasking systems. We evaluate the framework using an instruction scratchpad optimization. The results show that our approach can be used to improve the schedulability of hard real-time systems significantly.
Arno Luppold, Heiko Falk
ISORC2
2015 Schedulability Aware WCET-Optimization of Periodic Preemptive Hard Real-Time Multitasking Systems
abstract
In hard real-time multitasking systems, applying WCET-oriented code optimizations to individual tasks may not lead to optimal results with regard to the system's schedulability. We propose an approach based on Integer-Linear Programming which is able to perform schedulability aware code optimizations for periodic task sets with fixed priorities. We evaluate our approach by using a static instruction SPM optimization for the Infineon TriCore microcontroller.
Arno Luppold, Heiko Falk
SCOPES2
2015 Real-Time Task Scheduling on Island-Based Multi-Core Platforms
abstract
With the increasing number of cores in a computing system, how to coordinate the computing units and heterogeneous memory resources has soon become extremely critical for real-time systems. This paper explores the joint considerations of memory management and real-time task scheduling over island-based multi-core architecture, where the local memory module of an island offers shorter access time than the global memory module does. The objective of this work is to minimize the number of needed islands to successfully schedule real-time tasks. When the required amount of the local memory space is specified for each task, a scheduling algorithm is proposed to provide an asymptotic 299-approximation bound. When there is flexibility in determining the needed local memory space for each task, we propose an algorithm with an asymptotic 4-approximation bound to jointly manage memory resources and allocate computing cores. In addition to the worst-case approximation analysis, the proposed algorithms are also evaluated with 82 real-life benchmarks with the support of a worst-case execution time analyzer. Moreover, extensive evaluations are conducted to show the capability of the proposed approaches when being used with various computing cores and memory resources.
Jian-Jia Chen, Tei-Wei Kuo, Heiko Falk
IEEE Trans. Parallel Distributed Syst.4
2014 Static analysis of multi-core TDMA resource arbitration delays
Timon Kelter, Heiko Falk, Peter Marwedel, Sudipta Chattopadhyay 0001, Abhik Roychoudhury
Real Time Syst.2
2014 A Unified WCET analysis framework for multicore platforms
abstract
With the advent of multicore architectures, worst-case execution time (WCET) analysis has become an increasingly difficult problem. In this article, we propose a unified WCET analysis framework for multicore processors featuring both shared cache and shared bus. Compared to other previous works, our work differs by modeling the interaction of shared cache and shared bus with other basic microarchitectural components (e.g., pipeline and branch predictor). In addition, our framework does not assume a timing anomaly free multicore architecture for computing the WCET. A detailed experiment methodology suggests that we can obtain reasonably tight WCET estimates in a wide range of benchmark programs.
Sudipta Chattopadhyay 0001, Lee Kee Chong, Abhik Roychoudhury, Timon Kelter, Peter Marwedel, Heiko Falk
ACM Trans. Embed. Comput. Syst.6
2014 Building timing predictable embedded systems
abstract
A large class of embedded systems is distinguished from general-purpose computing systems by the need to satisfy strict requirements on timing, often under constraints on available resources. Predictable system design is concerned with the challenge of building systems for which timing requirements can be guaranteed a priori . Perhaps paradoxically, this problem has become more difficult by the introduction of performance-enhancing architectural elements, such as caches, pipelines, and multithreading, which introduce a large degree of uncertainty and make guarantees harder to provide. The intention of this article is to summarize the current state of the art in research concerning how to build predictable yet performant systems. We suggest precise definitions for the concept of “predictability”, and present predictability concerns at different abstraction levels in embedded system design. First, we consider timing predictability of processor instruction sets. Thereafter, we consider how programming languages can be equipped with predictable timing semantics, covering both a language-based approach using the synchronous programming paradigm, as well as an environment that provides timing semantics for a mainstream programming language (in this case C). We present techniques for achieving timing predictability on multicores. Finally, we discuss how to handle predictability at the level of networked embedded systems where randomly occurring errors must be considered.
Philip Axer, Rolf Ernst, Heiko Falk, Alain Girault, Daniel Grund, Nan Guan, Bengt Jonsson 0001, Peter Marwedel, Jan Reineke 0001, Christine Rochange, Maurice Sebastian, Reinhard von Hanxleden, Reinhard Wilhelm, Wang Yi 0001
ACM Trans. Embed. Comput. Syst.3
2013 Real-time partitioned scheduling on multi-core systems with local and global memories
abstract
Real-time task scheduling becomes even more challenging with the emerging of island-based multi-core architecture, where the local memory module of an island offers shorter access time than the global memory module does. With such a popular architecture design in mind, this paper exploits real-time task scheduling over island-based homogeneous cores with local and global memory pools. Joint considerations of real-time scheduling and memory allocation are presented to efficiently use the computing and memory resources. A polynomial-time algorithm with an asymptotic 4-approximation bound is proposed to minimize the number of needed islands to successfully schedule tasks. To evaluate the performance of the proposed algorithm, 82 benchmarks from the MRTC, MediaBench, UTDSP, NetBench, and DSPstone benchmark suites were profiled by a worst-case-execution-time analyzer aiT and included in the experiments.
Jian-Jia Chen, Tei-Wei Kuo, Heiko Falk
ASP-DAC4
2013 Simple analysis of partial worst-case execution paths on general control flow graphs
abstract
One of the most important computations in static worst-case execution time analyses is the path analysis which computes the potentially most time-consuming execution path in a program. This is typically done either with an implicit path computation based on solving an integer linear program, or with explicit path computations directly on the program's control flow graph. The former approach is powerful and comparably simple to use but hard to extend and to combine with other program analyses due to its restriction to the linear equation model. The latter approaches are often restricted to well-structured graphs, suffer from inaccuracy or require nontrivial structural analyses or graph transformations upfront or during their computations. In this paper, we propose a generalized computational model and a comprehensive explicit path analysis that operates on arbitrary directed control flow graphs. We propose simple and yet effective techniques to deal with unstructured control flows and complex flow fact models. The analysis does not require a control flow graph to be mutable, is non-recursive, fast, and provides the means to compute all worst-case paths from arbitrary source nodes. It is well suited for solving local problems and the computation of partial solutions, which is highly relevant for problems related to scheduling and execution modes alike.
Jan C. Kleinsorge, Heiko Falk, Peter Marwedel
EMSOFT2
2012 WCET-aware static locking of instruction caches
abstract
In the past decades, embedded system designers moved from simple, predictable system designs towards complex systems equipped with caches. This step was necessary in order to bridge the increasingly growing gap between processor and memory system performance. Static analysis techniques had to be developed to allow the estimation of the cache behavior and an upper bound of the execution time of a program. This bound is called worst-case execution time (WCET). Its knowledge is crucial to verify whether hard real-time systems satisfy their timing constraints, and the WCET is a key parameter for the design of embedded systems.
Sascha Plazar, Jan C. Kleinsorge, Peter Marwedel, Heiko Falk
CGO4
2012 Partitioned scheduling for real-time tasks on multiprocessor embedded systems with programmable shared srams
abstract
This work is motivated by the advance of multiprocessor system architecture, in which the allocation of tasks over heterogeneous memory modules has a significant impact on the task execution. By considering two different types of memory modules with different access latencies, this paper explores joint considerations of memory allocation and real-time task scheduling to minimize the maximum utilization of processors of the system. For implicit-deadline sporadic tasks, a two-phase algorithm is developed, where the first phase determines memory allocation to derive a lower bound of the maximum utilization, and the second phase adopts worst-fit partitioning to assign tasks. It is shown that the proposed algorithm leads to a tight (2-⁄2M+1)-approximation bound where M is the number of processors. The proposed algorithm is then evaluated with 82 realistic benchmarks from MRTC, MediaBench, UTDSP, NetBench and DSPstone, and extensive simulations are further conducted to analyze the proposed algorithm.
Jian-Jia Chen, Waqaas Munawar, Tei-Wei Kuo, Heiko Falk
EMSOFT5
2012 Code-level timing analysis of embedded software: emsoft'12 invited talk session outline
abstract
Embedded systems are often business- or safety-critical, with strict timing requirements that have to be met for the information-processing. Code-level timing analysis (used to analyse software running on some given hardware w.r.t. its timing properties) is an indispensable technique for ascertaining whether or not these requirements are met. However, recent developments in hardware, especially multi-core processors, and in software organisation render analysis increasingly more difficult, thus challenging the evolution of timing analysis techniques. This special session aims to give an overview over the current state of the art and the future challenges w.r.t. code-level timing analysis and introduces TACLe, a recently started EU-funded networking activity targeting these challenges.
Heiko Falk, Kevin Hammond, Kim G. Larsen, Björn Lisper, Stefan M. Petters
EMSOFT1
2012 A Unified WCET Analysis Framework for Multi-core Platforms
abstract
With the advent of multi-core architectures, worst case execution time (WCET) analysis has become an increasingly difficult problem. In this paper, we propose a unified WCET analysis framework for multi-core processors featuring both shared cache and shared bus. Compared to other previous works, our work differs by modeling the interaction of shared cache and shared bus with other basic micro-architectural components (e.g. pipeline and branch predictor). In addition, our framework does not assume a timing anomaly free multi-core architecture for computing the WCET. A detailed experiment methodology suggests that we can obtain reasonably tight WCET estimates in a wide range of benchmark programs.
Sudipta Chattopadhyay 0001, Lee Kee Chong, Abhik Roychoudhury, Timon Kelter, Peter Marwedel, Heiko Falk
IEEE Real-Time and Embedded Technology and Applications Symposium6
2012 Introduction to the Special Section on SCOPES'09
abstract
introduction Introduction to the Special Section on SCOPES’09 Guest Editors: Heiko Falk Ulm University, Germany Ulm University, GermanyView Profile , Peter Marwedel TU Dortmund, Germany TU Dortmund, GermanyView Profile Authors Info & Claims ACM Transactions on Embedded Computing SystemsVolume 11SIssue 1Article No.: 17pp 1–3https://doi.org/10.1145/2180887.2180894Published:01 June 2012Publication History 0citation126DownloadsMetricsTotal Citations0Total Downloads126Last 12 Months1Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
Heiko Falk, Peter Marwedel
ACM Trans. Embed. Comput. Syst.1
2011 WCET-driven cache-aware code positioning
abstract
Code positioning is a well-known compiler optimization aiming at the improvement of the instruction cache behavior. A contiguous mapping of code fragments in memory avoids overlapping of cache sets and thus decreases the number of cache conflict misses.
Heiko Falk, Helena Kotthaus
CASES1
2011 WCET-driven branch prediction aware code positioning
abstract
In the past decades, embedded system designers moved from simple, predictable system designs towards complex systems equipped with caches, branch prediction units and speculative execution. This step was necessary in order to fulfill increasing requirements on computational power. Static analysis techniques considering such speculative units had to be developed to allow the estimation of an upper bound of the execution time of a program. This bound is called worst-case execution time (WCET). Its knowledge is crucial to verify whether hard real-time systems satisfy their timing constraints, and the WCET is a key parameter for the design of embedded systems.
Sascha Plazar, Jan C. Kleinsorge, Heiko Falk, Peter Marwedel
CASES3
2011 WCET-aware Register Allocation Based on Integer-Linear Programming
abstract
Current compilers lack precise timing models guiding their built-in optimizations. Hence, compilers apply ad-hoc heuristics during optimization to improve code quality. One of the most important optimizations is register allocation. Many compilers heuristically decide when and where to spill a register to memory, without having a clear understanding of the impact of such spill code on a program's runtime. This paper presents an integer-linear programming (ILP) based register allocator that uses precise worst-case execution time (WCET) models. Using this WCET timing data, the compiler avoids spill code generation along the critical path defining a program's WCET. To the best of our knowledge, this paper is the first one to present a WCET-aware ILP-based register allocator. Our results underline the effectiveness of the proposed techniques. For a total of 55 realistic benchmarks, we reduced WCETs by 20.2% on average and ACETs by 14%, compared to a standard graph coloring allocator. Furthermore, our ILP-based register allocator outperforms a WCET-aware graph coloring allocator by more than a factor of two for the considered benchmarks, while requiring less runtime.
Heiko Falk, Norman Schmitz, Florian Schmoll
ECRTS1
2011 Bus-Aware Multicore WCET Analysis through TDMA Offset Bounds
abstract
In the domain of real-time systems, the analysis of the timing behavior of programs is crucial for guaranteeing the schedulability and thus the safeness of a system. Static analyses of the WCET (Worst-Case Execution Time) have proven to be a key element for timing analysis, as they provide safe upper bounds on a program's execution time. For single-core systems, industrial-strength WCET analyzers are already available, but up to now, only first proposals have been made to analyze the WCET in multicore systems, where the different cores may interfere during the access to shared resources. An important example for this are shared buses which connect the cores to a shared main memory. The time to gain access to the shared bus may vary significantly, depending on the used bus arbitration protocol and the access timings. In this paper, we propose a new technique for analyzing the duration of accesses to shared buses. We implemented a prototype tool which uses the new analysis and tested it on a set of real world benchmarks. Results demonstrate that our analysis achieves the same precision as the best existing approach while drastically outperforming it in matters of analysis time.
Timon Kelter, Heiko Falk, Peter Marwedel, Sudipta Chattopadhyay 0001, Abhik Roychoudhury
ECRTS2
2011 Timing and schedulability analysis for distributed automotive control applications
abstract
High-end cars today consist of more than 100 electronic control units (ECUs) that are connected to a set of sensors and actuators and run multiple distributed control applications. The design flow of such architectures consists of specifying control applications as Simulink/Stateflow models, followed by generating code from them and finally mapping such code onto multiple ECUs. In addition, the scheduling policies and parameters on both the ECUs and the communication buses over which they communicate also need to be specified. These policies and parameters are computed from high-level timing and control performance constraints. The proposed tutorial will cover different aspects of this design flow, with a focus on timing and schedulability problems. After reviewing the basic concepts of worst-case execution time analysis and schedulability analysis, we will discuss the differences between meeting timing constraints (as in classical real-time systems) and meeting control performance constraints (e.g., stability, steady and transient state performance). We will then describe various control performance related schedulability analysis techniques and how they may be tied to model-based software development. Finally, we will discuss various schedule synthesis techniques, both for ECUs as well as for communication protocols like FlexRay, so that control performance constraints specified at the model-level may be satisfied. Throughout the tutorial different commercial as well as academic tools will be discussed and demonstrated.
Samarjit Chakraborty, Marco Di Natale, Heiko Falk, Martin Lukasiewycz, Frank Slomka
EMSOFT3
2011 A synergetic approach to accurate analysis of cache-related preemption delay
abstract
The worst-case execution time (WCET) of a task denotes the largest possible execution time for all possible inputs and thus, hardware states. For non-preemptive multitask scheduling, techniques for the static estimation of safe upper bounds have been subject to industrial practice for years. For preemptive scheduling however, the isolated analysis of tasks becomes imprecise as interferences among tasks cannot be considered with sufficient precision. For such scenarios, the cache-related preemption delay (CRPD) denotes a key metric as it reflects the effects of preemptions on the execution behavior of a single task. Until recently, proposals for CRPD analyses were often limited to direct mapped caches or comparably imprecise for k-way set-associative caches.
Jan C. Kleinsorge, Heiko Falk, Peter Marwedel
EMSOFT2
2011 Approximating Pareto optimal compiler optimization sequences - a trade-off between WCET, ACET and code size
abstract
SUMMARY With the growing complexity of embedded systems software, high code quality can only be achieved using a compiler. Sophisticated compilers provide a vast spectrum of various optimizations to improve code aggressively w.r.t. different objective functions, e.g. average‐case execution time ( ACET ) or code size. Owing to the complex interactions between the optimizations, the choice for a promising sequence of code transformations is not trivial. Compiler developers address this problem by proposing standard optimization levels, e.g. O3 or Os . However, previous studies have shown that these standard levels often miss optimization potential or might even result in performance degradation. In this paper, we propose the first adaptive worst‐case execution time ( WCET )‐aware compiler framework for an automatic search of compiler optimization sequences that yield highly optimized code. Besides the objective functions ACET and code size, we consider the WCET which is a crucial parameter for real‐time systems. To find suitable trade‐offs between these objectives, stochastic evolutionary multi‐objective algorithms identifying Pareto optimal solutions for the objectives 〈WCET, ACET 〉 and 〈WCET, code size 〉 are exploited. A comparison based on statistical performance assessments is performed that helps to determine the most suitable multi‐objective optimizer. The effectiveness of our approach is demonstrated on real‐life benchmarks showing that standard optimization levels can be significantly outperformed. Copyright © 2011 John Wiley & Sons, Ltd.
Paul Lokuciejewski, Sascha Plazar, Heiko Falk, Peter Marwedel, Lothar Thiele
Softw. Pract. Exp.3
2010 Multi-objective Exploration of Compiler Optimizations for Real-Time Systems
abstract
With the growing complexity of embedded systems software, high code quality can only be achieved using a compiler. Sophisticated compilers provide a vast spectrum of various optimizations to improve code aggressively w. r. t. different objective functions, e. g., average-case execution time (ACET) or code size. Due to the complex interactions between the optimizations, the choice for a promising sequence of code transformations is not trivial. Compiler developers address this problem by proposing standard optimization levels, e. g., O3 or Os. However, previous studies have shown that these standard levels often miss optimization potential or might even result in performance degradation. In this paper, we propose the first adaptive WCET-aware compiler framework for an automatic search of compiler optimization sequences which yield highly optimized code. Besides the objective functions ACET and code size, we consider the worst-case execution time (WCET) which is a crucial parameter for real-time systems. To find suitable trade-offs between these objectives, stochastic evolutionary multi-objective algorithms identifying Pareto optimal solutions are exploited. A comparison based on statistical performance assessments is performed which helps to determine the most suitable multi-objective optimizer. The effectiveness of our approach is demonstrated on real-life benchmarks showing that standard optimization levels can be significantly outperformed.
Paul Lokuciejewski, Sascha Plazar, Heiko Falk, Peter Marwedel, Lothar Thiele
ISORC3
2010 A compiler framework for the reduction of worst-case execution times
abstract
Abstract The current practice to design software for real-time systems is tedious. There is almost no tool support that assists the designer in automatically deriving safe bounds of the worst-case execution time ( WCET ) of a system during code generation and in systematically optimizing code to reduce WCET. This article presents concepts and infrastructures for WCET-aware code generation and optimization techniques for WCET reduction. All together, they help to obtain code explicitly optimized for its worst-case timing, to automate large parts of the real-time software design flow, and to reduce costs of a real-time system by allowing to use tailored hardware.
Heiko Falk, Paul Lokuciejewski
Real Time Syst.1
2009 A Fast and Precise Static Loop Analysis Based on Abstract Interpretation, Program Slicing and Polytope Models
abstract
A static loop analysis is a program analysis computing loop iteration counts. This information is crucial for different fields of applications. In the domain of compilers, the knowledge about loop iterations can be exploited for aggressive loop optimizations like Loop Unrolling. A loop analyzer also provides static information about code execution frequencies which can assist feedback-directed optimizations. Another prominent application is the static worst-case execution time (WCET) analysis which relies on a safe approximation of loop iteration counts. In this paper, we propose a framework for a static loop analysis based on Abstract Interpretation, a theory of a sound approximation of program semantics. To accelerate the analysis, we preprocess the analyzed code using Program Slicing, a technique that removes statements irrelevant for the loop analysis. In addition, we introduce a novel polytope-based loop evaluation that further significantly reduces the analysis time. The efficiency of our loop analyzer is evaluated on a large number of benchmarks. Results show that 99% of the considered loops could be successfully analyzed in an acceptable amount of time. This study points out that our methodology is best suited for real-world problems.
Paul Lokuciejewski, Daniel Cordes, Heiko Falk, Peter Marwedel
CGO3
2009 WCET-aware register allocation based on graph coloring
abstract
Current compilers lack precise timing models guiding their built-in optimizations. Hence, compilers apply ad-hoc heuristics during optimization to improve code quality. One of the most important optimizations is register allocation. Many compilers heuristically decide when and where to spill a register to memory, without having a clear understanding of the impact of such spill code on a program's run time.
Heiko Falk
DAC1
2009 Optimal static WCET-aware scratchpad allocation of program code
abstract
Caches are notorious for their unpredictability. It is difficult or even impossible to predict if a memory access will result in a definite cache hit or miss. This unpredictability is highly undesired especially when designing real-time systems where the worst-case execution time (WCET) is one of the key metrics. Scratchpad memories (SPMs) have proven to be a fully predictable alternative to caches. In contrast to caches, however, SPMs require dedicated compiler support.
Heiko Falk, Jan C. Kleinsorge
DAC1
2008 WCET-driven Cache-based Procedure Positioning Optimizations
abstract
Procedure Positioning is a well known compiler optimization aiming at the improvement of the instruction cache behavior. A contiguous mapping of procedures calling each other frequently in the memory avoids overlapping of cache lines and thus decreases the number of cache conflict misses. In standard literature, these positioning techniques are guided by execution profile data and focus on an improved average-case performance. We present two novel positioning optimizations driven by worst-case execution time (WCET) information to effectively minimize the program's worst-case behavior. WCET reductions by 10% on average are achieved. Moreover, a combination of positioning and the WCET-driven Procedure Cloning optimization proposed in [14] is presented improving the WCET analysis by 36% on average.
Paul Lokuciejewski, Heiko Falk, Peter Marwedel
ECRTS2
2008 WCET-driven, code-size critical procedure cloning
abstract
In the domain of the worst-case execution time (WCET) analysis, loops are an inherent source of unpredictability and loss of precision since the determination of tight and safe information on the number of loop iterations is a difficult task. In particular, data-dependent loops whose iteration counts depend on function parameters can not be precisely handled by a timing analysis. Procedure Cloning can be exploited to make these loops explicit within the source code allowing a highly precise WCET analysis.
Paul Lokuciejewski, Heiko Falk, Peter Marwedel, Henrik Theiling
SCOPES2
2007 Operating system integrated energy aware scratchpad allocation strategies for multiprocess applications
abstract
Various scratchpad allocation strategies have been developed in the past. Most of them target the reduction of energy consumption. These approaches share the necessity of having direct access to the scratchpad memory. In earlier embedded systems this was always true, but with the increasing complexity of tasks systems have to perform, an additional operating system layer between the hardware and the application is becoming mandatory. This paper presents an approach to integrate a scratchpad memory manager into the operating system. The goal is to minimize energy consumption. In contrast to previous work, compile time knowledge about the application's behavior is taken into account. A set of fast heuristic allocation methods is proposed in this paper. An in-depth study and comparison of achieved energy savings and cycle reductions was performed. The results show that even in the highly dynamic environment of an operating system equipped embedded system, up to 83% energy consumption reduction can be achieved.
Robert Pyka, Christoph Faßbach, Manish Verma, Heiko Falk, Peter Marwedel
SCOPES4
2004 Service Discovery with Higher Order Services in Mobile Hospitals
abstract
German Red Cross mobile hospitals must be operational in areas of war or disaster within a few days. In the ARDOR project, we collaborate with the German Red Cross in order to accelerate the workflows in these hospitals by developing and deploying a configurationless distributed information technology on top of a mobile ad hoc network . The main applications are scheduling of resources and their allocation. The computer-supported scheduling must enable the planning staff to query the currently available resources and services and the respective booking information. To achieve this, we introduce service discovery on the middleware layer. However, service discovery has to handle higher order (medical or logistic) services, as an entry in the schedule typically consists of the simultaneous allocation of many resources. Furthermore, service discovery must be scalable as the mobile ad hoc network might be highly dynamic and large in size. This paper claims that our self-organizing and scalable service discovery approach provides a way to enable reliable access to higher order services.
Michael Kreutzer 0001, Martin Kähmer, Heiko Falk
CBMS3
2004 Combined Data Partitioning and Loop Nest Splitting for Energy Consumption Minimization
Heiko Falk, Manish Verma
SCOPES1
2003 Control Flow Driven Splitting of Loop Nests at the Source Code Level
Heiko Falk, Peter Marwedel
DATE1