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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Burton H. Bloom. Space/time trade-offs in hash coding with allowable errors. Commun. ACM, 13(7):422--426, 1970. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Cliff Click. IWannaBit! In MSPC'08: Proc. 2008 ACM SIGPLAN workshop on Memory Systems Performance and Correctness, pages 20--25, March 2008. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Galen C. Hunt and James R. Larus. Singularity: rethinking the software stack. SIGOPS Oper. Syst. Rev., 41(2):37--49, 2007. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- Richard Jones and Rafael Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley and Sons, July 1996. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Matthias Meyer. A true hardware read barrier. In ISMM '06: Proc. 5th International Symposium on Memory Management, pages 3--16, June 2006. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Ú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 Scholar
Digital Library
- David Michael Ungar. The Design and Evaluation of A High Performance Smalltalk System. PhD thesis, EECS Department, University of California, Berkeley, Feb 1986.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- Emmett Jethro Witchel. Mondriaan memory protection. PhD thesis, Massachusetts Institute of Technology, January 2004.Google Scholar
- 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 Scholar
- Greg Wright, Matthew L. Seidl, and Mario Wolczko. An object-aware memory architecture. Sci. Comput. Program., 62(2):145--163, 2006. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Dynamic filtering: multi-purpose architecture support for language runtime systems
Recommendations
Dynamic filtering: multi-purpose architecture support for language runtime systems
ASPLOS '10This 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 ...
The Collie: a wait-free compacting collector
ISMM '12We describe the Collie collector, a fully concurrent compacting collector that uses transactional memory techniques to achieve wait-free compaction. The collector uses compaction as the primary means of reclaiming unused memory, and performs "individual ...
Dynamic filtering: multi-purpose architecture support for language runtime systems
ASPLOS XV: Proceedings of the fifteenth International Conference on Architectural support for programming languages and operating systemsThis 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 ...







Comments