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ä

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

Aliohjelmien toteutus Suoritin ja väylä

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

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

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

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

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

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

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

1. Keskusyksikön rakenne

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

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

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ä

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

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Ttk-91 esimerkkitietokone ja sen simulaattori

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

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

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

Käyttöjä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

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)

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

Luento 2: LAITTEISTOSTA

Muistihierarkia Kiintolevyt I/O:n toteutus

Stallings, Luku 1. KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-2. KJ-I S2003 / Auvo Häkkinen 2-1

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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)

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 8 Ohjelman toteutus järjestelmässä

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

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

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

Luento 1 Tietokonejärjestelmän rakenne

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

Luento 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. Järjestelmän eri tasot Laitteiston nopeus

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

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

Jakso 8 Ohjelman toteutus järjestelmässä

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

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

Tulkinta ja emulointi

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

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

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

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

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

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

Luento 11 Tulkinta ja emulointi

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

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

Käyttöjärjestelmät: prosessit

Luento 12 Yhteenveto. Tavoitteet. Keskeisiä asioita. Mitä hyötyä tästä on? Esimerkkikone: TTK-91 laitteisto. Tietokoneen toiminta 27.4.

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

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

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

Transkriptio:

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

Suoritusaikainen 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 (ttk-91:ssä) PC = Program Counter (paikanlaskuri, käskynosoitin, IP) start Käskyn nouto IR := mem (PC) Käskyjen nouto- ja suoritussykli IR = Instruction Register (käskyrekisteri) Ohjelmalaskurin kasvatus PC := PC+1 IR:n 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

Käskyn purku ja tehollisen muistiosoitteen (EA) laskemisvaihe 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 (bitti:) 0 Purku automaattisesti langoitettuna käskyrekisteristä (IR) Muistiosoitteen lasku, tulos tilapäisrekisteriin (TR) Rj: 1. operandi ja tulosrekisteri 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 5

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ä (tällä käskyllä) 6

TTK-91 konekieli Operaatio 8 bit Rj 3 b M 2 b Ri 3 b Attribuutti (arvo tai osoite) 16 bittiä Kukin käsky 32 bittiä. Oma operaatiokoodi kullakin käskyllä Käskyn rekisterien ja attribuuttien tulkinta riippuu käskystä ja osoitusmuodosta (M) Tietotyyppi: Vain 32-bittinen kokonaisluku (tai vain bittejä) EI: merkkejä, liukulukuja, totuusarvoja 1.11.2018 Copyright 2017 Teemu Kerola 7

Aliohjelmien toteutukseen (ei tavalliseen laskentaan) TTK-91 rekisterit 8 yleisrekisteriä vain näitä rekistereitä voi osoittaa tai lukea/kirjoittaa (suoraan) konekäskyillä kaikki laskenta tapahtuu rekistereiden avulla vain 8 muistipaikkaa varsinaista laskentaa varten R0 työrekisteri indeksirekisterinä == 0 (vakio nolla eli indeksirekisterinä R0:n käyttö tarkoittaa lukua 0 rekisterin R0 sisällön asemesta), eli ei indeksointia R1-R5 työ- ja indeksirekistereitä tyyppi riippuu rekisterin käytöstä konekäskyssä pino-osoitin SP (R6) ympäristöosoitin FP (R7) Stack Pointer Frame Pointer 1.11.2018 Copyright 2017 Teemu Kerola 8

TTK-91 Kontrolliyksikkö (CU) PC - Program Counter, käskyosoitin seuraavaksi suoritettavan konekäskyn osoite IR - Instruction Register, käskyrekisteri suorituksessa oleva konekäsky TR - Temporary Register, apurekisteri tilapäinen talletuspaikka käskyn suoritusaikana SR - State Register, tilarekisteri suorittimen tila ja rajoitukset tällä hetkellä 1.11.2018 Copyright 2017 Teemu Kerola 9

TTK-91 Tilarekisteri SR Tilatietoa siitä, mitä suorittimella tapahtui edellisen käskyn suorituksessa virhetilanteet, poikkeukset, keskeytykset konekäsky olikin käyttöjärjestelmän palvelupyyntö vertailun tulos Tilatietoa siitä, mitä systeemissä tapahtui viime aikoina käsittelemättömät laitteiden antamat signaalit (laitekeskeytykset, device interrupts) Tilatietoa siitä, mitä suoritin saa tehdä jatkossa etuoikeutettu vai tavallinen suoritustila? (kaikki muistialueet ja kaikki käskyt sallittuja, vai ei?) poikkeukset ja keskeytykset sallittuja vai ei? 1.11.2018 Copyright 2017 Teemu Kerola 10

Tilarekisteri SR (9) 32 bittiä (kunkin arvo 0 tai 1) SR: GEL OZUM IS P D???????? D = Interrupts Disabled (kesk. estetty) P = Priviledged mode (etuoik. tila) S = SVC (supervisor call) palvelupyyntö I = device Interrupt (laitekeskeytys) M = forbidden Memory address U = Unknown instruction Z = divide by Zero O = arithmetic Overflow GEL = comparison indicators: Greater, Equal, Less 1.11.2018 Copyright 2017 Teemu Kerola 11

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 ) Keskustele 12

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

Keskeytysten käsittely Keskeyttää suoritussyklin, yllättävä aliohjelmakutsu 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 ja SR talteen, PC:lle ja SR: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.) interrupt handler 14

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 15

Keskeytyskäsittelijä Tärkeä osa käyttöjärjestelmää Ennen keskeytyskäsittelijään siirtymistä asetetaan suoritin etuoikeutettuun tilaan (supervisor state, (käyttöjärjestelmätilaan) kernel state) SR:n bitti P on päällä etuoikeutettu tila eli (P = Privileged) 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 (BASE ja LIMIT) ja suorittimen tila (bitti P) asetetaan ennalleen 16

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

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 ) 18

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 19

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 20

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

-- 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 (jossa reikänauha silmukassa) 22