I have a question regarding caches that I’m not quite understanding
- Consider all the caches you can find in a typical high performance
processor. Which one increases the performance of program, which
simply copies data from one location to another? Which ones have
little or no effect? Add a brief explanation.
The only cache I can think of are the L1, L2, L3 caches. As I understand it, the purpose of the L1 cache has the lowest latency, but the highest miss rate. The L2/L3 cache is slower but has lower miss rates. All of them increases the performance of a program. If any of them is taken out, either the hit time will increase, or the miss rate will increase. None of them have “little or no effect”. Hence I’m not sure what to write.
EDIT: This is actually a past exam question I came across during revision, if it’s any clarification, the question before this asked “How many caches can you find in a typical high performance processor. List them and write one sentence to explain how each one contribute to performance increase.”
And maybe the registers are also counted as caches? or maybe the main memories too? But I don’t see how that changes anything.
Any help would be much appreciated.
Thanks
There are specialized caches that could be the target of your assignment. The Victim Cache for example, takes the associations that were ejected from the L1, L2 and L3 caches due to conflicts. This cache isn’t terribly useful for programs, but if removed will increase miss rates.
Other than that, I can think of the “High Performance Processor” meaning multi-core, in which cache sharing becomes an issue, and while L1 cache should not be a shared resource, a shared L2 or L3 cache could become the “simply copies data from one location to another”
http://en.wikipedia.org/wiki/CPU_cache