Would cache memory work if programs did not loop?
Would a cache be useful if it used the same speed memory as RAM?
Is a "dirty" cache a bad thing?
When does the CPU have to do something about it?
Why do cache blocks have "tags"?
Suppose a CPU fitted with a cache has a "hit rate (Note 1)" of 90% for memory reads. (Ignore writes)
When a "cache hit" occurs, one item is read from the cache and passed to the CPU taking one "time unit".
When a "cache miss" occurs, a block (a number of items) is
read into the cache then one item is passed to the CPU. In
this case the time taken is 1 + 10 * Block_size time
units.
ie. Main memory access time is 10 times the cache access
time.
Determine the main memory traffic and the time taken (relative to the main memory traffic and time without a cache) if the block_size is: 1 item, 2 items, 4 items, 16 items.
Which block size seems best?
Is it possible that adding a cache makes the CPU slower?
Percentage of memory accesses that find the requested item in the cache.