You are on page 1of 2

Budowa i działanie pamięci flash

Pamięć flash jest rodzajem pamięci trwałej, powszechnie obecnie używanej w kartach, pendrive’ach,
dyskach SSD oraz będącej na wyposażeniu smartfonów, tabletów, odbiorników GPS i wielu innych
urządzeń projektowanych z przeznaczeniem do przechowywania danych i programów. Na jej popularność i
powszechność wpłynęły zalety w postaci niewielkich gabarytów (postępująca miniaturyzacja urządzeń) oraz
braku elementów mechanicznych (zwiększona odporność na wstrząsy i wszelkie uszkodzenia mechaniczne).

Pamięć flash jest odmianą pamięci EEPROM (Electonically Erasable Programmable Read Only Memory) –
rodzajem pamięci tylko do odczytu (ROM) z możliwością elektronicznego wymazywania i zapisu danych.
Kasowanie danych odbywa się tutaj za pomocą prądu elektrycznego, w przeciwieństwie do pamięci
EPROM, kasowanej ultrafioletowym światłem. Ponieważ flash jest odmianą pamięci ROM, zapisane dane
pamiętane są nawet po odłączeniu zasilania.

Historia

Pamięci tego typu pojawiły się w roku 1980. Za ideę i pierwsze konstrukcje odpowiadał zespół pod
kierownictwem doktora Fujio Masuoka pracujący dla koncernu Toshiba. Był on odpowiedzialny za
konstrukcje zarówno pierwszych pamięci typu NAND, jak i NOR, o których szerzej za chwilę. W roku 1988
pamięci tego typu przestały być traktowane jako ciekawostka i rozpoczęła się ich masowa produkcja (typ
NOR), za którą odpowiedzialna była firma INTEL. Rok później powszechnie dostępne stały się pamięci
typu NAND, które na rynek zaczęły wprowadzać Toshiba i Samsung.

Działanie, budowa i klasyfikacja

Fizycznie pamięci tego typu zbudowane są z tranzystorów polowych MOSFET. Tranzystory stanowią
komórki – to one wykorzystywane są do przechowywania danych. Każda komórka zbudowana jest z dwóch
bramek: pływającej i sterującej. Bramka pływająca gromadzi ładunek, sterująca odczytuje jego logiczną
wartość (0 lub 1), a także kasuje i zapisuje ładunek bramki pływającej. Dokonując pomiaru napięcia
progowego bramki można odróżnić naładowaną komórkę pamięci od nienaładowanej. Komórki pamięci
ułożone są w kolumnach i wierszach. 3Ti

NOR vs NAND

Ze względu na rodzaj bramki logicznej realizowany przez komórkę, pamięć flash dzieli się na dwa rodzaje:
NOR, w którym komórki pamięci łączone są równolegle i NAND, posiadająca szeregowo łączone komórki.
Konsekwencją tego jest brak komunikacji z pojedynczymi komórkami pamięci NAND – w tym przypadku
komórki mogą być odczytywane porcjami (tzw. stronami), co czyni ten rodzaj pamięci znacznie szybszym.
W przepadku pamięci typu NOR zagwarantowany jest bezpośredni dostęp do każdej komórki, co jest
przydatne w zastosowaniach z wymaganym swobodnym dostępem do pamięci – biorąc pod uwagę także to,
iż w pamięciach typu NOR proces zapisu i kasowania danych w komórkach przebiega znacznie wolniej niż
w NAND – pamięć stosowana może być we wszelkich realizacjach gdzie oprócz wymaganego swobodnego
dostęp do każdej komórki pamięci, dane zapisywane są rzadko lub wcale, czyli np. do przechowywania
firmware’u lub BIOSu płyty głównej.

