Trim (comandă de conducere)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 10 mai 2020; verificările necesită 19 modificări .

Trim ( eng.  to trim  - trim) - o comandă de interfață ATA care permite sistemului de operare să notifice unitatea SSD despre care blocuri de date ( pagini ) nu poartă o sarcină utilă și nu pot fi stocate fizic.

Trim face parte din specificația interfeței ATA , care este standardizată de grupul T13 al INCITS [1] .

Motive pentru

Comanda a fost introdusă la scurt timp după apariția unităților cu stare solidă (SSD) pentru a le face o alternativă competitivă la HDD-urile tradiționale din computerele personale.

Pentru că pe plan intern, implementarea operațiunilor într-un SSD este foarte diferită de implementarea acelorași operațiuni în hard disk-urile mecanice tradiționale, metodele uzuale ale sistemelor de operare pentru operațiuni precum ștergerea fișierelor și formatarea unui disc (fără a accesa direct sectoarele afectate/ pagini pe unitate) conduc la o deteriorare progresivă a performanței operațiunilor de scriere pe SSD [2] .

Utilizarea Trim permite SSD-ului să reducă impactul colectării gunoiului , care altfel ar duce la o scădere a performanței operațiunilor de scriere în sectoarele afectate [3] .

Alte soluții

Deși utilitățile pentru „resetarea” unor unități la starea lor inițială erau deja disponibile înainte de apariția Trim, ele, printre altele, au șters toate datele de pe unitate, ceea ce le-a făcut practic inutilizabile pentru optimizare [4] .

Caracteristicile unităților SSD

La nivel de sistem de fișiere

Datorită particularităților metodelor de ștergere utilizate în mod obișnuit în sistemele de fișiere , unitățile nu știu ce sectoare/pagini sunt de fapt utilizate și care pot fi considerate inactive.

Operațiunile de ștergere sunt de obicei limitate la marcarea blocurilor de date ca „neutilizate” în sistemul de fișiere [5] [6] . Spre deosebire de, de exemplu, o operație de suprascriere, ștergerea nu va avea ca rezultat o scriere fizică în sectoarele afectate care conțin date. Deoarece unitatea nu are acces la structurile sistemului de fișiere - cum ar fi lista de clustere neutilizate - unitatea este lăsată în întuneric despre eliberarea blocurilor.

Deși acest lucru a făcut adesea posibilă recuperarea datelor șterse de pe HDD-urile tradiționale , chiar dacă acestea au fost marcate ca „șterse” de sistemul de operare, a însemnat și că atunci când sistemul de operare a efectuat ulterior o operațiune de scriere într-unul dintre sectoarele considerate spațiu liber, această operație ar fi considerată o operație de suprascriere din punctul de vedere al unității. Pentru hard disk-urile tradiționale, această operațiune nu este diferită de scrierea într-un sector inactiv, pentru SSD, din cauza nivelării uzurii, suprascrierea datelor este semnificativ diferită de scrierea într-un sector inactiv (fiecare scriere în același sector logic se va face pe un alt sector fizic). sectoare), potențial degradarea performanței operațiunilor de scriere ulterioare [6] .

La nivelul fizic al memoriei

SSD-urile stochează date în celule de memorie flash grupate (într-un SSD MLC ) în „pagini” (de obicei 4 KB fiecare), care sunt la rândul lor grupate în blocuri (de obicei 128 de pagini sau 512 KB în total) [5] [7 ] .

Celulele flash NAND pot fi scrise direct numai dacă sunt goale. În cazul în care stochează date, conținutul celulelor trebuie să fie șters înainte de a le fi scrise date noi. În unitățile SSD, operația de scriere se poate face doar pentru pagini, totuși, din cauza limitărilor hardware, comanda de ștergere se execută întotdeauna pe întreg blocul [7] . Ca rezultat, scrierea pe suportul SSD este foarte rapidă atâta timp cât există pagini goale, dar încetinește semnificativ dacă paginile prescrise trebuie șters.

