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?