An object-aware memory architecture

  • Authors:
  • Greg Wright;Matthew L. Seidl;Mario Wolczko

  • Affiliations:
  • Sun Microsystems, Inc., Menlo Park, CA;Sun Microsystems, Inc., Menlo Park, CA;Sun Microsystems, Inc., Menlo Park, CA

  • Venue:
  • Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Despite its dominance, object-oriented computation has received scant attention from the architecture community. We propose a novel memory architecture that supports objects and garbage collection (GC). Our architecture is co-designed with a JavaTM Virtual Machine (JVMTM)1 to improve the functionality and efficiency of heap memory management. The architecture is based on an address space for objects accessed using object IDs mapped by a translator to physical addresses. To support this, the system includes object-addressed caches, a hardware GC barrier to allow in-cache GC of objects, and an exposed cache structure cooperatively managed by the JVM. These extend a conventional architecture, without compromising compatibility or performance for legacy binaries.Our innovations enable various improvements such as: a novel technique for parallel and concurrent garbage collection, without requiring any global synchronization; an in-cache garbage collector, which never accesses main memory; concurrent compaction of objects; and elimination of most GC store barrier overheads. We compare the behavior of our system against that of a conventional generational garbage collector, both with and without an explicit allocate-in-cache operation which eliminates many write misses. Our scheme additionally trades L2 misses for in-cache operations, and provides the mapping indirection required for concurrent compaction.