Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Daniel Prokesch is active.

Publication


Featured researches published by Daniel Prokesch.


embedded software | 2015

T-CREST

Martin Schoeberl; Sahar Abbaspour; Benny Akesson; Neil C. Audsley; Raffaele Capasso; Jamie Garside; Kees Goossens; Sven Goossens; Scott Hansen; Reinhold Heckmann; Stefan Hepp; Benedikt Huber; Alexander Jordan; Evangelia Kasapaki; Jens Knoop; Yonghui Li; Daniel Prokesch; Wolfgang Puffitsch; Peter P. Puschner; André Rocha; Cláudio Silva; Jens Sparsø; Alessandro Tocchi

Real-time systems need time-predictable platforms to allow static analysis of the worst-case execution time (WCET). Standard multi-core processors are optimized for the average case and are hardly analyzable. Within the T-CREST project we propose novel solutions for time-predictable multi-core architectures that are optimized for the WCET instead of the average-case execution time. The resulting time-predictable resources (processors, interconnect, memory arbiter, and memory controller) and tools (compiler, WCET analysis) are designed to ease WCET analysis and to optimize WCET performance. Compared to other processors the WCET performance is outstanding.The T-CREST platform is evaluated with two industrial use cases. An application from the avionic domain demonstrates that tasks executing on different cores do not interfere with respect to their WCET. A signal processing application from the railway domain shows that the WCET can be reduced for computation-intensive tasks when distributing the tasks on several cores and using the network-on-chip for communication. With three cores the WCET is improved by a factor of 1.8 and with 15 cores by a factor of 5.7.The T-CREST project is the result of a collaborative research and development project executed by eight partners from academia and industry. The European Commission funded T-CREST.


international conference on computer safety, reliability, and security | 2012

Compiling for time predictability

Peter P. Puschner; Raimund Kirner; Benedikt Huber; Daniel Prokesch

Within the T-CREST project we work on hardware/software architectures and code-generation strategies for time-predictable embedded and cyber-physical systems. In this paper we present the single-path code generation approach that we plan to explore and implement in a compiler prototype for a time- predictable processor. Single-path code generation produces code that forces every execution to follow the same trace of instructions, thus supporting time predictability and simplifying the worst-case execution-time analysis of code. The idea of the single-path generation and details about the code-generation rules of the compiler can be found in this work.


international symposium on object/component/service-oriented real-time distributed computing | 2013

The T-CREST approach of compiler and WCET-analysis integration

Peter P. Puschner; Daniel Prokesch; Benedikt Huber; Jens Knoop; Stefan Hepp; Gernot Gebhard

A good worst-case performance and the availability of high-quality bounds on the worst-case execution time (WCET) of tasks are central for the construction of hard realtime computer systems for safety-critical applications. Timing-predictability of the whole software/hardware system is a necessary prerequisite to achieve this. We show that a predictable architecture and the tight and seamless integration of compilation and WCET analysis is beneficial to achieve the initial two goals of good worst-case performance and the availability of high-quality bounds on the WCET of computation tasks. Information generated by the compiler improves the WCET analysis. Detailed timing feedback from the WCET analysis helps the compiler to reduce the worst case execution time. The paper describes the interface and the interaction between the industrial strength WCET analysis tool and the compiler as developed in the EU FP7 T-CREST project, and demonstrates the cooperation of these tools with an illustrative example.


languages, compilers, and tools for embedded systems | 2013

Combined WCET analysis of bitcode and machine code using control-flow relation graphs

Benedikt Huber; Daniel Prokesch; Peter P. Puschner

Static program analyses like stack usage analysis and worst-case execution time (WCET) analysis depend on the actual machine code generated by the compiler for the target system. As the analysis of binary code is costly, hard to diagnose and platform dependent, it is preferable to carry out parts of these analyses on a higher-level program representation. To this end, the higher-level code and the machine code need to be related, a difficult task due to the complexity of modern optimizing compilers. In this article, we present a novel representation called control-flow relation graphs, which provide an accurate model of the control-flow relation between machine code and the compilers intermediate representation. In order to facilitate the integration of our approach in existing compiler frameworks, we develop a construction algorithm that builds the control-flow relation graph from partial mappings provided by the compiler. The WCET calculation method for control-flow relation graphs processes flow information from both the intermediate representation and machine code. Furthermore, we demonstrate the transformation of flow information from the IR to the machine code level, in order to use existing industrial-strength WCET analysis tools operating on machine code. We implemented the construction algorithm within the LLVM compiler framework, along with an implementation of the combined WCET calculation method. The evaluation demonstrates that the approach is able to relate bitcode (LLVMs intermediate representation) and machine code in a precise way, with a WCET increase of at most 2% when using flow facts on the bitcode level, compared to equivalent ones on the machine-code level. As the methods presented in this article provide a cost-effective way to reuse platform independent flow information, they have the potential to simplify WCET analysis, and popularize its use in the development process of real-time systems.


worst case execution time analysis | 2012

A Formal Framework for Precise Parametric WCET Formulas

Benedikt Huber; Daniel Prokesch; Peter P. Puschner

