1 Suunnitteluautomaatio Prof. Jarmo Takala Tampereen teknillinen yliopisto Digitaali- ja tietokonetekniikan laitos
2 IC-teknologian tarjoamat mahdollisuudet IC-teknologian kehittyminen on mahdollistanut entistä kompleksisempien järjestelmien toteuttamisen yhdellä mikropiirillä Järjestelmien suunnitteluajat eivät ole pidentyneet Suunnitteluryhmien koko ei ole kasvanut Suunnittelutyön tuottavuus on kasvanut IC-piirit valmistetaan yhä pienemmillä teknologiilla Aloituskustannukset kasvaneet, saanto pienentynyt Piirin uudelleenvalmistus virheen löydyttyä on erittäin kallista Verifiointi ja testaus ovat entistä tärkeämpiä
Laitteistosuunnittelun kehittyminen log Transaction level suunnittelujen kompleksisuus IP-lohkot Behavioral level portit register-transfer-level (RTL) suunnittelutyön tuottavuus transistorit laitteistonkuvauskielet logiikkasynteesi Transaktio-tason mallit (TLM) 1980 1990 2000 SPICE Lay-Out Generation ASIC Place & Route IC-CAD logiikkasimulaatio suunnittelujen uudelleenkäyttö (IP) käyttäytymistason synteesi (behavioral-level synthesis) Digitaali- ja tietokonetekniikan laitos ECT Forum 5.9.2007
4 Suunnittelun abstraktiotasot Suunnittelutyön tuottavuutta on kasvatettu suunnittelun abstraktiotasoa nostamalla Kätketään alemman tason toteutuksen yksityiskohdat Tarjotaan alusta ylemmän tason suunnittelulle Suunnittelija pääsee keskittymään suurempiin kokonaisuuksiin Yleensä suurimmat säästöt saavutetaan keskittymällä korkeamman tason optimointeihin
5 Abstraktiotasot lay-out porttikuvaus RTL reg logiikka logiikka reg laitteistonkuvauskieli BEGIN IF (dout7 = '1' OR dout7 = 'H') THEN mw_i0c_cnt <= "0000000"; ELSIF (CLK'EVENT AND CLK='1') THEN IF (eq = '1' OR eq = 'H') THEN mw_i0c_cnt <= mw_i0n_cnt; END IF; END IF; END PROCESS I0clock_proc;
6 Abstraktiotasot Edellisissäabstraktiotaso kuvaa laitteiston rakennetta Kuvausvarsinaiseen toteutukseen on mekanisoitavissa Työkalu etsii kirjastosta sopivimmat alemman abstraktiotason toteutukset annettujen rajoitteiden rajoissa Suunnittelija kehittää rakenteen, jolla aikaansaadaan haluttulaitteiston käyttäytyminen Missä järjestyksessä operaatiot suoritetaan Montako aritmetiikkayksikköä on käytössä Miten laskentaresurssit kytketään toisiinsa Minne välitulokset talletetaan Montako rekisteriä tarvitaan jne.
7 Käyttäytymistaso Ei kuvata rakennetta vaan käyttäytyminen d = a*b; c=2*b; e=a+d; f=d+c; a b 2 r=e-f; =y+z; * * + + - r z + y kellojakso 1 2 3 4 5 6 resurssit: 1 ALU * * + + - + 1 2 3 4 5 6 resurssit: kertoja ja summain * + * + + -
8 Logiikkasynteesi I/O-käyttäytyminen algoritmi teknologiakirjasto teknologiakirjasto Käyttäytymistason synteesi RTL-kuvaus RTL-synteesi Porttitason kuvaus I/O-liitynnän generointi operaatioiden vuoronnus datapolun ja kontrollin generointi analyysi Prosessissa pyritään löytämään ratkaisu, joka täyttää käyttäjän antamat rajoitteet: -pinta-ala, -suoritusaika, -kellotaajuus, -viive, -jne.
9 Suunnitteluavaruuden kartoitus Mahdollisia ratkaisuja on yleensä suuri määrä ja kaikkien ratkaisujen läpikäyminen on mahdotonta Käyttäytymistason suunnittelulla pyritään hakemaan mahdollisia laitteistoratkaisuja suoritusaika Pareto -käyrä (mahdollisten ratkaisujen avaruus) löydetty laitteistoratkaisu kustannus
10 Suunnitteluavaruuden kartoitus Edelleenkään ei ole olemassa työkalua, josta kustannustehokas toteutus saadaan nappia painamalla Ongelmana suunnitteluavaruuden laajuus Kaikkia mahdollisia ratkaisuja on mahdoton käydä läpi Automaattinen kartoitus perustuu tiettyihin sääntöihin pyrkii optimiin tietyn kaavan mukaan voi juuttua paikalliseen optimiin Suunnittelijan on pystyttävä tarjoamaan työkalulle riittävästi taustatietoa, jotta kustannustehokas löytyy Työkalun toiminta on ymmärrettävä, jotta prosessia osataan ohjataoikein
11 Suunnittelujen uudelleenkäyttö Yksinkertainen tapa kasvattaa suunnittelutyön tuottavuutta on käyttää uudelleen vanhoja suunnitteluja Liiketoimintamalli Lopputuotteena ei ole integroitu piiri tai layout-suunnittelu Kehitetään rakennelohkoja käytettäväksi asiakasyritysten suunnitteluissa Intellectual Property (IP) lohkot Hankaluutena IP-lohkon liityntä Ei ole olemassa standardi-liityntää Lohko pitäisi pystyä liittämään erilaisiin järjestelmiin helposti ja tehokkaasti
12 Sulautetut järjestelmät Perinteisesti suunnitteluautomaatio on keskittynyt puhtaan laitteiston suunnitteluun Ohjelmiston osuus toteutuksista on jatkuvasti noussut Joustavuus IP-lohkoissausein mukana prosessori Paras suorituskyky ja energiatehokkuus saavutetaan kuitenkin sovellukseen kehitetyllä laitteistolla laskentarakenteen optimointi tiettyyn sovellukseen tai sovelluskenttään on suhteellisen helppo tehtävä nykypäivänä, ongelmana on datapolun ohjaus Kontrollin tilojen määrä on kasvanut eponentiaalisesti Tilakoneohjaus on jäykkä Kontrolli toteutettu usein ohjelmallisesti (firmware)
13 Sulautetut järjestelmät Prosessori muisti muisti Prosessori (kontrolli) muisti Prosessori (kontrolli) muisti Prosessori (kontrolli) sovelluskohtainen laitteisto muisti (datapolku) IP-lohko sovelluskohtainen laitteisto muisti (datapolku) IP-lohko sovelluskohtainen laitteisto muisti (datapolku) IP-lohko -muistin fragmentoituminen, muistin pinta-alan kasvu -prosessoreiden määrä kasvaa
14 Sulautetut järjestelmät Prosessorin datapolun ulkopuolisia laitteistokiihdyttimiä ohjataan ohjelmiston alaisuudessa Ohjelmiston kehitystyökalut tuntevat ainoastaan prosessorin datapolun Ulkoinen laitteiston ohjauskoodi on kehitettävä manuaalisesti Laitteisto-ohjelmisto-integraatio vaatii parannusta
15 HW-SW SW-integraatio Järjestelmät koostuvat ohjelmistolla ohjatusta laitteistolohkoista Perinteisesti kaksi mekanismia laitteiston käyttämiseen ohjelman alaisuudessa ❶Käskykannan laajennukset Kovon suoritusaika korkeintaan muutama kellojakso Rinnakkaista suoritusta ei yleensä tueta Muut resurssit odottavat kiihdyttimen valmistumista Voi johtaa eksoottisiin muistiorganisaatioihin ❷Keskeytykset Kovon suoritusaika useita tuhansia kellojaksoja Kovon jakaminen usean tehtävän kesken käytännössä mahdotonta Keskeytyspalvelu voi olla pitkä Siirretään suuria datalohkoja Tehtävän vaihto lisää käyttöjärjestelmän kuormaa T1 tehtävän vaihto T2 sta @r1 ISE-HW lda @r1 mul b Keskeytys ja tehtävän vaihto T1 aloita HW HW laskenta HW valmis
16 Sulautetut järjestelmät Applications API 1 Monolithic Operating System API N HAL Ohjelmistoarkkitehtuurit koostuvat kerroksista Aiheuttavat ylimääräistä kuormaa Tehokas laitteistoresurssien käyttö vaatii standardirajapintojen ohittamista Ohjelmakoodi fragmentointuu Cache-muistien hyöty vähenee
17 Sulautetun järjestelmän abstraktiotasot suorituskykymallit säikeet tehtävät prosessit task-level models syntesoitavat VHDL-ohjelmat VHDL-ohjelmat C-ohjelmat SystemC-ohjelmat C++-ohjelmat Java-ohjelmat Java byte code -ohjelmat programs standardisolusuunnittelut FPGAkonfiguraatiot JVM eecutables FPGA-piirit ASIC-piirit prosessorit silicon chips
18 Haasteita Abstraktiotasojen määrä on kasvanut huomattavasti Alemman tason toteutuksen yksityiskohdat kätkeytyvät tehokkaasti Kustannustehokkaan toteutuksen löytämiseen tarvitaan tietoa laitteiston ominaisuuksista, mutta se ei ole käytettävissä ylemmillä abstraktiotasoilla Erityisesti tärkeä reaaliaikajärjestelmissä on aika laitteisto tarjoaa tarkan ajoituksen, mutta ohjelmistokerroksissa ajoitustieto hävitetään Abstraktiotason nosto ei ole enää ratkaisu Tarvitaan tehokkaampia menetelmiä ohjelmiston ja laitteiston integroimiseksi
19 Haasteita Rinnakkaisuus järjestelmissä lisääntyy Käskytaso, säikeet, tehtävät, prosessorit jne. Rinnakkaisuus on saatava paremmin hallintaan, erityisesti ohjelmiston kehityksessä Arvioiden mukaan alle 10nm teknologia ollaan ottamassa käyttöön v. 2017 CMOS-teknologian rajat alkavat tulla vastaan Käyttöön tulee uusia teknologioita, jotka vaativat uudenlaisia suunnittelumenetelmiä Suunnittelijaltatullaan jatkossakin vaatimaan asiantuntemusta Tehokas toteutus ei tule jatkossakaan nappia painamalla