Co to oznacza, że pamięć cache jest „n-drożna” (ang. Set associative)?
Oznacza to, że każdy blok ma jedno, wyróżnione miejsce które może zajmować w pamięci cache
Oznacza to, że każdy blok może zajmować tylko miejsce spośród wyróżnionej puli miejsc w pamięci cache
Oznacza to, że bloki pamięci mogą zajmować dowolne miejsce w pamięci cache
Brak poprawnej
Załóżmy, że dla pewnego programu jego część sekwencyjna stanowi 10% oraz jego część równoległa jest wykorzystaniem 15 procesorów
Prawo Amdhala mówi, że przyspieszenie nie może być większe od 10 niezależnie od liczby wywoływanych procesorów
Prawo amdhala mówi, że przyspieszenie zależy od liczby wykorzystywanych procesorów i nie może być większe od 15
Prawo amdhala mowi, że przyspieszenie nie zalezy od liczby wykorzystywanych procesorów i nie być większe niż 15
Brak poprawnej odpowiedzi
System równoległy jest skalowany jeśli
Efektywność (sprawność) systemu jest utrzymywana na stałym poziomie przy jeno czesnym zwie…. Rozwiązywanego problemu oraz liczby dostępnych procesorów
Możemy zwiększać liczbę dostępnych procesorow
Efektywność(sprawność) systemu rosnie liniowo wraz z liczba procesorow
Brak poprawnej
Prawo Gustafsona mówi, że :
Przyspieszenie jest ograniczone przez sekwencyjną część programu.
Nie ma żadnego ograniczenia na przyspieszenie
Przyspieszenie rośnie liniowo wraz z liczbą procesorów
Brak poprawnej odpowiedzi
Konflikt dostępu do danych w przypadku przetwarzania potokowego polega na
Kolejna wykonywana instrukcja żąda dostępu do rejestru wykorzystywanego przez poprzednią
Brak poprawnej
Kolejna wykorzystywana instrukcja żąda dostępu do zajętego procesora
Kolejna wykonywana instrukcja żąda dostępu do nie wyliczonej jeszcze przez poprzedzającą instrukcję wartości
Układ przewidujący skoki określany jako (2,2) wykorzystuje:
a) 2 bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 4-rech układów przewidujących skoki;
b) 3 bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 4-rech układów przewidujących skoki;
c) 3 bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 8-śmiu układów przewidujących skoki;
d) Brak poprawnej odpowiedzi.
Rozważ instrukcję pętli w której realizuje się 10 iteracji i pętla się kończy ( nie ma kolejnego przebiegu). Jaka jest skuteczność przewidywania skoku jeśli używamy dwu-bitowego układu przewidywania skoków przy inicjalizacji układu na 11?
80%
95%
90%
Brak poprawnej
Przy skoku opóźnionym, instrukcja znajdująca się bezpośrednio po instrukcji skoku:
a) Jest wykonywana zawsze;
b) Jest wykonywana tylko gdy skok jest realizowany;
c) Jest wykonywana tylko gdy skok nie jest realizowany;
d) Brak poprawnej.
Jaka jest różnica pomiędzy strategiami „write back” i „write through” stosowanymi dla pamięci cache?
a) Przy zapisie w „write through” informacja jest zapisywana do bloku w pamięci cache, a dla „write back” do bloku w pamięci cache oraz w pamięci głównej
b) Nie różnią się
c) Przy zapisie w „write back” informacja jest zapisywana do bloku w pamięci cache, a dla „write through” do bloku w pamięci cache oraz w pamięci głównej
d) brak poprawnej odpowiedzi
Załóżmy, że w pewnym programie instrukcja S jest zawsze wykonywana przed instrukcją K oraz jest spełniony następujący warunek IN(K) Π OUT(S) <> 0 (IN jest zbiorem zawierającym zmienne wejściowe (czytane) przez instrukcję, natomiast OUT jest zbiorem zmiennych wyjściowych (wyliczanych) przez instrukcję, wtedy: (Π - znaczek iloczynu, nie mogę coś tu znaleźć w Wordzie)
Pomiędzy instrukcjami występuje antyzależność
Brak poprawnej
Pomiędzy instrukcjami występuje zależność właściwa
Pomiędzy instrukcjami występuje zależność wyjściowa
Czym różnią się globalna i lokalna stopa nie trafień do pamięci cache (miss rate) ?
Lokalną stopę nie trafień wylicza się dzieląc liczbę nie trafień do pamięci cache przez liczbę zwrotów do pamięci cache, natomiast globalną dzieląc liczbę trafień do pamięci cache przez łączną liczbę zwrotów do pamięci
Globalną stopę nie trafień wylicza się dzieląć liczbę nie trafień do pamięci cache przez liczbę zwrotów do pamięci cache, natomiast lokalną dzieląć liczbę nie trafień do pamięci cache przez łączoną liczbę zwrotów do pamięci
Nie różnią się niczym
Brak poprawnej
Jaki sposób adresacji możne wymagać wielokrotnego dostępu do pamięci?
Adresacja względna
Adresacja pośrednia
Adresacja bezpośrednia
Inna
Co to znaczy że adres do pamięci jest wyrównany (aligned)?
adres jest wyrównany jeśli rozmiar slowa wynosi 4 bajty
adres jest wyrównany jeśli adres slowa (obiektu) A o rozmiarze s bajtów spełnia następujący warunek : A mod s <> 0
brak poprawnej
jest wyrównany jeśli w sposób niezależny mamy dostęp do różnych bajtów pamięci
Wykorzystujac test GCD sprawdź czy występuje zależnosć pomiędzy odwołaniami do elementow macierzy A w poniższym fragmecie programu
for(i=.....)
{ A(2*i+101)= .....
......... = A(2*i)
}
Rozważ poniższy fragment kodu.
If (d==0) d=1;
If (d==1) …….
Zbuduj tabele akcji (jak na wykladzie dla 1-bitowego układu przewidywania skokow z jednym bitem korelacji. Zaloz ze układy przewidywania skokow dla obu skokow są zainicjalizowane na Taken/Not taken oraz bit korelacji na taken . Wartość zmiennej d zmienia się w następujący sposób 1,2,1,2. Zaznacz sytuacje gdy przewidywanie skoku jest niepoprawne.
Układ przewidujący skoki określany jako (2,3) wykorzystuje:
a) 2 bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 4-rech układów przewidujących skoki;
b) 3 bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 4-rech układów przewidujących skoki;
c) 3 bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 8-śmiu układów przewidujących skoki;
d) Brak poprawnej odpowiedzi.
Czym różnią się sieci statyczne od dynamicznych?
a) Nie różnią się niczym;
b) W sieciach statycznych połączenia są stałe, a w dynamicznych mogą być zmieniane w zależności od potrzeb;
c) W sieciach dynamicznych połączenia są stałe, a w statycznych mogą być zmieniane w zależności od potrzeb;
d) Brak poprawnej odpowiedzi.
Dlaczego w przypadku skoków realizujących powrót z procedury nie stosuje się algorytmów przewidywania skoków?
a) Pytanie błędne, wtedy też się stosuje;
b) Ponieważ praktycznie za każdym razem "przewidywanie" byłoby niepoprawne;
c) Ponieważ byłby problem z zagnieżdżonymi procedurami;
d) Brak poprawnej odpowiedzi.
Do czego służy bufor adresów docelowych skoków?
a) W buforze adresów docelowych skoków zapamiętywane są prognozy, tzn. informacje czy skok będzie wykonany, czy nie;
b) W buforze adresów docelowych skoków zapamiętywane są przewidywane adresy instrukcji, które będą wykonane po instrukcji skoku;
c) W buforze adresów docelowych skoków zapamiętana jest historia realizacji skoków;
d) Brak poprawnej odpowiedzi.
Co oznacza, że pamięć cache jest asocjacyjna? (ZAŁOŻENIA W NAWIASACH)
a) Każdy blok ma jedno, wyróżnione miejsce, które może zajmować w pamięci cache;
b) Każdy blok może zajmować miejsce spośród wyróżnionej puli miejsc w pamięci cache; (SET ASSOCIATIVE)
c) Bloki pamięci mogą zajmować dowolne miejsce w pamięci cache; (FULLY ASSOCIATIVE)
d) Brak poprawnej odpowiedzi.
Jak wyliczamy średni czas dostępu do pamięci gdy wykorzystujemy pamięć cache?
a) hit time + miss rate * miss penalty;
b) hit time * miss rate * miss penalty;
c) Nie definiujemy takiego czasu;
d) Brak poprawnej odpowiedzi;
Prawo Amdahla mówi, że:
a) Przyspieszenie jest ograniczone przez równoległą część programu;
b) Nie ma ograniczenia na przyspieszenie;
c) Przyspieszenie rośnie liniowo wraz ze wzrostem liczby procesorów;
d) Brak poprawnej odpowiedzi.
Przyspieszenie definiuje się jako stosunek czasu potrzebnego na rozwiązanie problemu na jednym procesorze (T sek), do czasu rozwiązania tego samego problemu na "p" procesorach (T row). Kiedy mówimy, że przyspieszenie jest względne?
a) Kiedy T sek jest czasem wykonania algorytmu równoległego na jednym z procesorów komputera równoległego;
b) Kiedy T sek jest czasem wykonania najlepszego algorytmu sekwencyjnego na jednym z procesorów komputera równoległego;
c) Kiedy T sek jest czasem wykonania najlepszego algorytmu sekwencyjnego na najszybszym komputerze sekwencyjnym;
d) Brak poprawnej.
Konflikt dostępu do danych w przetwarzaniu potokowym polega na:
a) Kolejna wykonywana instrukcja żąda dostępu do rejestru wykorzystywanego przez poprzednią
Brak poprawnej odpowiedzi
Kolejna wykonywana instrukcja żąda dostępu do zajętego procesora
Kolejna wykonywana instrukcja żąda dostępu do nie wyliczonej jeszcze przez poprzednią instrukcję wartości
Rozważ poniższy kod:
LD R1, Dana1
ADD R1 Dana 2
SUB R1 Dana 3
ST Wynik, R1
Między instrukcjami ADD i SUb występuje zależność:
a) właściwa;
b) wyjściowa;
c) antyzależność;
d) Brak poprawnej odpowiedzi.
Rozważ instrukcję pętli w któej realizuje się 10 iteracji i pętla się kończy ( nie ma kolejnego przebiegu). Jaka jest skuteczność przewidywania skoku, jeśli używamy jednobitowego ukłądu przewidywania skoków przy inicjalizacji układu na 1?
ZAŁOŻENIE: Jeśli w pętli jesteśmy z 11 przebiegiem (w tym przebiegu zostaje zakończona pętla) to skuteczność wynosi 90%
a) 80%
b) 95%
c) 90%
d) Brak poprawnej
Jedną z cech rozproszonej pamięci współdzielonej (zwanej NUMA) jest:
a) Taki sam czas dostępu dla wszystkich komórek;
b) Czas dostępu zależy od fizycznej lokalizacji i od procesora żądającego;
c) Nie da się jednoznacznie określić zależności między czasem reakcji, a lokalizacją i procesorem;
d) Brak poprawnej odpowiedzi.
Przy skoku opóźnionym, instrukcja znajdująca się bezpośrednio po instrukcji skoku:
a) Jest wykonywana zawsze;
b) Jest wykonywana tylko gdy skok jest realizowany;
c) Jest wykonywana tylko gdy skok nie jest realizowany;
d) Brak poprawnej.
Na rysunku poniżej przedstawiono tzw. Omega Network dla ośmiu wejść i ośmiu wyjść. Odpowiedz na poniższe pytania związane z tą siecią:
a) Jak wyznacza się drogę pomiędzy wejściem, a wyjściem? Algorytm zilustruj przykładem.
b) Czy ta sieć ma własność blokowania? Jeśli tak podaj przykład tej sytuacji.
Rozważ poniższy fragment kodu
If (d==0) d=1;
If (d==1) …….
Zbuduj tabele akcji (jak na wykładzie dla 1-bitowego układu przewidywania skoków z jednym bitem korelacji. Zaloz ze układy przewidywania skokow dla obu skokow są zainicjalizowane na Not taken/taken oraz bit korelacji na taken . Wartość zmiennej d zmienia się w następujący sposób 1,2,1,2. Zaznacz sytuacje gdy przewidywanie skoku jest niepoprawne.
Prawo Gustafsona mówi, że :
Przyspieszenie jest ograniczone przez sekwencyjną część programu.
Nie ma żadnego ograniczenia na przyspieszenie
Przyspieszenie rośnie liniowo wraz z liczbą procesorów
Brak poprawnej odpowiedzi
Konflikt dostępu do pamięci w przetwarzaniu potokowym polega na
Kolejna wykonywana instrukcja żąda dostępu do rejestru wykorzystywanego przez poprzednią
Brak poprawnej odpowiedzi
Kolejna wykonywana instrukcja żąda dostępu do zajętego procesora
Kolejna wykonywana instrukcja żąda dostępu do nie wyliczonej jeszcze przez poprzedzającą instrukcję wartości
Układ przewidujący skoki określany jako (3,2) wykorzystuje:
bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 4-rech układów przewidujących skoki;
3 bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 4-rech układów przewidujących skoki;
3 bity określające globalne zachowanie w celu wyboru dla wykonywanej instrukcji skoku jednego z 8-śmiu układów przewidujących skoki;
Brak poprawnej odpowiedzi.
Rozważ instrukcję pętli w której realizuje się 10 iteracji i pętla się kończy ( nie ma kolejnego przebiegu). Jaka jest skuteczność przewidywania skoku jeśli używamy dwu-bitowego układu przewidywania skoków przy inicjalizacji układu na …?
ZAŁOŻENIE: Jeśli w pętli jesteśmy z 11 przebiegiem (w tym przebiegu zostaje zakończona pętla) to skuteczność wynosi 90%
80%
95%
90%
Brak poprawnej
Przy skoku opóźnionym (delayed branch), instrukcja znajdująca się bezpośrednio po instrukcji skoku
Jest wykonywana zawsze bez względu na to czy skok jest realizowany cz nie;
Jest wykonywana tylko gdy skok jest realizowany;
Jest wykonywana tylko gdy skok nie jest realizowany;
Brak poprawnej.
Jaka jest różnica pomiędzy strategiami „write back” i „write through” stosowanymi dla pamięci cache?
a) Przy zapisie w „write through” informacja jest zapisywana do bloku w pamięci cache, a dla „write back” do bloku w pamięci cache oraz w pamięci głównej
b) Nie różnią się
c) Przy zapisie w „write back” informacja jest zapisywana do bloku w pamięci cache, a dla „write through” do bloku w pamięci cache oraz w pamięci głównej
d) brak poprawnej odpowiedzi
Jak definiujemy operacje rozwinięcia pętli (loop unrolling)?
Rozwinięcie pętli polega na wielokrotnym sekwencyjnym zapisaniu ciała pętli z jednym blokiem testowania zakończenia wykonania pętli
rozwinięcie pętli polega na wielokrotnym sekwencyjnym zapisaniu ciała pętli z wieloma blokami testowania zakończenia wykonania pętli, liczba bloków jest równa liczbie sekwencyjnie zapisanych „ciał pętli”
rozwinięcie pętli umożliwia wykonywanie instrukcji ciała pętli w innej niż zapisana kolejności
brak poprawnej odpowiedzi
Co oznacza ze pamięć cache jest „n-drożna” (ang. set associated)
a) oznacza to że każdy blok ma jedno wyróżnione miejsce które może zajmować w pamięci cache
b) oznacza to że każdy blok może zajmować tylko miejsce spośród wyróżnionej puli miejsc w pamieci cache
c) oznacza to że bloki pamieci mogą zajmowac dowolne miejsce w pamieci cache
d) brak poprawnej odpowiedzi
Załóżmy ze dla pewnego programu jego część sekwencyjna stanowi 10% oraz jego część równoległa jest przetwarzana z wykorzystaniem 15 procesorów
prawo Amdhal’a mówi ze przyspieszenie nie może być większe od 10 niezależnie od liczby wykorzystywanych procesorów
prawo Amdhal’a mówi ze przyspieszenie zależy od liczby wykorzystywanych procesorów i nie może być większa od 15
prawo Amdhal’a mówi ze przyspieszenie nie zależy od liczby wykorzystywanych procesorów i nie może być większe niż 15
brak poprawnej odpowiedzi
Własność blokowania dla sieci połączeniowej????
a)
b)
c)
d)
Jaki sposób adresacji możne wymagać wielokrotnego dostępu do pamięci?
Adresacja względna
Adresacja pośrednia
Adresacja bezpośrednia
Inna
Co to znaczy że adres do pamięci jest wyrównany(aligned)?
adres jest wyrównany jeśli rozmiar slowa wynosi 4 bajty
adres jest wyrównany jeśli adres slowa (obiektu) A o rozmiarze s bajtów spełnia następujący warunek : A mod s = 0
brak poprawnej
jest wyrównany jeśli w sposób niezależny mamy dostęp do różnych bajtów pamięci
Do czego sluzy bufor adresow docelowych skokow (branch target buffer) ?
w buforze adresow docelowych skokow zapamiętywane są prognozny, tzn. informacja czy skok będzie realizowany czy nie
w buforze adresow docelowych skokow zapamiętywane są przewidywane adresy instrukcji, które będą wykonywane po instrukcji skoku
w buforze adresow docelowych skokow zapamietana jest historia realizacji skokow
brak poprawnej
rozwaz następujący fragmet programu
LD R1,45(R10) ;ładuj rejestr
DADD R7,R1,R5 ;dodaj -Zaleznosc właściwa R1
DSUB R8, R1, R6 ;odejmij
OR R9,R5, R1 ;lub logiczne
DADD R10,R8,R5 ;dodaj
XOR R2,R3,R4 ;różnica symetryczna
Zidentyfikuj wszystkie zaleznosci danych (właściwa, antyzaleznosc, wyjsciowa) jakie występują w powyższym fragmecie programu, podaj które instrukcje są w relacji zależności oraz podaj numer rejestru „generujący” zależność
Rozważ poniższy fragment kodu
If (d==0) d=1;
If (d==1) …….
Zbuduj tabele akcji (jak na wykladzie dla 1-bitowego układu przewidywania skokow z jednym bitem korelacji. Zaloz ze układy przewidywania skokow dla obu skokow są zainicjalizowane na Taken/Not taken oraz bit korelacji na taken . Wartość zmiennej d zmienia się w następujący sposób 1,2,1,2. Zaznacz sytuacje gdy przewidywanie skoku jest niepoprawne.