Date Added: Aug 2011
To achieve good performance, programs must exploit locality in its memory references, i.e., it must utilize its caches effectively. For machines with a single processor or core, there is a rich history of work on external memory and hierarchical memory models and algorithms, all aimed at reducing the number of cache misses in a program. Exploiting locality is even more important for multicores; any increase in the number of cores on a chip puts pressure on the quantity of cache available for each core. Unfortunately, multicore systems can have cache hierarchies that are much more complicated than the hierarchies for unicore systems.