Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # This is a sample Python script.
- import random
- questions = [["Architektura superskalarna:", {"Umożliwia równoległe wykonywanie kilku rozkazów w jednym procesorze":"P",
- "Wymaga zastosowania protokołu MESI":"F",
- "Wywodzi się z architektury VLIW": "F"}],
- ["Cechy architektury CISC:", {"czy występuje model wymiany danych typu pamięć - pamięć":"P",
- "jest mała liczba rozkazów":"F",
- "czy może być wykonana w VLIW":"F"}],
- ["Cechy architektury RISC:", {"czy występuje model wymiany danych typu rej-rej":"P",
- "jest mała liczba trybów adresowania":"P",
- "jest wykonywanych kilka rozkazów w jednym takcie":"P",
- "układ sterowania w postaci logiki szytej":"P",
- "jest wykonywanych kilka instrukcji procesora w jednym rozkazie asemblerowym":"F"}],
- ["Efektywne wykorzystanie równoległości na poziomie danych umożliwiają:", {"komputery wektorowe":"P",
- "komputery macierzowe": "P",
- "procesory graficzne":"P",
- " rozszerzenia SIMD procesorów superskalarnych":"P"}],
- ["Hazard danych:", {" czasami może być usunięty przez zmianę kolejności wykonania rozkazów":"P",
- "nie występuje w architekturze superskalarnej":"F",
- " jest eliminowany przez zastosowanie specjalnego bitu w kodzie programu":"F",
- "może wymagać wyczyszczenia potoku i rozpoczęcia nowej (...)":"F"}],
- ["Jak można ominąć hazard danych:", {"przez zamianę rozkazów":"P",
- " poprzez rozgałęzienia":"F",
- "poprzez uproszczenie adresowania - adresowanie bezpośrednie":"F"}],
- ["Komputery macierzowe:", {"wykonują synchroniczną operację wektorową w sieci elementów przetwarzających":"P",
- " maja w liście rozkazów m.in. rozkazy operujące na wektorach danych":"P",
- " maja macierzowe potokowe układy arytmetyczne":"F",
- "maja w typowych rozwiązaniach zestaw pełnych procesów połączonych siecią połączeń":"F"}],
- ["Komputery wektorowe:", {"posiadają w liście rozkazów m.in. rozkazy operujące na wektorach danych":"P",
- "wykorzystują od kilku do kilkunastu potokowych jednostek arytmetycznych":"P",
- " posiadają listę rozkazów operujących wyłącznie na wektorach":"F"}],
- ["Mechanizm skoków opóźnionych:", {"polega na opóźnianiu wykonywania skoku do czasu wykonania rozkazu następnego za skokiem": "P",
- "wymaga umieszczenia rozkazu NOP za rozkazem skoku lub reorganizację programu":"P",
- "wymaga wstrzymania potoku na jeden takt":"F",
- "powoduje błąd na końcu pętli":"F"}],
- ["Mechanizmy potokowe stosowane są w celu:", {"uzyskania równoległej realizacji rozkazów":"P",
- "przyspieszenia realizacji rozkazów":"P",
- "uszeregowania ciągu wykonywanych rozkazów":"F"}],
- ["Metoda przemianowania rejestrów jest stosowana w celu eliminacji:", {" zależności wyjściowej między rozkazami":"P",
- "antyzależności między rozkazami":"P",
- "błędnego przewidywania rozgałęzień":"F",
- " chybionego odwołania do pamięci podręcznej":"F",
- " prawdziwej zależności danych":"F"}],
- ["Moc obliczeniowa komputerów wektorowych:", {"jest odwrotnie proporcjonalna do długości taktu zegarowego":"P",
- "zmierza asymptotycznie do wartości maksymalnej wraz ze wzrostem długości wektora":"P",
- "zależy od liczby stopni potoku":"F",
- "jest wprost proporcjonalna do długości taktu zegarowego":"F",
- "zależy odwrotnie proporcjonalnie od liczby jednostek potokowych połączonych łańcuchowo":"F",
- "nie zależy od długości wektora":"F",
- "zależy liniowo od długości wektora":"F"}],
- ["Model SIMD:", {" jest wykorzystywany w multimedialnych rozszerzeniach współczesnych procesorów":"P",
- " zapewnia wykorzystanie tej samej operacji na wektorach argumentów":"P",
- " był wykorzystywany tylko w procesorach macierzowych":"F"}],
- ["Podstawą klasyfikacji Flynna jest:", {"Liczba strumieni rozkazów i danych w systemach komputerowych":"P"}],
- ["Problemy z potokowym wykonywaniem rozkazów skoków (rozgałęzień) mogą być wyeliminowane lub ograniczone przy pomocy:", {"tablicy historii rozgałęzień":"P",
- "wystawienia do programu rozkazów typu „nic nie rób":"P",
- "wykorzystania techniki skoków opóźniających":"P",
- "technologii MMX":"F",
- "techniki wyprzedzającego pobrania argumentu":"F"}],
- ["Procesory wektorowe:", {"Mogą być stosowane w systemach wieloprocesorowych":"P",
- "mają moc kilka razy większą od procesorów skalarnych":"P"}],
- ["Przetwarzanie potokowe:", {"daje przyspieszenie nie większe od liczby segmentów (stopni) jednostki potokowe":"P",
- "nie jest realizowane dla operacji zmiennoprzecinkowych":"F",
- "nie jest realizowane w procesorach CISC":"F",
- "w przypadku wystąpienia zależności między danymi wywołuje błąd i przerwanie wewnętrzne":"F",
- "jest realizowane tylko dla operacji zmiennoprzecinkowych":"F"}],
- ["Przetwarzanie wielowątkowe:", {"zapewnia lepsze wykorzystanie potoków":"P",
- "minimalizuje straty wynikające z chybionych odwołań do pamięci podręcznej":"P",
- "nie może być stosowane w przypadku hazardu danych":"F"}],
- ["Rozkazy wektorowe:", {"w komputerach wektorowych ich czas wykonania jest wprost proporcjonalny dodługości wektora":"P",
- "są charakterystyczne dla architektury SIMD":"P",
- "są rozkazami dwuargumentowymi i w wyniku zawsze dają wektor":"F",
- "nie mogą być wykonywane bez użycia potokowych jednostek arytmetycznych":"F"}],
- ["Rozkazy wektorowe mogą być realizowane przy wykorzystaniu:", {"Macierzy elementów przetwarzających":"P",
- "Technologii MMX":"P",
- "Potokowych jednostek arytmetycznych":"P",
- " Zestawu procesorów superskalarnych":"F",
- "Sieci połączeń typu krata":"F"}]
- ]
- oldQuestions = []
- while len(oldQuestions) != len(questions):
- print(100 * "\n")
- question = random.choice(questions)
- if question in oldQuestions:
- continue
- oldQuestions.append(question)
- print(question[0])
- for key, value in question[1].items():
- print(key)
- answer = input("P or F: ")
- if answer.upper() == value:
- print("To jest dobra odpowiedź\n")
- else:
- print("ZŁA ODPOWIEDŹ!!!!!!\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement