Moduł Kingston eMMC na tle czarnej obudowy komputera.

Szacowanie, weryfikacja i monitorowanie cyklu życia pamięci eMMC

Procesy obsługiwane przez magistralę NAND

Pamięć NAND flash nie jest prostym nośnikiem do odczytu/zapisu danych. Aby zapewnić jej niezawodne działanie, należy zaimplementować kilka algorytmów: zarządzanie blokami NAND, usuwanie pozostałości danych, kontrola błędów oraz równoważenie zużycia. Nowoczesna pamięć NAND flash jest pamięcią zarządzaną, wyposażoną w algorytmy zapisane w urządzeniu pamięci, a nie zaimplementowane w procesorze hosta. Jest to korzystne dla użytkowników, ponieważ sprawia, że zarządzanie pamięcią NAND jest mniej skomplikowane dla hosta i upraszcza obsługę oraz utrzymanie produktu.

Zapisy hosta w pamięci NAND flash charakteryzują się pewnym stopniem nieefektywności, co może spowodować wcześniejszą awarię nośnika. Najmniejszą jednostką organizacyjną pamięci NAND jest strona, którą można odczytać i zaprogramować, ale nie można jej wymazać. Jedyną jednostką organizacyjną, którą można wymazać, jest blok składający się z wielu stron. Dlatego stron nie można nadpisać, dopóki nie zostanie usunięty blok. Bloki mogą z czasem ulec usterce, gdy zostanie osiągnięty górny poziom ich wytrzymałości. Mogą również wystąpić usterki prowadzące do wcześniejszej awarii.

Pamięć NAND flash ma ograniczoną liczbę cykli programowania i wymazywania. Osiągnięcie wartości granicznej oznacza, że urządzenie jest w stanie zużycia (EoL) i przestało być niezawodne. Wytrzymałość pamięci różni się w zależności od konfiguracji komórek NAND.

Jednopoziomowa konfiguracja komórek zapewnia największą wytrzymałość i największy margines błędu.

eMMC LBA 512B Sector Address

NAND Page & Block Address
0:31 Blk10, Pg101
32:63 Blk10, Pg102
64:95 Blk10, Pg103
96:127 Blk10, Pg104
128:159 Blk15, Pg57
160:191 Blk8, Pg129
192:223 Blk10, Pg107
224:255 Blk22, Pg88

Pamięć eMMC wykonuje odczyt i zapis w 512-bajtowych jednostkach sektora, które są logiczne – nie fizyczne. Adresy sektorów określa się mianem adresów bloków logicznych (ang. Logical Block Addresses, LBA). Gdy następuje modyfikacja danych, wymazanie całego bloku NAND byłoby niepraktyczne, powodując nieefektywne zużycie stron, które się nie zmieniły. Schemat mapowania LBA-PBA (ang. Physical Block Address) umożliwia mniejsze zapisy w celu zrównoważenia zużycia bloków, co określa się mianem równoważenia zużycia. Za pomocą tablicy translacji adresów adresy LBA są mapowane do adresów PBA. Proces ten zapewnia równoważenie zużycia bloków i poprawia szybkość zapisu.

Proces mapowania adresów przebiega w następujący sposób:

  • Sektory eMMC są 512-bajtowe, podczas gdy strony NAND – 16-kilobitowe. Tablica mapowania grupuje 32 sekwencyjne adresy sektorów w jednostkę wielkości strony.
  • Jeśli sektor w grupie stron zostanie zmodyfikowany, kontroler odczytuje całą grupę sektorów dla tej strony, aktualizuje wszystkie zmodyfikowane sektory, a następnie programuje nowe dane na nowej stronie.
  • Po zaprogramowaniu zaktualizowanej strony tablica jest aktualizowana poprzez nadpisanie poprzedniego wpisu adresem bloku i zaktualizowanej strony NAND.
  • Nawet jeśli zostanie zmodyfikowany tylko jeden sektor, pamięć NAND flash musi zaprogramować całą stronę. Tę nieefektywność określa się mianem wzmocnienia zapisu (ang. Write Amplification). Stosunek zapisów pamięci NAND flash do zapisów na poziomie urządzenia eMMC określa się mianem współczynnika wzmocnienia zapisu (ang. Write Amplification Factor, WAF).

