Architektury systemów komputerowych

Transkrypt

Architektury systemów komputerowych
Architektury systemów komputerowych
Lista 11
x11 = 7
(minimum na bdb)
1. Rozwa»my system pami¦ci z pami¦ci¡ gªówn¡ o pojemno±ci
212
bajtów, adresowan¡ bajtowo.
Pami¦¢ cache skªada si¦ z czterech 16-bajtowych wierszy. Przedstaw logiczny podziaª adresu w
pami¦ci gªównej, przy zaªo»eniu, »e:
(a) cache u»ywa mapowania bezpo±redniego,
(b) cache jest sekcyjno-skojarzeniowy i ma dwie sekcje,
(c) cache jest w peªni skojarzeniowy.
2. W tym zadaniu zakªadamy czterogigabajtow¡ przestrze« adresow¡ i adresowanie bajtowe. Ilu bitów potrzebujemy do zycznej realizacji pami¦ci cache w dwóch poni»szych wariantach? Nale»y
policzy¢ bity potrzebne na przechowywane dane oraz na znaczniki. Prosz¦ pomin¡¢ ewentualne
dodatkowe bity (np. tzw. bity aktualno±ci danych). W obu wariantach mamy 32-bajtowe bloki,
a cache przechowuje 64 kilobajty danych.
(a) mapowanie bezpo±rednie
(b) mapowanie sekcyjno-skojarzeniowe 4-dro»ne (sekcje czterowierszowe).
3. Rozwa»amy pami¦¢ podr¦czn¡ z mapowaniem sekcyjno-skojarzeniowym, wykorzystuj¡c¡ algorytm wymiany LRU (least recently used najdawniej u»ywany). Rozmiar sekcji 4 bloki. Do
ka»dego bloku dodane s¡ dwa bity, u»ywane do obliczenia, króry blok byª ostatnio u»ywany.
Licznik dziaªa nast¦puj¡co:
•
kiedy pojawi si¦ chybienie, to blok z licznikiem ustawiony ma 0 jest podmieniany, a nowo
wstawiony blok dostaje licznik 3; pozostaªe bloki maj¡ liczniki zmniejszane o 1;
•
kiedy pojawi si¦ traenie, to licznik bloku, do którego si¦ odwoªujemy ustawiamy na 3 i
wprowadzmy konieczne modykacje w pozostaªych licznikach.
Je±li w pami¦ci cache znajduj¡ si¦ cztery bloki A, B, C, D z licznikami ustawionymi odpowiednio
na 0, 1, 2, 3, to które bloki pozostan¡ w zbiorze i jakie b¦d¡ warto±ci ich liczników po sekwencji
odwoªa«: E, B, E, D, A, E?
4. W wiele procesorach, algorytmem wymiany bloków nie jest dokªadny algorytmu LRU (jak w
zadaniu poprzednim), ale jego przybli»enie.
Opiszemy teraz taki przybli»ony algorytm LRU
(pseudo-LRU ) dla pami¦ci 4-dro»nej: z ka»d¡ sekcj¡ (oznaczmy jej wiersze jako L1, L2, L3, L4)
s¡ skojarzone trzy bity (zwracam uwag¦, »e bity s¡ skojarzone z caª¡ sekcj¡ a nie z pojedynczym
wierszem): B0, B1, B2. Bit B0 okre±la która para wierszy (L0-L1, czy L2-L3) byªa u»ywana
dawniej, bity B1 i B2 wskazuj¡, które wiersze w poszczególnych parach byªy wykorzystywane
dawniej. Algorytm, w zale»no±ci od B0, wyrzuca wiersz wskazywany przez B1 lub B2.
(a) Poka», »e algorytm stanowi tylko przybli»enie prawdziwego algorytmu LRU (wska» sekwencj¦ odwoªa«, która rozró»nia te dwa algorytmy).
(b) Wyka», »e prawdziwy algorytm LRU wymaga co najmniej 5 bitów na jeden zbiór.
5. Rozwa»my pami¦¢ cache o pojemno±ci 1 kilobajta, z mapowaniem bezpo±rednim i blokiem o
rozmiarze 8 bajtów.
(a) Jaki jest wspóªczynnik chybie« przy nast¦puj¡cej sekwencji odwoªa« (adresy podane s¡
szesnastkowo): 0x0, 0x8, 0x10, 0x18, 0x20, 0x28?
(b) Jak zmieni si¦ wspóªczynnik chybie« przy powy»szej sekwencji odwoªa« je±li
i. zwi¦kszymy rozmiar bloku do 16,
ii. zast¡pimy mapowanie bezpo±rednie mapowaniem sekcyjno-skojarzeniowym, dwudro»nym (dwa wiersze na sekcj¦).
6. Rozwa»my system pami¦ci zbudowany z jednopoziomowej pami¦ci cache oraz pami¦ci gªównej.
Pami¦¢ cache jest sekcyjno-skojarzeniowa, skªada si¦ z czterech dwuwierszowych sekcji, algorytm wymiany to LRU. Rozmiar bloku (wiersza) to cztery sªowa. Pami¦¢ gªówna mie±ci 1024
sªowa. Adresowaln¡ jednostk¡ jest sªowo. Zakªadamy, »e czas odczytu z pami¦ci cache to 5 ns,
natomiast czas przeniesienia caªego bloku z pami¦ci gªównej do cache wynosi 95 ns. Przyjmij,
»e w przypadku chybienia w pami¦ci cache najpierw wczytywany jest caªy blok, a potem jeszcze
odpowiednie sªowo przenoszone jest do procesora (trwa to zatem w sumie 100 ns.).
(a) Przedstaw format adresu w tym systemie (podziel adres na logiczne fragmenty, podaj ich
dªugo±ci w bitach)
(b) Rozwa» wykonanie programu, który odczytuje kolejno sªowa
wykonuje pi¦ciokrotnie p¦tl¦ odczytuj¡c¡ sªowa
40, 41, . . . , 47.
2, 3, 4, 5, . . . 39,
a nast¦pnie
Ile chybie« w pami¦ci cache
wyst¡pi podczas wykonywania tego programu? Jaki jest ±redni czas odczytu sªowa w tym
programie (wystarczy przedstawi¢ wzór, nie trzeba koniecznie wylicza¢ dokªadnej warto±ci)?
Zakªadamy, »e przed wykonaniem programu pami¦¢ cache jest pusta.
7. Rozwa»my system komputerowy z pami¦ci¡ gªówn¡ o pojemno±ci
tak»e pami¦¢ podr¦czn¡
wierszu.
12
2
215
sªów 16-bitowych.
Ma
sªów podzielon¡ na 4-wierszowe sekcje z 64 sªowami w ka»dym
Zaªó», »e pami¦¢ podr¦czna jest na pocz¡tku pusta.
Procesor pobiera sªowa z loka-
cji 0,1,2,...,4351 w tym wªa±nie porz¡dku. Nast¦pnie powtarza t¦ sekwencj¦ pobierania jeszcze
9 razy.
Pami¦¢ podr¦czna jest 10 razy szybsza ni» pami¦¢ gªówna.
Oszacuj korzy±¢ wynika-
j¡c¡ z zastosowania pami¦ci podr¦cznej. Przyjmij, »e wymiana bloków relalizowana zgodnie z
(dokªadnym) algorytmem LRU.
8. Rozwa»my dwie realizacje pami¦ci cache:
•
z mapowaniem bezpo±rednim
•
z peªnym mapowaniem skojarzeniowym i algorytmem wymiany LRU (least recently used).
Czy mo»na skonstruowa¢ sekwencj¦ odwoªa«, w której pierwsze rozwi¡zanie da wi¦ksz¡ liczb¦
trae« ni» drugie? Skonstruuj tak¡ sekwencj¦ lub uzasadnij, »e jest to niemo»liwe.
9. Wyja±nij na czym polegaj¡ strategie zapisu write-back/write-through oraz write-allocate/write-
no-allocate.
Emanuel Kiero«ski
2

Podobne dokumenty