U Computer!Total Issue 4/2010, testirali smo pet SSD-ova sa TRIM podrškom. Radi jednostavnosti, pretpostavili smo lokacije u testu kao mesto gde SSD može da čuva podatke. U stvari, za to se koriste takozvane 'stranice' i 'blokovi'. U ovom članku ćemo detaljnije pogledati kako funkcionišu stranice, blokovi i odnos sa TRIM-om.
TRIM je komanda koja osigurava da SSD održava optimalne performanse pisanja. Rad TRIM-a može se zaista razumeti samo ako poznajete strukturu SSD-a. SSD čuva informacije na „stranicama“, koje su grupisane u „blok“. Da biste razumeli ove koncepte, prvo treba da razmotrite sastav SSD-ova sa više nivoa ćelija (MLC) kako je testirano u Computer!Totaal 4/2010. MLC SSD se sastoji od milijardi memorijskih ćelija, od kojih svaka može da uskladišti nekoliko bitova. Uređena kolekcija ovih ćelija naziva se stranica i najmanja je jedinica za skladištenje ili čitanje datoteke na SSD-u. Veličina stranice obično je 4 KB. Dakle, ako sačuvate datoteku od 1 KB, ova datoteka će zauzeti 4 KB na SSD-u.
blokova
Blok je važna jedinica za SSD, jer je to najmanja kolekcija stranica koju SSD mora da pročita da bi izbrisao podatke. Blok se sastoji od 128 ovih stranica i ima veličinu od 512 KB. Sada SSD radi kao x broj memorijskih modula u RAID podešavanju. To znači da se datoteka širi na više memorijskih modula radi maksimalne brzine čitanja. Windows „razgovara“ sa SSD-om preko logičkog adresiranja blokova (LBA), prateći koji blokovi se koriste, a koji su dostupni. Pošto SSD radi sa stranicama, SSD kontroler mora da prevede LBA komande. Windows naredba za prepisivanje datoteke je prevedena pomoću SSD-a (ako je moguće) za pisanje na praznu stranicu. Ako nema praznih stranica, stranice se prvo moraju isprazniti.
Kašnjenje u pisanju
Problem se javlja kada nema dovoljno praznih stranica na raspolaganju za skladištenje datoteke, kada ima više nego dovoljno prostora na raspolaganju prema Windows indeksu. Na kraju krajeva, datoteka se nikada ne briše kada je data komanda. Ovo se dešava samo kada je prostor koji zauzima predmetna datoteka zamenjen novim podacima. Problem sa ovim je što SSD ne može direktno da prepiše stranice koje sadrže delove datoteka koji se više ne koriste. SSD prvo mora da pročita blokove i stavi ih u sopstvenu keš memoriju, jer se podaci mogu brisati samo tamo. Keširane stranice se prazne, a zatim se ceo blok praznih stranica vraća na SSD, nakon čega su ove stranice dostupne za nove podatke. Ovo usporava proces pisanja za faktor od tri ili više.
trim
Spasitelj za ove situacije je TRIM. Ovo je komanda koju Window 7 šalje na SSD tokom brisanja. Ova komanda obaveštava SSD kontroler koje stranice zaista mogu da se izbrišu i postavlja SSD da radi čitanjem blokova i pražnjenjem stranica koje su ispunjene datotekama (za koje Windows kaže da je dozvoljeno da budu prepisane). Na ovaj način, SSD ostaje u optimalnom stanju tako što ima dovoljno praznih stranica na zalihama i posao pisanja se uvek može obaviti optimalno. Pokazaćemo vam korak po korak šta se dešava kada SSD upisuje i briše datoteke i kako TRIM obezbeđuje da uvek ima dovoljno slobodnih stranica.
1. Prazan SSD
Zamislite da imamo SSD sa kapacitetom skladištenja od tačno 1 bloka. Prazan blok od 512 KB na SSD-u sastoji se od 128 praznih stranica od 4 KB.
2. Napišite datoteku
Želimo da napišemo datoteku od 12 KB, koja ispunjava 3 stranice od 4 KB (plava).
3. Napišite drugu datoteku
Zatim želimo da sačuvamo još jednu datoteku od 8 KB (ljubičasta). Ukupno smo stavili u upotrebu 20 KB. Dakle, još uvek imamo 512 KB – 20 KB = 492 KB slobodnih, ili 123 besplatne stranice.
4. Izbrišite datoteku
Sada ćemo izbrisati datoteku od 8 KB (ljubičasta). Prema Windows-u, naš SSD i dalje ima na raspolaganju 512 KB - 12 KB = 500 KB. Međutim, naš SSD i dalje registruje 123 prazne stranice i 2 stranice podataka koji se mogu izbrisati.
5. Napišite datoteku
Sada pišemo 4 KB (zeleno). SSD preskače dve stranice koje sadrže informacije „podaci za brisanje“. Prvo se popunjavaju prazne stranice.
6. TRIM na poslu
Uz podršku za TRIM, Windows 7 šalje komandu TRIM zajedno sa akcijom brisanja. Na ovaj način kontrolor SSD-a zna da se ovi podaci zaista mogu izbrisati. Kada SSD neko vreme nema šta da radi, SSD će premestiti kompletan blok od 512 KB, čiji je deo naredbom TRIM označen kao brisanje, u keš memoriju. Ovde će datoteka koja je obrisana komandom TRIM (ljubičasta) zapravo biti izbrisana.
7. Stranice će biti izbrisane
Sada se 2 stranice mogu isprazniti i ceo blok se može vratiti nazad. Verovatno možete da zamislite kada ćete da obrišete datoteku od 10 MB, moramo da izbrišemo ukupno 2560 stranica. Ako su i oni podeljeni na različite blokove, onda se mora pročitati mnogo podataka. Iako blok sadrži samo 4 KB datoteke, 512 KB se mora pročitati da bi se izbrisao deo od 4 KB. TRIM osigurava da se to dešava u trenucima kada ne koristite SSD.
8. Ponovo slobodan prostor
Sada su 2 stranice spremne za ponovno pisanje.
9. Upišite datoteku u slobodan prostor
Ako je datoteka od 12 KB sada sačuvana, ima dovoljno slobodnih stranica za čuvanje datoteke (narandžasta).