Design Space Exploration of Object Caches with Cross-Profiling

To avoid data cache trashing between heap-allocated data and other data areas, a distinct object cache has been proposed for embedded real-time Java processors. This object cache uses high associativity in order to statically track different object pointers for worst-case execution-time analysis. However, before implementing such an object cache, an empirical analysis of different organization forms is needed. We use a cross-profiling technique based on aspect-oriented programming in order to evaluate different object cache organizations with standard Java benchmarks. From the evaluation we conclude that field access exhibits some temporal locality, but almost no spatial locality. Therefore, filling long cache lines on a miss just introduces a high miss penalty without increasing the hit rate enough to make up for the increased miss penalty. For an object cache, it is more efficient to fill individual words within the cache line on a miss.

[1]  Martin Schoeberl,et al.  Object Cache Evaluation , 2010 .

[2]  N. Ranganathan,et al.  Supporting object accesses in a Java processor , 2000 .

[3]  Sri Parameswaran,et al.  Finding optimal L1 cache configuration for embedded systems , 2006, Asia and South Pacific Conference on Design Automation, 2006..

[5]  Matthew L. Seidl,et al.  An object-aware memory architecture , 2006, Sci. Comput. Program..

[6]  Benedikt Huber,et al.  Worst‐case execution time analysis for a Java processor , 2010, Softw. Pract. Exp..

[7]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[8]  Martin Schoeberl,et al.  A Java processor architecture for embedded real-time systems , 2008, J. Syst. Archit..

[9]  Walter Binder,et al.  Comprehensive aspect weaving for Java , 2011, Sci. Comput. Program..

[10]  Heung Seok Chae,et al.  An adaptive load balancing management technique for RFID middleware systems , 2010 .

[11]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[12]  Martin Schoeberl,et al.  Cross-profiling for Java processors , 2009 .

[13]  Sandhya Dwarkadas,et al.  Efficient Simulation of Parallel Computer Systems , 1991, Int. J. Comput. Simul..

[14]  Martin Schoeberl,et al.  A real-time Java chip-multiprocessor , 2010, TECS.

[15]  Martin Schoeberl,et al.  Time-predictable Cache Organization , 2009, 2009 Software Technologies for Future Dependable Distributed Systems.

[16]  Martin Schoeberl A Time-Predictable Object Cache , 2011, 2011 14th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[17]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[18]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[19]  Wolfgang Puffitsch,et al.  Data caching, garbage collection, and the Java memory model , 2009, JTRES '09.

[20]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[21]  Benedikt Huber,et al.  WCET driven design space exploration of an object cache , 2010, JTRES '10.

[22]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[23]  Dimitrios Soudris,et al.  High-level estimation methodology for designing the instruction cache memory of programmable embedded platforms , 2009, IET Comput. Digit. Tech..

[24]  Mario Wolczko,et al.  An Object-Based Memory Architecture , 1990, POS.

[25]  David B. Whalley,et al.  Fast instruction cache performance evaluation using compile-time analysis , 1992, SIGMETRICS '92/PERFORMANCE '92.

[26]  Martin Schoeberl,et al.  Cross‐profiling for Java processors , 2009, Softw. Pract. Exp..

[27]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.