Trim ( eng. to trim - trim) - ATA -rajapinnan komento , jonka avulla käyttöjärjestelmä voi ilmoittaa solid-state-asemalle , mitkä tietolohkot ( sivut ) eivät sisällä hyötykuormaa eikä niitä voida tallentaa fyysisesti.
Trim on osa ATA -liitäntäspesifikaatiota , jota INCITS -ryhmä T13 standardoi [1] .
Komento otettiin käyttöön pian SSD- asemien (SSD) syntymisen jälkeen, jotta niistä tulisi kilpailukykyinen vaihtoehto perinteisille kiintolevyille henkilökohtaisissa tietokoneissa.
Koska sisäisesti toimintojen toteuttaminen SSD-levyllä on hyvin erilaista kuin samojen toimintojen toteuttaminen perinteisillä mekaanisilla kiintolevyillä, tavanomaiset käyttöjärjestelmien menetelmät toimintoihin, kuten tiedostojen poistamiseen ja levyn alustamiseen (koskematta suoraan kyseisiin sektoreihin/ aseman sivut) johtavat SSD-levyn kirjoitustoimintojen asteittaiseen heikkenemiseen [2] .
Trimin käyttö mahdollistaa SSD:n vähentämisen roskien keräämisen vaikutuksesta , mikä muuten johtaisi kirjoitustoimintojen suorituskyvyn heikkenemiseen kyseisille sektoreille [3] .
Vaikka apuohjelmat joidenkin asemien "palauttamiseksi" alkuperäiseen tilaan olivat saatavilla jo ennen Trimin tuloa, ne muun muassa poistivat kaikki aseman tiedot, mikä teki niistä käytännössä käyttökelvottomia optimointia varten [4] .
Tiedostojärjestelmissä yleisesti käytettyjen poistomenetelmien erityispiirteiden vuoksi asemat eivät tiedä, mitkä sektorit/sivut ovat todellisuudessa käytössä ja mitkä voidaan katsoa käyttämättömäksi.
Poistotoiminnot rajoittuvat yleensä tietolohkojen merkitsemiseen "käyttämättömiksi" tiedostojärjestelmässä [5] [6] . Toisin kuin esimerkiksi ylikirjoitusoperaatio, poistaminen ei johda fyysiseen kirjoitukseen tietoja sisältäviin sektoreihin. Koska asemalla ei ole pääsyä tiedostojärjestelmän rakenteisiin - kuten käyttämättömien klustereiden luetteloon - asema jää epäselväksi lohkojen vapauttamisesta.
Vaikka tämä usein mahdollisti poistettujen tietojen palauttamisen perinteisiltä kiintolevyiltä , vaikka käyttöjärjestelmä merkitsi ne "poistetuiksi", se merkitsi myös sitä, että kun käyttöjärjestelmä myöhemmin suoritti kirjoitustoiminnon johonkin vapaaksi katsotuista sektoreista, tätä toimintoa pidettäisiin päällekirjoitustoiminnona taajuusmuuttajan näkökulmasta. Perinteisillä kiintolevyillä tämä toiminto ei eroa kirjoittamisesta vapaalle sektorille, SSD:llä kulumistasauksen vuoksi tietojen päällekirjoitus eroaa merkittävästi tyhjään sektoriin kirjoittamisesta (jokainen samaan loogiseen sektoriin kirjoittaminen tehdään eri fyysiseen sektoriin sektorit), mikä saattaa heikentää suorituskykyä edelleen kirjoitusoperaatioissa [6] .
SSD-levyt tallentavat tiedot flash-muistisoluihin ryhmiteltyinä ( MLC SSD:ssä) "sivuiksi" (yleensä 4 kt kukin), jotka puolestaan ryhmitellään lohkoiksi (yleensä 128 sivua tai 512 kt yhteensä) [5] [7 ] .
NAND-flashkennoille voidaan kirjoittaa suoraan vain, jos ne ovat tyhjiä. Siinä tapauksessa, että ne tallentavat tietoja, solujen sisältö on tyhjennettävä ennen kuin niihin kirjoitetaan uutta tietoa. SSD-asemissa kirjoitustoiminto voidaan tehdä vain sivuille, mutta laitteistorajoituksista johtuen poistokomento suoritetaan aina koko lohkolle [7] . Tämän seurauksena SSD-levylle kirjoittaminen on erittäin nopeaa niin kauan kuin tyhjiä sivuja on, mutta hidastuu huomattavasti, jos valmiiksi kirjoitetut sivut on tyhjennettävä.
Koska sivun solut on tyhjennettävä ennen kuin niihin voidaan kirjoittaa uudelleen, mutta vain koko lohko voidaan tyhjentää, uudelleenkirjoitusprosessi käynnistää luku-tyhjennä-muokkaa-kirjoitussyklin [5] [8] : koko lohko on säilytettävä välimuistissa ennen kuin se voidaan poistaa asemasta, päällekirjoitettuja tietoja muokataan välimuistissa ja vasta sitten koko lohko (päivitetyllä sivulla) kirjoitetaan asemaan. Tämä ilmiö tunnetaan kirjoitusvahvistuksena[9] [10] .
SSD-ohjaimissaan valmistajat käyttävät erilaisia tekniikoita jakaakseen kirjoitustoiminnot optimaalisesti kaikkialle flash-asemaan [5] [11] . Tämä ei ole tehty vain nopeuden optimoimiseksi minimoimalla kirjoitusvahvistusta, vaan myös salamakennojen käyttöiän pidentämiseksi ( ) , perinteiset MLC -salamakennot kestävät 3000-5000 kirjoitusjaksoa [11] . Toinen tapa on käyttää ylimääräistä (varmuuskopio)muistia, jota ei ole ilmoitettu käyttöjärjestelmälle tai edes BIOS :lle, jotta saadaan puhtaita sivuja kirjoitustoimintoja varten mahdollisimman pitkään ennen kuin aloitetaan muiden sivujen korvaaminen [3] .
Näiden menetelmien tehokkuus riippuu suurelta osin käyttöjärjestelmän ja SSD-ohjaimen välisestä tiedonvaihdosta siitä, mitkä sivut voidaan katsoa varattuiksi ja mitkä sivut vapaaksi. Perinteisesti useimmat käyttöjärjestelmät eivät ilmoita asemille poistetuista sektoreista/sivuista, mikä ei salli SSD-ohjainten varata vapaata tilaa optimaalisesti. Trim-komento otettiin käyttöön korjaamaan tämä poistamalla käyttämättömät solut ennen kuin niihin kirjoitetaan, mikä lyhentää käyttöaikaa [3] .
Koska komento poistaa solujen tiedot kokonaan, niistä ei yleensä ole mahdollista palauttaa tietoja [12] .
Trim ei aina ole tuettu RAID - taulukoissa [13] .
Vanhemmat SSD-levyt, jotka on valmistettu ennen Trim-komennon lisäämistä ATA-standardiin, vaativat laiteohjelmistopäivityksen tai komento ohitetaan. Kaikki käyttöjärjestelmät eivät myöskään tue Trim-komentoa .
Käyttöjärjestelmä | Tuki |
---|---|
Windows 8 ja uudemmat | Tuettu lopullisesta julkaisusta lähtien (lokakuu 2012) |
Windows Server 2012 | Tuettu lopullisesta julkaisusta lähtien (lokakuu 2012) |
Windows 7 | Tuettu lopullisesta julkaisusta lähtien (lokakuu 2009) [14] |
Windows Server 2008 R2 | Tuettu lopullisesta julkaisusta lähtien (lokakuu 2009) [15] [16] |
Linux 2.6.33 | Tuettu helmikuusta 2010 lähtien [17] , ioctl BLKDISCARD |
OpenSolaris | Tuettu heinäkuusta 2010 lähtien [18] |
FreeBSD 8.3, 9.2, 10.0 | Tuettu UFS :llä [19] , tuettu ZFS :llä [20] [21] . |
Mac-käyttöjärjestelmän kymmenes versio | Tuettu (versiosta 10.10.4 lähtien kaikille SSD-levyille, ennen sitä vain Applen toimittamia SSD-levyjä [22] ) |
Android | Versiosta 4.3 alkaen järjestelmään lisättiin tuki fstrim-toiminnolle, joka on Trimin analogi [23] [24] |
ubuntu | Tuettu Ubuntun versiosta 14.04 lähtien. |
Joissakin tapauksissa, kun käyttöjärjestelmä ei tue Trim-toimintoa, on apuohjelmia , joiden avulla voit lähettää tämän komennon "manuaalisesti". Tyypillisesti tällaiset ohjelmat laativat käyttöjärjestelmän työkalujen avulla luettelon vapaista lohkoista ja siirtävät sen asemaan Trim-komentosarjan muodossa. Tällaisia tuotteita on sekä yleiskäyttöisten apuohjelmien muodossa ( hdparm- versio 9.17 ja uudemmat) että ohjelmistojen muodossa yksittäisille asemille (Intel [25] , G.Skill [26] ).
Trim-komennon SCSI -analogi on Unmap- ja Write- komennot [27] .
Solid State Drive -asemat (SSD) | |||||
---|---|---|---|---|---|
Keskeinen terminologia |
| ||||
Flash-asemien valmistajat | |||||
Ohjaimet |
| ||||
SSD-levyjen valmistajat | Luettelo SSD-levyjen valmistajista | ||||
Liitännät | |||||
Asiaan liittyvät organisaatiot |
|