Effective Access Time
<p>I am given the following question:</p>

<blockquote>
  <p>Now assume the system has no page faults, we are considering adding a TLB that will take
  1 nano-second to lookup an address translation. What hit rate (to the nearest 5%) in the TLB is required
  to reduce the effective access time to memory by a factor of 2.5?</p>
</blockquote>

<p>I am told an average memory access takes 100ns. Since there are 4 memory accesses for a 3 level PT (3 for the page table 1 for physical memory) I deduced that it takes 400ns.</p>

<p>I am then asked to reduce that by a factor of 2.5. So (2/5) *400 = 160ns.</p>

<p>my goal EAT is 160ns. I started setting up the problem and I can't figure out where to go from here.</p>

<p>I am given the following solution but I am just unable to follow it: </p>

<blockquote>
  <p>Access time = 100 X + (1-x) 400 – 100 ns for hit (read memory), 400ns for
  miss
  160 = 100 x + 400 – 400x -> x = .8 -> 80% TLB hit rate</p>
</blockquote>

<p>Can someone explain to me how they got to this step? I thought EAT was p(time it takes for a hit) + 1-p(time it takes for a miss) where p is the hit rate. isn't the time it takes for a hit 300ns? and then time it takes for a miss is 400ns?</p>

<p>from my logic I tried: p(300) + ((1-p) (400)) but when I went to compute it, I did not get the correct setup as the solution. Can someone explain where my logic is going wrong? Am I wrong about how many memory accesses a hit takes?</p>