SSD

SSD-levy (engl. Solid-state drive) tai puolijohdelevy on tietokoneen massamuisti, jossa ei ole liikkuvia osia ja jossa tieto säilyy laitteen ollessa virrattomana. Tiedon säilytykseen käytetään useimmiten flash-muistia (nk. haihtumaton muisti). SSD-levy sisältää flash-muistin lisäksi levyohjaimen ja se liitetään tietokoneeseen useimmiten samalla tavalla kuin kiintolevykin.

Edut ja ongelma-alueet

SSD:ssä on monia etuja perinteiseen kiintolevyyn verrattuna: lyhyempi hakuaika, nopeampi tiedonsiirto, vähäisempi virrankulutus ja lämmöntuotto sekä äänettömyys. SSD on myös kiintolevyä kevyempi ja, koska siinä ei ole liikkuvia osia, se kestää paremmin ääriolosuhteita, kuten korkeita lämpötiloja, mekaanista rasitusta, tärinää ja iskuja. 
Varjopuolena SSD-levyillä on korkea hinta suhteessa tallennuskapasiteettiin. SSD myös kuluu käytössä, koska sen muistipaikoilla on rajallinen uudelleenkirjoituskertojen määrä. Tämä kuitenkaan ei ole käytännössä osoittautunut ongelmaksi. SSD-levyt antavat paljon vähemmän vihiä kunnostaan. Raporttien mukaan ne saattavat pahimmillaan vain lopettaa toimintansa tai kadottaa dataa, toisin kuin perinteisistä kiintolevyistä huomaa usein kun ne alkavat hajota.
Eheyttäminen suositellaan kytkettäväksi pois käytöstä SSD-levyn yhteydessä, koska se voi aiheuttaa tarpeetonta levylle kirjoittamista. Fragmentaation vaikutuksesta SSD-levylle on harhakäsityksiä: käytännössä liiallinen fragmentaatio voi estää (aiheuttaa virheitä) kun yritetään kirjoittaa/laajentaa tiedostoa ja useaan osiin jakautuminen vaatii lisää metadatan tallentamista hidastaen toimintaa.
Salattavan tiedon ylikirjoittaminen ei ole mahdollista koska kirjoituskertojen tasaaminen voi sijoittaa uuden kirjoituksen eri sijaintiin levylle: salausohjelmiston käyttö helpottaa tietojen suojaamista.

Muistisolujen tasainen kulutus

Flash-tekniikan eräs ongelma on muistisolujen rajallinen elinikä: kukin muistisolu voidaan uudelleenkirjoittaa vain rajallisen monta kertaa ennen kuin solu muuttuu käyttökelvottomaksi. Tiedon lukeminen sen sijaan ei kuluta soluja.
SSD:n sisäinen ohjain estää yksittäisen solun kulumista kirjoittamalla usein muuttuvan tiedon aina uuteen paikkaan ja pitämällä tarkistuskirjanpitoa (virheenkorjauskoodia eli ECC-bittejä) virheellisiksi muuttuneista tiedoista. Jokainen SSD-levy sisältää käyttäjälle näkymättömän varaston ylimääräisiä soluja. Tuhoutunut solu merkitään rikkinäiseksi ja tilalle otetaan käyttöön yksi näistä varasoluista.
Eri valmistajien välillä on suuriakin eroja sen suhteen kuinka SSD-levy sisäisesti järjestelee tietoa. Levyn ulkopuolelle tieto näytetään aina yhtenäisenä.

Osioiden kohdistus

Osioiden kohdistus (partition alignment), siten että tiedostojärjestelmän ja SSD:n varausyksiköt osuvat kohdilleen, on tärkeää levyn suorituskyvyn ja kunnon ylläpitämisessä. Mikäli ne osuvat limittäin, joutuu SSD-levy yhtä tiedostojärjestelmän varausyksikköä muutettaessa kirjoittamaan uudelleen kaksi omaa yksikköään. Tämä luonnollisesti hidastaa levyn toimintaa. Käyttöjärjestelmän asennusohjelman tehtävä on asettaa osiot alkamaan ja loppumaan oikeista kohdista.

TRIM-komento ja ylikirjoitusongelma

Tuki TRIM-komennolle vähentää ylimääräistä SSD-levylle kirjoitusta muistisolujen tarpeettoman kulumisen estämiseksi.
Perinteisillä kiintolevyillä kullekin sektorille voi kohdistaa kaksi komentoa: lue ja kirjoita. SSD-levyillä komentoja on kolme: lue, pyyhi ja kirjoita. Tiedoston päälle ei voi kirjoittaa uutta tietoa ennen kuin vanha sisältö on ensin pyyhitty.
Muistisolut SSD-levyllä on jaettu blokkeihin jotka on edelleen jaettu sivuihin. Blokin koko on tyypillisesti 512 kilotavua, jokainen sivu neljä kilotavua. Kerralla voidaan lukea tai kirjoittaa yksi sivu, mutta pyyhintä pitää tehdä koko blokki kerrallaan. Ongelma syntyy siitä, että SSD-levy ei voi tietää, mitkä sivut ovat todella käytössä, koska tiedostojärjestelmällä ei ole suoraa yhteyttä levyyn. TRIM-komento korjaa tätä ongelmaa.
Yhdenkin bitin muuttaminen edellyttää koko 512 kilotavun blokin lukemista levyn sisäiseen välimuistiin, välimuistissa olevan kopion muokkausta, blokin pyyhintää ja 512 kilotavun kirjoittamista.
Kun tiedosto käyttäjän näkökulmasta poistetaan, sitä ei normaalisti poisteta, vaan se poistetaan sisällysluettelosta ja tiedoston käyttämät bitit levyllä merkitään vapaaksi uuteen käyttöön. Tällöin SSD-levy ei voi tietää, mitkä sivut levyllä ovat todella käytössä ja mitkä ovat näennäisesti käytössä mutta kuuluvat poistetuille tiedostoille. Tuloksena on tarpeettomia lue–muokkaa–pyyhi–kirjoita-kierroksia. Tämä hidastaa ja kuluttaa levyä. TRIM-komennon avulla käyttöjärjestelmä voi kertoa levylle, mitkä sivut voi vapauttaa käyttöön.
Windows 7 ja uudemmat versiot sisältävät TRIM-komennon tuen. Linuxin ydin sisältää tuen versiosta 2.6.33 alkaen; komento välitetään perille mikäli käytössä on ext4-tiedostojärjestelmä ”discard”-valinnalla.
TRIM-komentoa ei sen alkuperäisessä määritelmässä voinut suorittaa asynkronisesti, mikä tarkoitti ettei sitä voinut asettaa jonoon levylle kohdistettujen muiden toimintojen kanssa. Jono täytyi tyhjentää ensin, mikä rajoitti suorituskykyä. Uudemmassa SATA 3.1 -standardissa tätä ongelmaa ei ole: TRIM-komento voidaan lisätä muiden komentojen sekaan.
Jotkut SSD-levyt tulevat toimeen myös kokonaan ilman TRIM:iä, mikäli niillä on paljon "yliprovisiota", toisin sanoen ylimääräistä piilotilaa.