Reducing Cache Conflicts by Multi-Level Cache Partitioning and Array Elements Mapping

  • Authors:
  • Chih-Yung Chang;Jang-Ping Sheu;Hsi-Chiuen Chen

  • Affiliations:
  • Department of Computer and Information Science, Aletheia University, 32 Chen-Li St., Tamsui, Tapiei, Taiwan changcy@email.au.edu.tw;Department of Computer Science and Information Engineering, National Central University, Chung-Li 32054, Taiwan sheu@axp1.csie.ncu.edu.tw;Department of Computer Science and Information Engineering, National Central University, Chung-Li 32054, Taiwan camus@axp1.csie.ncu.edu.tw

  • Venue:
  • The Journal of Supercomputing
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

This article presents an algorithm to reduce cache conflicts and improve cache localities. The proposed algorithm analyzes locality reference space for each reference pattern, partitions the multi-level cache into several parts with different sizes, and then maps array data onto the scheduled cache positions to eliminate cache conflicts. A greedy method for rearranging array variables in declared statement is also developed, to reduce the memory overhead for mapping arrays onto a partitioned cache. Besides, loop tiling and the proposed schemes are combined to exploit opportunities for both temporal and spatial reuse. Atom is used as a tool to develop a simulation of the behavior of the direct-mapping cache to demonstrate that our approach is effective at reducing number of cache conflicts and exploiting cache localities. Experimental results reveal that applying the cache partitioning scheme can greatly reduce the cache conflicts and thus save program execution time in both single-level cache and multi-level cache hierarchies.