diplomová práce

Návrh superskalárního RISC-V procesoru

Text práce 1.24 MB

Autor práce: Ing. Dominik Salvet

Ak. rok: 2023/2024

Vedoucí: prof. Ing. Jiří Jaroš, Ph.D.

Oponent: Ing. Václav Šimek

Abstrakt:

Tato práce se zabývá návrhem a implementací superskalární mikroarchitektury RISC-V procesoru zaměřené na prostředí s omezenými zdroji. Za tímto účelem mikroarchitektura definuje sedmistupňovou zřetězenou linku s dvojitým vydáváním instrukcí, které vykonává v pořadí. Je popsána v jazyce SystemVerilog a lze ji snadno simulovat na počítači. Pomocí připravených nástrojů pouští vytvořený model procesoru programy napsané v RISC-V jazyce symbolických adres zkompilované GCC. Na základě provedeného testování bez speciální asistence kompilátoru procesor provede v průměru 0,88 instrukcí za cyklus, čímž poskytuje o 22,6 % vyšší výkon než jeho skalární protějšek. Vzhledem k tomu, že se navržená mikroarchitektura také vyhýbá nadměrné specializaci, poskytuje dobrý základ, který lze dále rozšiřovat a optimalizovat na základě profilování očekávaných programů, což vede k optimálnímu výkonu a využití zdrojů.

Klíčová slova:

Superskalární procesor, instrukční sada RISC-V, zřetězené zpracování, vykonávání instrukcí v pořadí, dvojité vydávání instrukcí, otevřený hardware, SystemVerilog, simulační testbench

Termín obhajoby

20.06.2024

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaBznamka

Klasifikace

B

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných, např. ohledně možností doplnění práce s dual-port pamětí v FPGA, plánovaného nasazení či možností rozšíření o specializované instrukce. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B - velmi dobře.

Otázky k obhajobě

  1. V tabulce 5.2 na straně 41 je coby jeden z prováděných testů uvedena položka "hazards". Můžete prosím ve stručnosti nastínit pozadí tohoto testu?
  2. Můžete stručně srovnat vlastnosti vámi vytvořeného řešení s architekturami či jádry jako Noel-V či CVA6?
  3. Lze říci, že je vámi vytvořené řešení plně připraveno pro syntézu do cílového obvodu FPGA? Jaké dodatečné úpravy by eventuálně bylo nutné provést?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační technologie a umělá inteligence (MITAI)

Specializace

Vestavěné systémy (NEMB do 2021/22)

Složení komise

doc. Ing. Jan Kořenek, Ph.D. (předseda)
prof. Ing. Jiří Jaroš, Ph.D. (člen)
doc. Dr. Ing. Otto Fučík (člen)
doc. Ing. Tomáš Martínek, Ph.D. (člen)
Ing. Vojtěch Mrázek, Ph.D. (člen)
doc. Mgr. Adam Rogalewicz, Ph.D. (člen)

Dominik Salvet vynaložil při řešení diplomové práce obrovské úsilí a navrhl velice zajímavý superskalární procesor na bázi RISC-V. Během řešení byl velice aktivní a schůzky byly velmi produktivní. Bohužel závěrečná fáze byla poněkud hektická a práce byla odevzdávána na poslední chvíli. Přestože hodnotím aktivitu studenta jako vedoucí stupněm B, neváhal bych práci za její vysoce kvalitní implementaci nominovat na cenu děkana.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Cílem diplomové práce byla implementace superskalárního procesoru architektury RISC-V. Po podrobné analýze padla volba na dvoucestný procesor se zpracováním instrukcí v pořadí s důrazem na malou plochu a nízkou spotřebu procesoru.

Z pozice vedoucího práce hodnotím práci jako velice náročnou. Vlastní návrh a analýza procesoru s vyhodnocením různých přístupů a jejich nároků zabrala téměř rok práce. Neméně náročná byla i vlastní implementace a testování navrženého procesoru, který obsahuje vyšší desítky signálů, mnoho funkčních jednotek a komplexní systém předávání výsledků mezi stupni linky.

S výsledky práce jsem velice spokojený, zvažujeme další vývoj, hardwarovou realizaci a publikaci na odborném fóru v oblasti návrhu RISC-V procesorů.

Aktivita při dokončování

Přes veškerou snahu a množství odvedené práce v průběhu semestru bylo dokončování práce poměrně hektické, především textové zprávy, která tak splňuje spíše minimální požadavky, nutno však podotknout, že je informačně velice bohatá. Většinu textu jsem měl možnost komentovat, přestože na zapracování připomínek již nezbylo příliš času.

Publikační činnost, ocenění

Práce dosud nebyla publikována, avšak plánuje se sepsání článku na konferenci v oblasti návrhu procesorů RISC-V.

Práce s literaturou

Student pracoval s literaturou aktivně a vhodně citoval dostupné zdroje v oblasti návrhu architektur RISC-V a jejich implementace.

