Flash-levymuisti ja sen tiedostojärjestelmät



Samankaltaiset tiedostot
arvostelija OSDA ja UDDI palveluhakemistoina.

Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

MEMS-muisti relaatiotietokannoissa

Selainpelien pelimoottorit


TK Palvelinympäristö

Aika/Datum Month and year Kesäkuu 2012

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Puuhakemistoista flash-levyllä

Työasema- ja palvelinarkkitehtuurit IC Tallennusjärjestelmät. Tallennusjärjestelmät. 5 opintopistettä.

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Luento 2: Tiedostot ja tiedon varastointi

Päivitys käyttäen USB-tikkua

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan

TK Palvelinympäristö

Linuxissa uusi elämä 1

Dell Fluid Data TM solutions

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa

Oppimateriaalin kokoaminen ja paketointi

! #! %! & #!!!!! ()) +

Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely)

Varmuuskopiointi ja palauttaminen Käyttöopas

Tehtävä 2: Tietoliikenneprotokolla

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

LAS-TIEDOSTON SISÄLTÖ LIITE 2/1

Luonnontieteiden popularisointi ja sen ideologia

Varmuuskopiointi ja palauttaminen Käyttöopas

Älypuhelinverkkojen 5G. Otto Reinikainen & Hermanni Rautiainen

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Varmuuskopiointi ja palauttaminen Käyttöopas

TK Palvelinympäristö

Näin vaihdat ssd-levyyn

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta

Asetusvalikossa voidaan määrittää erilaisia tulostimen ominaisuuksia. Lisätietoja saat valitsemalla valikon vaihtoehdon:

Meidän visiomme......sinun tulevaisuutesi

Arkkitehtuurinen reflektio

Uudet ominaisuudet. Versio 2.10 BL F00

Nokia Drive 2.0 -käyttöohje

DVD-RAM-levyjen käyttö

Useasti Kysyttyä ja Vastattua

2.3 Voiman jakaminen komponentteihin

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Windows 8.1:n vaiheittainen päivitysopas

MultiBoot Käyttöopas

Yksityisautoilijoille ABAX AJOPÄIVÄKIRJA

Kopioi cd-levyt kiintolevylle, niin fyysiset levyt joutavat eläkkeelle.

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Useimmin kysytyt kysymykset

Lions Clubs International Piiri 107-C


1 Yksi gigatavu (1 Gt) tarkoittaa 10 9 = tavua ja yksi teratavu (1 Tt) tarkoittaa =

Ohjelmiston toteutussuunnitelma

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

VINKKEJÄ CV-NETIN KÄYTTÖÖN.

Asiakirjojen vertailu-kurssi

Työasema- ja palvelinarkkitehtuurit IC Nauha-asemat. 5 opintopistettä. Petri Nuutinen. 5 opintopistettä.

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

CUDA. Moniydinohjelmointi Mikko Honkonen

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Advanced Test Automation for Complex Software-Intensive Systems

Tietorakenteet ja algoritmit

Xerox WorkCentre 3655 Monitoimitulostin Ohjaustaulu

Käyttöohje e-travel Single View

Tietorakenteet ja algoritmit

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa

Ohjeita informaation saavutettavuuteen

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Järjestelmänvalvontaopas

Käyttöjärjestelmät: prosessit

SSD-tietoiset hakemistorakenteet

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

D B. Tiedostojen käsittely

PC-LAITTEEN TESTAAMINEN

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

Ohje: Tiedostot turvaan ja puhdas Ubuntu alle

Tutustuminen tuotantolinjastoon

SSD-levyt työasemakäytössä

Unix-perusteet. Varmistaminen, tiedon pakkaaminen ja tiivistäminen

LED -VALOT JA KORVAUSPOLTTIMOT

GPS Miten opin käyttämään? Mihin käytän?

TEHTÄVÄ 5: Microsoft Virtual PC asennus ja hallinta

MP3 Manager Software for Sony Network Walkman

DumpDbox-ohjelmiston asennus- ja käyttöohjeet Sisällys

Tietokantojen suunnittelu, relaatiokantojen perusteita

Transkriptio:

hyväksymispäivä arvosana arvostelija Flash-levymuisti ja sen tiedostojärjestelmät Mikko Kuusinen Helsinki 27.02.2009 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution Department Matemaattis-luonnontieteellinen tiedekunta Tekijä Författare Author Tietojenkäsittelytieteen laitos Mikko Kuusinen Työn nimi Arbetets titel Title Flash-levymuisti ja sen tiedostojärjestelmät Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Aika Datum Month and year 27.02.2009 Sivumäärä Sidoantal Number of pages 14 sivua Kirjallinen esitys Tiivistelmä Referat Abstract Esityksessä käydään läpi flash-muistin ominaisuudet, tutustutaan kilpaileviin ratkaisuihin ja vertaillaan näitä keskenään. Vertailtavina ovat flash-muistiin perustuva SSD-kiintolevy, perinteinen magneettilevyihin perustuva kiintolevy ja tulevaisuuden näkymänä MEMS pohjainen tallennusalusta. Vertailun jälkeen esitetään katsaus flash-muistin nykyisiin tiedostojärjestelmiin eli YAFFS2:een ja JFFS2:een. Näiden lyhyen esittelyn jälkeen paneudutaan kahteen uuteen ratkaisuun flash-muistin tiedostojärjestelmiksi. ACM Computing Classification System (CSS): C.3 [Special-Purpose And Application-Based Systems] D.4.3 [Operating Systems] Avainsanat Nyckelord Keywords Flash-muisti, tiedostojärjestelmä Säilytyspaikka Förvaringställe Where deposite Muuta

