2013-05-06 14 views
5

Próbuję rozwiązać pytanie typu obiektywnego, przyszedł W badaniu. Właściwie nie znam właściwej odpowiedzi i nie wiem, jak ją zdobyć, potrzebuję twojej pomocy. Dziękuję Ci .Hit i miss ration w pamięci podręcznej i średnie obliczanie czasu

Pytanie: W pewnym systemie czas dostępu do pamięci głównej wynosi 100 ns. Pamięć podręczna jest 10 razy szybsza niż pamięć główna i wykorzystuje protokół zapisu. Jeśli współczynnik trafień dla żądania odczytu wynosi 0,92, a 85% żądań pamięci generowanych przez procesor jest do odczytu, pozostałe do zapisu; Następnie średni czas czynnikiem zarówno żądania odczytu i zapisu jest

a) 14.62ns

b) 348.47ns

c) 29.62ns

d) 296.2ns

moja praca ::::

Cóż, czas dostępu do pamięci = 100ns

cache czas dostępu będzie = 10 ns (10 czas szybciej)

In order to find avg time we have a formula 

Tavg = hc+(1-h)M 

    where h = hit rate 
    (1-h) = miss rate 
     c = time to access information from cache 
     M = miss penalty (time to access main memory) 

Write poprzez działania: lokalizacja cache i głównym miejscem pamięci jest aktualizowana równocześnie.

Podaje się, że 85% żądania wygenerowane przez procesor to żądanie odczytu, a 15% to żądanie zapisu.

Tavg = 0.85(avg time for read request)+ 0.15(avg time for write request) 
    = 0.85(0.92*10+0.08*100)+0.15(avg time for write request) 

// * 0,92 jest współczynnikiem trafień dla żądania odczytu, ale współczynnik trafień dla żądania zapisu nie jest podany?

Jeśli założymy, że HIT stosunek do żądania zapisu jest taki sam jak stosunek trafień na żądanie odczytu wówczas,

= 0.85(0.92*10+0.08*100)+0.15(0.92*(10+100)+0.08*100) 
    =31 ns 

Jeśli przyjąć, że współczynnik trafienia wynosi 0% dla zapisu prośbę ówczesnego,

= 0.85(0.92*10+0.08*100)+0.15(0*110+1*100) 
    =29.62 ns 

Odpowiedz

0

W przypadku zapisu za pośrednictwem polityki i gdy dane są odczytywane bezpośrednio z pamięci głównej, gdy wystąpi cache miss,

Tavg(for write)=Hw*Tm +(1-Hw)*Tm = Tm 

Hw = współczynnik trafień dla zapisu, Tm = Czas na dostęp do pamięci głównej

w tej formule, w obu przypadkach trafienia w pamięci podręcznej & tęsknię, możemy aktualizować i odczytywać dane jednocześnie w samym czasie Tm, ponieważ zwykle Tm >> Tc . Więc Tc do czytania można zignorować.

Dlatego nie musisz znać współczynnika trafień, aby pisać na to pytanie. a odpowiedź będzie wynosić 29.62ns

2

Średni czas dostępu, biorąc pod uwagę tylko odczyt = 0,92 * 10 + 0,08 * 100 = 17,2 ns.

Średni czas dostępu, biorąc pod uwagę tylko write = 100 ns (ponieważ przy zapisywaniu musisz wrócić do pamięci, aby zaktualizować, nawet jeśli jest to trafienie lub brak, jeśli przyjąć współczynnik trafień = 0,5 i pominąć = 0,5 to 0,5 * 100 + 0.5 * 100 = 1 * 100)

Więc całkowity czas dostępu zarówno do odczytu i zapisu byłoby - 0,85 * 17,2 + 0,15 * 100 = 14,62 + 15 = 29.62 ns

** cant zakładać hit stosunek dla zapisu tak samo jak współczynnik trafień dla odczytu. w przypadku żądania zapisu (zapisz), cokolwiek będzie, musisz odpisać w pamięci. więc czas dostępu do zapisu będzie równy czasowi dostępu do pamięci.

2

Twoje drugie założenie jest poprawne.

Pamięć podręczna zapisu natychmiast zapisuje zmodyfikowane bloki do pamięci, a następnie na dysk. Ponieważ nie podano czasu dostępu do dysku, jest on eliminowany z równania. Moje zapisy niewiele się różnią, ale opublikuję je w ten sposób dla przyszłych czytelników. Użyłem notacji podanej w William StallingsSystemy operacyjne: Internals and Design Principles.

Dane:

Tm = 100ns 
Tc = 10ns /* 10x faster than Tm */ 
Hr = 0.92 /* Hit rate reading */ 
85% reading => 15% of the time writing 

Rozwiązanie:

The effective access time for reading: 
Te_r = Hr * Tc + (1-Hr)Tm = 0.92*10 + (1 - 0.92)100 = 9.2 + 8 = 17.2 

The effective access time for writing, is determined from the Hit rate Hw, 
which is always 0, because the data must be immediately written onto the 
memory. 
Te_w = Hw * Tc + (1-Hw)Tm = 0*10 + (1 - 0)100 = 100 

Taking into account the percentage: 
0.85*17.2 + 0.15*100 = 14.62 + 15 = 29.62 

                    Q.E.D 
+0

Dlaczego wspomina nic o dysku? Pytanie nie mówi, że pamięć jest wspierana przez dysk, więc powinieneś założyć, że tak nie jest. na przykład sekcja 'MAP_PRIVATE' (jak sekcja danych pliku wykonywalnego) lub' MAP_ANONYMOUS' (odwzorowanie malloc lub bss). Normalne systemy operacyjne nie zapisują brudnych anonimowych stron do wymiany, o ile nie ma presji na pamięć, nawet jeśli rezerwują wystarczająco dużo swapów, aby uniknąć nadmiernej alokacji. –

+0

@PeterCordes Cóż, założyłem dokładnie to. Jednak pamięć podręczna zapisu zapisuje do pamięci wewnętrznej i myślałem, że z "pamięcią" rozumie się * wewnętrzną pamięć główną *, która jest niestabilna. Dlatego jako zwykłe przechowywanie kopii myślałem o dysku. Ale nadal nie zakładałem, że to rozwiązanie. – user8

Powiązane problemy