TKT-1220 Tietokonearitmetiikka I PC-harjoitus 3

Samankaltaiset tiedostot
VHDL-piirikuvaus ja simulointi Quartus II ja ModelSim Altera Edition -ohjelmilla

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

Muistitikun liittäminen tietokoneeseen

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

Lab A1.FARM_Hyper-V.v3

MASSER Loader V2.00. käyttö- ja asennusohje

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE

TIETOKONETEKNIIKAN LABORAATIOT V2.0 VHDL ohjelmoinnin perusteet

TKT-1220 Tietokonearitmetiikka I PC-harjoitus 1

JAKELUPISTE KÄYTTÖOHJE 2/6

AUTOCAD-TULOSTUSOHJE. Tällä ohjeella selitetään Autocadin mittakaavatulostuksen perusasiat (mallin mittayksikkönä millimetrit)

erasmartcardkortinlukijaohjelmiston

Let Me Hack It -kurssilla tarvittavat ohjelmat ja välineet

RATKAISUT SIVU 1 / 15. Väriteemaan pääset käsiksi hieman eri tavoilla PowerPointin eri versioissa.

Transkribuksen pikaopas

Google-dokumentit. Opetusteknologiakeskus Mediamylly

TEHTÄVÄ 1.1 RATKAISUOHJEET

Pika-asennusohjeet Suomeksi

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ

Internet Explorer 7 & 8 pop-up asetukset

SoleMOVE lähtevän harjoittelijan ohje

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

Tulosta yrityksesi tuloslaskelma ja tase myöhempää tarkastusta varten. Ota varmuuskopio tilanteesta ennen tilimuunnosta.

AutoCAD Map 3D 2013 perusteet

Henkilö- ja koulutusrekisterin asennusohje

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

Microsoft Projectin mukauttaminen

Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 IT Juha Nalli

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Viva-16. Käyttöohje Veikko Nokkala Suomen Videovalvonta.com

MITEN KIRJAUDUN ADOBE CONNECTIIN?

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Novapoint Lisensiointi. Copyright 2006, ViaNova IT AS. All rights reserved 1

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE

Kuvan ottaminen ja siirtäminen

FTP -AINEISTOSIIRRON OHJE PC / MAC Ympäristö

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

1. NetBeans-ohjelman asennus ja käyttöönotto pva

ALVin käyttöohjeet. Kuvaus, rajaus ja tallennus puhelimella ALVin -mobiilisovelluksen avulla dokumentit kuvataan, rajataan ja tallennetaan palveluun.

Helppokäyttöisyyttä Windows Vista käyttöjärjestelmän asetuksilla

SSH Secure Shell & SSH File Transfer

F-Secure KEY salasanojenhallintaohjelman käyttöönotto PC -laitteella

Ennen varmenteen asennusta varmista seuraavat asiat:

Päivitysohje Opus Dental

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Pikaohjeita OneNote OPS:in käyttäjille

Väylään liitettävä laite: Pheonix Contact ILB PB DI8 DIO8

Topfieldin sarjaporttipäivitystyökalun asennus(rs232)

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen

Pikaohje LandNova simulaattorin käyttöön(tarkemmat ohjeet käyttöohjeessa ja mallinnusohjeessa):

Ohjelmointiharjoituksia Arduino-ympäristössä

Pedacode Pikaopas. Web-sovelluksen luominen

OAMK LABORATORIOTYÖOHJE LIITE 1/1 TEKNIIKAN YKSIKKÖ AUTOMAATIOTEKNIIKAN LABORATORIO. Laboratoriotyö

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin

BL40A1810 Mikroprosessorit, harjoitus 1

Sisällysluettelo. HUOM! Muista lukea tämä opas huolellisesti ennen käyttöönottoa.

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy

Sähköposti ja uutisryhmät

Optima käyttöopas opiskelijalle

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

Johdatus ohjelmointiin

DATALOGGERI DT-171 PIKAKÄYTTÖOHJE V 1.2

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

Midland BTNext -päivityssovellus

Webmailin käyttöohje. Ohjeen sisältö. Sähköpostin peruskäyttö. Lomavastaajan asettaminen sähköpostiin. Sähköpostin salasanan vaihtaminen