Deoarece celulele dintr-o pagină trebuie să fie șterse înainte de a putea fi scrise din nou, dar numai un bloc întreg poate fi șters, procesul de rescriere inițiază un ciclu de citire-ștergere-modificare-scriere [5] [8] : conținutul întregul bloc trebuie păstrat în cache înainte de a putea fi eliminat din unitate, datele suprascrise sunt modificate în cache și numai atunci întregul bloc (cu pagina actualizată) este scris pe unitate. Acest fenomen este cunoscut sub numele de amplificare de scriere[9] [10] .

La nivel de controler SSD

În controlerele lor SSD, producătorii folosesc diverse tehnici pentru a distribui în mod optim operațiunile de scriere pe unitatea flash [5] [11] . Acest lucru se face nu numai pentru a optimiza viteza prin minimizarea amplificarii de scriere, ci și pentru a crește durata de viață a celulelor flash ( ) , celulele flash MLC convenționale pot rezista la 3000-5000 de cicluri de scriere [11] . O altă abordare este utilizarea memoriei de rezervă (de rezervă), care nu este declarată sistemului de operare sau chiar BIOS , pentru a oferi pagini curate pentru operațiunile de scriere cât mai mult timp posibil înainte de a începe să suprascrieți alte pagini [3] .

Eficacitatea acestor metode depinde în mare măsură de schimbul de informații între sistemul de operare și controlerul SSD despre care pagini pot fi considerate ocupate și care pagini pot fi considerate libere. În mod tradițional, majoritatea sistemelor de operare nu informează unitățile despre sectoarele/paginile șterse, ceea ce nu permite controlerelor SSD să aloce în mod optim spațiul liber. Comanda Trim a fost introdusă pentru a remedia acest lucru prin ștergerea celulelor neutilizate înainte de a fi scrise, reducând astfel timpul de acces [3] .

Deoarece comanda șterge complet datele din celule, de obicei nu este posibilă recuperarea datelor din acestea [12] .

Trim nu este întotdeauna suportat în matricele RAID [13] .

Suport de echipă pentru sisteme de operare și unități

SSD-urile mai vechi fabricate înainte de adăugarea comenzii Trim la standardul ATA necesită o actualizare de firmware  sau comanda va fi ignorată. De asemenea, comanda Trim nu este acceptată de toate sistemele de operare .

Reduceți suportul în sistemele de operare
Sistem de operare A sustine
Windows 8 și versiuni ulterioare Acceptat de la lansarea finală (octombrie 2012)
Windows Server 2012 Acceptat de la lansarea finală (octombrie 2012)
Windows 7 Sprijinit de la lansarea finală (octombrie 2009) [14]
Windows Server 2008 R2 Sprijin de la lansarea finală (octombrie 2009) [15] [16]
Linux 2.6.33 Sprijinit din februarie 2010 [17] , ioctl BLKDISCARD
OpenSolaris Sprijin din iulie 2010 [18]
FreeBSD 8.3, 9.2, 10.0 Suportat cu UFS [19] , suportat cu ZFS [20] [21] .
Mac OS X Acceptat (începând cu versiunea 10.10.4 pentru orice SSD, înainte doar SSD-urile furnizate de Apple [22] )
Android Începând cu versiunea 4.3, la sistem a fost adăugat suport pentru funcția fstrim, care este un analog cu Trim [23] [24]
ubuntu Suportat începând cu Ubuntu 14.04.

Alte metode și cazuri

În unele cazuri, când Trim nu este suportat de sistemul de operare, există utilitare care vă permit să trimiteți această comandă „manual”. De obicei, astfel de programe, folosind instrumentele sistemului de operare, alcătuiesc o listă de blocuri gratuite și o transferă pe unitate sub forma unei secvențe de comenzi Trim. Astfel de produse există atât sub formă de utilități universale ( hdparm versiunea 9.17 și superioară), cât și sub formă de software pentru tipuri individuale de unități (Intel [25] , G.Skill [26] ).

Analogul SCSI al comenzii Trim este comenzile Unmap și Write [27] .

