TRIM

TRIM je v informatike označenie príkazu umožňujúceho, aby operačný systém mohol informovať SSD disk o tom, ktoré dátové bloky obsahujú ďalej už nepoužívané dáta. Najčastejšie sú tak označované dátové bloky práve zmazaného súboru. Príkaz TRIM je u SSD diskov používaný na zrýchlenie zápisu dát, a aby efektívnejšie pracovala medzivrstva FTL ("Flash Translation Layer"), ktorá zabezpečuje rovnomerné opotrebovanie dátových buniek.
Popis činnosti.
Pri zmazaní súboru je obvyklé, že jadro operačného systému zmaže iba metadáta, ale vlastný obsah súboru ponechá na disku. Z hľadiska disku ide o stále platné dáta, ktoré možno dokonca "obnoviť" (t.j. "obnovenie zmazaných súborov"). Pri klasickom pevnom disku to nevadí, pretože operácia zápisu je spojená so zmazaním predchádzajúcich dát (čítacia hlava je kombinovaná s mazacou hlavou), takže obe operácie (mazanie a nový zápis) prebehnú naraz. U SSD diskov je však pred zápisom nových dát nutné pôvodné dáta najprv zmazať pomocou špeciálnej operácie a až potom je možné do "vyčisteného" priestoru zapísať nové dáta. Nemožno teda spojiť obe operácie do jednej, a preto je operácia zápisu navonok pomalšia. Predbežné zmazanie dát (ako reakcia na príkaz TRIM) teda čiastočne znižuje počet I/O operácií nevyhnutných v okamihu zápisu nových dát na SSD.
Príkazom TRIM informuje jadro systému SSD disk, ktoré dátové bloky už nie sú potrebné (obsahujú už nepotrebné dáta) a môžu byť preto zmazané. Zvyčajne je operácia TRIM vykonávaná v čase, kedy sa neočakáva od SSD disku žiadna ďalšia činnosť. Napríklad v roku 2013 bola vydaná verzia 4.3 systému Android, ktorá priniesla podporu príkazu TRIM tak, že je vykonávaný typicky v noci, keď nie je systém aktívny, je nabitý a je pripojený k nabíjačke.
Príkaz TRIM umožňuje tiež medzivrstve FTL ("Flash Translation Layer"), aby mohla lepšie pracovať tým, že jej označuje miesta, ktoré je v SSD disku možné prepísať a použiť pre iné dáta. Medzivrstva FTL sa stará o to, aby všetky zápisové bunky flash pamäte boli už opotrebované rovnomerne, pretože ich životnosť je obmedzená iba na niekoľko tisíc zmien obsahu. Presmerúva preto zápisy na menej opotrebované bunky. Vďaka príkazu TRIM získava informácie o tom, ktoré bunky sú voľné a je možné ich použiť.
Príkaz TRIM nie je možné podľa normy zaradiť do frontu, čo znamená, že najprv je nutné dokončiť všetky operácie, potom vykonať TRIM a až potom pokračovať. Tým môže dôjsť k značnému časovému zdržaniu. Príkaz TRIM by sa tak nemal rutinne používať medzi jednotlivými diskovými operáciami.
Podpora TRIM.
Linux.
Jadro Linuxu podporuje príkaz TRIM od decembra 2008. Podpora ATA TRIM príkazu bola pridaná v jadre 2.6.33. Automatické využitie príkazu TRIM je možné u súborových systémov Ext4, Btrfs, FAT, GFS2 a XFS. Automatické použitie TRIM však nie je implicitne aktívne kvôli možnému spomaleniu práce s diskom. Používateľ môže podporu zapnúť parametrom "discard" pri príkaze mount. Ext3, NLFS2 a OCFS2 poskytujú ioctl, ktoré slúži pre offline použitie TRIM.
Android.
V systéme Android je podpora štandardne zahrnutá od verzie 4.3 (júl 2013). Príkaz TRIM je spustený len vtedy, ak je batéria nabitá aspoň na 80% alebo je batéria nabitá aspoň z 30% a systém je zároveň pripojený k nabíjačke (t.j. pravdepodobne bude vykonaná pri nočnom nabíjaní telefónu).
Microsoft Windows.
V systémoch Windows NT je podpora príkazu TRIM od Windows 7 a Windows Server 2008 R2 (október 2009), avšak pomoc je obmedzená na klasické AHCI zariadenia a nemožno ho používať napríklad pre SSD disky v PCI-Express slotoch.