Most hard drives and other components make use of a single-level cache. But a processor cache is a two-level cache, in which level 1 cache (L1) is smaller and faster; while level 2 cache (L2) is slightly slower, but anytime faster than the main memory. L1 cache is divided into two parts viz., instruction cache and data cache. Instruction cache stores the set of instructions that are required by the CPU for computing; while the data cache stores the values that are required for current execution. L2 cache is responsible for loading the data from the main memory. Again, coming back to our library example, consider a librarian's drawer as L1 cache. On any busy day, when the demand for books is high and the librarian has already stored many books in her drawer, chances are that it might get full pretty quickly. This is where L2 cache comes into the picture. Consider a bookcase near the librarian's desk as L2 cache. When the drawer fills up, the librarian starts storing the books in the bookcase. Now, whenever there is a demand for some popular book, the librarian first looks in her drawer; if the book is not found there, she searches it in the bookcase. Similarly, when L1 cache is full, data is stored in L2 cache. The processor first looks for the data in L1 cache, and if it is not found, then only L2 is searched. If the data is not found in L2 as well, a trip to main memory is inevitable.