Staattinen haarautumisen ennustus

Koko: px
Aloita esitys sivulta:

Download "Staattinen haarautumisen ennustus"

Transkriptio

1 Staattinen haarautumisen ennustus haarautumishasardi ratkaistaan olettamalla haarautumispäätöksen tulos ilman, että odotetaan oikean haarautumisehdon laskennan tulosta 1 Predict not taken ennustetaan aina, että haarautumista ei tehdä: jatka käskynhakua sekventiaalisesta käskyvirrasta, jolloin liukuhihna pysäytetään ainoastaan silloin, kun haarautuminen tehdään (virheellinen ennustus) #96 Jos haaraudutaan, tyhjennä haarautumiskäskyn jälkeiset käskyt (liukuhihnan alussa olevat käskyt): IF-, ID- ja EX-tasoilta, jos haarautumislogiikka MEM-tasossa: 3 stall-jaksoa IF- ja ID-tasoilta, jos haarautumislogiikka EX-tasossa: 2 stall-jaksoa IF-tasolta, jos haarautumislogiikka on ID-tasossa: 1 stall-jakso Varmista, että poistetut käskyt eivät ole muuttaneet koneen tilaa MIPS-liukuhihnassa automaattinen, koska koneen tilan vaihtavat operaatiot ovat liukuhihnan lopussa: MemWrite (MEM) tai RegWrite (WB) Käynnistä liukuhihna uudelleen haarautumisen kohteesta

2 Liukuhihnan tyhjennys ennustuksen epäonnistuessa I n s t r. O r d e r 4 beq $1,$2,2 8 sub flush $4,$1,$5 16 and $6,$1,$7 20 or r8,$1,$9 ALU IM Reg DM Reg ALU IM Reg DM Reg ALU IM Reg DM Reg ALU IM Reg DM Reg IF-tasolla olevan käskyn poistamiseksi, aseta IF/IDliukuhihnarekisterin käskykenttä IF.Flush nollaksi(käskystä tulee noop) #98

3 #99 Haarautumisrakenteet Ennustus, että haarautumista ei tehdä, toimii hyvin top of the loop -haarautumisrakenteessa Loop: beq $1,$2,Out Mutta tällaisissa silmukoissa on hyppyjä silmukan lopusta alkuun joka aiheuttaa stall-jakson hypyn ansiosta 1 nd loop instr... last loop instr j Loop Out: fall out instr Ennustus, että haarautumista ei tehdä, ei toimi bottom of the loop -haarautumisrakenteen yhteydessä Loop: 1 st loop instr 2 nd loop instr... last loop instr bne $1,$2,Loop fall out instr

4 Staattinen haarautumisen ennustus, Ratkaistaan haarautumishasardi olettamalla haarautumispäätöksen tulos ja jatkamalla suoritusta 2 3 Predict taken Ennusta, että haarautuminen tullaan aina tekemään Predict taken tuottaa aina yhden stall -jakson (jos haarautumislogiikka on siirretty ID-tasoon) Kun haarautumisen kustannus kasvaa (pidemmissä liukuhihnoissa), yksinkertainen staattinen ennustusmenetelmä voi heikentää suorituskykyä Laitteistoa lisäämällä on mahdollista yrittää ennustaa haarautumiskäyttäytymistä dynaamisesti ohjelman suorituksen aikana Dynaaminen haarautumisen ennustus ennusta haarautuminen ajoaikana käyttäen ajoaikaisia tietoja #100

5 #101 Dynaaminen haarautumisen ennustus IF-tasolla sijaitseva haarautumishistoriapuskuri (branch history table (BHT)), jota osoittaa PC:n alimmat bitit, sisältää bittejä IF/ID-liukuhihnarekisteristä ID-tasolle vietyjä bittejä, jotka kertovat onko haarautuminen suoritettu edellisellä suorituskerralla Ennustusbitti voi ennustaa väärin (väärä ennustus haarautumiseen tällä iteraatiokierroksella tai kyseessä voi olla toinen haarautuminen, jonka käskyosoitteessa on samat vähiten merkitsevät bitit), mutta virheellisellä ennustuksella ei ole vaikutusta laskennan lopputulokseen, ainoastaan suorituskykyyn Haarautumispäätös tehdään ID-tasolla sen jälkeen kun on haettu käsky on tulkittu ja havaittu haarautumiskäskyksi ja BHT:stä on tarkastettu ennustusbitit) Jos ennustus on väärä, väärät käskyt poistetaan liukuhihnasta (flush), liukuhihna käynnistetään uudelleen oikeilla käskyillä ja ennustusbitit invertoidaan 4096-bittinen BHT: väärinennustus vaihtelee 1% (nasa7, tomcatv) - 18% (eqntott)

6 Haarautumiskohdepuskuri BHT ennustaa milloin haarautuminen tulisi tehdä, mutta ei kerro minne! #102 IF-tasolla oleva haarautumiskohdepuskuri (branch target buffer, BTB) tallettaa haarautumisen kohdeosoitteet, mutta myös seuraava sekventiaalinen osoite on haettava. IF/ID-tason ennustusbitti valitsee kumpi seuraava käsky ladataan IF/ID seuraavalla kellon nousevalla reunalla Käskymuistiin tarvitaan kaksi lukuporttia Tai: BTB tallettaa myös haarautumiskohteen käskyn, samaan aikaan kuin käskymuistista haetaan seuraavaa sekventiaalista käskyä Instruction Memory Read 0 Address Jos ennustus on oikein, liukuhihnaa ei tarvitse pysäyttää haarautumiskäskyn takia (paitsi ensimmäisellä kerralla, jolloin BTB on tyhjä) PC BTB

7 1-bittisen ennustuksen tarkkuus 1-bittinen ennustaja on väärässä kahdesti, jos ei haarauduta Oletetaan, että alussa predict_bit = 0 (indikoi haarautumista ei tapahtunut) ja silmukan ohjaus on silmukkakoodin lopussa 1:llä kerralla ennustetaan väärin, koska haarautuminen tapahtuu takaisin silmukan alkuun; invertoidaan ennustusbitti (predict_bit = 1) Niin kauan kuin haarautuminen tapahtuu (iterointi), ennustus on oikein Silmukasta poistuttaessa ennustetaan taas väärin, koska nyt haarautumista ei tapahdu; invertoidaan ennustusbitti (predict_bit = 0) Loop: 1 st loop instr 2 nd loop instr... last loop instr bne $1,$2,Loop fall out instr Esim. suoritettaessa silmukka 10 kertaa, saadaan 80% ennustustarkkuus haarautumiselle, joka tapahtuu 90% #103 tapauksista