Note

  1. Documente T13 referitoare la  Trim . INCITS T13 . INCITS. Consultat la 8 iulie 2009. Arhivat din original la 30 iunie 2012.
  2. Shimpi, Anand Lal. Antologia SSD  4. AnandTech.com (18 martie 2009) . Consultat la 19 iunie 2010. Arhivat din original la 30 iunie 2012.
  3. 1 2 3 Shimpi, Anand Lal. (18-03-2009). p. zece.
  4. Shimpi, Anand Lal. (18-03-2009). p. unsprezece.
  5. 1 2 3 4 Savill, Ioan. Am auzit că discurile cu stare solidă (SSD) suferă de o scădere a performanței de scriere pe măsură ce sunt folosite. De ce?  (engleză) . WindowsITPro (21 aprilie 2009). Consultat la 19 iunie 2010. Arhivat din original la 30 iunie 2012.
  6. 1 2 Shimpi, Anand Lal. (18-03-2009). p. 7.
  7. 1 2 Shimpi, Anand Lal. (18-03-2009). p. 5.
  8. Shimpi, Anand Lal. (18-03-2009). p. opt.
  9. Write Amplification: Intel's Secret Sauce . Consultat la 20 septembrie 2010. Arhivat din original la 15 noiembrie 2010.
  10. În interiorul controlerului X25-M: nivelare uzură, control amplificare scris
  11. 1 2 Shimpi, Anand Lal. (18-03-2009). p. 6.
  12. Prea tăiate? Când recuperarea datelor SSD este  imposibilă . TechGage . TechGage (5 martie 2010). Consultat la 16 aprilie 2010. Arhivat din original la 30 iunie 2012.
  13. Gareth Halfacree. Intel lansează Trim pentru  RAID . bit-tech.net (23 martie 2010). Consultat la 2 noiembrie 2010. Arhivat din original la 30 iunie 2012.
  14. Asistență și întrebări și răspunsuri pentru unitățile cu stare  solidă . MSDN (9 mai 2009). Preluat: 2010-08-12]. Arhivat din original la 30 iunie 2012.
  15. Îmbunătățiri Windows 7 pentru  unități cu stare solidă . Descărcări Microsoft . Microsoft Corporation (12 noiembrie 2008). Consultat la 8 iulie 2009. Arhivat din original la 30 iunie 2012.
  16. Î. Ce este funcția Trim pentru discuri cu stare solidă (SSD) și de ce este importantă?  (engleză)  (link inaccesibil) . Windows IT Pro. Consultat la 1 septembrie 2010. Arhivat din original pe 2 ianuarie 2010.
  17. Trim pe Linux  (engleză)  (downlink) . Începătorii nucleului. Consultat la 1 septembrie 2010. Arhivat din original la 30 iunie 2012.
  18. Suport SATA Trim în OpenSolaris (29 iulie 2010). Arhivat din original la 30 iunie 2012.
  19. SVN revizuire 216796 (29 decembrie 2010). Arhivat din original la 30 iunie 2012.
  20. SVN revizuire 240868 (23 septembrie 2012). Arhivat din original pe 25 octombrie 2012.
  21. Clustering TRIM (downlink) (5 mai 2011). Arhivat din original la 30 iunie 2012. 
  22. Daniel Eran Dilger. MacBook Pros de la Apple este livrat cu suport activ TRIM SSD în Snow Leopard  . appleinsider.com (4 martie 2011). Preluat la 7 martie 2011. Arhivat din original la 30 iunie 2012.
  23. Cum funcționează: TRIM . https://guides.ru/ . Preluat la 7 ianuarie 2021. Arhivat din original la 9 ianuarie 2021.
  24. Tehnologia TRIM din Android 4.3 va menține funcționarea fără probleme  (rusă)  ? . fullhub.ru . Preluat la 7 ianuarie 2021. Arhivat din original la 10 ianuarie 2021.
  25. Cartea albă Intel SSD Optimizer  (ing.) (pdf). Intel Corp. Data accesului: 23 ianuarie 2010. Arhivat din original la 30 iunie 2012.
  26. wiper.exe pentru  seria Falcon . XtremeSystems. Data accesului: 23 ianuarie 2010. Arhivat din original la 30 iunie 2012.
  27. Notă pentru suportul SCSI UNMAP în lista de corespondență FreeBSD . Arhivat din original la 30 iunie 2012.

Link -uri