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:
2001Hruška Tomáš: XML Technology - tutorial, In: ISM 01 Conference Proceedings, Hradec nad Moravicí, CZ, MARQ, 2001, p. 11-15, ISBN 80-85988-51-3
1995Beneš 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
1994Beneš 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
1993Beneš 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
1992Beneš 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