8 2-bittinen ennustaja 2-bittisellä ennustajalla voidaan saavuttaa 90% tarkkuus, koska ennusteen pitää olla väärin kahdesti ennen kuin ennustebitin tila vaihdetaan oikein 9 kertaa Väärin silmukasta Taken poistuttaessa. 1 Taken 0 Predict Taken 11 Predict Not Taken 01 Not taken Taken Not taken Taken 10 Oikein 1:llä iteraatiolla Predict Taken Predict Not Taken 00 1 Not taken Not taken 0 Loop: 1 st loop instr 2 nd loop instr.. last loop instr bne $1,$2,Loop fall out instr BHT tallettaa myös tilakoneen alkutilan #105

9 Poikkeuksien hallinta Poikkeukset (exception) tai keskeytykset (interrupt) ovat yksi kontrollihasardin muoto Poikkeuksen syy voi olla R-tyypin aritmetiikkaoperaation ylivuoto Yritys suorittaa laiton käsky I/O-laitteen palvelupyyntö OS palvelupyyntö Laitteiston virhetoiminto Liukuhihna on lopetettava uhkaavan käskyn suoritus: aiemmat käskyt suoritetaan loppuun, seuraavat käskyt tyhjennetään liukuhihnasta, asetetaan poikkeuksen syy rekisteriin, talletetaan uhkaavan käskyn osoite ja hypätään ennelta määrättyyn osoitteeseen (poikkeuksen käsittelijän osoite) ohjelmisto (OS) tarkastaa poikkeuksen syyn ja suorittaa tarvittavat toimenpiteet poikkeuksesta toipumiseksi #106

10 Kaksi poikkeustyyppiä keskeytys asynkroninen ohjelman suorituksen suhteen aiheutuvat ulkoisista tapahtumista Voidaan käsitellä käskyjen välissä, joten liukuhihnassa olevat aktiiviset käskyt voidaan suorittaa loppuun ennen kontrollin siirtämistä OS:n keskeytyskäsittelijälle simply suspend and resume user program Ansa ohjelman suorituksen suhteen synkroninen Aiheutuvat sisäisistä tapahtumista Ansan käsittelijän on korjattava tilanne: uhkaava käsky on pysäytettävä liukuhihnan keskellä ja annettava kontrolli OS:n ansan käsittelijälle Uhkaava käsky voidaan yrittää suorittaa uudestaan ja jatkaa suoritusta tai ohjelman suoritus lopetetaan #107

11 Missä poikkeus ilmenee liukuhihnassa? ALU IM Reg DM Reg liukuhihnataso(t)? synkroninen? Aritmetiikan ylivuoto EX kyllä Laiton käsky ID kyllä I/O-palvelupyyntö mikä tahansa ei Laitteistovika mikä tahansa ei Yhdellä kellojaksolla voi tapahtua useampia poikkeuksia #109

12 Useampi samanaikainen poikkeus I n s t r. O r d e r Inst 0 Inst 1 Inst 2 Inst 3 Inst 4 ALU IM Reg DM Reg ALU IM Reg DM Reg ALU IM Reg DM Reg I$ page fault D$ page fault arithmetic overflow undefined instruction ALU IM Reg DM Reg ALU IM Reg DM Reg #111 Laitteisto lajittelee poikkeukset siten, että aikaisin käsky keskeytetään ensimmäiseksi

13 Lisäyksiä MIPS:iin poikkeuksien käsittelyyn (Fig 6.42) Cause -rekisteri (tallettaa poikkeukset) laitteisto poikkeuksen syyn tallentamiseen ja signalointi rekisterin kirjoitusta varten (CauseWrite) EPC -rekisteri (tallettaa uhkaavien käskyjen osoitteet) laitteisto uhkaavien käskyjen osoitteiden tallentamiseen EPCrekisteriin ja signalointi kirjoitusta varten (EPCWrite) Poikkeuksen käsittelyohjelmiston pitää vastata poikkeuksen käskyä Tarvitaan menetelmä käsittelijän alkuosoitteen lataamiseksi ohjelmalaskuriin Laajennetaan ohjelmalaskurin sisääntulo-mux langoitetulla poikkeuksenkäsittelijän osoitteella - (esim hex aritmetiikan ylivuoto) Tarvitaan menetelmä tyhjentää uhkaavat käskyt ja sitä seuraavat käskyt liukuhihnasta #112

14 PC Datapolku: tuki poikkeuksille 4 Instruction Memory Read 0 Address hex Add IF.Flush IF/ID PCSrc Hazard ID.Flush Unit 0 1 Control 0 Shift left 2 Read Addr 1 RegFile Read Addr 2 Read Data 1 Write Addr ReadData 2 Write Data 16 Sign Extend Forward Unit Branch Add 32 Compare ID/EX Cause EPC EX.Flush 0 0 ALU ALU cntrl EX/MEM Data Memory Read Data Address Write Data MEM/WB Forward Unit #113

15 Vielä lisää suorituskykyä Liukuhihnan syvyyden lisääminen kasvattaa kellotaajuutta superpipelining Mitä enemmän liukuhihnatasoja, sitä enemmän forwarding/hasardilaitteistoa tarvitaan ja liukuhihnan hallinta vie yhä suuremman osan kellojakson ajasta (latch-time) Haetaan (ja suoritetaan) useampi kuin 1 käsky kerralla (laajenna jokainen liukuhihnataso tukemaan useampia käskyjä) multiple-issue Käskynsuoritustaajuus CPI < 1, joten käytetään IPC: instructions per clock cycle #114 Esim, 6 GHz 4-tie prosessori voi suorittaa max. 24 milj. käskyä / sec., CPI: 0.25 tai parhaassa tapauksessa IPC on 4 Jos datapolussa 5 tasoa, kuinka monta käskyä liukuhihnassa on aktiivisena kullakin ajan hetkellä?

16 #115 Rinnakkaisuuden tasoja Ohjelman käskytason rinnakkaisuus (instruction-level parallelism, ILP) mittaa ohjelman keskimääräistä ohjelman käskyjen määrää, jotka prosessori voisi suorittaa samanaikaisesti Määräytyy pääasiassa käskyn todellisten (data) riippuvuuksien ja menettelytapa (kontrolli) riippuvuuksien perusteella suhteessa muihin käskyihin Datatason rinnakkaisuus, data-level parallelism (DLP) DO I = 1 TO 100 A[I] = A[I] + 1 CONTINUE Prosessorin konetason rinnakkaisuus, machine parallelism mittaa prosessorin kykyä hyödyntää ohjelman ILP:tä Käskyjen lukumäärä, joita voidaan hakea ja suorittaa samanaikaisesti Suorituskyvyn kasvattamiseksi tarvitaan molempia, sekä ILP että konerinnakkaisuus

