Kontrolery pamięci Flash dla rozwiązań przemysłowych


Ostatnia modyfikacja: 10 lutego 2023

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 jest poświęcana 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). Zaletą FTL typu page mapping mode jest 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 (S10, kontrolery SD) 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 S11 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 kontrolerach S10 oraz S11 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. Ponadto, w przypadku kontrolera S10, dostępne jest podtrzymanie zasilania za pomocą kondensatorów tantalowych. Podtrzymanie zasilania za pomocą kondensatorów jest opcjonalne i wymaga zaprojektowania odpowiednich obwodów elektrycznych. 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 w skutek 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 de-kompresji 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 entropi 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 PS3110-S10Phison PS3111-S11Phison PS8210
InterfejsSATA IIISATA IIISD 3.0
Typ pamięciMLC, TLC, 3D NAND3D NAND, TLC, MLC3D NAND, TLC, MLC
Kanały pamięci82N/A
Typ ECCBCHLDPC hard&soft decodingBCH, LDPC hard&soft decoding
RAID ECCTAKTAKNIE
FTLTryb page mappingTryb page mappingTryb block/page mapping (zależnie od aplikacji)
Pamięć podręcznaDo 1GBBrakN/A
SzyfrowanieWspieraneWspieraneWspierane
Kompresja danychNIETAKNIE
PojemnośćDo 1TBDo 512GBDo 512GB
Prędkość sekwencyjna550/520 MB/s550/500 MB/s90/45 MB/s
Prędkość losowa (4k)100k/90k IOPS100k/85k IOPSB/D
Zabezpieczenie przed nagłą utratą napięciaTAK (możliwy montaż dodatkowych kondensatorów)TAKWbudowane w oprogramowanie
Atrybuty S.M.A.R.T.TAKTAKTAK (opcjonalnie)
NCQDo 32Do 32N/D
TRIMTAK. Deterministyczne lub niederministyczne (zależnie od FW)TAK. Deterministyczne lub niederministyczne (zależnie od FW)N/D
Secure EraseTAKTAKN/D
Over provisioningTAKTAKTAK
Czujnik termalnyWspierane (opcjonalnie)Wspierane (opcjonalnie)N/D
Zarządzanie uszkodzonymi blokamiWbudowaneWbudowaneWbudowane
Zarządzanie niskim poborem mocyTryb DIPM/HIPMTryb DIPM/HIPMBazujące na standardzie SD
Read retryTAKTAKTAK