Aktivita během řešení, konzultace, komunikace

Student byl během řešení práce velice aktivní. Přestože řešení trvalo čtyři semestry, pracoval aktivně po celou dobu řešení. V pravidelných čtrnáctidenních intervalech podrobně prezentoval aktuální stav práce a diskutoval možné směry vývoje. Zde je nutné podotknout, že schůzky trvaly  60 až 90 minut a byly vyplněny produktivní prací. S aktivitou jsem tak byl velice spokojený.

Vlastí implementace je dobře zdokumentována a postup vývoje uchován v repositáři GitLab s 250 commity.

Výsledný počet bodů navržený vedoucím: 88

Známka navržená vedoucím: B

Posudek oponenta
Ing. Václav Šimek

S ohledem na výše uvedené skutečnosti navrhuji souhrnné hodnocení stupněm B - velmi dobře, 80 bodů.

Kritérium hodnocení Slovní hodnocení Body
Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno

Domnívám se, že jednotlivé požadavky plynoucí ze zadání této diplomové práce byly naplněny.

Rozsah technické zprávy

Stupeň hodnocení: splňuje pouze minimální požadavky

Rozsah technické zprávy (cca 70 normostran) se takřka přibližuje obvyklému rozmezí pro diplomovou práci. 

Prezentační úroveň technické zprávy

Technická zpráva je členěna do celkem 6 hlavních kapitol a několika doprovodných příloh, přičemž výsledek působí velmi utříbeným a kompaktním dojmem. Z pohledu čtenáře bych přístup k vedení výkladu označil za velmi solidní a to zvlášť za situace, kdy je technická zpráva sepsána v angličtině.

Popis implementace jednotlivých prvků superskalární architektury RISC-V však mohl být v rámci 4. kapitoly zpracován poněkud detailněji a taktéž doplněn např. o vhodně zvolené implementační detaily na úrovni popisu v jazyce SystemVerilog či signálové průběhy při ověřování jejich funkčnosti.

85
Formální úprava technické zprávy

Z pohledu formální úpravy bych technickou zprávu označil za velmi zdařilou, přičemž se mi nepodařilo najít nějaké zásadní prohřešky. Příležitostně je možno narazit na určitou nekonzistenci v provedení popisků a tabulek.

85
Práce s literaturou

Zde jsem nenarazil na žádné evidentní nedostatky. 

90
Realizační výstup

Realizační výstup má podobu hardwarového návrhu základní architektury RISC-V se superskalárními prvky, která byla implementována na úrovni jazyka SystemVerilog. Vše je plně funkční a odpovídá požadavkům zadání.

Je škoda, že se nepodařilo do výsledného řešení začlenit i prediktor skoků, který by měl dosti výrazný dopad na zvýšení efektivity vytvořené architektury. Pro reálné použití v praxi by taktéž bylo třeba řešit zpracování přerušení, výjimky, chráněné režimy činnosti a související aspekty, což však může být předmětem zájmu nějakého navazujícího projektu.

Taktéž je škoda, že nebyla provedena syntéza výsledného popisu procesorové architektury do hradlového pole FPGA, kde by bylo možno blíže ověřit vlastnosti vytvořeného návrhu (frekvence, spotřeba a pod.). Dlužno podotknout, že tyto činnosti nebyly ze strany zadání explicitně požadovány.

75
Využitelnost výsledků

Dosažené výsledky mohou být použity pro výukové či demonstrační účely v předmětech z oblasti číslicového hardware či architektury procesorů. Rovněž se domnívám, že vzhledem k flexibilitě a kvalitnímu zdokumentování lze realizační výstup chápat i coby pomyslný odrazový můstek v budoucích projektech, které se mohou věnovat rozšíření zde vzniknuvší architektury RISC-V o další specifické prvky či její optimalizaci.

Náročnost zadání

Stupeň hodnocení: obtížnější zadání

I když k instrukční sadě RISC-V a z ní vycházejícím architekturám je dostupná široká paleta informačních zdrojů, tak kompletní realizace vlastního řešení od úplného začátku v jazyce pro popis číslicového hardware představuje poměrně komplexní úkol. Zvlášť za situace, kdy je třeba zohlednit i principy superskalárního zpracování instrukcí. Zadání tedy považuji za obtížnějšího rázu.

Otázky k obhajobě:
  1. V tabulce 5.2 na straně 41 je coby jeden z prováděných testů uvedena položka "hazards". Můžete prosím ve stručnosti nastínit pozadí tohoto testu?
  2. Můžete stručně srovnat vlastnosti vámi vytvořeného řešení s architekturami či jádry jako Noel-V či CVA6?
  3. Lze říci, že je vámi vytvořené řešení plně připraveno pro syntézu do cílového obvodu FPGA? Jaké dodatečné úpravy by eventuálně bylo nutné provést?
Výsledný počet bodů navržený oponentem: 80

Známka navržená oponentem: B

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová