Previous | Next --- Slide 42 of 72
Back to Lecture Thumbnails
jmc

I don't know if I missed this: how is "working set" defined, and what does it mean on this chart? I understand that you want to be just to the right of one of those steep slopes marked "working set" in order to minimize data traffic per capacity ("bang for buck"), but what are the working sets and why do they produce those slopes?

machine6

Working set refers to the block of data that a process is currently working on at a particular time.

Correct me if I'm wrong, but the point marked "first working set" refer to when the cache can fit the entire 1st working set in its memory, and hence the steep decline in data traffic because you no longer swap in and out so much data from cache to main memory.

You also see another decline in traffic when you can fit the 2nd working set in cache memory.

jmc

Makes sense, thanks @machine6. So the ideal would be each level of your memory hierarchy having capacity just to the right of one of those slopes.

machine6

Correct, as we can obtain a lot of reduction in data traffic with very little increase in cache size (and increase in cost) at that point.

ardras

The memory mountain on the cover of CSAPP is a 3D plot of read throughput vs. stride length and size of the working set. Thus it demonstrates the effect of both spatial and temporal localities on the read throughput.

Master

The insight from this is that an architect has to think about the capacity (cost) and performance trade off here. More precisely, the marginal of performance gain should equal to the increase of cost. Clearly we always want to fall near to the edge of the graph to make full use of cache.