What are the primary design considerations of caches? Discuss how these considerations influence the different levels of the memory hierarchy.
What will be an ideal response?
Primary design considerations of caches include are the amount of space for the cache, the speed of the memory used, the performance desired, the profiles of the programs that will be run on them (programs with or without tight loops), the amount of money allocated for the cache, and the amount and type of memory sharing needed for the system. As always, the primary concern is money. If money is not an issue, the entire memory can be built with the same circuitry as a cache and thus there will be no need for an actual cache. Some systems need multiple processors to communicate with each other and to ensure that cached data is coherent with data assumed to be valid in other caches. Some caches are made of slower circuitry but have the benefit of allowing for more space for the same cost as a faster, smaller cache. These types of caches are suitable for lower level caching (L2, L3). Sometimes physical space on the chip is also a concern. A processor chip only has enough heat and board space for a certain amount of circuitry, so an appropriately sized cache is required.
You might also like to view...
What layer of the OSI model is associated with datagrams?
A. Session B. Transport C. Network D. Data Link
If the Java compiler can infer a generic object’s type from the context, you can replace
a. type b. less than–greater than c. inference d. diamond