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

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

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

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

1. Keskusyksikön rakenne

Jakso 5 Suoritin ja väylä

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

Jakso 5 Suoritin ja väylä

Käyttöjärjestelmän rakenne

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen 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

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

Luento 5 Suoritin ja väylä

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

Suorittimen rakenne ja toiminta

Suorittimen rakenne ja toiminta

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

Suorittimen rakenne ja toiminta

Luento 5 Suoritin ja väylä

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

Luento 5 Suoritin ja väylä

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

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

Luento 5 Suoritin ja väylä

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

tikra_oppimistavoitteet.doc Sivu 1 / / Teemu Kerola Oppimistavoitteet kurssilla Tietokoneen rakenne Osaa selittää Boolen algebran

Suoritinesimerkit RISC- arkkitehtuuri

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

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

Suoritinesimerkit RISC- arkkitehtuuri

Suoritinesimerkit RISC- arkkitehtuuri

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

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

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

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

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

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

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

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

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

Tietokoneen toiminta, K Tavoitteet (4)

Superskalaariprosessointi

Käskykannat. Tietokoneen rakenne. Ch [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC. Luento 7-1

Superskalaariprosessointi

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Luento 10: Superskalaari prosessori

Superskalaariprosessointi

Tietokoneen rakenne Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan

Luento 7: Käskykannat Tietokoneen rakenne / 2006 / Teemu Kerola 9/25/2006

Luento 2: LAITTEISTOSTA

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Luento 10: Superskalaari prosessori

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

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

Luento 2: Väylät Laitteiden väliseen kommunikointiin Tav. yleislähetys: kaikki kuulevat kaiken

Järjestelmän ulkoinen muisti I/O

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Aliohjelmien toteutus Suoritin ja väylä

Luento 2: Väylät Luento 2. Luento 2-1 R/W. Req / Rel. - Ajoitus. Luento 2-3. Memory. Luento 2-5

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena

Väylät. Tietokoneen rakenne. Stallings: Ch 3 Mitä väylällä liikkuu? Väylän ominaisuuksia PCI-väylä PCI Express. Luento 2-1

Käyttöjärjestelmät: prosessit

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

Transmeta Architecture

Transmeta Architecture

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Tietokonearitmetiikka

2 Konekieli, aliohjelmat, keskeytykset

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Tietokonearitmetiikka

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

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

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

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

Laitteistonläheinen ohjelmointi

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Muistihierarkia Kiintolevyt I/O:n toteutus

Kombinatorisen logiikan laitteet

Käyttöjärjestelmät II

Käyttöjärjestelmät II

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: tietotyypit (2)

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

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Luento 2 TTK-91 tietokone ja sen simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91 (1) TTK-91 laitteisto

Tietokonearitmetiikka

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Käyttöjärjestelmät, 8 op

Muistihierarkia Kiintolevyt I/O:n toteutus

Tietokoneen toiminta Copyright Teemu Kerola Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Luento 4 Aliohjelmien toteutus

Kurssin asema Käyttöjärjestelmät, 8 op. Kurssikirja. Kurssin tavoite. Kurssin rakenne: Kurssin suorittaminen. Käyttöjärjestelmät - Luento 1

Transkriptio:

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 (myös KJ) näkyvän toiminnan u Millainen käskykanta käytössä, mitä käskyt tekevät? u Mikä operaatio, missä operandit? u Miten keskeytykset hoidellaan? Functional requirements for CPU 1. Operations 2. Addressing modes 3. Registers 4. I/O module interface 5. Memory module interface 6. Interrupt processing structure Ohjausyksikkö CU määrää kuinka käskyssä kuvatut asiat saadaan tehdyiksi laitteistossa (CPU, MEM, väylät, I/O) u Selvittää miten piirien täytyy toimia tietyllä hetkellä u Valitsee millaisia ohjaussignaaleja pitää antaa: mille piireille, milloin, missä järjestyksessä, u Fyysiset johtimet välittävät ohjaussignaalit piireille täsmällisesti kellopulssin ajoittamina Luento 12-1 Luento 12-2 Ohjaussignaalit read write add (Sta06 Fig 16.4) Ohjaus = kontrolloidaan data siirtämistä paikasta toiseen u CPU:n sisällä: REG REG, ALU REG, ALU-operaatiot u CPU MEM (I/O-ohjain): osoite, data, ohjaus Ajoitus, järjestys Mikro-operaatiot Yksinkertaisia ohjaussignaaleja, jotka aiheuttavat yhden pienen toiminnon (operaation) u Esim. bitit siirtyvät rekisteristä r1 väylää pitkin edelleen ALU:un Kellosyklin kesto pisimmän operaation perusteella Kunkin syklin aikana useita mikro-operaatioita u Osa voidaan suorittaa samanaikaisesti, jos tapahtuvat eri osissa piirejä u Vältettävä resurssikonfliktit WaR tai RaW, ALU, väylä u Osa suoritettava peräkkäin tietyssä järjestyksessä, semantiikan säilyttävä t1: MAR PC t2: MBR MEM[MAR] PC PC + 1 t3: IR (ΜΒΡ) Toteutus siten, että ei tarvita ALUa Luento 12-3 Luento 12-4 Käskysykli Käskyn noutosykli (Sta06 Fig 16.1) Esim: t1: MARPC t2: MAR MMU(MAR) Control BusReserve wait? t3: Control BusRead PC PC + 1 t4: MBRMEM[MAR] Control BusRelease t5: IRMBR (Sta06 Fig 12.6) Kun mikro-operaatiot kohdistuvat laitteiston eri piireihin, laitteisto voi suorittaa useita samanaikaisesti Ks. luvun 12 käskysykliesimerkit (seur. kalvot) Onko suoritusjärjestyksellä merkitystä? Mitä voi suorittaa rinnakkain? Mitä samaan sykliin, mitkä tarvitsevat oman syklin? Luento 12-5 Luento 12-6 / 2007 / Liisa Marttinen 1

Käskysykli Operandien noutosyklit u Rekistereistä tai muistista u Osoitelaskenta Suoritussyklit u Suoritus tavallisesti ALUssa u Operandit sisäänmenoihin, ja ohjaus operaatiosta u Tulos ALU:n ulostulosta rekisteriin/muistiin u flagsstatus Keskeytyssyklit u ks. luvun 12 esimerkit: Pentium, PowerPC u Mitkä samaan mikrokäskyyn? u Mitkä samaan aikaan/peräkkäin? ADD r1,r2,r3: t1: ALUin1 r2 t2: ALUin2 r3 ALUoper IR.oper t3: r1 ALUout flags xxx ISZ X, Increment and Skip if zero: t1: MAR IR.address t2: MBR MEM[MAR] t3: MBR MBR+1 t4: MEM[MAR] MBR if (MBR=0) then PC PC +1 ehdollisuuskin onnistuu Luento 12-7 Käskysykli tila-automaattina ICC: Instruction Cycle Code register suorituksen tila 01 (Sta06 Fig 16.3) Luento 12-8 Käskysykli kontrolli tila-automaattina CU:n toiminnan voi esittää tila-automaattina u Tila: missä käskysyklin vaiheessa CPU menossa u Alitila: riippuu ajoituksesta, muodostuu ryhmästä mikro-operaatioita, jotka voi suorittaa yhdellä syklillä Alitilan tuottamat uudet ohjaukset riippuvat u Tilasta itsestään u IR-rekisterin kentistä (operaatio, osoittaminen) u Edellisistä tuloksista (flags) = Execution Uusi tila edellisen tilan ja lipukkeiden perusteella u Myös CPU:n ulkopuoliset keskeytykset vaikuttavat tilaan = Sequencing Kontrollin tilakone Luento 12-9 IR sequencing tila Lipukkeet keskeytykset Muistiväylä kontrollisignaalit execution CPU toteutuspiirit flags Ohjaussignaalien tuottaminen Mikro-operaatio aktivoitava useita ohjaussignaaleja Esim: Yhden akkurekisterin arkkitehtuuri (Sta06 Fig 16.5) Luento 12-10 Ohjaussignaalien tuottaminen Yleinen organisointi?? Sta06 Fig 16.5 Kuvan 16.5 organisaatio monimutkainen toteutettavaksi Komponentit tavallisesti yhteisen väylän varteen ALU:lle apurekisterit: X ja Y ADD I: t1: MAR IR.address t2: MBR MEM[MAR] t3: Y MBR t4: Z AC + Y t5: AC Z?? ALU (Sta06 Table 16.1) Luento 12-11 (Sta06 Fig 16.6) Luento 12-12 / 2007 / Liisa Marttinen 2

Langoitettu ohjaus Langoitettu ohjausyksikkö (hardwired) Kun tiedossa CU:n sisäänmenot ja ulostulot u Toiminnallisuus kuvattavissa boolen logiikalla u Ohjausyksiköstä voi muodostaa yhden loogiikkapiirin Esim. C 5 = P*Q*T 2 + P*Q*(LDA)*T 2 +... Fig 16.3, 16.5 ja Tbl 16.1 ICC:lle bitit P ja Q PQ = 00 Fetch Cycle PQ = 01 Indirect Cycle PQ = 10 Execute Cycle PQ = 11 Interrupt Cycle (Sta06 Fig 16.10) Luento 12-13 Luento 12-14 Langoitettu ohjausyksikkö Decoder (4-to-16) u 4:n bitin käskykoodista yksikäsitteinen ohjaus CU:lle u Vain yksi signaali kerrallaan aktiivisena Esim: opcode = 5 (bitit I1, I2, I3, I4) signaali O11 on tosi (1) (Sta06 Table 16.3) Luento 12-15 Äärellinen tila-automaatti 0 Ifetch ALUOp=Add 1 Rfetch/Decode 8 BrComplete 1: PCWr, IRWr ALUOp=Add ALUOp=Sub x: PCWrCond 2 AdrCal RegDst, Mem2R 1: BrWr, ExtOp beq ALUSelB=01 1: ExtOp Others: 0s ALUSelB=10 x: IorD, Mem2Reg ALUSelA x: RegDst, PCSrc RegDst, ExtOp ALUSelB=11 IorD, MemtoReg 1: PCWrCond ALUOp=Add lw or sw Others: 0s ALUSelA PCSrc x: MemtoReg Rtype PCSrc Ori lw sw 10 OriExec LWmem 3 RExec 1: RegDst 5 SWMem ALUSelA ALUOp=Or 1: ExtOp ALUSelA, IorD 1: ExtOp 6 ALUSelB=01 1: ALUSelA ALUOp=Rtype ALUSelB=11 MemWr ALUSelA x: PCSrc, IorD ALUSelB=11 ALUOp=Add ALUSelB=11 MemtoReg x: MemtoReg x: MemtoReg ALUOp=Add ExtOp IorD, PCSrc PCSrc x: PCSrc,RegDst 11 MemtoReg OriFinish Rfinish 1: ALUSelA 7 ALUOp=Rtype ALUOp=Or 4 LWwr RegWr, ExtOp MemtoReg 1: RegDst, RegWr ALUselA x: IorD, PCSrc ALUSelB=11 ALUSelB=01 ALUSelB=11 ALUOp=Add x: IorD, PCSrc 1: ALUSelA x: PCSrc ExtOp RegWr IorD Luento 12-16 Tilasiirtymät (2) Langoitettu ohjaus Next state from current state u State 0 -> State1 u State 1 -> S2, S6, S8, S10 u State 2 -> S5 or u State 3 -> S9 or u State 4 ->State 0 u State 5 -> State 0 u State 6 -> State 7 u State 7 -> State 0 u State 8 -> State 0 u State 9-> State 0 u State 10 -> State 11 u State 11 -> State 0 Alternatively, prior state & condition S4, S5, S7, S8, S9, S11 -> State0 -> State1 -> State 2 -> State 3 -> State 4 State2 & op = SW -> State 5 -> State 6 State 6 -> State 7 -> State 8 State3 & op = JMP -> State 9 -> State 10 State 10 -> State 11 Ohjaussignaalien generointi suoraan laitteistolla nopeaa Heikkouksia u CU vaikea suunnitella Piiristä tulee helposti suuri ja monimutkainen u CU vaikea muuttaa Suunnittelu ja piirin minimointi uusiksi RISC-filosofia helpottaa u Yksinkertainen käskykanta ja toteutus Luento 12-17 Luento 12-18 / 2007 / Liisa Marttinen 3

Mikro-ohjelmoitu ohjaus Mikro-ohjelmoitu ohjaus Idea 1951: Wilkes Microprogrammed Control Execution Engine u Suorituta konekäsky yksi mikrokäsky kerrallaan generoimalla suoritusaikana tarvittavat ohjaussignaalit u Tulkitse mikrokäskyt ohjelmallisesti ohjaussignaaleiksi Mikro-operaatiot kuvattu kontrollimuistissa mikrokäskyinä u Laiteohjelmisto (firmware) Kukin mikrokäsky muodostuu kahdesta osasta u Mitä suoritetaan tulevalla syklillä? Mikrokäskystä käy ilmi tarvittavat ohjaussignaalit Toimita ohjaussignaalit piireille Sta06 Table 16.1 u Mikä mikrokäsky tulkitaan tämän jälkeen? Oletus: seuraavasta kontrollimuistin muistipaikasta Paikanlaskuri, ei tilakone! Luento 12-19 Luento 12-20 Mikrokoodi Kutakin CPU:n käskysyklin vaihetta vastaa alirutiini, joka suoritetaan käskysyklin aikana Esim. ROM-muistissa u Mikro-ohjelma muisti u Firmware Horisontaalinen mikrokäsky Kaikki mahdolliset ohjaussignaalit kuvattu bittikarttana jokaisessa mikrokäskyssä u Yksi bitti per mahd. ohjaussignaali (1=generoi, 0=älä generoi) u Jos paljon erilaisia, mikrokäskystä tulee pitkä Kukin mikrokäsky myös ehdollinen hyppykäsky u Mitä statusbittejä tutkittava u Seuraavan mikrokäskyn osoite (Sta06 Fig 17.2) Luento 12-21 (Sta06 Fig 17.1 a) Luento 12-22 Vertikaalinen mikrokäsky Ohjaussignaalit koodattu toimintonumeroiksi Dekoodaa takaisin ohjausignaaleiksi suoritusaikana Lyhyemmät käskyt, mutta dekoodaus vie aikaa Kukin mikrokäsky myös ehdollinen hyppykäsky u Mitä statusbittejä tutkittava u Seuraavan mikrokäskyn osoite (Sta06 Fig 17.1 b) Luento 12-23 Ohjausyksikkö = Execution Engine Control Address Register, CAR u ~ käskyosoitin, MiPC Kontrollimuisti u Mikrokäskyt Nouto-suoritus-keskeytys Control Buffer Register, CBR u Rekisteri mikrokäskyn tulkintaa varten ~ käskyrekisteri, MiIR u Tulkitse ja lähetä ohjaussignaalit piireille Dekooderin läpi Sequencing Logic u Seuraavaksi suoritettavan mikrokäskyn osoite CAR:iin (Sta06 Fig 17.4) Luento 12-24 / 2007 / Liisa Marttinen 4

Mikä mikrokäsky seuraavaksi? a) Kerrottu eksplisiittisesti Käskyssä 2 osoitetta u Lisäksi kerrottu lipuke, jota tutkittava u Hae uusi jommasta kummasta paikasta u Usein heti seuraavasta kontrollimuistin muistipaikasta Miksi tallettaa? Ei aikaa laskemiseen! (Sta06 Fig 17.6) b) Implisiittinen oletus: seuraavasta kontrollimuistin osoitteesta Käskyssä 1 osoite u Lisäksi kerrottu lipuke, jota tutkittava u Jos ehto=1, käytä käskyn osoiteosaa Osoiteosaa ei taaskaan käytetä aina u Useimmiten hukkatilaa (Sta06 Fig 17.7) Luento 12-25 Luento 12-26 c) Vaihteleva mikrokäskyn formaatti u Osa biteistä voidaan tulkita kahdella tavalla u 1 b: Käskyssä osoite/ei u Vain hyppykäskyssä mukana osoite u Hyppykäskyissä ei ole ohjaussignaaleja u Jos hyppy, pitääkin suorittaa kaksi käskyä yhden sijasta Hukkaa aikaa? Säästää tilaa? (Sta06 Fig 17.8) d) Osoitteen generointi suoritusaikana u Miten päästä oikean ALU-alirutiinin alkuun? Konekäskyn suoritussignaalit riippuvat operaatiosta u Generoi ensimmäisen mikrokäskyn osoite operaatiokoodista (mapping + combining/adding) Eniten merkitsevät bitit op-koodista Vähiten merkitsevät nollia tai generoitu nykytilan (status) perusteella Esim: IBM 3033 CAR, 13 b:n osoite Op-koodista 8 bittiä -> alirutiini max 32 käskyä loput 5 bittiä statusbittejä tutkimalla (Sta06 Fig 17.9) Luento 12-27 Luento 12-28 e) Aliohjelmakutsu ja paluu (Residual control) u Alirutiinin kutsu mikrotasolla Ei ympäristön vaihtoa, vain yksi taso Sisäkkäiset kutsut eivät sallittuja Esim: LSI-11, 22b:n mikrokäsky Kontrollimuisti 2048 käskyä, 11 b:n osoitteet Operaatiokoodi määrää ens. mikrokäskyn osoitteen Oletus seuraava CAR CAR+1 Jokaisessa mikrokäskyssä bitti: alirutiinin kutsu/ei Alirutiinin kutsukäsky: talleta paluuosoite paluurekisteriin (vain yksi) hyppää alirutiiniin (osoite mikrokäskyssä) Paluukäsky: ota osoite paluurekisteristä Mikrokäskyn koodaus Horisontaalinen? Vertikaalinen? u Horisontaalinen: nopea tulkinta u Vertikaalinen: vähemmän bittejä Usein kompromissi eli sekamuoto u Mikrokäsky jaettu kenttiin, kukin kenttä määrää tiettyjen toimintojen ohjaussignaalit u Keskenään toisensa poissulkevat toiminnot koodattavissa samaan kenttään u Koodaus purettava suoritusaikana ohjaussignaaleiksi Jokin kenttä voi ohjata muiden kenttien purkua! Kun useita koodauksia yhden sijasta, toteutus helpompaa u Useita yksinkertaisia dekoodereita Luento 12-29 Luento 12-30 / 2007 / Liisa Marttinen 5

Mikrokäskyn koodaus Toimintojen mukaan (functional encoding) u Kukin kenttä kontrolloi tiettyä toimintaa Lataa akkurekisteristä Lataa muistista Lataa... Resurssien mukaan (resource encoding) u Kukin kenttä kontrolloi tiettyä resurssia Lataa akkurekisteristä Talleta akkurekisteriin Lisää akkurekisteriin tarvitaan 2 bittiä! Tila 0: ei mem-op Vertical vs. Horizontal Microcode (3) Seuraavan mikrokäskyn osoite (CAR = CSAR) Oletus: CAR=CAR+1 (Sta06 Fig 17.11) (by resource) (Sta06 Fig 17.12) Luento 12-31 Luento 12-32 Miksi mikro-ohjelmoituna? vaikka hitaampi suoritus kuin langoitetulla logiikalla Suunnittelun helppous ja joustavuus u Muutokset/laajennukset mukaan vaikka loppumetreillä u Vanhaan laitteistoon vain kontrollimuistin päivitys Omalla lastullaan vähän vanhemmissa koneissa u Tätä varten omat kehitysympäristönsä Taaksepäin yhteensopivuus u Vanha käskykanta säilytettävissä vaivatta u Lisää vain uudet mikrokäskyt uusille käskyille Yleisyys u Yksi laitteisto, useita erilaisia käskykantoja u Yksi käskykanta, useita erilaisia organisointeja Kertauskysymyksiä Langoitettu vs. mikro-ohjelmoitu toteutus? Kuinka mikrokäskyn osoite määräytyy? Mihin tarvitaan kontrollimuistia? Horisontaalinen vs. vertikaalinen mikrokäsky? Miksi ei mikro-ohjelmointia? IA-64 kontrolli vs. mikro-ohjelmointi vs. langoitettu kontrolli? Luento 12-33 Luento 12-34 http://researchweb.watson.ibm.com/journal/rd/494/kahle2.gif Pääotsikoita olivat Digitaalilogiikka Väylät, välimuisti, keskusmuisti Virtuaalimuistin osoitemuunnos, TLB ALU: kokonais- ja liukulukuaritmetiikka Käskykannoista: operaatiot ja osoittaminen CPU:n rakenne ja liukuhihna Hyppyjen ennustus, datariippuvuudet RISC & superskalaari CPU, nimiriippuvuudet IA-64: Explicit Parallel Instruction Computing Langoitettu vs. mikro-ohjelmoitu ohjaus -- The End -- STI Cell Power processor element (a) major units and (b) pipeline Luento 12-35 Luento 12-36 / 2007 / Liisa Marttinen 6

Problem Nämä kalvot esitetty Kerolan Rinnakkaisohjelmointikurssilla Moore s Law will not give us faster processors (any more) u But it gives us now more processors on one chip Multicore CPU Chip-level multiprocessor (CMP) (hyperthreads) Herb Sutter, A Fundamental Turn Toward Concurrency in SW, Dr. Dobb s Journal, 2005. (click) http://www.ddj.com/web-development/184405990;jsessionid=bw05dmmaot3zgqsndlpckh0cjunn2jvn?_requestid=1416784 Borkar, Dubey, Kahn, et al. Platform 2015. Intel White Paper, 2005. (click) http://download.intel.com/technology/computing/archinnov/platform2015/download/platform_2015.pdf Luento 12-37 Luento 12-38 / 2007 / Liisa Marttinen 7