2. Typy magistral

2.14. Budowa dysków SSD

Dyski SSD (ang. Solid-State Drive), podobnie jak dyski magnetyczne są urządzeniami pamięci masowej. Dostęp jest możliwy tylko do dużych bloków danych. Dyski SSD są zbudowane w oparciu o pamięć typu flash, wszystkie zalety i wady tych pamięci są również zaletami i wadami dysków SSD. Dyski SSD są zbudowane tylko z układów scalonych, brak jest jakichkolwiek elementów elektromechanicznych. Dane zapisane są w bramkach przechowujących elektrony. Dyski SSD mają cały szereg zalet w porównaniu do dysków magnetycznych:
•    mniejszy czas dostępu do danych,
•    większe prędkości zapisu i odczytu danych,
•    mniejszy pobór energii,
•    odporność na przeciążenia, wstrząsy i wibracje,
•    szeroki zakres temperatur, w których mogą pracować,
•    przeważnie są lżejsze.
Niestety mają one też swoje wady. Do największych można zaliczyć:
•    ograniczona żywotność:
o    MLC do 10000 zapisów jednej komórki,
o    SLC do 100000 zapisów jednej komórki,
•    ciągle ceny o rząd wielkości wyższe niż HDD,
•    wolniejsze nadpisywanie małych obszarów,
•    realna awaryjność.
Na rysunku 25 przedstawiona jest budowa dysku SSD. Przepustowość pojedynczego układu pamięci flash nie jest wystarczająca, aby osiągnąć optymalną wydajność dysku SSD. W związku z tym, elementy pamięci muszą być skoordynowane tak, aby działały w układzie równoległym. Mamy więc cały szereg układów scalonych pamięci flash (Flash Pkg), które są zarządzane przez procesor kontrolera urządzenia. Równoległy odczyt-zapis umożliwia osiągnięcie bardzo dużych prędkości. Ważne też jest buforowanie danych w pamięci RAM. Po pierwsze pozwala ono na ograniczenie dostępów do pamięci flash i tym samym ograniczenie jej zużycia. Po drugie buforowanie może znacznie przyspieszyć dostęp do danych, szczególnie dla małych plików. Logika dysku zapewnia kompatybilność ze starszymi dyskami magnetycznymi. Nie jest potrzebny żaden dodatkowy sprzęt, żeby je obsłużyć.

 Rys. 25. Budowa dysku SSD

Dyski SSD mogą być obsługiwane poprzez interfejs SATA. Interfejs SATA jest jednak pewnym ograniczeniem dla dysku SSD, dlatego że maksymalna prędkość odczytu/zapisu wyniesie wtedy ok. 540 MB/s. Dlatego też dyski SSD mogą być wyposażone w inne interfejsy. Dużą popularność zdobył standard M.2. Szczególnie często jest on wykorzystywany w laptopach. W komputerach stacjonarnych, ale nie tylko, w przypadku potrzeby dużej przepustowości może być stosowany standard U.2. Dyski SSD mogą być też bezpośrednio podłączane do magistrali PCI Express.
Dyski SSD należą do urządzeń typu MDT (ang. Memory Technology Device). Podstawową jednostką alokacji danych jest blok wymazywalny (ang. eraseblock). Bloki takie są stosunkowo duże, zazwyczaj 256 kB. Aby cokolwiek zapisać na dysku należy najpierw znaleźć pusty blok. Jeśli takich bloków brakuje, należy jakiś blok wyczyścić. Pusty (wymazany) segment flash jest wypełniony jedynkami. Następnie można zapisać dane. Dane są zapisywane w mniejszych porcjach zwanych stronami, zwykle 4 kB. Można zmienić pojedyncze bity z 1 na 0, ale nie można zmienić z 0 na 1, by to zrobić trzeba wymazać cały segment (256 kB). Zapis jest szybki jeśli jest dużo czystych segmentów. Mamy zatem trzy operacje dostępu do danych: zapisz, wyczyść, odczytaj segment. Zepsutych segmentów nie można po prostu ukryć, trzeba je obsłużyć. Segmenty zużywają się po ok. 10000 zapisów. Dyski SSD nakładają nowe wymagania co do systemu plików. Wynikają one z:
•    ograniczonej żywotności komórek,
•    konieczności równoważenia zużycia (ang. wear levelling),
•    konieczności czyszczenie nieużywanych bloków w tle (komenda trim),
•    występowania dużych segmentów – ”fragmentacja” wewnętrzna,
•    problemów z nadpisywaniem segmentów, np. utrata zasilania miedzy czyszczeniem a pisaniem.
Jednym ze sposobów rozwiązania tego problemu jest zastosowanie firmware, które udaje, że dysk SSD jest urządzeniem blokowym. Zapewnia to pełną kompatybilność, również ze starszymi systemami. Do takich rozwiązań należy FTL (ang.  Flash Translation Layer) (Rys. 26). Warstwa ta zapewnia:
•    równoważenie zużycia,
•    obsługę uszkodzonych sektorów,
•    proste odśmiecanie i czyszczenie sektorów,
•    mając pamięć flash z FLT mamy urządzenie blokowe, wiec można używać dowolnego systemu plików.

 
Rys. 26. Umiejscowienie warstwy FTL