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

Suoritinesimerkit RISC- arkkitehtuuri · 2006. 9. 26. · Tietokoneen rakenne / 2006 / Teemu Kerola 26.9.2006 Luento 9 - 1 Tietokoneen rakenne Suoritinesimerkit RISC- arkkitehtuuri

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 126.9.2006

    Tietokoneen rakenne

    SuoritinesimerkitRISC- arkkitehtuuri

    Ch 13 [Sta06]n Käskyanalyysian RISC vs. CISCn Rekisterien käytöstä

    Luento 9

    Ch 12.5-6 [Sta06]n Pentium/PowerPC

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 226.9.2006

    Tietokoneen rakenne

    Pentium

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 326.9.2006

    Pentium: Rekisterit

    (Sta06 Table 12.2)

    EAX, EBX, EBX, EDX,

    ESP, EBP, ESI, EDI

    CS, SS, DS, ES, FS, GS

    EFLAGS

    EIP

    käyttö pinona tai

    MMX-käskyissä

    selector, offset

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 426.9.2006

    Pentium: FP / MMX Registers

    (Sta06 Fig 12.22)

    n Aliasingn FP rekistereitä

    käytetään pinonan MMX multimediakäskyt

    käyttävät samoja,mutta viittaavatsuoraan nimillä

    n Tag kertoo kummastakyse

    n MMX-käytössä bitit64-79 ykkösiä g NaN

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 526.9.2006

    Pentium: EFLAGS Register

    (Sta06 Fig 12.20)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 626.9.2006

    Pentium: Control Registers

    (Sta06 Fig 12.21)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 726.9.2006

    Pentium: Keskeytyksetn Keskeytyskäsittelijään siirtyminen (atominen laitetoiminto)

    u Jos ei jo etuoikeutetussa tilassaPUSH(SS) pinosegmentin valitsin pinoonPUSH(ESP) pino-osoitin

    u PUSH(EFLAGS) tilarekisteriu EFLAGS.IOPL ù 00 etuoikeutettu tila

    EFLAGS.IF ù 0 keskeytyksen estoEFLAGS.TP ù 0 poikkeusten esto

    u PUSH(CS) koodisegmentin valitsinPUSH(EIP) käskyosoitin

    u PUSH(error code) vain tarvittaessau numero ù keskeytysohjaimelta / INT-käskystä / tutki tilarekisteriu CS ù keskeytysvektori[numero].CS

    EIP ù keskeytysvektori[numero].EIPn Paluu

    u Etuoikeutettu IRET-käsky (interrupt return)u Palauta pinosta kaikki entiselleen

    Sta06 Table 12.3

    vrt. aliohjelmakutsu

    Osoitemuunnos nytuudella tavalla

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 826.9.2006

    PowerPC

    (Sta06 Fig 4.14)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 926.9.2006

    PowerPC: Rekisterit (user visible)

    n 32 kokonaislukurekisteriä, a’ 64 b, jaException Register (XER), 32 b

    n 32 liukulukurekisteriä, a’ 64 b, jaFP Status & Control Register (FPSCR), 32 b

    n 3 rekisteriä hyppyjen käsittelemiseksiu Condition Register, 32b, 8 kenttää, a’ 4 b

    ß CR0 kokonaisluvuille, CR1 liukuluvuille (> 0, < 0, = 0, Overflow)• Jokainen suoritettu käsky asettaa

    ß CR0-CR7 vertailukäsky asettaa (op1 > op2,op1 < op2, op1 = op2)• Voi pitää vertailujen tuloksia tallessa

    u Link Register, 64 bß Esim. aliohjelman paluuosoite tänne

    u Count Register, 64 bß Esim. iteraatiolaskuri, epäsuora osoitus hypyssä

    Sta06 Fig 12.23

    Sta06 Fig 12.24

    Sta06 Tbl 12.4

    Sta06 Fig 12.24, Tbl 12.5

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1026.9.2006

    PowerPC: Rekisterit (control & status)

    n Machine State Register, MSR, 64 bu 48: ulkoiset keskeytykset estetty/eiu 49: etuoikeutettu/käyttäjätilau 53: jokaisen käskyn jälkeen KJ:hin/eiu 54: hyppykäskyn jälkeen KJ:hin/eiu 52&55: milloin liukuluvun käsittelystä poikkeusu 59: MMU:n osoitemuunnos ON/OFFu 63: big/little endian

    n Save/Restore Registers: SRR0 ja SRR1u Käytetään keskeytyskäsittelyn yhteydessä

    ß Talletuspaikka PC’lle ja MSR’lle

    Sta06 Tbl 12.7

    Tracing

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1126.9.2006

    PowerPC: Keskeytykset

    n CPU:n sisäiset vs. ulkoisetn Keskeytyskäsittelijään siirtyminen (laitetoiminto)

    u SRR0 ù PCu SRR1 ù MSR + tyyppiin sidottua tietoau MSR ù keskeytystyypin mukaan määräytyvää tietoa

    ß Etuoikeutettu ON, keskeytykset OFF, osoitemuunnos OFFß Muut bitit määräytyvät keskeytyksen perusteella

    u PC ù Keskeytyskäsittelijän osoiteß Nouda keskeytysvektorista keskeytyksen “numerolla”ß Bitti 57: mahdollisuus määritellä kaksi vektoria

    n Paluuu Etuoikeutettu rfi-käsky (return from interrupt)u MSR ù “reset” ja kopioi SRR1:stäu PC ù SRR0

    Sta06 Tbl 12.6

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1226.9.2006

    Tietokoneen rakenne

    RISC-arkkitehtuuri

    Ch 13 [Sta06]n Käskyanalyysian RISC vs. CISCn Rekisterien käytöstä

    Luento 9

  • Laitteistotason virstanpylväitän Virtuaalimuisti, 1962

    u Helpompi muistinhallintan Liukuhihna, 1962n Arkkitehtuuriperhe, 1964

    u Samaa käskykantaa noudattavia koneitan Mikro-ohjelmoitu kontrolli, 1964

    u Käskykantaa helpompi kehittään Moniprosessorijärjestelmä, 1964

    u test_and_set käsky tarpeenn Välimuisti, 1965

    u Huikea suorituskykyparannusn RISC-arkkitehtuuri, 1980

    u Yksinkertainen käskykantan Superscalar CPU, 1989

    u Useita käskyjä valmiiksi per syklin Hyperthreading CPU, 2001

    u Usea rekisterijoukko ja virtuaalisuoritin lastullan Multicore CPU, 2005

    u Usea täydellinen suoritin lastulla

    IBM S/360, DEC PDP-8

    IBM S/360

    IBM S/360

    Atlas

    Univac

    IBM

    IBM, Intel

    Intel

    Atlas

    Intel, Sony-Toshiba-IBM

    Maurice Wilkes

    Tom Kilburn

    Tom Kilburn

    Gene Amdahl

    J.P. Eckert, John Mauchly

    Maurice Wilkes

    John Cocke, 1974J.L. Hennessy & D.A. Patterson

    John Cocke, 1965

    Intel IBM

    CDC, 1964Intel

    IntelIBM

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1426.9.2006

    “Perinteiset” koneet

    n Kantavia ideoitau Kutista lausekielen ja konekielen semanttista kuilua

    ß Lausekielen ilmaisuvoima kehittynytu Kääntämisen helppous

    ß Lausekielen rakenteilla vastineet konekielessäß Käskykanta valikoitu usein tietty lausekieli mielessä

    u Paljon erilaisia käskyjä moniin tarkoituksiinu Paljon erilaisia datatyyppejäu Paljon erilaisia osoitusmuotojau Tee asiat laitetoimintoina, ei ohjelmallisesti

    ß Vähemmän konekielisiä käskyjä suoritettavanaß Monimutkaisten operaatioiden suorittaminen tehokasta

    = CISC (Complex Instruction Set Computer)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1526.9.2006

    Mitä operaatioita / operandeja?

    (Sta06 Table 13.2, 13.3)

    n Vuosi 1982, kohde: VAX, PDP-11, Motorola 68000n Dynaaminen, suoritusaikainen tarkastelu

    80% viittauksista

    aliohjelmien paikallisiin

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1626.9.2006

    Aliohjelmakutsut?

    (Sta06 Table 13.4)

    n Aliohjelmakutsuja paljonn Kutsussa harvoin monta parametrian Kutsut harvoin sisäkkäisiä

    n Em. tietojen hyödyntäminen? 98% alle 6 parametria92% alle 6 paikallista muuttujaa

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1726.9.2006

    Huomioita

    n Pääosa operandeista yksinkertaisian Hyppykäskyjä runsaastin Kääntäjätkään eivät aina hyödynnä tarjolla olevia

    monipuolisia konekäskyjäu Käyttävät vain osaa käskykannan käskyistä

    n Johtopäätökset?

    "Entia non sunt multiplicanda praeter necessitatem"("Entities should not be multiplied more than necessary")

    William Of Occam (1300-1349)English monk, philosopher

    "It is vain to do with more that which can be done with less"

    Occamin partaveitsi (Occam’s razor)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1826.9.2006

    Optimointia

    Speedup due to an enhancement is proportionalto the fraction of the time (in the original system)that the enhancement can be used.

    Speedup = ExTimeold / ExTimenew = 1 / 0.95 = 1.053

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 1926.9.2006

    Optimointia

    n Optimoi suoritusnopeutta,älä kääntämisen helppoutta / suoraviivaisuuttau Kääntäjät erinomaisia, koneet tehokkaita

    ß Osaavat ja ehtivät optimoidau Tee yleisimmät tehtävät laitetoimintoina, tehokkaasti

    ß Esim. 1-uloitteiseen taulukkoon viittausu Tee loput ohjelmallisesti

    ß Esim. merkkijonon muunnosß Tarjoa valmiit kirjastorutiinit

    ð RISC arkkitehtuuri (Reduced Instruction Set Computer)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2026.9.2006

    RISC arkkitehtuuri

    n Paljon rekistereitä (väh. 32)u Kääntäjät optimoimaan rekistereiden käyttöä

    n LOAD / STORE arkkitehtuuriu Vain LOAD ja STORE viittaavat muistiin

    n Vain vähän ja yksinkertaisia käskyjän Yksinkertainen vakiopituinen käskyformaatti (32b)

    u Käskyjen nouto ja dekoodaus helppoan Vain vähän ja yksinkertaisia osoitusmuotoja

    u Ei epäsuoraa osoitustau Nopea operandin osoitelaskenta

    n Vähän erilaisia operandejaß 32 b:n kokonaisluvut, liukuluvut

    n Kullakin syklillä valmistuu yksi tai useampi käsky

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2126.9.2006

    RISC arkkitehtuuri

    n CPU helpompi implementoidau Liukuhihnaa helpompi hallita ja optimoidau Langoitettu toteutus (hardwired)

    n Pienempi piirin kokou Enemmän per lastuu Pienempi hukka%

    n Halvemmat kustannuksetn Nopeammin markkinoille

    25% yield (OK)75% hukkaan

    55% yield (OK)45% hukkaan

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2226.9.2006

    RISC vs. CISC

    (Sta06 Table 13.1)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2326.9.2006

    RISC vs. CISC

    (Sta06 Table 13.7)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2426.9.2006

    Tietokoneen rakenne

    Rekistereiden käytöstä

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2526.9.2006

    Rekisterijoukko

    n Enemmän rekistereitä kuin käskyssä voi viitatau Esim. SPARCissa rekisterinrolle 5 b û suurin nro 32,

    mutta CPUssa 40-540 rekisteriän Kerralla käytössä vain osa rekistereistä, ikkuna

    u Ikkunaan viitataan esim. rekisterinumeroilla r0-r31u CPU kuvaa ne tod. rekisterinumeroiksi, esim. r0-r539

    (Sta06 Fig 13.3)

    CurrentWindowPointer

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2626.9.2006

    Rekisteri-ikkuna

    n Aliohjelmakutsu käyttää pinon sijasta rekistereitäu Kutsussa kiinteä määrä rekistereitä parametreille

    sekä paikallisille muuttujilleu Varaukset limittäin siten, että parametrit käytettävissä

    sekä kutsuvassa että kutsutussa osassa

    (Sta06 Fig 13.1)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2726.9.2006

    Rekisteri-ikkuna

    n Jos sisäkkäisiä kutsuja paljonu Rekisterijoukko voi

    loppua keskenu Talleta vanhin muistiin,

    lataa takaisin, kun paluuhäämöttää

    u Kutsuketju harvoin pitkä,talletus/palautus harvoin

    n Globaalit muuttujat?u Muistissa tai oma rekisteri-

    ikkuna

    n SPARCu r0-r7 globaaleilleu r8-r15 parametrit (kutsutussa)u r16-r23 lokaalit muuttujatu r24-r31 parametrit (kutsujassa) (Sta06 Fig 13.2)

    virtuaalisetrekisterit

    todelliset rekisterit

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2826.9.2006

    Rekisterijoukko vs. Välimuisti

    n Kääntäjän vaikea päätellä etukäteenmitkä globaalit muuttujat pitäisi sijoittaa rekistereihin

    n Välimuisti ratkaisee sen dynaamisestiu Eniten viitatut pysyvät välimuistissa

    (Sta06 Table 13.5)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 2926.9.2006

    Kääntäjä: Rekistereiden allokointi

    n Verkon värittäminenu Etsi pienin värimäärä s.e.

    verkon kahdella vierekkäiselläsolmulla ei ole sama väri!

    = Ärsyttävän vaikea ongelma(NP-täydellinen)

    n Analysoi koodia, ja muodosta verkko symbolistenrekistereiden käytöstäu Symb. rekisteri ~ mikä tahansa, mikä voisi olla rekisterissä

    n Allokoi sitten oikeat rekisteritu Jos kahta symbolista rekisteriä ei käytetä samanaikaisesti,

    niille voi allokoida saman todellisen rekisterinu Jos rekistereitä ei vapaana, käytä muistia

    Laskennan teoria-kurssin asioita

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 3026.9.2006

    Kääntäjä: Rekistereiden allokointi

    u solmu = symbolinen rekisteriu särmä = symbolisten rekistereiden yhtäaikainen käyttöu n väriä = n rekisteriä

    (Sta06 Fig 13.4)

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 3126.9.2006

    RISC-liukuhihna

    (Sta06 Fig 13.6)

    Single port MEM

    Two port MEM

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 3226.9.2006

    RISC-liukuhihna, Delayed Branch

    (Sta06 Fig 13.7)

    Traditional

    RISC with inserted NOOP

    Two port MEM

    RISC with reversed instructions

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 3326.9.2006

    RISC & CISC United?

    n Pentium, CISCu Laitetoiminto kääntää 1 – 11 tavun pituisen CISC-käskyn

    yhdeksi tai useammaksi 118 bittiseksi mikro-operaatioksi(L1 tason käskyvälimuistiin)

    u Alemmat tasot kuten RISCu Paljon työrekistereitä: laitteisto ottaa käyttöön

    n Crusoe (Transmeta)u Ulospäin CISC-arkkitehtuuriu Käskyjoukot käännetään ohjelmallisesti juuri ennen

    suoritusta kiinteänpituisiksi mikro-operaatioksi,operaatioiden optimointia per käskyjoukkoß VLIW (very long instruction word, 128 bits)ß 4 uops/VLIW-käsky

    u Alemmat tasot kuten RISC

    Just in time (JIT) compilation

    Käännös joka käskynsuorituskerralla

    Käännös vain kerranper käskyjoukko

  • Tietokoneen rakenne / 2006 / Teemu Kerola Luento 9 - 3426.9.2006

    Kertauskysymyksiä

    n Mitkä ovat RISC arkitehtuurin tunnuspiirteet?n Miten rekisteri-ikkunoita käytetään?