Staattinen haarautumisen ennustus
|
|
- Helinä Lehtilä
- 7 vuotta sitten
- Katselukertoja:
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
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ätiedotSuperskalaariprosessointi
Tietokoneen rakenne Luento 10 Superskalaariprosessointi Stallings: Ch 14 Käskyjen väliset riippuvuudet Rekistereiden uudelleennimeäminen Pentium / PowerPC Luento 10-1 Superskalaariprosessointi Tavoite
LisätiedotSuperskalaariprosessointi
Tietokoneen rakenne Luento 10 Superskalaariprosessointi Stallings: Ch 14 Käskyjen väliset riippuvuudet Rekistereiden uudelleennimeäminen Pentium / PowerPC Luento 10-1 Superskalaariprosessointi Tavoite
LisätiedotSuperskalaariprosessointi
Tietokoneen rakenne Luento 10 Superskalaariprosessointi Stallings: Ch 14 Käskyjen väliset riippuvuudet Rekistereiden uudelleennimeäminen Pentium / PowerPC Luento 10-1 Superskalaariprosessointi Tavoite
LisätiedotLuento 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ätiedotLuento 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ätiedotRinnakkaistietokoneet 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ätiedotTIEP114 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ätiedotOngelma(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ätiedotKä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ätiedotTIEP114 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ätiedotSuorittimen 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ätiedotSuorittimen 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ätiedotIntel 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ätiedotSuorittimen 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ätiedotTAMPEREEN 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ätiedotOngelma(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ätiedotTKT-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ätiedotRinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 2 521475S Tietokonealgoritmien rinnakkaisuuden analysointi Algoritmi on proseduuri, joka koostuu äärellisestä joukosta yksiselitteisiä sääntöjä jotka muodostavat operaatiosekvenssin,
LisätiedotRinnakkaistietokoneet 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ätiedotSuoritin. 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ätiedotHarjoitustyö 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ätiedotSuoritin. 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ätiedotLuento 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ätiedotLOAD 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ätiedotLuento 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ätiedotLuento 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ätiedotKä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ätiedotTietokoneen 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ätiedotLuento 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ätiedot4. 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ätiedotRinnakkaisuuden 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ätiedotLuento 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ätiedotKää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ätiedotJakso 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ätiedotLuento 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ätiedotLuento 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ätiedotJakso 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ätiedotSuoritinesimerkit 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ätiedotTietojenkä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ätiedotKä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ätiedotIA-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ätiedotTietokonearitmetiikka
Tietokoneen rakenne Luento 6 Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen Yksikkö ALU = Aritmetic
LisätiedotLuento 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ätiedotOhjausyksikkö. 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ätiedotSuoritinesimerkit 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ätiedotSuoritinesimerkit 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ätiedotRISC-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ätiedotLaitteistonlä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ätiedotLuento 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ätiedotLuento 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ätiedotJakso 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ätiedot11/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ätiedotLuento 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ätiedotAUTO3030 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ätiedotTeemun 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ätiedotTAMPEREEN 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ätiedotLuento 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ätiedotTietokonearitmetiikka
Luento 6 ALU: Aritmeettis-Looginen Yksikkö Tietokonearitmetiikka Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU = Aritmetic Logic Unit
LisätiedotTietokoneen 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ätiedotTieto 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ätiedotELEC-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ätiedotTietokonearitmetiikka
Tietokoneen rakenne Luento 6 Tietokonearitmetiikka (Computer Arithmetic) Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU: Aritmeettis-Looginen
Lisätiedotltöä 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ätiedotTietokonearitmetiikka
Luento 6 ALU: Aritmeettis-Looginen Yksikkö Tietokonearitmetiikka (Computer Arithmetic) Stallings: Ch 9 Kokonaislukuesitys Kokonaislukuaritmetiikka Liukulukuesitys Liukulukuaritmetiikka Luento 6-1 ALU =
LisätiedotJakso 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ätiedotOngelma(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ätiedotSISÄ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ätiedotLaitteistonläheinen ohjelmointi
Laitteistonläheinen ohjelmointi 4 op Luennoija: Pertti Lehtinen Harjoitustyö: Mikko Vulli Esituedot: Mikroprosessorit Perusohjelmointikurssi Kurssin osat: luennot, harjoitustyö, tentti Materiaali: luentomoniste
LisätiedotAlgoritmit 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ätiedotLuento 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ätiedotLuento 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ätiedot1. 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ätiedot7.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ätiedot12. 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ätiedotConcurrency - 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ätiedotKä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ätiedotTietokoneen mysteeri ohjelmoitava kone
01110111010110 11110101010101 00101011010011 01010111010101 01001010101010 10101010101010 Tietokoneen mysteeri ohjelmoitava kone Petteri Kaski Tietotekniikan laitos Aalto-yliopisto ICS-A1120 Ohjelmointi
LisätiedotSuoritin. 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ätiedot2) 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ätiedotTIES325 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ätiedotJakso 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ätiedotLuento 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ätiedotTransmeta 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ätiedotLuento 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ätiedotTransmeta 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ätiedotAktivaatiotietue. 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ätiedot11. 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ätiedotLuento 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ätiedotLuento 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ätiedotJakso 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ätiedotRinnakkaistietokoneet 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ätiedotLuento 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ätiedotLuento 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ätiedot2 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ätiedotSulautettujen 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ätiedotLuento 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ätiedotLuento 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ätiedotTietokoneen 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ätiedotIntel 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