Nowoczesne pamięci nieulotne

Nowoczesne  pamięci nieulotne
Pobierz PDF Download icon

Pamięci elektroniczne to dosyć nudne podzespoły. Nie mają bogatych funkcji ani same w sobie nie pozwalają uzyskać widowiskowych efektów. Mimo to ich znaczenie w ostatnich latach istotnie wzrosło. Coraz silniejszy trend, polegający na przenoszeniu funkcji urządzeń elektronicznych ze sprzętu do oprogramowania narzuca większe wymagania odnośnie pamięci, w których - czy to kod programu, czy dane - mają być przechowywane. W niniejszym artykule pokazujemy, po jakie pamięci nieulotne warto sięgnąć w różnych aplikacjach.

Projektując jakiekolwiek nowoczesne urządzenie cyfrowe, niemal na pewno staniemy przed kwestią zapewnienia pamięci dla tej aplikacji. W przypadku prostszych projektów często wystarczy pamięć wbudowana w mikrokontroler, ale jeśli tylko zechcemy zaimplementować obsługę jakichś funkcji multimedialnych lub przygotować atrakcyjny interfejs graficzny, dodatkowa pamięć nieulotna najpewniej będzie niezbędna. Jednakże wybór optymalnego modułu lub układu pamięci nie jest taki oczywisty. Dobór podzespołu należy poprzedzić rozważaniami na temat następujących kwestii:

- jak dużo pamięci jest potrzebne?
- jak szybka musi być pamięć w zapisie, a jak szybka w odczycie?
- jak często będzie prowadzony zapis i jaka ma być żywotność urządzenia?
- w jakich temperaturach ma pracować pamięć?
- jaki interfejs zostanie użyty do komunikacji z pamięcią?
- czy pamięć ma być wlutowana na stałe, czy wymienna?
- jak dużą fizyczną przestrzeń może zajmować moduł pamięci?
- czy komunikacja z pamięcią musi być szyfrowana?
- jak długo pamięć będzie pozostawał bez zasilania?
- jaką moc może pobierać układ pamięci?
- jaki może być dopuszczalny koszt wybranej pamięci?

Jak widać, lista kwestii do zastanowienia jest dosyć długa, ale w wielu przypadkach podjęcie decyzji odnośnie tylko kilku z wymienionych punktów pozwala jednoznacznie określić rodzaj optymalnej pamięci. Wynika to z faktu, że – jak to często w technice bywa – zalety w jednej kategorii są okupione wadami w innej. Dlatego warto zacząć analizę od początkowych punktów i stopniowo przechodzić do kolejnych.

Pojemność

W dziedzinie pojemności, spośród pamięci elektronicznych, dominują układy NAND FLASH. Oczywiście w niektórych aplikacjach można rozważać użycie magnetycznych dysków mechanicznych, czy nawet przechowywanie wszelkich danych na serwerach w chmurze (to też właściwie forma pamięci) i dostęp do nich przez sieć. Niemniej w niniejszym artykule koncentrujemy się na podzespołach półprzewodnikowych i zapamiętywaniu danych bezpośrednio w tworzonym urządzeniu.

W dziedzinie pamięci NAND FLASH nastąpił w ostatnich latach bardzo duży postęp. Wynika to przede wszystkim z faktu, że rynek ten jest mocno konkurencyjny oraz bardzo duży. Pamięci tego typu instalowane są we wszelkich komputerowych i mobilnych urządzeniach konsumenckich, a także w wielu aplikacjach przemysłowych. Pozwalają z powodzeniem zastąpić nośniki magnetyczne, a jednocześnie cechują się lepszymi parametrami pod większością względów. Stanowią też podstawę wszelkiego rodzaju nośników wymiennych – czy to w postaci kart, czy pendrive’ów.

Należy jednak odróżnić samą pamięć, dostępną np. w postaci pojedynczego układu scalonego, od jej kompletnego modułu – choćby nośnika SSD. Ten ostatni to dysk, który składa się z odpowiedniej liczby kości pamięci i kontrolera oraz złącza, poprzez które kontroler komunikuje się z urządzeniem, do którego dysk jest podłączany. To akurat nie w odniesieniu do pojemności nie ma znaczenia. Pojemność (w przeliczeniu na powierzchnię zajmowaną przez układy) zależy natomiast od rodzaju zastosowanych układów NAND FLASH. Te można podzielić na dwa sposoby.