ii Sisältö 1 Johdanto 1 2 Flash-muisti ja sen suorituskyky 2 2.1 Ominaisuudet...2 2.2 Kilpailijat...3 3 Tiedostojärjestelmät 7 3.1 Nykyiset ratkaisut...7 3.2 Ydin-tiedostojärjestelmä...9 3.3 P-muisti-tiedostojärjestelmä...11 4 Yhteenveto 13 Lähteet 13

1 1 Johdanto Flash-levymuisti on tallennustilaa katoamattoman muistin tarpeeseen siinä missä perinteisempi kiintolevykin. Flash-muistilla ja kiintolevyllä on kuitenkin suuria teknisiä eroavaisuuksia, mikä onkin aluksi johtanut flash-muistia hieman eri käyttötarkoituksiin. Flash-muistin kehitys kuitenkin ajaa sitä yhä enemmän korvaamaan kiintolevyä massamuistin peruspilarina, vaikkakin se soveltuu myös pienemmän tilamäärän tarpeeseen, kuten kannettavien musiikki- ja videosoittimien kanssa on totuttu näkemään. Flashmuistin kehitys alkoi 80-luvulla ja nykyisin sen tallennustila vaihtelee 1 megatavun BIOS sirujen ja jopa 32 gigatavun muistikorttien välillä. Kuluttajille vasta viime vuosina hinnalta jokseenkin järkevälle tasolle laskeneet SSD (Solid-state Drive) -kiintolevyt ovat flash-muistin viimeisin aluevaltaus. Näissä kiintolevyissä käytetään flash-muistia perinteisin kiintolevyn pyörivien levyjen sijasta. Etuina SSD-levyissä on liikkumattomien osien puute, joka näkyy nopeampina hakuaikoina ja pienempänä virran kulutuksena. Siinä missä perinteisen kiintolevyn keskimääräisen hakuajan voidaan sanoa olevan noin 5,5 millisekuntia, niin SSD-kiintolevyn hakuaika on noin 85 mikrosekuntia. Virrankulutuksessa luvut ovat 7200 kierrosta pyörivällä perinteisellä kiintolevyllä noin 12,6 watin luokkaa, kun taas SSD versiolla päästään noin 2 wattiin. Pelkkien suorituslukujen valossa SSD-kiintolevy on siis huomattavasti parempi vaihtoehto, kuin perinteinen kiintolevy, mutta hinnaltaan se ei ole läheskään yhtä edullista. Vieläkin kuluttajille suhteellisen kalliit SSD-kiintolevyt maksavat noin 15e gigatavulta, verrattuna perinteisten kiintolevyjen huomattavasti edullisempaan hintaan 1e gigatavua kohti. Flash-muistin ja siten myös SSD-kiinotelvyjen etuna on vielä erittäin hyvä iskunkestävyys [Lev08, LiP06]. SSD-kiintolevyjen levyjärjestelmä on käytännössä nykyisin sama kuin perinteisten kiintolevyjen. Tämä ei kuitenkaan ole paras vaihtoehto, vaan yleisen käytön helppouden aiheuttama. Flash-muistin erilaisen rakenteen takia perinteiset levyjärjestelmät kuten FAT ja Ext2 eivät ole parhaita mahdollisia SDD-kiintolevyille. Tätä varten käytetään erityistä flash-muunnostasoa (flash translation layer), joka ohjaa päivitetyn tiedon paikan sivulta toiselle ja hallitsee tiedon nykyisen fyysisen sijainnin [LiP06]. Lim ja Park [LiP06] ja Park ja kumppanit [PLL08] ovatkin kehittäneet flash-kiintolevyille sopivia tiedostojärjestelmiä, jotka esittelen tarkemmin luvussa 3. Luvussa 2 käsittelen flash-

muistin yleisiä ominaisuuksia ja vertailen eri massamuistien etuja ja haittoja keskenään. Viimeinen luku eli luku 4 on yhteenveto. 2 2 Flash-muisti ja sen kilpailijat Esittelen luvussa flash-muistin ominaisuuksia ja vertailen näitä ominaisuuksia vanhemman tekniikan kiintolevyihin ja vasta tulossa oleviin MEMS (Micro-Electro-Mechanical Systems) järjestelmiin. 2.1 Ominaisuudet Flash-muistia on olemassa kahta erilaista typpiä NOR ja NAND. Näistä NOR tyypin flash-muisti tarjoaa nopeamman satunnaishaun, mutta on huomattavasti kalliimpaa ja tarjoaa merkittävästi vähemmän tallennustilaa kuin NAND. NOR tyypin flash-muistin käyttökohteina ovat muun muassa kannettavat puhelimet ja BIOS piirit. NAND on massamuisteihin huomattavasti paremmin soveltuvaa sen tarjoaman suuren tilanmäärän ja suurten kirjoitus- ja lukuoperaatioiden suhteellisen nopean toiminnan takia. Tästä eteenpäin tarkoitan flash-muistilla aina NAND tyypin muistia ellei toisin mainita. NAND tyyppinen flash-muisti jakautuu vielä yksi- (single-level cell) ja monitasoiseen (multilevel cell) tyyppeihin. Yksitasoinen tarkoittaa, että jokaiseen muistisoluun voidaan tallettaa binäärinen arvo eli kaksi eri tasoista sähkövarausta. Monitasoiseen tyyppiin voidaan tallettaa nykyisin kahdeksan erilaista arvoa vastaten kolmen bitin tallennustilaa. Yksitasoien tyyppi on näistä paremmin kuluttajakäyttöön sopiva, koska sen käyttöikä on pidempi ja se on nopeampaa [Lev08]. NAND tyypin flash-muistissa muistisirut ovat järjestetty lohkoihin ja jokainen lohko sisältää tietyn määränä sivuja, jotka ovat yksiköitä lukemiselle ja kirjoittamiselle. Sivun on edelleen jaettu tieto-osioon itse tietoa varten ja varaosioon tieto-osion tilan tallentamista varten. Nykyisin sivukoko on kasvanut 2 kilotavuun, mihin lisäksi kuuluu 64 tavun varaosio. Lohkon koko on 128 kilotavua. Flash-muistin ominaisuuksien takia tieto täytyy kirjoittaa uuteen paikkaan, kun tietoa muutetaan. Sivu johon muutettu tieto kirjoitetaan kutsutaan eläväksi sivuksi (live page) ja sivua, joka sisältää vanhan tiedon kutsutaan kuolleeksi sivuksi (dead page). Ajan kuluessa suuri osa flash-muistin sivuista koostuu kuolleista sivuista, jotka järjestelmän täytyy ottaa uudelleen käyttöön kirjoitta-

3 mista varten. Tätä varten on pyyhkimisoperaatio, joka antaa kuolleet sivut uudelleen käytettäväksi. Ikävänä puolena on, että pienin pyyhittävä yksikkö on lohko, mikä on huomattavasti suurempi kuin pienin kirjoitettava yksikkö eli sivu. Tämä aiheuttaa ylimääräistä kopiointia, sillä pyyhittäessä lohkoa joudutaan sen elävät sivut kopioimaan muualle. Koko pyyhintä ja kopiointi operaatioita kutsutaan roskienkeruuksi. Lohkon pyyhkiminen kestää noin 1-2 millisekuntia ja jokaista elävän sivun kopiointia kohden kuluu noin 200-300 mikrosekuntia. Vertailun vuoksi 4 kilotavun eli kahden sivun lukemiseen kuluu noin 25 mikrosekuntia. [Lev08, LiP06, PLL08]. Flash-muistin ominaisuuksista yksi on kuluminen aivan niin kuin muidenkin tallennusmuotojen kanssa. Tyypillinen luvattu kesto yhdelle lohkolle on miljoona kirjoitus- tai pyyhintä operaatioita. Kun soluja käytetään jatkuvasti uudelleen niiden kyky tallentaa ja säilyttää arvoja katoaa. Koska solujen elinikä on rajallinen täytyy flash-muistia käytettäessä huolehtia siitä, että soluja käytetään tasaisesti. Tämä tarkoittaa käytännössä sitä, että usein käytössä olevaa "kuumaa" tietoa yritetään kopioida mahdollisimman vähän. Tekniikkaa, joka huolehtii solujen tasapuolisesta käytöstä, kutsutaan kulutuksen tasaamiseksi (wear-leveling). Flash-muistit, kuten tyypillisesti myös perinteiset kiintolevyt ja siten myös SSD-kiintolevyt, esittävät itsensä tallennustilaltaan merkittävästi pienempinä käyttöjärjestelmälle. Täten ne voivat pitää varalla varalohkoja, jotka voidaan tarpeen tulla ottaa käyttöön. Näitä varalohkoja saatetaan käyttää myös ennalta pyyhittyinä lohkoina kirjoituksen nopeuttamiseksi. Useimmat flash-muistilaitteet ovat kykeneviä arvioimaan oman jäljellä olevan elinaikansa, mikä auttaa järjestelmää ennustamaan häiriöitä ja tekemään ennalta ehkäiseviä toimia [Lev08, PLL08]. 2.2 Kilpailijat Koska flash-muistissa ei ole liikkuvia osia lainkaan, on se huomattavasti nopeampi kuin perinteinen kiintolevy. Sama tietysti pätee SSD-kiintolevyihin, jotka koostuvat useista yhdessä toimivista flash-muisteista. Näiden kahden tallennusmahdollisuuden lisäksi on kehitteillä uuden tyyppinen MEMS (Micro-Electro-Mechanical Systems) pohjainen tallennus, jonka sanotaan täyttävän flash-muistin ja perinteisen kiintolevyn väliin jättämän aukon niin hinnan kuin nopeuden osalta. Ensin kerron selvitystä vasta kuluttajille tulevaisuudessa saapuvasta MEMS teknologiasta ja sen jälkeen vertailen kaikkia kolmea toteutusta keskenään..

