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

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

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

Luento 5 Suoritin ja väylä

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

Luento 5 Suoritin ja väylä

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

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

Aliohjelmien toteutus Suoritin ja väylä

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

Luento 4 Aliohjelmien toteutus

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

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

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

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.

1. Keskusyksikön rakenne

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

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

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 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 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Järjestelmän ulkoinen muisti I/O

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

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

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

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

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

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Muistihierarkia Kiintolevyt I/O:n toteutus

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

Kertausluento luennoista 1-3 1

Käyttöjärjestelmän rakenne

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

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

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)

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

Luento 1 Tietokonejärjestelmän rakenne

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

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

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

Luento 4 Aliohjelmien toteutus

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Jakso 4 Aliohjelmien toteutus

Ttk-91 esimerkkitietokone ja sen simulaattori

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

Luento 12 Yhteenveto

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

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

Jakso 4 Aliohjelmien toteutus

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ä

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

Tietokoneen toiminta, K Tavoitteet (4)

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

Käyttöjärjestelmät II

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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, 8 op

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Jakso 8 Ohjelman suoritus järjestelmässä

Luento 12 Yhteenveto

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

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Käyttöjärjestelmät II

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 4 Aliohjelmien toteutus

Luento 9 Järjestelmän ulkoinen muisti. Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus

Jakso 8 Ohjelman toteutus järjestelmässä

Luento 2: LAITTEISTOSTA

Jakso 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Transkriptio:

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 1

Suoritin muisti suoritin - CPU ALU CU rekisterit MMU (kirjastorutiinit) (käyttöjärjestelmä) Välimuisti (cache) ohjelma data väylä laiteohjaimet 2

TTK-91-suorittimen rakenne regs R0 R1 sisäinen väylä ALU R2 R3 R4 R6 R5 R7 Kontrollisignaalit PC IR CU SR TR MMU muistiväylä BASE LIMIT MAR MBR kontrolliväylä osoiteväylä dataväylä Bus ctl 3

TTK-91 muistin rakenne Memory CU muisti sanoina osoitteet 0 iso 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! 5

Nouto- ja suoritussykli Aloita Hae PC:n osoittama käsky Noutosykli (fetch cycle) Suorita käsky Suoritussykli (execute cycle) Lopeta Käskyn suoritus voi muuttaa systeemin tilaa sisäiset ja ulkoiset rekisterit muisti laitteet 6

TTK-91-konekäskyn rakenne Käskyn esitys bittitasolla on aina: OPER käskykoodi 8 bit field Rj 3 bit M 2 bit Ri 3 bit ADDR osoiteosa 16 bit field 31 24 21 19 16 15 0 Rj = käskyn ensimmäinen operandi Ri = indeksirekisteri (R0 0) M = muistinoutojen määrä toiseen operandiin (ennen mahdollista muistiin talletusta) muistiosoite tai (pienehkö) vakio (addressing mode) 00 eli 0 kpl, rekisteri tai välitön osoitus (STORE: suoraosoitus) 01 eli 1 kpl, suora osoitus (STORE: epäsuoraosoitus) 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 käskyn osat: OPER, Rj, M, Ri, ADDR TR (Ri) + ADDR (tai pelkkä ADDR, jos Ri=R0) Ei kaikilla käskyillä Operandin nouto muistista MBR:n kautta TR:ään (0-2 krt?) ALU operaatio tulos rekisteriin R0-R7 tai TR:ään (STORE, PUSH) Muistiin talletus muistiin MBR:n kautta ks. TTK-91 suorittimen rakennekuva Ei kaikilla käskyillä 8

Käskyn noutovaihe (4) ks. TTK-91 suorittimen rakennekuva Vie PC:n arvo MAR:iin Aseta muistin käsittelysignaali kontrolliväylälle asentoon lue Odota kunnes muistiväylä vapautuu ja muistipiiri toimittaa väylän kautta uuden arvon MBR:ään Siirrä konekäsky MBR:stä IR:ään 9

Käskyn purku ja tehollisen muistiosoitteen (EA) laskemisvaihe OPER käskykoodi Rj M Ri ADDR osoiteosa 8 bit field 3 bit 2 bit 3 bit 16 bit field 31 24 21 19 16 15 0 Purku automaattisesti langoitettuna IR:stä Muistiosoitteen lasku, tulos TR:ään jos Ri=0, niin ADDR => TR muutoin laske (Ri)+ADDR => TR ALU suorittaa laskutoimituksen Effective Address (EA) on nyt TR:ssä 10

