Pamięć podręczna - obliczenie numeru zbioru, do którego odwołuje się adres fizyczny A765BC h

0

Przepraszam, że piszę na tym forum ale na innych nikt nie wie jak można rozwiązać takie zadanie:

Pamięć podręczna ma organizację 2-way set associative. Rozmiar bloku (linii) pamięci podręcznej wynosi 128 B, a liczba zbiorów (sets) – 64. Obliczyć numer zbioru, do którego odwołuje się adres fizyczny A765BC h.

Może ktoś z Was potrafi? Z góry dzięki za pomoc ;)

2

Adres binarnie to: 101001110110010110111100
Rozmiar linii pamięci to 128b, więc ostatnie 7 bitów odpada. Zostaje: 10100111011001011
64 zbiory podzielone na kubełki po 2 zbiory to 32 kubełki, każdy ma 5 bitowy indeks (bo 2^5 = 32), a więc bierzemy ostatnie 5 bitów z otrzymanej liczby, czyli: 01011, a to jest równe 11 (dziesiętnie)

Nie wiem czy dobrze, na szybko wymyśliłem :]

0

Dlaczego usuwamy akurat 7 bitów?

Co znaczy ta literka h po adresie?

2

h to sufiks dla liczb zapisanych w systemie szesnastkowym.

7 bitów obcięte, bo 128 (rozmiar linii pamięci w bajtach) = 2^7.

0

To jak tak sprawnie idzie to może dokleje dwa zadanka z tego samego zbioru, z góry dzieki za pomoc ;)
2.Pamięć operacyjna ma rozmiar 64 MB. Pamięć podręczna 2-way set associative ma
rozmiar 8 KB, rozmiar bloku (linii) pamięci podręcznej wynosi 32 B. Narysować
format adresu, wskazać podział bitowy adresu przy dostępie do pamięci podręcznej.

  1. Pamięć operacyjna ma rozmiar 224 B. Pamięć podręczna 4-way set associative ma
    rozmiar 32 KB, w bloku (linii) pamięci podręcznej przechowuje się 16 32-bitowych
    słów. Narysować strukturę pamięci podręcznej oraz format adresu. Obliczyć do
    którego zbioru pamięci podręcznej zostanie zapisany blok z adresem 12ABD h.
0

Podpowiedź dostałeś teraz google i pracę domową odrób sam.

0

Hej dzisiaj na teście mialem podobne zadanko
Pamięć podręczna ma organizację 4-way set associative. Rozmiar bloku
(linii) pamięci podręcznej wynosi 128 B, a liczba zbiorów (sets) – **256. **
Obliczyć numer zbioru, do którego odwołuje się adres fizyczny A765BC h. - powiedzmy ze takie liczby 16 ;>]
Czyli zasada taka sama - odejmuje 7 ostatnich bitów, i 256 dziele przez 4? = 2^6. 6 ostatnich liczb oznacza numer zbioru :D?

0

Właśnie się zorientowałem, że drożność pamięci podręcznej (inaczej: rozmiar zbioru) nie wpływa na to, jak traktowane są bity adresu - tzn nie ważne czy jest X-way czy Y-way, tyle samo bitów jest używane do adresowania zbioru w pamięci podręcznej. Natomiast rozmiar zbioru ma wpływ na przeliczanie rozmiaru całej pamięci podręcznej na ilość zbiorów i odwrotnie.

Czyli w przypadku kamilek66 jest:
Rozmiar linii pamięci podręcznej to 128b, więc 7 ostatnich bitów jest ignorowane.
Liczba zbiorów to 256, więc 8 bitów (obok tamtych 7-miu) są używane do wyboru zbioru.
Dany zbiór zawiera maksymalnie 4 linie pamięci, ale adresowanie czy zarządzanie zależy już od implementacji.

2.Pamięć operacyjna ma rozmiar 64 MB. Pamięć podręczna 2-way set associative ma
rozmiar 8 KB, rozmiar bloku (linii) pamięci podręcznej wynosi 32 B. Narysować
format adresu, wskazać podział bitowy adresu przy dostępie do pamięci podręcznej.

Rozmiar linii pamięci podręcznej to 32 B, więc 5 ostatnich bitów z adresu jest ignorowane.
Liczba zbiorów = rozmiar pamięci podręcznej / ilość linii w zbiorze / rozmiar linii = 8 KB / 2 / 32 B = 4 KB / 32 B = 128
Tak więc 7 bitów (obok tamtych 5-ciu) jest używane do wyboru zbioru.

  1. Pamięć operacyjna ma rozmiar 224 B. Pamięć podręczna 4-way set associative ma
    rozmiar 32 KB, w bloku (linii) pamięci podręcznej przechowuje się 16 32-bitowych
    słów. Narysować strukturę pamięci podręcznej oraz format adresu. Obliczyć do
    którego zbioru pamięci podręcznej zostanie zapisany blok z adresem 12ABD h.
  1. Chyba nie 224 B, a 2^24B?
  2. 32-bitowych słów? To oznacza, że pamięć jest adresowana 32-bitowymi słowami? Tzn pobierając dane z adresu 1234 pobierzemy 1234-ty bajt czy (1234*4)-ty bajt?
0

Kuźwa ;> ale lipa... czyli zle zrobiles pierwsze zadanie bo tam jest 64 i podzieliles na 2
analogicznie myslalem ze jak mam 256 i 4way to 256 dziele na 4

0

"64 zbiory podzielone na kubełki po 2 zbiory to 32 kubełki" nie bardzo rozumiem, co tutaj masz na mysli.

Czy moglbys to wyjasnic na tym przykladzie ?
http://zapodaj.net/26e10206b904b.bmp.html

0

To z kubełkami było złe tłumaczenie, poprawiłem się przecież w kolejnym poście. A na obrazku który podałeś wszystko jest podane na tacy.

Bity 0 - 5 (włącznie) są używane do adresowania wewnątrz linii pamięci. 6 bitów daje 64 możliwości czyli zgadza się z rozmiarem linii pamięci wynoszącym 64 bajty.
Bity 6 - 11 (włącznie) są używane do wybrania zbioru. 6 bitów daje 64 możliwości czyli zgadza się z ilością zbiorów wynoszącą 64.

64 (rozmiar linii pamięci) * 64 (liczba zbiorów) * 8 (liczba linii w zbiorze) = 32768, czyli zgadza się z rozmiarem pamięci podręcznej (32 kibibajty).

1 użytkowników online, w tym zalogowanych: 0, gości: 1