Muistihierarkia Kiintolevyt I/O:n toteutus

Samankaltaiset tiedostot
Muistihierarkia Kiintolevyt I/O:n toteutus

Järjestelmän ulkoinen muisti I/O

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

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

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Luentokerta 5 Ohjelman toteutus järjestelmässä (prosessi, käyttöjärjestelmä) Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia Kiintolevyt I/O:n toteutus. Käännös, Linkitys Lataus

Tietokoneen toiminta Teemu Kerola, Copyright Muistihierarkia

Muistihierarkia. Virtuaalimuisti. Tiedostojärjestelmä. Levymuistin saantiaika. Tietokoneen toiminta Luento 9, Ulkoinen muisti ja I/O 1

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

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

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Jakso 8 Ohjelman suoritus järjestelmässä

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 8 Ohjelman suoritus järjestelmässä

Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

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

Luento 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä

1. Keskusyksikön rakenne

Luento 5 Suoritin ja väylä

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

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

Luento 5 Suoritin ja väylä

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

Ulkoinen muisti ja IIO:n toteutus

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

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 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 5 Suoritin ja väylä

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

Luento 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 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? 29/01/2001 Teemu Kerola, Copyright 2001

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

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

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

Tietokoneen toiminta, K Tavoitteet (4)

Osio 3: Siirräntä ja tiedostojärjestelmä

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

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

Aliohjelmien toteutus Suoritin ja väylä

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

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

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

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

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

Jakso 4 Aliohjelmien toteutus

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Jakso 8 Ohjelman toteutus järjestelmässä

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

Käyttöjärjestelmät II

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

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

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus

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

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

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

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

Luento 2: LAITTEISTOSTA

Tiedon tarkistus (4) Esimerkki ohjelmistotason tarkistusmerkistä (2) Tiedon muuttumattomuus (2)

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

Luento 4 Aliohjelmien toteutus

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

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

Jakso 4 Aliohjelmien toteutus

Transkriptio:

Luento 9 (verkkoluento 9) Järjestelmän ulkoinen muisti I/O Muistihierarkia Kiintolevyt I/O:n toteutus 1

Muistihierarkia Fig 4.1 [Sta16] Ulkoinen muisti (levymuisti) on halvempaa toteuttaa per tavu Ulkoinen muisti on paljon hitaampaa kuin sisäinen muisti Aika/tila optimointi suuret tietomäärät täytyy (kannattaa) kustannussyistä pitää ulkoisessa muistissa pienet tietomäärät täytyy (kannattaa) tehokkuussyistä pitää sisäisessä muistissa Kaiken viitatun tiedon tulee suoritusaikana olla sisäisessä muistissa tai vielä lähempänä suoritinta! Suoritin ei voi odottaa viitattua tietoa kovin kauan aikaa 2

Osa muistihierarkiaa Vastaus ongelmaan Virtuaalimuisti Kuinka muisti, joka on yhtä suuri kuin levymuisti (tai SSD) ja yhtä nopea kuin keskusmuisti? Kaksitasoinen: Keskusmuistissa on kulloinkin käytössä olevat alueet Levyllä on kaikki tiedot Kopiointi tarvittaessa Sivunpuutoskeskeytys (viitattu tieto ei ole keskusmuistissa) muisti väylä ohjain levy 3

Virtuaalimuistin toteutus Toteutustavat kanta- ja rajarekisterit sivutus, (segmentointi ja sivuttava segmentointi) Pääosa toteutuksesta KJ:n ohjelmistotasolla Osoitteenmuunnos: virtuaaliosoite fyysinen muistiosoite Hidas operaatio, usea konekäsky, muistiviitteitä? Tietojen kopiointi: keskusmuisti levy Muistitilan hallinta Laitteistotuki MMU muistinhallintayksikkö Osoitteenmuutospuskurista (TLB) löytyy viimeksi tehdyt osoitteenmuutokset (vrt. välimuisti) Fyysistä osoitetta ei tarvitse laskea usealla konekäskyllä, jos se löytyy TLB:stä Lisää tietoa? Tieto- Käyttökoneen järjesrakenne telmät 4

Tiedostojärjestelmä KJ:n osa, hallitsee kaikkia tiedostoja Valvoo oikeuksia tiedostoa avattaessa Muuntaa tiedostonimet fyysisiksi osoitteiksi read write execute Ylläpitää (vain KJ:n käytössä olevia) taulukoita, joista näkee mitä kohtaa mistäkin tiedostosta kukin prosessi on käsittelemässä Tiedostojärjestelmä lukee ja kirjoittaa tiedostoja suurina kerralla käsiteltävinä lohkoina (0.5-8 KB?) käyttäjätason prosessit käsittelevät tiedostoja tavuittain, eikä niiden tarvitse tietää tiedoston todellista fyysistä rakennetta (KJ:n laiteajuri huolehtii siitä) 5

Tiedoston talletus levylle Tiedosto koostuu useista lohkoista lohko = 1 tai usea levyn sektori Levyn hakemisto tiedoston lohkot luetaan lohkot annetussa järjestyksessä hakemisto alkio FileA (unix) indeksi lohko lohko lohko lohko Pienin alue, jota voi lukea/kirjoittaa levyllä lohko 6

Levyn käyttö Virtuaalimuistin tukimuistina Tiedostojen talletukseen page page page page sivu (tdsto) Muisti page page page page sivu (data) Väylä Levy VM tukimuisti sivu sivu sivu sivu sivu sivu sivu sivu Tiedostot lohko lohko lohko lohko 7