17 Multiple-Issue -prosessorit 1Staattinen multiple-issue prosessori (very long instruction word machine, VLIW) Päätös siitä, mitkä käskyt suoritetaan samanaikaisesti, tehdään staattisesti (käännösaikana kääntäjän toimesta)) Esim., Intel Itanium ja Itanium 2 : IA-64 ISA EPIC (Explicit Parallel Instruction Computer) 128-bittiset kimput sisältävät 3 käskyä, jokainen 41 bittiä + 5-bittinen mallinekenttä (joka määrittää mitä toiminnallista yksikköä kukin käsky tarvitsee) 5 toiminnallista yksikköä (IntALU, Mmedia, Dmem, FPALU, Branch) Laaja tuki spekuloinnille ja ennustukselle Dynaaminen multiple-issue prosessori (superscalar) Päätös siitä, mitkä käskyt suoritetaan samanaikaisesti (luokkaa 2-8), tehdään dynaamisesti (ajoaikana erillisen laitteiston toimesta) Esim. IBM Power series, Pentium 4, MIPS R10K, AMD Barcelona #116

18 Multiple-Issue Prosessorit Pipelined IF 0 IF 1 IF 2 IF 3 ID 0 ID 1 ID 2 ID 3 Superscalar IF 0 IF 2 VLIW IF 0 IF 1 ID 0 ID 1 IF 1 IF 3 OF 0 OF 1 OF 2 OF 3 EX 0 EX 1 EX 2 EX 3 ID 0 ID 2 OF 0 OF 4 ID 1 ID 3 OF 1 OF 5 aika OF 0 OF 2 OF 1 OF 3 OF 2 OF 6 OF 3 OF 7 EX 0 EX 2 EX 0 EX 4 EX 1 EX 3 EX 1 EX 5 aika EX 2 EX 6 EX 3 EX 7 aika #117

19 Multiple-Issue -datapolku Käsiteltävä seuraavat rajoitteet Kuinka monta käskyä otetaan suoritukseen yhdellä kellojaksolla issue slots Tallennus- (data-) riippuvuudet data hasardit SS/VLIW prosessorissa suuremmat rajoitteet vähäisestä ILP:stä johtuen Proseduuririippuvuudet kontrollihasardit Kuten edellä, mutta vakavampia rajoitteita Käytetään dynaamista haarautumisen ennustusta ILP-rajoitteen kiertämiseksi Resurssikonfliktit rakennehasardit SS/VLIW prosessorissa on suurempi todennäköisyys resurssikonfliktiin Toiminnalliset yksiköt voivat joutua kilpailemaan tulosväylien tai rekisteritiedoston kirjoitus-porttien käytöstä Resurssikonfliktit voidaan eliminoida kahdentamalla tai liukuhihnoittamalla resurssi #118

20 Spekulointi Spekulaatiota käytetään sallimaan tulevan käskyn suoritus, jolla voi olla riippuva spekuloidusta käskystä Spekuloi ehdollisen haarautumisen (branch prediction) Spekuloidaan, että tallennus (kohdeosoitetta ei vielä tiedetä), joka edeltää latauskäskyä, ei viittaa samaan osoitteeseen, mikä mahdollistaa latauksen vuoronnettavan ennen tallennusta (load speculation) Tarvitaan seuraava mekanismit (laitteisto ja/tai ohjelmisto) Tarkastus, oliko arvaus oikein Toipumismekanismi niiden spekuloitujen käskyjen osalta, jotka on arvattu väärin, käskyn aiheuttamien vaikutusten korjaamiseen Jätä huomiotta ja/tai puskuroi poikkeukset, jotka on generoinut spekulatiivisesti suoritettu käsky, kunnes on selvää, että poikkeus on todellakin suoritettava #119

21 Staattiset Multiple Issue -koneet (VLIW) Staattisen multiple-issue -prosessorin (VLIW) yhteydessä kääntäjä päättää staattisesti (käännösaikana) mitkä käskyt haetaan ja suoritetaan samanaikaisesti Issue packet joukko käskyjä, jotka on niputettu yhteen ja haetaan samalla kellojaksolla yksi pitkä käsky sisältäen useita operaatioita Käskyjoukko nipussa on tavallisesti rajoitettu yksi käsky usealla etukäteen määritellyillä kentillä Kääntäjä ennustaa haarautumisen ja koodin vuoronnuksen staattisesti yrittäen vähentää (kontrolli) tai eliminoidakseen (data) hasardeja VLIW sisältää Useita toiminnallisia yksiköitä Moniporttisia rekisteritiedostoja Leveän ohjelmaväylän #120

22 Esimerkki: VLIW MIPS Oletetaan multiple-issue MIPS 2:n käskyn nipulla 64 bits ALU Op (R format) Load or Store (I format) or Branch (I format) käskyt haetaan, dekoodataan ja suoritetaan aina pareittain Jos toista parin käskyistä ei voida käyttää, niin se korvataan noop -käskyllä Tarvitaan 4 lukuporttia ja 2 kirjoitusporttia ja erillinen osoitesummain #121

23 MIPS VLIW (2-issue) datapolku Add Add Ei sisällä hasardilaitteistoa (joten load use ei sallittu) 4 ALU PC Instruction Memory Register File Write Addr Data Write Data Add Memory Sign Extend Sign Extend #122

24 MIPS VLIW (2-issue) datapolku Add 4 Add PC Instruction Memory Register File Write Addr Data Write Data Add Memory Sign Extend Sign Extend #123

25 Koodinvuoronnusesimerkki Oletetaan seuraava silmukkakoodi lp: lw $t0,0($s1) # $t0=array element addu $t0,$t0,$s2 # add scalar in $s2 sw $t0,0($s1) # store result addi $s1,$s1,-4 # decrement pointer bne $s1,$0,lp # branch if $s1!= 0 Käskyt on vuoronnettava välttäen liukuhihnan pysäyttämistä Yhdessä nipussa olevien käskyjen on oltava toisistaan riippumattomia load use -käskyt erotettava load-käskyistä vähintään yhdellä kellojaksolla 2 ensimmäisellä käskyllä on load-riippuvuus, 2:lla seuraavalla ja 2:lla viimeisellä datariippuvuus Oletetaan, että laitteisto osaa ennustaa haarautumiset täydellisesti #124

26 Vuoronnettu koodi (Not Unrolled) ALU or branch Data transfer CC lp: lw $t0,0($s1) 1 addi $s1,$s1,-4 2 addu $t0,$t0,$s2 3 bne $s1,$0,lp sw $t0,4($s1) kellojaksoa 5 käskyn suorittamiseen CPI: 0.8 (vs. parhaassa tapauksessa 0.5) IPC: 1.25 (vs. parhaassa tapauksessa 2.0) Noop-käskyjä ei lasketa suorituskykyä mitattaessa!! #126

27 #127 Silmukan iteraatioiden purkaminen Loop unrolling silmukan rungosta tehdään useita kopioita ja eri iteraatiosta olevia käskyjä vuoronnetaan yhteen ILP:n kasvattamiseksi Puretaan iteraatiot (4 kertaa edellisessä esimerkissä) ja tämän jälkeen vuoronnetaan aikaansaatu koodi Eliminoidaan tarpeettomat silmukanohjauskäskyt Vuoronnetaan siten, että vältetään load use hasardeja Silmukoiden purkamisen yhteydessä kääntäjä suorittaa rekisterien uudelleen nimeämisen (register renaming) Eliminoidaan datariippuvuudet, jotka eivät ole todellisia datariippuvuuksia