Pamięć NAND oferuje krótsze czasy dostępu, większą gęstość (posiada około 60% mniejsze komórki),
trwałość (10. krotnie większa liczba cykli kasowania niż w przypadku NOR) oraz niższy koszt produkcji w
przeliczeniu na jednostkę pojemności nośnika. Z tych właśnie powodów większość pamięci spotykanych na
rynku jest rodzaju NAND, i to głównie z nimi przychodzi pracować w przypadku odzysku danych czy
procesów informatyki śledczej (karty pamięci, pendrive’y, dyski SSD). Jest to jednak pamięć o dostępie
sekwencyjnym, co powoduje, że nie sprawdza się w innych zastosowaniach poza pamięcią masową.

Logicznie pamięci tego typu składają się ze stron i bloków – strony maja określona liczbę bajtów (512,
2048, 4096) i łączą się w bloki (32, 64 lub 128 stron). O wielkości tych parametrów decydują producenci.
Pamięci NAND zapisują jedynie zera i tylko na poziomie całej strony. Modyfikacja danych polega na
dodaniu nowego zera, a jeśli nie jest to możliwe, nowej strony, w nowym miejscu – poprzednia strona
zostaje zaś odznaczona do wykasowania. Kasowanie przebiega na poziomie bloku. Jeśli wszystkie strony
bloku zostaną przeznaczone do kasowania, cały blok zostanie zapisany jedynkami. Strony takie mogą być
jednak grupowane w bloki specjalne, z przeznaczeniem do usunięcia, bez konieczności czekania na
wyczerpanie zapasu stron w danym bloku (garbage collection), co znacznie usprawnia proces obsługi
komórek pamięci.

SLC i MLC

Pamięci dzielą się także pod względem rodzajów komórek, a konkretnie liczby bitów, które można zapisać
w jednej komórce pamięci. Rozróżnia się zatem pamięci typu SLC (Single-Level Cell) i MLC (Multi-Level
Cell). W SLC można zapisać tylko jeden bit informacji, w MLC dwa, a nawet więcej. W przypadku pamięci
SLC istnieje konieczność określenia tylko jednego poziomu napięcia dla stanów 0 i 1. Aby zapisać dwa bity
w komórce pamięci typu MLC potrzebne jest określenie aż czterech poziomów napięć progowych (dla
stanów 00, 01, 10, 11) – pamięci takie są znacznie bardziej pojemne, a dzięki możliwości upakowania
większej liczby danych są one znacznie tańsze, niestety konieczność zastosowania złożonych algorytmów
odczytu/zapisu sprawia, iż są także znacznie wolniejsze. Ponieważ rozróżnienie poziomów napięć w MLC
wymaga większej precyzji, łatwiej jest w przypadku tego typu pamięci o różne błędy powstałe w procesie
użytkowania. Pamięci tego typu są także znacznie mniej trwałe – czas przechowywania informacji w
komórkach typu MLC nie przekracza kilku lat, w komórkach SLC sięga kilkudziesięciu.

Życie komórki

Żywotność pamięci związana jest ze sposobem jej funkcjonowania: każdą czynność zapisu danych
poprzedza konieczność skasowania dotychczasowej zawartości komórki. To wpływa na ich stopniowe
zużycie – w cienkiej warstwie izolatora między bramkami pływająca i sterującą gromadzić się mogą ładunki
i powstawać defekty. Każda zatem komórk a pamięci ma przypisany pewien limit cykli zapisu/kasowania a
po jego osiągnięciu bezbłędny zapis danych nie jest już gwarantowany. Przeciętna żywotność pamięci SLC
to 100 000 cykli, MLC jedynie 10 000.

Równoważenie zużycia komórek

Aby usunąć mankament przedwczesnego zużycia stosuje się specjalne oprogramowanie równoważące
wykorzystanie komórek – zapis nie rozpoczyna się od pierwszej komórki i nie posuwa systematycznie do
kolejnych, ale jest rozłożony na wszystkie komórki. Zabieg ten (wear levelling), zapewniający równomierne
i optymalne zużycie wszystkich komórek, wydłuża żywotności pamięci. System ten daje także pewną szanse
na odzyskanie utraconych danych – nigdy nie ma pewności, że dane pliki zostały bezpowrotnie nadpisane.

You might also like