Asiakirjojen ja valokuvien skannaaminen Canon Canoscan -skannerilla

Garmin etrex GPS-laite

Microsoft Outlook Web Access. Pikaohje sähköpostin peruskäyttöön

Connect-harjoituksia. Ratkaisumallit seuraavilla sivuilla!

Visma Business AddOn Tuotetarrat. Käsikirja

lizengo Asennusopas Windows: in kopioiminen

TERVETULOA CHROME-TYÖASEMALLE!

Automaattitilausten hallinta

Laskuharjoitus 9, tehtävä 6

Epooqin perusominaisuudet

Site Data Manager Käyttöohje

Uuden työtilan luonti

Ennen kuin aloitat lataamisen tarkista järjestelmävaatimukset:

Solteq Tekso v Versiopäivitysohje.

FENG OFFICE -PROJEKTINHALLINTATYÖKALU

2. PPPoE YHTEYDEN POISTAMINEN BAANA-CLIENT Windows 2000 / XP

UpdateIT 2010: Uutisten päivitys

AMIS-ohjelman käyttöohjeet

ASCII-taidetta. Intro: Python

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa.

EXCEL Perusteet FIN WISTEC TRAINING OY ITÄMERENKATU 1, HELSINKI PUH (MA-PE KLO 9-17)

NewsWay Sivuaineiston siirtojärjestelmä. Sanomapaino Palvelupiste

Ohjelmoinnin peruskurssi Y1

E-kirjan lainaaminen ja lukeminen

Projektin luonti LPCXpressolla

EeNet materiaalit ohje

Fiery Driver Configurator

Kansion asetusten muuttaminen Windows 2000 käyttöjärjestelmässä Resurssienhallinnan kautta

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU

Share-työkalu (AC 9.1)

zotero

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

Ohjelmoinnin perusteet Y Python

Tilastokeskuksen rajapintapalveluiden käyttöönotto QGIS-ohjelmistossa

Transkriptio:

TKT-1220 Tietokonearitmetiikka I PC-harjoitus 3 NIOS-työ Tässä harjoituksessa mitataan NIOS II prosessorin laskutoimituksiin kuluvaa aikaa eri prosessorin konfiguraatioilla ja operandien datatyypeillä. Prosessoria voidaan konfiguroida Alteran SOPC builder suunnittelutyökalun avulla mm. lisäämällä tarvittaessa kertolasku-, jakolasku- tai liukulukuyksiköitä. Tämän harjoituksen pääpaino on näiden yksiköiden aiheuttamassa suorituskyvyn muutoksessa eri datatyypeillä ja laskutoimituksilla. Harjoitus aloitetaan lataamalla tiedostopaketti aritmetiikka_tiedostot.tar.gz (taulukko 1), avaamalla terminaali ja purkamalla tiedostopaketti komentorivin komennolla: tar xvkf aritmetiikka_tiedostot.tar.gz Taulukko 1. Tiedostopaketin sisältö. FPGA-piirille on toteutettu kuvan 2 järjestelmä Alteran SOPC-builder suunnittelutyökalulla. Järjestelmä sisältää mm. sulautetun NIOS II soft-core prosessorin, muistipiirin ohjaimen ja ajastimia, joista Timestamp timer mittaa laskutoimitusten suoritusaikoja. SDRAM-piirille ladataan prosessorin suorituskykyä mittaava C-kielellä toteutettu ohjelma.

Kuva 1. SOPC-builderilla toteutettu järjestelmä FPGA-piirillä. Taulukossa 2 on esitetty laskutoimitusten suoritusaikojen mittaustuloksia eri datatyypeillä käyttäen taulukon 3 konfiguraatiota. Operandien arvot alustetaan satunnaisfunktion rand() avulla. Yhden laskutoimitusten suoritusaika mitataan for-silmukassa 20000 kertaa pois lukien for-silmukan suoritukseen kuluva aika. Kaikkia laskutoimituksia ei voi suorittaa kaikilla datatyypeillä. Taulukko 2. Prosessorin laskutoimitusten suoritusaikoja (kellojaksoina).