28 Unrolled Code Example lp: lw $t0,0($s1) # $t0=array element lw $t1,-4($s1) # $t1=array element lw $t2,-8($s1) # $t2=array element lw $t3,-12($s1) # $t3=array element addu $t0,$t0,$s2 # add scalar in $s2 addu $t1,$t1,$s2 # add scalar in $s2 addu $t2,$t2,$s2 # add scalar in $s2 addu $t3,$t3,$s2 # add scalar in $s2 sw $t0,0($s1) # store result sw $t1,-4($s1) # store result sw $t2,-8($s1) # store result sw $t3,-12($s1) # store result addi $s1,$s1,-16 # decrement pointer bne $s1,$0,lp # branch if $s1!= 0 #128

29 Vuoronnettu koodi (Unrolled) ALU / branch Datan siirto CC lp: addi $s1,$s1,-16 lw $t0,0($s1) 1 lw $t1,12($s1) 2 addu $t0,$t0,$s2 lw $t2,8($s1) 3 addu $t1,$t1,$s2 lw $t3,4($s1) 4 addu $t2,$t2,$s2 sw $t0,16($s1) 5 addu $t3,$t3,$s2 sw $t1,12($s1) 6 sw $t2,8($s1) 7 bne $s1,$0,lp sw $t3,4($s1) 8 # käskyn suoritukseen käytetään 8 kellojaksoa CPI: 0.57 (vs. parhaassa tapauksessa 0.5) IPC: 1.8 (vs. parhaassa tapauksessa 2.0)

30 Predikointi Predikointia voidaan käyttää haarautumisten välttämiseen Käskyn suoritus tehdään riippuvaiseksi predikaatista. Esim. if (p) {statement 1} else {statement 2} normaalisti käännettäisiin kahta haaraa käyttäen, mutta predikoinnilla: (p) statement 1 (~p) statement 2 Ehdon (condition)käyttäminen indikoi, että käsky lähetetään suoritukseen ainoastaan kun condition on tosi Predikointia voidaan käyttää sekä spekulointiin että haarautumisen välttämiseen #130

31 VLIW -prosessorin kääntäjätuki Kääntäjä pakkaa joukon toisistaan riippumattomia käskyjä nipuksi Tehdään osana koodin uudelleenjärjestelyä (trace scheduling) Kääntäjä purkaa silmukoita ILP:n paljastamiseen Kääntäjä käyttää rekisterin uudelleen nimeämistä nimiriippuvuuksien ratkomiseen ja no load -hasardien välttämiseen Superskalaarit käyttävät dynaamista ennustusta, mutta VLIW:ssä pääasiassa luotetaan kääntäjän tekemiin haarautumisennustuksiin Loop unrolling vähentää ehdollisten haarautumisien määrää Predikointi eliminoi if-the-else rakenteita korvaamalla niitä predikoiduilla käskyillä Kääntäjä ennustaa muistipankkien viittaukset tavoitteena minimoida muistikonfliktien määrä #131

32 Edut Haitat VLIW edut ja haitat Yksinkertainen laitteisto (potentiaalia energiatehokkuuteen) Mahdollisesti paremmin skaalattavissa Sallitaan enemmän käskyjä nipussa ja lisätään toiminnallisia yksiköitä Ohjelmoinnin / kääntäjän kompleksisuus ja pidemmät käännösajat Syvät liukuhihna ja pitkät latenssit sekoittavat ohjelmoijaa (huippusuorituskyvyn saavuttaminen voi olla vaikeaa) Täysin synkronoitu toiminta; hasardi pysäyttää kaikki käskynhaut, kunnes hasardi on täysin ratkaistu (joten käytetään ennustusta) Objekti (binääri-) koodin yhteensopimattomuus Tarvitaan leveä käskymuisti koodin turpoaminen Noop-käskyt tuhlaavat käskymuistia Loop unrolling käytössä ILP:n maksimoimiseksi, joka käyttää enemmän käskymuistia #132

33 Superskalaariprosessori (SS) Dynaamiset multiple-issue -prosessorit (SuperScalar) hyödyntävät ajoaikaista laitteistoa dynaamisesti päättelemään mitkä käskyt lasketaan liikkeelle ja suoritetaan samanaikaisesti Käskynhaku ja liikkeellelasku (instruction fetch and issue) hae käskyt, dekoodaa ja ohjaa ne toiminnalliselle yksikölle odottamaan suoritusta #133 Hae, dekoodaa ja ohjaa käskyjä, joka ovat paljon nykyistä käskyä myöhempänä suoritus (instruction-execution) heti, kun operandit ovat saatavilla ja FU ovat vapaana, tulokset voidaan laskea käskynsuoritus käskyille, jotka ovat huomattavasti nykyistä käskyä myöhempänä sitoutuminen (instruction commit) tulokset kirjoitetaan takaisin rekisteritiedostoon tai D$, kun tiedetään, että se on turvallista (i.e., muutetaan koneen tilaa)

34 Käskyjen järjestys (In-Order, Out-of-Order) Käskynhaku ja dekoodausyksikköjen täytyy tuottaa käskyt järjestyksessä, jotta riippuvuudet voidaan jäljittää Commit yksikön täytyy kirjoittaa tulokset rekistereihin ja muistiin samassa järjestyksessä kuin käskyt on haettu Poikkeuksen tapahtuessa ainoastaan ne rekisterit päivittyvät, joihin kirjoittavat ennen poikkeuksen aiheuttavaa käskyä olevat käskyt Jos haarautuminen ennustetaan väärin, haarautumiskäskyn jälkeen suoritetut käskyt eivät muuta koneen tilaa (Commit-yksikkö korjaa väärät ennustukset) Vaikka liukuhihnan etuosa (fetch, decode, and issue) ja takaosa (commit) käsittelevät käskyt järjestyksessä, FU:t voivat aloittaa operaation suorituksen milloin tahansa kunhan tarvittava data on saatavilla out-of-(program) order execution Suorituksen salliminen epäjärjestyksessä kasvattaa ILP:n määrää #134

35 Dynaamisesti vuoronnettu CPU Säilyttää riippuvuudet Säilyttää vireillä olevat operandit Tulokset lähetetään kaikille odottaville varausasemille järjestää puskurin uudelleen rekisterikirjoituksia varten Voi syöttääa operandeja aktiivisille käskyille #135

36 Suoritus epäjärjestyksessä Myöhempi käsky voidaan suorittaa ennen edellistä käskyä, joten laitteiston tulee ratkoa sekä read before write ja write before write data hasardit lw $t0,0($s1) addu $t0,$t1,$s2... sub $t2, $t0, $s2 Jos lw käskyn kirjoitus rekisteriin $t0 tapahtuu addu kirjoituksen jälkeen, niin sub käsky saa väärän arvon rekisteristä $t0 addu -käskyllä on ulostuloriippuvuus käskyyn lw write before write #136

