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