Wstęp

Pamięci masowe Goodram Industrial do zastosowań przemysłowych cechują się dużą niezawodnością, trwałością oraz szerokim zakresem temperatur pracy. Cechy te są osiągane dzięki projektowaniu uwzględniającemu specyfikację i oczekiwania klienta. Spełnienie tych oczekiwań jest niemożliwe bez selekcji oraz walidacji elementów składowych. W procesie tym szczególna uwaga poświęcana jest kontrolerowi pamięci oraz jego cechom gwarantującym bezawaryjną pracę w długim okresie użytkowania.

Zarządzanie pamięcią NAND FLASH

Zastosowanie NAND FLASH w pamięciach masowych wymaga szeregu technik optymalizacji. Jedną z ważniejszych technik optymalizacji jest translacja adresu sektora dyskowego do fizycznego adresu strony pamięci (logical to physical mapping). Jest ona niezbędna, gdyż host (komputer) adresuje pamięć posługując się sektorami wielkości 512 B, natomiast wielkość typowej strony NAND FLASH wynosi 8 lub 16 kB i nie ma możliwości powtórnego programowania strony bez wykasowania całego bloku pamięci. Blok pamięci zawiera 256-512 stron, zatem mechanizm translacji adresów musi współdziałać z algorytmem porządkującym (garbage collection). Porządkowanie danych polega na defragmentacji bloków pamięci. W jej wyniku aktualne dane zostają przenoszone do wolnych stron pamięci w taki sposób, aby zapełnić blok. Blok, w którym znajdują się dane nieaktualne, zostaje wykasowany i przygotowany do ponownego zapisu. Równomierną dystrybucję cykli zapisu pomiędzy wszystkimi blokami pamięci NAND FLASH zapewnia algorytm wear leveling. Bazuje on na licznikach cykli zapisu/programowania (p/e) bloków pamięci. Wszystkie z wymienianych algorytmów uwzględniają mapę uszkodzonych bloków. Mapa ta jest tworzona w chwili inicjalizacji pamięci masowej i może być rozbudowywana w późniejszym czasie o bloki wykluczone z użytkowania tzw. run time bad block lub later bad block. Budowa oraz wysoka niezawodność zaimplementowanych algorytmów optymalizacji w Goodram Industrial gwarantują niezawodną pracę pamięci masowych w całym wyspecyfikowanym okresie ich użytkowania.

Flash translation layer

W kontrolerach dysków SSD zaimplementowany jest FTL typu page mode mapping. W cyklu zapisu/odczytu sektora danych wyliczany jest logiczny numer strony (LPN). Logiczny numer strony jest poddawany translacji na fizyczny numer strony (PPN). Translacja jest wykonywana za pomocą tablicy Mapping Table.

Tablica Mapping Table przechowuje informacje pozwalające wybrać właściwy układ pamięci, rdzeń, fizyczny blok pamięci (PBN). Zaletami FTL typu page mapping mode są duża szybkość działania oraz niskie wzmocnienie zapisu. W kontrolerach kart SD dostępna jest również druga metoda translacji: block mode mapping. Zasada działania block mapping mode jest analogiczna do wcześnie omawianej z tą różnicą, że tablica Mapping Table zawiera adresy bloków. Wybór metody translacji zależy od zastosowanego układu pamięci NAND FLASH oraz oczekiwanej szybkości działania.

Wear leveling

We wszystkich kontrolerach stosowanych w pamięciach masowych Goodram Industrial zastosowany jest statyczny i dynamiczny algorytm wear leveling. W strategii zapisanej w algorytmie wear leveling jest taki wybór bloków pamięci, aby zredukować różnice pomiędzy liczbami cykli p/e we wszystkich blokach pamięci. Cel ten jest osiągany poprzez zmianę lokalizacji danych statycznych i użycie tych lokalizacji do zapisu danych często rotujących.

Over Provisioning

Over provisioning jest wspierany przez wszystkie kontrolery w pamięciach masowych Goodram Industrial. W przypadku dysków SSD i systemów operacyjnych wspierających polecenie TRIM, rozmiar dynamicznego overprovisioning zależy od układu partycji utworzonych na dysku tj. miejsce nie przydzielone do partycji lub miejsce, do którego nie są przydzielone pliki, jest automatycznie używane przez kontroler w celu zwiększenia wydajności i trwałości NAND FLASH. Rozmiar przeznaczony na overprovisioning może być również ustawiony przez użytkownika za pomocą dowolnego narzędzia dyskowego i komendy ATA SET MAX ADDRESS np. hdparm (Linux). W przypadku kontrolera kart SD nie ma możliwości ustawienia over provisioning’u. W tym przypadku zwiększenie wydajności i trwałości kart jest możliwe dzięki wykasowaniu sektorów danych przed ich ponownym nadpisaniem (komenda ERASE – CMD38).

