Расчет эффективного времени доступа - программирование
Подтвердить что ты не робот

Расчет эффективного времени доступа

Это абзац из Концепции операционной системы, 9-е издание от Silberschatz и др.

Процент времени, в течение которого интересующий номер страницы находится в TLB называется коэффициентом попадания. Например, 80-процентное соотношение ударов, означает, что мы находим желаемый номер страницы в TLB 80 процентов время. Если для доступа к памяти требуется 100 наносекунд, тогда доступ к карте памяти занимает 100 нс, когда номер страницы находится в TLB. Если нам не удастся найти номер страницы в TLB, мы должны первая память доступа для таблицы страниц и номера кадра (100 наносекунды), а затем доступ к требуемому байту в памяти (100 наносекунд), в общей сложности 200 наносекунд. (Мы предполагаем, что a просмотр страницы-таблицы требует только одного доступа к памяти, но может потребоваться больше, как мы увидим.) Чтобы найти эффективное время доступа к памяти, мы весим случай по его вероятности: эффективное время доступа = 0,80 × 100 + 0,20 × 200 = 120 наносекунд

но в восьмом издании той же книги enter image description here

Я запутался с

эффективное время доступа

Может кто-нибудь объяснить это мне?

4b9b3361

Ответ 1

В случае, если страница найдена в TLB (TLB hit), общее время будет временем поиска в TLB и временем доступа к памяти, поэтому

TLB_hit_time := TLB_search_time + memory_access_time

В случае, если страница не найдена в TLB (пропуске TLB), общее время будет временем поиска TLB (вы ничего не найдете, но искали без него) плюс время для доступа к памяти, чтобы получить таблицу страниц и фрейм, а также время доступа к памяти для получения данных, поэтому

TLB_miss_time := TLB_search_time + memory_access_time + memory_access_time

Но это в отдельных случаях, когда вы хотите узнать среднюю оценку эффективности TLB, вы используете эффективное время доступа, то есть средневзвешенное значение предыдущих мер.

EAT := TLB_miss_time * (1- hit_ratio) + TLB_hit_time * hit_ratio

или

EAT := (TLB_search_time + 2*memory_access_time) * (1- hit_ratio) +
       (TLB_search_time + memory_access_time) * hit_ratio

Ответ 2

Эффективное время здесь - это просто среднее время, использующее относительные вероятности попадания или промаха. Таким образом, если попадание происходит в 80% случаев, а промах происходит в 20% случаев, тогда эффективное время (т.е. Среднее время) при большом количестве ударов/промахов будет составлять 0,8 * (время удара) + 0,2 * (время промаха).

Ответ 3

В TLB поддерживается постоянный доступ к номеру страницы и номеру кадра, который находится в таблице страниц, хранящейся в памяти.

Сначала он смотрит в TLB. Если он найден, он попадает в ячейку памяти, поэтому общее время доступа равно:

20 + 100 = 120 ns

Теперь, если TLB отсутствует, вам нужно сначала найти TLB, а затем таблицу страниц, которая хранится в памяти. Таким образом, один доступ к памяти плюс одна конкретная страница доступа, ничего, кроме другого доступа к памяти. Таким образом, общее время равно:

20 + 100 + 100 = 220 ns

И эффективное время доступа к памяти равно:

0.80 * 120 + 0.20* 220 = 140 ns

Ответ 4

Общая формула для EAT

Коэффициент Hit = a

Время доступа к основной памяти = м

Ассоциативный поиск (доступ TLB) = e

EAT = (m + e) ​​a + (2m + e) ​​(1 - a)

    = 2m - ma + e

Ответ 5

Эффективное время доступа Общее время, затрачиваемое на доступ к памяти (например, суммирование основной памяти и времени кэширования), деленное на общее количество ссылок на память.

Ответ 6

Среднее время доступа - время удара + частота промаха * время промаха, не согласен с ответом @Paul R