# Zadání 7.6.2016

<{ForumPost(poster="nikdo", timestamp=2016-06-09 22:44:59)}>
Přibližné zadání:  

* Na zásobníku je 32bitová proměnná *v* (bitové pole po 5 bitech, zprava), pomocí assembleru (lze použít smyšlené instrukce, ale je třeba je vysvětlit) uložte do proměnné *f* druhých 5 bitů z *v*.
* Výjimky a přerušení (popsat obecně, nezávisle na architektuře, vč. příkladů) + jaký je mezi nimi rozdíl.
* Jak se liší *write-through* a *write-back* při cache hit.
* Co jsou lokální proměnné a jak je zařízeno, že volané metody vidí své lokální proměnné a při návratu (return) opět vidíme své původní proměnné.
* Nakreslete schéma (a pomocí něj vysvětlete princip) fungování *přímo mapované* cache.
* Jaké problémy nastávají u *superskalárních dynamic multiple issue* procesorů při zpracování výjimek / přerušení a jak se tyto problémy řeší.
* V čem je SRAM výhodnější pro cache v procesoru než DRAM?
* Paměťová hierarchie, jak pomáhá řešit dlouhé přístupové doby do operační paměti a čím obecně je dána rychlost paměťového subsystému.
* Co je to *write buffer*, proč se používá a k čemu jeho použití u cache vede.
* Popište jak funguje a jaké komponenty obsahuje jednocyklová datová cesta.
* Je potřeba ovládat řídící signály pomocí mikroprocesoru, máme stovky řídících signálů, ale náš mikroprocesor funguje efektivně v řádech desítek. Co s tím?

Co tam ještě možná bylo (nepamatuju si jistě):  

* Něco dalšího k *superskalárním dynamic multiple issue* procesorům.
* Něco k vícecyklové datové cestě.

<{/ForumPost}>