Zwykle największym źródłem zjawiska wzmocnienia zapisu są małe, losowe, niedopasowane do strony wielokrotne zapisy. Aby zminimalizować współczynnik WAF, zapisy powinny być dopasowane do granic strony w wielokrotnościach jednostek rozmiaru strony. Optymalny rozmiar jednostki jest określony w polu Optimal Write Size (Optymalny rozmiar zapisu) w rejestrze Extended CSD.

Wzór na obliczenie całkowitej liczby zapisanych bajtów (ang. Total Bytes Written, TBW) jest prosty:

(pojemność urządzenia x współczynnik wytrzymałości) / WAF = TBW.

Często współczynnik WAF ma wartość od 4 do 8, jednak zależy to od działania systemu hosta podczas zapisu. Na przykład duże sekwencyjne zapisy dają niższy współczynnik WAF, podczas gdy losowe zapisy małych bloków danych skutkują wyższym współczynnikiem WAF. Tego rodzaju działanie często prowadzi do przedwczesnej awarii urządzeń pamięci masowej.

Na przykład dla pamięci eMMC o pojemności 4GB, przy współczynniku wytrzymałości 3000 i WAF równym 8, będzie to:

(4GB x 3000) / 8 = 1,5TB.

Całkowita liczba zapisanych bajtów dla urządzenia eMMC wynosi 1,5TB. Oznacza to, że w ciągu całego cyklu życia produktu można zapisać na nim 1,5TB danych zanim osiągnie on stan EoL.

Aby oszacować swoje zapotrzebowanie na TBW, należy oszacować dzienne wykorzystanie danego urządzenia. Na przykład przy dziennym obciążeniu zapisem wynoszącym 500MB (i zakładanym 5-letnim cyklu życia) niezbędne będzie urządzenie, które może osiągnąć wartość TBW powyżej 915GB:

0,5GB x 365 = 183GB rocznie lub 915GB w ciągu 5 lat.

Wartość TBW można wykorzystać do określenia maksymalnego dopuszczalnego współczynnika WAF dla urządzenia, ponieważ TBW = (DC x EF) / WAF. Jeśli żywotność danego urządzenia nie może osiągnąć docelowej wartości TBW w danym zastosowaniu produktu, można spróbować ją poprawić. W takim przypadku należy rozważyć ustawienie pamięci w trybie komórek pseudojednopoziomowych (ang. Pseudo Single Level Cell, pSLC), co może pozwolić na ponad dziesięciokrotne zwiększenie wytrzymałości poprzez przełączenie urządzenia z trybu TLC lub MLC w tryb jednego bitu na komórkę. Spowoduje to jednak drastyczne zmniejszenie pojemności: o 50% w przypadku urządzenia działającego w trybie MLC (dwa bity na komórkę) lub ponad 66% w przypadku urządzenia działającego w trybie TLC (trzy bity na komórkę). Jeśli jest to rozwiązanie niezadowalające, pomocne może być zastosowanie do obsługi danego obciążenia urządzenia o większej pojemności. Urządzenie o dwukrotnie większej pojemności będzie miało dwukrotnie większą wartość TBW.

Algorytmy eMMC firmy Kingston osiągają niski współczynnik wzmocnienia zapisu. Oferujemy wiele konfiguracji, aby umożliwić zrównoważenie wydajności, żywotności i niezawodności pamięci. Wiek urządzenia można monitorować za pomocą narzędzi JEDEC do szacowania żywotności umieszczonych w rejestrze EXT_CSD – wspólnej funkcji dla wszystkich urządzeń eMMC. Żywotność jest określana w 10-procentowych przedziałach w oparciu o wytrzymałość urządzenia. Jedno narzędzie określa wiek bloków NAND flash skonfigurowanych w trybie TLC lub MLC, podczas gdy drugie podaje wiek bloków skonfigurowanych w trybie pseudo SLC. Urządzenia pamięci eMMC firmy Kingston obsługują również polecenia dostawcy, które pozwalają określić średni wiek bloku urządzenia. Są one bardziej precyzyjne niż narzędzia JEDEC, ale do ich użycia niezbędne jest opracowanie niewielkiego oprogramowania. Można również przesłać stare urządzenie do firmy Kingston w celu przeprowadzenia bardziej kompleksowej analizy.

#KingstonIsWithYou

promo embedded

Zapytaj eksperta

Aby wybrać odpowiednie rozwiązanie, należy poznać wymagania danego projektu i systemu. Skorzystaj ze wskazówek ekspertów firmy Kingston.

Zapytaj eksperta

Powiązane filmy

Powiązane artykuły