Check out the new USENIX Web site. next up previous
Next: Working towards Exclusion Up: Introduction Previous: Introduction

The Problem with Inclusion

One of the earliest examples of multi-level caches arose in the context of a processor [30,28]. The multiple layers of cache were named L1, L2, L3, etc., with L1 (highest cache) being the closest to the processor, the smallest in size, and the fastest in response time. For efficient cache coherency, systems enforced the inclusion property [1], which mandated that the higher caches be a subset of the lower caches. Other than in cases where L2 was only marginally larger than L1 [22], the performance penalty of this redundancy of content between the layers was not of much concern.

In stark contrast, in the hierarchy of caches formed by multiple computing systems connected to each other, inclusion, sometimes partial, is not by design and has been found to be detrimental to performance [26,13]. The redundancy of data between the cache levels is most severe when the caches are of comparable sizes. A request is always serviced from the closest cache to the client that has the data, while further copies of the data in lower caches are not useful.


next up previous
Next: Working towards Exclusion Up: Introduction Previous: Introduction
root 2008-01-08