Topic of PhD thesis| Advisor: | Hruška Tomáš, prof. Ing., CSc. |
|---|
| Student: | Masařík Karel, Ing. |
|---|
| Topic: | Systems for hardware-software co-design |
|---|
| Start: | 2004/2005 |
|---|
| Date of Defense: | 2008-11-19 |
|---|
| Title of Dissertation: | SYSTEM FOR HARDWARE-SOFTWARE CO-DESIGN |
|---|
| PhD thesis subject: |
|---|
Podstatou problému je vytvoření softwerového prostředí, v němž lze souběžně navrhovat technické vybavení počítače (hardware) a současně vyvíjet jeho programové vybavení (software) před jeho skutečnou výrobou. Tématicky jde zejména o oblast překladačů, ale také vytváření modelů s nutností orientace v harwarové oblasti.
Stručný úvod do problematiky:
Chceme simulovat jeden procesor na jiném. Tedy předpokládáme, že máme k dispozici dostatečně rychlý procesor s dostatečně obecným programovacím rozhraním (jazykem), na kterém naše simulace chceme provádět. V tomto jazyce budeme programovat simulaci. Dále chceme, aby námi vyrobený simulátor byl dostatečně provozuschopný na různých procesorech.
Chování procesoru můžeme popisovat na různých úrovních. je to možné buďto v univerzálním programovacím jazyce (např. C) nebo můžeme volit jazyk specializovanější.
Je možné napsat celý model v univerzálním jazyce. Myslím, že snad se to někdy i tak dělá. Ale vzhledem k době, kterou na výrobu mikroprocesoru máme, je to neefektivní. Musíme uvažovat o doplňcích, které by psaní modelu zrychlily. Jsou v zásadě dva:
- udělat knihovnu opakovaně použitelných stavebních prvků modelu, včetně popisu jejich chování (toto bude nadstavbou jazyka pro simulování)
- vytvořit specifikační formální jazyk , který by umožňoval rychlou definici instrukčního repertoáru, z níž by se generoval automaticky assembler, zpětný assembler a simulátor (toto bude popsáno ve speciálním jazyce popisujícím překlady).
Z nových částí specifikačního jazyka bude potřeba navrhnout a připravit nové části definičního jazyka modelu a to zejména:
- definici zdrojů (stavebních kamenů, HW součástek), ze kterých se modelovaný mikroprocesor skládá ( s tím souvisí vytvoření knihovny zdrojů, která se bude sestavovat se simulátorem); současně je zvolen ovládací jazyk pro definici chování zdrojů.
- definici překladů a popisu simulace na základě binárního kódu (vytvoření speciálního specifikačního jazyka, který je vlastně popisem atributované překladové gramatiky).
Bude současně popisovat:
- definici interpretu instrukcí
- definici assembleru
- definici disassembleru
Tyto doplňky dohromady se zvoleným univerzálním jaykem budou tvořit nový definiční jazyk. Dále je třeba vymyslet, navrhnout a realizovat:
- obslužné programy doplňující vytvářený simulátor a to zejména:
- okénkové prostředí pro univerzální styk s uživatelem a v něm (tučně jsou položky, které budeme potřebovat nutněji, zbytek je až postupně):
- syntaxí řízený editor vstupního jazyka, s případnou grafickou variantou
- vlastní ovládání simulátoru
- překladač definičního jazyka
- import a export přeloženého modelu v XML
- generování assembleru pro danou definici
- syntaxí řízený editor assemblerovských programů pro vygenerovaný assembler
- generování disassembleru pro danou definici
- sestavovací program programů přeložených assemblerem
- zaváděcí program
- interpretační simulace pro různé binárky
- generování rychlého simulačního programu pro danou sestavenou binárku, který bude syntakticky analyzován předem.
Poslední možnost je velmi důležitá a má zásadní vliv na definiční jazyk. Dále je potřeba pamatovat na budoucí propojení více modelů na více počítačích, což vede k rychlým síťovým aplikacím. Rovněž bude zajímavé pozdější připojení reálného mikroprocesoru k simulátoru, což vede k návrhu univerzálního rozhraní pro práci s procesory jak reálnými, tak virtuálními.
Co se týká základního výzkumu, jde zejména o generování překladače z vyššího programovacího jazyka, tedy přesněji rekonfigurovatelný překladač jazyka C generovatelný z dané definice.
Projekt je navržen v součinnosti s firmou v Rakousku, která se zabývá návrhem a skutečnou realizací procesorů. Práce se předpokládá v týmu asi 6-8 lidí (studentů FIT, případně vídeňské university i zaměstnanců FIT i se spolupracující organizace ve Vídni).
Bližší upřesnění ústně. | | Part of research project: |
|---|
| | Related publications: |
|---|
| 2001 | Hruška Tomáš: XML Technology - tutorial, In: ISM 01 Conference Proceedings, Hradec nad Moravicí, CZ, MARQ, 2001, p. 11-15, ISBN 80-85988-51-3 |
| 1995 | Beneš Miroslav, Hruška Tomáš: Graph Rewriting as a Tool for System Description, In: Proceedings of the IFIP Workshop CAST and Computer System Technology, Insbruck, AT, neznámá, 1995, p. 9-10 |
| 1994 | Beneš Miroslav, Hruška Tomáš, Števko Elemír: Applications of Graph Rewriting Systems in Compiler Implementation, In: Proceedings of 5th International Workshop on Graph Grammars, Williamsburg, Virginia, US, 1994, p. 77-82 |
| 1993 | Beneš Miroslav, Hruška Tomáš, Števko Elemír: Using Graph Transformation in Discrete Simulation, In: Proceedings of the MOSIS 93 Conference, Olomouc, CZ, MARQ, 1993, p. 275-281 |
| 1992 | Beneš Miroslav, Hruška Tomáš: Attributed Graph Rewriting, In: Knižnice VUT, Brno, CZ, VUT v Brně, 1992, p. 177-184 |
| | Hruška Tomáš, Sokolowski P., Zelený Jaroslav: Ein Vergleich von CISC und RISC Architekturen, In: Institut fuer Angewandte Informatik an der EBS, Germany, CZ, 1992, p. 28 |
|
|