This is a paragraph from Operating System Concepts, 9th edition by Silberschatz et al:
The percentage of times that the page number of interest is found in the TLB is called the hit ratio. An 80-percent hit ratio, for example, means that we find the desired page number in the TLB 80 percent of the time. If it takes 100 nanoseconds to access memory, then a mapped-memory access takes 100 nanoseconds when the page number is in the TLB. If we fail to find the page number in the TLB then we must first access memory for the page table and frame number (100 nanoseconds) and then access the desired byte in memory (100 nanoseconds), for a total of 200 nanoseconds. (We are assuming that a page-table lookup takes only one memory access, but it can take more, as we shall see.) To find the effective memory-access time, we weight the case by its probability: effective access time = 0.80 × 100 + 0.20 × 200 = 120 nanoseconds
but in the 8th edition of the same book
I'm confused with the
effective access time
Can someone explain it for me?
The 'effective access time' is essentially the (weighted) average time it takes to get a value from memory.
effective access time = (1 - p)*(200) + p*(8 milliseconds) = (1 - p)*200 + p*8,000,000 = 200 + 7,999,800 x p. We see, then, that the effective access time is directly proportional to the page-fault rate. If one access out of 1,000 causes a page fault, the effective access time is 8.2 microseconds.
To calculate a hit ratio, divide the number of cache hits with the sum of the number of cache hits, and the number of cache misses. For example, if you have 51 cache hits and three misses over a period of time, then that would mean you would divide 51 by 54. The result would be a hit ratio of 0.944.
If the probability of TLB hit is P% (TLB hit rate) then the probability of TLB miss (TLB miss rate) will be (1-P) %. Therefore, the effective access time can be defined as; EAT = P (t + m) + (1 - p) (t + k.m + m)
In the case that the page is found in the TLB (TLB hit) the total time would be the time of search in the TLB plus the time to access memory, so
TLB_hit_time := TLB_search_time + memory_access_time
In the case that the page is not found in the TLB (TLB miss) the total time would be the time to search the TLB (you don't find anything, but searched nontheless) plus the time to access memory to get the page table and frame, plus the time to access memory to get the data, so
TLB_miss_time := TLB_search_time + memory_access_time + memory_access_time
But this is in individual cases, when you want to know an average measure of the TLB performance, you use the Effective Access Time, that is the weighted average of the previous measures
EAT := TLB_miss_time * (1- hit_ratio) + TLB_hit_time * hit_ratio
or
EAT := (TLB_search_time + 2*memory_access_time) * (1- hit_ratio) +
(TLB_search_time + memory_access_time) * hit_ratio
The effective time here is just the average time using the relative probabilities of a hit or a miss. So if a hit happens 80% of the time and a miss happens 20% of the time then the effective time (i.e. average time) over a large number of hits/misses will be 0.8 * (hit time) + 0.2 * (miss time).
General Formula for EAT
Hit ratio = a
Main Memory access time = m
Associative Lookup (TLB access) = e
EAT = (m + e) a + (2m + e) (1 - a)
= 2m - ma + e
In TLB a copy of frequently accessed page number and frame no is maintained which is from the page table stored into memory.
It first looks into TLB. If found, it goes to the memory location so the total access time is equals to:
20 + 100 = 120 ns
Now if TLB is missing then you need to first search for TLB, then for the page table which is stored into memory. So one memory access plus one particular page acces, nothing but another memory access. So the total time is equals to:
20 + 100 + 100 = 220 ns
And effective memory access time is equals to:
0.80 * 120 + 0.20* 220 = 140 ns
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With