JUSSI NIEMINEN Syntesoituva liikennegeneraattori piirinsisäisten tiedonsiirtoverkkojen testaukseen ja suorituskykyvertailuun

Koko: px
Aloita esitys sivulta:

Download "JUSSI NIEMINEN Syntesoituva liikennegeneraattori piirinsisäisten tiedonsiirtoverkkojen testaukseen ja suorituskykyvertailuun"

Transkriptio

1 JUSSI NIEMINEN Syntesoituva liikennegeneraattori piirinsisäisten tiedonsiirtoverkkojen testaukseen ja suorituskykyvertailuun Kandidaatintyö Tarkastaja: Erno Salminen

2 II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori piirinsisäisten tiedonsiirtoverkkojen testaukseen ja suorituskykyvertailuun Kandidaatintyö, 26 sivua Tammikuu 2010 Pääaine: Digitaali- ja tietokonetekniikka Tarkastaja: Erno Salminen Avainsanat: liikennegeneraattori Liikennegeneraattori on piirinsisäisten tiedonsiirtoverkkojen tutkimiseen tarkoitettu, testiliikennettä verkkoon luova työkalu. Tässä kandidaatintyössä esitellään Tampereen teknillisen yliopiston Tietokonetekniikan laitoksella kehitetty syntesoituva, dynaamisesti konguroituva ja verkossa tapahtuvaan liikenteeseen reagoiva liikennegeneraattori, jonka ensisijainen käyttökohde on todellisten sovellusten aikaansaaman verkkoliikenteen mallintaminen ja näin ollen erilaisten verkkoratkaisujen sopivuuden vertailu sovelluksen näkökulmasta. Työssä esitellään liikennegeneraattorin toimintaperiaate ja osoitetaan esimerkkien avulla sen soveltuvuus verkkojen vertailuun. Lisäksi arvioidaan generaattoreiden käyttöön kuluvaa aikaa sekä etuja ja haittoja verrattuna todellisen sovelluksen käyttämiseen. Työssä pohditaan myös generaattorin tämänhetkisen kehitysversion heikkouksia ja suuntaviivoja tulevaa kehitysta varten.

3 III SISÄLLYS 1. Johdanto Liikennegeneraattoreita ja niiden ominaisuuksia Syntesoituvan liikennegeneraattorin syvin olemus Generaattoreiden luoma liikenne Sanojen rakenne Lähetyksen rakenne Polkumittaus Liipaisimet ja ajastimet Erikoisominaisuudet Riippuvuudet Aktivoitumisen estäminen Liikennegeneraattoreiden keräämä mittausdata Järjestelmän kongurointi ja tulosten saaminen Dynaaminen kongurointi Tulosten raportointi Käyttöesimerkkejä MPEG-4-videopakkauksen mallintaminen liikennegeneraattoreilla Sovellusmallin luominen ja vaadittava työmäärä Esimerkin vaatimat erikoisrakenteet Tiedonsiirtoverkkojen vertailu liikennegeneraattoreiden avulla Yhteenveto Tulevia kehittämiskohteita Lähteet

4 IV TERMIT JA SYMBOLIT Termi Selitys Ajastin Liikennegeneraattorin liikennettä luova elementti, käynnistää uuden lähetyksen aina tietyn jaksonajan välein. Dynaamien kongurointi Liikennegeneraattoreiden toiminnan kongurointi ajonaikaisesti ilman uutta synteesikertaa. FPGA-piiri Field Programmable Gate Array, uudelleenohjelmoitava logiikkapiiri. JTAG Joint Test Action Group, kommunikointimenetelmä mikropiirien testausta varten. Latenssi Viive jonkin tietyn toiminnan alusta sen päättymiseen. Tässä yhteydessä viive lähetyksen lähtöhetkestä perille saapumiseen. LGPL Lesser General Public License, avoimen lähdekoodin lisenssi [13]. Liipaisin Liikennegeneraattorin liikennettä luova elementti, käynnistää uuden lähetyksen muualta saapuneen lähetyksen vastatessa asetettuja liipaisuehtoja. MPEG-4 Moving Picure Experts Group -ryhmän kehittämä videonpakkausmenetelmä. NoC Network-on-Chip, piirinsisäinen tiedonsiirtoverkko. SoC System-on-Chip, useista prosessointiyksiköistä koostuva järjestelmä yksittäisellä mikropiirillä. Synteesi, syntesoiminen Laitteistonkuvauskielellä kuvatun järjestelmän muuttaminen fysikaalista piiriä kuvaavaksi porttilistaukseksi ja tarvittaessa FPGA-piirin ohjelmointitiedostoksi. TG Trac Generator, liikennegeneraattori. Topologia Verkon rakenne, esimerkiksi väylä, rengas tai mesh-verkko. UART Universal Asynchronous Receiver Transmitter, sarjaliikennepiiri.

5 1 1. JOHDANTO Yksittäisille piireille rakennettavista järjestelmistä (System-on-Chip, SoC) tulee vuosi vuodelta monipuolisempia. Samaan aikaan, kun järjestelmien monimutkaisuus kasvaa, kiristyvät sekä tehokkuus-, energiankulutus-, että suunnitteluaikavaatimukset. Tavoitteena onkin pystyä luomaan järjestelmiä yhdistelemällä helposti erilaisia komponentteja standardirajapintojen kautta. Ongelmia tuovat lisäksi pitkät signaalivedot, jotka rajoittavat kellotaajuutta ja haittaavat esimerkiksi järjestelmän jakamista eri kelloalueisiin. Perinteisesti komponenttien välinen kommunikointi on hoidettu jaetun väylän avulla, mutta komponenttien määrän lisääntyessä muutamasta muutamiin kymmeniin ei yksittäinen väylä enää riitä kaiken tiedon välittämiseen. Piirinsisäisten tiedonsiirtoverkkojen (Network-on-Chip, NoC) onkin tarkoitus ratkoa näitä ongelmia. [1] Piirinsisäiset verkot ovat suhteellisen uusi tutkimuskohde, mutta niistä on kuitenkin olemassa jo lukuisia erilaisia versioita, jotka eroavat toisistaan muun muassa topologian ja reititysalgoritmien perusteella. Eri verkot soveltuvat erilaisiin käyttökohteisiin, ja täten on mahdotonta nimetä yksittäistä parasta ratkaisua. Runsaasti tutkimusta on tehty, mutta tuloksien vertailtavuus on muun muassa puutteellisen dokumentaation takia huono. Verkkojen kattava vertailu onkin yksi tämän hetken tutkimushaasteista. [11] Digitaalijärjestelmien kompleksisuus ja laajuus tekevät tarkasta simuloinnista raskasta, minkä johdosta kattavat testiajot ovat käytännössä liian hitaita. Yksi vaihtoehto on ajaa järjestelmiä syntesoituna FPGA-piirille (Field Programmable Gate Array). [12] FPGA-piirillä järjestelmää ajettaessa menetetään simulaation paras ominaisuus, hyvä näkyvyys järjestelmän sisälle. Verkon eri osa-alueiden suorituskyvystä ja mahdollisista pullonkauloista on mahdollista saada hyvin rajattua tietoa, varsinkin jos ajettavana on sovellus, jossa ei ole ylimääräisiä, sisäisestä tilasta ja toiminnasta kertovia testirakenteita. Suoritusnopeus on kuitenkin joko sama, tai ainakin hyvin lähellä lopullista järjestelmän tavoitenopeutta, mikä helpottaa pitkienkin ajojen suorittamista. Todellisen sovelluksen käyttäminen pelkästään verkkoratkaisujen testaamiseen ei kuitenkaan aina ole tarkoituksenmukaista. Sovelluksen toiminnalliset lohkot voidaankin korvata liikennegeneraattoreilla, jotka eivät suorita sovellukseen liittyvää

6 1. Johdanto 2 oikeaa laskentaa. Ne luovat vain verkkoon todellista sovellusta mahdollisimman hyvin vastaavaa liikennettä, jonka perusteella voidaan vertailla eri verkkoratkaisujen tehokkuutta. Liikennegeneraattoreiden toteutuksesta riippuen niitä voidaan käyttää myös verkkojen testaamiseen kehitysvaiheessa. Tässä kandidaatintyössä esitellään liikennegeneraattori, joka on suunniteltu ja toteutettu Tampereen teknillisen yliopiston tietokonetekniikan laitoksella kesällä 2009 kirjoittajan ja toisen tutkimusapulaisen, Antti Alhosen, toimesta. Tämän liikennegeneraattorin ensisijainen tavoite on selkeästi nopeuttaa todellisten sovellusten suorituskyvyn ja sovelluksiin tehtävien muutosten suorituskykyvaikutusten tutkimista verkon näkökulmasta generaattoreilla luotavan mallin avulla. Tavoitteen toteutumiseksi näiden liikennegeneraattoreiden tulee olla syntesoituvia, ajonaikaisesti konguroitavia sekä kykeneviä mallintamaan monimutkaisiakin liikennerakenteita. Liikennegeneraattoreiden suunnittelutyössä Antti Alhosen vastuulla on ollut järjestelmän konguroinnin sekä tulosten tallentamisen ja raportoinnin toteuttaminen. Tämän kandidaatintyön painopiste on kirjoittajan osuudessa, joka on ollut liikennettä luovan toiminnallisuuden suunnittelu ja toteutus. Työssä keskitytään suunnitteluratkaisuihin ja generaattoreiden käyttömahdollisuuksia esitteleviin esimerkkeihin. Varsinaiset käyttöohjeet ja toteutusyksityiskohdat selviävät paremmin generaattoreiden dokumentaatiosta [8]. Kandidaatintyön rakenne on seuraavanlainen. Kappaleessa 2 esitellään ensin liikennegeneraattoreiden yleisiä ominaisuuksia ja muualla tehtyjä ratkaisuja, jonka jälkeen kappaleessa 3 käydään läpi tässä työssä esiteltävän liikennegeneraattorin ominaisuuksia tarkemmin. Kappale 4 esittelee generaattoireiden luomaa liikennettä ja kappaleessa 5 kerrotaan miten generaattorit konguroidaan ja minkälaisia mittaustuloksia niiden avulla on mahdollista saada. Kappale 6 sisältää käytännön esimerkkejä kehitetyn liikennegeneraattorin käyttämisestä verkkojen tutkimisessa. Esimerkkitapauksena on MPEG-4-videopakkaussovelluksen mallintaminen sekä erilaisten verkkoratkaisujen vertailu liikennegeneraattoreiden avulla. Lopuksi kappaleessa 7 tehdään yhteenveto esitellystä liikennegeneraattorista ja sen sopivuudesta erilaisiin käyttökohteisiin sekä jatkokehityksen suuntaviivoja.

7 3 2. LIIKENNEGENERAATTOREITA JA NIIDEN OMINAISUUKSIA Lukuisia erilaisia liikennegeneraattoreita käytetään apuna tutkittaessa tiedonsiirtoverkkojen toimintaa ja suorituskykyä. Yksinkertaisimmillaan generaattori lähettää tietyn määrän sanoja verkkoon tietyin aikavälein. Kattavampien testien mahdollistamiseksi generaattoreista on pyritty tekemään entistä muunneltavampia. Yleisiä muokattavia parametreja ovat lähetyksen määrä, pituus ja lähetysten välinen aika. Lähetysten generoimiseen voidaan käyttää myös tilastollisia menetelmiä, jolloin liikenteen määrä ja ominaisuudet seuraavat erilaisia jakaumia [5]. Tasaista liikennettä luovat generaattorit sopivat yleiseen verkkojen testaamiseen, mutta kun tavoitteena on mallintaa jotain tiettyä sovellusta ja selvittää sille parhaiten sopiva verkkoratkaisu, tulee liikennegeneraattorin osata myös reagoida verkon tapahtumiin. Tällainen liikennegeneraattori voi olla esimerkiksi erityisesti liikenteen generointia varten tehty, hyvin pienellä käskykannalla varustettu prosessori, jonka suorittama ohjelma pohjaa todellisesta sovelluksesta mitattuun liikennemalliin [7]. Verkon liikenteeseen reagoivia generaattoreita on tehty useampiakin, kuten [3] ja [6], mutta ne toimivat toistaiseksi ainoastaan simulaatiossa. Toisaalta simulaatiossa ei ole FPGA-piiriin verrattuna ongelmaa rajallisista resursseista, jolloin pelkkään simulointiin tarkoitettujen liikennegeneraattoreiden ominaisuudet voivat olla huomattavan monipuoliset. Syntesoituvia liikennegeneraattoreita on tehty esimerkiksi Kiinan Hefein teknillisessä yliopistossa. OCTG (On-line Congurable Trac Generator) on liikennegeneraattori, joka voidaan konguroida suoraan piirillä käyttäen JTAG-rajapintaa (Joint Test Action Group). OCTG on myös mahdollista konguroida kesken ajon verkon toiminnan häiriintymättä. Se on kuitenkin tyypiltään tasaista liikennettä luova generaattori: se ei osaa reagoida verkon tapahtumiin. [2] Tässä kandidaatintyössä esitelty liikennegeneraattori yhdistääkin kolme edellä mainittua tärkeää ominaisuutta. Sen reagoivuus saapuvaan liikenteeseen mahdollistaa todellisten sovellusten mallintamisen, ja se voidaan syntesoida FPGA-laudalle pitkiä ajoja varten. Lisäksi järjestelmän toiminnallisuus voidaan konguroida dynaamisesti, jolloin minimoidaan tarve uusille synteesikerroille.

8 4 3. SYNTESOITUVAN LIIKENNEGENERAATTORIN SYVIN OLEMUS Tässä kandidaatintyössä esiteltävä syntesoituva liikennegeneraattori (engl. Trac Generator, TG) helpottaa FPGA-alustalla tapahtuvaa vertailua erilaisten piirinsisäisten tiedonsiirtoverkkoratkaisujen sopivuudesta sovelluksille. Sen sijaan, että jouduttaisiin syntesoimaan FPGA-laudalle todellinen järjestelmä prosessoreineen ja kiihdytinlohkoineen, voidaan sovelluksen verkkoliikennettä mallintaa käyttäen liikennegeneraattoreita. Jokaista komponenttia (prosessori, muisti, kiihdytinlohko ja niin edelleen) kohden syntesoidaan kuvan 3.1 mukaisesti yksi liikennegeneraattori, jonka toiminta määritellään dynaamisesti PC:n ja UART-liitynnän (Universal Asynchronous Receiver Transmitter) avulla vastaamaan kyseistä komponenttia. Yksi generaattoreista toimii järjestelmässä niin sanottuna isäntänä (engl. master), joka kommunikoi PC:n kanssa ja vastaa piirillä tapahtuvasta konguroinnista sekä mittaustulosten keräämisestä. Varsinaisten mittausten aikana isäntägeneraattorin toiminta ei poikkea muista. Jos tarkoituksena on yksinkertaisesti etsiä valmiille sovellukselle paras verkkoratkaisu, voi liikennegeneraattoreiden sijaan olla parempi käyttää sovellusta itseään. Tällöin sovellus tulisi olla suhteellisen helppo kytkeä eri verkkoihin ja siitä tulisi saada tarpeeksi tietoa suorituskyvystä. Liikennegeneraattoreiden kätevyys tulee esille esimerkiksi skaalautuvien sovellusten kohdalla. Sovelluksesta voi olla olemassa versio, joka käyttää yhtä prosessoria ja yhtä kiihdytintä. Nyt jos halutaan testata verkkojen toimivuutta vaikkapa kahdella prosessorilla ja kiihdyttimellä, on liikennegeneraattorimallin luominen usein nopeampaa kuin todellisen sovelluksen muuttaminen. Dynaaminen uudelleenkongurointi nopeuttaa liikennegeneraattoreiden käyttöä huomattavasti. Päinvastoin kuin simuloinnissa, FPGA-alustaa käytettäessä järjestelmän valmistelu eli syntesointi vie huomattavan pitkään (kymmeniä minuutteja), mutta järjestelmän ajaminen on nopeaa (kellotaajuus voi olla yli 50 MHz). Näin ollen tarvittavien synteesikertojen määrä on pyritty minimoimaan, ja synteesissä määritelläänkin vain käytettävissä olevat resurssit. Varsinainen toiminnallisuus syötetään ajonaikana UART-liitynnän kautta. Liikennegeneraattoreiden konguroinnista kerrotaan lisää kappaleessa 5.1. Vaikka nämä liikennegeneraattorit on suunniteltu pääasiassa syntesoituviksi, voi-

9 3. Syntesoituvan liikennegeneraattorin syvin olemus 5 Tehtävä 1 Tehtävä 3 Sovellus Tehtävä 2 Tehtävä 4 Tehtävä 5... PC Sovellus mallinnettuna liikennegeneraattoreilla UART Tehtävät sijoiteltuna arkkitehtuuriin CPU Muisti... TG 0 (master) TG 1... NoC NoC Kiihdytin CPU 2... TG 2 TG 3... Kuva 3.1: Liikennegeneraattoreiden käyttö todellisen sovelluksen mallintamiseen. daan niitä käyttää myös simulaatiossa. Tällöin UART-liitynnästä vastaava lohko tulee korvata simulaatioversiolla, joka lukee generaattoreiden määrittelyt suoraan tiedostosta. Syntesoituvuus tuo mukanaan rajoitteita lohkojen kuluttamista resursseista, joten generaattoreiden suunnittelussa on jouduttu tasapainottelemaan ominaisuuksien ja tallennuskapasiteetin sekä käytettyjen resurssien välillä. Näin ollen pelkkää simulointia varten saattaa olla järkevämpää käyttää vain simulaatiota varten tehtyjä liikennegeneraattoreita, kuten [7], [6] tai [3]. 3.1 Generaattoreiden luoma liikenne Liikennegeneraattorit siis mallintavat todellisten järjestelmien viestiliikennettä tiedonsiirtoverkoissa. Lähetetyt sanat sisältävät tietoja, joilla jokainen verkossa kulkeva sana voidaan tietyn aikaikkunan sisällä liittää yksiselitteisesti tiettyyn lähetykseen. Tämä on erityisen hyödyllistä keskeneräisten verkkojen testaamisessa, jos verkolla on vaikkapa silloin tällöin tapana reitittää paketteja väärään osoitteeseen. Sanat sisältävät lisäksi kenttiä, joiden perusteella liikennegeneraattorit laskevat eri

10 3. Syntesoituvan liikennegeneraattorin syvin olemus 6 yhteyksien välillä liikkunutta datamäärää sekä lähetysten viiveitä Sanojen rakenne Yksittäisen sanan rakenne on esitetty kuvassa 3.2. Kaikille sanoille yhteisiä datakenttiä ovat kohde- ja lähdeosoitteet ja sanan tyyppikenttä. Kuormakenttien sisältämä tieto vaihtelee eri sanatyyppien välillä. Erityyppisiä sanoja on neljä, aloitussana, datasana, polkumittaussana sekä lopetussana. Sanan rakenne: , , , Sanan Kohdeosoite Lähdeosoite Kuorma tyyppi Kuva 3.2: Yksittäisen sanan rakenne liikennegeneraattoreiden välisessä liikenteessä Lähetyksen rakenne Kuvassa 3.3 esitetään yksittäisen lähetyksen rakentuminen eri tyyppisistä sanoista. Jokainen lähetys alkaa aloitussanalla, jonka kuormakenttä sisältää lähetyshetken aikaleiman. Aikaleimaa käytetään lähetyksen viiveen mittaamiseen: vastaanottava liikennegeneraattori vähentää aikaleiman arvon kellojaksolaskuristaan ja merkitsee lähetyksen keston muistiin. Myös jokaisen lähetyksen päättävän lopetussanan mukana kulkee viiveen mittaamiseen käytettävä aikaleima. Järjestysnumero: 0 Lähetyksen rakenne: Kohdeosoite Lähdeosoite Aloitus Aikaleima n-3 Kohdeosoite Lähdeosoite Data Datatyyppi Kohdeosoite Lähdeosoite Data Datatyyppi Kohdeosoite Lähdeosoite Data Datatyyppi Datasanan järjestysnumero Datasanan järjestysnumero Datasanan järjestysnumero n-2 n-1 Kohdeosoite Lähdeosoite Polku Suoritusketjun alkuaika Kohdeosoite Lähdeosoite Lopetus Aikaleima Kuva 3.3: Yksittäisen lähetyksen rakenne liikennegeneraattoreiden välisessä liikenteessä. Jos polun mittaamiseen (ks. kohta 3.1.3) käytettävää sanaa ei oteta huomioon, kaikki aloitus- ja lopetussanan välillä kulkevat sanat ovat datasanoja. Datasanat sisältävät datatyyppikentän sekä juoksevan numeron. Datatyyppikenttää käytetään

11 3. Syntesoituvan liikennegeneraattorin syvin olemus 7 lähetysten erittelemiseen ja uusien lähetysten aloittamiseen saadun datan perusteella. Datatyyppikentän käytöstä kerrotaan tarkemmin kohdassa 3.2. Datasanojen juoksevaa numerointia käytetään varmistamaan, että lähetetty data saapuu oikeassa järjestyksessä, ja ettei yhtään sanaa ole hukattu matkalla. Tämä on erityisen hyödyllistä testattaessa keskeneräisiä verkkoja, ja liikennegeneraattorit raportoivatkin suorituskykymittausten lisäksi sattuneiden tiedonsiirtovirheiden määrän Polkumittaus Joissakin sovelluksissa suoritus voi kulkea selkeää polkua pitkin: yksi prosessointielementti laskee jotain, lähettää tuloksensa eteenpäin seuraavalle, joka sekin laskee oman osuutensa ja lähettää tulokset jälleen eteenpäin. Tällaisten suoritusketjujen kokonaisviivettä voidaan mitata liikennegeneraattoreilla polkumittauspakettien avulla. Polku määritellään järjestelmän kongurointivaiheessa, ja kaikkiin kyseistä polkua kulkeviin lähetyksiin lisätään polkumittaussana. Kyseinen sana sisältää aikaleiman koko suoritusketjun alkuajankohdasta. Polkusanan vastaanottaessaan generaattori merkitsee ylös normaalin yhteysväliviiveen lisäksi viiveen koko suoritusketjun alusta. 3.2 Liipaisimet ja ajastimet Kaikki liikennegeneraattoreiden toiminnallisuus perustuu liipaisimiin ja ajastimiin. Liipaisimet aktivoituvat, kun generaattorille saapuva data vastaa liipaisimelle asetettuja parametreja. Ajastimille puolestaan on asetettu tietty viive, jonka kuluttua ne aktivoituvat. Aktivoituessaan molemmat odottavat määritellyn ajan mallintaen prosessointiaikaa, ja käynnistävät sitten uuden lähetyksen. Kuvan 3.4 esimerkissä ensimmäisen liikennegeneraattorin ajastin käynnistää lähetyksen, joka saa toisen generaattorin sisältämän liipaisimen aktivoitumaan ja käynnistämään oman lähetyksensä. Liipasimen aktivoituminen tapahtuu joko saapuvan siirron lähettäjän, datatyyppikentän tai molempien perusteella. Käyttäjän liikennemallia luodessaan vapaasti valitsemilla datatyyppikentän arvoilla pyritään erottelemaan mallinnettavan sovelluksen eri lähetyksiä toisistaan. Todellisessa sovelluksessa kaksi prosessoria voivat lähettää toisilleen erilaisia lähetyksiä, joiden jälkeinen toiminta eroaa lähetyksestä riippuen. Liikennegeneraattoreissa kyseistä toimintaa mallinnetaan useammalla liipaisimella, jotka ovat herkkiä samalle lähettäjän osoitteelle mutta eri datatyyppien arvoille.

12 3. Syntesoituvan liikennegeneraattorin syvin olemus 8 TG 1 A1 Ajastin 1: - odotusaika: prosessointiaika: 10 - kohde: TG TG 2 L1 Liipaisin 1: - moodi: osoiteherkkä - aktivoiva osoite: TG 1 - prosessointiaika: Kellojaksoja kulunut: 500 Ajastin 1 aktivoituu, generaattori 1 alkaa prosessoida. TG 1 TG 2 A1! L1 Kellojaksoja kulunut: 510 Generaattori 1 käynnistää lähetyksen. TG 1 TG 2 A1! L1 Kellojaksoja kulunut: latenssi Generaattorin 2 liipaisin aktivoituu. TG 1 TG 2 A1 L1! Kellojaksoja kulunut: latenssi + 20 Generaattori 2 käynnistää lähetyksen. TG 1 TG 2 A1 L1! Kuva 3.4: Esimerkki ajastinten ja liipaisimien toiminnasta Ajastimet voivat mallintaa tasavälein lähetettävää dataa, kuten ympäristöstä tulevaa syötettä (esimerkiksi kameralta saatava videokuva tai käyttäjän painallukset), mutta eniten niistä on hyötyä verkkojen yleistä toimivuutta tai suorituskykyä testattessa. Ajastimilla voi luoda verkkoon tasaista kuormaa, ja viivearvoa tasaisesti pienentämällä selviää esimerkiksi testattavan verkon saturaatiopiste, eli kuorman määrä, joka jälkeen verkko ei enää kykene välittämään yhtään enempää dataa. Verkkojen vertailusta ajastimien avulla on esimerkki kappaleessa 6.2. Kaikki liipaisimet ja ajastimet sisältävät parametreja, joiden perusteella liikennegeneraattori luo uuden lähetyksen liipaisimen tai ajastimen aktivoituessa. Näihin parametreihin kuuluvat lähetyksen pituus, kohde, prosessointiaikaa mallintava odotusaika sekä osiossa esiteltävät riippuvuudet. Jos lähetyksen pituus asetetaan nollaksi, mitään ei lähetetä, mutta mahdolliset muut toiminnot suoritetaan. Pituus voidaan myös määritellä satunnaiseksi, jolloin liikennegeneraattori arpoo pituuden synteesissä määritellyltä vaihteluväliltä annetun keskiarvopituuden ympäriltä. Myös kohde voi olla satunnainen, ja liipaisimen voi myös konguroida vastaamaan sille lähettäjälle, jolta liipaisimen aktivoinut lähetys saapui.

13 3. Syntesoituvan liikennegeneraattorin syvin olemus Erikoisominaisuudet Todellisten sovellusten mallinnus vaatii pelkkiä lähettäjän osoitteeseen ja lähetystyyppiin perustuvia liipaisimia monimutkaisempia rakenteita. Jokin suoritinlohko voi esimerkiksi vaatia dataa kahdelta muulta lohkolta, ennen kuin se voi suorittaa oman osuutensa laskennasta. Toisaalta esimerkiksi videopakkauksessa järjestelmä saattaa suorittaa välillä eräänlaista silmukkaa, kun yksittäisen kuvan makrolohkoja lähetetään yksi toisensa jälkeen kiihdyttimille laskettavaksi (ks. kappale 6.1). Liikennegeneraattoreiden suunnittelussa on pyritty muutamalla erikoisominaisuudella mahdollistamaan monimutkaistenkin järjestelmien suorituksen mallintaminen Riippuvuudet Liikennegeneraattorit sisältävät jaettuja riippuvuuslippuja, joita sekä liipaisimet että ajastimet voivat asettaa ja joista ne voivat olla riippuvaisia. Jos liipaisin tai ajastin on riippuvainen lipusta, jota ei ole vielä asetettu, se voi konguraatiosta riippuen joko hylätä aiotun toiminnan tai jäädä odottamaan, että lippu asetetaan. Kuvassa 3.5 on esimerkki riippuvuuslippujen toiminnasta. Riippuvuusliput ratkaisevat muun muassa kahdesta eri lähetyksestä riippuvan tapahtuman ongelman. Tällöin generaattori sisältää liipaisimet molemmille odotetuille lähetyksille. Toinen liipaisimista asettaa riippuvuuslipun, ja toinen ei aktivoidu ennen, kuin lippu on asetettu. Haluttu käynnistettävä lähetys on konguroitu ainoastaan lipusta riippuvaiselle liipaisimelle. Nyt jos lipusta riippuvainen liipaisin aktivoituu ensin, se jää kuvasta 3.5 nähtävällä tavalla odottamaan lipun asettavan liipaisimen aktivoitumista. Jos puolestaan lipun asettava liipaisin aktivoituu ensin, pystyy lipusta riippuvainen liipaisin käynnistämään halutun lähetyksen välittömästi aktivoiduttuaan Aktivoitumisen estäminen Aktivoitumisen estämistä on kahdenlaista. Liipaisimen tai ajastimen voi asettaa estämään toisten liipaisimien ja ajastimien aktivoituminen samalla kellojaksolla oman aktivoitumisensa kanssa, tai liipaisimen voi asettaa aktivoitumaan vasta, kun tietty määrä sen parametreja vastaavia lähetyksiä on vastaanotettu. Nämä kaksi ominaisuutta yhdistämällä saadaan aikaiseksi kuvan 3.6 mukaisia silmukkamaisia rakenteita. Kuvassa liikennegeneraattori 1 sisältää kaksi liipaisinta, jotka reagoivat generaattorilta 3 tulevaan lähetykseen. Toinen aktivoituu (tai käytännössä yrittää aktivoitua) aina käynnistäen lähetyksen generaattorille 2, kun taas toinen aktivoituu joka toinen kerta käynnistäen lähetyksen generaattorille 4. Jälkimmäinen liipaisin on lisäksi asetettu estämään muiden aktivoituminen, jolloin

14 3. Syntesoituvan liikennegeneraattorin syvin olemus 10 Liipaisin 1: - Aktivoituu lähdeosoitteesta 1 - Asettaa aktivoituessaan riippuvuuslipun Liipaisin 2: - Aktivoituu lähdeosoitteesta 2 - Riippuvainen riippuvuuslipusta 1 - Aktivoiduttuaan jää odottamaan lippua -... TG 3 L1 R1 L2 Riippuvuuslippu 1 Lähetys osoitteesta 2 Liipaisin 2 aktivoituu mutta jää odottamaan, koska riippuvuuslippua 1 ei ole asetettu. TG 3 L1 L2! R1 Lähetys osoitteesta 1 Liipaisin 1 aktivoituu, prosessoi ja lopuksi asettaa riippuvuuslipun sekä käynnistää oman lähetyksensä. L1 L2 TG 3!! R1 L1 L2 TG 3!! R1 TG 3 L1 R1 x L2! Liipaisimen 1 lähetys päättyy Liipaisin 2 alkaa prosessoimaan, jonka jälkeen se nollaa riippuvuuslipun sekä käynnistää oman lähetyksensä. TG 3 TG 3 L1 L2! R1 x L1 L2 R1 Kuva 3.5: Esimerkki riippuvuuslippujen toiminnasta silmukka todella päättyy, eikä generaattorille 2 lähetetä mitään. Silmukan kierrosluku riippuu jälkimmäiselle liipaisimelle asetettujen toimettomien odotuskertojen määrästä. 1 8 TG TG TG 4 TG 3 Kuva 3.6: Silmukkarakenne liikennegeneraattoreilla

15 11 4. LIIKENNEGENERAATTOREIDEN KERÄÄMÄ MITTAUSDATA Liikennegeneraattoreiden päätarkoitus on helpottaa erilaisten tiedonsiirtoverkkojen suorituskykymittauksia. Tätä tehtävää varten ne keräävät tietoa lähetysten latensseista sekä verkon kuormituksesta. Syntesoituvuus tuo mukanaan resurssirajoitteita, joten kerätyn tiedon monipuolisuudesta joudutaan tinkimään. Taulukko 4.1 esittää mitattavat suureet ja niistä jälkikäteen laskemalla saatavat tulokset. Taulukko 4.1: Liikennegeneraattoreiden tuottama mittausdata. Suoraan saatava data Jälkikäteen laskettava data Lähetysten määrä Vastaanotettujen sanojen määrä: Lyhyin lähetys Sanoja/lähetys keskimäärin Pisin lähetys Sanojen yhteismäärä Lähetysten latenssi: Pienin latenssi Keskimääräinen latenssi Suurin latenssi Latenssien summa Lähetyksissä esiintyneet virheet: Järjestysnumerovirheet Virheitä/lähetys keskimäärin Eksyneet sanat Jokainen liikennegeneraattori mittaa latenssin ja kuorman erikseen jokaiselta yhteysväliltä. Kaikkien latenssien sekä vastaanotettujen sanojen määrät summataan, ja vastaanotettujen lähetysten määrä lasketaan, jolloin saadaan jälkikäteen laskettua suureiden keskiarvot. Lisäksi tallennetaan jokaisen yhteysvälin koko mittausjakson pienin ja suurin latenssin ja lähetyksen pituuden arvo. Liikenteen määrän ja latenssin mittaamisen lisäksi liikennegeneraattorit seuraavat vastaanottamiensa lähetysten oikeellisuutta. Datasanojen juoksevan numeroinnin avulla voidaan havaita kadonneita tai väärään järjestykseen joutuneita sanoja (järjestysnumerovirheet taulukossa 4.1), ja havaittujen virheiden määrä tallennetaan muistiin. Lisäksi tarkkaillaan saapuvien sanojen kohdeosoitteita, ja merkitään ylös väärään osoitteeseen tulleiden sanojen määrä. Liikennegeneraattoreiden syntesoituvuus ja virheidentarkkailu mahdollistaa pitkät ja satunnaisuutta hyödyntävät

16 4. Liikennegeneraattoreiden keräämä mittausdata 12 testiajot, joiden avulla voidaan yrittää löytää hyvin harvoin esiintyviä virheitä verkoista. Tällä hetkellä yksi näiden liikennegeneraattoreiden mahdollinen ongelma on kuitenkin pitkien testiajojen tuottama mittausdatan määrä. Nykyisellään generaattorit käyttävät tulosten tallentamiseen kiinteän kokoisia rekistereitä (16-32 bittiä), joiden täyttyminen rajoittaa ajoaikaa. Todella suurella kuormalla ja 50 MHz taajuudella rekisterit täyttyisivät parissa minuutissa, mutta toisaalta esimerkiksi kappaleen 6.1 MPEG-4-mallia voitaisiin nykyisen kokoisilla rekistereillä ajaa yli 19 minuuttia. Rekistereiden kokoa ei voida määritellä synteesissä esimerkiksi liipaisimien määrän tapaan, koska kongurointi- ja raportointiprotokollat vaativat määrätyt datanleveydet. Protokollien muuttaminen puolestaan vaatii niin suuria muutoksia lähdekoodiin, että se katsottiin tässä kehitysvaiheessa liian työlääksi. Tavoitteena on turhan työn välttämiseksi hankkia generaattoreista ensin käyttökokemuksia, ja niiden avulla määritellä kuinka suuria muutoksia on tarpeen tehdä.

17 13 5. JÄRJESTELMÄN KONFIGUROINTI JA TULOSTEN SAAMINEN Käytetyn tietokoneen kapasiteetista ja syntesoitavan järjestelmän koosta riippuen syntesointi voi kuluttaa aikaa muutamista minuuteista tunteihin, joten tarvittavien synteesikertojen määrä halutaan minimoida. Näiden liikennegeneraattoreiden suunnittelun yksi peruslähtökohta olikin dynaamisen, eli ajonaikaisen konguroinnin ja tulosten raportoinnin mahdollistaminen. Synteesissä määritelläänkin ainoastaan käytettävissä olevat resurssit, ja liikennegeneraattoreiden varsinainen toiminnallisuus konguroidaan tarvittaessa useaankin kertaan ilman uutta synteesiä. 5.1 Dynaaminen kongurointi Käytännössä kongurointi tapahtuu keskustelemalla tietokoneen ja UART-liitynnän välityksellä master-liikennegeneraattorin kanssa, johon on toteutettu yksinkertainen kommunikaatiojärjestelmä. Master-generaattori kysyy kuvan 5.1 esimerkin mukaisesti liitynnän välityksellä tietoja halutusta järjestelmästä, ja välittää saadut parametrit sitten eteenpäin muille generaattoreille käyttäen hyväkseen tutkittavaa tiedonsiirtoverkkoa. Kuvan 5.2 kaavio esittää konguroinnin etenemistä järjestelmän sisällä. Kuva 5.1: Liikennegeneraattoreiden kongurointi manuaalisesti.

18 5. Järjestelmän kongurointi ja tulosten saaminen 14 Tietokone Master TG Slave TG 1 Slave TG 2 Slave TG 3 Anna komento Uusi liipaisin/ajastin TG:lle 1 Uusi liipaisin/ajastin Anna komento Uusi liipaisin/ajastin TG:lle 2 Anna komento Uusi liipaisin/ajastin Aseta polkumittaus polkua pitkin Polun aloittava liipaisin/ajastin Polkukonfigurointipaketti Polkukonfigurointipaketti Anna komento Aloita xxx kellojakson pituinen mittaus Kuva 5.2: Esimerkkikaavio järjestelmän konguroinnin etenemisestä. Kongurointi suoritetaan aina ennen jokaista mittauskertaa, koska liikennegeneraattorit unohtavat saamansa tiedot järjestelmän nollauksen aikana. Kuvassa 5.1 näkyvä terminaaliohjelman avulla manuaalisesti tapahtuva kongurointi on hidasta ja virhealtista, joten hyvin pieniä testitapauksia lukuunottamatta kongurointi kannattaa tehdä sitä varten kehitetyn ohjelman avulla. Ohjelma käyttää hyväkseen erityistä formaattia noudattavia konguraatiotiedostoja, jolloin sama testitapaus on nopea toistaa monta kertaa. Käytännön ohjeet kongurointia varten löytyvät liikennegeneraattoreiden dokumentaatiosta [8]. Simuloitaessa master-generaattori hakee kongurointitiedot suoraan edellä mainittua formaattia noudattavasta kongurointitiedostosta. Yhteinäisen formaatin avulla samat tiedostot toimivat sekä simulaatiossa että oikeaa UART-liityntää käytettäessä. 5.2 Tulosten raportointi Mittaustulosten kerääminen ja raportointi tietokoneelle tapahtuu jokseenkin käänteisesti kongurointiin nähden. Kun annettu ajoaika on kulunut, jokainen liikennegeneraattori lopettaa master-generaattorin käskystä mittaamisen samalla hetkellä. Seuraavaksi verkon annetaan tyhjentyä keskeytyshetkellä liikkeellä olleista lähetyksistä odottamalla tietty määrä kellojaksoja. Kun verkko on tyhjä, master-

19 5. Järjestelmän kongurointi ja tulosten saaminen 15 generaattori pyytää mittaustulokset yksitellen jokaiselta muulta liikennegeneraattorilta käyttäen tutkittavana olevaa verkkoa. Tiedot saatuaan master tulostaa ne UART-liitynnän kautta tietokoneelle. Raportoinnin eteneminen verkon tyhjenemisen jälkeen näkyy kuvasta 5.3. Tietokone Master TG Slave TG 1 Slave TG 2 Slave TG 3 Omat tulokset Raportointikomento Mittaustulokset TG 1:n tulokset Raportointikomento Mittaustulokset TG 2:n tulokset Raportointikomento Mittaustulokset TG 3:n tulokset Kuva 5.3: Esimerkkikaavio järjestelmän raportoinnin etenemisestä. Tietokoneelle mittausdata saapuu sarjoina heksalukuja, joten tulosten tutkimiseen on hyvä käyttää apuna osiossa 5.1 mainittua tietokoneohjelmaa. Konguroinnin automatisoinnin lisäksi ohjelma lukee saadut tulokset ja tulostaa ne ruudulle kymmenkantaisina lukuina järjesteltyinä otsikoituihin taulukoihin. Ohjelma laskee myös keskiarvot valmiiksi. Simuloidessa tulokset tallentuvat suoraan tiedostoon samassa muodossa, kuin ne olisi tulostettu UART-liitynnän kautta tietokoneelle. Kongurointiohjelma kykenee kääntämään myös tiedostossa olevat tulokset luettavampaan muotoon. Kuvassa 5.4 on ModelSim-simulaattorin aaltomuotoikkunan avulla havainnollistettu liikennegeneraattoreiden toiminnan vaiheet. Konguraatiovaiheessa nähdään, miten master-generaattori lähtettää konguraatiotietoja eteenpäin muille generaattoreille. Tämän jälkeen alkaa varsinainen mittaus, jolloin generaattorit luovat liikennettä saamiensa konguraatiotietojen mukaisesti. Lopuksi master-generaattori keskeyttää mittaukset ja kerää sekä lähettää eteenpäin saadut tulokset.

20 5. Järjestelmän kongurointi ja tulosten saaminen 16 Kuva 5.4: Liikennegeneraattoreiden toimintavaiheet ModelSim-simulaattorin aaltomuotoikkunassa.

21 17 6. KÄYTTÖESIMERKKEJÄ Tässä kappaleessa esitellään liikennegeneraattorin käyttöä verkkojen vertailussa. Liikennegeneraattoreiden yksi tärkeä käyttökohde on todellisten sovellusten mallintaminen, jolla helpotetaan parhaan verkkoratkaisun löytämistä kyseiseen järjestelmään. Tässä tapauksessa esimerkkinä on käytetty kiihdytettyä MPEG-4-videopakkausta. Toisena esimerkkinä kuvataan generaattoreiden käyttöä verkkojen yleisominaisuuksien, kuten saturaatiopisteen selvittämiseen. 6.1 MPEG-4-videopakkauksen mallintaminen liikennegeneraattoreilla Tässä esimerkissä tarkoituksena on vertailla HIBI-väylän [10] ja mesh-verkon soveltuvuutta MPEG-4-pakkausta suorittavaan järjestelmään käyttäen siitä liikennegeneraattoreilla luotua mallia. Verkkojen soveltuvuutta kyseiseen järjestelmään on tutkittu suoraan aidolla sovelluksella, ja on huomattu, etteivät ennakkoarviot verkkojen välisistä suhteista aina pidä paikkaansa [4]. Tässä kandidaatintyössä esitellyn liikennegeneraattorin päätavoite on poistaa tarve aidolle sovellukselle verkon käyttäytymistä tutkittaessa. Mallinnettava videopakkausjärjestelmä koostuu kuvan 6.1 mukaisesti yhdestä ohjausja kolmesta orjaprosessorista sekä neljästä kiihdytinlohkosta. Kiihdyttimistä kaksi on liikkeenestimointia (ME) ja kaksi kosinimuunnosta sekä kvantisointia (DQ) varten. Lisäksi järjestelmässä on jaettu muistilohko ja resurssien varaamisesta vastaava resurssimanageri (RM). Liikennegeneraattorimallin yksi ongelma todelliseen järjestelmään verrattuna on, ettei suoraan saada selville montako kuvaa sekunnissa mallin esittämä järjestelmä tuottaisi. Kuvataajuus saadaan kuitenkin selville kiertoteitse. Todellisessa järjestelmässä kukin kuva jaetaan prosessoitavaksi orjaprosessoreille, jotka valmistuttuaan ilmoittavat tilastaan ohjausprosessorille. Laskemalla orjilta ohjausprosessorille tulleiden lähetysten määrän ja jakamalla sen ajoajalla saadaan selville haluttu kuvataajuuden arvo. Mittaukset suoritettiin FPGA-piirillä, ja järjestelmää ajettiin kymmenen sekuntia. Yhteensä yksittäiseen mittauskertaan kului aikaa kolmekymmentä sekuntia johtuen UART-liitynnän kautta tapahtuneen konguroinnin ja tulosten siirtämisen viiveistä. Simuloituna yhtä pitkä testiajo olisi kestänyt kymmenistä minuuteista tun-

22 6. Käyttöesimerkkejä 18 Ohjausprosessori Orjaprosessori 1 Orjaprosessori 2 Orjaprosessori 3 Muisti Tiedonsiirtoverkko ME 1 ME 2 DQ 1 DQ 2 RM Kuva 6.1: Kaaviokuva MPEG-4-videopakkausjärjestelmästä. Taulukko 6.1: Mittaustulokset MPEG-4-pakkausjärjestelmän liikennegeneraattorimallista. Verkko Tulos HIBI-väylä Mesh-verkko Kuvaa/s 18,7 20 Keskim. latenssi (kellojaksoa) Verkon koko (logiikkaelementtiä) Taajuus 50 MHz Ajoaika 10 s teihin. Taulukkoon 6.1 on koottu mittauksista saadut tärkeimmät tulokset sekä verkkojen kokovertailu. Mittaustulosten perusteella mesh-verkko aiheuttaa siis alle 1,1 kertaisen nopeutuksen tutkittuun järjestelmään, vaikka kaikkien yhteysvälien kesken laskettu latenssien keskiarvo väheneekin lähes neljäsosaan. Tämä tukee väitettä siitä, ettei verkkojen yleisen vertailun perusteella voi päätellä verkkojen suorituskykyeroja aidossa sovelluksessa. Tässä tapauksessa HIBI-väylä on myöskin pinta-alaltaan noin 43% mesh-verkkoa pienempi, joten mesh-verkolla saavutettu pienehkö nopeutus tulee kalliilla hinnalla. Tarkempi ja yleisempi vertailu HIBI-väylän ja mesh-verkon ominaisuuksista löytyy julkaisusta [9] Sovellusmallin luominen ja vaadittava työmäärä Tällaisen mittauksen toteuttamiseksi liikennegeneraattoreilla tarvitaan ensin tietoa aidon sovelluksen käyttäytymisestä. Mitä tarkemmin prosessointiajat ja lähetysten koko sekä riippuvuudet tiedetään, sitä tarkempi malli voidaan rakentaa. Todellisen sovelluksen ominaisuuksien selvittäminen onkin helposti eniten aikaa vievä osuus

23 6. Käyttöesimerkkejä 19 mallia rakennettaessa, ja ajankulutus on aina tapauskohtainen. Kun mallinnettavan sovelluksen ominaisuudet ovat selvillä, tulee seuraavaksi luoda itse liikennegeneraattorijärjestelmä ja kongurointitiedosto. Järjestelmän luomiseen kuluva aika on riippuvainen lähinnä käytetyn verkon rajapinnasta. Jos liikennegeneraattoreiden ja verkon rajapinnat poikkeavat toisistaan, on väliin tehtävä sovitinlohko. Tämänhetkisten kokemusten perusteella sovittimen tekemiseen kuluu aikaa muutamista tunneista muutamaan päivään riippuen rajapintojen eroista. Generaattoreiden mukana tulee muun muassa tässä työssä käytettyjä verkkoja tukeva sovitin, joten yksinkertaisimmillaan järjestelmän saa luotua vain liittämällä valmiina olevat lohkot yhteen. Tähän voi kulua käytetyistä työkaluista riippuen aikaa minuuteista muutamaan tuntiin. Kongurointitiedoston luominen on mallin laadun kannalta kriittinen osuus. Käytännössä tiedoston tekeminen tarkoittaa liikennettä luovien liipaisimien ja ajastimien määrittelemistä sovelluksen ominaisuuksien perusteella. Esimerkin MPEG-4- järjestelmän mallintamisessa käytetään kymmentä liikennegeneraattoria sekä yhteensä 57:ää liipaisinta ja ajastinta, ja tiedoston hiominen nykyiseen muotoonsa vei aluksi hieman epäselvien sovelluksen ominaisuuksien takia useita päiviä. Tämän vaiheen ajankulutus riippuukin suuresti ensimmäisen vaiheen, eli sovelluksen ominaisuuksien selvittämisen onnistumisesta sekä liikenteen rakenteiden monimutkaisuudesta. Yksinkertaisten yhteyksien luominen onnistuu muutamissa minuuteissa, mutta monimutkaisten riippuvuuksien mallintaminen vaatii huomattavasti enemmän suunnittelua. Yleisesti ottaen liikennegeneraattorimallin tekemiseen ensimmäistä kertaa voi kulua useita päiviä. Monimutkaisten liikennerakenteiden mallintaminen nopeutuu kuitenkin kokemuksen myötä, kun ymmärrys liipaisimien ja ajastimien toiminnasta syvenee. Kun työkalut ja -vaiheet tulevat tutuiksi, on monimutkaisenkin mallin luominen mahdollista tehdä muutamassa tunnissa. Lisäksi on vertailun vuoksi hyvä mainita, että esimerkissä mallinnetun todellisen sovelluksen toteuttaminen kesti muutamia kuukausia Esimerkin vaatimat erikoisrakenteet Todellisissa sovelluksissa on myös usein monimutkaisempia rakenteita, kuin yksittäisillä liipaisimilla tai ajastimilla pystytään kuvaamaan. MPEG-4-pakkauksessa kulloinkin käsiteltävä kuva jaetaan lukuisiin makrolohkoihin, joita orjaprosessorit kierrättävät kiihdyttimillä. Suoritus pyörii silmukassa niin kauan kunnes kaikki makrolohkot on läpikäyty. Silmukat on toteutettu kappaleessa esitetyllä tavalla riippuvuuksia hyväksi käyttäen. Toinen hankalasti mallinnettava ominaisuus on kiihdyttimien arbitrointi. Todellisessa sovelluksessa arbitroinnista vastaava resurssimanageri jakaa kiihdyttimien

24 6. Käyttöesimerkkejä 20 käyttöoikeuksia orjaprosessoreille, mutta liikennegeneraattorit eivät tähän pysty. Esimerkkimallissa asia on ratkaistu arbitrointilohkoa mallintavan generaattorin kahdella samoihin saapuviin lähetyksiin reagoivilla, mutta erilaisella vastauslähetyksillä varustetuilla liipaisimilla, joista toinen aktivoituu vain joka kolmas kerta ja estää aktivoituessaan toisen toiminnan. Orjaprosessoreita mallintavat generaattorit puolestaan lähettävät dataa eri osoitteisiin riippuen arbitterilohkolta saamistaan vastauslähetyksistä. Näin joka kolmas makrolohkoa kuvaava lähetys päätyy eri kiihdytintä mallintavalle generaattorille kuin muut. Todellisen sovelluksen kiihdyttimien kuorma noudattaa suurin piirtein samaa jakaumaa. Kolmas ongelmallinen tilanne esimerkin mallissa on liikkeenestimoijan toiminta. Oikean liikkeenestimoijan tulee toimintakäskyn saatuaan hakea tarvittava kuvadata muistista, prosessoida, ja lopulta lähettää tulokset takaisin kiihdytintä kutsuneelle prosessorille. Tämä tarkoittaa sitä, että liikennegeneraattorin tulee muistaa koko toiminnan ajan, miltä orjaprosessoria mallintavalta generaattorilta toimintakäsky tuli. Riippuvuudet auttavat tääsäkin tapauksessa. Toimintakäsky aktivoi heti saapuessaan lähettäjälle vastaavan liipaisimen, joka jää odottamaan, että muistista saapuva lähetys asettaa riippuvuuslipun. 6.2 Tiedonsiirtoverkkojen vertailu liikennegeneraattoreiden avulla Vaikka tässä kandidaatintyössä esitelty liikennegeneraattori onkin pääasiassa tarkoitettu edellisen osion kaltaiseen todellisten järjestelmien mallintamiseen, voi sitä käyttää myös tiedonsiirtoverkkojen yleiseen vertailuun. Tällöin on usein tarkoitus luoda tasaista ja satunnaista liikennettä, ja tutkia verkkojen suorituskyvyn muutoksia, kun jotakin liikenteen parametria muutetaan. Muutettavia parametreja ovat esimerkiksi verkkoon aiheutettava kuorma (käytännössä generaattoreiden lähetystaajuus), lähetysten keskimääräinen pituus tai lähetysten paikallisuus. Myös verkkojen ominaisuuksia, kuten puskureiden kokoa tai kytkentätapaa, voidaan muutella. Tässä esimerkissä verrataan keskenään kolmea eri topologiaa: mesh-verkkoa, väylää ja piirikytkentäistä ristikytkentämatriisia (ks. kuva 6.2). Verkkoja testataan kahdeksan liikennegeneraattorin järjestelmällä, joka lähettää keskimäärin kahdenkymmenen sanan mittaisia lähetyksiä. Vaihtuvana parametrina on kuorma, jota kasvatetaan mittausten välillä kaksi prosenttiyksikköä alkaen kahdesta ja päättyen 30 prosenttiin. Tarkempaa tietoa verkkojen parametreista löytyy taulukosta 6.2. Tietoa topologioista ja kytkentätavoista löytyy muun muassa lukuisien esitettyjen verkkoratkaisujen kartoituksesta [11]. Kuva 6.3 sisältää kuvaajat verkkojen suorituskyvystä. Kaaviossa näkyy verkon läpi kulkeneiden sanojen määrän (kilotavuina, vasen Y-akseli) ja kaikkien yhteysvälien kesken lasketun keskimääräisen latenssin (kellojaksoina, oikea Y-akseli) kehitys. Yksi yleisesti kiinnostava ja kuvaajista helposti nähtävissä oleva tiedonsiirtoverk-

25 6. Käyttöesimerkkejä 21 Väylä Mesh-verkko Ristikytkentämatriisi Kuva 6.2: Vertailtujen verkkojen topologiat Taulukko 6.2: Parametrit verkkojen vertailussa Agenttien määrä 8 Taajuus 50 MHz Datanleveys 32 bittiä Ajoaika kellojaksoa Keskimääräinen siirto 20 sanaa + otsikot Puskureiden koko 4 sanaa Paketin koko (vain mesh-verkko) 8 sanaa Kytkentätapa Wormhole kojen piirre on niiden saturaatiopiste. Verkon saturoituminen tarkoittaa sen tiedonvälityskyvyn ylärajan saavuttamista: kuorman lisääntyessä välitetyn datan määrä ei enää kasva. Tämä näkyy kuvaajissa verkon läpäisevän datan määrää kuvaavan käyrän vakiintuessa tietylle tasolle tai alkaessa jopa laskea. Verkon saturoituessa myös keskimääräinen latenssi moninkertaistuu äkillisesti. Kuvaajista näkee helposti topologian merkityksen verkon suorituskyvylle. Väylä ei luonnollisesti kykene samoihin tiedonsiirtomääriin mesh-verkon tai ristikytkentämatriisin kanssa, koska väylällä kaikki lähetykset kilpailevat samasta tiedonsiirtokanavasta. Ristikytkentämatriisissa puolestaan jokaiselle yhteysvälille on oma kanavansa, jolloin yksi siirto ei estä muita. Tämä kasvattaa kuitenkin huomattavasti verkon pinta-alaa, ja sopivimman verkkoratkaisun valinta riippuukin lukuisista tekijöistä pelkän välityskapasiteetin sijaan. Tässä kandidaatintyössä esiteltyjen liikennegeneraattoreiden rajoitteet tämänkaltaisessa tutkimuksessa tulevat ilmi kuvaajien käyrien epätasaisuudesta. Tasavälein tapahtuvia lähetyksiä tuotetaan ajastimilla (ks. osio 3.2), joiden odotusaika lähetysten välissä on aina vakio. Liikenteen kaavamaisuuden vähentämiseksi konguraatiotiedoston luova ohjelma konguroi eri generaattoreiden ajastimien odotusajat satunnaisesti hieman toisistaan poikkeaviksi, mistä syystä eri yhteysvälien kuormat eroavat hieman toisistaan. Joskus satunnaisuus parantaa ja joskus taas heikentää verkon mitattua suorituskykyä. Pieni tulosten heittely ei kuitenkaan aiheuta suurta haittaa, joten verkkojen vertailu näillä liikennegeneraattoreilla on täysin mahdollista. Selkeästi poikkeavia tu-

26 6. Käyttöesimerkkejä 22 Kuva 6.3: Kolmen eri verkkoratkaisun suorituskykykuvaajat. loksia aiheuttavan kongurointitiedoston voi tehdä uudestaan, jolloin sen tuottamat tulokset todennäköisesti palaavat linjaan muiden kanssa. Jos juuri näille liikennegeneraattoreille ei esimerkiksi syntesoitavuuden takia ole kuitenkaan erityistä tarvetta, tuottavat pelkästään simulaatioon tarkoitetut generaattorit mahdollisesti tarkempia tuloksia.

27 23 7. YHTEENVETO Tässä kandidaatintyössä esiteltiin syntesoituva liikennegeneraattori, joka on ensisijaisesti suunniteltu mallintamaan todellisten sovellusten aikaansaamaa liikennettä piirinsisäisissä tiedonsiirtoverkoissa. Verkkoliikenteen luominen perustuu generaattoreiden sisäisiin liipaisimiin ja ajastimiin, jotka saapuvan liikenteen tai kellojaksolaskurin perusteella käynnistävät määrätynlaisia lähetyksiä. Monimutkaisempia liikennerakenteita varten liipaisimilla ja ajastimilla voi olla erikoisominaisuuksia kuten riippuvuuksia toisistaan. Taulukko 7.1 sisältää yhteenvedon generaattoreiden perustiedoista. Liikennegeneraattori on lisensoitu vapaan lähdekoodin LGPLlisenssillä [13], ja se on vapaasti saatavilla taulukosta löytyvästä Internet-osoitteesta. Taulukko 7.1: Liikennegeneraattorin perustiedot Toteutuskieli VHDL Tarkoitus Sovellusten verkkoliikenteen mallintaminen verkkojen vertailua varten. Lisenssi LGPL [13] Käyttötavat Simulaatio ja FPGA Vahvuudet Syntesoituvuus ja dynaaminen kongurointi. Heikkoudet Tasapainoilu ominaisuuksien ja resurssienkulutuksen välillä. Koodirivien määrä VHDL: >6000, Python: >2000 Toteuttamiseen kulunut Noin 2 kk kahdelta henkilöltä aika Koko FPGA-piirillä Normaali TG 2000+, Master TG Koko (Altera Cyclone II, huomattavan riippuvainen liipaisimien ja ajastimien logiikkaelementtiä) määrästä. Apuohjelmat Python-ohjelmat generaattoreiden hallintaan FPGAlaudalla sekä konguraatiotiedostojen luomiseen. Saatavilla osoitteesta Liikennegeneraattoreiden käytöstä on pyritty tekemään mahdollisimman nopeaa ja yksinkertaista määrittelemällä synteesissä vain käytettävät resurssit ja konguroimalla varsinainen toiminnallisuus ajonaikaisesti UART-liitynnän avulla. Generaattoreita voidaan käyttää myös simulaatiossa, jolloin kongurointitiedot saadaan suoraan tiedostosta. Samat tiedostot käyvät sekä syntesoidussa että simuloidussa järjestelmässä.

28 7. Yhteenveto 24 MPEG-4-videopakkausesimerkin avulla näytettiin, että liikennegeneraattoreilla tuotetulla mallilla saadaan suhteellisen helposti selkeästi parempaa tietoa verkkojen sopivuudesta sovelluksille kuin pelkästään verkkojen yleisominaisuuksia vertaillen. Esimerkkitapauksessa todettiin myös, että tulosten tarkkuuden kannalta oleellista on saada tarkkaa tietoa todellisen sovelluksen ominaisuuksista, kuten prosessointiajoista sekä liikenteen riippuvuuksista. Toisen esimerkin avulla todettiin, että näitä liikennegeneraattoreita voidaan käyttää myös verkkojen yleisempään vertailuun. Generaattoreiden kyky tuottaa satunnaista ja tasaista liikennettä on kuitenkin rajallinen, joten tarkempia mittauksia varten voi olla parempi käyttää yksinomaan kyseistä tarkoitusta varten tehtyjä liikennegeneraattoreita. Näiden liikennegeneraattoreiden ominaisuuksien määrää rajoittavat syntesoitavuuden tuomat resurssi- ja taajuusvaatimukset, joten pelkästään simulaatiokäyttöön on olemassa monipuolisempiakin vaihtoehtoja. 7.1 Tulevia kehittämiskohteita Tällä hetkellä tärkeintä näiden liikennegeneraattoreiden kehityksessä on saada niistä käyttökokemuksia. Vasta riittävien käyttökokemusten perusteella voidaan päätellä, miten hyvin tähän mennessä toteutetut ominaisuudet riittävät todellisten sovellusten mallintamiseen ja mitä uusia ominaisuuksia tulee lisätä, jotta tehtyjen mallien tarkkuus paranee. Yksi suunniteltu uudistus on konguraatio- ja raportointiprotokollien uudistaminen tukemaan vaihtelevan kokoisia tulosrekistereitä. Tällä hetkellä esimerkiksi lähetysten määrän ja latenssin säilövät rekisterit ovat kiinteästi 32-bittisiä, mutta käyttökokemusten avulla pyritään saamaan selville onko suurempia rekistereitä vaativille erityisen pitkille testiajoille tarvetta. Myös uusia liipaisuehtoja ja liipaisintyyppejä sekä ajastimien odotusaikojen satunnaistamista on suunniteltu, mutta näitäkään muutoksia ei haluta toteuttaa ennen kuin voidaan osoittaa niiden tarpeellisuus. Lukuisten liipaisinehtojen vertailu samanaikaisesti aikaansaa synteesissä huomattavan suuria rakenteita, jolloin pienetkin lisäykset kasvattavat resurssienkulutusta ja kombinatoristen polkujen viivettä huomattavasti.

29 25 LÄHTEET [1] Benini, L., De Micheli, G. Networks on Chips: A New SoC Paradigm. IEEE Computer, vol. 35, no. 1, Tammikuu 2002 [2] Hai-Hua Wen, Gao-Ming Du, Duo-Li Zhang, Luo-Feng Geng, Ming-Lun Gao, Ying-Chun Chen. Design of An On-line Congurable Trac Generator for NoC. 3rd International Conference on Anti-counterfeiting, Security, and Identication in Communication, Elokuu [3] Kangas, T., Riihimäki, J., Salminen, E., Kuusilinna, K., Hämäläinen, T. D. Using a Communication Generator in SoC Architecture Exploration International Symposium on System-on-Chip, Tampere, Marraskuu [4] Kulmala, A., Salminen, E., Hännikäinen, M., Hämäläinen, T. D. Evaluating SoC Network Performance in MPEG-4 Encoder. The Journal of Signal Processing Systems for Signal, Image, and Video Technology, Toukokuu [5] Lahiri, K., Raghunathan, A., Dey, S. Evaluation of the Trac-Performance Characteristics of System-on-Chip Communication Architectures. 14th International Conference on VLSI Design, Tammikuu [6] Mahadevan, S., Angiolini, F., Sparso, J., Benini, L., Madsen, J. A Reactive and Cycle-True IP Emulator for MPSoC Exploration. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Tammikuu [7] Mahadevan, S., Angiolini, F., Storgaard, M., Olsen, R. G., Sparsø, J., Madsen J. A Network Trac Generator Model for Fast Network-on-Chip Simulation. Design, Automation and Test in Europe, [8] Nieminen, J. Trac Generator Usage. Saatavilla verkosta: Marraskuu 2009 [9] Salminen, E., Kangas, T., Lahtinen, V., Riihimäki, J., Kuusilinna, K., Hämäläinen, T. D. Benchmarking Mesh and Hierarchical Bus Networks in System-on- Chip Context Journal of System Architectures, Vol.53, Issue 8, Elokuu [10] Salminen, E., Kangas, T., Riihimäki, J., Lahtinen, V., Kuusilinna, K., Hämäläinen T. D. HIBI Communication Network for System-on-Chip Journal of VLSI Signal Processing-Systems for Signal, Image, and Video Technology, Kesäkuu 2006.

Tehtävä 2: Tietoliikenneprotokolla

Tehtävä 2: Tietoliikenneprotokolla Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli

Lisätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

Prosessin reaalisaatioiden tuottaminen

Prosessin reaalisaatioiden tuottaminen Teoria Johdanto simulointiin Simuloinnin kulku -- prosessin realisaatioiden tuottaminen Satunnaismuuttujan arvonta annetusta jakaumasta Tulosten keruu ja analyysi Varianssinreduktiotekniikoista 20/09/2004

Lisätiedot

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus Versio: 28.2.2013 Julkaistu: 28.2.2013 Voimassaoloaika: toistaiseksi Sisällys 1 Yleiset vaatimukset... 2 2 Latauspalvelun

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,

Lisätiedot

Työkalujen merkitys mittaamisessa

Työkalujen merkitys mittaamisessa Työkalujen merkitys mittaamisessa Mittaaminen ja Ohjelmistotuotanto -seminaari Toni Sandelin 18.4.2001, VTT Elektroniikka, Oulu 1 Sisältö Mihin työkalutukea tarvitaan? Työkalut & metriikat: luokitus Mittausohjelmien

Lisätiedot

r = 0.221 n = 121 Tilastollista testausta varten määritetään aluksi hypoteesit.

r = 0.221 n = 121 Tilastollista testausta varten määritetään aluksi hypoteesit. A. r = 0. n = Tilastollista testausta varten määritetään aluksi hypoteesit. H 0 : Korrelaatiokerroin on nolla. H : Korrelaatiokerroin on nollasta poikkeava. Tarkastetaan oletukset: - Kirjoittavat väittävät

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden

Lisätiedot

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03.

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE: 15.03. EMVHost Online SUBJECT: COMPANY: COMMENTS: AUTHOR: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT NETS OY EMVHost Online Client sovelluksen käyttöohje NETS OY DATE: 15.03.2011 VERSION: 1.0 1 SISÄLLYS SISÄLLYS...

Lisätiedot

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER Group 16 Ville Laatu Henri Myllyoja - i SISÄLLYSLUETTELO 1. DEBUGGERI YLEISESTI... II 1.1 Debuggerin käyttämien... ii 1.2 Debuggerin käynnistäminen... ii

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Teoria. Prosessin realisaatioiden tuottaminen

Teoria. Prosessin realisaatioiden tuottaminen Teoria Johdanto simulointiin Simuloinnin kulku -- prosessin realisaatioiden tuottaminen Tapahtumapohjaisen simuloinnin periaatteet Esimerkki: M/M/1 jonon simulointi Simulointiohjelman geneeriset komponentit

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,

Lisätiedot

Monte Carlo -menetelmä optioiden hinnoittelussa (valmiin työn esittely)

Monte Carlo -menetelmä optioiden hinnoittelussa (valmiin työn esittely) Monte Carlo -menetelmä optioiden hinnoittelussa (valmiin työn esittely) 17.09.2015 Ohjaaja: TkT Eeva Vilkkumaa Valvoja: Prof. Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla.

Lisätiedot

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

Lisätiedot

Kehittyneiden Aaltomuotojen Käytettävyys HF-alueen Tiedonsiirrossa

Kehittyneiden Aaltomuotojen Käytettävyys HF-alueen Tiedonsiirrossa MATNE Tutkimusseminaari 17.11.2011 Kehittyneiden Aaltomuotojen Käytettävyys HF-alueen Tiedonsiirrossa Markku Jokinen 2 Sisällys Johdanto WARP ohjelmistoradioalusta HF-toteutus lmenneet rajoitukset ohjelmistoradioalustalla

Lisätiedot

Projektisuunnitelma ja johdanto AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Paula Sirén

Projektisuunnitelma ja johdanto AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Paula Sirén Projektisuunnitelma ja johdanto AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Paula Sirén Sonifikaatio Menetelmä Sovelluksia Mahdollisuuksia Ongelmia Sonifikaatiosovellus: NIR-spektroskopia kariesmittauksissa

Lisätiedot

Liikenneteorian tehtävä

Liikenneteorian tehtävä J. Virtamo 38.3141Teleliikenneteoria / Johdanto 1 Liikenneteorian tehtävä Määrää kolmen eri tekijän väliset riippuvuudet palvelun laatu järjestelmä liikenne Millainen käyttäjän kokema palvelun laatu on

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Harjoitus 7: NCSS - Tilastollinen analyysi

Harjoitus 7: NCSS - Tilastollinen analyysi Harjoitus 7: NCSS - Tilastollinen analyysi Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tilastollinen testaus Testaukseen

Lisätiedot

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta. Tehtävänanto - Asenna WordPress ja tee siihen esimerkkisisältöä - Mittaa WP:n tehoa. Vertaile etusivun ja alasivujen nopeutta siihen, että tallennat saman sisällön staattiseksi. Analysoi mittaustulokset.

Lisätiedot

Kandidaatintyön tarkistuslista. Erno Salminen Tampereen Teknillinen Yliopisto

Kandidaatintyön tarkistuslista. Erno Salminen Tampereen Teknillinen Yliopisto Kandidaatintyön tarkistuslista Erno Salminen Tampereen Teknillinen Yliopisto 2010-03-24 Tarkoitus Lyhyt lista asioista, jotka usein menevät pieleen ekalla yrityksellä 1. Johdanto ja oma osuus 2. Kuvat

Lisätiedot

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure Automaattinen regressiotestaus ilman testitapauksia Pekka Aho, VTT Matias Suarez, F-Secure 2 Mitä on regressiotestaus ja miksi sitä tehdään? Kun ohjelmistoon tehdään muutoksia kehityksen tai ylläpidon

Lisätiedot

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Tehtävä 1: Metodit, listat, alkuluvut (4p) Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Alkuluvut ovat lukuja, jotka ovat suurempia kuin yksi ja jotka ovat jaollisia

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Lauri Karppi j82095. SATE.2010 Dynaaminen kenttäteoria DIPOLIRYHMÄANTENNI.

VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Lauri Karppi j82095. SATE.2010 Dynaaminen kenttäteoria DIPOLIRYHMÄANTENNI. VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA Oskari Uitto i78966 Lauri Karppi j82095 SATE.2010 Dynaaminen kenttäteoria DIPOLIRYHMÄANTENNI Sivumäärä: 14 Jätetty tarkastettavaksi: 25.02.2008 Työn

Lisätiedot

Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa:

Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa: Ismo Grönvall/Timo/TUTA 0353064 Tehtävä 5: Sisäilmaston mittaus hyödyntää langatonta anturiteknologiaa: Ihmiset viettävät huomattavan osan (>90 %) ajasta sisätiloissa. Sisäilmaston laatu on tästä syystä

Lisätiedot

Älypuhelinverkkojen 5G. Otto Reinikainen & Hermanni Rautiainen

Älypuhelinverkkojen 5G. Otto Reinikainen & Hermanni Rautiainen Älypuhelinverkkojen 5G Otto Reinikainen & Hermanni Rautiainen Johdanto [1][2] Viimeisen 30 vuoden aikana mobiiliverkkojen markkinaosuus on kasvanut merkittävästi Langattomia laitteita on joillain alueilla

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

J. Virtamo Jonoteoria / Prioriteettijonot 1

J. Virtamo Jonoteoria / Prioriteettijonot 1 J. Virtamo 38.3143 Jonoteoria / Prioriteettijonot 1 Prioriteettijonot Tarkastellaan M/G/1-jonojärjestelmää, jossa asiakkaat on jaettu K:hon prioriteettiluokkaan, k = 1,..., K: - luokalla 1 on korkein prioriteetti

Lisätiedot

S09 04 Kohteiden tunnistaminen 3D datasta

S09 04 Kohteiden tunnistaminen 3D datasta AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen

Lisätiedot

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Fysiikan laboratoriotyöt 1, työ nro: 2, Harmoninen värähtelijä

Fysiikan laboratoriotyöt 1, työ nro: 2, Harmoninen värähtelijä Fysiikan laboratoriotyöt 1, työ nro: 2, Harmoninen värähtelijä Tekijä: Mikko Laine Tekijän sähköpostiosoite: miklaine@student.oulu.fi Koulutusohjelma: Fysiikka Mittausten suorituspäivä: 04.02.2013 Työn

Lisätiedot

LIITE 1 VIRHEEN ARVIOINNISTA

LIITE 1 VIRHEEN ARVIOINNISTA 1 LIITE 1 VIRHEEN ARVIOINNISTA Mihin tarvitset virheen arviointia? Mittaustulokset ovat aina todellisten luonnonvakioiden ja tutkimuskohdetta kuvaavien suureiden likiarvoja, vaikka mittauslaite olisi miten

Lisätiedot

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone ja ylläpito computer = laskija koostuu osista tulostuslaite näyttö, tulostin syöttölaite hiiri, näppäimistö tallennuslaite levy (keskusyksikössä) Keskusyksikkö suoritin prosessori emolevy muisti levy Suoritin

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros)

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros) Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros) Tämän harjoituksen tarkoituksena on tutustua IP-protokollaan. Kertausta - Harjoitus 4: Erään sovelluksen

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 5 521475S Silmukalliset ohjelmat Silmukat joissa ei ole riippuvuussyklejä voidaan vektoroida eli suorittaa silmukan vektorointi Jokainen yksittäinen käsky silmukan rungossa

Lisätiedot

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen Flash AD-muunnin Koostuu vastusverkosta ja komparaattoreista. Komparaattorit vertailevat vastuksien jännitteitä referenssiin. Tilanteesta riippuen kompraattori antaa ykkösen tai nollan ja näistä kootaan

Lisätiedot

Esimerkki: Tietoliikennekytkin

Esimerkki: Tietoliikennekytkin Esimerkki: Tietoliikennekytkin Tämä Mathematica - notebook sisältää luennolla 2A (2..26) käsitellyn esimerkin laskut. Esimerkin kuvailu Tarkastellaan yksinkertaista mallia tietoliikennekytkimelle. Kytkimeen

Lisätiedot

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmiston testaus ja laatu. Testaustasot Ohjelmiston testaus ja laatu Testaustasot Testauksen vaihejako Tarpeet / sopimus Järjestelmätestaus Hyväksymiskoe Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu

Lisätiedot

Valintanauhan komentojen selaaminen Jokaisessa valintanauhassa on ryhmiä ja jokaisessa ryhmässä on joukko siihen liittyviä komentoja.

Valintanauhan komentojen selaaminen Jokaisessa valintanauhassa on ryhmiä ja jokaisessa ryhmässä on joukko siihen liittyviä komentoja. Pikaopas Microsoft Project 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Pikatyökalurivi Voit mukauttaa tämän alueen,

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Kuva maailmasta Pakettiverkot (Luento 1)

Kuva maailmasta Pakettiverkot (Luento 1) M.Sc.(Tech.) Marko Luoma (1/20) M.Sc.(Tech.) Marko Luoma (2/20) Kuva maailmasta Pakettiverkot (Luento 1) WAN Marko Luoma TKK Teletekniikan laboratorio LAN M.Sc.(Tech.) Marko Luoma (3/20) M.Sc.(Tech.) Marko

Lisätiedot

Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi

Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi - Android 4.3 Jelly Bean ja 4.4 Kitkat käyttöjärjestelmien videotoiston suorituskyvyn vertailu Nexus 7 tabletilla

Lisätiedot

Valintanauhan komennot Valintanauhan välilehdissä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

Valintanauhan komennot Valintanauhan välilehdissä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja. Pikaopas Microsoft Project 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Pikatyökalurivi Mukauta tämä alue niin,

Lisätiedot

Automatisoinnilla tehokkuutta mittaamiseen

Automatisoinnilla tehokkuutta mittaamiseen Automatisoinnilla tehokkuutta mittaamiseen Finesse seminaari 22.3.2000 Päivi Parviainen 1 Miksi automatisoida? Mittaamisen hyödyt ohjelmistokehityksen ajantasainen seuranta ja hallinta tuotteen laadun

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

Tikon ostolaskujen käsittely

Tikon ostolaskujen käsittely Toukokuu 2014 1 (8) Toukokuu 2014 2 (8) Sisällysluettelo 1. Käyttäjäasetukset... 3 2. Yleiset parametrit... 3 3. Kierrätysasetukset... 3 4. palvelimen tiedot... 4 5. lähetyksen aktivointi... 5 6. Eräajot

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

Lisätiedot

Excel-lomakkeen (syöttötaulukko) käyttäminen talousarvio- ja suunnitelmatietojen toimittamisen testaamisessa Kuntatalouden tietopalvelussa

Excel-lomakkeen (syöttötaulukko) käyttäminen talousarvio- ja suunnitelmatietojen toimittamisen testaamisessa Kuntatalouden tietopalvelussa Valtiokonttori 1 (8) Excel-lomakkeen (syöttötaulukko) käyttäminen talousarvio- ja suunnitelmatietojen toimittamisen testaamisessa Kuntatalouden tietopalvelussa Valtiokonttori 2 (8) Sisällys 1 Yleistä...

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1 Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita

Lisätiedot

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi Rinnakkaisuuden hyväksikäyttö peleissä Paula Kemppi 24.4.2008 Esityksen rakenne Johdantoa Rinnakkaisuus Pelimoottorien rinnakkaisuuden mallit Funktionaalisen rinnakkaisuuden malli Rinnakkaisen tiedon malli

Lisätiedot

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Siirtoprotokolla

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Siirtoprotokolla Testitapaukset - Siirtoprotokolla Sisällysluettelo 1. Johdanto...3 2. Testattava järjestelmä...4 3. Testitapaukset...5 3.1 Ohjelma-ajan lukeminen...5 3.2 Koordinaattidatan lukeminen...5 3.3 Lähetysajan

Lisätiedot

Sovellettu todennäköisyyslaskenta B

Sovellettu todennäköisyyslaskenta B Sovellettu todennäköisyyslaskenta B Antti Rasila 8. marraskuuta 2007 Antti Rasila () TodB 8. marraskuuta 2007 1 / 18 1 Kertausta: momenttimenetelmä ja suurimman uskottavuuden menetelmä 2 Tilastollinen

Lisätiedot

Testidatan generointi

Testidatan generointi Testidatan generointi Anu Ahonen Kevät 2008 Tämä työ on tehty Creative Commons -lisenssin alla Työn tarkasti 9.4.2008 Jouni Huotari (JAMK/IT) 1 SISÄLTÖ 1 TYÖN LÄHTÖKOHDAT JA TOTEUTUS...2 2 TESTIDATAN GENEROINTI

Lisätiedot

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle 2 Sisällys 1 Palvelunhallinta... 3 1.1 Käyttäjäryhmän luominen... 3 2 Tehtävienhallinta- perustiedot... 4 2.1 Yhtiön perustiedot... 4 2.2 Tehtävä-/

Lisätiedot

Ryhmäläisten nimet:

Ryhmäläisten nimet: 1 TJT10, kevät 2017 VERTAISARVIOINTILOMAKE Ryhmäläisten nimet: 1. 2. 3. Heuristinen arviointi käyttäen ohjeistuksessa olevaa heuristiikkalistaa. Tehdään vertaisarviointi käyttöliittymästä. Testi suoritetaan

Lisätiedot

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0 TESTIRAPORTTI - VYM JA KANTA Versio 1.0 i Sisällysluettelo 1. YLEISTÄ 2 1.1. Dokumentin tarkoitus ja yleisiä toimintaohjeita 2 1.2. Viittaukset muihin dokumentteihin 2 2. SUORITETTAVA TESTI 3 2.1. Testauksen

Lisätiedot

Järvi 1 Valkjärvi. Järvi 2 Sysijärvi

Järvi 1 Valkjärvi. Järvi 2 Sysijärvi Tilastotiedettä Tilastotieteessä kerätään tietoja yksittäisistä asioista, ominaisuuksista tai tapahtumista. Näin saatua tietoa käsitellään tilastotieteen menetelmin ja saatuja tuloksia voidaan käyttää

Lisätiedot

Järvitesti Ympäristöteknologia T571SA 7.5.2013

Järvitesti Ympäristöteknologia T571SA 7.5.2013 Hans Laihia Mika Tuukkanen 1 LASKENNALLISET JA TILASTOLLISET MENETELMÄT Järvitesti Ympäristöteknologia T571SA 7.5.2013 Sarkola Eino JÄRVITESTI Johdanto Järvien kuntoa tutkitaan monenlaisilla eri menetelmillä.

Lisätiedot

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä OLAP-kuution teko Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta Esimerkin kuvaus ja OLAP-määritelmä Tavoitteena on luoda OLAP-kuutio Northwind-tietokannan tilaustiedoista

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa.

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa. ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa. Projekti kannattaa tallentaa muutenkin aina sillöin tällöin, jos käy niin ikävästi että

Lisätiedot

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO JOUNI HUOTARI 2005-2010 OLAP-OHJETEKSTIT KOPIOITU MICROSOFTIN OHJATUN OLAP-KUUTION TEKO-OHJEESTA ESIMERKIN KUVAUS JA OLAP-MÄÄRITELMÄ

Lisätiedot

pitkittäisaineistoissa

pitkittäisaineistoissa Puuttuvan tiedon ongelma p. 1/18 Puuttuvan tiedon ongelma pitkittäisaineistoissa Tapio Nummi tan@uta.fi Matematiikan, tilastotieteen ja filosofian laitos Tampereen yliopisto mtl.uta.fi/tilasto/sekamallit/puupitkit.pdf

Lisätiedot

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi LoCCaM Riistakamerasovellus Dimag Ky janne.koski @ dimag.fi +358505907788 Sovelluksen toimintaperiaate Toimintaperiaate yksinkertaistettuna on seuraavanlainen Kamera ottaa kuvan tai videon jonka lähettää

Lisätiedot

S-114.3812 Laskennallinen Neurotiede

S-114.3812 Laskennallinen Neurotiede S-114.381 Laskennallinen Neurotiede Projektityö 30.1.007 Heikki Hyyti 60451P Tehtävä 1: Virityskäyrästön laskeminen Luokitellaan neuroni ensin sen mukaan, miten se vastaa sinimuotoisiin syötteisiin. Syöte

Lisätiedot

Käyttöohje. Versiohistoria: 1.0 7.5.2003 1. versio Mari 1.1 9.5.2003 Kommenttien perusteella korjattu versio

Käyttöohje. Versiohistoria: 1.0 7.5.2003 1. versio Mari 1.1 9.5.2003 Kommenttien perusteella korjattu versio Otus- projektinhallintatyökalu Käyttöohje Versiohistoria: 1.0 7.5.2003 1. versio Mari 1.1 9.5.2003 Kommenttien perusteella korjattu versio Mari Tampere 9. toukokuuta 2003 Kimmo Airamaa, Andreas Asuja,

Lisätiedot

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA Tavallisimmin lukuja käsittelevien datasanojen tyypiksi kannattaa asettaa kokonaisluku 16 bitin INT, jonka vaihtelualueeksi tulee

Lisätiedot

Tietotekniikan valintakoe

Tietotekniikan valintakoe Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan

Lisätiedot

4 Tehokkuus ja algoritmien suunnittelu

4 Tehokkuus ja algoritmien suunnittelu TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin

Lisätiedot

Liikkuva-sovellusprojekti

Liikkuva-sovellusprojekti Liikkuva-sovellusprojekti Joel Kivelä Erkki Koskenkorva Mika Lehtinen Oskari Leppäaho Petri Partanen Vaatimusmäärittely Julkinen Versio 010 1322014 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä

Lisätiedot

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?

Lisätiedot

PANK PANK-4122 ASFALTTIPÄÄLLYSTEEN TYHJÄTILA, PÄÄLLYSTETUTKAMENETELMÄ 1. MENETELMÄN TARKOITUS

PANK PANK-4122 ASFALTTIPÄÄLLYSTEEN TYHJÄTILA, PÄÄLLYSTETUTKAMENETELMÄ 1. MENETELMÄN TARKOITUS PANK-4122 PANK PÄÄLLYSTEALAN NEUVOTTELUKUNTA ASFALTTIPÄÄLLYSTEEN TYHJÄTILA, PÄÄLLYSTETUTKAMENETELMÄ Hyväksytty: Korvaa menetelmän: 9.5.2008 26.10.1999 1. MENETELMÄN TARKOITUS 2. MENETELMÄN SOVELTAMISALUE

Lisätiedot

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka

The administrative process of a cluster. Santtu Rantanen Valvoja: Prof. Jorma Jormakka The administrative process of a cluster Santtu Rantanen Valvoja: Prof. Jorma Jormakka Sisällysluettelo Johdanto Yleistä HA klustereista Tietoturva klustereissa Hallintaprosessi Johtopäätökset Johdanto

Lisätiedot

Advanced Test Automation for Complex Software-Intensive Systems

Advanced Test Automation for Complex Software-Intensive Systems Advanced Test Automation for Complex Software-Intensive Systems Aiheena monimutkaisten ohjelmistovaltaisten järjestelmien testauksen automatisointi Mistä on kyse? ITEA2-puiteohjelman projekti: 2011-2014

Lisätiedot

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen Nspire CAS - koulutus Ohjelmiston käytön alkeet 3.12.2014 Pekka Vienonen Ohjelman käynnistys ja käyttöympäristö Käynnistyksen yhteydessä Tervetuloa-ikkunassa on mahdollisuus valita suoraan uudessa asiakirjassa

Lisätiedot

Aineistokoko ja voima-analyysi

Aineistokoko ja voima-analyysi TUTKIMUSOPAS Aineistokoko ja voima-analyysi Johdanto Aineisto- eli otoskoon arviointi ja tutkimuksen voima-analyysi ovat tilastollisen tutkimuksen suunnittelussa keskeisimpiä asioita. Otoskoon arvioinnilla

Lisätiedot

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä Edistymisraportti v. T4 (Toteutus 4) Päivitetty 15.3.2001 klo 18:13 2 (8) Sisällys 1 PROJEKTIN TILA...3 2 SUORITETUT TEHTÄVÄT...6 3 KÄYTETYT MENETELMÄT...7 4 ONGELMAT...8 EDISTYMISRAPORTTI 2 3 (8) 1. Projektin

Lisätiedot

Kahden laboratorion mittaustulosten vertailu

Kahden laboratorion mittaustulosten vertailu TUTKIMUSSELOSTUS NRO RTE9 (8) LIITE Kahden laboratorion mittaustulosten vertailu Sisältö Sisältö... Johdanto... Tulokset.... Lämpökynttilät..... Tuote A..... Tuote B..... Päätelmiä.... Ulkotulet.... Hautalyhdyt,

Lisätiedot

Vasteaika. Vasteaikaa koskeva ohje ei ole juuri muuttunut Robert B. Millerin vuonna 1968 pitämästä esityksestä:

Vasteaika. Vasteaikaa koskeva ohje ei ole juuri muuttunut Robert B. Millerin vuonna 1968 pitämästä esityksestä: Nielsen: "Olen tutkinut Webin käytettävyyttä vuodesta 1994, ja jokaisessa tutkimuksessa esiin on noussut sama asia: käyttäjät haluaisivat sivujen latautuvan nopeammin. Aluksi olin sitä mieltä, että käyttäjät

Lisätiedot

OHJELMISTOTEKNIIKKA LABORATORIOHARJOITUKSEN OHJEET

OHJELMISTOTEKNIIKKA LABORATORIOHARJOITUKSEN OHJEET OHJELMISTOTEKNIIKKA LABORATORIOHARJOITUKSEN OHJEET Laboratorioharjoituksessa on testattavana kaksi ohjelmaa. Harjoituksen päämääränä on löytää mahdollisimman paljon ohjelmistovirheitä testattavista ohjelmista.

Lisätiedot

10 Liiketaloudellisia algoritmeja

10 Liiketaloudellisia algoritmeja 218 Liiketaloudellisia algoritmeja 10 Liiketaloudellisia algoritmeja Tämä luku sisältää liiketaloudellisia laskelmia. Aiheita voi hyödyntää vaikkapa liiketalouden opetuksessa. 10.1 Investointien kannattavuuden

Lisätiedot

Aurinkoenergiajärjestelmien etäseurantajärjestelmä

Aurinkoenergiajärjestelmien etäseurantajärjestelmä Aurinkoenergiajärjestelmien etäseurantajärjestelmä Janne Raitaniemi (Bitec Oy) Saku Rantamäki (SAMK) Aurinkoenergiajärjestelmien luonne järjestelmien odotettu elinkaari on pitkä investoinnin kannattavuus

Lisätiedot

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä? Miksi moniprosessorijärjestelmä? Laskentaa voidaan hajauttaa useammille prosessoreille nopeuden, modulaarisuuden ja luotettavuuden vaatimuksesta tai hajauttaminen voi helpottaa ohjelmointia. Voi olla järkevää

Lisätiedot

5.3 Ensimmäisen asteen polynomifunktio

5.3 Ensimmäisen asteen polynomifunktio Yllä olevat polynomit P ( x) = 2 x + 1 ja Q ( x) = 2x 1 ovat esimerkkejä 1. asteen polynomifunktioista: muuttujan korkein potenssi on yksi. Yleisessä 1. asteen polynomifunktioissa on lisäksi vakiotermi;

Lisätiedot

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi 1. Luento: Sulautetut Järjestelmät Arto Salminen, arto.salminen@tut.fi Agenda Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu

Lisätiedot

Tikon ostolaskujen käsittely

Tikon ostolaskujen käsittely Toukokuu 2013 1 (7) 6.3.0 Copyright Aditro 2013 Toukokuu 2013 2 (7) Sisällysluettelo 1. Käyttäjäasetukset... 3 2. Yleiset parametrit... 3 3. Kierrätysasetukset... 3 4. palvelimen tiedot... 4 5. lähetyksen

Lisätiedot