POSUDEK DIPLOMOVÉ PRÁCE
Název práce: Počítače s von Neumannovou architekturou
Autor práce:  Pavla Bláhová
Stručné zhodnocení práce: 
Na začátku práce nás diplomantka seznamuje se základními pojmy. Je uveden koncept von Neumannovy architektury, je zde popsán rozdíl mezi CISC a RISC procesory. Následně se tato kapitola zabývá návrhem instrukčního souboru, způsoby adresování, počty operandů instrukcí, typy instrukcí a formáty instrukcí. 
V této kapitole je v části 2.1 nesprávně popsán rozdíl mezi von Neumannovou a harvardskou architekturou. Rozdíl nijak nesouvisí se sekvenčním a paralelním zpracování, jak se zde uvádí, ale je dán jen oddělením paměti pro data.
V části 2.4.1 je znak nesprávně zařazen mezi základní datové typy podporované instrukcemi procesoru. Samostatné uložení znaku není zajištěno technickými prostředky počítače. Uložení znaku je řešeno programově jeho kódováním celým číslem dle nějakého standardu (ASCII, Unicode).
Ve třetí kapitole je popis navrženého procesoru. Na začátku je uveden přehled jeho univerzálních registrů, registrů pro práci se zásobníkem a struktura registru příznaků. Následně je popsáno adresování, práce se zásobníkem a způsob implementace přerušení. Kapitola pokračuje přehledem instrukcí procesoru. V závěru je popis superskalární architektury navrženého procesoru. 
Kódování instrukcí je do 64-bitových hodnot. Přitom posledních 16 bitů není nijak využito. To je poměrně nerealistické, protože instrukce by mohly mít délku 48 bitů. Důvodem by zde snad mohla být snaha o zarovnání adres začátků instrukcí na hodnotu dělitelnou 4.
Z popisu není jasné, jaký je rozdíl mezi instrukcemi IRET a RET. Vypadá to, že obě pracují stejně.
Je netypické, aby operace čtení z paměti LOAD nebo přesunu do registru MOV nastavovala nějaké příznaky. Navíc v části 3.8 popisující paralelní provádění instrukcí je zřejmé, že nastavování příznaků při instrukcích LOAD a MOV je poměrně neprozíravé, neboť to omezuje paralelní provádění instrukcí. Například nelze tyto instrukce paralelně provádět s jinými instrukcemi nastavující příznaky, jako je třeba instrukce srovnání.
V tabulce simulace času na straně 27 je zvolen poměrně malý rozdíl mezi čtením přímo z paměti a čtením z Cache paměti (5 cyklů a 4 cykly). Bylo by lepší zvolit větší rozdíl, jak tomu je v reálných systémech. Rovněž by bylo užitečné, kdyby časy bylo možné v programu zadat parametricky.
	Další kapitola popisuje překladač zdrojového programu napsaného v assembleru do cílového kódu. Je zde uvedena syntaxe zápisu instrukcí, zápis návěští, zápis definic symbolů. Kapitolu uzavírá krátký realizace tabulky pro předvídání podmíněných skoků.
Zbývající dvě kapitoly jsou uživatelská a programátorská příručka.
Na konci je závěr. Jeho text je patrně omylem uveden dvakrát za sebou.
Instalace programu a jeho spuštění proběhlo bez problému. Překlad a vykonávání přiložených programů probíhalo rovněž hladce. Mám k programu ale připomínky:
•	Nastavení registru EBP na hodnotu 7FF16 je nelogické. Viditelně by měl být nastaven na hodnotu  80016.
•	Je sice zobrazen obsah paměti po překladu, ale není z něho zřejmé, kde jsou v ní jednotlivé proměnné a kde jsou jednotlivé instrukce. Bylo by užitečné po překladu do výpisu zdrojového programu doplnit adresy instrukcí a adresy definic proměnných.
•	Při načtení nového zdrojového programu zůstává zobrazen přeložený předchozí program, obsahy registrů a jeho výstup. Bylo by vhodné tato pole při přechodu na jiný program vymazat.
•	U programu Predikce simulace ukazovala časy:
•	bez zaškrtnutí volby keš : 1596
•	se zaškrtnutím volby keš: 3024
Proč je zde při použití Cache paměti čas téměř dvojnásobný?
Jak práce splnila zadání: Cíl práce navrhnout procesor pro počítač s von Neumannovou architekturou a sestavit program pro simulaci jeho činnosti byl splněn.
Přináší práce nové výsledky (teoretické, algoritmy, nový SW nástroj, experimenty): Těžištěm práce je program pro simulaci činnosti superskalárního procesoru nebo procesoru s pipeline architekturou. Lze ho například použít pro experimenty vlivu předvídání větvení na výkon programu u superskalární a pipeline architektury.
Jaká je jazyková úroveň práce: Práce je přehledně členěna a psána poměrně pečlivě. Gramatické nedostatky jsou v ní ojediněle.
Další (chyby, silné a slabé stránky práce): V některých částích práce je vyjadřovaní poněkud rozvláčné. Zejména je to v popisu instrukcí. Například místo použitého popisu instrukce ADD
	ADD R,R
	cíl := cíl + zdroj
by bylo přehlednější napsat
	ADD R1,R2
	R1 := R1 + R2		.
Navrhované hodnocení práce: C
Datum: 23.8.2012
Jméno: RNDr. Arnošt Večerka
Podpis: