@Gabbar. Consider this one. I resolve the faults at that level itself as Arjun does did for one of the questions in GO17.
That means page fault occurs at M.M level, resolve it there itself. If page fault occurs at instruction level, resolve it at instruction level.
Average M.M access time
= page hit ratio * ( M.M acccess time ) +
pag fault ratio * ( M.M access time to discover page fault + page fault service time)
= 0.8 * (300 ns) + 0.2 * (300 + 500)
= 400 ns
Now, average instruction execution time
= CPU time + page access time
= CPU time + TLB hit ratio * (TLB access time + 1 M.M access)
+ TLB miss ratio * ( TLB access to discover TLB doesnt have the entry + 3 M.M accesses + load the entry in TLB)
= 200 + 0.8 *( 1 M.M access) + 0.2 * (3 M.M accesses)........................TLB access time negligible
= 200 + 0.8(400) + 0.2*(3 * 400)
= 760 ns