|
Vytvoření modelu procesoru pomocí ADL jazyka
Ostatník, Kristián ; Zachariášová, Marcela (oponent) ; Hruška, Tomáš (vedoucí práce)
Cieľom práce je implementácia modelu procesora ARC v ADL jazyku CodAL na inštrukčnej úrovni. Prvá časť bakalárskej práce sa venuje klasifikácii procesorov a popisu ADL jazykov. Druhá časť práce popisuje priebeh implementácie procesora a generovanie prekladača jazyka C/C++ pre odladenie a verifikáciu vytvoreného modelu. Na záver je popísané porovnanie vytvoreného modelu s existujúcim modelom ARC 700 na sade benchmarkových testov.
|
|
Paměťový subsystém v SystemC
Michl, Kamil ; Vaňák, Tomáš (oponent) ; Hruška, Tomáš (vedoucí práce)
Tato práce se zabývá návrhem a implementací paměťového subsystému pro simulaci procesoru. Paměťový subsystém je navržen s pomocí principu modelování na úrovni transakcí. Implementace je provedena v jazyce C++ s využitím knihovny SystemC. Simulace procesoru je převzata ze simulátoru společnosti Codasip. Cílem je vytvoření funkčního propojení procesoru a paměti uvnitř simulátoru. Toto propojení podporuje komunikační protokoly sběrnic AHB3-lite, AXI4-lite, CPB a CPB-lite. Nová implementace tohoto propojení a paměti je zakomponována zpět do původního simulátoru. Výsledný simulátor je otestován pomocí jednotkových testů.
|
|
Architecture Information for LLVM Compiler Optimizations
Svoboda, Jan ; Dolíhal, Luděk (oponent) ; Hruška, Tomáš (vedoucí práce)
This thesis deals with the automatic extraction of processor architecture information from the CodAL language. Extracted information is used as the base for a cost model of the optimizer in the LLVM compiler. In this thesis, a new system was implemented, that creates the cost model, transforms it into a C++ code and compiles it into a dynamic library. This library is loaded at run-time by the compiler and used for better decision-making during the optimization process. The system achieves an average reduction in program code size of 14% and up to 68% improvement in the performance of the generated code.
|
|
Kompilátor jazyka C pro VLIW architektury
Mináč, Tomáš ; Husár, Adam (oponent) ; Masařík, Karel (vedoucí práce)
Tato práce pojednává o jazyce CodAl a Codasip frameworku. Dále popisuje kompilační platformu LLVM, jazyk LLVM IR a optimalizace nad tímto jazykem. Vytvoření návrhu a implementace rozšíření kompilační platformy LLVM o globální plánovaní instrukcí na základe profilu je cílem této práce.
|
|
Software pipelining v překladači LLVM
Glasnák, Ondrej ; Hynek, Jiří (oponent) ; Masařík, Karel (vedoucí práce)
Tahle práce pojednává o návrhu a implementaci techniky programového zřetězení aneb Software pipelining, optimalizaci cyklů v programu, která se snaží plně využít paralelismus na úrovni instrukcí. To dosahuje plánovaním instrukcí způsobem, aby se jednotlivé iterace cyklu překrývaly a bylo je možné vykonávat zřetězeně. Optimalizace takhle zvyšuje rychlost výsledného programu. Je tu popsaný návrh a implementace algoritmu Swing Modulo Scheduling, efektivní metody pro nacházení optimálního plánu pro zřetězení cyklů. Práce byla vytvořena jako součást většího projektu a to vývoje Codasip Framework. Jeho součástí je překladač jazyka C do jazyka symbolických instrukcí vytvořený nad překladačovou architekturou LLVM. V tomto překladači je implementován výsledek této práce.
|
|
Vytvoření modelu procesoru PowerPC
Blaha, Hynek ; Dolíhal, Luděk (oponent) ; Masařík, Karel (vedoucí práce)
Architektury procesorů jsou čím dál více složitější, proto je kladen velký důraz na automatizaci jejich návrhů. Tato bakalářská práce popisuje návrh procesoru PowerPC v jazyce pro popis architektur Codal. Funkčnost a výkonnost výsledného modelu byla ověřena testy poskytnutými výzkumnou skupinou Lissom a srovnána se současným konkurentem.
|
|
Podpora ladicích informací v sestavujícím programu
Nikl, Vojtěch ; Křoustek, Jakub (oponent) ; Masařík, Karel (vedoucí práce)
Tato práce popisuje převod objektového formátu CCOFF do formátu ELF a zpět. Nejdříve je popsán obecný formát objektového souboru a využité ladicí informace DWARF, poté konkrétněji formát CCOFF a ELF. Veškerá funkcionalita spojená s manipulací s formátem CCOFF je zapouzdřena v kolekci tříd ObjectFile. V práci je popsán způsob vytvoření ELF objektového souboru a jeho naplnění korektními daty a následně zpětná konverze zpět do formátu CCOFF.
|
|
Překlad C++ aplikací pro vestavěná zařízení
Nosterský, Milan ; Přikryl, Zdeněk (oponent) ; Hruška, Tomáš (vedoucí práce)
Tato diplomová práce se zabývá přidáním podpory překladu jazyka C++ a jeho standardu C++11 v rámci překladače pro vestavěné systémy. Překladač, založený na projektu LLVM se generuje v rámci prostředí Codasip Studia. Toto prostředí slouží pro návrh procesorů s aplikačně specifickou instrukční sadou, kdy umožňuje na základě popisu sémantiky instrukční sady generovat překladač pro libovolnou cílovou architekturu. Jazyk C++ je jazyk vycházející z jazyka C, rozšířený o objektovou orientaci a několik nových funkcionalit. Jazyk C++ umožňuje psát velmi efektivní kód na vysoké úrovni abstrakce. V rámci testovací fáze je implementace podpory jazyka C++ ověřena na modelech procesorových jader s využitím testovací sady.
|
|
Návrh specializovaných instrukcí
Koscielniak, Jan ; Zachariášová, Marcela (oponent) ; Hruška, Tomáš (vedoucí práce)
Tato práce se věnuje návrhu a implementaci specializovaných instrukcí pro architekturu instrukční sady RISC-V. Tato instrukční rozšíření slouží k akceleraci sady vybraných kryptografických algoritmů. Nové instrukce jsou implementovány v prostředí Codasip Studia na modelu 32bitového procesoru s instrukční sadou RV32IM. Byly zvoleny implementace kryptografických algoritmů s otevřeným zdrojovým kódem, který byl upraven, aby používal nové instrukce. Jednotlivé instrukce byly aplikovány na příslušné algoritmy, otestovány a profilovány. Výsledkem práce je rozšíření instrukční sady, které umožňuje až sedminásobné zrychlení v závislosti na vybraném algoritmu.
|
|
Vytvoření modelu procesoru pomocí ADL jazyka
Ostatník, Kristián ; Zachariášová, Marcela (oponent) ; Hruška, Tomáš (vedoucí práce)
Cieľom práce je implementácia modelu procesora ARC v ADL jazyku CodAL na inštrukčnej úrovni. Prvá časť bakalárskej práce sa venuje klasifikácii procesorov a popisu ADL jazykov. Druhá časť práce popisuje priebeh implementácie procesora a generovanie prekladača jazyka C/C++ pre odladenie a verifikáciu vytvoreného modelu. Na záver je popísané porovnanie vytvoreného modelu s existujúcim modelom ARC 700 na sade benchmarkových testov.
|