Trimmaa (ajokomento)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 10.5.2020 tarkistetusta versiosta . tarkastukset vaativat 19 muokkausta .

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] .

Syitä

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] .

Muut ratkaisut

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] .

Solid State Drive -asemien ominaisuudet

Tiedostojärjestelmätasolla _

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] .

Muistin fyysisellä tasolla

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 - ohjaintasolla

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] .

Tiimituki käyttöjärjestelmille ja asemille

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 .

Trim-tuki käyttöjärjestelmissä
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.

Muut menetelmät ja tapaukset

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] .

Muistiinpanot

  1. T13-asiakirjat, jotka viittaavat  trimmiin . INCITS T13 . INCITS. Haettu 8. heinäkuuta 2009. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  2. Shimpi, Anand Lal. SSD Anthology  4. AnandTech.com (18. maaliskuuta 2009) . Haettu 19. kesäkuuta 2010. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  3. 1 2 3 Shimpi, Anand Lal. (18.3.2009). s. kymmenen.
  4. Shimpi, Anand Lal. (18.3.2009). s. yksitoista.
  5. 1 2 3 4 Savill, John. Kuulin, että SSD-levyt kärsivät kirjoitussuorituskyvyn heikkenemisestä käytön aikana. Miksi?  (englanniksi) . WindowsITPro (21. huhtikuuta 2009). Haettu 19. kesäkuuta 2010. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  6. 1 2 Shimpi, Anand Lal. (18.3.2009). s. 7.
  7. 1 2 Shimpi, Anand Lal. (18.3.2009). s. 5.
  8. Shimpi, Anand Lal. (18.3.2009). s. kahdeksan.
  9. Kirjoitusvahvistus: Intel's Secret Sauce . Haettu 20. syyskuuta 2010. Arkistoitu alkuperäisestä 15. marraskuuta 2010.
  10. X25-M-ohjaimen sisällä: kulumisen tasoitus, kirjoitusvahvistuksen ohjaus
  11. 1 2 Shimpi, Anand Lal. (18.3.2009). s. 6.
  12. Liian leikattu? Kun SSD-tietojen palautus on  mahdotonta . TechGage . TechGage (5. maaliskuuta 2010). Haettu 16. huhtikuuta 2010. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  13. Gareth Halfacree. Intel julkaisu Trim for  RAID . bit-tech.net (23. maaliskuuta 2010). Haettu 2. marraskuuta 2010. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  14. Tuki ja kysymykset ja vastaukset solid-state-  asemille . MSDN (9. toukokuuta 2009). Haettu: 2010-08-12]. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  15. Windows 7 -parannukset Solid State  Drives -asemiin . Microsoftin lataukset . Microsoft Corporation (12. marraskuuta 2008). Haettu 8. heinäkuuta 2009. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  16. K. Mikä on SSD-levyjen Trim-toiminto ja miksi se on tärkeä?  (englanniksi)  (linkki ei ole käytettävissä) . Windows IT Pro. Haettu 1. syyskuuta 2010. Arkistoitu alkuperäisestä 2. tammikuuta 2010.
  17. Leikkaa Linuxissa  (englanniksi)  (downlink) . Ytimen aloittelijat. Haettu 1. syyskuuta 2010. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  18. SATA Trim -tuki OpenSolarisissa (29. heinäkuuta 2010). Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  19. SVN-versio 216796 (29. joulukuuta 2010). Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  20. SVN-versio 240868 (23. syyskuuta 2012). Arkistoitu alkuperäisestä 25. lokakuuta 2012.
  21. TRIM-klusterointi (downlink) (5. toukokuuta 2011). Arkistoitu alkuperäisestä 30. kesäkuuta 2012. 
  22. Daniel Eran Dilger. Applen MacBook Prot toimitetaan aktiivisella SSD TRIM - tuella Snow  Leopardissa . appleinsider.com (4. maaliskuuta 2011). Haettu 7. maaliskuuta 2011. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  23. Kuinka se toimii: TRIM . https://iguides.ru/ . Haettu 7. tammikuuta 2021. Arkistoitu alkuperäisestä 9. tammikuuta 2021.
  24. TRIM-tekniikka Android 4.3:ssa pitää sujuvan toiminnan  (venäjäksi)  ? . fullhub.ru . Haettu 7. tammikuuta 2021. Arkistoitu alkuperäisestä 10. tammikuuta 2021.
  25. Intel SSD Optimizer White Paper  (eng.) (pdf). Intel Corp. Käyttöpäivä: 23. tammikuuta 2010. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  26. wiper.exe Falcon-  sarjalle . XtremeSystems. Käyttöpäivä: 23. tammikuuta 2010. Arkistoitu alkuperäisestä 30. kesäkuuta 2012.
  27. Huomautus SCSI UNMAP - tuesta FreeBSD - postituslistassa . Arkistoitu alkuperäisestä 30. kesäkuuta 2012.

Linkit