Optimal Partitioning of Cache Memory

A model for studying the optimal allocation of cache memory among two or more competing processes is developed and used to show that, for the examples studied, the least recently used (LRU) replacement strategy produces cache allocations that are very close to optimal. It is also shown that when program behavior changes, LRU replacement moves quickly toward the steady-state allocation if it is far from optimal, but converges slowly as the allocation approaches the steady-state allocation. An efficient combinatorial algorithm for determining the optimal steady-state allocation, which, in theory, could be used to reduce the length of the transient, is described. The algorithm generalizes to multilevel cache memories. For multiprogrammed systems, a cache-replacement policy better than LRU replacement is given. The policy increases the memory available to the running process until the allocation reaches a threshold time beyond which the replacement policy does not increase the cache memory allocated to the running process. >

[1]  Bennett Fox,et al.  Discrete Optimization Via Marginal Analysis , 1966 .

[2]  Laszlo A. Belady,et al.  A Study of Replacement Algorithms for Virtual-Storage Computer , 1966, IBM Syst. J..

[3]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[4]  C. K. Chow,et al.  On Optimization of Storage Hierarchies , 1974, IBM J. Res. Dev..

[5]  Mohamed Z. Ghanem,et al.  Dynamic Partitioning of the Main Memory Using the Working Set Concept , 1975, IBM J. Res. Dev..

[6]  Zvi Galil,et al.  A Fast Selection Algorithm and the Problem of Optimum Distribution of Effort , 1979, JACM.

[7]  Donald B. Johnson,et al.  The Complexity of Selection and Ranking in X+Y and Matrices with Sorted Columns , 1982, J. Comput. Syst. Sci..

[8]  William D. Strecker,et al.  Transient behavior of cache memories , 1983, TOCS.

[9]  James R. Goodman,et al.  Instruction Cache Replacement Policies and Organizations , 1985, IEEE Transactions on Computers.

[10]  Harold S. Stone,et al.  Footprints in the cache , 1986, SIGMETRICS '86/PERFORMANCE '86.

[11]  Alan Jay Smith,et al.  Line (Block) Size Choice for CPU Cache Memories , 1987, IEEE Transactions on Computers.

[12]  Toshihide Ibaraki,et al.  Resource allocation problems - algorithmic approaches , 1988, MIT Press series in the foundations of computing.

[13]  Asser N. Tantawi,et al.  Optimal allocation of multiple class resources in computer systems , 1988, SIGMETRICS 1988.

[14]  David B. Kirk,et al.  Process dependent static cache partitioning for real-time systems , 1988, Proceedings. Real-Time Systems Symposium.

[15]  Mark D. Hill,et al.  A case for direct-mapped caches , 1988, Computer.

[16]  Kimming So,et al.  Cache Operations by MRU Change , 1988, IEEE Trans. Computers.

[17]  C. Morawetz The Courant Institute of Mathematical Sciences , 1988 .

[18]  Dominique Thiébaut,et al.  On the Fractal Dimension of Computer Programs and its Application to the Prediction of the Cache Miss Ratio , 1989, IEEE Trans. Computers.

[19]  Wen-Hann Wang,et al.  Characteristics Of Performance-Optimal Multi-level Cache Hierarchies , 1989, The 16th Annual International Symposium on Computer Architecture.

[20]  Mary K. Vernon,et al.  Performance Analysis of Hierarchical Cache-Consistent Multiprocessors , 1989, Perform. Evaluation.

[21]  J. Hennessy,et al.  Characteristics of performance-optimal multi-level cache hierarchies , 1989, ISCA '89.

[22]  Philip S. Yu,et al.  An effective algorithm for parallelizing sort merge joins in the presence of data skew , 1990, DPDS '90.

[23]  Krishna R. Pattipati,et al.  Optimal buffer partitioning for the nested block join algorithm , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[24]  Harold S. Stone,et al.  Improving Disk Cache Hit-Ratios Through Cache Partitioning , 1992, IEEE Trans. Computers.