Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
courses:a4m36pap [2013/01/08 17:08] dusatzde |
courses:a4m36pap [2025/01/03 18:23] (aktuální) |
||
---|---|---|---|
Řádek 22: | Řádek 22: | ||
*[[courses/a4m36pap/semestralka2b| Druhá semestrální úloha - B]] | *[[courses/a4m36pap/semestralka2b| Druhá semestrální úloha - B]] | ||
*[[courses/a4m36pap/semestralka3| Třetí semestrální úloha]] | *[[courses/a4m36pap/semestralka3| Třetí semestrální úloha]] | ||
+ | |||
+ | ===== 2015/2016 ===== | ||
+ | {{:courses:a4m36pap:jirkamatparal.zip|Semestralka MPI-OMP}} | ||
+ | |||
===== 2012/2013 ===== | ===== 2012/2013 ===== | ||
Řádek 32: | Řádek 36: | ||
===== Zkouška ===== | ===== Zkouška ===== | ||
+ | |||
+ | ==== 6.1.2014 ==== | ||
+ | * (2b) Vyjmenujte alespoň 3 techniky statické predikce větvení a 3 techniky dynamické predikce větvení. Porovnejte výhody a nebáhody statické a dynamické predikce. | ||
+ | * (3b) Uvažujte základní Schmithův algoritmus predikce větvení a **2-bitové počítadlo**, tj. záznam v BHT má 2 bity. Určete počet správných a špatných predikců pro níže uvedený program. Předpokládejte, že nedochází k interferenci, počáteční stav je WNT. Výsledek zdůvodněte, jak jste k němu přišli. | ||
+ | <code> | ||
+ | int, i, j, c=0; | ||
+ | for (i=0;i<500;i++) | ||
+ | for (j=0;i<4;j++) | ||
+ | c++; | ||
+ | </code> | ||
+ | > správný výsledek je 503, jinak interference je to, že každý cyklus má své počítadlo a ty se neovlivňují | ||
+ | |||
+ | * (3b) Uvažujte dvou-úrovňový paměťový systém tvořený jednou skrytou pamětí (L1 cache) a hlavní pamětí. Přístupová doba nechť je 1 a 100 cyklů pro L1 cache a hlavní pamět, přičmež jeden cyklus trvá 1 ns. Předpokládejte, že L1 cache miss rate je 5%. Jaký bude pruměrný čas přístupu do paměti (AMAT)? | ||
+ | |||
+ | > pozor na chyták, když je miss, sahá i do té cache, tj. započítat i čas přístupu do ní, tj. průměr je 6 ns (ne 5,95 ns, jak by si někdo spočítal) | ||
+ | |||
+ | * (1b) Klasifikujte hazardy v zřetězeném procesoru. Jak lze tyto hazardy řešit (uveďte techniky)? Kdy dochází k hazardům? | ||
+ | |||
+ | * (4b) Určete miss rate vykonávání následovné části programu při pouřití přímo mapované INSTRUKČNÍ cache o velikosti 16 slov, velikost bloku 2 slova. Předpokládejte paměť slovně zarovnanou, velikost slova 4B, tj. nejnižší bity adresy jsou 00. Cache je na počátku prázdná. | ||
+ | <code> | ||
+ | ADDRESS CONTENT | ||
+ | 8002FFFFC 00 00 00 00 NOP | ||
+ | 800200000 3C ... LUI ... | ||
+ | 800200004 26 ... ADDIU ... | ||
+ | 800200008 28 ... ADDI ... | ||
+ | 80020000C 06 ... RLL ... | ||
+ | </code> | ||
+ | {{:courses:a4m36pap:pap-2013-zk1-im1.jpg?300|}} | ||
+ | > princip je takový, ze podle obrázku jsou nejnižší dva bity nepodstatné, pak je bit určující slovo (sloupec) a další tři bity pak řádek. Zbytek je tag. Vyplněné tak jsou první dva řádky instrukcemi v pořadí \\ | ||
+ | 3C ... 26 ... \\ | ||
+ | 28 ... 06 ... \\ | ||
+ | a vpravo dole je pak NOP | ||
+ | * (1b) Pro PC-relativní skokové instrukce je adresa skoku vždy stejná (pokud nepředpokládáme samomodifikující program). Nicméně nepřímé skoky můžou mít různé cílové adresy. BTB zaznamenává pouze nejaktuálnějsí cílové adresy, proto může být značně neefektivní pro predikce často měnícíh cílových adres nepřímých skoků. Jak můžeme modifikovat strukturu BTB, abychom zlepšili predikci pro tyto případy? | ||
+ | * (1b) Vyjmenujte metody pro zajištění koherence skrytých pamětí víceprocoserového systému. | ||
+ | * (2b) Vyjmenujte modely paměťové konzistence. Jak lze zajistit konzistenci (obecně)? | ||
+ | * (1b) Klasifikujte závislosti v programech. Jak lze eliminovat závislosti (ne hazardy!) a kterého typu (uveďte používané techniky) | ||
+ | * (1b) Nakreslete graf datových závislostí níže uvedeného programového fragmentu | ||
+ | <code> | ||
+ | P1: X = D+S | ||
+ | P2: S = G*X | ||
+ | P3: A = B-X | ||
+ | P4: S = A+S | ||
+ | P5: A = G/Y | ||
+ | </code> | ||
+ | {{:courses:a4m36pap:pap-2013-zk1-im2.jpg?150|}} | ||
+ | * (2b) Nastiňte základní myšlenky, jak se vypořádat se zotavením po chybné predikci skoku (co všCechno musíme zabezpečit pro podporu spekulace a jaké HW prostředky použijete?) | ||
+ | * (1b) K čemu slouží Load bypassing a Load forwarging? Uveďte základní myšlenku těchto technik! | ||
+ | * (3b) Uveďte, zda souhlasíte či nesouhlasite s tvrzením a v krátkosti svůj postoj zdůvodněte a přípasdně doplňte. Podtrhněte spornou část věty. | ||
+ | * Multicast, Broadcas, Rediction a Allreduce patří mezi tzv. point-to-point kolektivní neblokující komunikaci. ANO, NE, Proč? | ||
+ | * Prodpora přesného přerušení se dosahuje speciálními instrukcemi vloženými kompilátorem při překladu programu a slouží k dosažení okamžité odezvy procesoru na danou událost, ANO, NE, Proč? (Pokud NE? jak se podle Vás dosahuje přesného přerušení?) | ||
+ | * Programy komunikující pomocí Message Passing se nehodí pro systémy se sdílenou pamětí, ANO, NE, Proč? | ||
+ | |||
==== 1. termin 2013 === | ==== 1. termin 2013 === | ||
* příklady: | * příklady: | ||
Řádek 50: | Řádek 106: | ||
- nakreslit diagram závislostí, | - nakreslit diagram závislostí, | ||
- rozvrhnutí na superskalárním počítači tak, aby se operace vykonaly co nejrychleji | - rozvrhnutí na superskalárním počítači tak, aby se operace vykonaly co nejrychleji | ||
- | 2) Výpis paměti ram, kde byl uložen program v MIPS assembleru. Vyřešit se mělo to, co bude uloženo v registru 18 po vykonání programu. Byly tam nějaké load/strore instrukce, posun, sčítání (1 bod). | + | 2) Výpis paměti ram, kde byl uložen program v MIPS assembleru. Vyřešit se mělo to, co bude uloženo v registru 18 po vykonání programu. Byly tam nějaké load/strore instrukce, posun, sčítání (1 bod). |
- | 3)(3 body) | + | |
+ | 3) (3 body) | ||
- Obrázek cache ze slajdů APS. Určit co to je za cache, byla to přímo mapovaná.(možnosti přímomapovaná, plně asociovaná, s omezenou asociací a nepřímo mapovaná) | - Obrázek cache ze slajdů APS. Určit co to je za cache, byla to přímo mapovaná.(možnosti přímomapovaná, plně asociovaná, s omezenou asociací a nepřímo mapovaná) | ||
- Příklad na který řádek se uloží jedna instrukce a jak bude tento řádek vypadat. Na jednom řádku byly uloženy dva datové bloky, každý blok měl 32 bitů. | - Příklad na který řádek se uloží jedna instrukce a jak bude tento řádek vypadat. Na jednom řádku byly uloženy dva datové bloky, každý blok měl 32 bitů. | ||
Řádek 60: | Řádek 117: | ||
| | ||
1) HyperTransport - trvzení, že to je sběrnice, dvoubodovej spoj, paketový přenos, jednosměrný, mustiplexovaná,.... Označit, co platí. (2 body). | 1) HyperTransport - trvzení, že to je sběrnice, dvoubodovej spoj, paketový přenos, jednosměrný, mustiplexovaná,.... Označit, co platí. (2 body). | ||
+ | |||
2) Charakteristika NUMA | 2) Charakteristika NUMA | ||
+ | |||
3) Zajišťuje se v NUMA konzistence pomocí zasílání zpráv. (NE) | 3) Zajišťuje se v NUMA konzistence pomocí zasílání zpráv. (NE) | ||
- | 4) Přesné přerušení | + | |
- | 5) Pokud výsledek v pipeline vzniká dříve, než ho potřebuje následují tak vzniká hazard. Jak se tento hazard řeší? (Mělo být forwardingem) | + | 4) Přesné přerušení. |
+ | |||
+ | 5) Pokud výsledek v pipeline vzniká dříve, než ho potřebuje následují tak vzniká hazard. Jak se tento hazard řeší? (Mělo být forwardingem). | ||
6) Bersteinovy podmínky - jsou postačující pro paralelní (korektní) provedení instrukcí? (Nutné ale ne dostačující) | 6) Bersteinovy podmínky - jsou postačující pro paralelní (korektní) provedení instrukcí? (Nutné ale ne dostačující) | ||
+ | |||
7) Něco o out-of-order jak funguje(dispatcher a reorder Buffer) a proč se používá. | 7) Něco o out-of-order jak funguje(dispatcher a reorder Buffer) a proč se používá. | ||
+ | |||
8) Používá se v superskaláru diverzifikované vynovávací jednotky nebo se od nich ustupuje? | 8) Používá se v superskaláru diverzifikované vynovávací jednotky nebo se od nich ustupuje? | ||
+ | |||
9) Multithreadig zvyšuje propustnost každého vlákna? (NE, pouze celkovou propustnost) | 9) Multithreadig zvyšuje propustnost každého vlákna? (NE, pouze celkovou propustnost) | ||
+ | |||
10) 3 podmínky pro korektní spekulaci. | 10) 3 podmínky pro korektní spekulaci. | ||
+ | |||
11)..... | 11)..... | ||
+ | |||
12)..... | 12)..... | ||