Wzmocnienie zapisu
Wzmocnienie zapisu ( WA ) jest niepożądanym zjawiskiem związanym z pamięciami flash i dyskami półprzewodnikowymi (SSD), w przypadku których rzeczywista ilość informacji fizycznie zapisywanych na nośniku pamięci jest wielokrotnością ilości logicznej, która ma zostać zapisana.
Ponieważ pamięć flash musi zostać wymazana, zanim będzie można ją ponownie zapisać, przy znacznie mniejszej szczegółowości operacji wymazywania w porównaniu z operacją zapisu, proces wykonywania tych operacji powoduje przeniesienie (lub ponowne zapisanie) danych użytkownika i metadanych więcej niż raz. W związku z tym przepisanie niektórych danych wymaga odczytania, zaktualizowania i zapisania w nowej lokalizacji już używanej części pamięci flash, wraz z początkowym usunięciem nowej lokalizacji, jeśli była wcześniej używana. Ze względu na sposób działania pamięci flash znacznie większe części pamięci flash muszą zostać wymazane i zapisane ponownie, niż faktycznie wymaga tego ilość nowych danych. Ten efekt mnożenia zwiększa liczbę wymaganych zapisów w całym okresie eksploatacji dysku SSD, co skraca czas jego niezawodnej pracy. Zwiększone zapisy zużywają również przepustowość do pamięci flash, co zmniejsza wydajność zapisu na dysk SSD. Na WA dysku SSD ma wpływ wiele czynników; niektóre mogą być kontrolowane przez użytkownika, a niektóre są bezpośrednim wynikiem danych zapisywanych na dysku SSD i jego użytkowania.
Firmy Intel i SiliconSystems (przejęte przez Western Digital w 2009 r.) używały terminu wzmocnienie zapisu w swoich artykułach i publikacjach z 2008 r. WA jest zwykle mierzona stosunkiem zapisów przekazanych do pamięci flash do zapisów pochodzących z systemu hosta. Bez kompresji WA nie może spaść poniżej jednego. Wykorzystując kompresję, SandForce twierdzi, że osiągnął wzmocnienie zapisu na poziomie 0,5, z wartościami w najlepszym przypadku tak niskimi jak 0,14 w kontrolerze SF-2281.
Podstawowa obsługa dysku SSD
Ze względu na specyfikę działania pamięci flash dane nie mogą być bezpośrednio zastępowane, tak jak ma to miejsce na dysku twardym . Gdy dane są po raz pierwszy zapisywane na dysku SSD, komórki zaczynają być w stanie wymazanym, dzięki czemu dane można zapisywać bezpośrednio, używając jednocześnie stron (często o rozmiarze 4–8 kilobajtów (KB)). Kontroler SSD na dysku SSD, który zarządza pamięcią flash i łączy się z systemem hosta, wykorzystuje system mapowania logicznego na fizyczny znany jako adresowanie bloków logicznych (LBA), który jest częścią warstwa tłumaczenia flash (FTL). Kiedy nowe dane zastępują starsze dane, które już zostały zapisane, kontroler SSD zapisze nowe dane w nowej lokalizacji i zaktualizuje mapowanie logiczne, aby wskazywało nową lokalizację fizyczną. Dane w poprzedniej lokalizacji nie są już ważne i będą musiały zostać usunięte, zanim będzie można ponownie zapisać w tej lokalizacji.
Pamięć flash można programować i kasować tylko ograniczoną liczbę razy. Jest to często określane jako maksymalna liczba cykli programowania/kasowania (cykli P/E), jaką może wytrzymać w całym okresie eksploatacji pamięci flash. Lampa błyskowa z ogniwami jednopoziomowymi (SLC), zaprojektowana z myślą o wyższej wydajności i dłuższej żywotności, może zwykle działać od 50 000 do 100 000 cykli. Od 2011 r. Wielopoziomowa komórka flash (MLC) jest przeznaczona do zastosowań o niższych kosztach i ma znacznie zmniejszoną liczbę cykli, zwykle od 3000 do 5000. Od 2013 roku cela trzypoziomowa Dostępna jest pamięć flash (TLC) (np. 3D NAND), a liczba cykli spadła do 1000 cykli kasowania programu (P/E). Niższe wzmocnienie zapisu jest bardziej pożądane, ponieważ odpowiada zmniejszonej liczbie cykli P/E w pamięci flash, a tym samym zwiększonej żywotności dysku SSD.
Obliczanie wartości
Wzmocnienie zapisu było zawsze obecne w dyskach SSD przed zdefiniowaniem tego terminu, ale dopiero w 2008 roku zarówno Intel, jak i SiliconSystems zaczęły używać tego terminu w swoich artykułach i publikacjach. Wszystkie dyski SSD mają wartość wzmocnienia zapisu, która jest oparta zarówno na tym, co jest aktualnie zapisywane, jak i na tym, co zostało wcześniej zapisane na dysku SSD. Aby dokładnie zmierzyć wartość dla konkretnego dysku SSD, wybrany test powinien trwać wystarczająco długo, aby upewnić się, że dysk osiągnął stan ustalony .
Prosty wzór na obliczenie wzmocnienia zapisu dysku SSD to:
Czynniki wpływające na wartość
Na wzmocnienie zapisu dysku SSD wpływa wiele czynników. W poniższej tabeli wymieniono główne czynniki i ich wpływ na wzmocnienie zapisu. W przypadku czynników, które są zmienne, tabela wskazuje, czy ma bezpośrednią zależność, czy zależność odwrotną . Na przykład wraz ze wzrostem ilości nadmiarowej alokacji zmniejsza się wzmocnienie zapisu (zależność odwrotna). Jeśli czynnikiem jest funkcja przełączania ( włączona lub wyłączona ), to ma dodatnią lub ujemną zależność.
Czynnik | Opis | Typ | Relacja* |
---|---|---|---|
Zbieranie śmieci | Wydajność algorytmu użytego do wybrania następnego najlepszego bloku do wymazania i przepisania | Zmienny | Odwrotny (dobry) |
Nadmierna alokacja | Procent pojemności fizycznej przydzielonej kontrolerowi SSD | Zmienny | Odwrotny (dobry) |
TRIM dla SATA lub UNMAP dla SCSI | Te polecenia muszą być wysyłane przez system operacyjny (OS), który informuje urządzenie pamięci masowej, które strony zawierają nieprawidłowe dane. Dyski SSD otrzymujące te polecenia mogą następnie odzyskać bloki zawierające te strony jako wolne miejsce po ich wymazaniu, zamiast kopiować nieprawidłowe dane na czyste strony. | Przełącznik | Pozytywny (dobry) |
Wolna przestrzeń użytkownika | Procent pojemności użytkownika wolnej od rzeczywistych danych użytkownika; wymaga TRIM, w przeciwnym razie dysk SSD nie uzyska żadnej korzyści z wolnej pojemności użytkownika | Zmienny | Odwrotny (dobry) |
Bezpieczne wymazywanie | Usuwa wszystkie dane użytkownika i powiązane metadane, co resetuje dysk SSD do początkowej fabrycznej wydajności (do czasu wznowienia usuwania elementów bezużytecznych) | Przełącznik | Pozytywny (dobry) |
Wyrównywanie zużycia | Wydajność algorytmu, który zapewnia, że każdy blok jest zapisywany taką samą liczbę razy we wszystkich pozostałych blokach tak równomiernie, jak to możliwe | Zmienny | Bezpośredni (zły) |
Rozdzielanie danych statycznych i dynamicznych | Grupowanie danych na podstawie częstotliwości ich zmian | Przełącznik | Pozytywny (dobry) |
Zapisy sekwencyjne | Teoretycznie zapisy sekwencyjne mają wzmocnienie zapisu równe 1, ale inne czynniki nadal będą miały wpływ na wartość | Przełącznik | Pozytywny (dobry) |
Losowe pisze | Zapisywanie do niesekwencyjnych LBA będzie miało największy wpływ na wzmocnienie zapisu | Przełącznik | Negatywne (złe) |
Kompresja danych obejmująca deduplikację danych | Wzmocnienie zapisu spada, a prędkość dysku SSD rośnie, gdy kompresja danych i deduplikacja eliminuje więcej nadmiarowych danych. | Zmienny | Odwrotny (dobry) |
Korzystanie z MLC NAND w trybie SLC | To zapisuje dane z szybkością jednego bitu na komórkę zamiast zaprojektowanej liczby bitów na komórkę (zwykle dwa bity na komórkę), aby przyspieszyć odczyty i zapisy. W przypadku zbliżania się do limitów pojemności NAND w trybie SLC, dysk SSD musi przepisać najstarsze dane zapisane w trybie SLC do trybu MLC lub TLC, aby umożliwić wymazanie miejsca w trybie SLC NAND w celu przyjęcia większej ilości danych. Jednak takie podejście może zmniejszyć zużycie, utrzymując często zmieniane strony w trybie SLC, aby uniknąć programowania tych zmian w trybie MLC lub TLC, ponieważ zapis w trybie MLC lub TLC powoduje większe uszkodzenia pamięci flash niż zapis w trybie SLC. [ potrzebne źródło ] Dlatego takie podejście zwiększa wzrost zapisu, ale może zmniejszyć zużycie, gdy wzorce pisania dotyczą często zapisywanych stron. Jednak wzorce zapisu sekwencyjnego i losowego zwiększą szkody, ponieważ w obszarze SLC nie ma często zapisywanych stron lub jest ich niewiele, co wymusza konieczność ciągłego przepisywania starych danych do MLC lub TLC z obszaru SLC . | Przełącznik | Negatywne (złe) |
Typ | Zmodyfikowano związek | Opis |
---|---|---|
Zmienny | Bezpośredni | Wraz ze wzrostem współczynnika wzrasta WA |
Odwrotność | Wraz ze wzrostem współczynnika WA maleje | |
Przełącznik | Pozytywny | Kiedy czynnik jest obecny, WA maleje |
Negatywny | Gdy czynnik jest obecny, WA wzrasta |
Zbieranie śmieci
Dane są zapisywane w pamięci flash w jednostkach zwanych stronami (składających się z wielu komórek). Jednak pamięć można wymazać tylko w większych jednostkach zwanych blokami (składających się z wielu stron). Jeśli dane na niektórych stronach bloku nie są już potrzebne (nazywane również nieaktualnymi stronami), tylko strony z dobrymi danymi w tym bloku są odczytywane i przepisywane w innym wcześniej wymazanym pustym bloku. Wtedy wolne strony pozostawione przez nie przenoszenie nieaktualnych danych są dostępne dla nowych danych. Jest to proces zwany zbieraniem śmieci (GC). Wszystkie dyski SSD obejmują pewien poziom wyrzucania elementów bezużytecznych, ale mogą różnić się czasem i szybkością wykonywania tego procesu. Wyrzucanie elementów bezużytecznych to duża część wzmocnienia zapisu na dysku SSD.
Odczyty nie wymagają kasowania pamięci flash, więc generalnie nie są związane ze wzmocnieniem zapisu. W przypadku ograniczonej możliwości wystąpienia zakłócenia odczytu dane w tym bloku są odczytywane i przepisywane, ale nie miałoby to żadnego istotnego wpływu na wzmocnienie zapisu dysku.
Odśmiecanie tła
Proces wyrzucania elementów bezużytecznych polega na odczytywaniu i przepisywaniu danych do pamięci flash. Oznacza to, że nowy zapis z hosta będzie wymagał najpierw odczytu całego bloku, zapisu części bloku, które nadal zawierają ważne dane, a następnie zapisu nowych danych. Może to znacznie obniżyć wydajność systemu. Wiele kontrolerów SSD implementuje wyrzucanie elementów bezużytecznych w tle ( BGC ), czasami nazywane wyrzucaniem elementów bezczynnych w czasie bezczynności lub wyrzucaniem elementów bezczynnych w czasie bezczynności ( ITGC ), gdzie kontroler wykorzystuje czas bezczynności do konsolidacji bloków pamięci flash, zanim host będzie musiał zapisać nowe dane. Dzięki temu wydajność urządzenia pozostaje wysoka.
Gdyby kontroler usuwał w tle wszystkie wolne bloki, zanim było to absolutnie konieczne, nowe dane zapisywane z hosta mogłyby być zapisywane bez konieczności wcześniejszego przenoszenia jakichkolwiek danych, pozwalając wydajności działać z maksymalną prędkością. Kompromis polega na tym, że niektóre z tych bloków danych nie są w rzeczywistości potrzebne hostowi i ostatecznie zostaną usunięte, ale system operacyjny nie przekazał tej informacji kontrolerowi (do czasu wprowadzenia TRIM ) . W rezultacie dane, które mają wkrótce zostać usunięte, są ponownie zapisywane w innym miejscu w pamięci flash, zwiększając wzmocnienie zapisu. W niektórych dyskach SSD firmy OCZ wyrzucanie elementów bezużytecznych w tle usuwa tylko niewielką liczbę bloków, a następnie zatrzymuje się, ograniczając w ten sposób ilość nadmiernych zapisów. Innym rozwiązaniem jest posiadanie wydajnego systemu wyrzucania elementów bezużytecznych, który może wykonywać niezbędne ruchy równolegle z zapisami hosta. To rozwiązanie jest bardziej efektywne w środowiskach o dużej liczbie zapisów, w których dysk SSD rzadko jest bezczynny. Kontrolery SandForce SSD i systemy Violin Memory mają taką możliwość.
Wyrzucanie elementów bezużytecznych uwzględniające system plików
W 2010 roku niektórzy producenci (zwłaszcza Samsung) wprowadzili kontrolery SSD, które rozszerzyły koncepcję BGC o analizę systemu plików używanego na dysku SSD, identyfikację ostatnio usuniętych plików i miejsca nie podzielonego na partycje . Samsung twierdził, że zapewni to, że nawet systemy (systemy operacyjne i sprzęt kontrolera SATA), które nie obsługują TRIM , będą mogły osiągnąć podobną wydajność. Wydawało się, że działanie implementacji Samsunga zakłada i wymaga systemu plików NTFS system plików. Nie jest jasne, czy ta funkcja jest nadal dostępna w obecnie dostarczanych dyskach SSD tych producentów. Zgłoszono uszkodzenie danych systemowych na tych dyskach, jeśli nie są one prawidłowo sformatowane przy użyciu MBR i NTFS. [ potrzebne źródło ]
PRZYCINAĆ
TRIM to polecenie SATA, które umożliwia systemowi operacyjnemu poinformowanie dysku SSD, które bloki wcześniej zapisanych danych nie są już potrzebne w wyniku usunięcia plików lub sformatowania woluminu. Kiedy LBA jest zastępowane przez system operacyjny, tak jak w przypadku nadpisywania pliku, dysk SSD wie, że oryginalny LBA może zostać oznaczony jako nieaktualny lub nieprawidłowy i nie zapisuje tych bloków podczas wyrzucania elementów bezużytecznych. Jeśli użytkownik lub system operacyjny usunie plik (nie tylko usunie jego część), plik zostanie zwykle oznaczony do usunięcia, ale rzeczywista zawartość dysku nigdy nie zostanie usunięta. Z tego powodu dysk SSD nie wie, że może wymazać LBA poprzednio zajmowane przez plik, więc dysk SSD będzie nadal uwzględniał takie LBA w wyrzucaniu elementów bezużytecznych.
Wprowadzenie polecenia TRIM rozwiązuje ten problem w systemach operacyjnych, które go obsługują , takich jak Windows 7 , Mac OS (najnowsze wersje Snow Leopard, Lion i Mountain Lion, w niektórych przypadkach poprawione), FreeBSD od wersji 8.1 i Linux od wersji 2.6 .33 głównej linii jądra Linuksa . Gdy plik zostanie trwale usunięty lub dysk zostanie sformatowany, system operacyjny wysyła polecenie TRIM wraz z LBA, które nie zawierają już prawidłowych danych. To informuje dysk SSD, że używane LBA mogą zostać wymazane i użyte ponownie. Zmniejsza to liczbę LBA, które należy przenieść podczas wyrzucania elementów bezużytecznych. W rezultacie dysk SSD będzie miał więcej wolnego miejsca, co umożliwi mniejsze wzmocnienie zapisu i wyższą wydajność.
Ograniczenia i zależności
Polecenie TRIM wymaga również obsługi dysku SSD. Jeśli oprogramowanie sprzętowe na dysku SSD nie obsługuje polecenia TRIM, LBA odebrane za pomocą polecenia TRIM nie zostaną oznaczone jako nieprawidłowe, a dysk będzie kontynuował usuwanie danych, zakładając, że są one nadal ważne. Tylko wtedy, gdy system operacyjny zapisze nowe dane w tych LBA, dysk SSD będzie wiedział, aby oznaczyć oryginalny LBA jako nieprawidłowy. Producenci dysków SSD, którzy pierwotnie nie wbudowali obsługi TRIM w swoich dyskach, mogą albo zaoferować użytkownikowi aktualizację oprogramowania układowego, albo udostępnić oddzielne narzędzie, które wyodrębnia informacje o nieprawidłowych danych z systemu operacyjnego i oddzielnie TRIMuje dysk SSD. Korzyść byłaby realizowana dopiero po każdym uruchomieniu tego narzędzia przez użytkownika. Użytkownik może skonfigurować to narzędzie do okresowego uruchamiania w tle jako zadania zaplanowanego automatycznie.
Tylko dlatego, że dysk SSD obsługuje polecenie TRIM, nie musi oznaczać, że będzie w stanie działać z maksymalną prędkością natychmiast po poleceniu TRIM. Miejsce zwolnione po wykonaniu polecenia TRIM może znajdować się w losowych miejscach na całym dysku SSD. Zanim te przestrzenie zostaną skonsolidowane, aby pokazać lepszą wydajność, zajmie to kilka przebiegów zapisu danych i zbierania elementów bezużytecznych.
Nawet po skonfigurowaniu systemu operacyjnego i dysku SSD do obsługi polecenia TRIM inne warunki mogą uniemożliwić korzystanie z funkcji TRIM. Od początku 2010 r. bazy danych i systemy RAID nie są jeszcze świadome TRIM, w związku z czym nie będą wiedzieć, jak przekazać te informacje na dysk SSD. W takich przypadkach dysk SSD będzie nadal zapisywał i usuwał te bloki, dopóki system operacyjny nie użyje tych LBA do nowych zapisów.
Rzeczywista korzyść z polecenia TRIM zależy od wolnego miejsca na dysku SSD dla użytkownika. Jeśli pojemność użytkownika na dysku SSD wynosiła 100 GB, a użytkownik faktycznie zapisał na dysku 95 GB danych, żadna operacja TRIM nie dodałaby więcej niż 5 GB wolnego miejsca na usuwanie elementów bezużytecznych i równoważenie zużycia. W takich sytuacjach zwiększenie ilości nadmiarowej alokacji o 5 GB pozwoliłoby dyskowi SSD uzyskać bardziej spójną wydajność, ponieważ zawsze miałby dodatkowe 5 GB dodatkowego wolnego miejsca bez konieczności czekania na polecenie TRIM pochodzące z systemu operacyjnego.
Nadmierna alokacja
Nadmierna alokacja (czasami zapisywana jako OP, nadmierna alokacja lub nadmierna alokacja) to różnica między fizyczną pojemnością pamięci flash a pojemnością logiczną prezentowaną przez system operacyjny (OS) jako dostępną dla użytkownika. Podczas operacji usuwania elementów bezużytecznych, wyrównywania zużycia i mapowania uszkodzonych bloków na dysku SSD dodatkowa przestrzeń wynikająca z nadmiernej alokacji pomaga obniżyć wzmocnienie zapisu, gdy kontroler zapisuje w pamięci flash. Nadmierna alokacja jest reprezentowana jako procentowy stosunek dodatkowej pojemności do pojemności dostępnej dla użytkowników:
Nadmierna alokacja zwykle pochodzi z trzech źródeł:
- Obliczanie pojemności i użycie gigabajta (GB) jako jednostki zamiast gibibajta (GiB). Zarówno dostawcy dysków twardych, jak i dysków SSD używają terminu GB do reprezentowania liczby dziesiętnej GB lub 1 000 000 000 (= 10 9 ) bajtów. Podobnie jak większość innych elektronicznych pamięci masowych, pamięć flash składa się z potęg dwójki, więc obliczenie fizycznej pojemności dysku SSD byłoby oparte na 1 073 741 824 (= 2 30 ) na binarny GB lub GiB. Różnica między tymi dwiema wartościami wynosi 7,37% (= (2 30 − 10 9 ) / 10 9 × 100%). W związku z tym dysk SSD o pojemności 128 GB z 0% dodatkową nadmiarową alokacją zapewniłby użytkownikowi 128 000 000 000 bajtów (z łącznej liczby 137 438 953 472). Te początkowe 7,37% zwykle nie jest wliczane do całkowitej liczby nadmiarowych alokacji, a rzeczywista dostępna ilość jest zwykle mniejsza, ponieważ kontroler potrzebuje trochę miejsca w pamięci do śledzenia danych innych niż system operacyjny, takich jak flagi stanu bloku. Liczba 7,37% może rozciągać się do 9,95% w zakresie terabajtów, as producenci wykorzystują kolejny stopień rozbieżności jednostek binarnych/dziesiętnych, aby oferować dyski 1 lub 2 TB o pojemności odpowiednio 1000 i 2000 GB (931 i 1862 GiB), zamiast 1024 i 2048 GB (jako 1 TB = 1 000 000 000 000 bajtów w systemie dziesiętnym wyrażeń, ale 1 099 511 627 776 w systemie binarnym). [ potrzebne źródło ]
- Decyzja producenta. Odbywa się to zwykle przy 0%, 7% lub 28%, w oparciu o różnicę między dziesiętnym gigabajtem pojemności fizycznej a dziesiętnym gigabajtem dostępnej dla użytkownika przestrzeni. Na przykład producent może opublikować specyfikację swojego dysku SSD na 100, 120 lub 128 GB w oparciu o 128 GB możliwej pojemności. Ta różnica wynosi odpowiednio 28%, 7% i 0% i jest podstawą dla producenta, który twierdzi, że ma 28% nadmiaru alokacji na swoim dysku. Nie uwzględnia to dodatkowych 7,37% pojemności dostępnej z różnicy między gigabajtem dziesiętnym a binarnym.
- Znana wolna przestrzeń użytkownika na dysku, zyskująca wytrzymałość i wydajność kosztem zgłaszania niewykorzystanych porcji lub kosztem obecnej lub przyszłej pojemności. To wolne miejsce może zostać zidentyfikowane przez system operacyjny za pomocą polecenia TRIM. Alternatywnie, niektóre dyski SSD udostępniają narzędzie, które umożliwia użytkownikowi końcowemu wybranie dodatkowej nadmiernej alokacji. Ponadto, jeśli dowolny dysk SSD zostanie skonfigurowany z ogólnym układem partycjonowania mniejszym niż 100% dostępnej przestrzeni, to miejsce nie podzielone na partycje będzie automatycznie wykorzystywane przez dysk SSD jako nadmiarowa alokacja. Jeszcze innym źródłem nadmiernej alokacji są minimalne limity wolnego miejsca w systemie operacyjnym; niektóre systemy operacyjne utrzymują pewną minimalną ilość wolnego miejsca na dysku, szczególnie na dysku rozruchowym lub głównym. Jeśli ta dodatkowa przestrzeń może zostać zidentyfikowana przez dysk SSD, być może poprzez ciągłe użycie polecenia TRIM, działa to jako półtrwałe nadmiarowe udostępnianie. Nadmierna alokacja często odbiera pojemność użytkownikom, tymczasowo lub na stałe, ale przywraca zmniejszone wzmocnienie zapisu, zwiększoną wytrzymałość i zwiększoną wydajność.
Wolna przestrzeń użytkownika
Kontroler SSD użyje wolnych bloków na dysku SSD do zbierania elementów bezużytecznych i równoważenia zużycia. Część pojemności użytkownika, która jest wolna od danych użytkownika (albo już TRIMed, albo nigdy nie została zapisana) będzie wyglądać tak samo, jak nadmierna alokacja miejsca (dopóki użytkownik nie zapisze nowych danych na dysku SSD). Jeśli użytkownik zapisuje dane, które zajmują tylko połowę całkowitej pojemności dysku użytkownika, druga połowa pojemności użytkownika będzie wyglądać na dodatkową nadmiarową alokację (o ile polecenie TRIM jest obsługiwane w systemie).
Bezpieczne wymazywanie
Polecenie ATA Secure Erase służy do usuwania wszystkich danych użytkownika z dysku. W przypadku dysku SSD bez zintegrowanego szyfrowania to polecenie przywróci dysk do pierwotnego stanu fabrycznego. To początkowo przywróci jego wydajność do najwyższego możliwego poziomu i najlepszego (najniższej liczby) możliwego wzmocnienia zapisu, ale gdy tylko dysk zacznie ponownie zbierać elementy bezużyteczne, wydajność i wzmocnienie zapisu zaczną wracać do poprzednich poziomów. Wiele narzędzi używa polecenia ATA Secure Erase do resetowania dysku i udostępniania interfejsu użytkownika. Jedno bezpłatne narzędzie, które jest powszechnie przywoływane w branży, nazywa się HDDerase . GParted a Live CD z Ubuntu zapewniają bootowalny system narzędzi dyskowych Linux, w tym bezpieczne wymazywanie.
Dyski, które szyfrują wszystkie zapisy w locie, mogą zaimplementować ATA Secure Erase w inny sposób. Po prostu zerują i generują nowy losowy klucz szyfrowania za każdym razem, gdy wykonywane jest bezpieczne wymazywanie. W ten sposób starych danych nie można już odczytać, ponieważ nie można ich odszyfrować. Niektóre dyski ze zintegrowanym szyfrowaniem będą również fizycznie usuwać wszystkie bloki po tym, podczas gdy inne dyski mogą wymagać wysłania polecenia TRIM do dysku, aby przywrócić dysk do pierwotnego stanu po wyjęciu z opakowania (w przeciwnym razie ich wydajność może nie maksymalizować).
ATA Secure Erase – niepowodzenie wymazania danych
Niektóre dyski mogą całkowicie lub częściowo nie usunąć danych za pomocą funkcji ATA Secure Erase, a dane nadal będą możliwe do odzyskania z takich dysków.
Wyrównywanie zużycia
Jeśli konkretny blok był wielokrotnie programowany i kasowany bez zapisywania w innych blokach, blok ten zużyłby się przed wszystkimi innymi blokami – tym samym przedwcześnie kończąc żywotność dysku SSD. Z tego powodu kontrolery SSD wykorzystują technikę zwaną równoważeniem zużycia , aby rozłożyć zapisy tak równomiernie, jak to możliwe, na wszystkie bloki pamięci flash na dysku SSD.
W idealnym scenariuszu umożliwiłoby to zapisanie każdego bloku do jego maksymalnego okresu życia, tak aby wszystkie uległy awarii w tym samym czasie. Niestety, proces równomiernego rozłożenia zapisów wymaga przeniesienia wcześniej zapisanych i niezmiennych danych (dane zimne), aby dane, które zmieniają się częściej (dane gorące) mogły zostać zapisane w tych blokach. Za każdym razem, gdy dane są przenoszone bez zmiany przez system hosta, zwiększa się wzmocnienie zapisu, a tym samym skraca żywotność pamięci flash. Kluczem jest znalezienie optymalnego algorytmu, który zmaksymalizuje je oba.
Oddzielanie danych statycznych i dynamicznych
Oddzielenie statycznych (zimnych) i dynamicznych (gorących) danych w celu zmniejszenia wzmocnienia zapisu nie jest prostym procesem dla kontrolera SSD. Proces ten wymaga od kontrolera SSD oddzielenia LBA z danymi, które ciągle się zmieniają i wymagają przepisywania (dane dynamiczne) od LBA z danymi, które rzadko się zmieniają i nie wymagają przepisywania (dane statyczne). Jeśli dane są mieszane w tych samych blokach, jak w prawie wszystkich dzisiejszych systemach, wszelkie przepisywanie będzie wymagało od kontrolera SSD przepisania zarówno danych dynamicznych (które początkowo spowodowały przepisanie), jak i danych statycznych (które nie wymagały przepisywania). Każde wyrzucanie bezużytecznych danych, które w przeciwnym razie nie wymagałyby przenoszenia, zwiększy wzmocnienie zapisu. Dlatego oddzielenie danych umożliwi zachowanie danych statycznych w stanie spoczynku, a jeśli nigdy nie zostaną przepisane, będą miały najniższe możliwe wzmocnienie zapisu dla tych danych. Wadą tego procesu jest to, że w jakiś sposób kontroler SSD musi znaleźć sposób na wyrównanie zużycia danych statycznych, ponieważ te bloki, które nigdy się nie zmieniają, nie będą miały szansy na zapisanie ich maksymalnych cykli P/E.
Implikacje wydajnościowe
Zapisy sekwencyjne
Gdy dysk SSD zapisuje sekwencyjnie duże ilości danych, wzmocnienie zapisu jest równe jeden, co oznacza brak wzmocnienia zapisu. Powodem jest to, że podczas zapisywania danych cały blok jest wypełniany sekwencyjnie danymi dotyczącymi tego samego pliku. Jeśli system operacyjny stwierdzi, że plik ma zostać zastąpiony lub usunięty, cały blok może zostać oznaczony jako nieprawidłowy i nie ma potrzeby odczytywania jego części w celu wyrzucenia śmieci i przepisania go do innego bloku. Będzie trzeba go tylko wymazać, co jest znacznie łatwiejsze i szybsze niż odczytu-wymazania-modyfikacji-zapisu potrzebny do losowo zapisanych danych przechodzących przez wyrzucanie elementów bezużytecznych.
Losowe pisze
Szczytowa wydajność losowego zapisu na dysku SSD jest napędzana przez dużą liczbę wolnych bloków po całkowitym wyczyszczeniu dysku SSD, bezpiecznym wymazaniu, 100% TRIMed lub nowo zainstalowanym dysku SSD. Maksymalna prędkość będzie zależała od liczby równoległych kanałów flash podłączonych do kontrolera SSD, wydajności oprogramowania układowego i szybkości pamięci flash podczas zapisywania na stronie. Podczas tej fazy wzmocnienie zapisu będzie najlepsze, jakie może być dla losowych zapisów i będzie zbliżać się do jednego. Gdy wszystkie bloki zostaną zapisane raz, rozpocznie się wyrzucanie elementów bezużytecznych, a wydajność będzie uzależniona od szybkości i wydajności tego procesu. Wzmocnienie zapisu w tej fazie wzrośnie do najwyższych poziomów, jakich doświadczy dysk.
Wpływ na wydajność
Ogólna wydajność dysku SSD zależy od wielu czynników, w tym wzmocnienia zapisu. Zapisywanie na urządzeniu pamięci flash trwa dłużej niż odczyt z niego. Dysk SSD zazwyczaj wykorzystuje wiele komponentów pamięci flash połączonych równolegle jako kanały w celu zwiększenia wydajności. Jeśli dysk SSD ma wysokie wzmocnienie zapisu, kontroler będzie musiał zapisać tyle razy w pamięci flash. Wymaga to jeszcze więcej czasu na zapisanie danych z hosta. Dysk SSD z niskim wzmocnieniem zapisu nie będzie musiał zapisywać tak dużej ilości danych i dlatego może zakończyć zapisywanie szybciej niż dysk z wysokim wzmocnieniem zapisu.
Oświadczenia dotyczące produktów
We wrześniu 2008 roku Intel ogłosił X25-M SATA SSD z raportowanym WA zaledwie 1,1. W kwietniu 2009 firma SandForce ogłosiła wprowadzenie rodziny procesorów SSD SF-1000 ze zgłoszoną wartością WA wynoszącą 0,5, która wydaje się pochodzić z jakiejś formy kompresji danych. Przed tym ogłoszeniem wzmocnienie zapisu 1,0 było uważane za najniższe, jakie można było osiągnąć za pomocą dysku SSD.
Zobacz też
Notatki
Linki zewnętrzne
- Media związane ze wzmocnieniem zapisu w Wikimedia Commons