Study of FIFO and LRU Cache
Discuss how First-In-First-Out (FIFO) cache and Least Recently Used (LRU)
cache work as the intermediate between the CPU and other parts (hardware, software) of the system. You are going to write a professional (or as
professional as you can) document of the design of cache, search and evaluate difference design approaches.
- Study the cache by yourself. You need to give a general introduction of cache. Based on your study, you need
to select at least 5 important aspects of cache to introduce in detail.
- List the constraints necessary to design a cache. For example, one constraint of the cache is that if the CPU
needs to access certain data stored in the cache, the cache can help the CPU fast locate the data needed. Although
it is the fact that if we search everywhere in the cache, we can find the data needed somewhere, the cache will
be so slow if we just let the CPU search everywhere in the cache every time.
- Provide all the functions a good cache should support. You need to describe at least 3 functions in detail and
show why the function is important to a cache. For example, cache should provide function get, which returns
the data based on a data request. This function is crucial because the system will use this function to read the
data stored in the cache. For each function, you need to give the name of the function, function behavior, how
to complete the job the function does (briefly), and why the function is important for the cache.
- Evaluate a design of cache in terms of data safety.
Current Approaches to Design Cache
study the current approaches to design cache. You will need to list at least 2
approaches to design cache. Your presentation of the approaches need to be clear so that I can understand the
approach via your presentation with least effort. Graphs to present the approaches are required in this section.
write the conclusion about the design of cache. Also, you need write down
what you learned in this project. You cannot just write “We learned FIFO cache and LRU cache”, what you
learned should be specific and full of details.