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

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

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 Luento 12. u Mikä operaatio, missä operandit? u Miten keskeytykset hoidellaan?

1. Keskusyksikön rakenne

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

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä

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ä

Käyttöjärjestelmän rakenne

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)

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

Luento 5 Suoritin ja väylä

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

Suorittimen rakenne ja toiminta

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

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

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

Luento 5 Suoritin ja väylä

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

Luento 5 Suoritin ja väylä

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

Suoritinesimerkit RISC- arkkitehtuuri

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

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.

Suorittimen rakenne ja toiminta

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

Suorittimen rakenne ja toiminta

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

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

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

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?

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

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Superskalaariprosessointi

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Superskalaariprosessointi

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 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 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 2: LAITTEISTOSTA

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

Luento 10: Superskalaari prosessori

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

Järjestelmän ulkoinen muisti I/O

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

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

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

Aliohjelmien toteutus Suoritin ja väylä

Käyttöjärjestelmät: prosessit

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

2 Konekieli, aliohjelmat, keskeytykset

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

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

Tietokonearitmetiikka

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

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

Transmeta Architecture

Transmeta Architecture

Kombinatorisen logiikan laitteet

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

Tietokonearitmetiikka

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

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

Käyttöjärjestelmät II

Tietokonearitmetiikka

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

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:

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ää 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-2 Tietokoneen rakenne / 2007 / Liisa Marttinen 1

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 Luento 12-3 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-4 Tietokoneen rakenne / 2007 / Liisa Marttinen 2

Käskysykli (Sta06 Fig 16.1) Kun mikro-operaatiot kohdistuvat laitteiston eri piireihin, laitteisto voi suorittaa useita samanaikaisesti Ks. luvun 12 käskysykliesimerkit (seur. kalvot) Luento 12-5 Käskyn noutosykli Esim: t1: MAR PC t2: MARMMU(MAR) Control Bus Reserve wait? t3: Control BusRead PCPC + 1 t4: MBRMEM[MAR] Control Bus Release t5: IR MBR (Sta06 Fig 12.6) Onko suoritusjärjestyksellä merkitystä? Mitä voi suorittaa rinnakkain? Mitä samaan sykliin, mitkä tarvitsevat oman syklin? Luento 12-6 Tietokoneen rakenne / 2007 / Liisa Marttinen 3

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 Tietokoneen rakenne / 2007 / Liisa Marttinen 4

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 IR sequencing Kontrollin tilakone tila Lipukkeet keskeytykset Muistiväylä kontrollisignaalit execution flags CPU toteutuspiirit Luento 12-9 Ohjaussignaalien tuottaminen Mikro-operaatio aktivoitava useita ohjaussignaaleja Esim: Yhden akkurekisterin arkkitehtuuri (Sta06 Fig 16.5) Luento 12-10 Tietokoneen rakenne / 2007 / Liisa Marttinen 5

Ohjaussignaalien tuottaminen?? Sta06 Fig 16.5?? (Sta06 Table 16.1) Luento 12-11 Yleinen organisointi 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 Fig 16.6) Luento 12-12 Tietokoneen rakenne / 2007 / Liisa Marttinen 6

Tietokoneen rakenne Langoitettu ohjaus Luento 12-13 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-14 Tietokoneen rakenne / 2007 / Liisa Marttinen 7

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 Tietokoneen rakenne / 2007 / Liisa Marttinen 8

Tilasiirtymät (2) 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 Luento 12-17 Langoitettu ohjaus 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-18 Tietokoneen rakenne / 2007 / Liisa Marttinen 9

Tietokoneen rakenne Mikro-ohjelmoitu ohjaus Luento 12-19 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-20 Tietokoneen rakenne / 2007 / Liisa Marttinen 10

Mikrokoodi Kutakin CPU:n käskysyklin vaihetta vastaa alirutiini, joka suoritetaan käskysyklin aikana Esim. ROM-muistissa u Mikro-ohjelma muisti u Firmware (Sta06 Fig 17.2) Luento 12-21 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.1 a) Luento 12-22 Tietokoneen rakenne / 2007 / Liisa Marttinen 11

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 Mikä mikrokäsky seuraavaksi? ~ 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 Tietokoneen rakenne / 2007 / Liisa Marttinen 12

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) Luento 12-25 Mikä mikrokäsky seuraavaksi? 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-26 Tietokoneen rakenne / 2007 / Liisa Marttinen 13

Mikä mikrokäsky seuraavaksi? 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) Luento 12-27 Mikä mikrokäsky seuraavaksi? 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-28 Tietokoneen rakenne / 2007 / Liisa Marttinen 14

Mikä mikrokäsky seuraavaksi? 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ä Luento 12-29 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-30 Tietokoneen rakenne / 2007 / Liisa Marttinen 15

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 (Sta06 Fig 17.11) Luento 12-31 tarvitaan 2 bittiä! Tila 0: ei mem-op Vertical vs. Horizontal Microcode (3) Seuraavan mikrokäskyn osoite (CAR = CSAR) Oletus: CAR=CAR+1 (by resource) (Sta06 Fig 17.12) Luento 12-32 Tietokoneen rakenne / 2007 / Liisa Marttinen 16

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 Luento 12-33 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-34 Tietokoneen rakenne / 2007 / Liisa Marttinen 17

Tietokoneen rakenne 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 Luento 12-35 -- The End -- http://researchweb.watson.ibm.com/journal/rd/494/kahle2.gif STI Cell Power processor element (a) major units and (b) pipeline Luento 12-36 Tietokoneen rakenne / 2007 / Liisa Marttinen 18

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) 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 Luento 12-37 (hyperthreads) 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-38 Tietokoneen rakenne / 2007 / Liisa Marttinen 19