WCET Analysis for a Java Processor
Martin Schoberl Rasmus Pedersen
Presenter: Petur Olsen
October 25, 2007
IntroductionJOP Processor
AnalysisEvaluationConclusion
AuthorsArticle
Authors
Martin Schoberl
Ph.D. at Vienna University
Creator of JOP processor
Rasmus Pedersen
Department of Informatics at Copenhagen Business School
Embedded systems, WCET analysis, real-time systems
2/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
AuthorsArticle
Article
Published
Proceedings of the 4th international workshop on Javatechnologies for real-time and embedded systems
ACM Press 2006
3/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
AuthorsArticle
General Idea
Analyze Java source code and class files
Calculate WCET (in clock cycles)
Translate into actual WCET (in (milli)seconds)
Time predictable Java processor (JOP)
4/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
AuthorsArticle
Contributions
Actual WCET analysis
High level and low level(incl. memory access and cache control)
Analysis tool called WCA
5/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
AuthorsArticle
Outline
1 JOP Processor
2 Analysis
3 Evaluation
4 Conclusion
6/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
OverviewCache
Overview
Stack computer
RISC stack architecture
Translates Java bytecode into microcode
Three stage pipeline (fourth stage)
No timing anomalies (e.g. branch prediction)
New caching features
7/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
OverviewCache
Overview
Regular cache
Focus on average case execution time
Difficult to analyze
JOP cache
Focus on analyzability
No data cache
Stack cache
Method cache
8/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
OverviewCache
Stack Cache
Stack for (currently executing) method
Swapped on method invoke and return
Size is known ⇒ time is bounded
Requires stack flush for thread switch
9/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
OverviewCache
Method Cache
Short methods
Simple branching (internal and relative)
Cache for entire method body
Swapped on invocation and return
Three types:
Single methodTwo methodsVariable block cache
10/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Decidability
WCET analysis is undecidable
Making it decidable:1 No recursion2 No dynamic class loading3 Known upper bounds for loops
11/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
High-Level
Calculate clock cycles from source code
Loop bounds extracted
CFG of basic blocks
ILP to calculate clock cycles
12/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Example
public static int loop(boolean b, int val) {for (int i=0; i<10; i++) {
if (b) {for (int j=0; j<3; j++) {
val ∗= val;}
} else {for (int j=0; j<7; j++) {
val += val;}
}}return val;
}
13/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Example
14/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Example
public static int loop(boolean b, int val) {for (int i=0; i<10; i++) {
if (b) {for (int j=0; j<3; j++) {
val ∗= val;}
} else {for (int j=0; j<7; j++) {
val += val;}
}}return val;
}
15/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Dynamic Methods
16/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Low-Level
Basic bytecodes
Bytecodes in Java
Native Methods
Memory Access
17/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Memory Access
Instructions
Object oriented instructions
Array access
Invoke instructions
Access time
Access time more than one cycle
rws for read access
wws for write access
18/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Memory Access
tldc2 w = 17 +
{rws − 2 : rws > 20 : rws ≤ 2
+
{rws − 1 : rws > 10 : rws ≤ 1
19/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Overview
Contains entire method bodies
Misses centered on invocations
20/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Example
21/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Example
22/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
DecidabilityHigh-Level WCET AnalysisLow-Level WCET AnalysisCache Analysis
Dual Block
23/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
Evaluation
Evaluation
Cannot measure WCET
Measurement as test
Two real-life benchmarks
24/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
Evaluation
Benchmarks
25/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
ContributionsFuture WorkArticle
Contributions
WCET analysis
Minor changes to the language
Time predictable processor
Good performance
Good estimation (with correct development)
26/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
ContributionsFuture WorkArticle
Future Work
Variable block cache
Integration into IDE (Eclipse)
Graphical representation of path on CFG
Better aid in development
27/29 Schoberl, Pedersen WCET Analysis for a Java Processor
IntroductionJOP Processor
AnalysisEvaluationConclusion
ContributionsFuture WorkArticle
Article
Well written
Simple
Important contributions
Many references
Good article
28/29 Schoberl, Pedersen WCET Analysis for a Java Processor
Questions?