Parametric worst-case execution time (WCET) formulas are a valuable tool to estimate the impact of input data properties on the WCET at design time, or to guide scheduling decisions at runtime. Previous approaches to parametric WCET analysis either provide only informal ad-hoc solutions or tend to be rather pessimistic, as they do not take flow constraints other than simple loop bounds into account. We develop a formal framework around path- and frequency expressions, which allow us to reason about execution frequencies of program parts. Starting from a reducible control flow graph and a set of (parametric) constraints, we show how to obtain frequency expressions and refine them by means of sound approximations, which account for more sophisticated flow constraints. Finally, we obtain closed-form parametric WCET formulas by means of partial evaluation. We developed a prototype, implementing our solution to parametric WCET analysis, and compared existing approaches within our setting. As our framework supports fine-grained transformations to improve the precision of parametric formulas, it allows to focus on important flow relations in order to avoid intractably large formulas.


international symposium on object/component/service-oriented real-time distributed computing | 2015

A Generator for Time-Predictable Code

Daniel Prokesch; Stefan Hepp; Peter P. Puschner

Time-predictability is an essential property of software components of safety-critical hard real-time systems. Single-path code generation produces code that forces every execution to follow the same trace of instructions, thus making the execution time of code independent of its input data. This supports the time predictability of components and simplifies their worst-case execution-time analysis. In this paper we present the implementation of a single-path code generator in a compiler for a time-predictable processor. The evaluation on a real-world application shows that single-path code generation is a practicable strategy for the construction of time-predictable software components.


worst case execution time analysis | 2014

Towards Automated Generation of Time-Predictable Code

Daniel Prokesch; Benedikt Huber; Peter P. Puschner

Knowledge of the worst-case execution time of software components is essential in safety-critical hard real-time systems. The analysis thereof is not trivial as the execution time depends on many factors, including the underlying hardware platform, the program structure, and the code produced by the compiler. Often, the execution time is variable and highly sensitive to the input data the program has to process. This paper presents a code transformation applicable in a compiler backend that produces time-predictable code. The resulting code contains a single input-data independent execution path, in order to obtain programs of stable timing behaviour. The transformation technique has been validated by applying it on a number of benchmarks. Experiments show a reduction of execution time variability, at acceptable costs for the single execution path.


international symposium on object component service oriented real time distributed computing | 2015

A Time-Predictable Instruction-Cache Architecture that Uses Prefetching and Cache Locking

Bekim Cilku; Daniel Prokesch; Peter P. Puschner

Trustable Worst-Case Execution-Time (WCET) bounds are a necessary component for the construction and verification of hard real-time computer systems. Deriving such bounds for contemporary hardware/software systems is a complex task. The single-path conversion overcomes this difficulty by transforming all unpredictable branch alternatives in the code to a sequential code structure with a single execution trace. However, the simpler code structure and analysis of single-path code comes at the cost of a longer execution time. In this paper we address the problem of the execution performance of single-path code. We present a new cache organization that utilizes the principle of locality of single-path code to reduce cache miss latency and cache miss rate. The proposed cache memory architecture combines cache prefetching and cache locking, so that the prefetcher capitalizes on spatial locality while the locker makes use of temporal locality. The demonstration section shows how these two techniques can complement each other.


Real-time Systems | 2018

Patmos: a time-predictable microprocessor

Martin Schoeberl; Wolfgang Puffitsch; Stefan Hepp; Benedikt Huber; Daniel Prokesch

Current processors provide high average-case performance, as they are optimized for general purpose computing. However, those optimizations often lead to a high worst-case execution time (WCET). WCET analysis tools model the architectural features that increase average-case performance. To keep analysis complexity manageable, those models need to abstract from implementation details. This abstraction further increases the WCET bound. This paper presents a way out of this dilemma: a processor designed for real-time systems. We design and optimize a processor, called Patmos, for low WCET bounds rather than for high average-case performance. Patmos is a dual-issue, statically scheduled RISC processor. A method cache serves as the cache for the instructions and a split cache organization simplifies the WCET analysis of the data cache. To fill the dual-issue pipeline with enough useful instructions, Patmos relies on a customized compiler. The compiler also plays a central role in optimizing the application for the WCET instead of average-case performance.


2016 IEEE 10th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSOC) | 2016

Constructing Time-Predictable MPSoCs: Avoid Conflicts in Temporal Control

Peter P. Puschner; Bekim Cilku; Daniel Prokesch

Todays multicore system architectures are too complex. They are not ready for use in highly dependable, safety-critical applications. We show that a system and component design that avoids conflicts in the temporal control of computations and actions allows us to build less complex multi-core systems whose temporal behavior is easy to predict. At the multi-core system level this can be achieved by using highly autonomous cores and a time-triggered NoC for communication. At the level of single cores the elimination of input-dependent control flow of software and the use of software-controlled memory hierarchies contribute to this aim.

Collaboration


Dive into the Daniel Prokesch's collaboration.

Top Co-Authors

Avatar

Peter P. Puschner

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar

Benedikt Huber

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar

Stefan Hepp

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar

Bekim Cilku

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar

Martin Schoeberl

Technical University of Denmark

View shared research outputs
Top Co-Authors

Avatar

Wolfgang Puffitsch

Technical University of Denmark

View shared research outputs
Top Co-Authors

Avatar

Jens Knoop

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Clemens B. Geyer

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge