jussi nieminen syntesoituva liikennegeneraattori ......ii tiivistelmÄ tampereen teknillinen...

30

Upload: others

Post on 07-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

JUSSI NIEMINEN

Syntesoituva liikennegeneraattori piirinsisäisten tiedonsiirtoverk-

kojen testaukseen ja suorituskykyvertailuun

Kandidaatintyö

Tarkastaja: Erno Salminen

Page 2: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

II

TIIVISTELMÄ

TAMPEREEN TEKNILLINEN YLIOPISTO

Automaatiotekniikan koulutusohjelma

JUSSI NIEMINEN: Syntesoituva liikennegeneraattori piirinsisäisten tiedon-

siirtoverkkojen testaukseen ja suorituskykyvertailuun

Kandidaatintyö, 26 sivua

Tammikuu 2010

Pääaine: Digitaali- ja tietokonetekniikka

Tarkastaja: Erno Salminen

Avainsanat: liikennegeneraattori

Liikennegeneraattori on piirinsisäisten tiedonsiirtoverkkojen tutkimiseen tarkoitet-

tu, testiliikennettä verkkoon luova työkalu. Tässä kandidaatintyössä esitellään Tam-

pereen teknillisen yliopiston Tietokonetekniikan laitoksella kehitetty syntesoituva,

dynaamisesti kon�guroituva ja verkossa tapahtuvaan liikenteeseen reagoiva liikenne-

generaattori, 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äyt-

tämiseen. Työssä pohditaan myös generaattorin tämänhetkisen kehitysversion heik-

kouksia ja suuntaviivoja tulevaa kehitysta varten.

Page 3: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

III

SISÄLLYS

1. Johdanto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. Liikennegeneraattoreita ja niiden ominaisuuksia . . . . . . . . . . . . . . . . 3

3. Syntesoituvan liikennegeneraattorin syvin olemus . . . . . . . . . . . . . . . 4

3.1 Generaattoreiden luoma liikenne . . . . . . . . . . . . . . . . . . . . . 5

3.1.1 Sanojen rakenne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.2 Lähetyksen rakenne . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.3 Polkumittaus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Liipaisimet ja ajastimet . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3 Erikoisominaisuudet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3.1 Riippuvuudet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3.2 Aktivoitumisen estäminen . . . . . . . . . . . . . . . . . . . . . . 9

4. Liikennegeneraattoreiden keräämä mittausdata . . . . . . . . . . . . . . . . 11

5. Järjestelmän kon�gurointi ja tulosten saaminen . . . . . . . . . . . . . . . . 13

5.1 Dynaaminen kon�gurointi . . . . . . . . . . . . . . . . . . . . . . . . . 13

5.2 Tulosten raportointi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

6. Käyttöesimerkkejä . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

6.1 MPEG-4-videopakkauksen mallintaminen liikennegeneraattoreilla . . . 17

6.1.1 Sovellusmallin luominen ja vaadittava työmäärä . . . . . . . . . . 18

6.1.2 Esimerkin vaatimat erikoisrakenteet . . . . . . . . . . . . . . . . . 19

6.2 Tiedonsiirtoverkkojen vertailu liikennegeneraattoreiden avulla . . . . . 20

7. Yhteenveto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

7.1 Tulevia kehittämiskohteita . . . . . . . . . . . . . . . . . . . . . . . . . 24

Lähteet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Page 4: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

IV

TERMIT JA SYMBOLIT

Termi Selitys

Ajastin Liikennegeneraattorin liikennettä luova elementti,

käynnistää uuden lähetyksen aina tietyn jakson-

ajan välein.

Dynaamien kon�gurointi Liikennegeneraattoreiden toiminnan kon�gurointi

ajonaikaisesti ilman uutta synteesikertaa.

FPGA-piiri Field Programmable Gate Array, uudelleenohjel-

moitava logiikkapiiri.

JTAG Joint Test Action Group, kommunikointimenetel-

mä mikropiirien testausta varten.

Latenssi Viive jonkin tietyn toiminnan alusta sen päättymi-

seen. Tässä yhteydessä viive lähetyksen lähtöhet-

kestä perille saapumiseen.

LGPL Lesser General Public License, avoimen lähdekoo-

din 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 tiedonsiirtoverk-

ko.

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 Tra�c Generator, liikennegeneraattori.

Topologia Verkon rakenne, esimerkiksi väylä, rengas tai

mesh-verkko.

UART Universal Asynchronous Receiver Transmitter,

sarjaliikennepiiri.

Page 5: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

1

1. JOHDANTO

Yksittäisille piireille rakennettavista järjestelmistä (System-on-Chip, SoC) tulee vuo-

si vuodelta monipuolisempia. Samaan aikaan, kun järjestelmien monimutkaisuus

kasvaa, kiristyvät sekä tehokkuus-, energiankulutus-, että suunnitteluaikavaatimuk-

set. Tavoitteena onkin pystyä luomaan järjestelmiä yhdistelemällä helposti erilaisia

komponentteja standardirajapintojen kautta. Ongelmia tuovat lisäksi pitkät signaa-

livedot, jotka rajoittavat kellotaajuutta ja haittaavat esimerkiksi järjestelmän jaka-

mista eri kelloalueisiin. Perinteisesti komponenttien välinen kommunikointi on hoi-

dettu 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 kui-

tenkin 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 ras-

kasta, minkä johdosta kattavat testiajot ovat käytännössä liian hitaita. Yksi vaih-

toehto 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 mah-

dollisista 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 hy-

vin 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 voi-

daankin korvata liikennegeneraattoreilla, jotka eivät suorita sovellukseen liittyvää

Page 6: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

1. Johdanto 2

oikeaa laskentaa. Ne luovat vain verkkoon todellista sovellusta mahdollisimman hy-

vin 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 to-

teutettu Tampereen teknillisen yliopiston tietokonetekniikan laitoksella kesällä 2009

kirjoittajan ja toisen tutkimusapulaisen, Antti Alhosen, toimesta. Tämän liikenne-

generaattorin ensisijainen tavoite on selkeästi nopeuttaa todellisten sovellusten suo-

rituskyvyn ja sovelluksiin tehtävien muutosten suorituskykyvaikutusten tutkimista

verkon näkökulmasta generaattoreilla luotavan mallin avulla. Tavoitteen toteutumi-

seksi näiden liikennegeneraattoreiden tulee olla syntesoituvia, ajonaikaisesti kon�-

guroitavia sekä kykeneviä mallintamaan monimutkaisiakin liikennerakenteita.

Liikennegeneraattoreiden suunnittelutyössä Antti Alhosen vastuulla on ollut jär-

jestelmän kon�guroinnin sekä tulosten tallentamisen ja raportoinnin toteuttaminen.

Tämän kandidaatintyön painopiste on kirjoittajan osuudessa, joka on ollut liikennet-

tä luovan toiminnallisuuden suunnittelu ja toteutus. Työssä keskitytään suunnitte-

luratkaisuihin ja generaattoreiden käyttömahdollisuuksia esitteleviin esimerkkeihin.

Varsinaiset käyttöohjeet ja toteutusyksityiskohdat selviävät paremmin generaatto-

reiden dokumentaatiosta [8].

Kandidaatintyön rakenne on seuraavanlainen. Kappaleessa 2 esitellään ensin lii-

kennegeneraattoreiden 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 kon�guroidaan ja minkälaisia mit-

taustuloksia niiden avulla on mahdollista saada. Kappale 6 sisältää käytännön esi-

merkkejä kehitetyn liikennegeneraattorin käyttämisestä verkkojen tutkimisessa. Esi-

merkkitapauksena on MPEG-4-videopakkaussovelluksen mallintaminen sekä erilais-

ten verkkoratkaisujen vertailu liikennegeneraattoreiden avulla. Lopuksi kappalees-

sa 7 tehdään yhteenveto esitellystä liikennegeneraattorista ja sen sopivuudesta eri-

laisiin käyttökohteisiin sekä jatkokehityksen suuntaviivoja.

Page 7: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

3

2. LIIKENNEGENERAATTOREITA JA NIIDEN

OMINAISUUKSIA

Lukuisia erilaisia liikennegeneraattoreita käytetään apuna tutkittaessa tiedonsiirto-

verkkojen toimintaa ja suorituskykyä. Yksinkertaisimmillaan generaattori lähettää

tietyn määrän sanoja verkkoon tietyin aikavälein. Kattavampien testien mahdollis-

tamiseksi generaattoreista on pyritty tekemään entistä muunneltavampia. Yleisiä

muokattavia parametreja ovat lähetyksen määrä, pituus ja lähetysten välinen ai-

ka. 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 parhai-

ten 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 si-

mulointiin tarkoitettujen liikennegeneraattoreiden ominaisuudet voivat olla huomat-

tavan monipuoliset.

Syntesoituvia liikennegeneraattoreita on tehty esimerkiksi Kiinan Hefein teknilli-

sessä yliopistossa. OCTG (On-line Con�gurable Tra�c Generator) on liikennegene-

raattori, joka voidaan kon�guroida suoraan piirillä käyttäen JTAG-rajapintaa (Joint

Test Action Group). OCTG on myös mahdollista kon�guroida kesken ajon verkon

toiminnan häiriintymättä. Se on kuitenkin tyypiltään tasaista liikennettä luova ge-

neraattori: 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 mahdol-

listaa todellisten sovellusten mallintamisen, ja se voidaan syntesoida FPGA-laudalle

pitkiä ajoja varten. Lisäksi järjestelmän toiminnallisuus voidaan kon�guroida dy-

naamisesti, jolloin minimoidaan tarve uusille synteesikerroille.

Page 8: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

4

3. SYNTESOITUVAN

LIIKENNEGENERAATTORIN SYVIN OLEMUS

Tässä kandidaatintyössä esiteltävä syntesoituva liikennegeneraattori (engl. Tra�c

Generator, TG) helpottaa FPGA-alustalla tapahtuvaa vertailua erilaisten piirin-

sisäisten tiedonsiirtoverkkoratkaisujen sopivuudesta sovelluksille. Sen sijaan, että

jouduttaisiin syntesoimaan FPGA-laudalle todellinen järjestelmä prosessoreineen ja

kiihdytinlohkoineen, voidaan sovelluksen verkkoliikennettä mallintaa käyttäen lii-

kennegeneraattoreita. Jokaista komponenttia (prosessori, muisti, kiihdytinlohko ja

niin edelleen) kohden syntesoidaan kuvan 3.1 mukaisesti yksi liikennegeneraatto-

ri, 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 kon�guroinnista sekä

mittaustulosten keräämisestä. Varsinaisten mittausten aikana isäntägeneraattorin

toiminta ei poikkea muista.

Jos tarkoituksena on yksinkertaisesti etsiä valmiille sovellukselle paras verkkorat-

kaisu, voi liikennegeneraattoreiden sijaan olla parempi käyttää sovellusta itseään.

Tällöin sovellus tulisi olla suhteellisen helppo kytkeä eri verkkoihin ja siitä tuli-

si 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 liikenne-

generaattorimallin luominen usein nopeampaa kuin todellisen sovelluksen muutta-

minen.

Dynaaminen uudelleenkon�gurointi nopeuttaa liikennegeneraattoreiden käyttöä

huomattavasti. Päinvastoin kuin simuloinnissa, FPGA-alustaa käytettäessä järjes-

telmä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ääri-

telläänkin vain käytettävissä olevat resurssit. Varsinainen toiminnallisuus syötetään

ajonaikana UART-liitynnän kautta. Liikennegeneraattoreiden kon�guroinnista ker-

rotaan lisää kappaleessa 5.1.

Vaikka nämä liikennegeneraattorit on suunniteltu pääasiassa syntesoituviksi, voi-

Page 9: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

3. Syntesoituvan liikennegeneraattorin syvin olemus 5

Tehtävä 1 Tehtävä 3

Tehtävä 2Tehtävä 4

Tehtävä 5

...

Sovellus

CPU 1

Kiihdytin

Muisti

CPU 2

NoC

...

...

Tehtävät sijoiteltuna arkkitehtuuriin

TG 0(master)

TG 2

TG 1

TG 3

NoC

...

...

PC

UART

Sovellus mallinnettuna liikennegeneraattoreilla

1 2

3 4 5

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 resurs-

seista, joten generaattoreiden suunnittelussa on jouduttu tasapainottelemaan omi-

naisuuksien ja tallennuskapasiteetin sekä käytettyjen resurssien välillä. Näin ollen

pelkkää simulointia varten saattaa olla järkevämpää käyttää vain simulaatiota var-

ten tehtyjä liikennegeneraattoreita, kuten [7], [6] tai [3].

3.1 Generaattoreiden luoma liikenne

Liikennegeneraattorit siis mallintavat todellisten järjestelmien viestiliikennettä tie-

donsiirtoverkoissa. Lähetetyt sanat sisältävät tietoja, joilla jokainen verkossa kul-

keva sana voidaan tietyn aikaikkunan sisällä liittää yksiselitteisesti tiettyyn lähe-

tykseen. 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

Page 10: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

3. Syntesoituvan liikennegeneraattorin syvin olemus 6

yhteyksien välillä liikkunutta datamäärää sekä lähetysten viiveitä.

3.1.1 Sanojen rakenne

Yksittäisen sanan rakenne on esitetty kuvassa 3.2. Kaikille sanoille yhteisiä data-

kenttiä 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:

Kohdeosoite Lähdeosoite KuormaSanantyyppi

31 .......................... 25,24 .......................... 18,17 ..... 16,15 .................................................................................. 0

Kuva 3.2: Yksittäisen sanan rakenne liikennegeneraattoreiden välisessä liikenteessä.

3.1.2 Lähetyksen rakenne

Kuvassa 3.3 esitetään yksittäisen lähetyksen rakentuminen eri tyyppisistä sanois-

ta. 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 mu-

kana kulkee viiveen mittaamiseen käytettävä aikaleima.

0

1

2

.

.

.

n-3

n-2

n-1

Lähetyksen rakenne:

Kohdeosoite Lähdeosoite AikaleimaAloitus

Kohdeosoite Lähdeosoite DatatyyppiData Datasanan järjestysnumero

Kohdeosoite Lähdeosoite DatatyyppiData Datasanan järjestysnumero

Kohdeosoite Lähdeosoite AikaleimaLopetus

Kohdeosoite Lähdeosoite DatatyyppiData Datasanan järjestysnumero

Kohdeosoite Lähdeosoite Suoritusketjun alkuaikaPolku

Järjestys-numero:

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 si-

sältävät datatyyppikentän sekä juoksevan numeron. Datatyyppikenttää käytetään

Page 11: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

3. Syntesoituvan liikennegeneraattorin syvin olemus 7

lähetysten erittelemiseen ja uusien lähetysten aloittamiseen saadun datan perusteel-

la. 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 liikennegeneraatto-

rit raportoivatkin suorituskykymittausten lisäksi sattuneiden tiedonsiirtovirheiden

määrän.

3.1.3 Polkumittaus

Joissakin sovelluksissa suoritus voi kulkea selkeää polkua pitkin: yksi prosessoin-

tielementti laskee jotain, lähettää tuloksensa eteenpäin seuraavalle, joka sekin las-

kee oman osuutensa ja lähettää tulokset jälleen eteenpäin. Tällaisten suoritusketju-

jen kokonaisviivettä voidaan mitata liikennegeneraattoreilla polkumittauspakettien

avulla.

Polku määritellään järjestelmän kon�gurointivaiheessa, ja kaikkiin kyseistä pol-

kua kulkeviin lähetyksiin lisätään polkumittaussana. Kyseinen sana sisältää aika-

leiman koko suoritusketjun alkuajankohdasta. Polkusanan vastaanottaessaan gene-

raattori merkitsee ylös normaalin yhteysväliviiveen lisäksi viiveen koko suoritusket-

jun alusta.

3.2 Liipaisimet ja ajastimet

Kaikki liikennegeneraattoreiden toiminnallisuus perustuu liipaisimiin ja ajastimiin.

Liipaisimet aktivoituvat, kun generaattorille saapuva data vastaa liipaisimelle ase-

tettuja 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ähe-

tyksensä.

Liipasimen aktivoituminen tapahtuu joko saapuvan siirron lähettäjän, datatyyp-

pikentän tai molempien perusteella. Käyttäjän liikennemallia luodessaan vapaasti

valitsemilla datatyyppikentän arvoilla pyritään erottelemaan mallinnettavan sovel-

luksen 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 lii-

paisimella, jotka ovat herkkiä samalle lähettäjän osoitteelle mutta eri datatyyppien

arvoille.

Page 12: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

3. Syntesoituvan liikennegeneraattorin syvin olemus 8

TG 1 TG 2

Ajastin 1:- odotusaika: 500- prosessointiaika: 10- kohde: TG 2- ...

Liipaisin 1:- moodi: osoiteherkkä- aktivoiva osoite: TG 1- prosessointiaika: 20- ...

Kellojaksoja kulunut: 500 – Ajastin 1 aktivoituu, generaattori 1 alkaa prosessoida.

A1 L1

TG 1 TG 2

!A1 L1

Kellojaksoja kulunut: 510 – Generaattori 1 käynnistää lähetyksen.

TG 1 TG 2

!A1 L1

Kellojaksoja kulunut: 510 + latenssi – Generaattorin 2 liipaisin aktivoituu.

TG 1 TG 2

A1 !L1

Kellojaksoja kulunut: 510 + 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ä tu-

levaa syötettä (esimerkiksi kameralta saatava videokuva tai käyttäjän painallukset),

mutta eniten niistä on hyötyä verkkojen yleistä toimivuutta tai suorituskykyä tes-

tattessa. Ajastimilla voi luoda verkkoon tasaista kuormaa, ja viivearvoa tasaises-

ti 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. Verk-

kojen vertailusta ajastimien avulla on esimerkki kappaleessa 6.2.

Kaikki liipaisimet ja ajastimet sisältävät parametreja, joiden perusteella liiken-

negeneraattori luo uuden lähetyksen liipaisimen tai ajastimen aktivoituessa. Näihin

parametreihin kuuluvat lähetyksen pituus, kohde, prosessointiaikaa mallintava odo-

tusaika sekä osiossa 3.3.1 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 kon�guroida vastaamaan sille lä-

hettäjälle, jolta liipaisimen aktivoinut lähetys saapui.

Page 13: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

3. Syntesoituvan liikennegeneraattorin syvin olemus 9

3.3 Erikoisominaisuudet

Todellisten sovellusten mallinnus vaatii pelkkiä lähettäjän osoitteeseen ja lähetys-

tyyppiin 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). Lii-

kennegeneraattoreiden suunnittelussa on pyritty muutamalla erikoisominaisuudella

mahdollistamaan monimutkaistenkin järjestelmien suorituksen mallintaminen.

3.3.1 Riippuvuudet

Liikennegeneraattorit sisältävät jaettuja riippuvuuslippuja, joita sekä liipaisimet et-

tä ajastimet voivat asettaa ja joista ne voivat olla riippuvaisia. Jos liipaisin tai ajastin

on riippuvainen lipusta, jota ei ole vielä asetettu, se voi kon�guraatiosta riippuen jo-

ko 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 odote-

tuille lähetyksille. Toinen liipaisimista asettaa riippuvuuslipun, ja toinen ei aktivoi-

du ennen, kuin lippu on asetettu. Haluttu käynnistettävä lähetys on kon�guroitu

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.

3.3.2 Aktivoitumisen estäminen

Aktivoitumisen estämistä on kahdenlaista. Liipaisimen tai ajastimen voi asettaa es-

tä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 liipaisin-

ta, 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

Page 14: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

3. Syntesoituvan liikennegeneraattorin syvin olemus 10

Lähetys osoitteesta 2 – Liipaisin 2 aktivoituu mutta jää odottamaan, koska riippuvuuslippua 1 ei ole asetettu.

L1

L2

TG 3

R1

Liipaisin 1: - Aktivoituu lähdeosoitteesta 1- Asettaa aktivoituessaan riippuvuuslipun 1- ...

Liipaisin 2:- Aktivoituu lähdeosoitteesta 2- Riippuvainen riippuvuuslipusta 1- Aktivoiduttuaan jää odottamaan lippua- ...

Riippuvuuslippu 1

L1

L2

TG 3

R1!

Lähetys osoitteesta 1 – Liipaisin 1 aktivoituu, prosessoi ja lopuksi asettaa riippuvuuslipun sekä käynnistää oman lähetyksensä.

L1

L2

TG 3

R1!!

Liipaisimen 1 lähetys päättyy – Liipaisin 2 alkaa prosessoimaan, jonka jälkeen se nollaa riippuvuuslipun sekä käynnistää oman lähetyksensä.

L1

L2

TG 3

R1!

xL1

L2

TG 3

R1!!

L1

L2

TG 3

R1xL1

L2

TG 3

R1!

Kuva 3.5: Esimerkki riippuvuuslippujen toiminnasta

silmukka todella päättyy, eikä generaattorille 2 lähetetä mitään. Silmukan kierros-

luku riippuu jälkimmäiselle liipaisimelle asetettujen toimettomien odotuskertojen

määrästä.

TG 2

TG 3

TG 1

TG 4

1

2

5

6

3

7

4

8

Kuva 3.6: Silmukkarakenne liikennegeneraattoreilla

Page 15: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

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 latens-

seista 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 summaLähetyksissä esiintyneet virheet:� Järjestysnumerovirheet Virheitä/lähetys keskimäärin� Eksyneet sanat

Jokainen liikennegeneraattori mittaa latenssin ja kuorman erikseen jokaiselta yh-

teysvä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 seuraa-

vat vastaanottamiensa lähetysten oikeellisuutta. Datasanojen juoksevan numeroin-

nin avulla voidaan havaita kadonneita tai väärään järjestykseen joutuneita sanoja

(järjestysnumerovirheet taulukossa 4.1), ja havaittujen virheiden määrä tallenne-

taan muistiin. Lisäksi tarkkaillaan saapuvien sanojen kohdeosoitteita, ja merkitään

ylös väärään osoitteeseen tulleiden sanojen määrä. Liikennegeneraattoreiden synte-

soituvuus ja virheidentarkkailu mahdollistaa pitkät ja satunnaisuutta hyödyntävät

Page 16: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

4. Liikennegeneraattoreiden keräämä mittausdata 12

testiajot, joiden avulla voidaan yrittää löytää hyvin harvoin esiintyviä virheitä ver-

koista.

Tällä hetkellä yksi näiden liikennegeneraattoreiden mahdollinen ongelma on kui-

tenkin 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 kon�gurointi- ja raportointiprotokollat vaativat määrätyt datan-

leveydet. Protokollien muuttaminen puolestaan vaatii niin suuria muutoksia lähde-

koodiin, että se katsottiin tässä kehitysvaiheessa liian työlääksi. Tavoitteena on tur-

han työn välttämiseksi hankkia generaattoreista ensin käyttökokemuksia, ja niiden

avulla määritellä kuinka suuria muutoksia on tarpeen tehdä.

Page 17: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

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 tarvitta-

vien synteesikertojen määrä halutaan minimoida. Näiden liikennegeneraattoreiden

suunnittelun yksi peruslähtökohta olikin dynaamisen, eli ajonaikaisen kon�guroinnin

ja tulosten raportoinnin mahdollistaminen. Synteesissä määritelläänkin ainoastaan

käytettävissä olevat resurssit, ja liikennegeneraattoreiden varsinainen toiminnalli-

suus kon�guroidaan tarvittaessa useaankin kertaan ilman uutta synteesiä.

5.1 Dynaaminen kon�gurointi

Käytännössä kon�gurointi 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 mukai-

sesti liitynnän välityksellä tietoja halutusta järjestelmästä, ja välittää saadut para-

metrit sitten eteenpäin muille generaattoreille käyttäen hyväkseen tutkittavaa tie-

donsiirtoverkkoa. Kuvan 5.2 kaavio esittää kon�guroinnin etenemistä järjestelmän

sisällä.

Kuva 5.1: Liikennegeneraattoreiden kon�gurointi manuaalisesti.

Page 18: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

5. Järjestelmän kon�gurointi ja tulosten saaminen 14

Tietokone Slave TG 3Slave TG 2Slave TG 1Master TG

Uusi liipaisin/ajastin TG:lle 1

Uusi liipaisin/ajastin TG:lle 2

Aseta polkumittaus polkua 3 - 1 - 2 pitkin

Aloita xxx kellojakson pituinen mittaus

Anna komento

Uusi liipaisin/ajastin

Anna komento

Uusi liipaisin/ajastin

Anna komento

Polun aloittava liipaisin/ajastin

Polkukonfigurointipaketti

Polkukonfigurointipaketti

Anna komento

Kuva 5.2: Esimerkkikaavio järjestelmän kon�guroinnin etenemisestä.

Kon�gurointi suoritetaan aina ennen jokaista mittauskertaa, koska liikennegene-

raattorit unohtavat saamansa tiedot järjestelmän nollauksen aikana. Kuvassa 5.1

näkyvä terminaaliohjelman avulla manuaalisesti tapahtuva kon�gurointi on hidas-

ta ja virhealtista, joten hyvin pieniä testitapauksia lukuunottamatta kon�gurointi

kannattaa tehdä sitä varten kehitetyn ohjelman avulla. Ohjelma käyttää hyväkseen

erityistä formaattia noudattavia kon�guraatiotiedostoja, jolloin sama testitapaus on

nopea toistaa monta kertaa. Käytännön ohjeet kon�gurointia varten löytyvät liiken-

negeneraattoreiden dokumentaatiosta [8].

Simuloitaessa master-generaattori hakee kon�gurointitiedot suoraan edellä mai-

nittua formaattia noudattavasta kon�gurointitiedostosta. Yhteinäisen formaatin avul-

la samat tiedostot toimivat sekä simulaatiossa että oikeaa UART-liityntää käytet-

täessä.

5.2 Tulosten raportointi

Mittaustulosten kerääminen ja raportointi tietokoneelle tapahtuu jokseenkin kään-

teisesti kon�gurointiin nähden. Kun annettu ajoaika on kulunut, jokainen liiken-

negeneraattori lopettaa master-generaattorin käskystä mittaamisen samalla hetkel-

lä. Seuraavaksi verkon annetaan tyhjentyä keskeytyshetkellä liikkeellä olleista lä-

hetyksistä odottamalla tietty määrä kellojaksoja. Kun verkko on tyhjä, master-

Page 19: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

5. Järjestelmän kon�gurointi ja tulosten saaminen 15

generaattori pyytää mittaustulokset yksitellen jokaiselta muulta liikennegeneraat-

torilta käyttäen tutkittavana olevaa verkkoa. Tiedot saatuaan master tulostaa ne

UART-liitynnän kautta tietokoneelle. Raportoinnin eteneminen verkon tyhjenemi-

sen jälkeen näkyy kuvasta 5.3.

Tietokone Slave TG 3Slave TG 2Slave TG 1Master TG

Mittaustulokset

Mittaustulokset

Mittaustulokset

Omat tulokset

Raportointikomento

Raportointikomento

TG 1:n tulokset

TG 2:n tulokset

Raportointikomento

TG 3:n tulokset

Kuva 5.3: Esimerkkikaavio järjestelmän raportoinnin etenemisestä.

Tietokoneelle mittausdata saapuu sarjoina heksalukuja, joten tulosten tutkimi-

seen on hyvä käyttää apuna osiossa 5.1 mainittua tietokoneohjelmaa. Kon�guroinnin

automatisoinnin lisäksi ohjelma lukee saadut tulokset ja tulostaa ne ruudulle kym-

menkantaisina 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. Kon�gurointiohjelma kykenee

kääntämään myös tiedostossa olevat tulokset luettavampaan muotoon.

Kuvassa 5.4 on ModelSim-simulaattorin aaltomuotoikkunan avulla havainnollis-

tettu liikennegeneraattoreiden toiminnan vaiheet. Kon�guraatiovaiheessa nähdään,

miten master-generaattori lähtettää kon�guraatiotietoja eteenpäin muille generaat-

toreille. Tämän jälkeen alkaa varsinainen mittaus, jolloin generaattorit luovat lii-

kennettä saamiensa kon�guraatiotietojen mukaisesti. Lopuksi master-generaattori

keskeyttää mittaukset ja kerää sekä lähettää eteenpäin saadut tulokset.

Page 20: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

5. Järjestelmän kon�gurointi ja tulosten saaminen 16

Kuva 5.4: Liikennegeneraattoreiden toimintavaiheet ModelSim-simulaattorin aaltomuo-

toikkunassa.

Page 21: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

17

6. KÄYTTÖESIMERKKEJÄ

Tässä kappaleessa esitellään liikennegeneraattorin käyttöä verkkojen vertailussa. Lii-

kennegeneraattoreiden yksi tärkeä käyttökohde on todellisten sovellusten mallin-

taminen, jolla helpotetaan parhaan verkkoratkaisun löytämistä kyseiseen järjestel-

mään. Tässä tapauksessa esimerkkinä on käytetty kiihdytettyä MPEG-4-videopakkausta.

Toisena esimerkkinä kuvataan generaattoreiden käyttöä verkkojen yleisominaisuuk-

sien, kuten saturaatiopisteen selvittämiseen.

6.1 MPEG-4-videopakkauksen mallintaminen liikennegeneraat-

toreilla

Tässä esimerkissä tarkoituksena on vertailla HIBI-väylän [10] ja mesh-verkon so-

veltuvuutta MPEG-4-pakkausta suorittavaan järjestelmään käyttäen siitä liikenne-

generaattoreilla luotua mallia. Verkkojen soveltuvuutta kyseiseen järjestelmään on

tutkittu suoraan aidolla sovelluksella, ja on huomattu, etteivät ennakkoarviot verk-

kojen välisistä suhteista aina pidä paikkaansa [4]. Tässä kandidaatintyössä esitellyn

liikennegeneraattorin päätavoite on poistaa tarve aidolle sovellukselle verkon käyt-

täytymistä tutkittaessa.

Mallinnettava videopakkausjärjestelmä koostuu kuvan 6.1 mukaisesti yhdestä ohjaus-

ja kolmesta orjaprosessorista sekä neljästä kiihdytinlohkosta. Kiihdyttimistä kaksi

on liikkeenestimointia (ME) ja kaksi kosinimuunnosta sekä kvantisointia (DQ) var-

ten. 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ärjestel-

mässä kukin kuva jaetaan prosessoitavaksi orjaprosessoreille, jotka valmistuttuaan

ilmoittavat tilastaan ohjausprosessorille. Laskemalla orjilta ohjausprosessorille tul-

leiden lähetysten määrän ja jakamalla sen ajoajalla saadaan selville haluttu kuva-

taajuuden arvo.

Mittaukset suoritettiin FPGA-piirillä, ja järjestelmää ajettiin kymmenen sekun-

tia. Yhteensä yksittäiseen mittauskertaan kului aikaa kolmekymmentä sekuntia joh-

tuen UART-liitynnän kautta tapahtuneen kon�guroinnin ja tulosten siirtämisen vii-

veistä. Simuloituna yhtä pitkä testiajo olisi kestänyt kymmenistä minuuteista tun-

Page 22: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

6. Käyttöesimerkkejä 18

Ohjaus-prosessori

Orja-prosessori

1

Orja-prosessori

2

Orja-prosessori

3Muisti

ME 1 ME 2 DQ 1 DQ 2 RM

Tiedonsiirtoverkko

Kuva 6.1: Kaaviokuva MPEG-4-videopakkausjärjestelmästä.

Taulukko 6.1: Mittaustulokset MPEG-4-pakkausjärjestelmän liikennegeneraattorimallista.

VerkkoTulos HIBI-väylä Mesh-verkkoKuvaa/s 18,7 20Keskim. latenssi(kellojaksoa)

1598 440

Verkon koko(logiikkaele-menttiä)

5166 9113

Taajuus 50 MHzAjoaika 10 s

teihin.

Taulukkoon 6.1 on koottu mittauksista saadut tärkeimmät tulokset sekä verkko-

jen kokovertailu. Mittaustulosten perusteella mesh-verkko aiheuttaa siis alle 1,1 ker-

taisen nopeutuksen tutkittuun järjestelmään, vaikka kaikkien yhteysvälien kesken

laskettu latenssien keskiarvo väheneekin lähes neljäsosaan. Tämä tukee väitettä sii-

tä, ettei verkkojen yleisen vertailun perusteella voi päätellä verkkojen suorituskykye-

roja 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].

6.1.1 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

Page 23: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

6. Käyttöesimerkkejä 19

mallia rakennettaessa, ja ajankulutus on aina tapauskohtainen.

Kun mallinnettavan sovelluksen ominaisuudet ovat selvillä, tulee seuraavaksi luo-

da itse liikennegeneraattorijärjestelmä ja kon�gurointitiedosto. Järjestelmän luomi-

seen kuluva aika on riippuvainen lähinnä käytetyn verkon rajapinnasta. Jos liikenne-

generaattoreiden ja verkon rajapinnat poikkeavat toisistaan, on väliin tehtävä sovi-

tinlohko. Tämänhetkisten kokemusten perusteella sovittimen tekemiseen kuluu aikaa

muutamista tunneista muutamaan päivään riippuen rajapintojen eroista. Generaat-

toreiden 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.

Kon�gurointitiedoston luominen on mallin laadun kannalta kriittinen osuus. Käy-

tännössä tiedoston tekeminen tarkoittaa liikennettä luovien liipaisimien ja ajasti-

mien määrittelemistä sovelluksen ominaisuuksien perusteella. Esimerkin MPEG-4-

järjestelmän mallintamisessa käytetään kymmentä liikennegeneraattoria sekä yh-

teensä 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 omi-

naisuuksien selvittämisen onnistumisesta sekä liikenteen rakenteiden monimutkai-

suudesta. Yksinkertaisten yhteyksien luominen onnistuu muutamissa minuuteissa,

mutta monimutkaisten riippuvuuksien mallintaminen vaatii huomattavasti enem-

män suunnittelua.

Yleisesti ottaen liikennegeneraattorimallin tekemiseen ensimmäistä kertaa voi ku-

lua useita päiviä. Monimutkaisten liikennerakenteiden mallintaminen nopeutuu kui-

tenkin kokemuksen myötä, kun ymmärrys liipaisimien ja ajastimien toiminnasta sy-

venee. Kun työkalut ja -vaiheet tulevat tutuiksi, on monimutkaisenkin mallin luomi-

nen mahdollista tehdä muutamassa tunnissa. Lisäksi on vertailun vuoksi hyvä mai-

nita, että esimerkissä mallinnetun todellisen sovelluksen toteuttaminen kesti muu-

tamia kuukausia.

6.1.2 Esimerkin vaatimat erikoisrakenteet

Todellisissa sovelluksissa on myös usein monimutkaisempia rakenteita, kuin yksittäi-

sillä liipaisimilla tai ajastimilla pystytään kuvaamaan. MPEG-4-pakkauksessa kul-

loinkin käsiteltävä kuva jaetaan lukuisiin makrolohkoihin, joita orjaprosessorit kier-

rättävät kiihdyttimillä. Suoritus pyörii silmukassa niin kauan kunnes kaikki mak-

rolohkot on läpikäyty. Silmukat on toteutettu kappaleessa 3.3.2 esitetyllä tavalla

riippuvuuksia hyväksi käyttäen.

Toinen hankalasti mallinnettava ominaisuus on kiihdyttimien arbitrointi. Todel-

lisessa sovelluksessa arbitroinnista vastaava resurssimanageri jakaa kiihdyttimien

Page 24: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

6. Käyttöesimerkkejä 20

käyttöoikeuksia orjaprosessoreille, mutta liikennegeneraattorit eivät tähän pysty.

Esimerkkimallissa asia on ratkaistu arbitrointilohkoa mallintavan generaattorin kah-

della 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 puo-

lestaan lähettävät dataa eri osoitteisiin riippuen arbitterilohkolta saamistaan vas-

tauslähetyksistä. Näin joka kolmas makrolohkoa kuvaava lähetys päätyy eri kiihdy-

tintä 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 toi-

minnan ajan, miltä orjaprosessoria mallintavalta generaattorilta toimintakäsky tuli.

Riippuvuudet auttavat tääsäkin tapauksessa. Toimintakäsky aktivoi heti saapues-

saan 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 tar-

koitettu 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 muu-

toksia, kun jotakin liikenteen parametria muutetaan. Muutettavia parametreja ovat

esimerkiksi verkkoon aiheutettava kuorma (käytännössä generaattoreiden lähetys-

taajuus), lähetysten keskimääräinen pituus tai lähetysten paikallisuus. Myös verk-

kojen ominaisuuksia, kuten puskureiden kokoa tai kytkentätapaa, voidaan muutella.

Tässä esimerkissä verrataan keskenään kolmea eri topologiaa: mesh-verkkoa, väy-

lää ja piirikytkentäistä ristikytkentämatriisia (ks. kuva 6.2). Verkkoja testataan kah-

deksan liikennegeneraattorin järjestelmällä, joka lähettää keskimäärin kahdenkym-

menen sanan mittaisia lähetyksiä. Vaihtuvana parametrina on kuorma, jota kas-

vatetaan 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 verkko-

ratkaisujen 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-

Page 25: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

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ä 8Taajuus 50 MHzDatanleveys 32 bittiäAjoaika 100 000 kellojaksoaKeskimääräinen siirto 20 sanaa + otsikotPuskureiden koko 4 sanaaPaketin koko (vain mesh-verkko) 8 sanaaKytkentätapa Wormhole

kojen piirre on niiden saturaatiopiste. Verkon saturoituminen tarkoittaa sen tiedon-

vä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äy-

rä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 ristikytken-

tämatriisin kanssa, koska väylällä kaikki lähetykset kilpailevat samasta tiedonsiir-

tokanavasta. Ristikytkentämatriisissa puolestaan jokaiselle yhteysvälille on oma ka-

navansa, jolloin yksi siirto ei estä muita. Tämä kasvattaa kuitenkin huomattavasti

verkon pinta-alaa, ja sopivimman verkkoratkaisun valinta riippuukin lukuisista te-

kijöistä pelkän välityskapasiteetin sijaan.

Tässä kandidaatintyössä esiteltyjen liikennegeneraattoreiden rajoitteet tämänkal-

taisessa tutkimuksessa tulevat ilmi kuvaajien käyrien epätasaisuudesta. Tasavälein

tapahtuvia lähetyksiä tuotetaan ajastimilla (ks. osio 3.2), joiden odotusaika lähe-

tysten välissä on aina vakio. Liikenteen kaavamaisuuden vähentämiseksi kon�gu-

raatiotiedoston luova ohjelma kon�guroi 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 ver-

tailu näillä liikennegeneraattoreilla on täysin mahdollista. Selkeästi poikkeavia tu-

Page 26: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

6. Käyttöesimerkkejä 22

Kuva 6.3: Kolmen eri verkkoratkaisun suorituskykykuvaajat.

loksia aiheuttavan kon�gurointitiedoston voi tehdä uudestaan, jolloin sen tuottamat

tulokset todennäköisesti palaavat linjaan muiden kanssa. Jos juuri näille liikennege-

neraattoreille ei esimerkiksi syntesoitavuuden takia ole kuitenkaan erityistä tarvetta,

tuottavat pelkästään simulaatioon tarkoitetut generaattorit mahdollisesti tarkempia

tuloksia.

Page 27: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

23

7. YHTEENVETO

Tässä kandidaatintyössä esiteltiin syntesoituva liikennegeneraattori, joka on ensi-

sijaisesti suunniteltu mallintamaan todellisten sovellusten aikaansaamaa liikennet-

tä piirinsisäisissä tiedonsiirtoverkoissa. Verkkoliikenteen luominen perustuu gene-

raattoreiden sisäisiin liipaisimiin ja ajastimiin, jotka saapuvan liikenteen tai kello-

jaksolaskurin perusteella käynnistävät määrätynlaisia lähetyksiä. Monimutkaisem-

pia liikennerakenteita varten liipaisimilla ja ajastimilla voi olla erikoisominaisuuksia

kuten riippuvuuksia toisistaan. Taulukko 7.1 sisältää yhteenvedon generaattorei-

den perustiedoista. Liikennegeneraattori on lisensoitu vapaan lähdekoodin LGPL-

lisenssillä [13], ja se on vapaasti saatavilla taulukosta löytyvästä Internet-osoitteesta.

