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

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

Luento 5 Suoritin ja väylä

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

Luento 5 Suoritin ja väylä

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ä

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

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

Aliohjelmien toteutus Suoritin ja väylä

Luento 4 Aliohjelmien toteutus

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

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

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

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 2 (verkkoluento 2) Ttk-91 järjestelmä

1. Keskusyksikön rakenne

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Suoritin ja väylä. Suorittimen rakenne. Väylän rakenne. Käskyjen suoritussykli. MM U'n toiminta ja osoitteenmuunnos. Poikkeukset ja keskeytykset

Luento 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

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

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Jakso 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 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

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

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

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)

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

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

Järjestelmän ulkoinen muisti I/O

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

Kertausluento luennoista 1-3 1

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Käyttöjärjestelmän rakenne

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

Luento 1 Tietokonejärjestelmän rakenne

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

Tietokoneen toiminta Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

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

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Ttk-91 esimerkkitietokone ja sen simulaattori

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat?

Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright Tavoitteet (4)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 4 Aliohjelmien toteutus

Luento 1 Tietokonejärjestelmän rakenne

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

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

Tavoitteet (4) Luento 12 Yhteenveto. Keskeisiä asioita. Mitä hyötyä tästä on? (2) Esimerkkikone: TTK-91 laitteisto suoritin - CPU

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Luento 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät II

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Luento 9 Järjestelmän ulkoinen muisti

Luento 12 Yhteenveto

Jakso 4 Aliohjelmien toteutus

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 2: LAITTEISTOSTA

Käyttöjärjestelmät II

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

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 9 Järjestelmän ulkoinen muisti

Tietokoneen toiminta, K Tavoitteet (4)

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, K2000

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessin elinkaari (10) Prosessin vaihto (4) Prosessin esitysmuoto järjestelmässä (4)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2)

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

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

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

Luento 12 Yhteenveto

Transkriptio:

Luento 5 Suoritin ja väylä Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne Suoritin suoritin - CPU ALU rekisterit CU MMU Välimuisti (cache) väylä muisti (kirjastorutiinit) ohjelma data laiteohjaimet 1 2 TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne regs R0 MMU R2 R4 R6 R1 R3 R5 R7 sisäinen väylä BASE LIMIT MAR MBR ALU PC IR Bus ctl CU SR TR Memory CU muisti sanoina osoitteet 0 iso kontrolliväylä osoiteväylä dataväylä ks. Edsac, lastut 286, 486, PIII, PIII Xeon 3 (käyttöjärjestelmä) Kontrollisignaalit muistiväylä muistiväylä kontrolliväylä osoiteväylä dataväylä 4 Käskyjen nouto- ja suoritussykli (5) Hae PC:n osoittama konekäsky muistista lisää samalla PC:n arvoa yhdellä Suorita konekäsky jos (ehdollinen) hyppykäsky, niin PC:n arvo voi vielä muuttua Suoritin ei näe mitään suurempia kokonaisuuksia kuin konekäskyjä! Suoritin ei tiedä mitään ohjelmista! Nouto- ja suoritussykli Aloita Hae PC:n osoittama käsky Noutosykli (fetch cycle) Suorita Lopeta käsky Suoritussykli (execute cycle) Käskyn suoritus voi muuttaa systeemin tilaa sisäiset ja ulkoiset rekisterit muisti laitteet 5 6 Luento 5, CPU ja väylä 1

