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

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

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä

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. Käskyjen nouto- ja suoritussykli (5)

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.

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

1. Keskusyksikön rakenne

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Jakso 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

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

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

Käyttöjärjestelmän rakenne

Luento 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. 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)

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

Järjestelmän ulkoinen muisti I/O

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

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

Kertausluento luennoista 1-3 1

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 4 Aliohjelmien toteutus

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

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

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

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

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

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

Jakso 4 Aliohjelmien toteutus

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

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

Luento 9 Järjestelmän ulkoinen muisti

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)

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Käyttöjärjestelmät: prosessit

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 6: VIRTUAALIMUISTI

Jakso 4 Aliohjelmien toteutus

Luento 12 Yhteenveto

Käyttöjärjestelmät II

Luento 9 Järjestelmän ulkoinen muisti

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 4 Aliohjelmien toteutus

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Jakso 8 Ohjelman toteutus järjestelmässä

2 Konekieli, aliohjelmat, keskeytykset

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tietokoneen toiminta, K Tavoitteet (4)

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

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

Transkriptio:

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

TTK-91 konen rakenne Käskyn esitys bittitasolla on aina: OPER koodi 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 = n 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 illä muistista MBR:n kautta TR:ään (0-2 krt?) ALU operaatio tulos rekisteriin R0-R7 tai TR:ään (STORE, PUSH) Muistiin talletus Ei kaikilla illä muistiin MBR:n kautta ks. TTK-91 suorittimen rakennekuva 8 Käskyn noutovaihe (4) Vie PC:n arvo MAR:iin Aseta muistin lukusignaali kontrollille asentoon lue Odota, kunnes muistipiiri toimittaa n kautta uuden arvon MBR:ään Siirrä kone MBR:stä IR:ään 9 Käskyn purku ja tehollisen muistiosoitteen (EA) laskemisvaihe OPER koodi 8 bit field Rj M Ri 3 bit 2 bit 3 bit 31 24 21 19 16 15 0 Purku automaattisesti langoitettuna IR:stä Muistiosoitteen lasku, tulos TR:ään jos Ri=0, niin TR ADDR muutoin TR (Ri)+ADDR ALU suorittaa laskutoimituksen Effective Address (EA) on nyt TR:ssä ADDR osoiteosa 16 bit field 10 Operandin luku vaihe (4) Vie muistiosoite MAR:iin Aseta muistin lukusignaali kontrollille asentoon lue Odota kunnes muistipiiri toimittaa 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 haettu ja purettu osiin IR:ssä 1. operandi rekisterissä (R0,, R7) 2. operandi TR:ssä Käskyn suoritus ALUssa vie operandit sisäistä ä pitkin 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 2

