Presentation is loading. Please wait.

Presentation is loading. Please wait.

WCET Analysis for a Java Processor Martin Schoeberl TU Vienna, Austria Rasmus Pedersen CBS, Denmark.

Similar presentations


Presentation on theme: "WCET Analysis for a Java Processor Martin Schoeberl TU Vienna, Austria Rasmus Pedersen CBS, Denmark."— Presentation transcript:

1 WCET Analysis for a Java Processor Martin Schoeberl TU Vienna, Austria Rasmus Pedersen CBS, Denmark

2 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Outline Motivation Motivation WCET analysis WCET analysis The Java processor JOP The Java processor JOP Results Results Conclusion, future work Conclusion, future work Demo Demo

3 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Motivation Schedule analysis Schedule analysis For (hard) real-time For (hard) real-time Execution time numbers needed Execution time numbers needed Static WCET analysis Static WCET analysis No measurements! No measurements! Can not guarantee the WC Can not guarantee the WC Still used Still used

4 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Issues with static WCET Analysis Why is WCET Analysis so seldom used? Why is WCET Analysis so seldom used? High-level part is easy High-level part is easy Low-level is the hard part Low-level is the hard part Instruction timing Instruction timing Caches Caches Advanced, speculative processors Advanced, speculative processors

5 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Static WCET Analysis Mature research Mature research High-level based in ILP High-level based in ILP Construct CFG Construct CFG Add execution time to BB Add execution time to BB Build ILP equations: Build ILP equations: Sum of BB t exe will be maximized Sum of BB t exe will be maximized Frequency of in-edges = out-edges Frequency of in-edges = out-edges Add loop constraints Add loop constraints

6 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Low-level WCET Analysis Execution time of basic blocks Execution time of basic blocks Sum of instruction timing? Sum of instruction timing? Not in modern CPUs Not in modern CPUs What about memory access? What about memory access? Instruction cache Instruction cache Instruction prefetch Instruction prefetch Data cache Data cache Very hard for general purpose CPUs Very hard for general purpose CPUs

7 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 The Proposed Solution Build a processor to simplify WCET Analysis Build a processor to simplify WCET Analysis Avoid non analyzable features Avoid non analyzable features Find better solutions Find better solutions Java processor JOP Java processor JOP Built from ground up for WCET Built from ground up for WCET FPGA implementation (small) FPGA implementation (small) Not slow on average Not slow on average

8 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 JOP Features A RISC stack machine A RISC stack machine 4 stage pipeline 4 stage pipeline No dependencies No dependencies No shared state (e.g. memory) No shared state (e.g. memory) Stack cache Stack cache Method cache Method cache

9 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Size Resource(LC)Memory(KB)Fmax(MHz) JOP min. 10773.2598 JOP typ. 20493.25100 Lightfoot3400440 LEON3797810.935

10 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Performance

11 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Low-level Timing Bytecode execution time known Bytecode execution time known Analysis of microcode (DATE’06) Analysis of microcode (DATE’06) No dependencies No dependencies Documented Documented

12 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Memory Access Assume SRAM Assume SRAM Constant access time (r ws and w ws ) Constant access time (r ws and w ws ) Access time partially hidden: Access time partially hidden: Method cache load: Method cache load: Partially hidden Partially hidden

13 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Method Cache Full method loaded Full method loaded Misses only on invoke/return Misses only on invoke/return Cache contains several methods Cache contains several methods Simpler to analyze Simpler to analyze At call tree level At call tree level Other instructions are a hit Other instructions are a hit

14 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Method Cache Analysis Only call tree leaves Only call tree leaves Return is always a hit Return is always a hit Invoke in a loop Invoke in a loop for (int i=0; i<10; ++i) { foo();} One miss and 9 hits One miss and 9 hits Miss times added to the CFG Miss times added to the CFG

15 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Miss Times in the CFG =>

16 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Evaluation Measured(cycle)Estimated(cycle)Pessimism(ratio) Robot7367751.05 Lift7214112491.56 Kfl13334287632.16 UdpIp1182321956918.57

17 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Conclusion We need static WCET analysis We need static WCET analysis COTS processors don’t work COTS processors don’t work Design HW for WCET Design HW for WCET A RT computer architecture A RT computer architecture JOP is a first step to RT processors JOP is a first step to RT processors Analysis at bytecode level Analysis at bytecode level

18 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Future Work Method cache cont. Method cache cont. Detection of loop bounds Detection of loop bounds Integration into Eclipse Integration into Eclipse WC memory consumption WC memory consumption

19 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Demo Time

20 Martin Schoeberl – WCET Analysis for a Java Processor JTRES 2006 Thank You! Questions&Suggestions


Download ppt "WCET Analysis for a Java Processor Martin Schoeberl TU Vienna, Austria Rasmus Pedersen CBS, Denmark."

Similar presentations


Ads by Google