Taulukko 3. Prosessorin asetukset. Tehtävänä on lisätä liukuluku-yksikkö NIOS II prosessoriin SOPC-builder työkalun avulla. Tehtävä aloitetaan käynnistämällä Quartus komentorivin komennoilla: source /share/tktprog/altera/quartus-9.0-sp1/qii.sh quartus & Quartuksen käynnistäminen saattaa vaatia jälkimmäisen komennon uudelleen suorittamisen. Quartuksen käynnistyttyä avataan tiedostopaketin Quartus projektitiedosto project.qpf valikosta: File Open Project. Projektin ylimmän tason suunnittelu avataan kaksoisklikkaamalla kuvan 3 osoittamalla tavalla Project Navigator -valikon välilehdestä Files kuvaketta top.bdf. Quartuksen error-ilmoitusta ei tarvitse huomioida. Kuva 2. Quartus-projektin avaaminen.

Valikosta Tools SOPC Builder käynnistetään SOPC-builder, jonka päävalikko on kuvassa 4. Työkalulla voidaan luoda plug-and-play -periaatteella FPGA-piirille syntesoituvia järjestelmiä. Kuva 3. SOPC-builderin päävalikko. Komponentteja voidaan kytkeä toisiinsa kuvan 4 kohdan 1) nuolilla. Ohjelma kytkee komponentit automaattisesti, joten tässä tehtävässä komponentteja ei tarvitse erikseen kytkeä. Valikon kohdasta 2) voidaan lisätä järjestelmään komponentteja. Kaksoisklikkaamalla nuolen osoittamaa komponenttia cpu, avautuu kuvan 5 valikko, josta voidaan konfiguroida prosessoria. Kuva 4. NIOS II prosessorin konfiguraatio päävalikko.

NIOS prosessoreita on kolme. Tässä harjoituksessa käytetään NIOS II/f-prosessoria, joka on oletuksena valittuna. Kuvan 5 kohdasta 1) voitaisiin lisätä prosessoriin kertolasku- ja jakolaskuyksikkö, mutta tässä harjoituksessa niitä ei lisätä. Sen sijaan tässä harjoituksessa lisätään prosessoriin vain liukuluku-yksikkö aukaisemalla välilehti Custom Instructions kohdasta 2) ja kaksoisklikkaamalla Floating Point Hardware. Valitaan aukeavasta ikkunasta Use floating point division hardware, minkä jälkeen valitaan kaksi kertaa Finish. Uusi SOPC-järjestelmä generoidaan klikkaamalla Generate sekä tallennetaan muutokset kysyttäessä. Generoinnin valmistuttua (SUCCESS: SYSTEM GENERATION COMPLETED) sammutetaan SOPC-builder valitsemalla Exit, käännetään projekti Quartuksessa: Processing Start Compilation ja käännöksen valmistuttua avataan raportti: Processing Compilation Report. Seuraavaksi avataan tiedostopaketin päätasolla oleva results.ods dokumentti ja vastataan kysymyksiin (kaikki tämän harjoituksen vastaukset on tarkoitus kirjoittaa tähän samaan tiedostoon). 1) Verrattuna taulukon 2 tietoihin kuinka monta prosenttia enemmän prosessori tarvitsee logiikka-elementtejä liukuluku-yksikön lisäämisen jälkeen? 2) Muuttuuko prosessorin maksimi-kellotaajuus (actual time)? Jos muuttuu, paljonko? Kytketään virta FPGA piiriin ja konfiguroidaan piiri käynnistämällä Quartus programmer: Tools Programmer. Valitaan project.sof ja start. Jos ohjelma antaa virheilmoituksen tai Hardware Setup on No Hardware, irrotetaan USB-blaster -kaapeli, kytketään se uudelleen ja valitaan Hardware Setup Hardware Settings Currently Selected Hardware USB-Blaster. Sitten valitaan Close ja kokeillaan uudestaan Start. Nyt FPGA-piirin tulisi konfiguroitua. Seuraavaksi tehtävänä on mitata generoidun järjestelmän nopeutta eri laskutoimituksilla ja datatyypeillä. Nopeutta mitataan C-kielellä toteutetun ohjelman avulla NIOS II IDE:llä. Avaataan NIOS II IDE komentorivin komennoilla: source /share/tktprog/altera/quartus-9.0-sp1/nios2eds/env.sh nios2-ide & Vaihdetaan workspace tiedostopaketin kansioon software: File Switch Workspace. Projektin avauduttua näkymä on kuvan 6 kaltainen. Kuvan 6 alueessa 1) on omat kansiot ohjelmakoodille ja järjestelmäkirjastolle. Kansio application sisältää pääohjelman main.c, joka avataan alueeseen 2) kaksoisklikkaamalla. Alueeseen 3) tulostuu mittaustulokset kun ohjelma ajetaan.

