Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Flexible reference-counting-based hardware acceleration for garbage collection

Published: 20 June 2009 Publication History

Abstract

Languages featuring automatic memory management (garbage collection) are increasingly used to write all kinds of applications because they provide clear software engineering and security advantages. Unfortunately, garbage collection imposes a toll on performance and introduces pause times, making such languages less attractive for high-performance or real-time applications. Much progress has been made over the last five decades to reduce the overhead of garbage collection, but it remains significant.
We propose a cooperative hardware-software technique to reduce the performance overhead of garbage collection. The key idea is to reduce the frequency of garbage collection by efficiently detecting and reusing dead memory space in hardware via hardware-implemented reference counting. Thus, even though software garbage collections are still eventually needed, they become much less frequent and have less impact on overall performance. Our technique is compatible with a variety of software garbage collection algorithms, does not break compatibility with existing software, and reduces garbage collection time by 31% on average on the Java DaCapo benchmarks running on the production build of the Jikes RVM, which uses a state-of-the-art generational garbage collector.

References

[1]
A.-R. Adl-Tabatabai et al. Improving 64-bit Java IPF performance by compressing heap references. In CGO'04.
[2]
B. Alpern et al. The Jalapeño virtual machine. IBM Systems Journal, 39(1):211--238, 2000.
[3]
G. M. Amdahl. Validity of the single-processor approach to achieving large scale computing capabilities. In AFIPS Conference Proceedings, pages 483--485, 1967.
[4]
A. W. Appel. Simple generational garbage collection and fast allocation. SPE, 19(2):171--183, 1989.
[5]
K. Arnold and J. Gosling. The Java Programming Language. Addison-Wesley, 1996.
[6]
S. Blackburn et al. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA'06.
[7]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and realities: the performance impact of garbage collection. SIGMETRICS Perform. Eval. Rev., 32(1):25--36, 2004.
[8]
S. M. Blackburn et al. Wake up and smell the coffee: evaluation methodology for the 21st century. Commun. ACM, 51(8):83--89, 2008.
[9]
S. M. Blackburn and K. S. McKinley. Ulterior reference counting: fast garbage collection without a long wait. In OOPSLA'03.
[10]
D. Buytaert, K. Venstermans, L. Eeckhout, and K. D. Bosschere. Garbage collection hints. In HIPEAC'05.
[11]
J. M. Chang and E. F. Gehringer. Evaluation of an object-caching coprocessor design for object-oriented systems. In ICCD'93.
[12]
W. Chen, S. Bhansali, T. Chilimbi, X. Gao, and W. Chuang. Profile-guided proactive garbage collection for locality optimization. In PLDI'06.
[13]
J.-D. Choi, M. Gupta, M. Serrano, V. C. Sreedhar, and S. Midkiff. Escape analysis for Java. In OOPSLA'99.
[14]
C. Click, G. Tene, and M. Wolf. The pauseless GC algorithm. In VEE'05.
[15]
G. E. Collins. A method for overlapping and erasure of lists. Commun. ACM, 3(12):655--657, 1960.
[16]
L. P. Deutsch and D. G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, 19(9):522--526, 1976.
[17]
S. Z. Guyer and K. S. McKinley. Finding your cronies: static analysis for dynamic object colocation. In OOPSLA'04.
[18]
S. Z. Guyer, K. S. McKinley, and D. Frampton. Free-Me: a static analysis for automatic individual object reclamation. In PLDI'06.
[19]
X. Huang, S. M. Blackburn, K. S. McKinley, J. E. B. Moss, Z. Wang, and P. Cheng. The garbage collection advantage: improving program locality. In OOPSLA'04.
[20]
J. A. Joao, O. Mutlu, and Y. N. Patt. Flexible reference-counting-based hardware acceleration for garbage collection. Technical Report TR-HPS-2009-001, The University of Texas at Austin, Apr. 2009.
[21]
P. G. Joisha. Compiler optimizations for nondeferred reference-counting garbage collection. In ISMM'06.
[22]
P. G. Joisha. Overlooking roots: a framework for making nondeferred reference-counting garbage collection fast. In ISMM'07.
[23]
R. Jones and R. Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, 1996.
[24]
Y. Levanoni and E. Petrank. An on-the-fly reference counting collector for Java. In OOPSLA'01.
[25]
P. Magnusson, M. Christensson, J. Eskilson, D. Forsgren, G. Hallberg, J. Hogberg, F. Larsson, A. Moestedt, and B. Werner. Simics: A full system simulation platform. IEEE Computer, 35(2):50--58, Feb. 2002.
[26]
J. McCarthy. Recursive functions of symbolic expressions and their computation by machine, part I. Commun. ACM, 3(4):184--195, 1960.
[27]
J. McCarthy. History of LISP. In History of programming languages I, pages 173--185. ACM, 1981.
[28]
M. Meyer. A true hardware read barrier. In ISMM'06.
[29]
M. Meyer. A novel processor architecture with exact tag-free pointers. IEEE Micro, 24(3):46--55, 2004.
[30]
M. Meyer. An on-chip garbage collection coprocessor for embedded real-time systems. RTCSA, 00:517--524, 2005.
[31]
C. Peng and G. S. Sohi. Cache memory design considerations to support languages with dynamic heap allocation. Technical Report 860, CS Dept., University of Wisconsin-Madison, 1989.
[32]
W. J. Schmidt and K. D. Nilsen. Performance of a hardware-assisted real-time garbage collector. In ASPLOS'94.
[33]
S. Stanchina and M. Meyer. Mark-sweep or copying?: a "best of both worlds" algorithm and a hardware-supported real-time implementation. In ISMM'07.
[34]
D. Syme, A. Granicz, and A. Cisternino. Expert F#. Apress, 2007.
[35]
D. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. SIGPLAN Not., 19(5):157--167, 1984.
[36]
D. S. Wise, B. C. Heck, C. Hess, W. Hunt, and E. Ost. Research demonstration of a hardware reference-counting heap. Lisp and Symbolic Computation, 10(2):159--181, 1997.

