Jazyky pro popis architektury. Masařík Karel

Podobné dokumenty
Simulátory aplikačně specifických instrukčních procesorů Jazyk LISA. Masařík Karel

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Profilová část maturitní zkoušky 2014/2015

Profilová část maturitní zkoušky 2015/2016

Struktura a architektura počítačů (BI-SAP) 7

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

SYSTÉMY NAČIPU MI-SOC

Princip funkce počítače

TÉMATICKÝ OKRUH Softwarové inženýrství

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektury CISC a RISC, uplatnění v personálních počítačích

Pohled do nitra mikroprocesoru Josef Horálek

Profilová část maturitní zkoušky 2013/2014

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Profilová část maturitní zkoušky 2017/2018

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

SIMULACE ARCHITEKTURY MIKROPROCESORU 8051 SIMULATION OF THE 8051 MICROPROCESSOR ARCHITECTURE

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Strojový kód. Instrukce počítače

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

OPS Paralelní systémy, seznam pojmů, klasifikace

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Architektura procesorů PC shrnutí pojmů

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Návrh softwarových systémů - architektura softwarových systémů

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Y36SAP

Úvod do programovacích jazyků (Java)

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektura procesoru ARM

Programovací jazyk Pascal

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Příklady popisu základních obvodů ve VHDL

Procesor z pohledu programátora

Návrh. číslicových obvodů

Úvod. Programovací paradigmata

Matematika v programovacích

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

a operačních systémů

EXTRAKT z mezinárodní normy

Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Architektura počítače

Struktura a architektura počítačů (BI-SAP) 1

Program a životní cyklus programu

x86 assembler and inline assembler in GCC

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

První kroky s METEL IEC IDE

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Překladač a jeho struktura

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Počítač jako prostředek řízení. Struktura a organizace počítače

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Sdílení dat mezi podprogramy

Architektury počítačů a procesorů

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

Technické prostředky počítačové techniky

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

Architektury VLIW M. Skrbek a I. Šimeček

MSP 430F1611. Jiří Kašpar. Charakteristika

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

FPGA + mikroprocesorové jádro:

AUTOMATIZACE Úvod do programování PLC

Procesy a vlákna (Processes and Threads)

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Vstupně výstupní moduly. 13.přednáška

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Architektura Pentia úvod

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Opakování programování

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Vstupně - výstupní moduly

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

PERTINAX6 NÁSTROJ PRO PROGRAMOVÁNÍ ŘÍDICÍCH STANIC ZAT

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Jazyk symbolických adres

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Paměťový podsystém počítače

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Analýza a Návrh. Analýza

1. Dědičnost a polymorfismus

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Procesor. Procesor FPU ALU. Řadič mikrokód

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

Transkript:

Jazyky pro popis architektury Masařík Karel 1

Úvod Vestavěné systémy jsou důležité ve všech odvětvích lidské činnosti v medicíně ve formě malých řídících systémů ve formě masivně distribuovaných výpočetních systémů Ve vestavěných systémech jsou užity aplikačně specifické instrukční mikroprocesory (ASIP) jednotlivé funkce HW jsou dostupné přes aplikačně specifické instrukce vývoj ASIP - podpora softwarových nástrojů (překladač, simulátor, apod.) Technologie Systém na čipu (SoC) je použita pro ASIP (integrace procesorů, pamětí a periferií na jeden čip) 2

Úvod Cena čipu velikosti mince dnes je 150 $, do 5 let 1 $ a 1 cm 3 Cena vestavěného systému je ovlivněna: cenou výroby cenou návrhu systému a softwarových nástrojů Zabýváme se druhým hlediskem Motivace je výzkum metod pro redukci času návrhu mikroprocesoru = proces návrh probíhá v několika iteračních krocích Redukce času návrhu dosažena použitím jazyků pro popis architektury umožňují automatické generování softwarových nástrojů pro vývoj ASIP 3

Softwarové nástroje pro vývoj ASIP Nástroje pro podporu vývoje procesoru a aplikace ADL model překladač asm linker simulátor dsm debugger aplikace 4

Jazyky pro popis architektury Jazyky pro popis HW (HDL) jako VHDL jsou vhodné pro modelování a simulaci HW mají nedostatky (simulace je pomalá, neobsahují některé informace jako např. syntaxe assembleru) Nevýhody jazyků HDL překonávají ADL Tři kategorie ADL jazyky zaměřené na instrukční sadu poskytují programátorovy pohled na architekturu přes popis instrukční sady Jazyky: nml, ISDL, Valen-C a CSDL 5

