SSD

SSD-levy () tai puolijohdelevy (myös "SSD-asema", "puolijohdeasema") 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 (niin kutsuttu 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 kuitenkin antavat yleensä paljon vähemmän vihiä kunnostaan. Raporttien mukaan ne saattavat pahimmillaan vain lopettaa toimintansa tai kadottaa dataa, toisin kuin perinteisistä kiintolevyistä yleensä huomaa, 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.
Vertailussa kiintolevyihin ei ole paljoa käytännössä todettuja tietoja pitkältä aikaväliltä, mutta tulokset viittaavat SSD-levyissä olevan merkittävästi vähemmän vikaantumisia neljännestä käyttövuodesta alkaen. SSD-levyt kuluttavat vähemmän energiaa kuin kiintolevyt käytön aikana, mutta SSD-levyn valmistus vaatii enemmän energiaa kuin kiintolevyn valmistus. Hinta gigatavua kohden on vielä vuonna 2022 kiintolevyn puolella.
Kehitys.
Vuonna 2007 kaupallisten SSD-muistien maksimikoko oli 32 gigatavua ja hinta noin 1 000 dollaria, ja parhaiden mallien luku- ja myös kirjoitusnopeus ohitti nopeimmat kiintolevyt. Keväällä 2008 markkinoille tuli useita merkkejä ja malleja suurilta valmistajilta, kuten Samsung, ja laitteen kapasiteetti kasvoi 128 gigatavuksi, ja myös laitteiden hinta alkoi laskea rajusti. Suuret kannettavien tietokoneiden valmistajat, kuten Dell ja Apple, tarjosivat kesällä 2008 SSD:tä optiona joihinkin uusiin kannettaviin tietokoneisiin.
Vuonna 2009 Micron Technology esitteli ensimmäisen SATA 3 -väylää hyödyntävän SSD-levyn. 
SSD-asemissa käytetään vaihtelevasti haihtuvaa RAM-muistia välimuistina suorituskyvyn parantamiseen.
Luontaisesti SSD-massamuisti on nopea lukemaan tietoa, suurimmat erot eri SSD-laitteiden välillä syntyvät tiedon kirjoitusnopeudessa.
Korkeampi suorituskyky on lisännyt kysyntää nopeammille liitäntätavoille, kuten Serial ATA, SAS, USB 3.0, M.2 ja U.2. Nopeimmat SSD-levyt ovat PCI Express tai NVM Express -väylään liitettäviä. Nopeudet voivat olla useita gigabittejä sekunnissa.
Muistitekniikka.
Uusien SSD-laitteiden tekniikka perustuu NAND-Flash:iin, joka mahdollistaa suuremman kirjoitusnopeuden kuin aiemmissa muistitikuissa ja muistikorteissa.
Eri tekniikoita kuvaamaan käytetyt termit:
SLC-tekniikassa on paras suorituskyky, kestävyys ja luotettavuus, mutta se on myös erittäin kallista valmistaa. Bittien lisääminen solua kohden hidastaa kirjoitusnopeutta, jonka merkitys kasvaa, kun kirjoitetaan kerralla enemmän kuin välimuistiin mahtuu.
MLC-soluja tarvitaan puolet vähemmän kuin kaksitilaisia, mutta noin puolet suurempi virheenkorjausbittien tarve vie osan saadusta hyödystä. 
TLC-tekniikka (Triple-level cell) tallettaa kolme bittiä solua kohden.
30. tammikuuta 2010 Intel-Micron Flash Technologies julkisti 25 nm:n valmistusprosessin MLC-NAND -muistille.
Uudelleenkirjoitusten määrää tekniikoittain:
Kirjoitusnopeuksia (ilman SLC-välimuistia): 
Muistisolujen elinikä.
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ä.
SSD-levyjen elinikää kuvataan useilla eri arvoilla: kapasiteetin säilyvyys eli vikaantuneiden muistisolujen määrä ei saa olla niin iso, että käyttäjä huomaa kapasiteetin pienentymisen; vikamäärä luettujen bittien määrään kohden (UBER); sekä tiedon säilyvyys, kun virta on kytketty pois päältä.
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.
Zoned Namespaces.
Zoned Namespaces ("alueelliset nimiavaruudet") on SSD-levyjen kanssa käytetty uudempi tapa jakaa toiminnallisuutta isäntäohjelmiston ja flash-pohjaisen SSD-levyn välillä. ZNS SSD jakaa kapasiteettinsa alueisiin ("zone"), jossa jokainen alue voidaan lukea, missä vain järjestyksessä, mutta on kirjoitettava sekventiaalisesti. Tämä tehostaa sisäistä tiedon sijoittamista ja sallii paremmat kirjoitusnopeudet. ZNS SSD-levyt toteuttavat NVMe-organisaation määrittämän käskykannan.