Suoritinesimerkit RISC- arkkitehtuuri

Samankaltaiset tiedostot
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.

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

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

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

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

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

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

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

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

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

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

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

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

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

Tietokoneen toiminta, K Tavoitteet (4)

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

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Superskalaariprosessointi

Jakso 5 Suoritin ja väylä

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

Jakso 5 Suoritin ja väylä

Superskalaariprosessointi

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 10: Superskalaari prosessori

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

1. Keskusyksikön 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 10: Superskalaari prosessori

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Superskalaariprosessointi

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

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

Luento 5 Suoritin ja väylä

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

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

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

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

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

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

Luento 5 Suoritin ja väylä

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

Suorittimen rakenne ja toiminta

Kertausluento luennoista 1-3 1

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Suorittimen rakenne ja toiminta

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

Luento 2: LAITTEISTOSTA

Aliohjelmien toteutus Suoritin ja väylä

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

Käyttöjärjestelmän rakenne

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Käyttöjärjestelmät II

Käännös, linkitys ja lataus

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

Luento 5 Suoritin ja väylä

Jakso 4 Aliohjelmien toteutus

Laitteistonläheinen ohjelmointi

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

Tietokonearitmetiikka

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

SISÄLLYS sisällys 1 Tietokoneen toimintaperiaate ja käyttö 2 Tietokoneen historia 3 Tietokoneen rakenteen ja toiminnan perusteet

Käyttöjärjestelmät II

Luento 4 Aliohjelmien toteutus

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

Jakso 4 Aliohjelmien toteutus

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 5 Suoritin ja väylä

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

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

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

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

Luento 4 Aliohjelmien toteutus

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

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

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

Transkriptio:

Suoritinesimerkit RISC- arkkitehtuuri Ch 12.5-6 [Sta06] Pentium/PowerPC Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Luento 9 Pentium Luento 9-1 Luento 9-2 Pentium: Rekisterit Pentium: FP / MMX Registers 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 Aliasing FP rekistereitä käytetään pinona MMX multimediakäskyt käyttävät samoja, mutta viittaavat suoraan nimillä Tag kertoo kummasta kyse MMX-käytössä bitit 64-79 ykkösiä g NaN (Sta06 Table 12.2) Luento 9-3 (Sta06 Fig 12.22) Luento 9-4 Pentium: EFLAGS Register Pentium: Control Registers (Sta06 Fig 12.20) Luento 9-5 (Sta06 Fig 12.21) Luento 9-6 / 2006 / Teemu Kerola 1

Pentium: Keskeytykset Keskeytyskäsittelijään siirtyminen (atominen laitetoiminto) u Jos ei jo etuoikeutetussa tilassa PUSH(SS) pinosegmentin valitsin pinoon PUSH(ESP) pino-osoitin u PUSH(EFLAGS) tilarekisteri vrt. aliohjelmakutsu u EFLAGS.IOPL 00 etuoikeutettu tila EFLAGS.IF 0 keskeytyksen esto EFLAGS.TP 0 poikkeusten esto u PUSH(CS) koodisegmentin valitsin PUSH(EIP) käskyosoitin u PUSH(error code) vain tarvittaessa u numero keskeytysohjaimelta / INT-käskystä / tutki tilarekisteri u CS keskeytysvektori[numero].cs EIP keskeytysvektori[numero].eip Osoitemuunnos nyt uudella tavalla Paluu u Etuoikeutettu IRET-käsky (interrupt return) u Palauta pinosta kaikki entiselleen Sta06 Table 12.3 Luento 9-7 PowerPC (Sta06 Fig 4.14) Luento 9-8 PowerPC: Rekisterit (user visible) 32 kokonaislukurekisteriä, a 64 b, ja Sta06 Fig 12.23 Exception Register (XER), 32 b Sta06 Fig 12.24 32 liukulukurekisteriä, a 64 b, ja FP Status & Control Register (FPSCR), 32 b Sta06 Tbl 12.4 3 rekisteriä hyppyjen käsittelemiseksi u Condition Register, 32b, 8 kenttää, a 4 b Sta06 Fig 12.24, Tbl 12.5 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ä PowerPC: Rekisterit (control & status) Machine State Register, MSR, 64 b u 48: ulkoiset keskeytykset estetty/ei u 49: etuoikeutettu/käyttäjätila u 53: jokaisen käskyn jälkeen KJ:hin/ei u 54: hyppykäskyn jälkeen KJ:hin/ei u 52&55: milloin liukuluvun käsittelystä poikkeus u 59: MMU:n osoitemuunnos ON/OFF u 63: big/little endian Save/Restore Registers: SRR0 ja SRR1 u Käytetään keskeytyskäsittelyn yhteydessä Talletuspaikka PC lle ja MSR lle Sta06 Tbl 12.7 Tracing Luento 9-9 Luento 9-10 PowerPC: Keskeytykset CPU:n sisäiset vs. ulkoiset Keskeytyskäsittelijään siirtyminen (laitetoiminto) u SRR0 PC u SRR1 MSR + tyyppiin sidottua tietoa u MSR keskeytystyypin mukaan määräytyvää tietoa Etuoikeutettu ON, keskeytykset OFF, osoitemuunnos OFF Muut bitit määräytyvät keskeytyksen perusteella u PCKeskeytyskäsittelijän osoite Nouda keskeytysvektorista keskeytyksen numerolla Bitti 57: mahdollisuus määritellä kaksi vektoria Paluu u Etuoikeutettu rfi-käsky (return from interrupt) u MSR reset ja kopioi SRR1:stä u PCSRR0 Sta06 Tbl 12.6 RISCarkkitehtuuri Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Luento 9 Luento 9-11 Luento 9-12 / 2006 / Teemu Kerola 2