4 MEMSin teknologia pohjautuu mikroskooppisen pieniin liikkuviin osiin. Komponenttien koko voi vaihdella yhdestä sataan mikrometriin, eli 0,001 ja 0.1 millimetrin välillä, ja koko MEMS laitteen läpimitta on yleensä 20 mikrometristä millimetriin. MEMS tallentajan (MEMStore) koko on kaikkiaan muutaman neliösentin, siis huomattavasti pienempi kuin esimerkiksi kiintolevyillä, ja sille mahtuu tietoa useita gigatavuja. Nykyisin MEMS laitteita käytetään muun muassa autojen ilmatyynyjärjestelmissä ja kehittyneissä projektiolaitteissa. Tallennusalustana MEMS koneistoa käytetään liikuttamaan tallennusmediaa ja lukemaan siitä ja kirjoittamaan siihen. MEMS tallentajassa on kolme pääkomponenttia: mediakelkka, liikuttajat ja luku- ja kirjoituspäät. Kuvassa 1. on osista selkeyttävä kaaviokuva. Tieto tallennetaan mediaan, jonka päällä kelkka sijaitsee. Nimitys kelkaksi tulee siitä, että se on vapaa liikkumaan kahteen suuntaan median päällä. Liikuttajat kiskovat kelkkaa kukin omaan suuntaansa ja tietoon päästään käsiksi useilla tuhansilla luku- ja kirjoituspäillä. Esimerkiksi kiintolevyyn nähden toteutus tuottaa useita etuja: tieto voidaan paikantaa huomattavasti nopeammin, koska koko, massa ja liikkeen etäisyys ovat kaikki merkittävästi pienempiä, ei tarvitse odottaa liikkuvien osien oikeaa kohtaa, kuten kiekkojen pyörimistä, ja kohdistus toimii kaksiulotteisesti [ScG04].

5 Jokainen kolmesta tallennusalustasta perinteinen kiintolevy, flash-muistia käyttävä SSD-kiintolevy ja MEMS teknologiaan perustuva MEMS tallentaja perustuvat hyvin erilaiseen teknologiaan ja jokaisella on omat yksilölliset ominaisuutensa. Flash-muisti perustuu transistoreihin, kiintolevyt magneettisiin levyihin ja MEMS mikroskooppisen pieniin osiin [YAE04]. Jokaisen suorituskyky riippuu tietysti teknisistä ominaisuuksista, mutta myös tiedostojärjestelmällä voi olla hyvinkin suuri merkitys. Nykyiset tiedostojärjestelmät on suunniteltu kiintolevyjen ominaisuuksia ajatellen, joten näiden järjestelmien käyttöönotto SSD-kiintolevyille ja MEMS tallentajille tuo niille altavastaajan asetelman. Kummallekin, sekä SSD-kiintolevyille että MEMS tallentajille, on kuitenkin suunnitteilla omia tiedostojärjestelmiä julkaisuissa, joten eri tallennusalustoja voidaan vertailla tulevaisuudessa tasapuolisesti näiden julkaisujen mahdollisten toteutusten perusteella. Seuraavat vertailuni perustuvat suurelta osin lähteiden arvioihin siitä mitä nykyisellä tekniikalla voidaan saavuttaa. Keskimääräinen hakuaika on arvio siitä kuinka kauan tiedon paikantamiseen tallennusalustalta kuluu. SSD-kiintolevy on tässä ylivoimaisessa asemassa alle sadan mikrosekunnin hakuajalla. MEMS tallentajien tapauksessa hakuaika arvioidaan alle yhteen millisekuntiin, mutta koska kuluttajille asti tuotetta ei vielä ole saatu on sen arvo vain suuntaa antava. Perinteinen kiintolevy tulee edellisiin nähden pahasti jäljessä useita millisekunteja kestävällä hakuajalla kuten kuvasta 2. näkyy. Virrankulutus on nykyään tärkeässä asemassa ja sen vaikutusta tallennusalustoja vertailtaessa ei voi väheksyä. Vertailussa virrankulutuksen arviot ovat arvoja, jotka saadaan kun laite on käytössä. Laitteen ollessa toimettomana saattavat arvot olla alhaisemmat. Tulevaisuuden ratkaisuna MEMS tallentaja vaikuttaa hyvin virtaa säästävältä, sillä on arvioitu, että yksi lukutai kirjoituspää tarvitsisi vain 1mW kun se on toiminnassa. Vaikka MEMS tallentajassa on tuhansia luku- ja kirjoituspäitä niistä voi todennäköisesti olla toiminnassa yhtä aikaa vain muutamasta sadasta muutamaan tuhanteen kappaletta, koska vaarana voi muuten olla ylikuumentuminen. SSD-kiintolevy käyttää noin 2W ja muita enemmän virtaa tarvitseva perinteinen kiintolevy yli 10W. Kuvassa 3. on alustojen keskinäinen vertailu keskimääräisestä virrankulutuksesta [HWB06, Lev08]. Tallennuskapasiteetin tarve kasvaa vuosi vuodelta, mutta onneksi kasvaa myös tallennusalustojen kapasiteetti. Perinteinen kiintolevy antaa nykyään jo kahden teratavun tallennustilan, eivätkä sen kilpailijat näytä olevan saamassa sitä kiinni. SSD-kiintolevy-

6 Keskimääräinen hakuaika Keskimääräinen virrankulutus 6000 14 5000 12 4000 3000 2000 Mikrosekuntia, µs 10 8 6 4 Wattia, W 1000 2 0 Kiintolevy SSD-kiintolevy MEMS tallentaja Kuva 2. 0 Kiintolevy SSD-kiintolevy MEMS tallentaja Kuva 3. jen koko vaihtelee muutamasta kymmenestä gigatavusta aivan uusimpiin 250 gigatavun ratkaisuihin. MEMS tallentajien kuluttajatuotteiden puutteessa joudun taas tyytymään arvioon, mutta usean kymmenen gigatavun ratkaisu on kuitenkin nykyteknologialla mahdollista saavuttaa. Tallennuskapasiteeteista on vertailu kuvassa 4. MEMS tallentajien hinnoista ei yhdessäkään julkaisussa ollut puhetta, joten se jää viimeisestä vertailutaulukosta pois ja taulukko koskeekin vain SSD-kiintolevyjä ja perinteisiä kiintolevyjä. SSD-kiintolevyjen hinta kohti yhtä gigabittiä kohden on noin kymmenkertainen verrattuna perinteiseen kiintolevyyn, kuten kuvasta 5. ilmenee. Maksimi tallennuskapasiteetti Hinta yhtä gigabittiä kohden 2500 16 2000 14 12 1500 10 1000 500 Gigatavua, Gt 8 6 4 Euroa/giga bitti 0 2 Kiintolevy SSD-kiintolevy MEMS tallentaja Kuva 4. 0 SSD-kiintolevy Kuva 5. Kiintolevy Kaikilla tallennusalustoilla on siis omat hyvät ja huonot puolensa, mutta erityisesti nousee esiin perinteisen kiintolevyn valtava tallennuskapasiteetti verrattuna muihin. Samaan hengenvetoon täytyy kuitenkin mainita sen heikohko energiatehokkuus. Tulevaisuudessa SSD-kiintolevyt tulevat varmasti pääsemään lähemmäs perinteisen kiintolevyn tallennuskapasiteettia ja kun näin tapahtuu saattavat SSD-kiintoelvyt korva-

7 ta perinteiset kiintolevyt kokonaan. Näen asian näin, koska SSD-kiintolevyt ovat muilta ominaisuuksiltaan ylivoimaisia perinteisiin kiintolevyihin verrattuna. Olen sitä mieltä, että SSD-kiintolevyjen hieman korkeampi hinta ei ole haitta ja hinta tulee kuitenkin laskemaan entisestään yhä lähemmäs perinteisen kiintolevyn hintatasoa. MEMS tallentajien kuluttajatuotteiden puute haittaa suuresti sen vertailua kahteen muuhun, mutta olen varma, että viiden vuoden kuluttua sekin alkaa jo olla kuluttajille tuttu. 3 Tiedostojärjestelmät Esittelen lyhyesti nykyiset tiedostojärjestelmät flash-levymuistille, miksi niitä käytetään ja kaksi aivan uutta ehdotusta korvaamaan vanhat järjestelmät. 3.1 Nykyiset ratkaisut Vaikka teknologia ja rautatason toteutus olisi kunnossa tarvitaan aina ohjelmisto, joka osaa käyttää koneistoa tehokkaasti. Flash-muistille, kuten muillekin massamuistilaitteille, eräs suorituskykyyn vaikuttava ohjelmisto on tiedostojärjestelmä. Perinteisiä tiedostojärjestelmiä ovat esimerkiksi niin FAT kuin Ext2. Ne ovat kuitenkin tarkoitettu levyä käyttäville massamuisteille, eivätkä siten sovellu suoraan flash-muistille. Tätä varten on kehitetty erityinen flash-muunnostaso tiedostojärjestelmän ja flash-muistin väliin, jota selventää kuva 6. Muunnostason käyttö rajoittaa kuitenkin suorituskykyä muun muassa metatiedon ja tiedon erityispiirteiden takia. Tiedostojärjestelmiä flashmuistille, sekä NOR että NAND tyyppisille, on kuitenkin jo suunniteltu ja suunnitellaan yhä lisää. Nykyisin käytössä olevia ovat esimerkiksi YAFFS 1 (Yet Another Flash File System), sen seuraaja YAFFS2 2, JFFS 3 (Journaling Flash File System) ja sen seuraaja JFFS2 4. Esittelen seuraavaksi lyhyesti JFFS2:n ja YAFFS2:n [LiP06, PLL08]. 1 http://www.yaffs.net/ 2 http://www.yaffs.net/ 3 http://developer.axis.com/old/software/jffs/ 4 http://sources.redhat.com/jffs2/

8 JFFS2 on lokipohjainen tiedostojärjestelmä. Tämä tarkoittaa, että kaikki päivitykset tietoon ja metatietoon kirjoitetaan peräkkäin lokitiedostoon. Tiedostojärjestelmän suunnittelussa ei kuitenkaan ole otettu huomioon erityisesti NAND tyyppisen muistin ominaisuuksia kuten vara-alueita ja luku- ja kirjoitusyksikköjä. Tämän takia suorituskyky on huono NAND muistin kanssa erityisesti ensilatausajassa (mount time) ja muistikuvan (RAM footprint) tilavaatimuksessa. Suoritettaessa kirjoitusoperaatio, JFFS2 luo uuden tietueen (node), mikä sisältää tunnustietueen (inode) ja tiedon, ja vastaavan tunnustietueen versionumeroa kasvatetaan yhdellä. Tämän takia JFFS2 täytyy skannata koko flash-muisti ensilatauksessa löytääkseen tietueen, missä on viimeisin versionumero. Lisäksi monet muistikuvat vaativat kaiken tietuetiedon säilyttämistä muistissa [LiP06, PLL08]. YAFFS2 suunnittelussa on jo alusta asti otettu huomioon NAND tyyppisen flash-muistin fyysiset ominaisuudet, joten oletusarvoisesti se on parempi tiedostojärjestelmä NAND muistille kuin JFFS2. Kuitenkin sillä on hyvin samantyyppisiä skaalautuvuusongelmia kuin JFFS2:lla. YAFFS2 tiedostojärjestelmässä jokainen sivu merkataan sivutunnisteella ja palanumerolla ("palan" tarkoittaessa yhtä kokonaista sivua). Sivutunniste ilmaisee tiedoston tunnustietueen numeron ja palanumero saadaan jakamalla tiedoston sijainti sivun koolla. Nämä arvot varastoidaan muistin vara-alueelle. Tämän takia käynnistysaika (boot time) on nopeampi kuin JFFS2:lla. Kuitenkin vaaditaan koko

9 muistin skannaus, jotta saadaan selville kuinka paljon flash-muistista on käytössä. Näiden puutteiden takia Lim ja Park [LiP06] sekä Park ja kumppanit [PLL08] ovat kehittäneet omat ratkaisunsa flash-muistin ja erityisesti NAND tyyppisen muistin tiedostojärjestelmiksi. Limin ja Parkin Ydin-tiedostojärjestelmä (Core Flash File System, CFFS) keskittyy parantamaan muistin käynnistysaikaa (boot time) ja roskienkeruuta. Parkin ja kumppaneiden P-muisti-tiedostojärjestelmä (PRAM Flash File System, PFFS) taas ottaa avuksi uudentyyppisen P-muistin (PRAM), jonka tarkoituksena on säilyttää metatieto P-muistissa ja muu tieto normaalisti NAND tyyppisellä muistilla. Seuraavissa aliluvuissa esittelen kyseiset tiedostojärjestelmät [LiP06, PLL08]. 3.2 Ydin-tiedostojärjestelmä Limin ja Parkin [LiP06] ydin-tiedostojärjestelmän määrittää erilaiset saantimallit metatiedon ja tiedon välillä ja tiedostojen käyttömallit tiedoston koon mukaan. Keskeinen tiedostojärjestelmän rakenne seuraa YAFFSin mallia. Tämä tarkoittaa, että jokainen tunnustietue varaa koko sivun ja jokainen tunnustietue sisältää sen attribuutit, kuten käyttäjä- ja ryhmätunnisteen. Näiden lisäksi jokainen tunnustietue tallentaa tiedostonsa nimen ja osoittajan tunnustietuevanhempaan. Tämä vähentää sivujen päivitystä, koska erillistä hakemistorakennetta ei tarvitse päivittää. Nopeaa hakemista varten kuitenkin luodaan hakemistorakenne käyttöjärjestelmän muistiin käynnistyksen aikana. Ydin-tiedostojärjestelmän tärkein ominaisuus on tietoindeksien kirjaukset tunnustietue rakenteessa. Koska yhdelle tunnustietueelle käytetään koko sivu, voidaan useita sisäänmenoindeksejä (indexing entries) varata osoittamaan tietoalueille. Esimerkiksi 512 tavun sivukoolla voi olla olemassa 64 kappaletta 4 tavun sisäänmenoindeksiä. Käyttämällä näitä sisäänmenoindeksejä ydin-tiedostojärjestelmä luokittelee tunnustietueet kahteen luokkaan: i-luokka1 (i-class1) ja i-luokka2 (i-class2). I-luokka1 säilyttää suoran indeksoinnin kaikkiin sisäänmenoindekseihin paitsi viimeiseen, johon on epäsuoraindeksi, ja i-luokka2 säilyttää epäsuoran indeksoinnin kaikkiin sisäänmenoindekseihin. Syy luokitteluun on suhde tiedoston koon ja käytön väillä. I-luokka1 on pienet ja usein kirjoitettavat tiedostot ja i-luokka2 suuret ja usein luettavat tiedostot. Sivun koon ollessa 2 kilotavua i-luokka1:n suurin tiedoston koko on 12 megatavua ja i-luokka2:n 960 megatavua. Limin ja Parkin mukaan suurin osa tiedostoista kuuluisi i-luokka1:een ja täten hukkasivujen määrä olisi pieni, sillä i-luokka2:een kuuluvien tiedostojen määrä olisi al-

10 hainen. Kun flash-muistijärjestelmä ladataan tarvitaan sen skannaus, jotta saadaan selville tiedostojärjestelmä ja tilankäyttö. Ydin-tiedostojärjestelmässä skannaus käsittää kaksi vaihetta. Ensiksi tarkistetaan ensimmäinen flash-muistin lohko, jos irrotuslippu on ylhäällä, eli flash-muisti on irrotettu tai otettu pois käytöstä oikein, on tieto lohkossa validi. Lipun ollessa päällä luodaan hajautustaulu lohkoista järjestelmän muistiin ja siirrytään vaiheeseen kaksi. Vaiheessa kaksi jokainen lohko jossa on tunnustietue käydään läpi ja katsotaan onko sivuilla validi tunnustietue vai ei. Jos tunnustietue on validi sille luodaan CRC tarkiste ja se lisätään järjestelmän muistissa sijaitsevaan hakemistokantaan. Jos irrotuslippu ei ollut ylhäällä täytyy jokainen lohko tarkistaa sisältääkö se tunnustietueita. Ydin-tiedostojärjestelmässä ei kuitenkaan tarvitse käydä läpi kuin jokaisen lohkon ensimmäisen sivun vara-alue ja Lim ja Park uskovat tämän olevan huomattavasti nopeampaa kuin muissa tiedostojärjestelmissä. Roskienkeruu perustuu Limin ja Parkin toteutuksessa, kuten muissakin kuumiin, eli tiedostoihin joilla on korkea päivitystodennäköisyys lähitulevaisuudessa, ja kylmiin tiedostoihin. Kuumia tiedostoja sisältävät sivut tulevat todennäköisemmin olemaan tulevaisuudessa kuolleita sivuja ja yleensä nimenomaan metatieto on paljon kuumempaa kuin tavallinen tieto. Ydin-tiedostojärjestelmä käyttää pseudo-kuuma-kylmä erottelua käyttämällä metatiedolle ja tiedolle eri lohkoja. Täten Limin ja Parkin mukaan roskien keruu on tehokasta. Roskienkeruu on erilaista riippuen sisältääkö pyyhitty lohko tunnustietueen vai tietoa; jos lohko sisälsi metatietoa kopioidaan se ennestään metatietoa sisältävään lohkoon, samoin tietoa sisältävän lohkon sisältö kopioidaan tietoa sisältävään lohkoon. Tämä johtaa siihen, että metatietoa sisältäviä lohkoja kopioidaan huomattavasti useammin niiden kuumuuden takia. Kulutuksen tasaamiseksi Lim ja Park antavat painoarvon lohkolle kun se on merkitty pyyhittäväksi. Painoarvon perusteella lohko annetaan seuraavaksi joko metatiedon tai tiedon käyttöön. Limin ja Parkin tekemissä suorituskykytesteissä he testaavat Ydin-tiedostojärjestelmää JFFS2 ja YAFFS kanssa. Skannaus- ja roskienkeruutesteissä Ydin-tiedostojärjestelmä selviää hyvin kahta muuta muuta vastaan, mutta sivukirjoitusten määrässä, erityisesti kun kyseessä on paljon isoja tiedostoja, se häviää YAFFSille. Oman mielipiteeni mukaan Ydin-tietojärjestelmä vaikuttaa hyvin lupaavalta ja Limin ja Parkin testien mukaan sen suorituskyky on hyvällä tasolla verrattuna nykyisiin ratkaisuihin. En näe mitään

11 syytä miksei tiedostojärjestelmää voisi nähdä tulevaisuudessa toiminnassakin. 3.3 P-muisti-tiedostojärjestelmä Parkin ja kumppaneiden [PLL08] P-muisti-tiedostojärjestelmä on osittain samojen henkilöiden suunnittelema kuin Ydin-tiedostojärjestelmäkin, mutta sen suunnittelussa on otettu suunta tulevaisuuteen. P-muisti-tiedostojärjestelmän erikoisuutena on sen käyttöön liittyvä P-muisti (Phase-change RAM, PRAM), joka on Parkin ja kumppaneiden mukaan tulevaisuudessa yleistyvä pysyvänmuistin tyyppi. Parkin ja kumppaneiden mukaan P-muistin kirjoitusnopeus on kolmenkymmenkertainen ja käyttöikä kymmenkertainen NAND tyypin muistiin verrattuna ja siitä on saatu jo tehtyä 512 megatavun suuruinen prototyyppi. P-muisti on otettu käyttöön, koska Park ja kumppanit uskovat sen ratkaisevan nykyisten tiedostojärjestelmien skaalautuvuusongelmat muun muassa latausajassa ja muistinkäytössä. Tarkoituksena on, että käyttöjärjestelmän muistin sijaan kaikki tietorakenteet tiedostoista ja hakemistoista, toisin sanoen metatieto, säilytetään P-muistissa. Tämän ansiosta latausaika ja muistinkäyttö kuuluvat P-muistitiedostojärjestelmässä luokkaan O(1). Metatiedon erottamisen NAND muistista P-muistiin tuo tiedostojärjestelmälle kaksi etua. Ensiksi metatiedon päivittämisen turhien sivujenkirjoitusten määrä vähenee. Näin siksi koska P-muisti-tiedsotojärjestelmä kirjoittaa metatietoa 2 tavun vievinä osina verrattuna esimerkiksi YAFFS2:een, mikä kirjoittaa metatietoa 512 tavun tai 2 kilotavun kokoisina osina. P-muistin käyttö siis vähentää Parkin ja kumppaneiden mukaan sivukirjoitusten määrää ja parantaa metatiedon päivitysten nopeutta. Toiseksi P-muistitiedostojärjestelmä tarjoaa kiinteän latausajan ja muistin käytön. Koska P-muistissa säilytetään hakemistorakenne, tiedostoattribuutit ja tietoindeksiosoittajat ei P-muistitiedostojärjestelmä skannaa NAND sivuja eikä vara-alueita laisinkaan. Lisäksi väliaikaisia tietoindeksejä eikä hakemistorakenteita tarvita järjestelmän muistissa. Parkin ja kumppaneiden mukaan tämä tarkoittaa sitä, että tiedostojärjestelmällä ei ole skaalautuvuusongelmaa latausajan eikä muistinkäytön suhteen. P-muistin käyttö tuo kuitenkin myös ongelmakohtia. Yksi näistä on P-muistin määrän tarve. Park ja kumppanit arvelevat, että P-muistia tarvittaisiin 1-2% NAND muistin määrästä kaikelle metatiedolle, joka tarkoittaa sitä, että neljän gigatavun tilaa kohti tarvittaisiin vähintään 40 megatavua P-muistia. Tämän takia P-muistissa säilytettäisiin

