FlashStore – pomysł Microsoftu na zwiększenie wydajności systemu

Jarson - piątek, 25 lutego 2011, 07:16

Badacze z Microsoftu opracowali koncepcję "mostka" zbudowanego w oparciu o pamięć flash, który będąc umieszczony pomiędzy dyskiem twardym a pamięcią RAM może przynosić wzrost prędkości działania systemu i aplikacji. Rozwiązania otrzymało nazwę FlashStore.

"Flash to świetna technologia, ale wymaga inteligentnego oprogramowania, które będzie w stanie zrobić z niej dobry użytek. Na tym właśnie polega nasza praca" - powiedział Li Sengupta, pracownik działu badań Microsoftu.

FlashStore to pamięć umiejscowiona pomiędzy HDD a RAM komputera, pełniąca rolę obszaru do przechowywania często używanych danych. Pamięć ta ma pracować w taki sposób, żeby "omijać" typowe ograniczenia technologii flash, które ujawniają się w przypadku konieczności nadpisania danych.

W pamięciach flash informacje nie mogą być nadpisywane w tak łatwy sposób, jak ma to miejsce w dyskach twardych. Tu zapisywanie musi rozpocząć się w "pustych" komórkach, które są łączone w "strony" (pages) o pojemności od 512 bajtów do 8 kilobajtów. W momencie jednak, kiedy chcemy usunąć zawartość takiej strony, kontroler tego zrobić w odniesieniu do jednej, a musi wyczyścić cały blok, zawierający ich zwykle od 32 do 64.

Pan Li porównuje opisany powyżej sposób działania pamięci flash do rzędu połączonych ze sobą na stałe wiader na wodę. "Operacja zapisu jest jak napełnianie kolejnych wiader. Najtańsze pamięci flash są jednak tak skonstruowane, że aby opróżnić część - pojedyncze wiadro - musisz opróżnić cały rząd".

Aby zarządzać procesem zapisu i odczytu danych, kontroler urządzenia opartego na pamięci flash używa systemu mapowania zwanego Flash Translation Layer (FTL), który przekłada adres logiczny danej strony na aktualną fizyczną jej lokalizację w module pamięci. Jeśli strona z danymi jest nadpisywana, w rzeczywistości jest zapisywana w całkowicie nowej lokalizacji, a jej nowy fizyczny adres jest odnotowywany w zaktualizowanym wpisie FTL.

W czasie procesu określanego jako "garbage collection" kontroler nadpisując dane w rzeczywistości bierze dane już zapisane w danym bloku (te, które mają pozostać), łączy z nowymi i zapisuje je w nowym bloku. Następnie zwolniony w ten sposób dotychczasowy blok może zostać wyczyszczony - oczywiście w całości, gdyż innej możliwości nie ma. Cały proces nie jest niestety zbyt efektywny, gdyż wymaga przenoszenia nie tylko danych nadpisywanych, ale też i tych z nadpisywanych bloków. Ma to też wpływ na żywotność poszczególnych komórek, które mogą być kasowane i ponownie zapisywane sporą, ale jednak ograniczoną liczbę razy.

Ponadto pamięci flash mogą zapisywać dane tylko do stron, niczego mniejszego. Dane zapisywane na stronę, które są mniejsze niż rozmiar tej strony (czyli wspomniane 512 B do 8 KB w zależności od urządzenia) powodują, że pozostała wolna część pozostanie niewykorzystana. Każda próba dopisania tam czegokolwiek zmusza kontroler do przeniesienia zarówno "starych" jak i "nowych" danych do nowej strony.

Wszystko powyższe oznacza, że pamięci flash działają świetnie w takich urządzeniach jak kamery cyfrowe, aparaty fotograficzne czy odtwarzacze muzyczne, gdzie każdy plik ma przynajmniej megabajt, a dane są zwykle zapisywane sekwencyjnie, czyli jedne po drugich. Jednakże w przypadku użycia tych samych pamięci w komputerach osobistych, czy serwerach, szczególnie tam, gdzie dysk musi zapisywać znaczne ilości małych plików i często je nadpisywać, nawet dzisiejsze wydajne pamięci flash mogą przejawiać znaczny spadek wydajności. Spadek ten można dostrzec, choćby porównując prędkość kopiowania jednego dużego i detek małych plików z dysku na PD, czy SSD, wykazują go też wyraźnie programy diagnostyczne, pokazujące prędkości zapisu różnych porcji danych.