Levymuistin saantiaika Tiedon (lohkon) osoite: levypinta + ura + sektori laiteajuri etsii KJ-taulukoista loogisen osoitteen perusteella Fig 6.2 [Sta16] Saantiaika Hakuaika + pyör.viive + tiedon siirto Keskustele 8

SSD Solid State Disk SSD ja NVMe Nykyään yleensä Flash-muistipiiri Yleensä: Käyttöjärjestelmä (KJ) näkee kovalevynä NVMe: KJ näkee Flash-muistina Nopeampi, osaa hyödyntää Flash in samanaikaisuutta Lohkot ja sivut Tiedostot (esim.) 4 KB sivuina (vrt. kovalevy) Luku ja kirjoitus (esim.) 512 KB lohkoina Koko lohko pitää tyhjentää ennen kirjoitusta Kirjoitus ehkä uuteen lohkoon Kullakin lohkolla raja kirjoituksille (esim. 100000) Ylimääräisiä lohkoja piirillä Non-Volatile Memory Express (NVMe, NVM Express) 9

Laiteohjain (I/O Moduuli) Muisti väylä suoritin käyttäjäprosessi laiteajuri KJ prosessi (tai aliohjelma?) laite data c/s laiteohjain laiteohjainprosessi (device controller, device controller process) laite Ks. Fig 7.3 [Sta16] 10

cpu mem [Sta16] 11

I/O:n toteutus konekäskyillä (i): Laiteohjaimen rekistereihin (muistiin) viittaaminen I/O konekäskyillä I/O laitteille on omat konekäskynsä Käskyssä annetaan laiteohjaimen identifikaatio ja laiterekisterin nro (oma I/O osoiteavaruus) Vaikea laajentaa käyttöä uusiin laitteisiin, joilla laiterekisterit voivat olla hyvinkin erilaisia Suorittimen konekäskyjä ei voi muuttaa x86: IN, OUT INS, OUTS Ttk-91: IN, OUT 12

I/O:n toteutus konekäskyillä (ii): Laiteohjaimen rekistereihin (muistiin) viittaaminen muistin luku/kirjoitus käskyillä Muistiinkuvattu I/O, memory-mapped I/O Laiteajuri lukee/kirjoittaa laiteohjaimella olevia rekistereitä (data, status/kontrolli) tavallisilla muistin luku/kirjoitus käskyillä load R1,=DiskRd ei tarvita erillisiä I/O-konekäskyjä! store R2, DiskCtr laiteohjaimella olevat laiterekisterit ovat samanlaista viitattavaa muistia kuin normaali muisti muistiosoitteen ensimmäiset bitit (ei siis käskykoodi) valitsevat, mille laitteelle (vai tavallisen muistiin) viittaus kohdistuu DiskCtr EQU 0x80000001 Osa muistiavaruudesta on varattu I/O-laitteille! 13

I/O tyypit Suora I/O Laiteajuri koko ajan aktiivinen Laiteajuri odottaa busy-wait loopissa laiteohjainta Epäsuora I/O Laiteohjain osaa tehdä I/O-laitekeskeytyksiä Laiteajuri odottaa odotustilassa laiteohjainta DMA I/O Programmed I/O Direct I/O dev mem Indirect I/O, Interrupt driven I/O Direct Memory Access I/O Laiteohjain osaa myös viitata keskusmuistiin Tieto kulkee väylän läpi vain yhden kerran Laiteohjaimelle annettavat tehtävät isompia Laiteajuri odottaa odotustilassa laiteohjainta ctlr cpu 14

Suora I/O Epäsuora I/O DMA I/O busy wait Device driver (laiteajuri) Input of a Block of data Fig 7.4 [Stal16] Direct I/O Keskustele 15

Esimerkki: kirjoittimen laiteajuri ttk-91 koneelle Laitteella voi tulostaa kokonaislukuja yksi kerrallaan Muistiinkuvattu I/O, suora I/O Laiteportti kontrollirekisteri muistipaikka 1048576 = 0x80000 tilarekisteri muistipaikka 1048577 = 0x80001 datarekisteri muistipaikka 1048578 = 0x80002 Laiteajuri Print toimii etuoikeutetussa tilassa Voi viitata portin rekistereihin Kutsu: PUSH SP, =0 ; space for return value PUSH SP, X ; parameter to print SVC SP, =Print ; returns Success/Failure POP SP, R1 JNZER R1, TakeCareOfTrouble 16

Esim: laiteajurin toteutus (12) ptrctr DC 1048576 ; control register address ptrstat DC 1048577 ; status register address ptrdata DC 1048578 ; data register address retval EQU -3 Print PUSHR SP ;save regs pardata EQU -2 LOAD R1, pardata(fp) Oleta: SVC:n ja IRET:n toteutus samalla tavalla kuin CALL ja EXIT Solution with no timeout STORE R1, @ptrdata ; data to print LOAD R1, =0 STORE R1, @ptrstat ; init (clear) state register LOAD R1, =1 STORE R1, @ptrctr ; give command to print ptrctl ptrstat ptrdata 1 01 200 See: driver.k91 Wait LOAD R1, @PtrStat ; check state register JNZER R1, Done JUMP Wait ; wait until I/O done Done LOAD R1, =0 ; return Success STORE R1, retval(fp) POPR SP ; recover regs IRET SP, =1 http://www.cs.helsinki.fi/group/nodes/kurssit/tito/esimerkit/driver.k91 Keskustele 17

-- Luennon loppu -- Ferriittirengas (core) teknologia 1952, Jay Forrester & Bob Everett, MIT (Whirlwind) tieto säilyy ilman virtaa ei häiriinny säteilystä (avaruus, sotilasteknologia) 1955, valtaa markkinat Williams Tube lta Käytössä vielä 1970-luvulla, nyt vain nimi jäljellä 18