Po pierwsze w oparciu o liczbę bitów zapisywanych w jednej komórce pamięci. Na rynku zaleźć można układy:

- SLC (Single-Level Cell), przechowujące po jednym bicie w komórce,
- MLC (Multi-Level Cell) i eMLC (enterprise MLC), przechowujące po dwa bity w jednej komórce,
- TLC (Triple-Level Cell), przechowujące po trzy bity w jednej komórce.

Po drugie aktualnie dokonuje się też podziału na sposób ułożenia komórek, a więc planarny, w którym komórki pamięci znajdują się obok siebie, w jednej płaszczyźnie, 3D, w którym komórki pamięci są umieszczane nie tylko obok siebie, ale też na sobie, tworząc trójwymiarową strukturę.

Teoretycznie wszystkie rodzaje, różniące się liczbą przechowywanych bitów w komórce można wykonać zarówno w postaci planarnej, jak i 3D, ale w praktyce w 3D spotyka się przede wszystkim pamięci MLC i TLC.

Różnice pomiędzy poszczególnymi rodzajami pamięci NAND FLASH są duże i dotyczą nie tylko samej pojemności. Ta natomiast jest największa (w przeliczeniu na zajmowaną powierzchnię płytki drukowanej) w przypadku trójwymiarowych układów TLC, a najmniejsza dla planarnych SLC. Aktualnie producenci pracują przede wszystkim nad rozwijaniem technologii trójwymiarowego nakładania warstw komórek, osiągając umiejętność tworzenia do 48 lub 64 warstw, w zależności od producenta. Postęp w tej dziedzinie jest dynamiczny, gdyż biorą w nim udział takie firmy jak Intel, Toshiba, Micron i Samsung. Ten ostatni zresztą chwali się, że ich technologia pozwala na układanie nawet do 100 warstw na sobie.

Szybkość odczytu i zapisu

Sposób budowy pamięci decyduje o możliwej szybkości odczytu i zapisu. Spośród układów NAND FLASH najszybsze są modele SLC, a więc te o najmniejszej pojemności. Na drugim miejscu eMLC, a następnie MLC i w końcu TLC. Jednocześnie producenci wprowadzający technologię pamięci 3D twierdzą, że pozwala ona zredukować czas dostępu do pamięci, względem układów planarnych, co pozwala podzespołom TLC osiągać prędkości dostępne dla MLC.

W przypadku gotowych modułów NAND FLASH, a więc wszelkiego rodzaju dysków i pendrive’ów, o szybkości decyduje zastosowany kontroler. Jego funkcje – poza adresowaniem – obejmują też pilnowanie, by komórki pamięci się równomiernie zużywały, a także decydowanie, w której kości zapamiętane zostaną które dane. Im kontroler szybszy i im sprawniej układa dane w poszczególnych układach scalonych, tym szybszy jest cały nośnik. To właśnie jeden z powodów, dla których dyski SSD są znacznie droższe i bardziej sprawne niż tanie pendrive’y, mimo że oba te rodzaje konstrukcji bazują na technologii NAND FLASH. Przewagę szybkości mają często dyski wyposażone w więcej identycznych układów pamięci, gdyż – jeśli kontroler na to pozwala – dane są wtedy równocześnie zapisywane do wielu układów jednocześnie.

Pamięć NAND FLASH świetnie nadaje się do przechowywania dużych ilości danych, które odczytywane są blokami. Jeśli jednak konieczne jest tylko wczytanie programu lub prostych ustawień, lepiej sprawdzą się układy NOR FLASH.

Liczba cykli zapisu i żywotność

Bardzo istotną kwestią jest żywotność pamięci, która podawana jest zarówno w cyklach zapisu i odczytu, jak i w latach. Różnice pomiędzy poszczególnymi technologiami są niebagatelne. Najbardziej pojemne układy cechują się niestety najkrótszą żywotnością. NAND FLASH pozwala na do ok. 100 tysięcy cykli zapisu (niektóre źródła mówią o milionie) w przypadku technologii SLC. Dla eMLC wartość ta spada mniej więcej 2-3-krotnie, a w przypadku MLC wynosi już ok. 10 tysięcy cykli. Układy TLC pozwalają jedynie na kilka tysięcy cykli zapisu, co niestety oznacza, że w wielu aplikacjach szybko ulegną uszkodzeniu. Jest to bardzo duży problem w przypadku licznych aplikacji, gdzie o zapisach do pamięci decyduje system operacyjny. Zdarza się, że zastosowane oprogramowanie, czy to bezpłatne, czy na licencji firm trzecich, nie zostało pomyślane pod kątem wykorzystania w komputerach z nośnikami typu Flash i co chwile dokonuje zapisów, skutecznie zużywając komórki pamięci. Bywa, że stosując niedrogą, nową kartę pamięci, w której nie zaimplementowano mechanizmu równoważenia zużycia komórek i podłączając ją do minikomputera z linuksowym systemem, już po kilku-kilkunastu tygodniach zaczynają pojawiać się nieodwracalne błędy. Dlatego tworząc urządzenia tego typu należy sięgać po pamięci bardziej trwałe, w których kontroler dba o równomierny rozkład zapisów oraz w których użyto układów SLC lub ewentualnie eMLC. Warto też przyjrzeć się oprogramowaniu i upewnić, że ograniczono częstość zapisów na nośnik.

Dla porównania, w przypadku pamięci NOR FLASH, układów FRAM czy PRAM, wytrzymałość może wynosić ok. 1010 – 1014 cykli, a więc o wiele rzędów wielkości więcej.

Drugi aspekt dotyczy samego czasu życia układu i podtrzymywania zapisanych danych. Ten zazwyczaj jest dosyć długi i w zależności od rodzaju układu, wynosi od 10 do kilkudziesięciu lat. W praktyce te wyższe wartości to tylko szacunki producentów, których prawdziwość jest aktualnie trudna do zweryfikowania.

Temperatura pracy

Układy pamięci, tak jak i wszelkie inne układy elektroniczne, są produkowane z myślą o konkretnym zakresie temperatury pracy. W praktyce na rynku znaleźć można zarówno podzespoły, które nie powinny być narażane na więcej niż 60 °C, jak i takie, które podobno z powodzeniem znoszą do 125 °C. Naturalnie te o szerszym, dopuszczalnym zakresie temperaturowym będą droższe, ale można je zastosować do aplikacji przemysłowych, wojskowych lub choćby do motoryzacji. I o ile większość z technologii pamięci elektronicznych nie jest mocno wrażliwa na temperatury, dobierając układy, szczególnie do urządzeń przenośnych, warto przewidzieć jakie są szanse, że użytkownik pozostawi gotowy produkt np. w samochodzie ustawionym w nasłonecznionym miejscu i czy urządzenie powinno nadal funkcjonować po kilku tak spędzonych godzinach.

Interfejs komunikacyjny i wymienialność pamięci

Dostępne interfejsy komunikacyjne bardzo się od siebie różnią w zależności od tego, czy wykorzystywane są pojedyncze układy scalone pamięci, czy gotowe moduły.

W przypadku pojedynczych układów najczęściej wykorzystywane są interfejsy szeregowe, takie jak SPI i I2C. Układy pamięci o większych pojemnościach korzystają najczęściej z interfejsów równoległych. Na rynku znaleźć można też podzespoły ze zmodyfikowanymi wersjami interfejsów szeregowych – np. QSPI (Quad SPI) i HyperBus.

W przypadku pamięci w postaci modułów wykorzystuje się albo interfejsy kart pamięci (MMC, SD, CF, CFast), albo wewnętrzne interfejsy komputerowe (SATA, mSATA, PCIexpress, miniPCIexpress, M.2), albo też uniwersalne interfejsy zewnętrzne (USB, eSATA, FireWire, Thunderbolt). Ich wybór będzie zależał przede wszystkim od dostępnych złączy oraz tego, czy nośnik ma być regularnie wymieniany, czy też wymiana ma być jedynie okazyjna. Wbrew pozorom, wybór nośnika z interfejsem USB lub SD do instalacji wewnątrz obudowy urządzenia i bez możliwości jego wyjmowania przez użytkownika czasem ma uzasadnienie. Po pierwsze bywa tak, że jest to rozwiązanie tańsze dla niedużych woluminów produkcyjnych, a po drugie wgrywanie danych na takie nośniki można bardzo łatwo, samodzielnie zrealizować.