TTK-91 konekäskyn rakenne Käskyn esitys bittitasolla on aina: OPER käskykoodi 8 bit field Rj M Ri 3 bit 2 bit 3 bit Ri = indeksirekisteri (R0 0) M = muistinoutojen määrä toiseen operandiin (ennen mahdollista muistiin talletusta) ADDR osoiteosa 16 bit field 31 24 21 19 16 15 0 Rj = käskyn ensimmäinen operandi muistiosoite tai (pienehkö) vakio (addressing mode) 00 eli 0 kpl, välitön osoitus (STORE: suora osoitus) 01 eli 1 kpl, suora osoitus (STORE: epäsuora osoit.) 10 eli 2 kpl, epäsuora osoitus (STORE: epäkelpo arvo) ( 11 eli 3 kpl, epäkelpo arvo poikkeustilanne ) 7 Nouto- ja suoritussykli tarkemmin (5) Noutovaihe muistista MBR:n kautta IR:ään Lisää 1 PC:hen Käskyn purku ja muistiosoitteen (EA) lasku OPER, Rj, M, Ri, ADDR TR (Ri) + ADDR (pelkkä ADDR, jos Ri=R0) Operandin nouto Ei kaikilla käskyillä muistista MBR:n kautta TR:ään (0-2 krt?) ALU operaatio tulos rekisteriin R0-R7 tai TR:ään (STORE, PUSH) Muistiin talletus Ei kaikilla käskyillä muistiin MBR:n kautta ks. TTK-91 suorittimen rakennekuva 8 Käskyn noutovaihe (4) Vie PC:n arvo MAR:iin Aseta muistin lukusignaali kontrolliväylälle asentoon lue Odota, kunnes muistipiiri toimittaa väylän kautta uuden arvon MBR:ään Siirrä konekäsky MBR:stä IR:ään Käskyn purku ja tehollisen muistiosoitteen (EA) laskemisvaihe OPER käskykoodi 8 bit field Rj M Ri 3 bit 2 bit 3 bit ADDR osoiteosa 16 bit field 31 24 21 19 16 15 (bitti:) 0 Purku automaattisesti langoitettuna IR:stä Muistiosoitteen lasku, tulos TR:ään jos Ri=0, niin TR ADDR muutoin TR (Ri)+ADDR ALU suorittaa laskutoimituksen jos ADDR = 0, niin TR (Ri) Effective Address (EA) on nyt TR:ssä 9 10 Operandin lukuvaihe (4) Vie muistiosoite MAR:iin Aseta muistin lukusignaali kontrolliväylälle asentoon lue Odota kunnes muistipiiri toimittaa väylän kautta uuden arvon MBR:ään Siirrä sana MBR:stä TR:ään (tai suoraan johonkin laiterekisteriin R0-R7) 11 ALU operaatio -vaihe (10) Lähtötilanne käsky haettu ja purettu osiin IR:ssä 1. operandi rekisterissä (R0,, R7) 2. operandi TR:ssä Käskyn suoritus ALU:ssä vie operandit sisäistä väylää pitkin yksi kerrallaan ALU:un anna ALU:lle sopiva ohjaussignaali add, mul, copyleft, comp,... ALU odota, että tulos valmis talleta tulos rekisteriin, MBR:ään, PC:hen ja/tai SR:ään Tässä tapahtuu tietokoneen tekemä työ, kaikki muu on hallintoa 12 Luento 5, CPU ja väylä 2