37 Epäriippuvuudet Laitteiston on käsiteltävä myös epäriippuvuudet (antidependencies) kun (aiemmin suoritettava) myöhempi käsky tuottaa data-arvon, joka hävittää (myöhemmin suoritettavan) aiemman käskyn käyttämän lähdeoperandin R3 := R3 * R5 R4 := R3 + 1 R3 := R5 + 1 Antidependency True data dependency Output dependency Samanlainen rajoite kuin todellisilla datariippuvuuksilla, paitsi käänteinen Sen sijaan, että myöhempi käsky käyttää aiemman käskyn (ei vielä) tuottamaa arvoa (read before write), myöhempi käsky tuottaa arvon, joka tuhoaa aiemman käskyn (ei vielä) käyttämän arvon (write before read) #137

38 Riippuvuudet, yhteenveto Kaikki kolme riippuvuustyyppiä todellinen datariippuvuus (read before write) epäriippuvuus (write before read) ulostuloriippuvuus (write before write) talletuskonflikti ilmenevät rekisterien (tai muiden talletuspaikkojen) käytössä Todelliset riippuvuudet johtuvat ohjelmasta ja ovat nähtävillä ohjelman datavuokaaviossa Epä- ja ulostuloriippuvuudet johtuvat rekistereiden rajallisesta määrästä ohjelmoija käyttää rekistereitä uudelleen laskennan eri vaiheissa johtaen tallennuskonflikteihin #138

39 #139 Tallennuskonfliktit ja rekisterin uudelleennimeäminen Tallennuskonflikteja voidaan vähentää (tai eliminoida) lisäämällä ongelmalliseksi osoittautuvaa resurssia Otetaan käyttöön lisärekistereitä, joiden avulla muodostetaan uusi yhteys rekisterin ja arvon välille SS-prosessorissa laitteisto allokoi uudet rekisterit dynaamisesti Rekisterin uudelleen nimeäminen prosessori nimeää käskyssä olevan rekisterin tunnisteen uudelle rekisterille (joka ei näy ohjelmoijalle) arkkitehtuurirekisterit vs. fyysiset rekisterit R3 := R3 * R5 R4 := R3 + 1 R3 := R5 + 1 R3b := R3a * R5a R4a := R3b + 1 R3c := R5a + 1 Nimeämisen suorittava laitteisto valitsee korvaavan rekisterin vapaiden rekisterien varastosta ja vapauttaa rekisterin takaisin varastoon, kun sen arvo on korvattu ja ratkaisemattomia viittauksia rekisteriin ei ole olemassa

40 Yhteenveto: Lisää suorituskykyä Suorituskyvyn kasvattamiseksi on hyödynnettävä sekä konetason että käskytason (ILP) rinnakkaisuutta Superpipelining Staattinen multiple-issue (VLIW) Dynaaminen multiple-issue (superskalaari) Prosessorin käyttämät mekanismit käskyn liikkeelle laskuun ja suoritukseen vaikuttavat käytettävissä olevaan ILP:een In-order fetch, issue, and commit ja out-of-order execution Liukuhihnoitus luo todellisia riippuvuuksia (read before write) Epäjärjestyksessä suoritus luo epäriippuvuuksia (write before read) Epäjärjestyksessä suoritus luo ulostuloriippuvuuksia (write before write) In-order commit sallii spekuloinnin (ILP:n kasvattamiseksi) ja tarvitaan tarkkojen keskeytysten toteuttamiseksi Rekisterin uudelleen nimeäminen voi ratkoa talletuskonfliktit #140

41 CISC vs RISC vs SS vs VLIW CISC RISC Superscalar VLIW Instr size variable size fixed size fixed size fixed size (but large) Instr format Registers Memory reference Key Issues variable format few, some special Limited # of ports embedded in many instr s decode complexity fixed format fixed format fixed format Many GP Limited # of ports GP and rename (RUU) Many ports many, many GP Many ports load/store load/store load/store data forwarding, hazards hardware dependency resolution (compiler) code scheduling #141

42 Liukuhihnoitettujen SS - prosessoreiden evoluutio #142 Year Clock Frequency #Pipeline Stages Issue Widt h Cores/ Chip Power Intel MHz W Intel Pentium MHz W Intel Pentium Pro Intel Pentium 4 Willamette Intel Pentium 4 Prescott MHz W MHz W MHz W Intel Core MHz W Sun USPARC III Sun T1 (Niagara) MHz W MHz W

52480S TIETOKEARKKITEHTUURIT Tentti 6.2.1998

52480S TIETOKEARKKITEHTUURIT Tentti 6.2.1998 S Ä H K Ö T E K N I I K A N O S A S T O 548S TIETOKEARKKITEHTUURIT Tentti 6..998 Oulu 8..999. Selosta lyhyesti käsitteet: a. set associative memory b. conflict miss c. consistency of cached data d. access

Lisätiedot

Superskalaariprosessointi

Superskalaariprosessointi Tietokoneen rakenne Luento 10 Superskalaariprosessointi Stallings: Ch 14 Käskyjen väliset riippuvuudet Rekistereiden uudelleennimeäminen Pentium / PowerPC Luento 10-1 Superskalaariprosessointi Tavoite

Lisätiedot

Superskalaariprosessointi

Superskalaariprosessointi Tietokoneen rakenne Luento 10 Superskalaariprosessointi Stallings: Ch 14 Käskyjen väliset riippuvuudet Rekistereiden uudelleennimeäminen Pentium / PowerPC Luento 10-1 Superskalaariprosessointi Tavoite

Lisätiedot

Superskalaariprosessointi

Superskalaariprosessointi Tietokoneen rakenne Luento 10 Superskalaariprosessointi Stallings: Ch 14 Käskyjen väliset riippuvuudet Rekistereiden uudelleennimeäminen Pentium / PowerPC Luento 10-1 Superskalaariprosessointi Tavoite

Lisätiedot

Luento 10: Superskalaari prosessori

Luento 10: Superskalaari prosessori Tietokoneen rakenne Stallings: Ch 14 Käskyjen väliset riippuvuudet Rekistereiden uudelleennimeäminen Pentium / PowerPC Luento 10 Muistin käytön oltava tehokas u Nouda useita käskyjä yhtäaikaa, ennaltanouto

Lisätiedot

Luento 10: Superskalaari prosessori

Luento 10: Superskalaari prosessori Tietokoneen rakenne Luento 10 Tavoite u Nopeuttaa skalaarikäskyjen prosessointia Useita itsenäisiä liukuhihnoja u Ei siis pelkästään enemmän vaiheita liukuhihnalla Stallings: Ch 14 Käskyjen väliset riippuvuudet

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

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,

Lisätiedot

Käyttöjärjestelmän rakenne

