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.