Tuloksen muistiin kirjoitus - vaihe (5) Vie muistiosoite MAR:iin Vie kirjoitettava sana MBR:ään Aseta kirjoitussignaalit kontrollille asentoon kirjoita muistiin Odota kunnes sana siirretään muistiin ä pitkin ja n kontrollisignaalit kertovat muistiinkirjoittamisen tapahtuneen Lisää tietoa? Tietokoneen rakenne -kurssi 13 TTK-91 Nouto- ja suoritussykli vähän tarkemmin (1) Hae PC++ M=2 lue muistista M>0 pura, M=0 laske osoite noutosykli Noutosykli suoritussykli, popr erikoistapauksia: hyvin monimutkaisia suorita kirj. muistiiin write push 14 MMU:n toiminta (2) Ohjelman käyttämät muisti (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 n 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 MMU < LIMIT? + BASE BASE: LIMIT: 1000 512 Fyysinen osoiteavaruus 0 1023 1048575 muistipiirien käyttämät 16 Virtuaalimuistin menetelmiä (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 koodi segmentti, data segmentti, 17 Keskeytystilanteet (3) Mikä tahansa tilanne, jonka käsittely vaatii poikkeuksen jen 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 3

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 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 llä Yllättävä aliohjelmakutsu interrupt handler 19 Keskeytystyyppejä (14) Käskyn aiheuttamat virhetilanteet virheellinen n tai datan osoite tuntematon (opcode) nollalla jako kokonaisluvun tai liukuluvun yli/alivuoto käytetty osoite ei ole muistissa (MMU) Käskyn aiheuttamat muut poikkeustilanteet SVC I/O kone trace keskeytys Ulkoapäin (muualta kuin CPU:lta) tulleet kellolaitekeskeytys (esim. joka 10 ms) laitekeskeytys (esim. levy I/O valmis) laitteistovirhe (esim. virhe n tiedonsiirrossa) 20 Keskeytyskäsittelijä Osa käyttöjärjestelmää Ennen käsittelijän aloittamista asetetaan suoritin ja käyttöjärjestelmätilaan. (supervisor state) 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 konejä (SR:n bitti P on päällä) Käsittelijästä paluun yhteydessä MMU:n tila ja prosessorin tila asetetaan ennalleen 21 Prosessorin tilat (6) user kernel Käyttäjätila (user mode, normal mode) voi käyttää vain tavallisia jä voi viitata vain käyttäjän omaan muistiavaruuteen (MMU valvoo) Etuoikeutettu tila tai (KJ:n) ytimen tila (kernel mode, privileged mode) voi käyttää kaikkia konejä, myös etuoikeutettuja voi viitata kaikkialle muistiin, myös käyttöjärjestelmän ytimeen (kernel) voi käyttää (myös) suoria muistiosoitteita (PA) 22 Prosessorin tilan muuttaminen (6) user SVC, INT IRET kernel Käyttäjätila etuoikeutettu tila keskeytys tai suora KJ:n palvelupyyntö (SVC ) keskeytyskäsittelijä tarkistaa onko oikeutta tilan vaihtoon (interrupt handler) Etuoikeutettu tila käyttäjätila etuoikeutettu kone return from interrupt handler esim. IRET (Pentium II) palauttaa kontrollin ja prosessorin tilan keskeytyneeseen kohtaan ja sen hetkiseen tilaan TTK-91 Nouto- ja suoritussykli vielä vähän tarkemmin Hae PC++ noutosykli Noutosykli M=2 lue muistista M>0 pura, M=0 laske osoite suorita suoritussykli kirj. muistiiin write push tarkista keskeytykset 23 24 Luento 5, CPU ja 4

Väylät (5) Tiedon siirtoa varten laitteistossa Yksi käyttäjä kerrallaan Toteutettu johdinkimppuina Eri tasoilla suorittimen sisällä sisäinen muisti suorittimen ja muistin välillä I/O- muistin ja I/O-laitteiden välillä (I/O bus) Useita eri tapoja yhdistellä edellä olevia (internal bus) (memory bus) 25 Väylähierarkia PCI to SCSI bridge Typical Pentium II system Fig. 3-50 [Tane99] 26 Väylät (5) Kullakin laitteella oma osoite Yksi lähettää, kaikki kuulevat Paljon erilaisia Lähellä prosessoria olevat ovat nopeampia Lisää tietoa? Tietokoneen rakenne -kurssi 27 TTK-91 koneen KOKSI simulaattori (6) Tavallinen Pascalilla kirjoitettu ohjelma TTK-91 koneen osat tietorakenteina rekisterit, MMU, CU, muisti Simuloi jen suoritussykliä kerrallaan Toteuta 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 (6 kalvoa) 28 TTK-91 n suoritussykli (5) hae simuloidusta muistista IR = mem[pc] pura osiin (OPER, Rj, M, Ri, ADDR) ja laske osoiteosan arvo TR (ADDR tai regs[ri]+addr) ADDR = IR % 65536 TR = regs[ri] +ADDR tee tarvittava määrä (M) operandin hakuja muistista rekisteriin TR TR = mem[tr] -- Luennon 5 loppu -- valitse aliohjelma operaatiokoodin (OPER) perusteella if (opcodeok[oper] = FALSE) then SR.U = 1; simuloi konen 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 = 29 [Stal99] 30 Luento 5, CPU ja 5