ECC

W kontrolerach dysków SSD oraz kart SD stosowane są metody detekcji-korekcji błędów BCH, LDPC hard i soft decoding. Metoda BCH jest stosowana w przypadku pamięci planarnych typu 2D. Metoda LDPC jest stosowana w detekcji-korekcji błędów w pamięciach typu 3D (w przypadku S11T również 2D). W przypadku kontrolerów SSD generowane są dodatkowe bity ECC, które są zapisywane w innych stronach pamięci, niż dane (RAID ECC). W sytuacji wykrycia niekorygowanego błędu danych dodatkowe bity ECC zwiększają prawdopodobieństwo korekcji błędu danych. W przypadku wystąpienia takiej sytuacji skorygowane dane są zapisywane w innej stronie, a blok, w którym znajduje się strona źródłowa, jest oznaczany jako niesprawny.

Read-retry

W sytuacji, gdy wystąpią niekorygowane błędy danych, kontrolery zastosowane w Goodram Industrial podejmują ponowną próbę odczytu danych dla zmienionej wartości napięcia odniesienia Vref. Odczytane dane są poddawane twardej korekcji (BCH, LDPC hard decoding) lub mogą posłużyć utworzeniu statystyki dystrybucji napięć. Statystyka dystrybucji napięć jest podstawą działania algorytmu LDPC soft decoding.

Zabezpieczenie przed nagłą utratą napięcia

Ryzyko utraty danych wskutek nagłego zaniku zasilania jest minimalizowane metodami właściwymi dla danego kontrolera. W kontrolerze S11T zaimplementowana jest strategia ograniczająca ilość i czas przetrzymywania danych w pamięci cache. Sygnał ACK potwierdzający zapis danych jest generowany dopiero po zapisaniu danych w pamięci głównej FLASH. W ten sposób wyeliminowano ryzyko błędnego pozytywnego potwierdzenia zapisu danych. Kontrolery kart SD realizują inną strategię. W SD zapis jest podwójnie buforowany. Po załączeniu zasilania następuje weryfikacja ostatnio zapisywanych danych. Jeżeli wskutek utraty zasilania nastąpiły niekorygowane błędy danych, nadpisanie oryginalnych danych jest pomijane lub dane są odtwarzane z bufora.

SmartZIP

Działanie funkcji SmartZIP polega na kompresji danych w cyklu zapisu i dekompresji w cyklu odczytu. W cyklu zapisu dane z bufora zapisu są kierowane do bloku kompresji. W bloku kompresji następuje zmniejszenie ich rozmiaru. W zależności od entropii rozmiar zapisywanych bloków może zostać zredukowany kilkukrotnie. Skompresowane dane są zapisywane w NAND FLASH. W cyklu odczytu następuje odwrotna sytuacja, tj. dane odczytane z NAND FLASH są dekompresowane, a następnie przekazywane do bufora odczytu. Zaletą funkcji SmartZIP jest duża szybkość działania (kompresja jest wykonywana wewnętrznie bez udziału hosta) oraz wydłużenie żywotności NAND FLASH.

Porównanie kontrolerów
Phison PS3111-S11TPhison PS8210
InterfejsSATA IIISD 3.0
Typ pamięci3D NAND, TLC, MLC 3D NAND, TLC, MLC
Kanały pamięci2N/A
Typ ECCLDPC hard&soft decodingBCH, LDPC hard&soft decoding
RAID ECCTAKNIE
FTLTryb page mappingTryb block/page mapping (zależnie od aplikacji)
Pamięć podręcznaBrakN/A
SzyfrowanieWspieraneWspierane
Kompresja danychTAKNIE
PojemnośćDo 512GBDo 512GB
Prędkość sekwencyjna550/500 MB/s90/45 MB/s
Prędkość losowa (4k)100k/85k IOPSB/D
Zabezpieczenie przed nagłą utratą napięciaTAKWbudowane w oprogramowanie
Atrybuty S.M.A.R.T.TAKTAK (opcjonalnie)
NCQDo 32N/D
TRIMTAK. Deterministyczne lub niederministyczne (zależnie od FW)N/D
Secure EraseTAKN/D
Over provisioningTAKTAK
Czujnik termalnyWspierane (opcjonalnie)N/D
Zarządzanie uszkodzonymi blokamiWbudowaneWbudowane
Zarządzanie niskim poborem mocyTryb DIPM/HIPMBazujące na standardzie SD
Read retryTAKTAK