skip to main content
research-article

Dynamic filtering: multi-purpose architecture support for language runtime systems

Published:13 March 2010Publication History
Skip Abstract Section

Abstract

This paper introduces a new abstraction to accelerate the read-barriers and write-barriers used by language runtime systems. We exploit the fact that, dynamically, many barrier executions perform checks but no real work -- e.g., in generational garbage collection (GC), frequent checks are needed to detect the creation of inter-generational references, even though such references occur rarely in many workloads. We introduce a form of dynamic filtering that identifies redundant checks by (i) recording checks that have recently been executed, and (ii) detecting when a barrier is repeating one of these checks. We show how this technique can be applied to a variety of algorithms for GC, transactional memory, and language-based security. By supporting dynamic filtering in the instruction set, we show that the fast-paths of these barriers can be streamlined, reducing the impact on the quality of surrounding code. We show how we accelerate the barriers used for generational GC and transactional memory in the Bartok research compiler. With a 2048-entry filter, dynamic filtering eliminates almost all the overhead of the GC write-barriers. Dynamic filtering eliminates around half the overhead of STM over a non-synchronized baseline -- even when used with an STM that is already designed for low overhead, and which employs static analyses to avoid redundant operations.

References

  1. Martín Abadi, Mihai Budiu, Úlfar Erlingsson, and Jay Ligatti. Control-flow integrity. In CCS'05: Proc. 12th ACM Conference on Computer and Communications Security, pages 340---353, November 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Martín Abadi, Tim Harris, and Mojtaba Mehrara. Transactional memory with strong atomicity using off-the-shelf memory protection hardware. In PPoPP'09: Proc. 14th ACM Symposium on Principles and Practice of Parallel Programming, pages 185--196, February 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Periklis Akritidis, Cristian Cadar, Costin Raiciu, Manuel Costa, and Miguel Castro. Preventing memory error exploits with WIT. In SP '08: Proc. 2008 IEEE Symposium on Security and Privacy, pages 263--277, May 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bowen Alpern, Steve Augart, Stephen M. Blackburn, Maria Butrico, Anthony Cocchi, Perry Cheng, Julian Dolby, Stephen J. Fink, David Grove, Michael Hind, Kathryn S. McKinley, Mark F. Mergen, J. Eliot B. Moss, Ton Anh Ngo, Vivek Sarkar, and Martin Trapp. The Jikes research virtual machine project: building an open-source research community. IBM Syst. J., 44(2):399--417, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Hezi Azatchi, Yossi Levanoni, Harel Paz, and Erez Petrank. An on-the-fly mark and sweep garbage collector based on sliding views. In OOPSLA '03: Proc. 18th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications, pages 269--281, October 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Lee Baugh, Naveen Neelakantam, and Craig Zilles. Using hardware memory protection to build a high-performance, strongly-atomic hybrid transactional memory. In ISCA '08: Proc. 35th International Symposium on Computer Architecture, pages 115--126, June 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Stephen M. Blackburn and Antony L. Hosking. Barriers: friend or foe? In ISMM '04: Proc. 4th International Symposium on Memory Management, pages 143--151, October 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Stephen M. Blackburn and Kathryn S. McKinley. In or out?: Putting write barriers in their place. In ISMM'02: Proc. 3rd International Symposium on Memory Management, pages 175--184, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Burton H. Bloom. Space/time trade-offs in hash coding with allowable errors. Commun. ACM, 13(7):422--426, 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Mihai Budiu, Úlfar Erlingsson, and Martín Abadi. Architectural support for software-based protection. In ASID'06: Proc. 1st Workshop on Architectural and System Support for Improving Software Dependability, pages 42--51, October 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Miguel Castro, Manuel Costa, and Tim Harris. Securing software by enforcing data-flow integrity. In OSDI'06: Proc. 7th Symposium on Operating Systems Design and Implementation, pages 147--160, November 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Morris Chang, Witawas Srisa-an, Chia-Tien Dan Lo, and Edward F. Gehringer. DMMX: dynamic memory management extensions. Journal of Systems and Software, 63(3):187--199, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Shailender Chaudhry, Robert Cypher, Magnus Ekman, Martin Karlsson, Anders Landin, Sherman Yip, Håkan Zeffer, and Marc Tremblay. Rock: A high-performance Sparc CMT processor. IEEE Micro, 29(2):6--16, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Cliff Click. IWannaBit! In MSPC'08: Proc. 2008 ACM SIGPLAN workshop on Memory Systems Performance and Correctness, pages 20--25, March 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Cliff Click, Gil Tene, and Michael Wolf. The pauseless GC algorithm. In VEE'05: Proc. 1st International Conference on Virtual Execution Environments, pages 46--56, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. John D. Davis, Charles P. Thacker, and Chen Chang. BEE3: Revitalizing computer architecture research. Technical Report MSR-TR-2009-45, Microsoft Research, April 2009.Google ScholarGoogle Scholar
  17. Sylvia Dieckmann and Urs Hölzle. A case for using active memory to support garbage collection. In Proc. 1st Workshop on Hardware Support for Objects and Microarchitectures in Java, pages 1--5, October 1999.Google ScholarGoogle Scholar
  18. Damien Doligez and Xavier Leroy. A concurrent, generational garbage collector for a multithreaded implementation of ML. In POPL'93: Proc. 20th ACM Symposium on Principles of Programming Languages, pages 113--123, January 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Robert H. Halstead, Jr. and Tetsuya Fujita. MASA: a multithreaded processor architecture for parallel symbolic computing. SIGARCH Comput. Archit. News, 16(2):443--451, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Tim Harris, Mark Plesko, Avraham Shinnar, and David Tarditi. Optimizing memory transactions. In PLDI'06: Proc. 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 14--25, June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Timothy H. Heil and James E. Smith. Concurrent garbage collection using hardware-assisted profiling. In ISMM'00: Proc. 2nd International Symposium on Memory Management, pages 80--93, October 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mark Horowitz, Margaret Martonosi, Todd C. Mowry, and Michael D. Smith. Informing memory operations: memory performance feedback mechanisms and their applications. ACM Trans. Comput. Syst., 16(2):170--205, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Galen C. Hunt and James R. Larus. Singularity: rethinking the software stack. SIGOPS Oper. Syst. Rev., 41(2):37--49, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. José A. Joao, Onur Mutlu, and Yale N Patt. Flexible reference-counting-based hardware acceleration for garbage collection. In ISCA '09: Proc. 36th International Symposium on Computer Architecture, pages 418--428, June 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Richard Jones and Rafael Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley and Sons, July 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Haim Kermany and Erez Petrank. The compressor: concurrent, incremental, and parallel compaction. In PLDI'06: Proc. 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 354--363, June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Yossi Levanoni and Erez Petrank. An on-the-fly reference-counting garbage collector for Java. ACM Trans. Program. Lang. Syst., 28(1):1--69, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Matthias Meyer. A true hardware read barrier. In ISMM '06: Proc. 5th International Symposium on Memory Management, pages 3--16, June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Chi Cao Minh, JaeWoong Chung, Christos Kozyrakis, and Kunle Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC'08: Proc. IEEE International Symposium on Workload Characterization, pages 35--46, September 2008.Google ScholarGoogle Scholar
  30. David A. Moon. Garbage collection in a large LISP system. In LFP'84: Proc. 1984 ACM Symposium on LISP and Functional Programming, pages 235--246, August 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Chih-Jui Peng and Gurindar S. Sohi. Cache memory design considerations to support languages with dynamic heap allocation. Technical Report 860, Wisconsin CS Dept, 1989.Google ScholarGoogle Scholar
  32. Filip Pizlo, Erez Petrank, and Bjarne Steensgaard. A study of concurrent real-time garbage collectors. In PLDI'08: Proc. 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 33--44, June 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Bratin Saha, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Chi Cao Minh, and Benjamin Hertzberg. McRT-STM: a high performance software transactional memory system for a multi-core runtime. In PPoPP'06: Proc. 11th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 187--197, March 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Bratin Saha, Ali-Reza Adl-Tabatabai, and Quinn Jacobson. Architectural support for software transactional memory. In MICRO'06: Proc. 39th Annual IEEE/ACM International Symposium on Microarchitecture, pages 185--196, December 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Sutirtha Sanyal, Sourav Roy, Adrián Cristal, Osman S. Unsal, and Mateo Valero. Dynamically filtering thread-local variables in lazy-lazy hardware transactional memory. In HPCC & '09: Proc. 11th IEEE International Conference on High Performance Computing and Communications, June 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Michael L. Scott, Mike F. Spear, Luke Dalessandro, and Virendra J. Marathe. Delaunay triangulation with transactions and barriers. In IISWC '07: Proc. IEEE International Symposium on Workload Characterization, pages 107--113, September 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. James Tuck, Wonsun Ahn, Luis Ceze, and Josep Torrellas. SoftSig: software-exposed hardware signatures for code analysis and optimization. In ASPLOS'08: Proc. 13th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 145--156, March 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Úlfar Erlingsson, Martín Abadi, Michael Vrable, Mihai Budiu, and George C. Necula. XFI: software guards for system address spaces. In OSDI'06: Proc. 7th Symposium on Operating Systems Design and Implementation, pages 7588, November 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. David Michael Ungar. The Design and Evaluation of A High Performance Smalltalk System. PhD thesis, EECS Department, University of California, Berkeley, Feb 1986.Google ScholarGoogle Scholar
  40. Martin T. Vechev and David F. Bacon. Write barrier elision for concurrent garbage collectors. In ISMM'04: Proc. 4th International Symposium on Memory Management, pages 13--24, October 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Ifor W. Williams and Mario I. Wolczko. An object-based memory architecture. In POS'90: Proc. 4th Intl. Workshop on Persistent Object Systems, pages 114--130. Morgan Kaufmann, September 1990.Google ScholarGoogle Scholar
  42. Emmett Jethro Witchel. Mondriaan memory protection. PhD thesis, Massachusetts Institute of Technology, January 2004.Google ScholarGoogle Scholar
  43. Mario Wolczko and Ifor Williams. Multi-level garbage collection in a high-performance persistent object system. In POS'92: Proc. 5th Intl. Workshop on Persistent Object Systems, pages 396--418, September 1992.Google ScholarGoogle Scholar
  44. Greg Wright, Matthew L. Seidl, and Mario Wolczko. An object-aware memory architecture. Sci. Comput. Program., 62(2):145--163, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Luke Yen, Jayaram Bobba, Michael R. Marty, Kevin E. Moore, Haris Volos, Mark D. Hill, Michael M. Swift, and David A. Wood. LogTM-SE: Decoupling hardware transactional memory from caches. In HPCA'07: Proc. 13th International Symposium on High Performance Computer Architecture, February 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Luke Yen, Stark C. Draper, and Mark D. Hill. Notary: Hardware techniques to enhance signatures. In MICRO'08: Proc. 41st International Symposium on Microarchitecture, pages 234--245, November 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Yuanyuan Zhou, Pin Zhou, Feng Qin, Wei Liu, and Josep Torrellas. Efficient and flexible architectural support for dynamic monitoring. ACM Trans. Archit. Code Optim., 2(1):3--33, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic filtering: multi-purpose architecture support for language runtime systems

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGARCH Computer Architecture News
          ACM SIGARCH Computer Architecture News  Volume 38, Issue 1
          ASPLOS '10
          March 2010
          399 pages
          ISSN:0163-5964
          DOI:10.1145/1735970
          Issue’s Table of Contents
          • cover image ACM Conferences
            ASPLOS XV: Proceedings of the fifteenth International Conference on Architectural support for programming languages and operating systems
            March 2010
            422 pages
            ISBN:9781605588391
            DOI:10.1145/1736020
            • General Chair:
            • James C. Hoe,
            • Program Chair:
            • Vikram S. Adve

          Copyright © 2010 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 13 March 2010

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!