Jazyky pro popis architektury Jazyky zaměřené na strukturu zaměřují se na strukturální komponenty a propojení architektury procesoru výhoda: stejný popis může být použit pro syntézu a zároveň pro generování SW nástrojů jazyky: MIMOLA, AIDL Jazyky pro popis instrukční sady a struktury zároveň přemosťují mezeru mezi předchozími jazyky odstraňují nedostatky jazyků pro popis instrukční sady, které jsou příliš hrubé pro popis např. linek zřetězení pro rychlou simulaci obsahují jazyky pro popis HW příliš mnoho detailů jazyky: FlexWare, Mdes, PEAS, RADL, EXPRESSION, a LISA 6

ADL zaměřené na instrukční sadu Jsou většinou vyvíjeny s cílem vyvinout přenositelný překladač vyšších programovatelných jazyků Obsahují informaci o instrukční sadě a sekvenci instrukcí a jejich latencí Neobsahují další informace o mikro-architektuře obsahují pouze sémantiku instrukcí nml formalismus Technische Universität Berlin Navržen jednoduchý model pro simulaci: běžící stroj spustí vlákno instrukcí které jsou udržovány v paměti a adresovány pomocí čítače instrukcí Jazyk dovoluje stručný hierarchický popis mikroprocesoru v behaviorálním stylu 7

ADL zaměřené na instrukční sadu Popis instrukční sady Operace popisují instrukce Jedna nebo více operací tvoří instrukci Dva způsoby vybudování hierarchie operací: pravidla OR a AND OR seznam určitých alternativ opn alu = add sub or and AND kombinují několik částí, vyčíslených v seznamu parametrů pravidel. Deklarace parametrů se skládá z: jména a reference na jiné pravidlo opn insn(a:src, b:src, c:alu, d:dst) 8

ADL zaměřené na instrukční sadu Dva důležité atributy popisu operací: image binární representace operace syntax assemblerovský zápis operace image= 00 :: a.image syntax= add :: d.syntax obě sekce mohou obsahovat non-terminální reference na další operace Instrukční sada je vyčíslována pomocí atributové gramatiky každý element v hierarchii má několik atributů a hodnota atributů nelistových elementů může být počítána na základě hodnot atributů potomků Hlavní nedostatek jazyka: neschopnost podporovat instrukce zřetězení a jeho kontrolní mechanismy 9

ADL zaměřené na instrukční sadu Popis struktury Uložiště procesoru jsou rozděleny do třech kategorií: RAM, registr, a tranzistorové uložiště RAM a registr jsou statická uložiště, tzn. hodnota je v nich uchovávána do doby než se přepíše novou Tranzistorové uložiště uchovává obsah po určitý počet strojových cyklů Zdroje jsou identifikovány jménem, jsou označeny typem (registr. atd.) a je definována jejich velikost let wordsize = 16, type word = int(wordsize),reg R[8, word] 10

ADL zaměřené na instrukční sadu Specifikace chování Spuštění operace kompletně určuje chování stroje Stav stroje representují registry a paměti přičemž instrukce mohou být chápány jako přechodové funkce nml specifikuje chování v atributu action action = {a=b+c;c=c+1;} Zápis přenosu dat mezi registry podobný jazyku C Zápis nedovoluje popis komplexních architektur pouze povoluje jednoduché aritmetické operace, přiřazení 11

ADL zaměřené na instrukční sadu Specifikace časování Při popisu velmi jednoduchého zřetězení musí být popsáno časování HW nml neumožňuje popsat časováni současných složitých jednotek zřetězení, superskalárních procesorů apod. Čas spotřebovaný funkční jednotkou je hromaděn a vyhodnocován uložištěm, které předcházelo této jednotce všechny výpočetní operace mají trvání 0 cyklů a pouze čtení z uložiště může být zpožděno po předcházejícím zápisu několik definovaných cyklů Zpoždění přiřazeno uložišti popisuje čas strávený v dané fázi operace reg A[16, word] delay = 1 12

