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

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

Suoritinesimerkit RISC- arkkitehtuuri

Suoritinesimerkit RISC- arkkitehtuuri

Suoritinesimerkit RISC- arkkitehtuuri

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)

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 5 Suoritin ja väylä

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 5 (verkkoluento 5) Suoritin ja väylä

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Superskalaariprosessointi

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

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

Jakso 5 Suoritin ja väylä

Luento 10: Superskalaari prosessori

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

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

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

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

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

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

Superskalaariprosessointi

Superskalaariprosessointi

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 5 Suoritin ja väylä

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

1. Keskusyksikön rakenne

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

Luento 10: Superskalaari prosessori

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

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

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

Luento 5 Suoritin ja väylä

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Kertausluento luennoista 1-3 1

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

Luento 2: LAITTEISTOSTA

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

Luento 5 Suoritin ja väylä

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äännös, linkitys ja lataus

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

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

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

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

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

Luento 5 Suoritin ja väylä

Käyttöjärjestelmän rakenne

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tietokoneen toiminta (Computer Organization I)

Jakso 4 Aliohjelmien toteutus

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Tietokoneen toiminta (Computer Organization I)

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

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

Suorittimen rakenne ja toiminta

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

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

Käyttöjärjestelmät II

Luento 4 Aliohjelmien toteutus

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

Suorittimen rakenne ja toiminta

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

Aliohjelmien toteutus Suoritin ja väylä

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

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

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

Tietokoneen toiminta (Computer Organization I)

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

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Transkriptio:

Suoritinesimerkit Ch 12.5-6 [Sta06] Pentium/PowerPC RISC-arkkitehtuuri 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 / 2007 /Liisa Marttinen 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 Luento 9-8 PowerPC (Sta06 Fig 4.14) Luento 9-9 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ä Luento 9-10 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 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 Luento 9-11 Luento 9-12 / 2007 /Liisa Marttinen 2

RISCarkkitehtuuri Ch 13 [Sta06] Käskyanalyysia RISC vs. CISC Rekisterien käytöstä Luento 9 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 Luento 9-13 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-15 Mitä operaatioita / operandeja? Vuosi 1982, kohde: VAX, PDP-11, Motorola 68000 Dynaaminen, suoritusaikainen tarkastelu 80% viittauksista aliohjelmien paikallisiin (Sta06 Table 13.2, 13.3) Luento 9-16 Aliohjelmakutsut? Aliohjelmakutsuja paljon Kutsussa harvoin monta parametria Kutsut harvoin sisäkkäisiä Em. tietojen hyödyntäminen? (Sta06 Table 13.4) 98% alle 6 parametria 92% alle 6 paikallista muuttujaa 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" Luento 9-17 Luento 9-18 / 2007 /Liisa Marttinen 3

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. 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) Luento 9-19 Luento 9-20 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 RISC arkkitehtuuri 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 Luento 9-21 Luento 9-22 RISC vs. CISC RISC vs. CISC (Sta06 Table 13.1) Luento 9-23 (Sta06 Table 13.7) Luento 9-24 / 2007 /Liisa Marttinen 4

Rekistereiden käytöstä 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 Current Window Pointer (Sta06 Fig 13.3) Luento 9-25 Luento 9-26 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 (Sta06 Fig 13.1) Luento 9-27 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-28 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 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) Analysoi koodia, ja muodosta verkko symbolisten rekistereiden käytöstä u Symbolinen rekisteri ~ mikä tahansa, mikä voisi olla rekisterissä u Yhdistä samaan aikaan käytössä olevat symboliset rekisterit Allokoi sitten oikeat rekisterit Laskennan teoria -kurssin asioita u Jos kahta symbolista rekisteriä ei käytetä samanaikaisesti (ne eivät ole vierekkäisiä verkossa), niille voi allokoida saman todellisen rekisterin u Jos rekistereitä ei vapaana, käytä muistia Luento 9-29 Luento 9-30 / 2007 /Liisa Marttinen 5

Kääntäjä: Rekistereiden allokointi RISC-liukuhihna u solmu = symbolinen rekisteri u särmä = symbolisten rekistereiden yhtäaikainen käyttö u n väriä = n rekisteriä 13 10 (Sta06 Fig 13.4) Single port MEM 8 11 Two port MEM (split cache enough?) Clock cycle? (Sta06 Fig 13.6) Luento 9-31 Luento 9-32 RISC-liukuhihna, Delayed Branch Traditional 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 RISC with inserted NOOP Two port MEM RISC with reversed instructions (Sta06 Fig 13.7) Luento 9-33 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-34 Kertauskysymyksiä Mitkä ovat RISC arkitehtuurin tunnuspiirteet? Miten rekisteri-ikkunoita käytetään? Luento 9-35 / 2007 /Liisa Marttinen 6