Laitteistotason virstanpylväitä Atlas Virtuaalimuisti, 1962 Tom Kilburn u Helpompi muistinhallinta Atlas Liukuhihna, 1962 Arkkitehtuuriperhe, 1964 Tom Kilburn Gene Amdahl IBM S/360, DEC PDP-8 u Samaa käskykantaa noudattavia koneita Mikro-ohjelmoitu kontrolli, 1964 Maurice Wilkes IBM S/360 u Käskykantaa helpompi kehittää Moniprosessorijärjestelmä, 1964 J.P. Eckert, John Mauchly Univac u test_and_set käsky tarpeen Välimuisti, 1965 Maurice Wilkes IBM S/360 u Huikea suorituskykyparannus IBM RISC-arkkitehtuuri, 1980 u Yksinkertainen käskykanta Superscalar CPU, 1989 John Cocke, 1974 J.L. Hennessy & D.A. Patterson John Cocke, 1965 IBM, Intel u Useita käskyjä valmiiksi per sykli Hyperthreading CPU, 2001 IBM Intel CDC, 1964 u Usea rekisterijoukko ja virtuaalisuoritin lastulla Intel Intel Multicore CPU, 2005 Intel IBM Intel, Sony-Toshiba-IBM u Usea täydellinen suoritin lastulla Perinteiset koneet Kantavia ideoita u Kutista lausekielen ja konekielen semanttista kuilua Lausekielen ilmaisuvoima kehittynyt u Kääntämisen helppous Lausekielen rakenteilla vastineet konekielessä Käskykanta valikoitu usein tietty lausekieli mielessä u Paljon erilaisia käskyjä moniin tarkoituksiin u Paljon erilaisia datatyyppejä u Paljon erilaisia osoitusmuotoja u Tee asiat laitetoimintoina, ei ohjelmallisesti Vähemmän konekielisiä käskyjä suoritettavana Monimutkaisten operaatioiden suorittaminen tehokasta = CISC (Complex Instruction Set Computer) Luento 9-14 Mitä operaatioita / operandeja? Vuosi 1982, kohde: VAX, PDP-11, Motorola 68000 Dynaaminen, suoritusaikainen tarkastelu Aliohjelmakutsut? Aliohjelmakutsuja paljon Kutsussa harvoin monta parametria Kutsut harvoin sisäkkäisiä (Sta06 Table 13.4) 80% viittauksista aliohjelmien paikallisiin (Sta06 Table 13.2, 13.3) Em. tietojen hyödyntäminen? 98% alle 6 parametria 92% alle 6 paikallista muuttujaa Luento 9-15 Luento 9-16 Huomioita Pääosa operandeista yksinkertaisia Hyppykäskyjä runsaasti 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ä Johtopäätökset? Occamin partaveitsi (Occam s razor) "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" Optimointia Optimoi asioita, joissa kuluu eniten aikaa u Aliohjelmakutsut, silmukat, muistiinviittaukset, Esimerkki huonosta optimoinnista u Tuplaa liukulukuaritmetiikan nopeus u 10% käskyissä liukulukuaritmetiikkaa ExTime new = ExTime old * (0.9 * 1.0 + 0.1 * 0.5) = 0.95 x ExTime old Speedup = ExTime old / ExTime new = 1 / 0.95 = 1.053 << 2 Amdahlin laki Speedup due to an enhancement is proportional to the fraction of the time (in the original system) that the enhancement can be used. Luento 9-17 Luento 9-18 / 2006 / Teemu Kerola 3

