Jak działa dysk SSD

Chyba żaden z nadplanowych podzespołów komputera nie zapewnia tak dużego wzrostu wydajności co dysk SSD. Wnikliwe oględziny jego zasad działania ujawniają, że ten nośnik danych to znacznie więcej niż zestaw układów pamięci Flash.


Nośniki danych z ferromagnetycznymi, obracającymi się talerzami to etap historii sektora IT, który towarzyszy komputerom od zarania ich dziejów w latach pięćdziesiątych minionego wieku. Każdy, kto rozkręcił konwencjonalny dysk twardy, zauważył, że jest to skomplikowane urządzenie składające się z bardzo wielu elementów. W porównaniu do nich konstrukcja modeli SSD, w których dane są zapisywane w nieruchomych układach półprzewodnikowych, wydaje się zadziwiająco prosta – wystarczy kilkanaście układów Flash na płytce, prawda? Nie do końca. Gdy przyjrzeć się dokładnie wnętrzu takiego nowoczesnego dysku, okazuje się samodzielnym systemem magazynowania danych z zaawansowanym kontrolerem, buforem i rezerwą pamięci.

Budowa komórki pamięci Flash

Dyski SSD zapisują dane w komórkach układów Flash. W odróżnieniu od pamięci DRAM, która jest stosowana w modułach RAM, pamięć Flash jest nieulotna. Do przechowywania jednego bitu w technologii DRAM jest wymagany tranzystor z kondensatorem, który musi być nieustannie zasilany energią elektryczną. W układach Flash kondensator jest zbyteczny. Zamiast niego używa się dwóch tranzystorów. Jeden jest nazywany bramką sterującą (ang. control gate), drugi zaś bramką pływającą (ang. floating gate). Bramka pływająca tworzy swoistą pułapkę, która przy przyłożonym napięciu potrafi łapać i przetrzymywać na stałe elektrony – także po odłączeniu napięcia. Wspomniana pułapka jest odizolowana warstwą tlenku krzemu, a elektrony przenikają do niej poprzez zjawisko kwantowomechaniczne zwane efektem tunelowym. Elektrony schwytane w bramce pływającej oddziałują na pole elektryczne sąsiadującej z nią bramki sterującej, a więc na przewodność komórki pamięci Flash. Mierzalne napięcie progowe, które służy do zainicjowania przewodzenia w komórce (tranzystorze), wzrasta wraz z ładunkiem bramki pływającej i pozwala odróżnić nienaładowaną komórkę pamięci od naładowanej. Opisany efekt da się odwrócić. Doprowadzenie napięcia kasującego (wyższego od normalnego) wyrzuca elektrony z bramki pływającej, wskutek czego wzrasta przewodność komórki. Jeden układ pamięci Flash składa się z miliardów takich komórek.

Jak działa dysk SSD

Schemat działania komórki pamięci Flash – przy doprowadzeniu napięcia zapisu elektrony przenikają do bramki pływającej, zmieniając pole elektryczne bramki sterującej, a zarazem przewodność komórki.

Typy pamięci – NAND i NOR

Komórki w układzie Flash mogą być ułożone i połączone na dwa różne sposoby. Stosownie do tego wyróżnia się dwa typy pamięci Flash – NAND i NOR. W obu zastosowano technologię bramki pływającej, lecz odmienną strukturę logiczną, a także sposób odczytywania i zapisywania bitów. W najprostszej organizacji komórek pamięci są one uporządkowane w wierszach i kolumnach. Kanały łączące ze sobą komórki jednego wiersza są zwane liniami poziomymi lub liniami słowa (ang. word line), natomiast komórki jednej kolumny są ze sobą połączone poprzez linie pionowe, tzw. linie bitu (ang. bit line). Opisany układ stosowany w pamięciach typu NOR pozwala adresować i odczytywać pojedyncze komórki. Jeśli do linii słowa jest doprowadzone napięcie w celu odczytania zawartości danej komórki, zależnie od jej ładunku pojawi się napięcie na odpowiedniej linii bitu. Operator logiczny NOR pozwala ustalić, jaka wartość bitowa jest zapisana w konkretnej komórce – 0 czy 1 (0 NOR 0 = 1; 1 NOR 0 = 0). Opisany układ NOR ma jednak poważną wadę, która utrudnia jego wdrażanie w układach pamięci. Linie poziome i pionowe zajmują dużo miejsca, a ponadto wymuszają bardzo złożoną strukturę układu pamięci. Dodatkową wadą technologii okazują się wysokie koszty produkcji.

Do wytwarzania nośników pamięci masowej niewymagających adresowania pojedynczych bitów nadaje się inny typ pamięci Flash, w którym odwołuje się do całych bloków wielkości od 512 do 4096 bajtów. Stosuje się w nim bramkę logiczną NAND (z połączenia NOT i AND). W pamięci tego rodzaju komórki poszczególnych kolumn są połączone ze sobą szeregowo poprzez linię bitu. Natomiast poziome linie słowa przebiegają wiersz za wierszem, łącząc się kolejno z każdą komórką. Odczyt odbywa się więc całymi wierszami zwanymi stronami pamięci (ang. memory page). Po przyłożeniu napięcia odczytu do linii słowa linie bitu podają jako wynik zawartość wszystkich komórek znajdujących się w danym wierszu.

Jak działa dysk SSD