Tuloksen muistiinkirjoitusvaihe (5) Vie muistiosoite MAR:iin Vie kirjoitettava sana MBR:ään Aseta kirjoitussignaalit kontrolliväylälle asentoon kirjoita muistiin Odota kunnes sana siirretään muistiin väylää pitkin ja väylän kontrollisignaalit kertovat muistiinkirjoittamisen tapahtuneen Lisää tietoa? Tietokoneen rakenne -kurssi 13 TTK-91 Nouto- ja suoritussykli vähän tarkemmin (1) Hae käsky PC++ M=2 M>0 pura käsky, laske osoite noutosykli Noutosykli suoritussykli, popr erikoistapauksia: aika monimutkaisia lue muistista M=0 suorita käsky kirj. muistiiin store push 14 MMU:n toiminta (2) Ohjelman käyttämät muistiosoitteet (VA) ovat näennäisiä, välillä 0 LIMIT-1 ne eivät ole samoja osoitteita kuin keskusmuisti käyttää MAR:iin menevä arvoa VA ei käytetä suoraan, vaan se tarkistetaan ja muokataan ensin Tarkista, onko VA [0, LIMIT-1]. Jos ei ole, niin aseta SR:n bitti M päälle ja lopeta käskyn suoritus Lisää VA:han BASE ja laita tämä arvo (PA) MAR:iin VA = virtual address, PA = physical address = BASE+VA 15 TTK-91 virtuaalimuisti Virtuaalinen osoiteavaruus 0 23 511 ohjelman käyttämät osoitteet MMU < LIMIT? + BASE BASE: LIMIT: 1000 512 Fyysinen osoiteavaruus 0 1023 1048575 muistipiirien käyttämät osoitteet 16 Virtuaalimuistin osoitteenmuunnosmenetelmiä (4) Kanta- ja rajarekisteriin perustuva base ja limit rekisterit (esim. ttk-91, 8086,...) Sivuttava sivutaulut virtuaaliavaruus jaettu saman kokoisiin sivuihin Segmentoiva virtuaaliavaruus jaettu ohjelman mukaan erillisiin eri kokoisiin Lisää käyttöjärjestelmä segmentteihin tietoa? kurssit koodisegmentti, datasegmentti, Lisää tietoa? käyttöjärjestelmä kurssit 17 Keskeytystilanteet (3) Mikä tahansa tilanne, jonka käsittely vaatii poikkeuksen käskyjen normaaliin suoritusjärjestykseen Rakkaalla lapsella on monta nimeä: poikkeus, keskeytys, virhetilanne, trappi, exception, interrupt, fault, trap, failure, SCV, KJ-kutsu,... Jatkossa yleisnimi keskeytys tarkoittaa kaikkia näitä eri tapauksia tai tyyppejä 18 Luento 5, CPU ja väylä 3

Keskeytysten käsittely (4) Jokainen mahdollinen keskeytystyyppi on ennalta tunnettu, eli mitään todella yllättävää ei tapahdu Jokaiselle keskeytystyypille on oma käyttöjärjestelmän tuntema keskeytyskäsittelyrutiini Jokaisen käskyn suorituksen jälkeen tarkistetaan keskeytysten olemassaolo SR:stä ja haaraudutaan keskeytyskäsittelijään tarvittaessa joskus keskeytykset on estetty (ttk-91:ssä SR:n bitti D) paluu käsittelijästä return-from-interrupt-handler käskyllä (esim. IRET, tms) Yllättävä aliohjelmakutsu interrupt handler 19 Keskeytystyyppejä (3) Käskyn aiheuttamat virhetilanteet Käskyn aiheuttamat muut poikkeustilanteet kyseessä ei siis ole virhetilanne, vaan haluttu käyttäytyminen tilanne vaatii erikoistoimenpiteen, jonka toteutus on tehty keskeytyskäsittelyn kaltaiseksi Ulkoapäin (muualta kuin suorittimelta) tulleisiin signaaleihin reagoiminen kontrolliväylältä tuleva signaali 20 Käskyn aiheuttamat virhetilanteet Virheellinen käskyn tai datan osoite Tuntematon käsky (opcode) Nollalla jako Kokonaisluvun tai liukuluvun yli/alivuoto Käytetty osoite ei ole muistissa (MMU) Käskyn aiheuttamat muut poikkeustilanteet SVC käsky I/O konekäsky Trace keskeytys Käyttäjän määrittelemä keskeytys esim. Javan throw/catch tai try/catch operaatioiden toteutus 21 22 Ulkoapäin (muualta kuin suorittimelta) tulleet keskeytykset Kellolaitekeskeytys (esim. joka 10 ms) Laitekeskeytys (esim. levy I/O valmis) Laitteistovirhe (esim. virhe väylän tiedonsiirrossa) Keskeytyskäsittelijä Osa käyttöjärjestelmää Ennen keskeytyskäsittelijään hyppäämistä asetetaan suoritin ja MMU etuoikeutettuun käyttöjärjestelmätilaan (supervisor state) SR:n bitti P on päällä => etuoikeutettu tila eli (P = Priviledged) käyttöjärjestelmätila käyttöjärjestelmätilassa saa viitata mihin tahansa kohtaan muistia (MMU: BASE=0, LIMIT= hyvin iso ) käyttöjärjestelmätilassa saa käyttää kaikkia konekäskyjä (esim. IRET tai ClearCache) Käsittelijästä paluun yhteydessä MMU:n tila ja suorittimen tila asetetaan ennalleen 23 24 Luento 5, CPU ja väylä 4

