# Calculate the effective access time

This question seems to be causing a lot of debate and I'm wondering whether my working is correct.

A computer with a single cache (access time 20ns) and main memory (access time 500ns) also uses the hard disk (average access time 0.01ms) for virtual memory using paging. If it is found that the cache hit rate is 95% and the page fault rate is 1%
Calculate the effective (average) access time (EAT) of this system for a sequential access system.

(a) 73.5ns. (b) 55ns. (c) 50ns. (d) 74.75ns.

My working was as follows: (0.95x20) + 0.05 (0.01(10000+500+20) + 0.99(500+20))

Leading me to an answer of 50 being C), however others have seem to have chosen D) as their answer

Any help would be appreciated.

• hard disk (average access time 0.01ms) WHOA! (Or solid state, but the cache access time doesn't look the type.) Jan 10 at 17:42

Seems correct , cache hit gives you 0.95*20 ns if it misses then 0.05 or 5% of the time you consult memory that is 0.05*( no page fault hence 0.99*( 500 from mem to cache + 20 from cache to cpu) else if page fault occurs then 1% or 0.01 *( 10000 ns from disk to mem + 500 ns from mem to cache + 20 ns from cache to cpu)) Should be 45.5 ns which I would give as C

The problem is a bit unclear, but I would assume that the page fault rate is 1% for all accesses, not just for the 5% that didn’t hit the cache. So the total is 0.95 x 20 + 0.04 x X + 0.01 x Y.

Then there is the question how long X or Y are: Many processors will fill a cache line from memory, then access the cache. Total x = 500 + 20. Others might deliver data directly from main memory, X = 500. Similar for Y.