ADL zaměřené na instrukční sadu Nástroje generované automaticky z nml: simulátor SIGH/SIM, generátor kódu CBC generátory kódu CHESS, a simulátor CHECKER Jazyk Sim-nML modelování řídících toků a závislosti mezi instrukcemi modelování linek zřetězení (pipeline), predikce skoků a hierarchických pamětí Nevýhody generovaný simulátor je pomalý (3000 instrukcí/s) nemožnost namodelovat některá rozšíření procesoru: explicitní instrukční paralelismus (např. u Texas Instrument TMS320C6x) 13

Strukturální ADL Důležitý kompromis při návrhu ADL je stupeň abstrakce Díky rostoucí různorodosti počítačových architektur je těžké nalézt formalismus pro popis zajímavých charakteristik všech typů mikroprocesorů Obvyklá cesta pro získání vyššího stupně obecnosti je snížení stupně abstrakce Nižší úroveň abstrakce může zachytit konkrétní strukturální informace s více detaily Abstrakce RT (Register transfer) užívána pro návrh hardwaru RT specifikuje přesun a transformace dat mezi jednotkami na bází hodinových cyklů Nevýhodou strukturálních jazyků je pomalost generovaných simulátorů 14

Strukturální ADL MIMOLA Popisný hardwarový jazyk a vyšší programovací - navržen pro návrh mikro-architektury Výhoda: jediný popis může být použit pro syntézu HW, simulaci a pro účely generovaní kódu MINOLA obsahuje dvě části Hardwarová část specifikuje mikroarchitekturu ve formě netlistu komponent, komponenty jsou definovány na úrovni RT MODULE Alu (IN i1, i2: (15:0); OUT outp:(15:0)); IN ctr: (1:0) CONBEGIN outp <- CASE ctr OF 0: i1+i2 END AFTER 0; CONEND 15

Strukturální ADL Pro kompletní netlist propojení portu musí být definováno CONNECTIONS Accu.outp->alu.i1 Instrukční sada je generována z netlistu a modulu instrukčního dekodéru Pro překladač musí být dodatečně definovány např. čítač instrukcí LOCATION_FOR_PROGRAMCOUNTER PCreg; instrukční paměť LOCATION_FOR_INSTRUCTIONS IM[0..1023]; 16

Strukturální ADL Softwarová část popisuje aplikační program v syntaxi podobné PASCALu jazyk umožňuje označit proměnné jako fyzické registry a vytvářet reference na hardwarové komponenty přes volání procedur X:=Simd(y,z); Výhoda: jazyk může být použit pro syntézu, generování simulátoru instrukční sady, generování kódu a testů Nevýhoda: díky nízké abstrakci je rychlost simulátoru malá 17

Jazyky pro popis instrukční sady a struktury Syntéza architektury a generování vývojového softwaru jsou provedeny z jednoho popisu EXPRESSION Popis procesoru je cycle based Struktury obsahuji seznam sítí komponent - např. jednotky, uložiště, porty, a propojení popisující datový přenos jako je jednotka-do-uložiště, uložiště-do-jednotky Architektura zřetězení je popsána jako uspořádání jednotek zahrnují jednotlivé jednotky zřetězení, ne popis časování jednotlivý jednotek Definice operace zahrnuje operační kód, operandy 18

Jazyky pro popis instrukční sady a struktury Každá instrukce je viděna jako seznam slotů které jsou plněny operacemi Konflikty mezi instrukcemi nejsou explicitně popsány - automatické generování reservačních tabulek - specifikující konflikty EPRESSION použit pro přenositelné vývojové nástroje jako jsou kompilátory a simulátory, generování syntetizovatelného HDL kódu je možné EXPRESSION podporuje abstrakci z cílové architektury na víceúrovňové třídy modelů procesoru Proces vývoje procesoru je podporován nashromážděnými profilovacími informacemi získanými během běhu simulace a graficky zobrazenými ve vývojových nástrojích 19

Jazyky pro popis instrukční sady a struktury Language for Instruction-Set Architecture (LISA) Dřívější práce na LISE se zaměřovali hlavně na generování kompilovaných simulátorů z popisu procesoru Dnešní verze jazyka LISA zahrnuje model instrukční sady, způsob vyjádření hierarchie operací se přiblížil zápisu nml Model LISY obsahuje deklaraci zdrojů a popis operací HW Zjednodušení modelu v ISAC (Instruction Set Architecture C) Deklarace zdrojů Deklarované zdroje udržují stav programovatelné architektury ve formě uložené datové hodnoty Sekci zdrojů definuje všechny zdroje modelu LISA jako je zřetězené zpracování, paměť, registry atd. 20