Kuva 5. NIOS II IDE. Tutkitaan pääohjelmaa main.c ja suoritetaan mittaukset kahdella tietotyypillä (aluksi int ja sitten float) määrittelemällä makro TYPE haluamaksi tietotyypiksi ja tallentamalla muutokset (halutessasi voit tutkia myös char ja double tyyppejä). Käännetään projekti valitsemalla: Project Build All. Ajetaan ohjelma FGPA:lla klikkaamalla hiiren oikealla näppäimellä vasemman laidan kansiota application: Run As Nios II Hardware. Liukuluvuilla (float) mitattaessa kommentoidaan pois operaatiot, jotka eivät toimi liukuluvuilla (taulukko 2). Kirjataan tulokset tiedoston results.ods taulukkoon 1. 3) Kuinka suuri on operaatioiden keskiarvosuoritusajan muutos kiinteän pilkun luvuilla (int) verrattuna taulukon 2 tuloksiin? Minkä operaatioiden suoritusaika pienenee yli 10%? Miksi kyseiset operaatiot nopeutuvat? 4) Kuinka suuri on operaatioiden keskiarvosuoritusajan muutos liukuluvuilla (float) verrattuna taulukon 2 tuloksiin? Minkä operaatioiden suoritusaika pienenee yli 10%? Miksi kyseiset operaatiot nopeutuvat? Valitaan tietotyypiksi int muuttamalla makron TYPE määrittelyä (kommentteja ei tarvitse poistaa koodista) ja testataan mittaus-loopin kierrosmäärää arvoilla 1, 10, 100, 1 000, 10 000, 100 000 ja 1 000 000 muutamalla makron CYCLES arvoa. Ajetaan ohjelma FPGA:lla ja kirjataan tulokset tiedoston results.ods taulukkoon 2. Taulukko piirtää automaattisesti käyrät mittaustuloksista. 5) Mikä on riittävä kierrosmäärä? Miksi valitsemaasi arvoa pienempi kierrosmäärä ei ole riittävä?

Seuraavaksi tutkitaan valmiiksi generoitua prosessoria (mul.sof), joka sisältää kertolaskuyksikön muttei jakolasku- tai liukulukuyksikköä. Suljetaan edellisen mittauksen NIOS II IDE sekä Quartus ja konfiguroidaan FPGA-piiri kirjoittamalla (tiedostopaketin päätasolla) komentoriville komento: nios2-configure-sof mul.sof Käynnistetään uusi terminaali (terminaali 2) sulkematta vanhaa terminaalia (terminaali 1) ja kirjoitetaan terminaaliin 2 komennot: source /share/tktprog/altera/quartus-9.0-sp1/qii.sh source /share/tktprog/altera/quartus-9.0-sp1/nios2eds/env.sh nios2-terminal --instance=0 Seuraavaksi kirjoitetaan terminaaliin 1 komento: /share/tktprog/altera/quartus-9.0-sp1/nios2eds/sdk_shell ja ladataan valmiina annettu elf-tiedosto mul.elf SDRAM:lle komennolla (terminaali 1): nios2-download -g mul.elf Ohjelma ajetaan automaattisesti ja mittaustulokset tulostuvat terminaaliin 2. Kirjataan tulokset int ja float tietotyypeille results.ods taulukkoon 4. 6) Kuinka suuri on kertolaskujen (a=b*c) suoritusajan muutos verrattuna taulukon 2 tuloksiin? Ilmoita tulokset erikseen int ja float tietotyypeille. 7) Nopeutuvatko muutkin operaatiot? Jos nopeutuvat, niin mitkä? Mitä tästä voidaan päätellä? 8) Kuinka paljon laskutoimitusten keskiarvosuoritusajat nopeutuvat kertolaskuyksikön lisäämisen jälkeen? Palauta sähköpostilla tiedosto results.ods.