Kolejnym aspektem jest koszt pamięci flash. Biorąc pod uwagę cenę za gigabajt są one dużo mniej opłacalne od dysków twardych, od których są ok. dziesięciokrotnie droższe. Z drugiej strony są one jednocześnie ok. 10 razy tańsze niż pamięci RAM. Stąd nie opłaca się dziś jeszcze zamieniać HDD na SSD, ale przydałoby się, gdyby przy niedoborze pamięci RAM można było "zatrudnić" stosunkowo niewielką ilość pamięci flash, zamiast dokupować drogie kości pamięci operacyjnej.

Aby uczynić pamięć flash bardziej atrakcyjną dla klientów, twórcy FlashStore musieli stworzyć bardziej przyjazną strukturę danych, unikając częstych i losowych zapisów do niej. Eksperci z Microsoftu przekonują nas, ze udało im się to uczynić poprzez wykorzystanie trzech pomysłów.

Po pierwsze, FlashStore wykorzystuje moduły flash jako pamięć podręczną dla pamięci RAM, umiejscawiając ją pomiędzy HDD a RAM. Stąd przechowywane są tu tylko najczęściej używane dane, które często trzeba odczytywać (pamiętajmy, że w przeciwieństwie do zapisu odczyt pamięci flash może odbywać się tylko fragmentami oraz dowolną liczbę razy). Jeśli dane okazują się zbyt żadko używane - mogą zostać "wycofane" z powrotem do dysku, a na ich miejsce przybywa nowa porcja.

Po drugie, FlashStore zaprojektowano tak, by wyeliminować losowe zapisy. W tym rozwiązaniu kontroler nie zapisuje danych do bloku na bieżąco, a najpierw czeka, aż nazbiera się ich wystarczająca ilość, by zapisać całą stronę - dzięki temu unika się konieczności zapisania ich ponownie. Oczywiście jeżeli aplikacja w międzyczasie zażąda danych dopiero czekających "w kolejce" do strony, zostaną one wysłane do pamięci RAM z pominięciem FlashStore.

Po trzecie wreszcie, FlashStore zaprojektowano tak, by wykorzystywało do indeksowania danych pamięć RAM. Dzięki użyciu specjalnych tablic, ilość zajmowanego na ten cel w pamięci RAM miejsca jest minimalna, a znacznie usprawnia to proces zarządzania całym modułem pamięci.

Microsoft zapewnia, że wyniki testów technologii FlashStore są imponujące. Wynika z nich, że w zastosowaniach serwerowych niektóre wskaźniki wydajności wzrastają nawet kilkudziesięciokrotnie w porównaniu z rozwiązaniem, gdzie HDD współpracuje bezpośrednio z pamięcią RAM. Wyniki były też nawet kilkukrotnie wyższe niż w dostępnych dziś rozwiązaniach wykorzystujących tzw. hybrydowe HDD - czyli takie, w których zastosowano kilka GB pamięci flash (ale bez programowych usprawnień).

Jak podaje korporacja, wprowadzenie w życie nowej technologii pozwoli znacznie usprawnić komunikację pomiędzy pamięcią trwałą a pamięcią operacyjną, przy zachowaniu stosunkowo niewysokich kosztów. "Możesz zastąpić 10 do 20 dysków twardych jednym nośnikiem flash korzystającym z technologii FlashStore" - przekonuje pan Li. "To przekłada się na niższe koszty zakupu urządzeń, zmniejszenie zużycia energii i obniżenie kosztów operacyjnych. Korzyści następują we wszystkich trzech obszarach: ceny, energooszczędności i wydajności" - dodaje ekspert.

Źródło: CDRinfo.com

Tagi: ,

Komentarze są wyłączone

Uprzejmie prosimy o przestrzeganie netykiety przy dodawaniu komentarzy. Redakcja CDRinfo.pl nie odpowiada za tresc komentarzy, ktore publikuja uzytkownicy. Aby zmienic swoj avatar zarejestruj sie w serwisie www.gravatar.com.

Dodaj komentarz
Zaloguj sie, aby dodac komentarz.


Zaloz konto