ABSTRACT
Virtual execution environments have become increasingly useful in system implementation, with dynamic translation techniques being an important component for performance-critical systems. Many devices have exceptionally tight performance and memory constraints (e.g., smart cards and sensors in distributed systems), which require effective resource management. One approach to manage code memory is to download code partitions on-demand from a server and to cache the partitions in the resource-constrained device (client). However, due to the high cost of downloading code and re-translation, it is critical to intelligently manage the code buffer to minimize the overhead of code buffer misses. Yet, intelligent buffer management on the tightly constrained client can be too expensive. In this paper, we propose to move code buffer management to the server, where sophisticated schemes can be employed. We describe two schemes that use profiling information to direct the client in caching code partitions. One scheme is designed for workloads with stable run-time behavior, while the other scheme adapts its decisions for workloads with unstable behaviors. We evaluate and compare our schemes and show they perform well, compared to other approaches, with the adaptive scheme having the best performance overall.
- T. Abdelzaher et al. EnviroTrack: Towards an Environmental Computing Paradigm for Distributed Sensor Networks. IEEE Intl. Conf. on Distributed Computing Systems. March 2004. Google ScholarDigital Library
- M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. Adaptive Optimization in the Jalapeño. Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '00). October 2000. Google ScholarDigital Library
- M. Arnold and B. G. Ryder. A Framework for Reducing the Cost of Instrumented Code. Conf. on Programming Language Design and Implementation (PLDI'01). June 2001. Google ScholarDigital Library
- Atmel's ATmega128 Processor Online Document. http://www.atmel.com/dyn/resources/prod_documents/2467S.pdf. November 2004.Google Scholar
- V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A Transparent Dynamic Optimization System. Conf. on Programming Language Design and Implementation (PLDI). June 2000. Google ScholarDigital Library
- D. Bruening, T. Garnett, and S. Amarasinghe. An Infrastructure for Adaptive Dynamic Optimization. Intl. Symp. on Code Generation and Optimization (CGO'03). March 2003. Google ScholarDigital Library
- S. Debray and W. Evans. Profile-Guided Code Compression. Conf. on Programming Language Design and Implementation (PLDI). June 2002. Google ScholarDigital Library
- J. C. Dehnert et al. The Transmeta Code Morphing Software: Using Speculation, Recovery, and Adaptive Retranslation to Address Real-Life Challenges. Intl. Symp. on Code Generation and Optimization (CGO'03). March 2003 Google ScholarDigital Library
- G. Desoli, N. Mateev, E. Duesterwald, P. Faraboschi and J. A. Fiser. DELI: A New Run-Time Control Point. Proceedings of the 35th Annual Intl. Symp.on Microarchitecture (MICRO-35). November 2002. Google ScholarDigital Library
- D. Deville, A. Galland, G. Grimaud, and S. Jean. Smart Card Operating Systems: Past, Present and Future. Fifth USENIX/NordU Conference. February 2003.Google Scholar
- K. Ebcioglu and E. R. Altman. DAISY: dynamic compilation for 100% architectural compatibility. Intl. Symp. on Computer Architecture (ISCA'97). June 1997. Google ScholarDigital Library
- K. Hazelwood and M. D. Smith. Code Cache Management Schemes for Dynamic Optimizers. Sixth Annual Workshop on Interaction between Compilers and Computer Architectures. February 2002. Google ScholarDigital Library
- K. Hazelwood and M. D. Smith. Characterizing Inter- Execution and Inter-Application Optimization Persistence. Workshop on Exploring the Trace Space for Dynamic Optimization Techniques. June 2003.Google Scholar
- K. Hazelwood and M. D. Smith. Generational Cache Management of Code Traces in Dynamic Optimization Systems. Proceedings of the 36th Annual Intl. Symp. on Microarchitecture (MICRO-36). December 2003. Google ScholarDigital Library
- Infineon's SLE 88CFX4002P Smart Card Document. http://www.infineon.com/cmc_upload/documents/098/829/SPI_SLE88CFX4002P0104.pdf. January 2004.Google Scholar
- G. Kortuem, S. Fickas, and Z. Segall. On-Demand Delivery of Software in Mobile Environments. Nomadic Computing Workshop. April 1997.Google Scholar
- C. Lattner and V. Adve. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. Intl. Symp. on Code Generation and Optimization (CGO'04). March 2004. Google ScholarDigital Library
- D. E. Lowell, Y. Saito, and E. J. Samberg. Devirtualizable Virtual Machines Enabling General, Single-Node, Online Maintenance. Proceedings of the 11th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS'04). October 2004. Google ScholarDigital Library
- J. Maebe, M. Ronsse, and K. De Bosschere. DIOTA: Dynamic Instrumentation, Optimization and Transformation of Applications. Compendium of Workshops and Tutorials Held in conjunction with Intl. Conf. on Parallel Architectures and Compilation Techniques. September 2002.Google Scholar
- MediaBench. http://cares.icsl.ucla.edu/MediaBench.Google Scholar
- MiBench. http://www.eecs.umich.edu/mibench.Google Scholar
- Doug Palmer. A Virtual Machine Generator for Heterogeneous Smart Spaces. USENIX 3rd Virtual Machine Research and Technology Symposium (VM'04). May 2004. Google ScholarDigital Library
- Pin Website. http://rogue.colorado.edu/Pin/.Google Scholar
- L. Popa, C. Raiciu, R. Teodorescu, I. Athanasiu, and R. Pandey. Using Code Collection to Support Large Applications on Mobile Devices. Proceedings of the 10th Annual Intl. Conf. on Mobile Computing and Networking (Mobicom'04). September 2004. Google ScholarDigital Library
- RSA SecurID 5100 Smart Card Online Document. http://www.rsasecurity.com/node.asp?id=1215. June 2004.Google Scholar
- E. Schnarr, M. Hill, and J. Larus. Facile: A Language and Compiler For High-Performance Processor Simulators. Conf. on Programming Language Design and Implementation (PLDI'01). June 2001. Google ScholarDigital Library
- K. Scott, N. Kumar, S. Velusamy, B. Childers, J. Davidson, and M. L. Soffa. Reconfigurable and Retargetable Software Dynamic Translation. Intl. Symp. on Code Generation and Optimization (CGO'03). March 2003. Google ScholarDigital Library
- F. Vacherand. New Emerging Technologies for Secure Chips and Smart Cards. The 3rd Intl. Micro and Nanotechnology Meeting (MINATEC). September 2003.Google Scholar
- E. Witchel and M. Rosenblum. Embra: Fast and Flexible Machine Simulation. Conf. on Measurement and Modeling of Computer Systems (SIGMETRICS'96). May 1996. Google ScholarDigital Library
- L. Zhang and C. Krintz. Adaptive Code Unloading for Resoruce-Constrained JVMs. Conf. on Languages, Compilers, and Tools for Embedded Systems (LCTES'04). June 2004. Google ScholarDigital Library
- T. Zhang, S. Pande, A. Santos, and F. J. Bruecklmayr. Leakage-Proof Program Partitioning. Conf. on Compilers, Architectures and Synthesis for Embedded Systems (CASES'02). October 2002. Google ScholarDigital Library
- T. Zhang, S. Pande, and A. Valverde. Tamper-Resistant Whole Program Partitioning. Conf. on Languages, Compilers, and Tools for Embedded Systems (LCTES'03). June 2003. Google ScholarDigital Library
- S. Zhou, B. R. Childers, N. Kumar. Profile Guided Management of Code Partitions for Embedded Systems. Conf. on Design, Automation and Test in Europe (DATE'04). February 2004. Google ScholarDigital Library
Index Terms
- Planning for code buffer management in distributed virtual execution environments
Recommendations
Managing bounded code caches in dynamic binary optimization systems
Dynamic binary optimizers store altered copies of original program instructions in software-managed code caches in order to maximize reuse of transformed code. Code caches store code blocks that may vary in size, reference other code blocks, and carry a ...
Second-Level Buffer Cache Management
Abstract--Buffer caches are commonly used in servers to reduce the number of slow disk accesses or network messages. These buffer caches form a multilevel buffer cache hierarchy. In such a hierarchy, second-level buffer caches have different access ...
SRM-buffer: an OS buffer management technique to prevent last level cache from thrashing in multicores
EuroSys '11: Proceedings of the sixth conference on Computer systemsBuffer caches in operating systems keep active file blocks in memory to reduce disk accesses. Related studies have been focused on how to minimize buffer misses and the caused performance degradation. However, the side effects and performance ...
Comments