Rozmiar fizyczny

Kolejna kwestia jest istotna szczególnie w przypadku urządzeń przenośnych. Obecnie zmieszczenie dużej ilości pamięci elektronicznej w małym sprzęcie zazwyczaj nie stanowi problemu, ale ci, którzy chcą tworzyć urządzenia rekordowo małych rozmiarów, muszą przyłożyć wagę także do rozmiaru samych pamięci. Ogólna zasad mówi, że mniejszy rozmiar można uzyskać samodzielnie decydując o rozłożeniu pojedynczych komponentów, niż gdy korzysta się z gotowych modułów. W przypadku pamięci NAND FLASH warto sięgnąć po  układy z trójwymiarowo ułożonymi warstwami, co znacząco zmniejsza sumaryczny rozmiar podzespołów. Oczywiście większą pojemność i to tańszym kosztem, da się uzyskać w tej samej przestrzeni z użyciem układów TLC niż MLC lub SLC. W przypadku pamięci wykonanych w zupełnie innych technologiach nie ma tak dużych różnic pomiędzy poszczególnymi ich odmianami. Przykładowo – komórki pamięci FRAM są praktycznie niezależnie od wersji technologii – bardzo duże.

Ostatnio popularnym wyborem jest użycie kart pamięci microSD (a więc NAND FLASH), które są tanie, mają minimalny rozmiar, choć ich wadą jest konieczność zastosowania gniazda. Ponadto są w większości przypadków bardzo mało odporne na zużycie.

Szyfrowanie

Bywa, że w pamięci mają być przechowywane wrażliwe dane, których wyciek mógłby narazić producenta na poważne straty. Wtedy to zapisana treść powinna być zaszyfrowana i najlepiej niedostępna w inny sposób niż z oryginalnego kontrolera, który ma z niej korzystać. Jeśli to możliwe, warto sięgnąć po pamięć jednorazowego zapisu. Warto też zainteresować się autorskimi rozwiązaniami różnych firm, oferujących mikrokontrolery z zabezpieczoną pamięcią i to właśnie w nich przechowywać najbardziej wartościowe dane. Pozostałe informacje można już umieścić w mniej zabezpieczonej pamięci.

Podtrzymywanie pamięci

Choć pamięć nieulotna nie potrzebuje zasilania by przechowywać dane, trwałość zapisanych informacji jest skończona. W trakcie pracy – zapisu, a czasem i odczytu, a więc gdy pamięć jest podłączona do zasilania, zawartość komórek poddawanych operacjom bywa odświeżana. Z czasem jednak gromadzone ładunki elektryczne mogą się stopniowo rozpłynąć, a domeny magnetyczne – poprzestawiać. Bywają też pamięci typu nvRAM, w których stosowane są dodatkowe superkondensatory lub baterie/akumulatory, służące do podtrzymywania zawartości po odłączeniu zasilania. Ciekawe skonstruowane są pamięci FRAM (nazywane też mianem FeRAM albo F-RAM, w zależności od producenta), których działanie oparto na zjawisku ferroelektrycznym. Efekt ten polega na przechowywaniu polaryzacji elektrycznej pomimo braku obecności pola elektrycznego. Komórka takiej pamięci jest zbudowana z nałożonego, krystalicznego materiału ferroelektrycznego, ułożonego pomiędzy dwa doprowadzenia elektrod, co tworzy swoisty kondensator z ferroelektrykiem jako dielektrykiem. Jest to więc konstrukcja zbliżona do budowy komórki pamięci dynamicznej RAM, z tą różnicą że zamiast przechowywać informacje w postaci naładowanego kondensatora, bity są reprezentowane przez polaryzację ładunków w krysztale. Oznacza to, że wewnątrz kryształu znajduje się ruchomy atom, który po przyłożeniu pola elektrycznego przesuwa się zgodnie z kierunkiem tego pola. Po znalezieniu się w jednej z dwóch pozycji stabilnych, atom nie zmienia położenia, chyba że zostanie poddany działaniu przeciwnego pola elektrycznego. Tak przechowywana informacja nie znika nawet przez ponad 100 lat, choć długość tego okresu zależy od temperatur, w jakich pamięć jest przechowywana.

