ABSTRACT
Function caching is the technique of remembering previous function calls and avoiding the cost of recomputing them. Function caching provides a simple way of implementing dynamic programming algorithms and can provide a facility for incremental computation. Previous discussions of function caching have generally relied on the user to purge items from the function cache or have proposed a strategy such as least-recently-used without any analysis of the appropriateness of that strategy. We describe a formal model that allows us to describe the potential of a function cache and use that model to develop a practical cache replacement strategy that performs substantially better than currently used strategies. Benchmarks show that in use in an incremental theorem prover, our caching strategy produces almost a factor of four improvement in running time over a system running without function caching and almost a factor of two improvement in running time over a system using a standard cache replacement strategy.
- All78.John Allen, Anatomy of LISP, McGraw Hill Book Company, NY, 1976. Google ScholarDigital Library
- Coh79.Norman Cohen, Characterization and Elimination of Redundancy in Recursive Programming, Conference Record of the 6th ACM Symposium on Principles of Programming Languages, 1979. Google ScholarDigital Library
- FWW76.D. Friedman, D. Wise and M. Wand, Recursive Programming through Table Look-up, Proceedings of the 1976 ACM Symposium on Symbolic and Algebraic Computation Google ScholarDigital Library
- Hil76.J. Hilden, Elimination of recursive calls using a small table of 'randomly' selected function values, BIT, Vo116 no. 1, pp60-73 (1976)Google ScholarCross Ref
- Hug85.John Hughes, Lazy Memo-functions, Functional Programming Languages and Computer Archlitecture, 1985 Google ScholarDigital Library
- KS86.Robert M. Keller and M. Ronan Sleep. Applicative caching, ACM Transactions on Programming Languages and Systems, Vol. 8, No. 1, pp. 88-I06 (|anuary 1986). Google ScholarDigital Library
- Mic68.Donald Michie, "Memo" Functions and .Machine Learning, Nature, No. 218, pp19-22 (April 1968)Google Scholar
- MC85.Jack Mostow and Donald Cohen, Automating Program Speedup by Deciding What to Cache, Proc. of the Ninth International Joint Conference on Artificial Intelligence, 18-23 August, 1985, Vol. 1, pp 165-172.Google Scholar
- Pug88.William Pugh, Incremental Computation and the Incremental Evaluation of Functional Programs, Ph.D. Thesis, Cornell University, 1988. Google ScholarDigital Library
- RT84.Tom Reps and Tim Teitelbaum, The Synthesizer Generator, Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, Pittsburgh, Penn, (Apt 84). Google ScholarDigital Library
- Rob87.Arch Robison, The Illinois Functional Programming Interpreter, Proceedings ofthe SIGPLAN 87 Symposium on Interpreters and Interpretive Techniques, June 87 Google ScholarDigital Library
Index Terms
- An improved replacement strategy for function caching
Recommendations
Selective Victim Caching: A Method to Improve the Performance of Direct-Mapped Caches
Although direct-mapped caches suffer from higher miss ratios as compared to set-associative caches, they are attractive for today's high-speed pipelined processors that require very low access times. Victim caching was proposed by Jouppi [1] as an ...
EMISSARY: Enhanced Miss Awareness Replacement Policy for L2 Instruction Caching
ISCA '23: Proceedings of the 50th Annual International Symposium on Computer ArchitectureFor decades, architects have designed cache replacement policies to reduce cache misses. Since not all cache misses affect processor performance equally, researchers have also proposed cache replacement policies focused on reducing the total miss cost ...
Counter-Based Cache Replacement and Bypassing Algorithms
Recent studies have shown that in highly associative caches, the performance gap between the Least Recently Used (LRU) and the theoretical optimal replacement algorithms is large, motivating the design of alternative replacement algorithms to improve ...
Comments