TRIM (SSD)

A TRIM szócskáról valószínűleg már majdnem minden SSD iránt érdeklődő hallott. A TRIM elvileg egy szabványos SATA utasítás, ami jelzi a vezérlő felé, hogy az adott adat valóban törölhető. Ha az SSD vezérlője tudja, hogy az adat törölhető, akkor felszabadíthatja a TRIM nélkül csak felülírhatóként megjelölt területeket, ennek következtében pedig az új SSD sebességével folytatódhat az írás. Hiszen mi is történik? Letöröljük egy 4 kB-os lap tartalmát. TRIM nélkül az előzőekben taglalt módon ez valójában nem törlődik, csak felülírhatóvá válik. Ellenben ha az operációs rendszer elküldi a TRIM-parancsot az SSD vezérlőjének, akkor az SSD azonnal tudni fogja, hogy erre az adatra már nincs szükség, és azonnal törlődik a lap tartalma (valós időben). Ebből fakadóan később, amikor egy 4 kB-os adat írására kerül sor, már nem kell az egész blokk tartalmát beolvasni, a cache-ben módosítani, majd visszaírni, hanem szimplán egy lap beírására korlátozódik a műveletek sora.

A TRIM használata csökkenti az SSD élettartamát?

Ha a TRIM csak egy szimpla utasítást takar, akkor valóban ez a helyzet. Tegyük fel, hogy egy blokkon belül egyesével töröljük a lapok tartalmát. Egy TRIM nélküli SSD nem tesz semmit, a törölt lapok szimplán megjelölődnek újraírhatóként, majd amikor ide akar később írni az SSD, akkor a teljes blokkon lefut az olvasás-módosítás-írás "kombináció", de a lényeg, hogy az egyes lapok törlésénél nem használódik a NAND.

Ellenben, ha bekapcsoljuk a TRIM-et, akkor a blokkon belül minden laptörlés után komplett blokk olvasás-módosítás-írásra van szükség. Ergo – elméletben – a 128 lapból álló blokk akár 128 db blokkot képes egy írási ciklussal öregbíteni, ha be van kapcsolva a TRIM és csak egyenként töröljük a lapokat belőle. Ezt szándékosan nyilván senki nem akarja, de nem tudhatjuk, hogy az operációs rendszer, illetve az SSD-vezérlője mit művel a háttérben.

Tegyük fel, hogy van 128 darab 4 kB-os fájlunk, és ezek pont ráférnek egy blokkra, és ezekből kitörlünk egy 4 kB-os fájlt. TRIM nélkül a 4 kB-os terület (lap) felülírhatóvá vált, vagyis a vezérlő megjelölte felülírható területként. Ennek köszönhetően lesz később lassabb az SSD, amikor arra a területre írni szeretnénk, mert a szimpla lapírás helyett először ki kell törölni a felülírható lapot. A TRIM használata mellett viszont kiolvasódik a komplett blokk, mind a 128 db fájl, a cache-en belül módosul a blokk (kitörlődik belőle a 4 KB-os fájl), aztán újraíródik a blokk – vagy a korábban taglalt wear leveling egy másik blokk, már ha van rá lehetőség.

Ezek alapján a TRIM csökkenti az SSD élettartamát, azonban egyes források szerint a TRIM-et nem egy szimpla parancsként kell értelmeznünk, hanem több funkció gyűjtőneve, melyek a sebesség maximális szinten tartásán felül az érvényes és érvénytelen adatok kategorizálását is elvégzik, és így nem csökkentik az élettartamot.

Hirdetés