Operandin luku vaihe (4) ks. TTK-91 suorittimen rakennekuv Vie muistiosoite MAR:iin Aseta kontrollisignaali väylälle asentoon lue muistista Varaa ensin kontrolliväylä signaalilla varaa väylä Odota kunnes muistiväylä vapautuu ja muistipiiri toimittaa väylän kautta uuden arvon MBR:ään vapauta kontrolliväylä Siirrä sana MBR:stä TR:ään (tai suoraan johonkin laiterekisteriin (R0-R7) 11

ALU-operaation suoritusvaihe (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:ssa ks. TTK-91 suorittimen rakennekuva vie operandit sisäistä väylää pitkin ALU:un anna ALU:lle sopiva ohjaussignaali add, mul, shl, not, comp,... odota, että tulos valmis talleta tulos rekisteriin (R0-R7, TR, PC, MBR) ja/tai SR:ään ALU Tässä tapahtuu tietokoneen tekemä työ, kaikki muu on hallintoa 12

Tuloksen muistiin kirjoitus vaihe (4 ks. TTK-91 suorittimen rakennekuv Vie muistiosoite MAR:iin Vie kirjoitettava sana MBR:ään Aseta kontrollisignaalit väylälle asentoon kirjoita muistiin Odota kunnes sana siirretään muistiin väylää pitkin, ja väylän kontrollisignaalit kertovat muistiinkirjoittamisen tapahtuneen Lisää tietoa? käyttöjärjestelmä kurssit 13

TTK-91: Nouto- ja suoritussykli vähän tarkemmin Hae käsky PC++ M=2 M>0 pura käsky, laske osoite lue muistista M=0 suorita käsky pushr kirj. muistiiin store push pushr noutosykli Noutosykli suoritussykli PUSHR, POPR erikoistapauksia: aika monimutkaisia 14

MMU:n toiminta (2) ks. TTK-91 suorittimen rakennekuva 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 bitti M SR:ssä 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 menetelmiä (4) Kanta- ja rajarekisteriin perustuva base ja limit rekisterit (esim. TTK-91, 8086,..) Sivuttava sivutaulut virtuaaliavaruus jaettu saman kokoisiin sivuihin Segmentoiva Lisää tietoa? virtuaaliavaruus jaettu ohjelman mukaan erillisiin eri kokoisiin Lisää segmentteihin tietoa? koodi segmentti, data segmentti, käyttöjärjestelmä kurssit 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,. Jatkossa yleisnimi keskeytys tarkoittaa kaikkia näitä eri tapauksia tai tyyppejä 18

Keskeytysten käsittely (4) Jokainen mahdollinen keskeytystyyppi on ennalta tunnettu Jokaiselle keskeytystyypille on oma käyttöjärjestelmän tuntema keskeytyskäsittelyrutiini Käskyn suorituksen jälkeen tarkistetaan interrupt handler keskeytysten olemassaolo SR:stä ja haaraudutaan keskeytyskäsittelijään tarvittaessa joskus keskeytykset on estetty (SR:n bitti D) paluu käsittelijästä return-from-interrupt käskyllä (IRET) Yllättävä aliohjelmakutsu 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 CPU:lta) tulleisiin signaaleihin reagointi 20

Käskyn aiheuttamat virhetilanteet (5) Virheellinen käskyn tai datan osoite Tuntematon käsky (opcode) Nollalla jako Kokonaisluvun tai liukuluvun yli/alivuoto Käytetty osoite ei ole muistissa (MMU) 21

Käskyn aiheuttamat muut poikkeustilanteet SVC-käsky I/O- konekäsky Trace- keskeytys Käyttäjän määrittelemä keskeytys esim. Javan operaatioiden throw/catch tai try/catch toteutus 22

Ulkoapäin (muualta kuin suorittimelta) tulleet keskeytykset (3) Kellolaitekeskeytys (esim. joka 10 ms) Laitekeskeytys (esim. levy I/O valmis) Laitteistovirhe (esim. virhe väylän tiedonsiirrossa) 23

Keskeytyskäsittelijä Osa käyttöjärjestelmää Ennen käsittelijän aloittamista asetetaan suoritin ja MMU käyttöjärjestelmätilaan. (supervisor state) Asetetaan bitti P SR:ssä => etuoikeutettu eli 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ä Käsittelijästä paluun yhteydessä MMU:n tila ja prosessorin tila asetetaan ennalleen 24

Suorittimen tilat (6) Käyttäjätila user (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 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) kernel (kernel mode, privileged mode) 25

Suorittimen tilan muuttaminen (6) user SVC, INT IRET kernel Käyttäjätila etuoikeutettu tila keskeytys tai suora KJ:n palvelupyyntö (SVC käsky) keskeytyskäsittelijä tarkistaa onko 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 26

TTK-91 Nouto- ja suoritussykli vielä vähän tarkemmin Hae käsky PC++ M=2 M>0 pura käsky, laske osoite lue muistista M=0 suorita käsky pushr kirj. muistiiin write push pushr D=0 (SR) tarkista keskeytykset noutosykli Noutosykli suoritussykli 27

Väylät (5) Tiedon siirtoa varten laitteistossa Yksi kirjoittaja kerrallaan Toteutettu johdinkimppuina Eri tasoilla suorittimen sisällä sisäinen väylä muistiväylä suorittimen ja muistin välillä I/O-väylä muistiväylän ja I/O-laitteiden välillä (internal bus) (memory bus) (I/O bus) Useita eri tapoja yhdistellä edellä olevia 28

Väylähierarkia Tyypillinen Pentium II systeemin emolevy Omalla lastulla tason 1 välimuistin kanssa CI to SCSI bridge Fig. 3-50 [Tane99 29

Väylät (5) väylä 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

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 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ä 31

TTK-91-käskyn suoritussykli (5) hae käsky simuloidusta muistista IR = mem[pc] pura käsky osiin (OPER, Rj, M, Ri, ADDR) ja laske osoiteosan arvo TR (ADDR tai regs[ri]+addr) ADDR = IR % 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 Ri, M ADDR(Rj) regs[ri] += TR; lopeta suoritus, jos SVC tai keskeytys SR.O = 32

-- Jakson 5 loppu -- [Stal99] 33