2013-08-31 3 views
10

доступа Это абзац из Operating System Concepts, 9th edition по Silberschatz и др:рассчитать эффективное время

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

но в 8-е издание той же книги enter image description here

Я запутался с

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

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

+1

«Эффективное время доступа» - это, по сути, среднее (взвешенное) среднее время, необходимое для получения значения из памяти. Если вы сделаете 100 запросов на чтение значений из памяти, 80 из этих запросов будут принимать 100 нс, а 20 из них будут принимать 200 (с использованием скоростей 9-го издания), поэтому общее время составит 12 000 нс, в среднем на 120 нс за доступ. Без доступа к одной памяти не потребуется 120 нс; каждый будет принимать 100 или 200 нс. (В среднем семья имеет 2,3 ребенка, но в любой реальной семье есть 0, 1, 2 или 3 ребенка - или целое число детей, вы не видите много «трех десятых ребенка», блуждающих по всему миру). –

+1

Проблема в том, что автор попытался упростить вещи в 9-м издании и допустил ошибку. Он попытался объединить 20ns время доступа для TLB с 80ns время для памяти, чтобы сделать хорошее 100ns время. Если это так, промах займет 20ns + 80ns + 80ns = 180ns, а не 200ns. Это опечатка в 9-м издании. – kainaw

ответ

5

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

-1

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

+2

Похоже, что комментарий не ответ – sqluser

2

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

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

20 + 100 = 120 ns 

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

20 + 100 + 100 = 220 ns 

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

0.80 * 120 + 0.20* 220 = 140 ns 
17

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

TLB_hit_time := TLB_search_time + memory_access_time 

в случае, если страница не найдена в TLB (TLB пропустить) общее время будет время для поиска TLB (вы не найдете nything, но искал nontheless) плюс время доступа к памяти, чтобы получить таблицу страниц и рамку, а также время доступа к памяти, чтобы получить данные, так

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 
+0

Если бы это была система подкачки 3 уровня, было бы ли TLB_hit_time равным: TLB_search_time + 3 * memory_access_time и TLB_miss_time быть TLB_search_time + 3 * (memory_access_time + memory_access_time), а EAT - то же самое? – qwerty

+0

@qwerty да, EAT будет таким же. В вашем примере memory_access_time будет всегда 3 *, потому что вам всегда нужно пройти 3 уровня страниц, поэтому EAT не зависит от используемой системы поискового вызова – Santiago

-2

средний доступа Время хит времени + скорости упускайте время * промаха, не согласна с ответом @Paul АиРа

0

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

соотношения Hit = а

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

Ассоциативный просмотр (TLB доступ) = е

EAT = (т + д) а + (2m + е) (1 - а)

= 2m - ma + e 
Смежные вопросы