Taulukko 7.1: Liikennegeneraattorin perustiedot

Toteutuskieli VHDLTarkoitus Sovellusten verkkoliikenteen mallintaminen verkkojen

vertailua varten.Lisenssi LGPL [13]Käyttötavat Simulaatio ja FPGAVahvuudet Syntesoituvuus ja dynaaminen kon�gurointi.Heikkoudet Tasapainoilu ominaisuuksien ja resurssienkulutuksen

välillä.Koodirivien määrä VHDL: >6000, Python: >2000Toteuttamiseen kulu-nut aika

Noin 2 kk kahdelta henkilöltä

Koko FPGA-piirillä(Altera Cyclone II,logiikkaelementtiä)

Normaali TG 2000+, Master TG 4000+. Kokohuomattavan riippuvainen liipaisimien ja ajastimienmäärästä.

Apuohjelmat Python-ohjelmat generaattoreiden hallintaan FPGA-laudalla sekä kon�guraatiotiedostojen luomiseen.

Saatavilla osoitteesta http://www.tkt.cs.tut.�/research/nocbench/download.html

Liikennegeneraattoreiden käytöstä on pyritty tekemään mahdollisimman nopeaa

ja yksinkertaista määrittelemällä synteesissä vain käytettävät resurssit ja kon�gu-

roimalla varsinainen toiminnallisuus ajonaikaisesti UART-liitynnän avulla. Gene-

raattoreita voidaan käyttää myös simulaatiossa, jolloin kon�gurointitiedot saadaan

suoraan tiedostosta. Samat tiedostot käyvät sekä syntesoidussa että simuloidussa

järjestelmässä.

Page 28: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

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 prosessointia-

joista sekä liikenteen riippuvuuksista.

Toisen esimerkin avulla todettiin, että näitä liikennegeneraattoreita voidaan käyt-

tää myös verkkojen yleisempään vertailuun. Generaattoreiden kyky tuottaa satun-

naista ja tasaista liikennettä on kuitenkin rajallinen, joten tarkempia mittauksia

varten voi olla parempi käyttää yksinomaan kyseistä tarkoitusta varten tehtyjä lii-

kennegeneraattoreita. Näiden liikennegeneraattoreiden ominaisuuksien määrää ra-

joittavat 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 sovellus-

ten mallintamiseen ja mitä uusia ominaisuuksia tulee lisätä, jotta tehtyjen mallien

tarkkuus paranee.

Yksi suunniteltu uudistus on kon�guraatio- ja raportointiprotokollien uudista-

minen 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ä, mut-

ta 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 sa-

tunnaistamista on suunniteltu, mutta näitäkään muutoksia ei haluta toteuttaa en-

nen kuin voidaan osoittaa niiden tarpeellisuus. Lukuisten liipaisinehtojen vertailu

samanaikaisesti aikaansaa synteesissä huomattavan suuria rakenteita, jolloin pienet-

kin lisäykset kasvattavat resurssienkulutusta ja kombinatoristen polkujen viivettä

huomattavasti.

Page 29: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

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 Con�gurable Tra�c Generator for

NoC.� 3rd International Conference on Anti-counterfeiting, Security, and Iden-

ti�cation in Communication, Elokuu 2009.

[3] Kangas, T., Riihimäki, J., Salminen, E., Kuusilinna, K., Hämäläinen, T. D.

�Using a Communication Generator in SoC Architecture Exploration� Interna-

tional Symposium on System-on-Chip, Tampere, Marraskuu 2003.

[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 Proces-

sing Systems for Signal, Image, and Video Technology, Toukokuu 2008.

[5] Lahiri, K., Raghunathan, A., Dey, S. �Evaluation of the Tra�c-Performance

Characteristics of System-on-Chip Communication Architectures.� 14th Inter-

national Conference on VLSI Design, Tammikuu 2001.

[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 2008.

[7] Mahadevan, S., Angiolini, F., Storgaard, M., Olsen, R. G., Sparsø, J., Madsen

J. �A Network Tra�c Generator Model for Fast Network-on-Chip Simulation.�

Design, Automation and Test in Europe, 2005.

[8] Nieminen, J. �Tra�c Generator Usage.� Saatavilla verkosta:

http://www.tkt.cs.tut.�/research/nocbench/data/tra�c_generator_20091201.zip.

Marraskuu 2009

[9] Salminen, E., Kangas, T., Lahtinen, V., Riihimäki, J., Kuusilinna, K., Hämäläi-

nen, T. D. �Benchmarking Mesh and Hierarchical Bus Networks in System-on-

Chip Context� Journal of System Architectures, Vol.53, Issue 8, Elokuu 2007.

[10] Salminen, E., Kangas, T., Riihimäki, J., Lahtinen, V., Kuusilinna, K., Hämäläi-

nen T. D. �HIBI Communication Network for System-on-Chip� Journal of VLSI

Signal Processing-Systems for Signal, Image, and Video Technology, Kesäkuu

2006.

Page 30: JUSSI NIEMINEN Syntesoituva liikennegeneraattori ......II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Automaatiotekniikan koulutusohjelma JUSSI NIEMINEN: Syntesoituva liikennegeneraattori

LÄHTEET 26

[11] Salminen, E., Kulmala, A., Hämäläinen T. D. �Survey of Network-on-Chip Pro-

posals.� Saatavilla verkosta: http://www.ocpip.org/uploads/documents/OCP-

IP_Survey_of_NoC_Proposals_White_Paper_April_2008.pdf. OCP-IP,

Maaliskuu 2008.

[12] Thuan Le, Khalid, M. A. S. �NoC Prototyping on FPGAs: A Case Study Using

an Image Processing Benchmark.� IEEE International Conference on Elect-

ro/Information Technology, Kesäkuu 2009.

[13] Lesser General Public License, Free Software Foundation, Inc.

http://www.gnu.org/copyleft/lesser.html