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

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

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

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

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 Suoritin ja väylä

Aliohjelmien toteutus Suoritin ja väylä

Luento 4 Aliohjelmien toteutus

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

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ä

1. Keskusyksikön rakenne

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

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.

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

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

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

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

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

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

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

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)

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: rekisterit

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

Kertausluento luennoista 1-3 1

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

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

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

Järjestelmän ulkoinen muisti I/O

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Ttk-91 esimerkkitietokone ja sen simulaattori

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

Käyttöjärjestelmän rakenne

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tiedon sijainti suoritusaikana (3) Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Miten tietoon viitataan? (4)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne

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

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

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

Luento 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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)

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

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

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

Tietokoneen toiminta 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

Tiedon sijainti suoritusaikana. Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 4 Aliohjelmien toteutus

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

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

Tulkinta ja emulointi

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

Luento 11 Tulkinta ja emulointi

Käyttöjärjestelmät: prosessit

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Jakso 10 Ohjelman suoritus järjestelmässä. Käännös Linkitys Dynaaminen linkitys Lataus

Jakso 10 Ohjelman suoritus järjestelmässä

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

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 10 Käännös, linkitys ja lataus

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

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

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

Transkriptio:

Luento 5 (verkkoluento 5) Suoritin ja väylä Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset 1

Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit, suoritettava käsky välimuisti (ei ttk-91:ssä) kirjastorutiinit Suoritettava ohjelma käyttöjärjestelmä laiterekisterit Ohjelman data väylä 2

Suorittimen toiminta, perusidea PC=0 alkuarvo start PC = Program Counter IR = Instruction Register Käskyn nouto IR := mem (PC) Käskyjen nouto- ja suoritussykli Ohjelmalaskurin kasvatus PC := PC+1 IR-käskyn suoritus (voi muuttaa PC:tä) (voi sisältää muistiviitteitä) 3

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 4 4

Käskyn suorittaminen Titokone näyttää vaiheet simuloimalla Store R4, @10(R1) ; R1 =20, R4=15 Käskyn nouto ja ohjelmalaskurin kasvatus: PC MAR, bus read, odota, mem MBR MBR IR PC+1 PC Esim: PC ALU1, 1 ALU2, +, odota, ALU PC Esim: PC INCin, odota, INCout PC (oma piiri) Käskyn suoritus: R1 ALU1, 10 ALU2, +, (odota), ALU TR TMP MAR, bus read, odota, mem MBR MBR MAR, R4 MBR, bus write, odota, MBR mem Huom: yhteensä 3 muistiviitettä 5

TTK-91 konekäskyn rakenne Ttk-91 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 (0 ei käytetä) M = muistinoutojen määrä toiseen operandiin (ennen operaation suoritusta) (pienehkö) muistiosoite tai 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 virhe, poikkeustilanne ) 6

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 (bitti:) 0 Purku automaattisesti langoitettuna käskyrekisteristä (IR) Muistiosoitteen lasku, tulos tilapäisrekisteriin (TR) 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ä TR:n sisältöä voi käyttää datana sellaisenaan tai muistiosoitteena tai epäsuorana muistiosoitteena Jälkimmäisen operandin määrittely 7

Muistitilan käyttö ohjelmalle P Todellinen fyysinen muisti BASE LIMIT 0: P 0: SP P:n näkemä (virtuaalinen) muisti Ohjelmakoodi Globaalit muuttujat ja tietorakenteet Pino (stack) aliohjelmien toteuttamista varten (myös paikalliset muuttujat) Vapaa muistitila rekistereitä iso: HP Keko (heap) dynaamisesti (esim. Javan new ) varattavia muistialueita varten (ei ttk-91:ssa ) 8 Keskustele

Virtuaalimuistin osoitteenmuunnosmenetelmiä Kanta- ja rajarekisteriin perustuva base ja limit rekisterit (esim. ttk-91, 8086,...) Sivuttava sivutaulut osoiteavaruus jaettu saman kokoisiin sivuihin Segmentoiva osoiteavaruus jaettu ohjelman mukaan erillisiin eri kokoisiin Lisää segmentteihin tietoa? Lisää tietoa? käyttöjärjestelmä- kurssi koodi segmentti, data segmentti, literaalialue, käyttöjärjestelmäkurssi 9

Keskeytysten käsittely Jokainen mahdollinen keskeytystyyppi on ennalta tunnettu, eli mitään todella yllättävää ei koskaan tapahdu Jokaiselle keskeytystyypille on oma käyttöjärjestelmän tuntema keskeytyskäsittelyrutiini Jokaisen käskyn suorituksen lopussa (sen jälkeen) tarkistetaan (laitteisto tarkistaa) keskeytysten olemassaolo SR:stä ja haaraudutaan (PC talteen, PC:lle uusi arvo) keskeytyksen tyypin mukaiseen keskeytyskäsittelijään tarvittaessa Esim. kesk. tyyppi 3: PC 3 tai PC mem(3) 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 10

Suorittimen toiminta, tarkemmin PC=0 alkuarvo (ttk-91:ssä) start Käskyn nouto IR := mem (PC) PC = Program Counter IR = Instruction Register Keskeytysten tarkastaminen (voi muuttaa PC:tä) Käskyjen nouto- ja suoritussykli Ohjelmalaskurin kasvatus PC := PC+1 IR-käskyn suoritus (voi muuttaa PC:tä) (voi sisältää muistiviitteitä) Keskustele 11

Keskeytyskäsittelijä Tärkeä osa käyttöjärjestelmää Ennen keskeytyskäsittelijään siirtymistä asetetaan suoritin etuoikeutettuun (supervisor state, käyttöjärjestelmätilaan kernel 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, ClearCache, SetBASE, SetLIMIT, SetD, ReadSR, Käsittelijästä paluun yhteydessä MMU:n tila ja suorittimen tila (bitti P) asetetaan ennalleen 12

Suorittimen tilan muuttaminen käyttäjätila 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 supervisor state etuoikeutettu tila etuoikeutettu konekäsky return from interrupt handler esim. IRET (Pentium II) palauttaa kontrollin keskeytyneeseen kohtaan ja suorittimen tilan keskeytystä edeltäneeseen tilaan Keskustele 13

Titokone - TTK-91 koneen simulaattori Tavallinen Javalla 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. Processor.java Titokoneen koodissa: titokone.jar\fi\hu\cs\titokone\processor.java (http://www.cs.helsinki.fi/group/nodes/kurssit/tito/processor.java.txt ) 14

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 reg[ri]+addr) ADDR = IR mod 32768 TR = reg[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) reg[rj] += TR; lopeta suoritus jos SVC tai keskeytys SR.O = IR = mem[pc] Simulaattori C:llä: http://www.cs.helsinki.fi/group/nodes/kurssit/tito/simu/simu.c 15

Väylät Kullakin laitteella oma osoite Yksi lähettää kerrallaan, kaikki kuulevat, vain oikea laite vastaanottaa ja reagoi Paljon erilaisia Lähellä suoritinta olevat ovat nopeampia 1 2 väylä 8 9 10 Lisää tietoa? Tietokoneen rakenne -kurssi 16

Väylähierarkia Tyypillinen Pentium II systeemin emolevy omalla sirulla, tason 1 välimuistin kanssa PCI to SCSI bridge Fig. 3-50 [Tane99] Keskustele 17

-- Loppu -- (Tekniikan museo) ESKO, 1960 ensimmäinen Suomessa rakennettu tietokone, vanhentunut jo valmistuessaan, 20 yhteenlaskua sekunnissa. Ohjelmakoodi luettiin reikänauhoilta (10 kpl) Koodi ja data eivät ole samassa muistissa! Aliohjelmakutsu toteutettu kontrollin siirrolla toiseen reikänauhanlukijaan 18