изчислете ефективното време за достъп

Това е параграф от Концепции на операционната система, 9-то издание от Silberschatz et al:

Процентът пъти, когато номерът на страницата, която представлява интерес, е открит в TLB, се нарича коефициент на попадение. 80-процентов коефициент на попадение, например, означава, че намираме желания номер на страница в TLB 80 процента от времето. Ако са необходими 100 наносекунди за достъп до паметта, тогава достъпът до нанесена памет отнема 100 наносекунди, когато номерът на страницата е в TLB. Ако не успеем да намерим номера на страницата в TLB, тогава първо трябва да осъществим достъп до паметта за таблицата на страниците и номера на рамката (100 наносекунди) и след това да осъществим достъп до желания байт в паметта (100 наносекунди), за общо 200 наносекунди. (Предполагаме, че търсенето в таблица на страници отнема само един достъп до паметта, но може да отнеме повече, както ще видим.) За да намерим ефективното време за достъп до паметта, претегляме случая по неговата вероятност: ефективно време за достъп = 0,80 × 100 + 0,20 × 200 = 120 наносекунди

но в 8-то издание на същата книга въведете описание на изображението тук

Объркан съм с

ефективно време за достъп

Може ли някой да ми го обясни?


person Aysha Almaqtari    schedule 31.08.2013    source източник
comment
„Ефективното време за достъп“ по същество е (претегленото) средно време, необходимо за получаване на стойност от паметта. Ако направите 100 заявки за четене на стойности от паметта, 80 от тези заявки ще отнемат 100 ns, а 20 от тях ще отнемат 200 (използвайки скоростите на 9-то издание), така че общото време ще бъде 12 000 ns, за средно време от 120 ns на достъп. Нито един достъп до паметта няма да отнеме 120 ns; всеки ще отнеме 100 или 200 ns. (Едно средно семейство има 2,3 деца, но всяко истинско семейство има 0, 1, 2 или 3 деца — или цял брой деца; не виждате много „три десети от дете“ да се скитат наоколо).   -  person Jonathan Leffler    schedule 31.08.2013
comment
Въпросът тук е, че авторът се опита да опрости нещата в 9-то издание и направи грешка. Той се опита да комбинира 20ns време за достъп за TLB с 80ns време за памет, за да направи хубаво време от 100ns. Ако случаят е такъв, пропускът ще отнеме 20ns+80ns+80ns=180ns, а не 200ns. Това е печатна грешка в 9-то издание.   -  person kainaw    schedule 07.10.2015


Отговори (6)


В случай, че страницата е намерена в TLB (TLB хит), общото време ще бъде времето на търсене в 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

or

EAT := (TLB_search_time + 2*memory_access_time) * (1- hit_ratio) +
       (TLB_search_time + memory_access_time) * hit_ratio
person Santiago    schedule 01.07.2015
comment
Ако беше система за пейджинг на 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 щеше да е същото? - person qwerty; 27.04.2016
comment
@qwerty да, EAT би било същото. Във вашия пример memory_access_time винаги ще бъде 3*, защото винаги трябва да преминете през 3 нива на страници, така че EAT е независим от използваната система за пейджинг - person Santiago; 19.05.2016

Ефективното време тук е само средното време, като се използват относителните вероятности за попадение или пропуск. Така че, ако попадение се случи в 80% от времето и пропуск се случи в 20% от времето, тогава ефективното време (т.е. средно време) за голям брой попадения/пропуски ще бъде 0,8 * (време на попадение) + 0,2 * (време на пропуск) ).

person Paul R    schedule 31.08.2013

Обща формула за ЯДЕНЕ

Коефициент на попадение = a

Време за достъп до основната памет = m

Асоциативно търсене (TLB достъп) = e

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

    = 2m - ma + e
person emon    schedule 03.12.2016

В TLB се поддържа копие на често посещаван номер на страница и номер на рамка, които са от таблицата на страниците, съхранени в паметта.

Първо разглежда TLB. Ако бъде намерен, той отива в местоположението на паметта, така че общото време за достъп е равно на:

20 + 100 = 120 ns

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

20 + 100 + 100 = 220 ns

И ефективното време за достъп до паметта е равно на:

0.80 * 120 + 0.20* 220 = 140 ns
person Kuntal    schedule 05.05.2015

Ефективно време за достъп е общото време, прекарано в достъп до паметта (т.е. сумиране на времето за достъп до основната памет и кеша), разделено на общия брой препратки към паметта.

person chila    schedule 04.03.2015
comment
Изглежда като коментар, а не като отговор - person sqluser; 04.03.2015

Средното време за достъп е време на попадение + процент на пропуски * време на пропуск, не съм съгласен с отговора на @Paul R

person sunjiayang    schedule 25.11.2015
comment
Това би било вярно за наказанието за пропуск (време за пропуск - време за попадение), но времето за пропуск е общото време за пропуск, така че не трябва да броите времето за попадение върху това за пропуски. - person Peter Cordes; 16.02.2021