0
$\begingroup$

As we know that average access time is given by

t=p*(tc)+(1-p)*(tc+tm)

where t represent the average time, p is the hit ratio , tc is the time to access the data from the cache and tm is time to retrieve data from main memory. I was wondering wouldn't it be possible to decrease this time to

t=p*(tc)+(1-p)*(tm)

if we search for the data in both the cache and the main memory in parallel?

$\endgroup$
2
$\begingroup$

It would be possible for that access, but nevertheless, it is not a good idea.

Even with relatively small caches, the cache miss rate of most programs is well under 10%. If a designer did what you proposed, what would likely happen is

  • access 1 is looked up in the cache while a memory access is started;

  • the cache reports the lookup is a success;

  • the next instruction that wants to access memory now cannot proceed. It could look up the cache, but (with your scheme) it would need to look up memory at the same time, and the memory subsystem is still working on access 1. (In fact, in has just started working on it.)

The point is that the memory subsystem cannot possibly support as anywhere near as many lookups per second as the CPU can issue. One of the points of the cache is reduce the load on it to level it can support.

$\endgroup$
  • $\begingroup$ Welcome to the site! $\endgroup$ – David Richerby Dec 31 '18 at 21:51
  • $\begingroup$ well @Zoltan you helped me out here. Thanks :) $\endgroup$ – Anonymous Developer Dec 31 '18 at 22:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.