A Comparative Analysis of Shared Cache Management Techniques for Chip Multiprocessors
In this thesis we present a comparative analysis of shared cache management techniques
for chip multiprocessors. When sharing an unmanaged cache between multiple
cores, destructive interference can reduce the performance of the system as the
cores compete over limited cache space. This situation is made worse by streamlike
applications that exhibit low locality of reference but has high cache demands.
Several schemes for dynamically adjusting cache space available to each core has
been suggested, and in this work we evaluate 3 such schemes as well as static
partitioning and conventional LRU.
We deploy a well defined simulation methodology to analyze the performance of the
cache management techniques. The gem5 simulator is used to simulate the ARM
ISA, and the SPEC2006 benchmark suite is used to create multi-programmed workloads.
The simulator has been extended to support cache management schemes and
provide detailed simulation statistics. We implement UCP, PIPP, PriSM and static
partitioning, and simulate dual core, quad core and 8 core workloads.
Our results show that destructive interference is a real issue in many workloads.
Static partitioning can work well in scenarios where applications have similar cache
demands, by creating private areas in the cache for each core. UCP improves
on static partitioning by dynamically adjusting the size of each partition during
runtime. PIPP performs decently by trying to maintain a specific cache occupation
for each core without strictly enforcing a partition, but does not quite achieve the
desired occupation and thus its performance suffers. PriSM fails to perform well,
as its effort to determine a target cache allocation and maintain it does not work
successfully for our workloads.
Place, publisher, year, edition, pages
Institutt for datateknikk og informasjonsvitenskap , 2013. , 105 p.
IdentifiersURN: urn:nbn:no:ntnu:diva-23386Local ID: ntnudaim:9177OAI: oai:DiVA.org:ntnu-23386DiVA: diva2:662350
Jahre, Magnus, Førstelektor