Suorittimen tilat (2) user Käyttäjätila (user mode, normal mode) voi käyttää vain tavallisia käskyjä voi viitata vain käyttäjän omaan muistiavaruuteen (MMU valvoo) Etuoikeutettu tila tai (KJ:n) ytimen tila kernel (supervisor state, kernel mode, privileged mode) voi käyttää kaikkia konekäskyjä, myös etuoikeutettuja (esim. clear_cache, iret) voi viitata kaikkialle muistiin, myös käyttöjärjestelmän ytimeen (kernel) voi käyttää (myös) suoria muistiosoitteita (PA) Suorittimen tilan muuttaminen (2) user SVC, INT IRET kernel Käyttäjätila etuoikeutettu tila keskeytys tai suora KJ:n palvelupyyntö (SVC käsky) keskeytyskäsittelijä tarkistaa onko (oliko) oikeutta tilan vaihtoon (interrupt handler) Etuoikeutettu tila käyttäjätila etuoikeutettu konekäsky return from interrupt handler esim. IRET (Pentium II) palauttaa kontrollin keskeytyneeseen kohtaan ja suorittimen tilan keskeytystä edeltäneeseen tilaan 25 26 TTK-91 Nouto- ja suoritussykli vielä vähän tarkemmin Hae käsky PC++ noutosykli Noutosykli M=2 M>0 pura käsky, laske osoite lue muistista M=0 suorita käsky suoritussykli kirj. muistiiin store push tarkista keskeytykset Väylät Tiedon siirtoa varten laitteistossa Yksi kirjoittaja kerrallaan (vain!) Toteutettu johdinkimppuina Eri tasoilla suorittimen sisällä sisäinen väylä muistiväylä suorittimen ja (internal bus) muistin välillä I/O-väylä muistiväylän ja I/O-laitteiden välillä (memory bus) Useita eri tapoja yhdistellä edellä olevia (I/O bus) 27 28 Väylähierarkia Tyypillinen Pentium II systeemin emolevy Väylät (1) väylä omalla lastulla, tason 1 välimuistin kanssa PCI to SCSI bridge Fig. 3-50 [Tane99] 29 Kullakin laitteella oma osoite Yksi lähettää, kaikki kuulevat, vain oikea laite vastaanottaa Paljon erilaisia Lähellä suoritinta olevat ovat nopeampia Lisää tietoa? Tietokoneen rakenne -kurssi 30 Luento 5, CPU ja väylä 5

TTK-91 koneen KOKSI simulaattori (6) Tavallinen Pascalilla kirjoitettu ohjelma TTK-91 koneen osat tietorakenteina rekisterit, MMU, CU, muisti Simuloi käskyjen suoritussykliä käsky kerrallaan Toteuttaa myös TTK-91 koneen käyttöjärjestelmän osat osana tavallista ohjelmaa assembler kääntäjä, lataaja, debugger, kesk. käsittelijät Graafinen käyttöliittymä ks. suoritussyklin toteutus Koksissa (seur. kalvo + 6 kopiosivua) 31 TTK-91 käskyn suoritussykli hae käsky simuloidusta muistista pura käsky osiin (OPER, Rj, M, Ri, ADDR) ja laske osoiteosan arvo TR (ADDR tai regs[ri]+addr) ADDR = IR mod 32768 TR = regs[ri] +ADDR tee tarvittava määrä (M) operandin hakuja muistista rekisteriin TR TR = mem[tr] valitse aliohjelma operaatiokoodin (OPER) perusteella if (opcodeok[oper] = FALSE) then SR.U = 1; simuloi konekäskyn suorituksen muutokset rekistereihin (R0 R7, SR, PC, MAR, MBR) ADD Rj, M ADDR(Ri) regs[rj] += TR; lopeta suoritus jos SVC tai keskeytys SR.O = IR = mem[pc] 32 -- Luennon 5 loppu -- [Stal99] 33 Luento 5, CPU ja väylä 6