Polling efficiently on stock hardware
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Exploiting hardware performance counters with flow and context sensitive profiling
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Efficient and precise modeling of exceptions for the analysis of Java programs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A portable sampling-based profiler for Java virtual machines
Proceedings of the ACM 2000 conference on Java Grande
A framework for reducing the cost of instrumented code
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Portable resource control in Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java Virtual Machine Specification
Java Virtual Machine Specification
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Low-level analysis of a portable Java byte code WCET analysis framework
RTCSA '00 Proceedings of the Seventh International Conference on Real-Time Systems and Applications
Real-Time Objects on the Bare Metal: An Efficient Hardware Realization of the JavaTM Virtual Machine
ISORC '01 Proceedings of the Fourth International Symposium on Object-Oriented Real-Time Distributed Computing
Fast, accurate call graph profiling
Software—Practice & Experience
IBM Systems Journal
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Collecting and Exploiting High-Accuracy Call Graph Profiles in Virtual Machines
Proceedings of the international symposium on Code generation and optimization
Aspect language features for concern coverage profiling
Proceedings of the 4th international conference on Aspect-oriented software development
A method-level comparison of the Java Grande and SPEC JVM98 benchmark suites: Research Articles
Concurrency and Computation: Practice & Experience - 2002 ACM Java Grande–ISCOPE Conference Part II
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
A join point for loops in AspectJ
Proceedings of the 5th international conference on Aspect-oriented software development
Portable and accurate sampling profiling for Java
Software—Practice & Experience - Research Articles
Accurate, efficient, and adaptive calling context profiling
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
WCET analysis for a Java processor
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
Computer Architecture, Fourth Edition: A Quantitative Approach
Computer Architecture, Fourth Edition: A Quantitative Approach
A case for explicit join point models for aspect-oriented intermediate languages
Proceedings of the 1st workshop on Virtual machines and intermediate languages for emerging modularization mechanisms
Software—Practice & Experience
Architecture for object-oriented programming languages
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
Bump-pointer method caching for embedded Java processors
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
BlueJEP: a flexible and high-performance Java embedded processor
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
jamuth: an IP processor core for embedded Java real-time systems
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
Advanced Java bytecode instrumentation
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Secure, Real-Time and Multi-Threaded General-Purpose Embedded Java Microarchitecture
DSD '07 Proceedings of the 10th Euromicro Conference on Digital System Design Architectures, Methods and Tools
StrongAspectJ: flexible and safe pointcut/advice bindings
Proceedings of the 7th international conference on Aspect-oriented software development
Proceedings of the 7th international conference on Aspect-oriented software development
A Java processor architecture for embedded real-time systems
Journal of Systems Architecture: the EUROMICRO Journal
Racer: effective race detection using aspectj
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Aspect weaving in standard Java class libraries
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Model-based schedulability analysis of safety critical hard real-time Java programs
JTRES '08 Proceedings of the 6th international workshop on Java technologies for real-time and embedded systems
Cross-Profiling for Embedded Java Processors
QEST '08 Proceedings of the 2008 Fifth International Conference on Quantitative Evaluation of Systems
Cache-aware cross-profiling for java processors
CASES '08 Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems
Platform-independent profiling in a virtual execution environment
Software—Practice & Experience
CCCP: complete calling context profiling in virtual execution environments
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Predictable dynamic instruction scratchpad for simultaneous multithreaded processors
Proceedings of the 9th workshop on MEmory performance: DEaling with Applications, systems and architecture
Flexible calling context reification for aspect-oriented programming
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure software
Design Space Exploration for Java Processors with Cross-Profiling
QEST '09 Proceedings of the 2009 Sixth International Conference on the Quantitative Evaluation of Systems
Interactive worst-case execution time analysis of hard real-time systems
Interactive worst-case execution time analysis of hard real-time systems
JOP Reference Handbook: Building Embedded Systems with a Java Processor
JOP Reference Handbook: Building Embedded Systems with a Java Processor
A portable and customizable profiling framework for java based on bytecode instruction counting
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Exhaustive testing of safety critical Java
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Hi-index | 0.00 |
Performance evaluation of embedded software is essential in an early development phase so as to ensure that the software will run on the embedded device's limited computing resources. The prevailing approaches either require the deployment of the software on the embedded target, which can be tedious and may be impossible in an early development phase, or rely on simulation, which can be very slow. In this article, we introduce a customizable cross-profiling framework for embedded Java processors, including processors featuring a method cache. The developer profiles the embedded software in the host environment, completely decoupled from the target system, on any standard Java virtual machine, but the generated profiles represent the execution time metric of the target system. Our cross-profiling framework is based on bytecode instrumentation. We identify several pointcuts in the execution of bytecode that need to be instrumented in order to estimate the CPU cycle consumption on the target system. An evaluation using the JOP embedded Java processor as target confirms that our approach reconciles high profile accuracy with moderate overhead. Our cross-profiling framework also enables the performance evaluation of new processor architectures before they are implemented. As a case study, we explore the performance impact of various processor design choices and optimizations, such as different cache sizes or pipeline organizations, and come up with an improved processor design that yields speedups of up to 40% on standard Java benchmarks. Copyright © 2009 John Wiley & Sons, Ltd.