PuRAM
Dyski PuRAM firmy Liebermann są napędami typu SSD (Solid State Disk), używającymi bardzo szybkiej technologii Flash RAM o dużej przepustowości. Mogą mieć zarówno interfejs IDE, jak i SATA, Ultra320 SCSI lub Full Duplex FibreChannel, z którym zwykle są sprzedawane przez Liebermanna.
Ponieważ ich koszt jest wysoki, zwykle są sprzedawane w podstawowej pojemności wynoszącej 4 GB, która jest wystarczająca dla systemu operacyjnego i plików systemowych. Pliki użytkownika nie muszą rezydować na dyskach PuRAM, ponieważ przez 99% czasu nie są one używane i do ich przechowywania wystarczy standardowy dysk twardy. Liebermann, jak na razie, sprzedaje dyski PuRAM wyłącznie jako część zestawu komputerowego.
Można oczywiście zbudować system komputerowy zupełnie bez dysku twardego, używając wyłącznie jednego lub więcej dysków PuRAM. Maksymalna pojemność, jaką obecnie Liebermann oferuje w takich konfiguracjach, to 120 GB. Ze względu na bardzo wysoki koszt tego typu rozwiązań, zwykłymi odbiorcami jest wojsko, służba zdrowia (oczywiście nie nasza, tylko amerykańska) oraz wysokowymagający profesjonaliści. Wydajność tych maszyn jest naprawdę niewiarygodna. Liebermann zamierza oferować komputery standardowo wyposażone w dyski PuRAM, jednak wcześniej musi znacznie obniżyć koszty produkcji.
Pamięć typu Solid State została wybrana ze względu na szybki transfer danych. Typowa pamięć Solid State jest ulotna, więc jako jej uzupełnienie stosuje się dyski twarde (gdyż oferują duże pojemności przy niskim koszcie). Dyski PuRAM łączą zalety pamięci SSD i typowych dysków twardych: cechują się doskonałą wydajnością i niezawodnością, zapewniają dużą przestrzeń dyskową, a w dodatku dzięki technologii Flash dane z dysków PuRAM nie znikają po odłączeniu zasilania. Dzięki temu komputer wyposażony w dysk PuRAM nie musi mieć w ogóle tradycyjnego dysku tardego.
Technologia
Pomiędzy kontrolerem DMA i buforami układu znajduję się zwykła magistrala Flash, adresująca i przenosząca rozkazy i dane. Czwórdrożny przeplot danych pomiędzy buforami i bankami pamięci połączony ze zmultipleksowanym w czasie sygnalizowaniem zajętości magistrali (time-multiplexed busy signaling for the whole bus) dostarcza bezprzykładnych szybkości transferów danych w przemyśle F-SSD (Flash Solid State Disk). Każde urządzenie magazynujące, które nie używa żadnych metod buforowania danych pomiędzy swym nośnikiem a interfejsem systemu, będzie się odznaczało słabą wydajnością. Dyski PuRAM posiadają wbudowane moduły cache'ujące DRAM, przyspieszające zapis. Ich firmware posiada specjalne algorytmy dystrybuujące cykle kasowania/zapisu równomiernie pomiędzy wszystkimi blokami pamięci. Zgodnie ze specyfikacją pamięci Flash, żywotność 1 GB dysku wynosi ponad 27 lat przy zapisywaniu 100 GB dziennie. Żywotność PuRAM jest przynajmniej 15-krotnie większa, jeśli jest używany w połączeniu z ich inteligentną konserwacją, taką jak tuning progowy RS-ECC, czyszczenie pamięci flash i w pełni asocjacyjnym cache'owaniem.
Wykrywanie błędów
PuRAM używa własnego kodu RS ECC (Interleaved Reed-Solomon Error Correction Code), który jest zoptymizowany dla pamięci Flash. Charakteryzuje się dokładnością przewidywania na poziomie mniej niż 10-30 niewykrytych błędów danych. Jest w stanie naprawić do 6 losowych błędnych bajtów na 528-bajtowy blok danych i wykrywa błędy pakietów do 9 bajtów długości. Nigdy błędnie nie poprawi trzech losowych błędów danych. Może się pomylić jedynie w mniej niż 0,1% przypadkach przy błędach większych niż 9 bajtów na 528. Konfigurowalna implementacja ECC implementuje ponowne mapowanie bloków pamięci w wypadku, gdy liczba poprawionych błędów dla danego bloku osiągnie wartość progową zdefiniowaną przez użytkownika. Odpowiednie dopasowanie tego parametru minimalizuje częstość remapowania bloków i zmniejsza prawdopodobieństwo, że niektóre bloki z liczbą poprawionych błędów większą od wartości progowej przekształcą się w bloki z nienaprawialnymi błędami. Firmware PuRAM automatycznie monitoruje i naprawia błędy w każdej lokacji pamięci Flash. Ten proces odbywa się w tle bez wpływu na wydajność systemu, kontrolując ilość zużytych przez dysk bloków. Zawsze istnieje możliwość, że z powodu normalnego zużycia napęd PuRAM napotka uszkodzone bloki pamięci, dla których została przekroczona liczba cykli kasowania/zapisu. Remapowanie uszkodzonych bloków dokonywane jest przez firmware w locie, zastępując adresy logiczne uszkodzonych bloków adresami dobrych. Liebermann dostarcza napędy PuRAM z wystarczającą na setki tysięcy godzin bezproblemowej pracy liczbą zarezerwowanych właśnie na ten wypadek dobrych bloków.
Bezpieczeństwo
Dla zapewnienia bezpieczeństwa i integralności danych, w przeciwieństwie do tradycyjnych dysków twardych, napędy PuRAM posiadają bardzo zaawansowane obwody autokontroli i naprawy. Inteligentny firmware pozwala przewidzieć potencjalne problemy na długo, zanim te wystąpią. Jeśli z jakiegoś powodu dysk miałby zawieść, wbudowane funkcje naprawcze podejmą natychmiast działania naprawy i odzyskania danych. Technologia Plug and Play ułatwia wymianę uszkodzonego napędu na dobry i skraca czas przestoju. Dalsze technologie zapewniąjące integralność danych to m.in.:
- wszystkie zapisy są zatrzymane, zanim zasilanie spadnie poniżej progowych wartości. Redukuje to ryzyko uszkodzenia danych tablic FAT lub tablic translacji w wypadku przerwania operacji zapisu. Urządzenia nie posiadające żadnych sposobów wykrywania zmniejszonego napięcia są bardziej narażone na uszkodzenie danych.
- alokowanie pewnej liczby zarezerowanych bloków przeznaczonych do użycia dla wewnętrznych tablic translacji, przed zapisaniem zmodyfikowanych tablic. Ta funkcja zmiejsza ryzyko uszkodzenia danych i FATu w wypadku zapisywania przy utracie zasilania przez zredukowanie okresu podatności na awarię (czasu, w którym urządzenie Flash jest w fazie zapisu).
- zmienny rozmiar pamięci cache mimimalizuje szansę utraty danych podczas nagłej utraty zasilania przez zmniejszenie rozmiaru danych użytego cache'u (dirty cache), który musi zapisać kontroler, do co najwyżej jednego sektora lub bloku danych.
W połączeniu z technologią CacheFlow, w systemie z przynajmniej 1 GB pamięci RAM (zalecane 2 GB i więcej) większość operacji wejścia/wyjścia z i do dysku PuRAMu jest inteligentnie cache'owana i zarządzana przez pamięć operacyjną komputera, kończąc operację już na tym poziomie. Dzięki temu możliwe jest uzyskanie transferu danych na poziomie nawet do 6,4 GB/s.
Podziękowania dla Johna Nolana z firmy Liebermann za pomoc przy pisaniu niniejszego artykułu.