2011/01/12

Kontroler w SSD i trochę o pamięci Flash

SSD bez dobrego, wbudowanego kontrolera jest niewydajny i awaryjny. Wszystko przez niedoskonałości Flasha. Zapewne Dr. Fujio Masuoka, projektując ten układ, nawet nie podejrzewał, że stanie się on realną alternatywą dla magnetycznych dysków. Pierwotnie został on stworzony do przechowywania firmware'ów i bios'ów. Zastosowanie Flash'a umożliwiło aktualizację tych programów bez konieczności wymiany kości. W porównaniu do stosowanych wcześniej pamięci ROM był to ogromny krok naprzód, mimo nieoptymalnej i 'brutalnej' metody zapisu. Jest to bowiem w zasadzie operacja sekwencyjna, która wymaga wcześniejszego wymazania poprzedniej wartości całego segmentu danych. Przy czym kasowanie wykonywane jest poprzez przyłożenie stosunkowo wysokiego napięcia, co przy wielu cyklach powoduje zniszczenie komórek pamięci.

"Flashowanie" firmware wykonywane jest rzadko i jest to operacja sekwencyjna. Dysk w komputerze to już inna historia. Mimo, że statystycznie większość plików jest niemodyfikowana, to są jednak takie, które zmieniane są bardzo często i to w różnych miejscach. Dodatkowo zapis wykonywany jest małymi bloczkami. Takiego traktowania Flash nie lubi i potrzebuje do tego pomocnika. Tutaj właśnie pojawia się kontroler, element który powoduje, że jeden SSD jest dobry, a drugi już nie.

Nawet pamięć Flash na kluczu USB ma kontroler. To samo dotyczy kart pamięci SD, CF i innych. Ich rola jest stosunkowo prosta. Realizują zapis poprzez wykonanie poniższych czynności:

- odczyt zawartości całego segmentu pamięci flash do bufora
- kasowanie segmentu pamięci flash
- aktualizacja danych w buforze
- zapis danych z bufora do segmentu pamięci flash

Pierwsze SSD posiadały podobnie działający kontroler. Skutki takiego zagrania łatwo przewidzieć - słaba wydajność i krótka żywotność. Uwaga, bo nadal pojawiają się takie kwiatki! Prawdziwy kontroler SSD musi się bardziej wysilić:

- liczy ile razy segmenty były kasowane,
- optymalizuje ilość kasowań segmentu poprzez zapis danych w innym, mniej używanym segmencie,
- migruje i deaktywuje nadmiernie wykorzystywane i uszkodzone segmenty,
- organizuje kości pamięci w RAISE (Redundant Array of Independent Silicon Elements) co zwiększa bezpieczeństwo danych i przyspiesza operacje,
- efektywnie zarządza przestrzenią poprzez migracje danych z mało zajętych segmentów,
- optymalizuje proces zapisu poprzez kasowanie segmentów w tle

Nie wymieniłem tu wszystkich technologii. Są jeszcze takie, o których się nie pisze i takie, których nie za bardzo rozumiem (np. kompresja - ma niby zwiększać wydajność). Tak czy inaczej dobry kontroler to podstawa w SSD. Przy zakupie warto zajrzeć do specyfikacji i sprawdzić co siedzi w danym produkcie.

2 komentarze:

Unknown pisze...

Hej. Kompresja ma przyspieszyc dostęp do danych, ponieważ zakłada się że operacja kompresji - wykonana na dedykowanym, specjalizowanym procesorze - zmniejsza liczbę danych do zapisania/odczytania z fizycznego medium. Uzysk wydajnościowy pojawia się dzięki temu, że czas potrzebny na kompresję/dekompresję i zapis/odczyt zmniejszonej ilości danych jest krótszy niż czas wymagany na zapis/odczyt danych nieskompresowanych.

Unknown pisze...

dzięki za wyjaśnienie!