Cited By

View all
  • (2024)Cloaca: A Concurrent Hardware Garbage Collector for Non-strict Functional LanguagesProceedings of the 17th ACM SIGPLAN International Haskell Symposium10.1145/3677999.3678277(41-54)Online publication date: 29-Aug-2024
  • (2022)A Multilayered Audio Signal Encryption Approach for Secure Voice CommunicationElectronics10.3390/electronics1201000212:1(2)Online publication date: 20-Dec-2022
  • (2018)Hardware-software co-optimization of memory management in dynamic languagesACM SIGPLAN Notices10.1145/3299706.321056653:5(45-58)Online publication date: 18-Jun-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGARCH Computer Architecture News
ACM SIGARCH Computer Architecture News  Volume 37, Issue 3
June 2009
495 pages
ISSN:0163-5964
DOI:10.1145/1555815
Issue’s Table of Contents
  • cover image ACM Conferences
    ISCA '09: Proceedings of the 36th annual international symposium on Computer architecture
    June 2009
    510 pages
    ISBN:9781605585260
    DOI:10.1145/1555754
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 June 2009
Published in SIGARCH Volume 37, Issue 3

Check for updates

Author Tags

  1. garbage collection
  2. reference counting

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)20
  • Downloads (Last 6 weeks)2
Reflects downloads up to 20 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Cloaca: A Concurrent Hardware Garbage Collector for Non-strict Functional LanguagesProceedings of the 17th ACM SIGPLAN International Haskell Symposium10.1145/3677999.3678277(41-54)Online publication date: 29-Aug-2024
  • (2022)A Multilayered Audio Signal Encryption Approach for Secure Voice CommunicationElectronics10.3390/electronics1201000212:1(2)Online publication date: 20-Dec-2022
  • (2018)Hardware-software co-optimization of memory management in dynamic languagesACM SIGPLAN Notices10.1145/3299706.321056653:5(45-58)Online publication date: 18-Jun-2018
  • (2018)Hardware-software co-optimization of memory management in dynamic languagesProceedings of the 2018 ACM SIGPLAN International Symposium on Memory Management10.1145/3210563.3210566(45-58)Online publication date: 18-Jun-2018
  • (2017)Hardwiring the OS kernel into a Java application processor2017 IEEE 28th International Conference on Application-specific Systems, Architectures and Processors (ASAP)10.1109/ASAP.2017.7995259(53-60)Online publication date: Jul-2017
  • (2016)Efficient Security Monitoring with the Core Debug Interface in an Embedded ProcessorACM Transactions on Design Automation of Electronic Systems10.1145/290761122:1(1-29)Online publication date: 27-May-2016
  • (2015)Implementing an Application-Specific Instruction-Set Processor for System-Level Dynamic Program Analysis EnginesACM Transactions on Design Automation of Electronic Systems10.1145/274623820:4(1-32)Online publication date: 28-Sep-2015
  • (2022)MetaSys: A Practical Open-source Metadata Management System to Implement and Evaluate Cross-layer OptimizationsACM Transactions on Architecture and Code Optimization10.1145/350525019:2(1-29)Online publication date: 24-Mar-2022
  • (2022)FFCCDProceedings of the 49th Annual International Symposium on Computer Architecture10.1145/3470496.3527406(274-288)Online publication date: 18-Jun-2022
  • (2022)Synthesized In-BramGarbage Collection for Accelerators with Immutable Memory2022 32nd International Conference on Field-Programmable Logic and Applications (FPL)10.1109/FPL57034.2022.00019(47-53)Online publication date: Aug-2022
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media