Optimointia Optimoi suoritusnopeutta, älä kääntämisen helppoutta / suoraviivaisuutta u Kääntäjät erinomaisia, koneet tehokkaita Osaavat ja ehtivät optimoida u Tee yleisimmät tehtävät laitetoimintoina, tehokkaasti Esim. 1-uloitteiseen taulukkoon viittaus u Tee loput ohjelmallisesti Esim. merkkijonon muunnos Tarjoa valmiit kirjastorutiinit RISC arkkitehtuuri (Reduced Instruction Set Computer) RISC arkkitehtuuri Paljon rekistereitä (väh. 32) u Kääntäjät optimoimaan rekistereiden käyttöä LOAD / STORE arkkitehtuuri u Vain LOAD ja STORE viittaavat muistiin Vain vähän ja yksinkertaisia käskyjä Yksinkertainen vakiopituinen käskyformaatti (32b) u Käskyjen nouto ja dekoodaus helppoa Vain vähän ja yksinkertaisia osoitusmuotoja u Ei epäsuoraa osoitusta u Nopea operandin osoitelaskenta Vähän erilaisia operandeja 32 b:n kokonaisluvut, liukuluvut Kullakin syklillä valmistuu yksi tai useampi käsky Luento 9-19 Luento 9-20 RISC arkkitehtuuri RISC vs. CISC CPU helpompi implementoida u Liukuhihnaa helpompi hallita ja optimoida u Langoitettu toteutus (hardwired) Pienempi piirin koko u Enemmän per lastu u Pienempi hukka% Halvemmat kustannukset Nopeammin markkinoille 25% yield (OK) 55% yield (OK) 75% hukkaan 45% hukkaan (Sta06 Table 13.1) Luento 9-21 Luento 9-22 RISC vs. CISC Rekistereiden käytöstä (Sta06 Table 13.7) Luento 9-23 Luento 9-24 / 2006 / Teemu Kerola 4

Rekisterijoukko Enemmän rekistereitä kuin käskyssä voi viitata u Esim. SPARCissa rekisterinrolle 5 b suurin nro 32, mutta CPUssa 40-540 rekisteriä Kerralla käytössä vain osa rekistereistä, ikkuna u Ikkunaan viitataan esim. rekisterinumeroilla r0-r31 u CPU kuvaa ne tod. rekisterinumeroiksi, esim. r0-r539 Rekisteri-ikkuna Aliohjelmakutsu käyttää pinon sijasta rekistereitä u Kutsussa kiinteä määrä rekistereitä parametreille sekä paikallisille muuttujille u Varaukset limittäin siten, että parametrit käytettävissä sekä kutsuvassa että kutsutussa osassa Current Window Pointer (Sta06 Fig 13.3) Luento 9-25 (Sta06 Fig 13.1) Luento 9-26 Rekisteri-ikkuna Jos sisäkkäisiä kutsuja paljon u Rekisterijoukko voi loppua kesken u Talleta vanhin muistiin, lataa takaisin, kun paluu häämöttää u Kutsuketju harvoin pitkä, talletus/palautus harvoin Globaalit muuttujat? u Muistissa tai oma rekisteriikkuna SPARC u r0-r7 globaaleille todelliset rekisterit u r8-r15 parametrit (kutsutussa) virtuaaliset u r16-r23 lokaalit muuttujat rekisterit u r24-r31 parametrit (kutsujassa) (Sta06 Fig 13.2) Luento 9-27 Rekisterijoukko vs. Välimuisti (Sta06 Table 13.5) Kääntäjän vaikea päätellä etukäteen mitkä globaalit muuttujat pitäisi sijoittaa rekistereihin Välimuisti ratkaisee sen dynaamisesti u Eniten viitatut pysyvät välimuistissa Luento 9-28 Kääntäjä: Rekistereiden allokointi Kääntäjä: Rekistereiden allokointi Verkon värittäminen u 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) Laskennan teoria -kurssin asioita u solmu = symbolinen rekisteri u särmä = symbolisten rekistereiden yhtäaikainen käyttö u n väriä = n rekisteriä (Sta06 Fig 13.4) Analysoi koodia, ja muodosta verkko symbolisten rekistereiden käytöstä u Symb. rekisteri ~ mikä tahansa, mikä voisi olla rekisterissä Allokoi sitten oikeat rekisterit u Jos kahta symbolista rekisteriä ei käytetä samanaikaisesti, niille voi allokoida saman todellisen rekisterin u Jos rekistereitä ei vapaana, käytä muistia Luento 9-29 Luento 9-30 / 2006 / Teemu Kerola 5

RISC-liukuhihna RISC-liukuhihna, Delayed Branch Single port MEM Traditional RISC with inserted NOOP Two port MEM Two port MEM (Sta06 Fig 13.6) RISC with reversed instructions (Sta06 Fig 13.7) Luento 9-31 Luento 9-32 RISC & CISC United? Pentium, CISC u 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 RISC u Paljon työrekistereitä: laitteisto ottaa käyttöön Käännös joka käskyn suorituskerralla Kertauskysymyksiä Mitkä ovat RISC arkitehtuurin tunnuspiirteet? Miten rekisteri-ikkunoita käytetään? Crusoe (Transmeta) u Ulospäin CISC-arkkitehtuuri Just in time (JIT) compilation u 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 Käännös vain kerran u Alemmat tasot kuten RISC per käskyjoukko Luento 9-33 Luento 9-34 / 2006 / Teemu Kerola 6