Pobierana moc

Zużycie energii przez pamięć odgrywa rolę zarówno w systemach przenośnych, inteligentnych czujnikach, jak i większych urządzeniach. Problem sprowadza się albo do konieczności dostarczenia odpowiednio dużej ilości energii albo do odprowadzenia energii cieplnej. Małą moc pobierają przykładowo pamięci FRAM, a spośród pamięci NAND FLASH, największy postęp dotyczy układów wielowarstwowych, które zyskują m.in. dzięki krótszej drodze pomiędzy poszczególnymi komórkami.

Koszt

Niewątpliwie, często ostatecznym ograniczeniem w wyborze pamięci jest przede wszystkim koszt. Oczywiście, im pamięć ma mniejsze rozmiary (ale większą pojemność), im jest szybsza i im trwalsza, tym droższa. Najwięcej informacji, w przeliczeniu za złotówkę, można przechowywać w pamięci NAND FLASH, wielowarstwowej i wykonanej w technologii TLC. Ponadto sposobem na tanie pamięci jest korzystanie z kart microSD. Niestety, są to rozwiązania mało wytrzymałe, a w praktyce też dosyć powolne. Znacznie lepszą wydajnością i trwałością cechują się wysokiej jakości układy SLC, czy np. pamięci FRAM oraz NOR FLASH, ale oczywiście kosztują istotnie więcej. Niemniej koszt pamięci nie powinien stanowić głównego kryterium wyboru, jedynie czynnik ograniczający. Zaprojektowanie urządzenia przemysłowego z użyciem pamięci TLC NAND FLASH jest po prostu błędem, jeśli nie celowym zaniedbaniem. Dlatego jeśli budżet jest mały, lepszą praktyką będzie po prostu obniżenie ilości wbudowanej pamięci niż zmiana jej rodzaju.

Kompromis ten jest oczywiście dosyć problematyczny, szczególnie dla dostawców sprzętu na rynek automatyki. Klienci nierzadko mają problem ze zrozumieniem, dlaczego komputer przemysłowy z dyskiem SSD jest istotnie droższy, niż klasyczny PC z – wydawałoby się – topowym SSD. Zorientowanie się, że najdroższe i najszybsze z oferowanych obecnie nośników SSD na potrzeby rynku konsumenckiego zawierają układy MLC (a większość popularnych modeli ma już komórki TLC), wymaga pewnych starań. Natomiast w klasie przemysłowej dostępne są przede wszystkim nośniki SLC. Aby umożliwić redukcję kosztów, niektórzy producenci wprowadzili SSD w technologiach eMLC lub np. iSLC, które w specyficzny sposób wykorzystują komórki zbliżone do MLC, ale zwiększając ich trwałość. Pozwala to uzyskać zbliżone parametry pracy do układów SLC, oferując je za mniejszą cenę niż prawdziwe SLC.

Główni producenci

Ponieważ w ostatnich latach w świecie elektroniki działo się dosyć dużo, fuzje pomiędzy firmami sprawiły że lista wiodących producentów pamięci elektronicznych się zmieniła. Co więcej, w ramach niektórych firm dostępne są dodatkowe marki handlowe, przeznaczone na poszczególne rynki.

Wśród największych producentów pamięci nieulotnych są firmy takie jak: Samsung, Intel, Toshiba, Hynix, Micron oraz Cypress Semiconductor, który w niedawnym czasie stał się właścicielem firm Spansion i Ramtron. Oferująca wiele różnych pamięci firma Lapis Semiconductor należy teraz do grupy ROHM. Ponadto pamięci nieulotne można znaleźć w ofertach firm takich jak Microchip, Adesto, Gigadevice, STMicroelectronics, a nawet ON Semiconductor, NXP, Maxim, Fujitsu, AMIC i Macronix, a nawet Xilinx. Bywa, że u niektórych dostawców, pamięci oferowane są jeszcze pod już nieistniejącymi markami, przejętymi przez większe firmy.

Marcin Karbowniczek, EP

Artykuł ukazał się w
Elektronika Praktyczna
grudzień 2016
DO POBRANIA
Pobierz PDF Download icon
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik listopad 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje październik 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna listopad 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich listopad 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów