Making Dynamic Memory Allocation Static To Support WCET Analyses

Similar documents
A Framework to Quantify the Overestimations of Static WCET Analysis. Hugues Cassé, Haluk Ozaktas, Christine Rochange

Worst-Case Execution Time Prediction by Static Program Analysis

The Worst-Case Execution Time Problem Overview of Methods and Survey of Tools

HVM TP : A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014

Static Analysis of Virtualization- Obfuscated Binaries

GameTime: A Toolkit for Timing Analysis of Software

Designing Predictable Multicore Architectures for Avionics and Automotive Systems extended abstract

Timing Analysis of Real-Time Software

Towards Model-Driven Development of Hard Real-Time Systems

Optimized Scheduling in Real-Time Environments with Column Generation

Efficient and Robust Allocation Algorithms in Clouds under Memory Constraints

DACOTA: Post-silicon Validation of the Memory Subsystem in Multi-core Designs. Presenter: Bo Zhang Yulin Shi

Fault-Tolerant Application Placement in Heterogeneous Cloud Environments. Bart Spinnewyn, prof. Steven Latré

K-Cover of Binary sequence

Introduction to Data-flow analysis

Software Reliability Estimation Based on Static Error Detection

Virtual Machine Learning: Thinking Like a Computer Architect

aicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011

Software Pipelining by Modulo Scheduling. Philip Sweany University of North Texas

A Tentative Systems-Architecture for Requirements-Controlled Energy Management in a Computing Infrastructure

Multi-GPU Load Balancing for Simulation and Rendering

Scratchpad Allocation for Concurrent Embedded Software

Multi-objective Design Space Exploration based on UML

Cloud Computing. and Scheduling. Data-Intensive Computing. Frederic Magoules, Jie Pan, and Fei Teng SILKQH. CRC Press. Taylor & Francis Group

How To Trace

A Lab Course on Computer Architecture

Deduplication in VM Environments Frank Bellosa Konrad Miller Marc Rittinghaus

On Orchestrating Virtual Network Functions

Dynamic Memory Management for Embedded Real-Time Systems

Performance Improvement In Java Application

Hardware Acceleration for Just-In-Time Compilation on Heterogeneous Embedded Systems

Throughput constraint for Synchronous Data Flow Graphs

Application Partitioning on Programmable Platforms Using the Ant Colony Optimization

A high-level implementation of software pipelining in LLVM

CLAPP: Characterizing Loops in Android Applications

Hardware-Aware Analysis and. Presentation Date: Sep 15 th 2009 Chrissie C. Cui

Real-Time Software. Basic Scheduling and Response-Time Analysis. René Rydhof Hansen. 21. september 2010

Software Stacks for Mixed-critical Applications: Consolidating IEEE AVB and Time-triggered Ethernet in Next-generation Automotive Electronics

Client-server Sockets

Computer Architecture Syllabus of Qualifying Examination

A Systematic Approach to Model-Guided Empirical Search for Memory Hierarchy Optimization

Charles Koelbel Rice University

Low-Level Verification of Embedded Software: Addressing the Challenge

Cache-Aware Real-Time Scheduling Simulator: Implementation and Return of Experience

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

International Workshop on Field Programmable Logic and Applications, FPL '99

The C Programming Language course syllabus associate level

Programming Embedded Systems

Evading Android Emulator

Module: Software Instruction Scheduling Part I

CS/COE

Efficient Scheduling Of On-line Services in Cloud Computing Based on Task Migration

Timing-Predictable Memory Allocation In Hard Real-Time Systems

Sequential Performance Analysis with Callgrind and KCachegrind

An Ant Colony Optimization Approach to the Software Release Planning Problem

Hardware/Software Co-Design of Run-Time Schedulers for Real-Time Systems

Obfuscation: know your enemy

Change Impact Analysis

On some Potential Research Contributions to the Multi-Core Enterprise

ADAPTIVE DISTRIBUTED CACHING WITH MINIMAL MEMORY USAGE

Dynamic Resource Allocation in Software Defined and Virtual Networks: A Comparative Analysis

Time-line based model for software project scheduling

Predictable response times in event-driven real-time systems

Know or Go Practical Quest for Reliable Software

Sequential Performance Analysis with Callgrind and KCachegrind

Static Analysis. Find the Bug! : Analysis of Software Artifacts. Jonathan Aldrich. disable interrupts. ERROR: returning with interrupts disabled

Keywords: Dynamic Load Balancing, Process Migration, Load Indices, Threshold Level, Response Time, Process Age.

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Worst-Case Energy Consumption Analysis for Energy-Constrained Embedded Systems

Visualization Enables the Programmer to Reduce Cache Misses

Agenda. Capacity Planning practical view CPU Capacity Planning LPAR2RRD LPAR2RRD. Discussion. Premium features Future

Compiler Aided Ticket Scheduling (CATS) For Non-Preemptive Embedded Systems

Lecture 3 Theoretical Foundations of RTOS

Identifying More Efficient Ways of Load balancing the Web (http) Requests.

Embedded Systems 20 BF - ES

Generating Run-Time Progress Reports for a Points-to Analysis in Eclipse

Periodic Task Scheduling

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm

Dynamic Behavior Analysis Using Binary Instrumentation

Integer Programming: Algorithms - 3

Methodology For Securing Networked Self-Adaptive Embedded Systems

Automated Software Testing of Memory Performance in Embedded GPUs. Sudipta Chattopadhyay, Petru Eles and Zebo Peng! Linköping University

Get the Better of Memory Leaks with Valgrind Whitepaper

Data Validation for Smart Grid Analytics

Performance Improvements Using Dynamic Performance Stubs

Embedded Systems 20 REVIEW. Multiprocessor Scheduling

Memory Access Control in Multiprocessor for Real-time Systems with Mixed Criticality

Java Virtual Machine: the key for accurated memory prefetching

A Numerical Study on the Wiretap Network with a Simple Network Topology

Instruction scheduling

Virtual Machine Instance Scheduling in IaaS Clouds

CSE 504: Compiler Design. Data Flow Analysis

A Business Process Services Portal

Hagit Attiya and Eshcar Hillel. Computer Science Department Technion

Some Future Challenges of Binary Translation. Kemal Ebcioglu IBM T.J. Watson Research Center

UniGR Workshop: Big Data «The challenge of visualizing big data»

MAQAO Performance Analysis and Optimization Tool

Second year review WP2 overview SW-based Method. Trento - October 17th, 2008

CacheAudit: A Tool for the Static Analysis of Cache Side Channels

Testing Decision Procedures for Security-by-Contract

Transcription:

Making Dynamic Memory Allocation Static To Support WCET Analyses Jörg Herter Jan Reineke Department of Computer Science Saarland University WCET Workshop, June 2009 Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 1 / 9

Current Situation What we have... 1 Precise WCET analysis 2 Dynamic Memory Allocation often clearer program structure easy memory reuse (e.g. in-situ transformations)... but can we have both together? Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 2 / 9

Dynamic Memory Allocation & WCET Analysis What are the challenges?... x = malloc(8); y = malloc(4);... x->data = y->data + 2;... Is the access to y a cache hit? How long will malloc take? (a) allocation to cache sets unknown! (b) effects of calls to malloc on cache? Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 3 / 9

Approaches What can be done? Predictable Allocator J. Herter, J. Reineke, R. Wilhelm, 2008 Predictable Hardware M. Schöberl, 2009 Replace Dynamic Allocation by Static Allocation Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 4 / 9

Big Picture t = malloc( sizeof (list));... y = x->data; Original Program Program Description Modified Program t = malloc( sizeof (list));... y = x->data; Static Analysis CFG & Liveness Information Loop Bounds Pre-computation of Static Addresses t = 0xFD2;... y = x->data; Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 5 / 9

What are Good Addresses? What do we consider good addresses for heap allocated objects? Good addresses enable a subsequent WCET analysis to calculate minimal WCET bounds...... by minimal memory consumption. Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 6 / 9

How to find good addresses? Idea for an algorithm: 1 Compute addresses s.t. memory consumption is minimal Can generate an ILP to compute memory-optimal addresses from liveness information! Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 7 / 9

How to find good addresses? Idea for an algorithm: 1 Compute addresses s.t. memory consumption is minimal Can generate an ILP to compute memory-optimal addresses from liveness information! 2 Compute WCET for current addresses Can generate an ILP to compute WCET from control-flow graph, loop bounds, and basic block information! (IPET, Li&Malik) Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 7 / 9

How to find good addresses? Idea for an algorithm: 1 Compute addresses s.t. memory consumption is minimal Can generate an ILP to compute memory-optimal addresses from liveness information! 2 Compute WCET for current addresses Can generate an ILP to compute WCET from control-flow graph, loop bounds, and basic block information! (IPET, Li&Malik) 3 Select the program block with highest contribution to WCET Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 7 / 9

How to find good addresses? Idea for an algorithm: 1 Compute addresses s.t. memory consumption is minimal Can generate an ILP to compute memory-optimal addresses from liveness information! 2 Compute WCET for current addresses Can generate an ILP to compute WCET from control-flow graph, loop bounds, and basic block information! (IPET, Li&Malik) 3 Select the program block with highest contribution to WCET 4 Modify addresses s.t. WCET contribution of selected block is minimized Can generate an ILP to compute block-optimal addresses from liveness and basic block information! Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 7 / 9

How to find good addresses? Idea for an algorithm: 1 Compute addresses s.t. memory consumption is minimal Can generate an ILP to compute memory-optimal addresses from liveness information! 2 Compute WCET for current addresses Can generate an ILP to compute WCET from control-flow graph, loop bounds, and basic block information! (IPET, Li&Malik) 3 Select the program block with highest contribution to WCET 4 Modify addresses s.t. WCET contribution of selected block is minimized Can generate an ILP to compute block-optimal addresses from liveness and basic block information! 5 Continue at 2 Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 7 / 9

Heuristics, actually... ILPs to compute memory and block optimal addresses can be replaced by simulated annealing algorithms to cope with more complex hardware (more cache sets) more complex software (more heap allocated blocks) Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 8 / 9

Conclusions & Future Work Algorithm to compute static memory addresses for heap allocated objects. Preliminary experiments suggest feasible computational costs for addresses. Future Work: Static (pre-) analysis to collect needed information. Fully Automatic Transformation. Jörg Herter, Jan Reineke Making Dynamic Allocation Static WCET 2009 9 / 9