Object oriented programming has been the dominant programming paradigm for more than a decade.

OOP languages provide a rich set of features that provides significant software engineering benefits.

The increased productivity provided by these features comes at a justifiable cost of complexity in the runtime environment ,which actually leads to reduced performance and increased energy consumption of programs.

Object references
are memory references that are made by the Java application byte codes executing on the virtual machine for the execution of the Java program itself
Virtual memory references
Every references made by VM other than object references .

-> ќǻŋZ <-

CONVENTIONAL OBJECT LOAD INSTRUCTION

In a conventional system, the instruction to load an object field takes two source operands:
1.the reference to the object &
2. field offset within the object

-> ќǻŋZ <-

Need for change
Object Properties

Efficient Heap Management

Need for lower energy consumption

Need to include energy savings schemes

-> ќǻŋZ <-

Object Properties
Temporal locality

Life Time

Object references make the lion’s share of all the references

-> ќǻŋZ <-

Efficient Heap Management
“Heap” is defined as the portion of physical memory available to an application for dynamic memory allocation.

In commercial J2EE servers the heap space alone runs to many gigabytes of space.

So efficient memory and heap management algorithms have to be employed to ensure that no memory is wasted or utilized irresponsibly.

Any object that goes out of reference while in cache should be garbage collected and returned to the heap space.

-> ќǻŋZ <- cs 0711

Need for Better energy Savings
Energy consumption should be curtailed in mobile and embedded computing products.

Object-oriented programming languages provide a rich set of features that provide significant software engineering benefits. The increased productivity provided by these features comes at a justifiable cost of complexity in the runtime environment. This complexity leads to reduced performance and increased energy consumption of the programs.
Despite its dominance, object-oriented computation has received scant attention from the architecture community. Object oriented programs execute on the same hardware architecture that all other methodologies share.
The result is object-oriented systems are more powerful but slower than software written in most other languages. With the advent of internet and mobile communication technologies the demand for powerful battery operated mobile devices has accentuated the need for complex, yet low energy systems.
The Object-cache architecture consists of a data cache (reduced in size) and an additional small cache structure that caches only the objects called the Object-cache. High degree of temporal locality among objects and the large number of short lived object ensures good performance in this architecture. At the same time, the reduced active cache size leads to a significant improvement in the energy behavior of programs. Object Cache provides an energy-efficient cache architecture that can have a significant impact on the overall system energy consumption.

INTRODUCTION

Object oriented programming has been the dominant programming paradigm for more than a decade. Object Oriented programming languages such as C++, Java, C# all exhibit similar runtime properties. Object-oriented programming languages provide a rich set of features that provides significant software engineering benefits. The increased productivity provided by these features comes at a justifiable cost of complexity in the runtime environment. This complexity leads to reduced performance and increased energy consumption of the programs.

Despite its dominance, object-oriented computation has received scant attention from the architecture community. The result is we are yet to fully utilize the full power of Object Oriented Programming.

With growth of internet and introduction of advanced networking protocols the world has gone wireless. The demand for powerful battery operated mobile devices has accentuated the need for complex, yet low energy systems. To alleviate the problem of increased energy consumption in architectures that typically support runtime environments for object oriented programs, an energy-efficient cache architecture that can have a significant impact on the overall system energy consumption.

Object Caching proposes a novel architecture that has been designed with all these situations in mind.

Considering the widespread use of Java in Object Oriented Programming as well as Mobile device programming the Object Cache to be discussed here will be with specific reference to Java Virtual Machine.

The Energy savings by implementing Object Cache will be analyzed by benchmarking it against various standard benchmark programs.

NEED FOR CHANGE

Certain interesting properties exhibited by Objects and references to these objects that make them suitable candidates to be cached in a separate Object-cache architecture are:

Firstly, object references, in all benchmark programs, make up for more than 50% of the references. Secondly, there is a high degree of temporal locality observed among these object references themselves which inherently make them ripe candidates to be cached separately.
Thirdly, most of the objects are short lived, which means they would make way for other object accesses without causing any additional misses. A detailed description of the analysis is given in the following sub-sections.

a) Temporal Locality

Experiments were conducted to determine the temporal locality of the objects among themselves for various SPECjvm98 benchmarks. The interval in terms of the number of accesses between two consecutive accesses to the same object was measured. The results are plotted in Figure.