Przemysłowe dyski SSD

| Technika

W ostatnim czasie dyski SSD bardzo zyskały na popularności. Aktualnie w ten rodzaj nośników danych wyposaża się już nie tylko urządzenia przenośne, lecz także komputery stacjonarne oraz serwery i sprzęt przemysłowy. Rozwiązania do aplikacji profesjonalnych różnią się pod względem zastosowanych rozwiązań technologicznych od wersji konsumenckich i warto wiedzieć, za co się płaci, kupując masową pamięć Flash.

Przemysłowe dyski SSD

W odróżnieniu od wersji konsumenckich charakteryzują się dużą niezawodnością i wytrzymałością na trudne warunki pracy. By takie właściwości uzyskać, wdraża się w nich różne rozwiązania sprzętowe i programowe ograniczające wpływ czynników zewnętrznych na możliwość zapisu i odczytu danych oraz ich integralność.

Oprócz wzmocnienia konstrukcji stosuje się też kontrolery z algorytmami detekcji i korekcji błędów, mechanizmami zarządzania uszkodzonymi blokami pamięci i monitorowania parametrów karty, które umożliwiają m.in. określenie stopnia jej zużycia. Niektóre rozwiązania mają też funkcje odzyskiwania danych oraz detekcji przerwy w zasilaniu. Producenci takich pamięci implementują i wdrażają w nich wiele nierzadko unikalnych technologii odpowiedzialnych za jakość i niezawodność. Za realizację tych funkcji w dużej mierze odpowiedzialny jest kontroler dysku zarządzający jego pracą.

Budowa i klasyfikacja pamięci Flash

Pamięci Flash zbudowane są z komórek. Każda z nich składa się z dwóch bramek: pływającej i sterującej. W bramce pływającej gromadzony jest ładunek. Bramka sterująca odczytuje go jako wartość logiczną 0 albo 1. Może także kasować i zapisywać zawartość bramki pływającej.

W zależności od typu bramki logicznej w komórkach pamięci Flash dzieli się na typu NOR oraz NAND. Te pierwsze charakteryzuje znacznie dłuższy czas zapisu i odczytu danych w porównaniu do pamięci typu NAND.

W pamięciach NOR można za to uzyskać bezpośredni dostęp do każdej komórki. W tych z grupy NAND dostęp do danych jest sekwencyjny. Pamięci Flash NAND mają z kolei większą gęstość upakowania dzięki temu, że ich komórki są o ponad 50% mniejsze niż komórki w pamięciach NOR. To sprawia, że pamięci NAND są tańsze. Aktualnie większość dysków SSD zbudowanych jest z pamięci półprzewodnikowych typu NAND.

NAND SLC, MLC, czy TLC? Bloki i strony

Pamięci NAND dzieli się na trzy grupy: SLC (single-level cell), MLC (multi-level cell) oraz TLC (three-level cell). W pojedynczej komórce pamięci SLC można zapisać równocześnie tylko jeden bit informacji. W komórce pamięci MLC mieszczą się dwa bity danych, natomiast w TLC aż trzy. Pamięci MLC są tańsze niż SLC, ale równocześnie wolniejsze i mniej niezawodne. Pod względem niezawodności, wytrzymałości i trwałości zapisu informacji najgorzej w tym zestawieniu wypadają pamięci TLC.

Typowe parametry pamięci MLC to odczyt (dla całej strony) 75 μs, kasowanie 4 ms, trwałość 3000 cykli, a dla SLC czasy te wynoszą 35 μs, 0,7 ms i 100 tys. cykli. Większa zawodność komórek MLC przenosi się też na około 2-krotnie większą liczbę wymaganych dla nich danych nadmiarowych do korekcji błędów ECC. Z tych przyczyn w rozwiązaniach przemysłowych dominują pamięci SLC.

Niemniej pamięci MLC są znacznie tańsze i dostępne w większych pojemnościach, stąd producenci wdrażają wiele technologii, które ograniczają opisane wady MLC, np. poprzez oprogramowanie, które konwertuje strukturę pamięci opartą na 2 bitach na komórkę 1-bitową (używany jest tylko starszy bajt zapisywanych danych).

Najważniejsze jednostki organizacyjne w strukturze pamięci Flash to bloki i strony. Pierwsze są podstawową jednostką w operacji kasowania danych, zaś strony - w procesie ich zapisu. Bloki składają się z takiej samej oraz stałej liczby stron. Strony podzielone są na dwie części - do przechowywania danych bieżących i mniejszej, niewidocznej dla użytkownika, z danymi pomocniczymi systemu zarządzania zasobami pamięci.

Dzięki temu, że nośnikiem danych w dyskach SSD są pamięci półprzewodnikowe, w zestawieniu z dyskami magnetycznymi mają one liczne zalety. Z tego samego powodu nie są jednak pozbawione wad.

SSD vs. HDD

Jedną z ważniejszych zalet dysków SSD jest brak ruchomych części mechanicznych. Dzięki niej m.in. dyski SSD działają szybciej od dysków magnetycznych, w których występują opóźnienia w dostępie do danych spowodowane koniecznością rozruchu ich elektromechanicznych podzespołów. Są również odporniejsze na drgania, uderzenia i upadki, w efekcie czego ich MTBF jest kilka razy dłuższy niż w przypadku dysków HDD.

Ponadto dyski SSD zużywają mniej energii elektrycznej niż HDD, które potrzebują jej więcej do zasilenia silników napędzających dysk i głowice. W rezultacie dyski magnetyczne krócej pracują na zasilaniu bateryjnym oraz silniej się nagrzewają. Przez to ostatnie potrzebują one wentylatora, który zwiększa ich koszt, wagę, pobór energii, awaryjność i głośność.

Z drugiej strony komórki pamięci półprzewodnikowych mają skończoną żywotność. To oznacza, że mogą być zapisywane i odczytywane określoną liczbę razy, zanim przeprowadzenie takich operacji stanie się niemożliwe. Przyczyną tego ograniczenia jest specyfika mechanizmu zapisu danych.

Każdą operację zapisu nowych informacji poprzedza skasowanie dotychczasowej zawartości komórek. W wyniku często powtarzających się cykli gromadzenia i usuwania ładunku z bramki pływającej w cienkiej warstwie izolatora oddzielającej bramkę pływającą od bramki sterującej powstają defekty. Gromadzą się w nich ładunki. Łatwiej również te ostatnie mogą wówczas przepływać do albo odpływać z bramki pływającej.

Typowo żywotność pamięci typu NAND SLC wynosi 100 tys. cykli kasowania/zapisu, a pamięci typu NAND MLC - 10 tys. takich cykli. Po przekroczeniu tych wartości pewny oraz bezbłędny zapis oraz odczyt informacji nie jest już zagwarantowany. Dlatego w dyskach SSD implementuje się rozwiązania, które mają na celu wydłużenie czasu ich pracy.

Dyski SSD - formaty i zastosowania

Dyski SSD dostępne są w formatach tradycyjnych magnetycznych dysków HDD, czyli: 5,25", 3,5", 2,5" i 1,8". Największe z nich, 5,25-calowe, nie są szeroko używane, przede wszystkim korzysta się z nich w zastosowaniach specjalistycznych, natomiast z najmniejszych, 1,8-calowych, na przykład w ultrabookach. 3,5-calowe dyski SSD są instalowane w komputerach stacjonarnych, natomiast dyski 2,5-calowe w laptopach.

Dyski w rozmiarach 2,5" oraz 3,5" są najpopularniejsze, dzięki rozmiarowi bowiem są zamiennikami dysków HDD. W systemach wbudowanych w przemyśle wykorzystuje się także dyski półprzewodnikowe m.in. w znanym od lat 90. zeszłego wieku formacie Disk-On-Module (DOM) i formacie MO-300. SSD drugiego typu mają wymiary 50,8×29,85 mm i są wyposażone w złącze mini SATA (mSATA).

Mimo podobieństwa tego ostatniego do interfejsu Mini PCI Express, nie są one zgodne, dlatego kart pamięci obu typów domyślnie nie można używać zamiennie. W przemyśle używa się oprócz tego SSD w formacie MO-297 (slim SATA, inaczej half slim SATA) o wymiarach 39,8×54 mm, ze złączem takim, w jakie wyposaża się 2,5-calowe dyski SATA SSD.

W 2012 roku wprowadzono nowy format, początkowo pod nazwą Next Generation Form Factor (NGFF), którą później zmieniono na M.2. Poza przemysłem SSD w tym rozmiarze montuje się także w ultrabookach i tabletach. Typowo dyski półprzewodnikowe w formacie M.2 mają wymiary 22×30 mm (na zdjęciu), chociaż specyfikacja dopuszcza wiele innych rozmiarów oraz złącza SATA lub PCIe.

Na czym polega wzmocnienie zapisu?

Jak pisaliśmy wcześniej, w przypadku pamięci Flash nie można zapisać nowych informacji przez nadpisanie starych danych, jak to ma miejsce w dyskach magnetycznych. Wcześniej informacje, które się już zdezaktualizowały, należy wykasować. W rezultacie, chociaż pusta strona w bloku może zostać zapisana bezpośrednio, nie można jej nadpisać bez uprzedniego skasowania całego bloku stron.

Gdy dane się zmieniają, te najnowsze są zapisywane do innych stron w bloku albo do nowych bloków. Wówczas stare, nieaktualne strony są oznaczane jako nieprawidłowe, a miejsce po nich można odzyskać, wymazując cały blok. Aby jednak móc to uczynić, informacje zapisane w innych stronach danego bloku, które wciąż są aktualne, należy przenieść do innego bloku.

Konieczność tej relokacji powoduje tzw. efekt wzmocnienia zapisu (write amplification). Polega on na tym, że całkowita faktycznie wykonana liczba operacji zapisu informacji w pamięci Flash będzie większa od tej, która jest pozornie wymagana do zapisanie takiej ilości danych. Ponadto obowiązek przeniesienia danych spowalnia proces zapisu.

Odśmiecanie i równoważenie zużycia

W celu zwolnienia miejsca w uprzednio zapisanych blokach kontroler dysku SSD wykonuje tzw. odśmiecanie (garbage collection). Jest to technologia stosowana do utrzymania spójności danych i wykonywania rutynowego oczyszczania SSD. Wiadomo, że z czasem pewne bloki pamięci Flash na skutek wielokrotnego zapisu i kasowania stają się bezużyteczne i wówczas lepiej, aby kontroler nie przenosił ich po dysku w inne miejsca, ale po prostu omijał, bo tak jest szybciej.

Niemniej usuwanie danych w komputerach typowo sprowadza się do oznaczenia bloków danych jako nieużywanych w samym systemie plików. Z tego powodu usuwanie nie powoduje fizycznego zapisu na dysku, w przeciwieństwie np. do nadpisania. Ponieważ ani HDD, ani SSD dostępu do systemu plików nie mają, nie są one w stanie ocenić, które z ich sektorów/stron są wolne do użycia.

Przy zapisie danych na klasycznym HDD dla dysku nie ma większego znaczenia, czy dany sektor ma zapisaną w nim informację. Proces zapisu w czystym sektorze nie różni się od tego w już zapisanym. Jednak dysk SSD, by przeprowadzić operację zapisu, musi wiedzieć, czy dana strona jest czysta. Jeśli tak nie jest, to procedura zwykłego zapisu zamienia się w procedurę odczytu-wymazywania-modyfikowania-zapisu. Procedura ta w SSD wiąże się ze sporym narzutem.

Tak dużym, że przy zapisie wydajność dysku może spaść nawet o ponad połowę, bo kasowanie danych dotyczy całych bloków składających się z wielu sektorów. Stąd nierzadko zapisanie 1 KB danych na dysku dużej pojemności wiąże się z przepisywaniem kilku MB. Ten problem rozwiązuje się za pomocą TRIM-u, niemniej skuteczne działanie tego mechanizmu wymaga wsparcia ze strony systemu operacyjnego, kontroler wiedząc, że współpracuje z dyskiem SSD, przy usuwaniu danych wysyła także komendę z informacją, które strony są już puste. Dysk SSD może więc przeprowadzić operacje czyszczenia przy usuwaniu.

W celu wydłużenia żywotności pamięci wdraża się mechanizm optymalizacji jej zużycia (wear leveling). Polega on na śledzeniu częstości korzystania z poszczególnych bloków pamięci oraz równomiernym rozmieszczaniu w nich danych w taki sposób, żeby żaden z bloków nie był czyszczony ani zapisywany częściej niż pozostałe.

W rezultacie wszystkie bloki pamięci są już chociaż raz zapisane, zanim operacja ta zostanie powtórzona. Maksymalna możliwa liczba komórek pamięci jest dzięki temu zużyta minimalnie. Zapewnia to żywotność najdłuższą z możliwych.

Metody równoważenia zużycia

Wear leveling realizuje się dynamicznie albo statycznie. Pierwsza metoda polega na optymalizacji zapisu wyłącznie danych dynamicznych, czyli takich, które są często aktualizowane. Zapisuje się je do tych bloków, które do tej pory były używane najrzadziej.

Druga metoda polega na zarządzaniu zapisywaniem zarówno danych dynamicznych, jak i statycznych. Monitorowany jest wtedy stopień zużycia wszystkich bloków pamięci. Jeśli te, z których dotychczas korzystano najrzadziej, są aktualnie puste, zapisuje się do nich nowe dane. Jeśli jednak znajdują się już w nich dane statyczne, te ostatnie przenosi się do bloków bardziej zużytych. Wadą tej techniki jest większy stopień złożoności, a przez to większe obciążenie kontrolera oraz wolniejszy zapis. W zamian uzyskuje się maksymalną możliwą żywotność nośnika. W dyskach SSD stosowany jest właśnie dynamiczny wear leveling.

Kody korekcyjne

Większa gęstość upakowania danych w pamięciach Flash MLC wymusza stosowanie w nich bardziej złożonych algorytmów ECC. Jest to zwykle jeden z dwóch algorytmów: Reeda Solomona lub BCH. Oba są skuteczniejsze niż kodowanie Hamminga, ponieważ wykrywają oraz naprawiają wiele błędów jednocześnie. Liczba tych ostatnich zależy od długości słowa kodowego i liczby bitów parzystości.

Kodowanie Reeda Solomona (używane też m.in. w CDROM-ach) wymaga jednak większej mocy obliczeniowej oraz pamięci, niż BCH, które jest prostsze. Kodowanie BCH umożliwia ponadto wykrycie oraz naprawę zarówno błędów rozproszonych w obrębie pamięci Flash, które nie są ze sobą skorelowane, jak i tych skupionych w jednym obszarze. Algorytm Reeda Solomona sprawdza się z kolei najlepiej w detekcji oraz korekcji tych ostatnich.

Kontroler dysku SSD

Za wykonanie powyższych zadań i nie tylko, bo implementuje się również wiele innych technik, które mają na celu zwiększenie żywotności oraz eliminowanie błędów danych w dyskach SSD (m.in. zarządzanie uszkodzonymi blokami oraz kodowanie korekcyjne), odpowiada kontroler. Spełnia on również drugą, równie ważną funkcję, umożliwiając komunikację pomiędzy dyskiem półprzewodnikowym a systemem nadrzędnym.

Kontroler dysku SSD to kluczowy komponent, którego część sprzętowa oraz oprogramowanie firmware powinny być wysoce zindywidualizowane oraz ściśle ze sobą powiązane. Wprawdzie od strony sprzętowej do jego budowy korzysta się ze standardowych bloków, takich jak na przykład CPU czy interfejsy jak UART, lecz to oprogramowanie firmware determinuje najważniejsze cechy użytkowe kontrolera dysku SSD.

Monika Jaworowska