12 vain suorat indeksoinnit ja täten muistin tarve saataisiin 4 gigatavua kohden vain 8 megatavuun. Toinen ongelmakohta on P-muistin kuluminen. Koska metadata on yleensä kuumaa tietoa, niin P-muistin kuluminen on hyvin nopeaa, vaikka sillä olisikin kymmenkertainen elinikä verrattuna NAND muistiin. Tilannetta pahentaa entisestään roskienkeruu yleensä nimen omaan metatiedon sivuilta. Tätä varten Park ja kumppanit ovat kehittäneet erityisen menetelmän kulutuksen tasaamiseksi. Menetelmässä metatieto jaetaan 4 kilotavun osiin virtuaalisesti ja nämä osat voidaan sijoittaa fyysisesti minne tahansa P-muistissa. Osataulussa pidetään tietoa siitä missä mikin osa metatietoa fyysisesti sijaitsee. Lisäksi jokaisesta lohkosta pidetään yllä siihen kohdistuneiden kirjoitusten määrä. Jos kynnysarvo vanhimman lohkon ja uusimman lohkon välillä ylittää tietyn kirjoitusmäärän, vaihdetaan näiden kahden paikkoja. Näin saadaan Parkin ja kumppaneiden mukaan tasattua kulutusta lohkojen välillä, mutta lohkojen sisäistä kulumista sillä ei voida tasata. Koska P-muisti on vasta kehitteillä eivät Park ja kumppanit voineet suorittaa sillä suoraan testausta. Sen sijan he emuloivat vertailuissaan P-muistia erityisellä alustalla, joka heidän mukaansa on ominaisuuksiltaan hyvin P-muistia vastaava. Vertailu kohteena testeissä on YAFFS2, jolle P-muisti-tiedostojärjestelmä tuntuukin pärjäävän hyvin, sillä se ottaa selvän edun transaktioihin vievässä ajassa ja turhien sivukirjoitusten määrässä. Myös roskienkeruu sujuu P-muisti-tiedostojärjestelmältä YAFFS2:ta tehokkaammin. P- muisti-tiedostojärjestelmä, niin kuin myös Ydin-tiedostojärjestelmä, on kuitenkin hitaampia suurten tiedostojen kirjoituksessa. Mielestäni suurin kompastuskivi P-muistitiedostojärjestelmälle on sen suurin etu eli P-muisti: tarkkoja tietoja P-muistista ei ole saatavilla, se on vielä edelleen kehitteillä ja hintakin on täysin auki. Vaikka P-muistin käyttö lupaa suuria parannuksia flash-muistien tehokkuuteen on sen käyttöönotto vielä hyvin kaukana ja mikäli P-muisti ei ikinä päädy kuluttajakäyttöön, niin samalla hautautuu myös P-muisti-tiedostojärjestelmä.

13 4 Yhteenveto Flash-muistin käyttö on nykyään suorastaan trendikästä ja lähes jokaisella meistä on käytössä jokin laite, josta sitä löytyy. Flash-muisti on riittävän nopeaa, pienikokoista, ei liian kallista ja fyysistä kulutusta kestävää. Se on siis lähes ihanteellinen tallennusratkaisu nyky-yhteiskunnan tarvitsemaan mukana kulkevaan tallennustilaan niin musiikille, kuville kuin muulle multimedia sisällölle. SSD-kiintolevyjen yleistyessä ja halventuessa flash-muisti saattaa korvata myös suuremman tilantarpeen nykyisen ensimmäisen vaihtoehdon eli perinteiset kiintolevyt. Vertailussani SSD-kiintolevy oli selkeästi parempi ratkaisu kuin perinteinen kiintolevy ja MEMS teknologian ollessa tallennusalustana vielä hyvin varhaisessa vaiheessa, näyttää siltä, että SSD-kiintolevyt ovat varma ratkaisu myös tulevaisuuden tallennusalustaksi. Tällä hetkellä SSD-kiintolevyjen niin kuin kaiken flash-muistin suorituskykyä kuitenkin painaa tiedostojärjestelmän taakka, sillä nyt flash-muistia käyetään lähes poikkeuksetta muunnostason kautta.. Toteutuessaan Ydintiedostojärjestelmä olisi ehkä paras ratkaisu tähän ongelmaan. Se on suunniteltu alusta alkaen NAND tyypin flash-muistille ja sen käyttö antaisi flash-muisteille entistä vankemman aseman tallennusalustana. Lähteet HWB06 Lev08 LiP06 PLL08 B. Hong, F. Wang, A. Brandt, D. Long ja T. Schwarz. Using MEMS-Based Storage in Computer Systems MEMS Storage Architectures. Transanctions on Storage, 2(1):1 21. ACM, 2006. A. Leventhal. Flash Storage Memory. Communications of the ACM, 51(7):47 51. ACM, 2008. S. Lim ja K. Park. An Efficient NAND Flash File System for Flash Memory Storage. IEEE Transactions on Computers, 55(7):906 912. IEEE Computer Society, 2006. Y. Park, S. Lim, C. Lee ja K. Park. PFFS: Scalable Flash File System for the Hybrid Architecture of Phase-charge RAM and NAND Flash. In Proceedings of the 2008 ACM symposium on Applied computing (SAC'08). ACM, Fortaleza Ceará, Brazil, 2008, sivut 1498 1503.

14 ScG04 YAE04 S. Schlosser ja G. Ganger. MEMS-based storage devices and standard disk interfaces: A square peg in a round hole?. In Proceedings of the Third USENIX Conference of File and Storage Technologies (FAST'04). USENIX, San Francisco, CA, USA, 2004, sivut 87 100. H. Yu, D. Agrawal ja A. El Abbadi. MEMS based storage architecture for relational databases. The VLDB Journal, 16(2):251 268. Springer-Verlag, 2007.