Jazyky pro popis instrukční sady a struktury RESOURCE { PROGRAM_COUNTER int pc; CONTROL_REGISTER int ir; REGISTER char areg [0..15]; PIN int status_bus; } PIPELINE pipe = { FE; DC; EX; WB }; PIPELINE_REGISTER IN pipe { int instruction_register; short program_counter; REGISTER bit[24] src1, src2, dest; } 21

Jazyky pro popis instrukční sady a struktury MEMORY char memory1 { BLOCKSIZE (8, 8); SIZE (0x800000); }; MEMORY int memory2 { BLOCKSIZE (32, 32); SIZE (0x100000); }; MEMORY_MAP default { RANGE(0x000000,0x7fffff) -> memory1 [(31..0)]; RANGE(0x800000,0x7bffff) -> memory2 [(31..2)]; }; 22

Jazyky pro popis instrukční sady a struktury Operace Operace je základní objekt v jazyku LISA Obsahuje kolekci popisů různých vlastností systému Operace je popsána v následujících sekcích Sekce DECLARE - lokální deklarace identifikátorů, skupin operací a odkazů na jiné operace Sekce CODING popisuje binární obraz instrukčního slova Sekce SYNTAX - mnemonika a jiné syntaktické komponenty jazyka assembleru jako jsou operandy a prováděcí módy Sekce BEHAVIOR a EXPRESSION - komponenty modelu chování V sekci ACTIVATION je definováno časování jiných operací vzhledem k popisované operaci 23

Jazyky pro popis instrukční sady a struktury Odkazy Skupina je lokálně deklarovaná v jedné operaci, nelze ji použít v jiné operaci odkaz aby bylo možné použít skupinu víckrát operace A group operace B operace E operace F operace C operace D 24