Pamięć NAND – ta odmiana znajduje zastosowanie w nośnikach pamięci masowej. Nie można odwoływać się bezpośrednio do poszczególnych komórek pamięci, lecz tylko do całych wierszy (stron pamięci).

MLC i SLC – więcej niż jeden bit na komórkę

Nowoczesne technologie pozwalają zwiększać gęstość zapisu. Poprzez zastosowanie różnych poziomów napięcia można uzyskiwać w jednej komórce pamięci kilka stanów naładowania. W tym celu dzieli się ładunek bramki pływającej na kilka poziomów i zależnie od przyłożonego napięcia zapisu gromadzi w niej określoną liczbę elektronów. Takie komórki są określane mianem komórek wielopoziomowych (MLC, ang. Multi Level Cell). W komórce, która potrafi rozróżnić osiem poziomów naładowania, można zapisać aż trzy bity informacji. Tymczasem zwyczajna komórka znana pod pojęciem komórki jednopoziomowej (SLC, ang. Single Level Cell) potrafi przechowywać tylko jeden bit. Technologia MLC znajduje zastosowanie w ogólnie dostępnych dyskach twardych SSD, kartach pamięci i kieszonkowej pamięci USB (pendrive). Tanie nośniki MLC mają jednak znacznie krótszą żywotność – maksymalna liczba cykli zapisu jest w nich znacznie niższa niż w pamięci SLC. Komórka jednopoziomowa wytrzymuje ok. 100 000 operacji zapisu. Zależnie od producenta komórka wielopoziomowa znosi tylko kilka tysięcy cykli zapisu. Potem warstwa tlenku traci swoje właściwości izolacyjne, staje się przepuszczalna, a komórki pamięci gubią zapisane w nich informacje.

Jak działa dysk SSD

Pamięć NOR – układ linii słowa i linii bitu umożliwia odwoływanie się do konkretnych komórek pamięci. Jednak złożona struktura odbija się negatywnie na prędkości odczytywania i zapisywania danych.

Zabezpieczenie w postaci kontrolera

Chcąc powstrzymać proces szybkiego starzenia się dysku i zapobiegać wczesnym awariom komórek MLC, producenci stosują sprytne sztuczki. Wbudowany kontroler równomiernie rozdziela operacje zapisu na wszystkie strony pamięci, a więc na całą przestrzeń nośnika. Oprócz tego dysponuje obszernym buforem, który pozwala układać dane przed zapisem w uporządkowane struktury. Każde polecenie zapisu danych, które system operacyjny wysyła do dysku SSD, jest optymalizowane przez wewnętrzne oprogramowanie (firmware) urządzenia, a następnie rozkładane na różne strony pamięci. Metody, o których mowa, są określane pojęciem równoważenia zużycia (ang. wear levelling). Zatem o niezawodności dysku SSD w trakcie codziennej, nieprzerwanej pracy decyduje nie tylko jakość półprzewodnikowych komórek pamięci, lecz mają na nią bardzo duży wpływ także algorytmy zaimplementowane w układzie logicznym kontrolera.

Bezpowrotne usuwanie zawartości dysków SSD

Układ logiczny kontrolera w dysku SSD steruje operacjami zapisu, aby możliwie równomiernie wykorzystywać wszystkie komórki pamięci. W ten sposób wydłuża żywotność nośnika, lecz ma niekorzystny efekt uboczny. Uniemożliwia nieodwracalne opróżnianie i nadpisywanie zawartości dysku SSD. Nawet wielokrotne nadpisywanie plików lub nawet całej przestrzeni nośnika nie daje całkowitej pewności, że zgromadzone na nim uprzednio dane ulegną bezpowrotnej utracie. Na przykład zespołowi badaczy z Uniwersytetu Kalifornijskiego pod kierownictwem Michaela Wei udało się odczytywać z dysków SSD rzekomo skasowane zasoby przy użyciu skonstruowanego przez siebie kontrolera.

Tylko bezpośrednie polecenia ATA pozwalają skutecznie usuwać dane z poszczególnych komórek pamięci, aby nie można było ich ponownie odczytanie. W skład zestawu poleceń dysku SSD wchodzi m.in. rozkaz ATA Secure Erase, które może być inicjowane przez aplikacje. Niektórzy producenci dołączają odpowiednie narzędzia do swoich dysków SSD. Alternatywnie można skorzystać z rozwiązania, które nie jest zależne od producentów ani modeli dysków. Zapewnia je Parted Magic (5 dolarów), samodzielny system stworzony na podstawie środowiska Linux. Jest wyposażony m.in. w niezawodne narzędzie partycjonujące GParted i wiele innych programów dyskowych. Parted Magic jest przeznaczony dla zaawansowanych użytkowników. Korzysta się z niego na własne ryzyko! Narzędzie do usuwania danych należy stosować tylko w dyskach podłączonych bezpośrednio poprzez interfejs SATA. Pod żadnym pozorem nie próbuj opróżniać nim nośników podpiętych do komputera przez porty USB lub eSATA. Pobrany z internetu obraz ISO należy nagrać na pustą płytę i dokonać z niej rozruchu komputera. Po uruchomieniu systemu ujrzysz angielskojęzyczny pulpit ze strukturą poleceń przypominającą menu Start w Windows. Kliknij w niej System Tools | Erase Disk. Następnie wskaż polecenie Internal: Secure Erase command writes zeroes to entire data area, wybierz dysk i potwierdź, klikając OK.