Recycling trash in cache

The disparity between processing and storage speeds can be bridged in part by reducing the traffic into and out of the slower memory components. Some recent studies reduce such traffic by determining dead data in cache, showing that a significant fraction of writes can be squashed before they make the trip toward slower memory. In this paper, we examine a technique for eliminating traffic in the other direction, specifically the traffic induced by dynamic storage allocation. We consider recycling dead storage in cache to satisfy a program's storage-allocation requests. We first evaluate the potential for recycling under favorable circumstances, where the associated logic can run at full speed with no impact on the cache's normal behavior. We then consider a more practical implementation, in which the associated logic executes independently from the cache's critical path. Here, the cache's performance is unfettered by recycling, but the operations necessary to determine dead storage and recycle such storage execute as time is available. Finally, we present the design and analysis of a hardware implementation that scales well with cache size without sacrificing too much performance.

[1]  Kathryn S. McKinley,et al.  Ulterior reference counting: fast garbage collection without a long wait , 2003, OOPSLA 2003.

[2]  Perry Cheng,et al.  Myths and realities: the performance impact of garbage collection , 2004, SIGMETRICS '04/Performance '04.

[3]  Rami G. Melhem,et al.  Analyzing the impact of useless write-backs on the endurance and energy consumption of PCM main memory , 2011, (IEEE ISPASS) IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE.

[4]  J. Morris Chang,et al.  Object caching for performance in object-oriented systems , 1991, [1991 Proceedings] IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[5]  Rami G. Melhem,et al.  Increasing PCM main memory lifetime , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[6]  Chih-Jui Peng,et al.  Cache Memory Design Considerations to Support Languages with Dynamic Heap Allocation , 1989 .

[7]  Ron K. Cytron,et al.  Dusty caches for reference counting garbage collection , 2006, MEDEA '05.

[8]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[9]  Mikko H. Lipasti,et al.  Temporally silent stores , 2002, ASPLOS X.

[10]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

[11]  Lizy Kurian John,et al.  ESKIMO - energy savings using semantic knowledge of inconsequential memory occupancy for DRAM subsystem , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[12]  Onur Mutlu,et al.  Flexible reference-counting-based hardware acceleration for garbage collection , 2009, ISCA '09.

[13]  Vijayalakshmi Srinivasan,et al.  Scalable high performance main memory system using phase-change memory technology , 2009, ISCA '09.

[14]  J. Morris Chang,et al.  Performance of object caching for object-oriented systems , 1993, VLSI.

[15]  P. Crowley,et al.  On the use of trace sampling for architectural studies of desktop applications , 1998, Workload Characterization: Methodology and Case Studies. Based on the First Workshop on Workload Characterization.

[16]  Mikko H. Lipasti,et al.  Silent stores for free , 2000, MICRO 33.

[17]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[18]  David F. Bacon,et al.  Generational real-time garbage collection: a three-part invention for young objects , 2007 .

[19]  Lieven Eeckhout,et al.  Cooperative cache scrubbing , 2014, 2014 23rd International Conference on Parallel Architecture and Compilation (PACT).

[20]  Krishna M. Kavi,et al.  Trash in cache: detecting eternally silent stores , 2014, MSPC@PLDI.

[21]  Mikko H. Lipasti,et al.  On the value locality of store instructions , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[22]  Henry G. Baker,et al.  Infant mortality and generational garbage collection , 1993, SIGP.

[23]  Manish Gupta,et al.  Reuse, Recycle to De-bloat Software , 2011, ECOOP.

[24]  V. T. Rajan,et al.  A unified theory of garbage collection , 2004, OOPSLA '04.