Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans, Lieven Eeckhout, Koen De Bosschere Department of Electronics.

Slides:



Advertisements
Similar presentations
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
Advertisements

Cooperative Cache Scrubbing Jennifer B. Sartor, Wim Heirman, Steve Blackburn*, Lieven Eeckhout, Kathryn S. McKinley^ PACT 2014 * ^
Steve Blackburn Department of Computer Science Australian National University Perry Cheng TJ Watson Research Center IBM Research Kathryn McKinley Department.
Carnegie Mellon 1 Dynamic Memory Allocation: Basic Concepts : Introduction to Computer Systems 17 th Lecture, Oct. 21, 2010 Instructors: Randy Bryant.
Chris Riesbeck, Fall 2007 Dynamic Memory Allocation Today Dynamic memory allocation – mechanisms & policies Memory bugs.
Whole-Program Linear-Constant Analysis with Applications to Link-Time Optimization Ludo Van Put – Dominique Chanet – Koen De Bosschere Ghent University.
Object Field Analysis for Heap Space Optimization ISMM 2004 G. Chen, M. Kandemir, N. Vijaykrishnanan and M. J. Irwin The Pennsylvania State University.
MC 2 : High Performance GC for Memory-Constrained Environments - Narendran Sachindran, J. Eliot B. Moss, Emery D. Berger Sowmiya Chocka Narayanan.
An On-the-Fly Mark and Sweep Garbage Collector Based on Sliding Views Hezi Azatchi - IBM Yossi Levanoni - Microsoft Harel Paz – Technion Erez Petrank –
Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin.
Faculty of Computer Science © 2008 José Nelson Amaral MPADS: Memory- Pooling-Assisted Data Splitting Stephen Curial - Xymbiant Systems Inc. Peng Zhao -
Heap Shape Scalability Scalable Garbage Collection on Highly Parallel Platforms Kathy Barabash, Erez Petrank Computer Science Department Technion, Israel.
Microarchitectural Characterization of Production JVMs and Java Workload work in progress Jungwoo Ha (UT Austin) Magnus Gustafsson (Uppsala Univ.) Stephen.
NUMA Tuning for Java Server Applications Mustafa M. Tikir.
Using Prefetching to Improve Reference-Counting Garbage Collectors Harel Paz IBM Haifa Research Lab Erez Petrank Microsoft Research and Technion.
Free-Me: A Static Analysis for Individual Object Reclamation Samuel Z. Guyer Tufts University Kathryn S. McKinley University of Texas at Austin Daniel.
1 The Compressor: Concurrent, Incremental and Parallel Compaction. Haim Kermany and Erez Petrank Technion – Israel Institute of Technology.
CIS429.S00: Lec6- 1 Addressing Modes There are a variety of ways a machine instruction can specify an address in memory. Effective address - the actual.
© 2005 IBM Corporation ISMM’06 Ottawa, Ontario, Canada June 10 th 2006 | ISMM’06 Ottawa, Ontario, Canada © 2006 IBM Corporation Improving Locality with.
Chapter 12: File System Implementation
An Adaptive, Region-based Allocator for Java Feng Qian & Laurie Hendren 2002.
Memory Management 1 CS502 Spring 2006 Memory Management CS-502 Spring 2006.
CS-3013 & CS-502, Summer 2006 Memory Management1 CS-3013 & CS-502 Summer 2006.
Compile-Time Deallocation of Individual Objects Sigmund Cherem and Radu Rugina International Symposium on Memory Management June, 2006.
Age-Oriented Concurrent Garbage Collection Harel Paz, Erez Petrank – Technion, Israel Steve Blackburn – ANU, Australia April 05 Compiler Construction Scotland.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Garbage Collection Without Paging Matthew Hertz, Yi Feng, Emery Berger University.
Faculty of Computer Science © 2006 CMPUT 229 Memory Hierarchy Part 2 Refreshing Memory.
Restrictive Compression Techniques to Increase Level 1 Cache Capacity Prateek Pujara Aneesh Aggarwal Dept of Electrical and Computer Engineering Binghamton.
Quarantine: A Framework to Mitigate Memory Errors in JNI Applications Du Li , Witawas Srisa-an University of Nebraska-Lincoln.
The College of William and Mary 1 Influence of Program Inputs on the Selection of Garbage Collectors Feng Mao, Eddy Zheng Zhang and Xipeng Shen.
Mrinmoy Ghosh Weidong Shi Hsien-Hsin (Sean) Lee
Taking Off The Gloves With Reference Counting Immix
CS333 Intro to Operating Systems Jonathan Walpole.
Exploring Multi-Threaded Java Application Performance on Multicore Hardware Ghent University, Belgium OOPSLA 2012 presentation – October 24 th 2012 Jennifer.
Fast, Effective Code Generation in a Just-In-Time Java Compiler Rejin P. James & Roshan C. Subudhi CSE Department USC, Columbia.
An Adaptive, Region-based Allocator for Java Feng Qian, Laurie Hendren {fqian, Sable Research Group School of Computer Science McGill.
Institute of Computing Technology On Improving Heap Memory Layout by Dynamic Pool Allocation Zhenjiang Wang Chenggang Wu Institute of Computing Technology,
IT253: Computer Organization Lecture 3: Memory and Bit Operations Tonga Institute of Higher Education.
Impact of Java Compressed Heap on Mobile/Wireless Communication Mayumi KATO and Chia-Tien Dan Lo (itcc’05) Department of Computer Science, University of.
1 Fast and Efficient Partial Code Reordering Xianglong Huang (UT Austin, Adverplex) Stephen M. Blackburn (Intel) David Grove (IBM) Kathryn McKinley (UT.
Dynamic Object Sampling for Pretenuring Maria Jump Department of Computer Sciences The University of Texas at Austin Stephen M. Blackburn.
CS380 C lecture 20 Last time –Linear scan register allocation –Classic compilation techniques –On to a modern context Today –Jenn Sartor –Experimental.
Free-Me: A Static Analysis for Automatic Individual Object Reclamation Samuel Z. Guyer, Kathryn McKinley, Daniel Frampton Presented by: Dimitris Prountzos.
Finding Your Cronies: Static Analysis for Dynamic Object Colocation Samuel Z. Guyer Kathryn S. McKinley T H E U N I V E R S I T Y O F T E X A S A T A U.
September 11, 2003 Beltway: Getting Around GC Gridlock Steve Blackburn, Kathryn McKinley Richard Jones, Eliot Moss Modified by: Weiming Zhao Oct
12.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 12: File System Implementation Chapter 12: File System Implementation.
380C lecture 19 Where are we & where we are going –Managed languages Dynamic compilation Inlining Garbage collection –Opportunity to improve data locality.
Transparent Pointer Compression for Linked Data Structures June 12, 2005 MSP Chris Lattner Vikram Adve.
1 Garbage Collection Advantage: Improving Program Locality Xianglong Huang (UT) Stephen M Blackburn (ANU), Kathryn S McKinley (UT) J Eliot B Moss (UMass),
Department of Computer Sciences ISMM No Bit Left Behind: The Limits of Heap Data Compression Jennifer B. Sartor* Martin Hirzel †, Kathryn S. McKinley*
Department of Computer Sciences Z-Rays: Divide Arrays and Conquer Speed and Flexibility Jennifer B. Sartor Stephen M. Blackburn,
Performance Problems You Can Fix: A Dynamic Analysis of Memoization Opportunities Luca Della Toffola – ETH Zurich Michael Pradel – TU Darmstadt Thomas.
1 GC Advantage: Improving Program Locality Xianglong Huang, Zhenlin Wang, Stephen M Blackburn, Kathryn S McKinley, J Eliot B Moss, Perry Cheng.
Aritra Sengupta, Man Cao, Michael D. Bond and Milind Kulkarni PPPJ 2015, Melbourne, Florida, USA Toward Efficient Strong Memory Model Support for the Java.
Tracking Bad Apples: Reporting the Origin of Null & Undefined Value Errors Michael D. Bond UT Austin Nicholas Nethercote National ICT Australia Stephen.
GC Assertions: Using the Garbage Collector To Check Heap Properties Samuel Z. Guyer Tufts University Edward Aftandilian Tufts University.
1 The Garbage Collection Advantage: Improving Program Locality Xianglong Huang (UT), Stephen M Blackburn (ANU), Kathryn S McKinley (UT) J Eliot B Moss.
Eliminating External Fragmentation in a Non-Moving Garbage Collector for Java Author: Fridtjof Siebert, CASES 2000 Michael Sallas Object-Oriented Languages.
File-System Implementation
Figure 6-1: Memory Byte Addressing in ARM
Cork: Dynamic Memory Leak Detection with Garbage Collection
No Bit Left Behind: The Limits of Heap Data Compression
Data Structures and Analysis (COMP 410)
CSCI206 - Computer Organization & Programming
Jipeng Huang, Michael D. Bond Ohio State University
Strategies for automatic memory management
No Bit Left Behind: The Limits of Heap Data Compression
Garbage Collection Advantage: Improving Program Locality
Program-level Adaptive Memory Management
Presentation transcript:

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans, Lieven Eeckhout, Koen De Bosschere Department of Electronics and Information Systems Ghent University - Belgium 21st European Conference on Object-Oriented Programming July 30 – August 3, Berlin, Germany

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 2 Objects have different sizes in 32-bit and 64-bit mode 32-bit : 64-bit : ref 1 alignment ref 1 int 1 class Example { int int 1 ; Example ref 1 ; }

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 3 Prior work 64-bit Pointer compression techniques:  Adl-Tabatabai et al. Improving 64-bit Java IPF performance by compressing heap references. At CGO  Lattner and Adve. Transparent pointer compression for linked data structures. At MSP bit Pointer compression technique:  Zhang and Gupta. Data compressing transformations for dynamically allocated data structures. In Computational Complexity 2002.

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 4 Referencing objects are often located close to each other heap: 0x x x relative offset: ro 1 = ref 1 – ref 0 ro 1 ref 0 ref 1 0x0

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 5 Object-Relative Addressing: goal 32-bit : 64-bit : ref 1 ORA : ro 1 ref 0 ref 1 = ref 0 + ro 1

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 6 What if some referencing objects aren’t located close to each other? Long Address Table (LAT): referentie 0 … 012…n012…n 64 bits old object reference field: 630 reference new object reference field: 310 rel.offset0 310 index1 Check at compression time ! heap: ?

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 7 read 64-bit reference from LAT ref 1 = ref 0 + ro 1 bit 0==0 ? yes no Decompression requires extra test ro 1 ref 0 read ref 1 : read 32-bit relative offset next instruction read 32-bit relative offset ref 1 = ref 0 + ro 1 next instruction Jump to read 64-bit reference from LAT ref 1 = ref 0 + ro 1 bit 0==0 ? yes no

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 8 Rebuilding the Long Address Table 0x x x relative offset: ref 0 ref 1 nursery LAT: reference 0 … 012…012… mature LAT: reference m … m m+1 m+2 … new mature LAT: reference k … k k+1 k+2 …

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 9 0x Compressing the null-reference - 32 least significant bits zero after decompression 0x zero bits - through LAT: 0x AAA 0xFFFF F556 0x null … 012…012… +

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 10 Experimental setup 64-bit Jikes RVM, version IBM Power4, AIX benchmarks:  dacapo (beta )  pseudojbb2000

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 11 On average, ORA reduces 10% of total allocated bytes

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 12 On average, ORA has no significant impact on performance antlr bloat fop hsqldb jython pmd pseudojbb avg speedup

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 13 We envision ORA to be used with a smart MM strategy Try to limit the number of inter-object references that cross the 32-bit address range using techniques such as:  Object colocation ( Guyer and McKinley, OOPSLA 2003)  Connectivity-based memory allocation and collection (Hirzel et al, OOPSLA 2003)  Region-based systems ( Cherem and Rugina, ISMM 2002; Qian and Hendren, ISMM 2002; Hallenberg et al, PLDI 2002)  …

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 14 Conclusions 64-bit mode uses a lot more memory than 32-bit mode ORA reduces allocated bytes by 10%, and up to 14,5% ORA does not give up on performance

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 15 … and next? we should rethink about how to use the 64-bit virtual address space:  not efficient to look at it as just one linear blok  better to give a functional meaning: encode information, make regions based on age, connectivity, … construct smart memory managers  fast analysis: points-to, escape, pointer interference  preferably (partially) at runtime

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 16 Questions ?

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 17 Extra: L3 misses

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 18 Extra performance measurements antlr bloat fop hsqldb jython pmd pseudojbb avg

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 19 Extra performance measurements db jack javac jess antlr fop hsqldb pmd crypt heapsort lufact moldyn search sor sparse pseudojbb avg

Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans – Aug. 1 st 2007 – ECOOP 2007, Berlin pag. 20 Extra: reduction in bytes