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

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

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?

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

1. Keskusyksikön rakenne

Jakso 5 Suoritin ja väylä

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ä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

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

Käyttöjärjestelmän rakenne

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

Suorittimen rakenne ja toiminta

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

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

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

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

Luento 5 Suoritin ja väylä

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

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

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

Suoritinesimerkit RISC- arkkitehtuuri

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

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

Suoritinesimerkit RISC- arkkitehtuuri

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

Suoritinesimerkit RISC- arkkitehtuuri

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

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

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

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

Superskalaariprosessointi

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

Luento 10: Superskalaari prosessori

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

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

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

Superskalaariprosessointi

Aliohjelmien toteutus Suoritin ja väylä

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

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

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

Tietokoneen toiminta, K Tavoitteet (4)

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

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

Superskalaariprosessointi

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

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

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 10: Superskalaari prosessori

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ä?

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

Tietokonearitmetiikka

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Käyttöjärjestelmät II

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

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

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

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ä?

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

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

Käyttöjärjestelmät II

Tietokonearitmetiikka

Järjestelmän ulkoinen muisti I/O

Muistihierarkia Kiintolevyt I/O:n toteutus

Laitteistonläheinen ohjelmointi

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

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

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

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

Käyttöjärjestelmät: prosessit

2 Konekieli, aliohjelmat, keskeytykset

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

Luento 4 Aliohjelmien toteutus

Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys

Kombinatorisen logiikan laitteet

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

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

Tietokonearitmetiikka

Transmeta Architecture

Transmeta Architecture

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? 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 (Sta06 Fig 16.4) Ohjaus = signaalien / bittien siirtämistä paikasta toiseen u CPU:n sisällä: REG REG, ALU REG, ALU-oper 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 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 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 Luento 12-5 Onko suoritusjärjestyksellä merkitystä? Mitä voi suorittaa rinnakkain? Mitä samaan sykliin, mitkä tarvitsevat oman syklin? Luento 12-6 / 2006 / Teemu Kerola 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 Käskysykli tila-automaattina ICC: Instruction Cycle Code register (Sta06 Fig 16.3) Luento 12-7 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?? Sta06 Fig 16.5 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 Table 16.1) (Sta06 Fig 16.6) Luento 12-11 Luento 12-12 / 2006 / Teemu Kerola 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 10 lw sw 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 MemtoReg 11 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 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 / 2006 / Teemu Kerola 3

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 u Mikä mikrokäsky tulkitaan tämän jälkeen? Oletus: seuraavasta kontrollimuistin muistipaikasta Sta06 Table 16.1 Luento 12-20 Mikrokoodi Kutakin CPU:n käskysyklin vaihetta vastaa alirutiini, joka suoritetaan käskysyklin aikana Esim. ROM -muistissa 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 u Nouto-suoritus-keskeytys Control Buffer Register, CBR u Rekisteri mikrokäskyn tulkintaa varten ~ käskyrekisteri, MiIR u Tulkitse ja lähetä ohjaussignaalit piireille Sequencing Logic u Seuraavaksi suoritettavan mikrokäskyn osoite CAR:iin (Sta06 Fig 17.4) Luento 12-24 / 2006 / Teemu Kerola 4

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 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 Miten päästä oikean ALU-alirutiinin alkuun? u Konekäskyn suoritussignaalit riippuvat operaatiosta Generoi ensimmäisen mikrokäskyn osoite operaatio-koodista (mapping + combining/adding) u Eniten merkitsevät bitit op-koodista u Vähiten merkitsevät nollia tai generoitu nykytilan (status) perusteella u 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) Alirutiinin kutsu mikrotasolla u Ei ympäristön vaihtoa, vain yksi taso u Sisäkkäiset kutsut eivät sallittuja u 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 Kun useita koodauksia yhden sijasta, toteutus helpompaa u Useita yksinkertaisia dekoodereita Luento 12-29 Luento 12-30 / 2006 / Teemu Kerola 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 Seuraavan mikrokäskyn osoite (CAR = CSAR) Oletus: CAR=CAR+1 (Sta06 Fig 17.11) Luento 12-31 (Sta06 Fig 17.12) 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, riippuvuudet 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 / 2006 / Teemu Kerola 6