Jazyky pro popis instrukční sady a struktury OPERATION addr { DECLARE {LABEL position;} CODING {position=0bx[16]} SYNTAX {position=#u } EXPRESSION {position} } OPERATION load { DECLARE { GROUP dest = { rega regb }; INSTANCE addr; } CODING {0b0100101011 addr dest } SYNTAX { dest "=" "DM(" addr ")" } BEHAVIOR { dest=memory1[addr]; } } 25

Vyšší programovací jazyky jako ADL Vedle ADL je možné použít pro popis architektury HLL C++ nebo UML objektový model mikroprocesoru UML získává na významu v komunitě vestavěných systémů plynulý přechod mezi specifikací a realizací UML dovoluje jednoduché komponentové skládání, zkracuje se čas návrhu jednoduché modelovaní instrukčního paralelismu popř. souběžnosti více mikroprocesorů verifikace UML modelu pomocí formálních metod - Petriho sítě, pi-caculus Otázka: UML jako jazyk pro popis architektury? UMLISAC možné použití technologie MDA = PIM & PSM model 26

UMLISAC Použito UML 2.0 (lepší vyhlídky než UML-RT) UML se skládá z několika typů diagramů - UMLISAC = diagram tříd, stavů a rozmístnění Důležité prvky UML2 složená třída a její porty (vstupní/výstupní rozhraní) modelování zdrojů mikroprocesoru profily, popř. tzv. Tag values definování dodatečných informací Marking model = transformace modelu UMLISAC změna pohledu na model seskupování funkčních jednotek do skupin Skupina určuje kódovaní skupiny instrukcí a jejich assemblerovskou syntaxi 27

UMLISAC: model struktury Core v liw_instr v liw_instr_t v liw_instr v liw_instr_t 1 dec1:d ec oder ID:int=0x1 code(obj:v oid *):v oid code():v oid set_dest():v oid set_src2():v oid set_instr():v oid fra1 addr_t fra2 addr_t fra3 addr_t opcode aa addr_t ab addr_t ac addr_t 1 rf 1:R F size:int=4 ra int_t rb int_t wc int_t a int_t b int_t x int_t opdc ode 1 alu1: ALU ID:int=0x1 group: group_t =0x1 plus():v oid mul():v oid minus():void accu ac cu_t c ac cu_t opcode_t opcode_t 28

UMLISAC: model chování ISACOP = add [opcode==0x1] [opcode==0x02] [opcode==0x3] add plus/x=a+b sub minus/x=a-b /t=t+1 x_sub minus/accu=a-b /t=t+1 x_add d=accu plus/c+d /t=t+1 /t=t+1 29

UMLISAC: model chování INSTR set_instr[id==0x1]/codeinit(vliw_instr) set_instr[id=0x2]/codeinit(vliw_instr+sizeof(instr_t)) GROUP ISACGATTR = 2 [ginstr==0x1] OP1 code/code(opcode,true) DST1 code/code(dest) set_dest[dest==1]/fra3=1 set_dest[dest==0]/fra3=2 code/code(ginstr) REG1 code/code(fra1) set_src2/fra2=1 [ginstr==0x2] ISACGR = true REG2 code/code(fra1) set_src2/fra2=1 OP2 code/opcode(opcode,true) / DST2 set_dest/fra3=fra1 30

UMLISAC: Algoritmus vytvoření překladové gramatiky Seskup instance tříd (komponenty) podle ID skupin; urči minimální šířku datového typu pro skupinu, operační kód instrukce a identifikaci komponent Nalezni přechody které definují počátek kódování skupiny (tag ISACGR) (komponenta instrukčního dekodéru) Kódování skupiny je definováno implicitně sekvencí stavů, ve kterých se volá funkce code; assemblerovská syntaxe skupiny je definovaná explicitně definovaným pořadím stavů (pořadí definováno v ISACGATTR tagu) Vytvoř překladové gramatiky (kódovací a assemblerovská) obě gramatiky jsou LR při provádění nejpravější derivace v jedné gramatice se generuje výstupní řetězec pomocí druhé gramatiky, ve kterém se každý nonterminál vyskytuje maximálně jednou 31

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 vstup ax add bx 32

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 ax add bx 00 33

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 <fra1> <fra1> ax add bx 00 34

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 <fra1> <fra1> ax add bx 01 00 35

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 <fra1> <dest> <dest> <fra1> ax add bx 01 00 36

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 <fra1> <dest> <dest> <fra1> <op1> <op1> ax add bx 01 01 00 37

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 <fra1> <dest> <dest> <fra1> <ops> <ops> <op1> <op1> ax add bx 01 01 00 38

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 <fra1> <dest> <dest> <fra1> <fu_id> <ops> <fu_id> <ops> 0x1 <op1> <op1> ax add bx 01 01 01 00 39

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 <fra1> <ops> <dest> <ops> <dest> <fra1> <fu_id> <ops> <fu_id> <ops> 0x1 <op1> <op1> ax add bx 01 01 01 00 40

UMLISAC: Příklad překladové gramatiky <g1> -> 0x1 <fra1><ops><dest> <g1> -> 01 <ops><dest><fra1> <ops> -> <fu_id><op1> <ops> -> <fu_id><op1> <fu_id>-> 0x1 <fu_id> -> 01 <op1> -> add <op1> -> 01 <fra1> -> <fra1> -> <dest> -> <dest> -> -> ax -> 00 -> bx -> 01 <g1> <g1> 0x1 <fra1> <ops> <dest> <ops> <dest> <fra1> <fu_id> <ops> <fu_id> <ops> 0x1 <op1> <op1> ax add bx 01 01 01 01 00 41

UMLISAC: diagram rozmístnění melrin_fit_vutbr_cz pcmasarik_fit_vutbr_cz core1 «flow» core2 «flow» core3 «flow» «flow» 42

Postup návrhu mikroprocesorů Vývojář vytvoří UML model Provádí se verifikace modelu Z UML modelu se generuje ISAC model popř. rovnou model mikroarchitektury Vývojář generuje softwarové nástroje, popř. model mikroarchitektury Vytvoří se assemblerovský program Program je simulován a odladěn užitím simulátorů Program, softwarové nástroje, a model architektury jsou připraveny pro produkci 43

Fáze projektu Prototyp softwarových nástrojů byl dokončen, práce se soustřeďují na rozšiřování popisného jazyka a zdokonalování prototypů Běží návrh vývojového prostředí V budoucnu nutná podpora víceprocesorové simulace a cycle accurate simulátorů Implementovat transformace mezi různými modely nyní pokusy s podporou jazyka Python Zaměření se na verifikaci modelu 44