Käyttöjärjestelmän rakenne Käyttöjärjestelmän rakenne Tietokonejärjestelmä = Laitteisto + ohjelmisto Sovellus saa laitteiston käyttöönsä kj:n avustuksella CPU ja muisti Oheislaitteet KJ tarjoaa laitteiston käytössä tarvittavat palvelunsa

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Suorittimen rakenne ja toiminta

Suorittimen rakenne ja toiminta Tietokoneen rakenne Luento 8 Suorittimen rakenne ja toiminta Ch 12.1-4 [Sta06] Rekisterit Käskysykli Liukuhihna Riippuvuusongelmat Hyppyjen käsittely Luento 8-1 CPU:n yleisrakenne (Sta06 Fig 12.2) ALU

Lisätiedot

Suorittimen rakenne ja toiminta

Suorittimen rakenne ja toiminta Tietokoneen rakenne Luento 8 CPU:n yleisrakenne (Sta06 Fig 12.2) ALU Suorittimen rakenne ja toiminta Ch 12.1-4 [Sta06] Rekisterit Käskysykli Liukuhihna Riippuvuusongelmat Hyppyjen käsittely u Laskenta,

Lisätiedot

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen Intel Pentium Pro -prosessori tietokonearkkitehtuurit, syksy -96 Ari Rantanen Tarkasteltavat aiheet Katsaus Pentium Pro:n ominaisuuksiin Käskyn suoritus Pentium Pro:n liukuhihnalla Pentium Pro:n suorituskyky

Lisätiedot

Suorittimen rakenne ja toiminta

Suorittimen rakenne ja toiminta Tietokoneen rakenne Luento 8 Suorittimen rakenne ja toiminta Ch 12.1-4 [Sta06] Rekisterit Käskysykli Liukuhihna Riippuvuusongelmat Hyppyjen käsittely Luento 8-1 CPU:n yleisrakenne (Sta06 Fig 12.2) ALU

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 2: DLX I - arkkitehtuuri

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 2: DLX I - arkkitehtuuri TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 2: DLX I - arkkitehtuuri.. 2010 Ryhmä Nimi Op.num. Yleistä harjoitustyöstä Tämän työn

Lisätiedot

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan

Lisätiedot

TKT-3201 Tietokonearkkitehtuuri 2

TKT-3201 Tietokonearkkitehtuuri 2 TKT-3201 Tietokonearkkitehtuuri 2 Luku 2: Käskyt: Tietokoneen kieli Tietokonetekniikka #2 Käskykanta Käytettävissä olevien käskyjen joukko Erilaisilla prosesoreilla erilainen käskykanta Mutta paljon yhteisiä

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 2 521475S Tietokonealgoritmien rinnakkaisuuden analysointi Algoritmi on proseduuri, joka koostuu äärellisestä joukosta yksiselitteisiä sääntöjä jotka muodostavat operaatiosekvenssin,

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 4 521475S Rinnakkaiset ei-numeeriset algoritmit: transitiivisulkeuma (transitive closure) Oletetaan suunnattu graafi G = (V,E) ja halutaan tietää onko olemassa kahta pistettä

Lisätiedot

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne Luento 5 Suoritin ja Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset KOKSI:n rakenne Suoritin suoritin - CPU ALU rekisterit CU MMU Välimuisti (cache) muisti (kirjastorutiinit)

Lisätiedot

Harjoitustyö 3: DLX kontrolli

Harjoitustyö 3: DLX kontrolli TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 3: DLX kontrolli.. 2005 Ryhmä Nimi Email op. num. DLX-KONTROLLI Harjoitustyön tarkoitus

Lisätiedot

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne Jakso 5 Suoritin ja Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset Suoritin suoritin - CPU ALU rekisterit CU MMU Välimuisti (cache) muisti (kirjastorutiinit) ohjelma

Lisätiedot

Luento 5 (verkkoluento 5) Suoritin ja väylä

Luento 5 (verkkoluento 5) Suoritin ja väylä Luento 5 (verkkoluento 5) Suoritin ja väylä Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit,

Lisätiedot

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Käyttöjärjestelmät: prosessit

Käyttöjärjestelmät: prosessit Käyttöjärjestelmät: prosessit Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Käyttöjärjestelmä

Lisätiedot

Tietokoneen rakenne: Harjoitustyö. Motorola MC68030 -prosessori

Tietokoneen rakenne: Harjoitustyö. Motorola MC68030 -prosessori kevät 2004 TP02S-D Tietokoneen rakenne: Harjoitustyö Motorola MC68030 -prosessori Työn valvojat: Seppo Haltsonen Pasi Lankinen RAPORTTI 13.5.2004 Sisällysluettelo sivu Tiivistelmä... 1 Lohkokaavio... 2

Lisätiedot

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin

Lisätiedot

4. Luento: Prosessit ja säikeets. Tommi Mikkonen, tommi.mikkonen@tut.fi

4. Luento: Prosessit ja säikeets. Tommi Mikkonen, tommi.mikkonen@tut.fi 4. Luento: Prosessit ja säikeets Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Prosessi Säikeet Keskeytykset Keskeytyskäsittely Käyttöjärjestelmäkutsut Prosessielementti Prosessin hallinta Suunnittelunäkökohtia

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

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento

Lisätiedot

Käännös, linkitys ja lataus

Käännös, linkitys ja lataus Luento 10 (verkkoluento 10) Käännös, linkitys ja lataus Ohjelmasta prosessiin Käännösyksikkö Kääntämisen vaiheet Makrot, literaalit Staattinen ja dynaaminen linkitys Nimien sidonta Lausekielestä suoritukseen

Lisätiedot

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä Jakso 5 Suoritin ja väylä Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne 1 Suoritin suoritin - CPU ALU rekisterit CU MMU muisti (kirjastorutiinit)

Lisätiedot

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet 1 Suorituksenaikainen suorittimen

Lisätiedot

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone

Lisätiedot

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä Jakso 5 Suoritin ja väylä Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne 1 Suoritin muisti suoritin - CPU ALU CU rekisterit MMU (kirjastorutiinit)

Lisätiedot

Suoritinesimerkit RISC- arkkitehtuuri

Suoritinesimerkit RISC- arkkitehtuuri Tietokoneen rakenne Luento 9 Suoritinesimerkit RISC- arkkitehtuuri Ch 12.5-6 [Sta06] Pentium/PowerPC Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Luento 9-1 Tietokoneen rakenne Pentium

Lisätiedot

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat

Lisätiedot

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1 Käyttöjärjestelmät Tietokoneen rakenne Stallings, Luku 1 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1 Sisältöä Keskusyksikkö Käskysykli Keskeytys ja sen käsittely Siirräntä Muistihierarkia

Lisätiedot

IA-64. Tietokoneen rakenne. Stallings: Ch 15 Yleistä IA-64:stä Predikointi Spekulointi Ohjelmoitu liukuhihna Itanium 2 Intel Multi-core ja STI Cell

IA-64. Tietokoneen rakenne. Stallings: Ch 15 Yleistä IA-64:stä Predikointi Spekulointi Ohjelmoitu liukuhihna Itanium 2 Intel Multi-core ja STI Cell Tietokoneen rakenne Luento 11 IA-64 Stallings: Ch 15 Yleistä IA-64:stä Predikointi Spekulointi Ohjelmoitu liukuhihna Itanium 2 Intel Multi-core ja STI Cell Luento 11-1 EPIC EPIC - Explicit Parallel Instruction

Lisätiedot

Tietokonearitmetiikka

Tietokonearitmetiikka Tietokoneen rakenne Luento 6 Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen Yksikkö ALU = Aritmetic

Lisätiedot

Luento 12: Kontrollin toteutus Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus

Luento 12: Kontrollin toteutus Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus Tietokoneen rakenne Luento 12 Ohjausyksikkö Ch 16-17 [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus Luento 12-1 Mitä ohjaus/kontrolli tarkoittaa? Arkkitehtuuri määrää

Lisätiedot

Ohjausyksikkö. Tietokoneen rakenne. Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus.

Ohjausyksikkö. Tietokoneen rakenne. Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus. Tietokoneen rakenne Luento 12 Ohjausyksikkö Ch 16-17 [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus Luento 12-1 Mitä ohjaus/kontrolli tarkoittaa? Arkkitehtuuri määrää

Lisätiedot

Suoritinesimerkit RISC- arkkitehtuuri

Suoritinesimerkit RISC- arkkitehtuuri Tietokoneen rakenne Luento 9 Suoritinesimerkit RISC- arkkitehtuuri Ch 12.5-6 [Sta06] Pentium/PowerPC Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Luento 9-1 Tietokoneen rakenne Pentium

Lisätiedot

Suoritinesimerkit RISC- arkkitehtuuri

Suoritinesimerkit RISC- arkkitehtuuri Suoritinesimerkit RISC- arkkitehtuuri Ch 12.5-6 [Sta06] Pentium/PowerPC Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Luento 9 Pentium Luento 9-1 Luento 9-2 Pentium: Rekisterit Pentium:

Lisätiedot

RISC-arkkitehtuuri Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä

RISC-arkkitehtuuri Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Tietokoneen rakenne Suoritinesimerkit Ch 12.5-6 [Sta06] Pentium/PowerPC Luento 9 RISC-arkkitehtuuri Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Luento 9-1 Tietokoneen rakenne Pentium

Lisätiedot

Laitteistonläheinen ohjelmointi

Laitteistonläheinen ohjelmointi Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Luennot: Perjantai 12-14 TB104 Esitiedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali:

Lisätiedot

Luento 9: RISC-arkkitehtuuri Luento 9 EAX, EBX, EBX, EDX, ESP, EBP, ESI, EDI CS, SS, DS, ES, FS, GS. (Sta06 Table 12.

Luento 9: RISC-arkkitehtuuri Luento 9 EAX, EBX, EBX, EDX, ESP, EBP, ESI, EDI CS, SS, DS, ES, FS, GS. (Sta06 Table 12. Suoritinesimerkit Ch 12.5-6 [Sta06] Pentium/PowerPC RISC-arkkitehtuuri Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Luento 9 Pentium Luento 9-1 Luento 9-2 Pentium: Rekisterit Pentium:

Lisätiedot

Luento 12: Kontrollin toteutus Luento 12. u Millainen käskykanta käytössä, mitä käskyt tekevät? u Mikä operaatio, missä operandit?

Luento 12: Kontrollin toteutus Luento 12. u Millainen käskykanta käytössä, mitä käskyt tekevät? u Mikä operaatio, missä operandit? Ohjausyksikkö Ch 16-17 [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus Luento 12 Mitä ohjaus/kontrolli tarkoittaa? Arkkitehtuuri määrää CPU:n ulkoisen, ohjelmoijalle

Lisätiedot

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne Jakso 5 Suoritin ja väylä Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne 1 Suoritin muisti suoritin - CPU ALU CU rekisterit MMU (kirjastorutiinit)

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Käskyjen nouto- ja suoritussykli Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet

Lisätiedot

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja s2009 1. D-kiikku Toteuta DE2:lla synkroninen laskukone, jossa lasketaan kaksi nelibittistä lukua yhteen. Tulos esitetään ledeillä vasta,

Lisätiedot

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi 27.1.2011 Tietokone suoritin (CPU) väylä tai väylät laiteohjaimet muiden koneiden kanssa Ethernet, modeemi,... laitteiden kanssa Levy, DVD, CD,

Lisätiedot

TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Tietokonetekniikka. Tutkintotyö. Emil Palomäki INTEL CORE -MIKROARKKITEHTUURI

TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Tietokonetekniikka. Tutkintotyö. Emil Palomäki INTEL CORE -MIKROARKKITEHTUURI TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Tietokonetekniikka Tutkintotyö INTEL CORE -MIKROARKKITEHTUURI Työn ohjaaja Tampere 2006 Kai Poutanen TAMPEREEN AMMATTIKORKEAKOULU Tietotekniikan

Lisätiedot

Luento 5 (verkkoluento 5) Suoritin ja väylä

Luento 5 (verkkoluento 5) Suoritin ja väylä Luento 5 (verkkoluento 5) Suoritin ja väylä Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset 1 Suoritusaikainen suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit,

Lisätiedot

Tietokonearitmetiikka

Tietokonearitmetiikka Luento 6 ALU: Aritmeettis-Looginen Yksikkö Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU = Aritmetic Logic Unit

Lisätiedot

Tietokoneen mysteeri sekventiaalilogiikka

Tietokoneen mysteeri sekventiaalilogiikka 111111111 111111111 1111111 11111111 111111 1111111 Tietokoneen mysteeri sekventiaalilogiikka Petteri Kaski Tietotekniikan laitos Aalto-yliopisto CS-A112 Ohjelmointi 2 1. maaliskuuta 217 111111111 11111111

Lisätiedot

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC LOAD, =X LOAD R2, X int x =; symbolin X arvo muuttujan X arvo

Lisätiedot

ELEC-C3240 Elektroniikka 2

ELEC-C3240 Elektroniikka 2 ELEC-C324 Elektroniikka 2 Marko Kosunen Marko.kosunen@aalto.fi Digitaalielektroniikka Tilakoneet Materiaali perustuu kurssiins-88. Digitaalitekniikan perusteet, laatinut Antti Ojapelto Luennon oppimistavoite

Lisätiedot

Tietokonearitmetiikka

Tietokonearitmetiikka Tietokoneen rakenne Luento 6 Tietokonearitmetiikka (Computer Arithmetic) Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen

Lisätiedot

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1 Käyttöjärjestelmät t I Luento 2: LAITTEISTOSTA Stallings, Luku 1 Sisält ltöä Keskusyksikkö Käskysykli Keskeytys ja sen käsittely Siirräntä Muistihierarkia = Tietokoneen Toiminta kurssin kertausta KJ-I

Lisätiedot

Tietokonearitmetiikka

Tietokonearitmetiikka Luento 6 ALU: Aritmeettis-Looginen Yksikkö Tietokonearitmetiikka (Computer Arithmetic) Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU =

Lisätiedot

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 symbolit ovat yleensä

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

SISÄLLYS sisällys 1 Tietokoneen toimintaperiaate ja käyttö 2 Tietokoneen historia 3 Tietokoneen rakenteen ja toiminnan perusteet

SISÄLLYS sisällys 1 Tietokoneen toimintaperiaate ja käyttö 2 Tietokoneen historia 3 Tietokoneen rakenteen ja toiminnan perusteet SISÄLLYS 1 2 3 4 Tietokoneen toimintaperiaate ja käyttö 14 1.1 Mikä tietokone on? 14 1.2 Tieteen ja toimiston koneista yleistietokoneeseen 15 1.3 Mekaanisista ja sähköisistä laitteista sulautettuihin tietokoneisiin

Lisätiedot

Laitteistonläheinen ohjelmointi

Laitteistonläheinen ohjelmointi Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Harjoitustyö: Mikko Vulli Esituedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali: luentomoniste

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä Luento 5 Suoritin ja väylä Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne 1 Suoritin muisti suoritin - CPU ALU CU rekisterit

Lisätiedot

Luento 11: IA-64 ja muut esimerkit Luento 11 EPIC. u Uutta semantiikkaa konekielen tasolle. u Käsittelee käskyjä nipuissa (bundle)

Luento 11: IA-64 ja muut esimerkit Luento 11 EPIC. u Uutta semantiikkaa konekielen tasolle. u Käsittelee käskyjä nipuissa (bundle) IA-64 Stallings: Ch 15 Yleistä IA-64:stä Predikointi Spekulointi Ohjelmoitu liukuhihna Itanium 2 Intel Multi-core ja STI Cell Luento 11 EPIC EPIC - Explicit Parallel Instruction Computing Rinnakkaisuus

Lisätiedot

1. Keskusyksikön rakenne

1. Keskusyksikön rakenne 1. Keskusyksikön rakenne Kuvassa on esitelty TTK-91 esimerkkikoneen keskusyksikkö. Oikeiden tietokoneiden keskusyksiköt ovat luonnollisesti monimutkaisempia, mutta tämä riittää oikein mainiosti asian havainnollistamiseen.

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

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

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Käyttöjärjestelmät: poissulkeminen ja synkronointi Käyttöjärjestelmät: poissulkeminen ja synkronointi Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet

Lisätiedot

Tietokoneen mysteeri ohjelmoitava kone

Tietokoneen mysteeri ohjelmoitava kone 01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri ohjelmoitava kone Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi

Lisätiedot

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5) Luento 5 Suoritin ja väylä Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne Suoritin suoritin - CPU ALU rekisterit CU

Lisätiedot

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne. Proseduurit Proseduuri voi olla 1) Funktio, joka palauttaa jonkin arvon: real function sinc(x) real x sinc = sin(x)/x... y = sinc(1.5) 2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma

Lisätiedot

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 1 Tietokone abstraktina yksikkönä Tietokoneen asbtratiotasoa sen muotoisena kuin me sen tällä hetkellä

Lisätiedot

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 Tieto ja sen osoite

Lisätiedot

Luento 12: Kontrollin toteutus Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus

Luento 12: Kontrollin toteutus Ch [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus Tietokoneen rakenne Luento 12 Ohjausyksikkö Ch 16-17 [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus Luento 12-1 Mitä ohjaus/kontrolli tarkoittaa? Arkkitehtuuri määrää

Lisätiedot

Transmeta Architecture

Transmeta Architecture Transmeta Architecture Major Ideas General Architecture Emulated Precise Exceptions What to do with It 1 Background Transmeta Corporation Paul Allen (Microsoft), George Soros (Soros Funds) David R. Ditzel

Lisätiedot

Luento 12: Kontrollin toteutus Luento 12. u Mikä operaatio, missä operandit? u Miten keskeytykset hoidellaan?

Luento 12: Kontrollin toteutus Luento 12. u Mikä operaatio, missä operandit? u Miten keskeytykset hoidellaan? Ohjausyksikkö Ch 16-17 [Sta06] Mikro-operaatiot Ohjaussignaalit Langoitettu ohjaus Mikro-ohjelmoitu ohjaus Luento 12 Mitä ohjaus/kontrolli tarkoittaa? Arkkitehtuuri määrää CPU:n ulkoisen, ohjelmoijalle

Lisätiedot

Transmeta Architecture

Transmeta Architecture Transmeta Architecture Major Ideas General Architecture Emulated Precise Exceptions What to do with It 1 Background Transmeta Corporation Paul Allen (Microsoft), George Soros (Soros Funds) David R. Ditzel

Lisätiedot

Aktivaatiotietue. Yleiskäsite funktio (aliohjelma) -mekanismin tarvitsemille tiedoille. Kehysosoitin (%fp) missä tiedot ovat

Aktivaatiotietue. Yleiskäsite funktio (aliohjelma) -mekanismin tarvitsemille tiedoille. Kehysosoitin (%fp) missä tiedot ovat Aktivaatiotietue Yleiskäsite funktio (aliohjelma) -mekanismin tarvitsemille tiedoille Parametrit ja paluuarvo Paluuosoite Linkkitiedot Kehysosoitin (%fp) missä tiedot ovat Missä edellisen tiedot ovat (palattaessa

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 (verkkoluento 1) Tietokonejärjestelmä Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?

Lisätiedot

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000 Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 3 521475S Rinnakkaiset Numeeriset Algoritmit Silmukattomat algoritmit Eivät sisällä silmukka lauseita kuten DO,FOR tai WHILE Nopea suorittaa Yleisimmässä muodossa koostuu peräkkäisistä

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä?

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? Luento 2 tietokone ja sen KOKSI simulaattori Miksi? rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten ohjelmia suoritetaan simulaattorissa? Miksi konekieltä? Koneen toiminnan ymmärtäminen

Lisätiedot

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja

Lisätiedot

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä Luento 5 Suoritin ja väylä Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne 1 Suoritin suoritin - CPU ALU rekisterit CU

Lisätiedot

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet

Lisätiedot

Tietokoneen toiminta, K Tavoitteet (4)

Tietokoneen toiminta, K Tavoitteet (4) Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?

Lisätiedot

Intel Threading Building Blocks

Intel Threading Building Blocks Intel Threading Building Blocks Markku Vajaranta Esko Pekkarinen TBB Pähkinänkuoressa C++ luokkamallinen rinnakkaisuus Abstrahoi rinnakkaisuutta korkean tason tehtävät (tasks) ja niiden skedulointi suuri

Lisätiedot