MECHANIZMY WYKRYWANIA I OGRANICZANIA BŁĘDÓW ZAPISU
Oprócz wzmocnienia konstrukcji stosuje się też specjalne algorytmy implementowane w kontrolerach zarządzających transmisją danych między kartą pamięci (dyskiem) a urządzeniem, w którym nośnik pracuje. Przykładem są funkcje detekcji i korekcji błędów (Error Checking and Correcting - ECC).
W tym zakresie obecnie najpopularniejsze jest kodowanie korekcyjne Reeda-Solomona, Hamminga oraz kody BCH (Bose-Ray-Chaudhuri-Hocquenghema). Dodatkowo aby zapewnić bezbłędny zapis danych, stosuje się też mechanizm zarządzania uszkodzonymi blokami pamięci (Bad Block Management). Takie sektory mogą powstawać na etapie produkcji pamięci lub już w czasie jej użytkowania.
Informacje o nich są zapisywane w specjalnie w tym celu utworzonej tablicy, której zawartość jest na bieżąco aktualizowana na podstawie danych z rejestrów, w których odnotowywana jest każda operacja programowania/kasowania pamięci zakończona niepowodzeniem. Na podstawie informacji z tej tablicy kontroler nie odwołuje się więcej do uszkodzonych bloków nośnika.
Ponadto w kontrolerach pamięci Flash często wdraża się też mechanizmy do monitorowania parametrów karty, które umożliwiają m.in. określenie stopnia jej zużycia - przykładem jest funkcja SMART (Self-Monitoring, Analysis, and Reporting Technology), funkcje odzyskiwania danych oraz detekcji braku zasilania.
WEAR LEVELING
W większości kart pamięci i dysków Flash wykorzystuje się też mechanizm optymalizacji zużycia pamięci - tzw. wear leveling, który zapobiega jej przedwczesnemu zużywaniu się. Uzyskuje się to, zapewniając równomierne rozmieszczanie danych w poszczególnych blokach pamięci. Dzięki temu nie zachodzi zbyt częste zapisywanie i czyszczenie tych samych bloków, co nie jest pożądane ze względu na ograniczoną liczbę cykli programowania i kasowania.
Zagadnienie to zilustrować można następującym przykładem. Załóżmy, że dysponujemy nośnikiem Flash składającym się z 4096 bloków pamięci. Jest on używany do zapisu trzech plików o rozmiarze 50 bloków pamięci, które są aktualizowane z częstotliwością 1 pliku co 10 minut (6 plików na godzinę).
Jeżeli dane te będą wciąż zapisywane do tych samych 200 bloków pamięci nośnika, przy założeniu, że producent zagwarantował żywotność pamięci rzędu 10 tys. cykli programowanie/ kasowanie, nośnik zużyje się w czasie krótszym niż rok: (10000×200) / (50×6×24) = 278 dni. Jednocześnie pamięć w okresie użytkowania w ponad 95% pozostanie niewykorzystana. W przypadku gdyby wszystkie bloki pamięci były używane do zapisu tych danych z taką samą częstotliwością, pamięć byłaby użyteczna znacznie dłużej: (10000×4096) / (50×6×24) = 5689 dni.
WEAR LEVELING DYNAMICZNY I STATYCZNY
Mechanizm wear leveling można zrealizować na dwa sposoby: dynamicznie i statycznie. Pierwsza metoda polega na zapisywaniu nowych informacji, do tych niezapisanych bloków pamięci, które były dotychczas najrzadziej używane. Dynamiczny wear leveling jest wykorzystywany tylko do zarządzania zapisem danych, które są często aktualizowane.
Stąd w przypadku pamięci, w której 25% stanowią dane dynamiczne, a resztę dane statyczne (rzadko zmieniane, chociaż mogą być odczytywane wielokrotnie), zaledwie 1/4 wszystkich bloków jest używana z uwzględnieniem stopnia ich zużycia. Statyczny mechanizm wear leveling obejmuje natomiast wszystkie dane zapisywane w pamięci Flash.
W tym wypadku również najpierw są wyszukiwane najmniej zużyte bloki pamięci. Jeżeli są one aktualnie puste, to do nich zapisywane są nowe informacje. Jeżeli jednak akurat w tych blokach przechowywane są dane statyczne, kopiuje się je do innych, bardziej zużytych miejsc w pamięci.
Metoda statyczna jest pod względem wydłużenia żywotności pamięci Flash rozwiązaniem efektywniejszym niż dynamiczny wear leveling. Jednocześnie, ponieważ wymaga przenoszenia danych statycznych, jest bardziej skomplikowana. W efekcie w większym stopniu obciąża kontroler, co skutkuje większym poborem prądu i zmniejszeniem wydajności operacji zapisu.
TESTOWANIE PAMIĘCI FLASH W WYKONANIU PRZEMYSŁOWYM
Aby sprawdzić skuteczność wdrożonych rozwiązań, dyski SSD i karty pamięci Flash w wykonaniu specjalnym poddawane są na etapie kontroli jakości licznym testom. Wszystkie badania powinny być przeprowadzane w czasie gdy nośnik (w pełni funkcjonalny prototyp lub gotowy produkt) pracuje w urządzeniu docelowym (na przykład w komputerze).
Ponieważ karty pamięci oraz dyski SSD w wykonaniu specjalnym z reguły są dopuszczone do pracy w rozszerzonym zakresie temperatur (od -40°C do +85°C) i w szerokim zakresie wilgotności powietrza (od kilku do 95%), obowiązkowo poddaje się je badaniom sprawdzającym ich niezawodność i wytrzymałość w takich warunkach. Testy takie przeprowadza się w komorach klimatycznych.
Tam też poprzez zmianę ciśnienia można zasymulować warunki panujące na dużych wysokościach, co jest wymagane na przykład w testowaniu pamięci w wersjach dla wojska. Z kolei w pomiarach wytrzymałości nośników na wibracje i udary wykorzystuje się specjalne stanowiska umożliwiające poddanie pamięci takim oddziaływaniom o różnej amplitudzie i częstotliwości.
Oddzielne stanowiska pomiarowe są też używane w testowaniu nośników pamięci pod kątem wytrzymałości na wyładowania elektrostatyczne, a także w sprawdzaniu ich wodoszczelności i pyłoszczelności. W trakcie wszystkich tych badań celowo wywołuje się też błędy zapisu, co ma na celu sprawdzenie mechanizmów ich detekcji i korekcji oraz okresowo odłącza się zasilanie, testując, jak taka sytuacja wpływa na spójność danych zapisanych w pamięci.
NORMY BADAŃ ŚRODOWISKOWYCH
Procedury, jakich należy przestrzegać, przeprowadzając testy środowiskowe, w tym informacje o szybkości i przyroście zmiany danego czynnika, która pozwoli zasymulować warunki rzeczywiste, opisane są w odpowiednich normach. W zakresie badań wytrzymałości na temperaturę, wilgotność, pracę na wysokościach oraz wibracje i udary odpowiednie wytyczne znaleźć można na przykład w wydanych przez armię amerykańską normach MIL-STD-810F.
Metodyka badań środowiskowych jest też opisana w standardach IEC, na przykład w IEC 68-2-6 w przypadku wibracji, IEC 68-2-27 dla udarów oraz w zakresie testów odporności na wyładowania elektrostatyczne w normie IEC 61000-4-2. Dostawcy kart pamięci i dysków SSD do kart katalogowych często dołączają raporty z testów środowiskowych, którym zostały poddane ich produkty. Można się w nich zapoznać ze szczegółowym opisem przeprowadzonych badań oraz ich wynikami, w tym z dokumentacją także w formie zdjęć przedstawiających poszczególne stanowiska pomiarowe (fot. 11).
Monika Jaworowska