FAQ | Points | Add... | Recent posts | Search | Register | Log in


Cluster Alignment czyli polepszenie wydajności pamięci flash


Post new topic  Reply to topic      Main Page -> Forum Index -> Computer FAQ -> Cluster Alignment czyli polepszenie wydajności pamięci flash
Author
Message
janko_wodnik
Poziom 16
Poziom 16


Joined: 23 Jan 2008
Posts: 338
Location: Kurów/Puławy/Wa-wa

Post#1 Post from the author of the topic 23 Mar 2009 19:56   

Cluster Alignment czyli polepszenie wydajności pamięci flash


Cluster Alignment czyli polepszenie wydajności pamięci flash

Wprowadzenie

Cluster Alignment (pol. dopasowanie bloków) to optymalne ustawienie systemu plików na nośniku flash względem bloków pamięci NAND flash.

Sposób zapisywania danych na nośnikach flash jest dość nietypowy w porównaniu z nośnikami opartymi na wirujących talerzach (mechaniczne dyski twarde, dyski optyczne). Nie wnikając w istotę problemu można stwierdzić, że czas adresowania zapisu jest stosunkowo długi. Ponadto każda operacja kasowania lub zapisu przyspiesza moment zepsucia się nośnika. Problem dotyczy w szczególności pamięci flash MLC.

Dla spragnionych bardziej merytorycznej wiedzy na temat budowy i działania pamięci flash podaję dwa linki do zasobów wikipedii:
Ogólnie o pamięciach flash (po polsku):
:arrow: http://pl.wikipedia.org/wiki/Pamięć_flash

Bardziej szczegółowo o pamięciach flash (po angielsku):
:arrow: http://en.wikipedia.org/wiki/Flash_memory

Lektura linków nie jest niezbędna ponieważ do samodzielnego dopasowania bloków wystarczy wiedza z ogólnie pojętej obsługi komputerów domowych (partycjonowanie, geometria dysków, system plików i podobne tematy).

Plusy i minusy dopasowania bloków nośnika MLC

Korzyści płynące z przeprowadzenie dopasowania bloków na nośniku flash:
1. Zwiększenie wydajności pamięci flash poprzez
1.1. Polepszenie wydajności zapisu losowego (15-100%)
1.2. Polepszenie wydajności zapisu ciągłego (15-70%)
1.3. Znikome poprawienie wydajności odczytu (<10%)
2. Zwiększenie żywotności pamięci flash

Niedogodności związane z przeprowadzeniem dopasowania bloków:
1. Konieczna podstawowa znajomość zagadnień związanych z
1.1. Geometrią dysków twardych
1.2. Partycjonowaniem
1.3. Systemem plików
1.4. Formatowaniem
1.5. Uruchamianiem systemów operacyjnych z pamięci masowych
2. Możliwość utraty kompatybilności nośnika z danym urządzeniem
3. Możliwość utraty bootowania z nośnika
4. Konieczność zgrania danych z nośnika przed rozpoczęciem operacji

Uwagi:
Omawiana dalej metoda może okazać się niepraktyczna dla pamięci flash SLC ze względu na o wiele krótszy czas adresowania zapisów. Względnie mały czas adresowania zapisów utrudnia odnalezienie krawędzi bloków pamięci flash.

Wydaje się jednak, że plusy przysłonią minusy bardziej rozgarniętym przedstawicielom społeczności elektroda.pl.

Źródła zewnętrzne

Pierwszą stroną www, na której spotkałem się opisem problemu:
:arrow: http://forum.ixbt.com/post.cgi?id=print:27:9465
oraz jej automatyczne tłumaczenie:
:arrow: http://translate.google.com/translate?prev=_t&hl=pl&ie=UTF-8&u=http%3A%2F%2Fforum.ixbt.com%2Fpost.cgi%3Fid%3Dprint%3A27%3A9465&sl=ru&tl=pl&history_state0=

Adres strony dostarczył mi gader, za co jestem bardzo wdzięczny.

Można w niej znaleźć następujący link do bardzo potrzebnego programu:
:arrow: http://vlo.nm.ru/tmp/dfboff64.rar
(w razie potrzeby dodam program jako załącznik)

Można również znaleźć dwa umiarkowanie przydatne linki o geometrii, partycjonowaniu i formatowaniu kart pamięci flash:
:arrow: http://www.hjreggel.net/cardspeed/info-formatting.html
:arrow: http://www.hjreggel.net/cardspeed/cs_calign.html

Oba linki nie zawierają informacji o oprogramowaniu potrzebnym do przeprowadzenia dopasowania bloków na własną rękę, dlatego - moim zdaniem - chodź dość treściwe są mało przydatne. Wydaje mi się, że autor intencjonalnie nie ułatwił zadania podając gotowe rozwiązania w celu wykluczenia amatorów o niedostatecznej znajomości tematu.

Zanim zdecydujesz się na samodzielne dopasowanie bloków

Kilka przykładów, w których dopasowanie bloków ma sens:
• pendrive, pamięci USB na dane
• karty pamięci do aparatów fotograficznych (należy zweryfikować kompatybilność)
• karty pamięci do niektórych urządzeń mobilnych (należy zweryfikować kompatybilność)
• karty pamięci CF pracujące w roli SSD (należy zweryfikować bootowanie)

Kilka przykładów, w których dopasowanie bloków może zakończyć się katastrofą:
• pamięć wewnętrzna urządzeń mobilnych (mp3, iPody itp.)
• karty pamięci pracujące w starszych modelach aparatów cyfrowych, PDA i innych
• dyski startowe DOS (możliwość braku wyrównania partycji do głowicy/cylindra)

Przed przystąpieniem do jakichkolwiek manipulacji partycjami oraz systemem plików należy zabezpieczyć dane z nośnika (o ile są na nim ważne dane). Dobrze jest również powielić początkowe sektory nośnika aż do początku ostatniej partycji i zapisać je jako plik na innym nośniku fizycznym. Można to zrobić za pomocą programu DMDE, taki backup nie powinien być za duży – rozmiar będzie zależny od ilości partycji oraz od ich położenia.

Na nośniku flash z dopasowanymi blokami często traci się wyrównanie do głowicy/sektora. Obecne systemy operacyjne takie jak Windows XP nie wymagają już wyrównania partycji do geometrii CHS. Niemniej jednak bez wyrównania partycji do aktywnej geometrii CHS traci się możliwość bootowania DOS (możliwe problemy również w Win 95/98/Mela).

Niezbędny sprzęt, oprogramowanie oraz inne wymagania

Użytkownik posiadający minimum:

• pełnię sprawności intelektualnej
• umiejętność czytania ze zrozumieniem (po polsku i angielsku)
• podstawową wiedzę z dziedziny partycjonowania, formatowania, systemów plików
świadomość niedoskonałości opracowania z którego korzysta

Potrzebny sprzęt:

• nośnik flash, na którym zostanie przeprowadzone wyrównanie bloków
• komputer posiadający możliwość bootowania ze stacji dyskietek, napędu optycznego lub USB
• nośniki dla alternatywnej drogi bootowania (dyskietka, płyta CD-RW, pendrive, czytnik i karta pamięci)

Potrzebne oprogramowanie:
• program do pomiaru zapisu blokowego: http://vlo.nm.ru/tmp/dfboff64.rar (platforma Windows)
oraz (zależnie od wariantu)
• program do formatowania z możliwością wyboru systemu plików oraz wielkości klastra
• program do partycjonowania z możliwością dowolnego tworzenia partycji w oparciu o adres LBA/CHS sektora

Uwaga!
Przed przystąpieniem do jakichkolwiek „badań” na danym nośniku proszę zabezpieczyć dane poprzez powielenie na inny fizyczny nośnik danych. Autor opracowania nie ponosi jakiejkolwiek odpowiedzialności za utratę danych oraz szkody będące konsekwencją braku wiedzy lub nieświadomości czytającego oraz inne szkody powstałe podczas przeprowadzania opisywanych tutaj czynności.

Omówienie metody pomiarowej stosowanej przez program „dfboff64.exe”

Program dfboff64.exe służy do znajdowania „offsetu” oraz „okresu” bloków pamięci flash na danym nośniku. „Offset” określa przesunięcie klastrów systemu plików względem bloków pamięci NAND flash wyrażone w sektorach (512B). „Okres” to rozmiar bloku pamięci NAND flash wyrażony w całkowitej ilości sektorów.

Na podstawie wielkości „offsetu” koryguje się położenie pierwszego klastra obszaru danych w systemie plików FAT. Początek obszaru danych musi pokrywać się z krawędzią bloku pamięci NAND flash. Jest to warunek konieczny poprawnego dopasowania bloków.

Wielkość „okresu” to optymalny rozmiar klastra w systemie plików. Alternatywnie można zastosować jego całkowitą wielokrotność, ale utraci się pewną część wydajności oraz powiększy się marnowanie przestrzeni dyskowej (ang. cluster waste). Można również zastosować ułamek całkowity okresu jako rozmiar klastra tracąc część wydajności ale za to zmniejszając marnowanie przestrzeni dyskowej.

Uwagi:
System plików NTFS nie nadaje się na potrzeby wyrównywania bloków ze względu na brak możliwości pokrywania się klastrów systemu blików z blokami pamięci flash w całym obszarze przewidzianym do zapisu danych. Być może da się to zmienić, ale ja nie mam zamiaru próbować.

Schemat czynności potrzebnych do uzyskania dopasowania bloków

1. Dokonanie pomiarów za pomocą programu dfboff64.exe
1.1. Znalezienie „offsetu”
1.2. Znalezienie „okresu”

Dalej możliwe są trzy scenariusze:
2. A. „Offset” wynosi 0, „okres” jest równy rozmiarowi klastra systemu plików
(nośnik flash ma już dopasowane bloki – tutaj nic się już nie ulepszy)
2. B. „Offset” wynosi 0, „okres” jest różny od rozmiaru klastra systemu plików
2. C. „Offset” jest różny od 0

Omówienie wariantu „B”
1. Nośnik należy sformatować używając programu dającego możliwość definiowania rozmiaru klastra. Rozmiar klastra powinien być równy wielości bloku pamięci flash.
2. Ponowne wykonanie pomiarów za pomocą programu dfboff64.exe i weryfikacja położenia „offsetu”. Jeżeli „offset” się przesunął należy przejść do wariantu „C”

Uwaga!
Przed przystąpieniem do wariantu „C” należy upewnić się, że „offset” oraz „okres” są wyznaczone poprawnie. Aby się upewnić należy powtórzyć pomiar wykonany programem dfboff64.exe, można zmienić część ustawień (patrz Wykonywanie pomiarów za pomocą programu „dfboff64.exe”).

Omówienie wariantu „C”
1. Przesuń początek badanej partycji o dodatnią wartość „offsetu” (tu przedtem wkradł się błąd, było "ujemną"). Dodatkowo położenie początku partycji można modyfikować przesuwając go o całkowite wartości „okresu”.
Uwaga!
Zwykle przesunięcie partycji oznacza utratę wyrównania do krawędzi głowicy/cylindra co prowadzi do problemów z bootowaniem z tej partycji niektórych systemów operacyjnych (DOS). Ponadto niektóre programy narzędziowe „dostają trwogi” na widok tak utworzonych partycji (chociażby Partition Magic).
2. Postępuj dalej jak w wariancie „B”.

Uwagi:
Wskazane jest używanie jednego programu do partycjonowani oraz jednego do formatowania.
Dla platformy Windows wystarczy legendarne polecenie „format” z wiersza poleceń oraz program „Ranish Partition Manager” (po odpowiednich modyfikacjach można go uruchamiać z bootowalnego USB zamiast z dysków optycznych czy też antycznej stacji dyskietek).

Wykonywanie pomiarów za pomocą programu „dfboff64.exe”

Przed wykonywaniem jakichkolwiek pomiarów powinno się zapewnić możliwie dużą przepustowość interfejsu (złącza, kontrolera) do którego zostanie podłączony nośnik flash. O ile w przypadku pendrive USB nie ma problemu to w przypadku wydajniejszych kart CF UDMA najlepiej jest skorzystać z kontrolera IDE za pomocą odpowiedniej przelotki.
W przypadku kart SD (i podobnych względnie "małych" kart pamięci) oraz CF MLC (w tym również UDMA) wystarczy czytnik kart USB o prędkości zapisu ciągłego na poziomie 10-15MB/s.

Uruchomienie pliku dfboff64.exe otwiera okienko z dwoma przyciskami których nie trzeba nikomu specjalnie przedstawiać. Kliknięcie na ten „słuszny” otwiera kolejne okno, tym razem posiadające możliwość konfiguracji pomiaru.

Obrazek 1. Okno domyślnej konfiguracji pomiaru w programie „dfboff64”
Cluster Alignment czyli polepszenie wydajności pamięci flash

Opis opcji programu:
Drive to test – wybór dysku logicznego (partycji) na której będą prowadzone pomiary; należy wybrać literkę „dysku” przypisaną do badanego nośnika flash
Disk buffer (KB) – rozmiar sprzętowego bufora dysku twardego; w przypadku nośników typu flash (pendrive USB, karty pamięci) należy wpisać 0
[v] Disable Windows buffering – wyłączenie buforowania odczytu/zapisu na dysk logiczny podczas testu; ta opcja musi być włączona, inaczej dostaniesz zniekształcone wyniki
Total MB to r/w – długość pliku testowego; dla kart pamięci SD oraz pendrive USB lepiej zmniejszyć do 12-18MB
AccTry – (Access Try) ilość prób adresowania; jest brana pod uwagę razem gdy RdAcc i/lub WrAcc jest włączone; można ustawić na 0 na wszelki wypadek
[v] RdSpd – (Read Speed) przełącznik testu odczytu; ta opcja powinna być wyłączona
[v] WrSpd – (Write Speed) przełącznik testu zapisu; ta opcja musi być włączona
[v] RdAcc – (Read Access) przełącznik test opóźnienia odczytu; ta opcja powinna być wyłączona
[v] WrAcc – (Write Access) przełącznik test opóźnienia zapisu; ta opcja powinna być wyłączona

Domyślnie skonfigurowany test do niczego sensownego się nie przyda. Dlatego należy go dostosować do indywidualnych potrzeb.

Należy dokonać podstawowego wyboru opcji Drive to test wskazując badany nośnik flash. Dalej należy odznaczyć opcje RdSpd, RdAcc oraz WrAcc. Można też ustawić AccTry na 0 na wszelki wypadek. Dla typowych kart pamięci i pamięci USB należy zmniejszyć Disk buffer (KB) do 0. Sporadycznie można spotkać urządzenia flash posiadające wbudowany bufor zapisu (niektóre pendrive Toshiba są o to „podejrzewane”). Ostatnia opcja – Total MB to r/w – będzie przekładać się na czas pracy testu i na statystyczną poprawność wyników. Wartość powinna stanowić 1-3 krotność nominalnej prędkości zapisu na nośnik flash. Nie należy przesadzać, gdyż każdy zapis zużywa nośnik flash. Poniżej znajduje się okno przykładowej konfiguracji do badania popularnego pendrive USB Kingston DT100 4GB.

Obrazek 2. Okno przykładowej konfiguracji pomiaru w programie „dfboff64”
Cluster Alignment czyli polepszenie wydajności pamięci flash

Po uruchomieniu testu przyciskiem Start test pojawia się okienko z przyciskiem do przerwania testu, ale nawet jeśli się na niego kliknie to nic się nie dzieje poza ogólnymi objawami „zwisu”. Należy poczekać do końca test, aż przycisk zmieni nazwę na Ok.

Obrazek 3. Okienko zakończonego pomiaru
Cluster Alignment czyli polepszenie wydajności pamięci flash

W katalogu, w którym znajdował się plik „dfboff64.exe” pojawia się plik „benchlog.txt”. Należy zmienić jego nazwę, aby zachować uzyskane wyniki pomiarów (program nadpisuje ten plik podczas kolejnego uruchomienia). Przy zmianie nazwy warto podać nazwę nośnika flash (chociażby USB_Kingston_DT100_4GB) oraz systemu plików i rozmiar klastra (FAT32_4).

Plik z wynikami pomiarów (zwany pierwotnie „benchlog.txt”) zawiera linuxowe znaki końca wiersza i najlepiej oglądać go w przeglądarce internetowej aby nie stracić podstawowego formatowania.

Plik z wynikami pomiarów uzyskany z poprawnie skonfigurowanego programu powinien składać się z następujących po sobie wierszy o postaci pokazanej poniżej.
Code:
Sustained write   : 5191 KB/s (+0/0)
Sustained write   : 6639 KB/s (+1/512)
...
aż do
Sustained write   : 5461 KB/s (+63/32256)


Wyniki pomiarów dobrze jest zaimportować do arkusza kalkulacyjnego, a następnie doprowadzić do postaci wykresu słupkowego typu y = f(x), gdzie y to liczba wyrażona w „KB/s” zaś x to liczba znajdująca się pomiędzy „(+” oraz „/” i wyrażona w „S” (S – sektor, czyli 512B). Wizualizacja danych bardzo ułatwia znalezienie szczytów, a na ich podstawie „offsetu” i „okresu”.

Jeżeli wynik pomiaru jest mało czytelny nawet na wykresie to można zwiększyć wartość pola Disk buffer (KB) oraz Total MB to r/w (w tym drugim przypadku nie należy przeginać).

Szczyty mogą znajdować się w odległości 4S, 8S, 16S lub 32S dając „okres”. „Offset” znajduje się w miejscu pierwszego wystąpienia szczytu (w niektórych przypadkach nie widać tego na wykresie i trzeba to wyliczyć na podstawie pozostałych szczytów i wartości „okresu”).

Mając znaleziony „offset” oraz „okres” można przystąpić do wykonywania dalszych czynności opisanych w dziale Schemat czynności potrzebnych do uzyskania dopasowania bloków.

Przykłady dopasowania bloków na wybranych nośnikach flash

W tym podrozdziale zamierzam pokazać kilka przykładów dopasowania bloków na różnych popularnych nośnikach flash.



Cluster Alignment czyli polepszenie wydajności pamięci flash.pdf
 Description:
 n/a

Download
 Filename:  Cluster Alignment czyli polepszenie wydajności pamięci flash.pdf
 Contents:  
 Filesize:  1008.38 KB
 Punkty:  1.97 = 1.182 for transfer + 0.788 for the user (set automatically)

Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 23 Mar 2009 19:56   





Back to top
   
janko_wodnik
Poziom 16
Poziom 16


Joined: 23 Jan 2008
Posts: 338
Location: Kurów/Puławy/Wa-wa

Post#2 Post from the author of the topic 31 Mar 2009 20:37   

Przykład 1. Pendrive USB Kingston DT 100 4GB


Dopasowanie bloków w pendrive Kingston DT 100 4GB

Uwaga:
Wszelkie nazwy firm oraz ich produktów zostały użyte jedynie w charakterze informacyjnym.

Prezentacja nośnika flash

Oto bardzo prosty przykład przeprowadzenia dopasowania bloków na popularnym nośniku flash jakim jest pendrive Kingston DataTraveler 100 4GB.
Cluster Alignment czyli polepszenie wydajności pamięci flashCluster Alignment czyli polepszenie wydajności pamięci flash

Nie ma sensu mówić o nim więcej, warto dodać, że obsługuje standard USB 2.0, jednak jego osiągi nie rzucają na kolana, gdyż jest wykonany z flash MLC. Czy jest to jedynie wina faktu, że jest to urządzenie z najniższej półki cenowej? Przeprowadzenie procedury dopasowania bloków powinno udzielić odpowiedzi na to pytanie.

Działania wstępne

Dopasowanie bloków rozpoczynamy od zabezpieczenia wszystkich wartościowych danych z pendrive na inny nośnik fizyczny. Najprościej jest to zrobić kopiując dane na dysk twardy w komputerze.

Dopasowanie bloków

Należy uruchomić aplikację „dfboff64.exe”, ustawić parametry tak jak w oknie poniżej (proszę wskazać właściwą literę woluminu przypisaną do pendrive) i uruchomić test.
Cluster Alignment czyli polepszenie wydajności pamięci flash

Po zakończeniu testu można zmienić nazwę pliku „benchlog.txt” na chociażby „USB_DT100_4GB_FAT32_4_noCA.txt”. Plik tekstowy można zaimportować do arkusza kalkulacyjnego w celu wykonania wykresu, bardzo pomocnego w ocenie położenia bloków.

Podczas importu pliku tekstowego spacje powinny być separatorami (można również wybrać opcję scalenia separatorów). Dzięki temu dane będą bardzo przejrzyste i łatwo będzie stworzyć wykres przypominający ten, umieszczony poniżej.
Cluster Alignment czyli polepszenie wydajności pamięci flash

Na podstawie uzyskanego wykresu można zauważyć, że „okres” dla badanego pendrive wynosi 8 sektorów.
W tym wypadu „offset” jest różny niż 0. Przesuwanie partycji nie jest jeszcze przesądzone. Taką decyzję podejmuje się dopiero po wstępnym sformatowaniu pendrive za pomocą wybranego programu.

Po sformatowaniu pendrive za pomocą polecenia „format” z wiersza poleceń (start->uruchom->”cmd”) należy wykonać kolejny pomiar za pomocą programu „dfboff64.exe”.
Składnia polecenia dla pendrive 4GB z „okresem” 8 sektorów to:
Code:
format [litera dysku]: /FS:FAT32 /V:[Nazwa] /Q /A:4096

Po formacie i wykonaniu pomiaru położenia bloków może się okazać, że „offset” wynosi 0.
Cluster Alignment czyli polepszenie wydajności pamięci flash
Jeżeli „offset” wynosi 0, zaś „okres” jest równy rozmiarowi klastra to nośnik ma już dopasowane bloki.

Wzrost wydajności

W przypadku pendrive DT 100 4GB wzrost wydajności nie jest powalający. CrsytalDisk mark podskoczył nieznacznie, tylko na zapisie linowym.

Przed dopasowaniem bloków:
Code:
   Sequential Read :   16.913 MB/s
  Sequential Write :    7.408 MB/s
 Random Read 512KB :   17.450 MB/s
Random Write 512KB :    1.456 MB/s
   Random Read 4KB :    5.594 MB/s
  Random Write 4KB :    0.012 MB/s

Po dopasowaniu bloków:
Code:
   Sequential Read :   16.948 MB/s
  Sequential Write :    9.654 MB/s
 Random Read 512KB :   17.389 MB/s
Random Write 512KB :    1.603 MB/s
   Random Read 4KB :    6.138 MB/s
  Random Write 4KB :    0.012 MB/s

Test 3 x 50MB.

ATTO Disk Benchmark v2.41 wykazywał większe różnice „przed” i „po”, ale mam ograniczone zaufanie do tego programu.

Wnioski

Pendrive Kingston DT 100 4GB jest firmowo przygotowany do pracy z systemem plików FAT32 z klastrem 4kB, ale może wymagać korekty położenia partycji. Warto sprawdzić, czy dopasowanie bloków jest prawidłowe już w nowym pendrive.
Bez względu na wzrost wydajności w benchmarkach, warto dopasować bloki aby poprawić żywotność nośnika oraz nieco polepszyć jego odczuwalną wydajność.

W następnym odcinku będzie pokazane przesuwanie partycji za pomocą programu Ranish Partition Manager.
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 31 Mar 2009 20:37   





Back to top
   
janko_wodnik
Poziom 16
Poziom 16


Joined: 23 Jan 2008
Posts: 338
Location: Kurów/Puławy/Wa-wa

Post#3 Post from the author of the topic 13 Apr 2009 19:44   

Przykład 2: CompactFlash Transcend 133x 16GB


Dopasowanie bloków w CompactFlash Transcend 133x 16GB

Uwagi:
Wszelkie nazwy firm oraz ich produktów zostały użyte jedynie w charakterze informacyjnym.

Działania pokazane poniżej wymagają podstawowej znajomości zagadnień związanych z geometrią dysków twardych. Znajomość różnic w adresowaniu CHS oraz LBA będzie mile widziana.
Jako lekturę podstawową proponuję:
:arrow: Wikipedia - CHS

Prezentacja nośnika flash

Karta pamięci CF Transcend 133x 16GB to typowy przedstawiciel najtańszych kart CompactFlash MLC obsługujących UDMA.

Cluster Alignment czyli polepszenie wydajności pamięci flash

Ta karta CF została uczciwie przygotowana przez producenta do współpracy z interfejsem IDE w komputerach PC. Pomarańczowy Transcend podpięty do adaptera IDE->CF zgłasza się jako dysk niewymienny (fixed). Obsługa IORDY jest zoptymalizowana do pracy z kontrolerem IDE w PC (dane z programu hdparm):
Code:
IORDY=no, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

Największą wadą tej konstrukcji są stosunkowo słabe osiągi będące konsekwencją budowy opartej o flash MLC. Zastosowanie procedury dopasowania bloków powinno je poprawić.

Ten egzemplarz kart CF będzie miał za zadanie pracować jako dysk magazynujący w laptopie, uzupełniając już istniejący dysk systemowy (również CF).

Badana karta CF obsługuje UDMA (do trybu 4 włącznie). Aby w pełni wykorzystać przepustowość UDMA, jako interfejs został zastosowany kontroler IDE (PATA) z laptopa IBM ThinkPad X40 obsługujący kartę CF poprzez adapter IDE->CF (dokładnie ten sam, który został opisany w tym temacie).

Jako narzędzie do partycjonowania i formatowania został zastosowany Ranish Partition Manager w wersji 2.40, wersja dyskietkowa przeniesiona na pendrive.

RPM można pobrać tutaj.

Przykrą niespodzianką jest fakt, że RPM nie widzi karty CF pracującej jako „slave” na pierwszym kanale IDE ThinkPada X40, co pociąga za sobą konieczność całkowicie ręcznej zmiany kolejności kart CF w adapterze zależnie od etapu prac – partycjonowanie i formatowanie oraz wykonywanie pomiarów.

Kilka słów o obsłudze Ranish Partition Manager

RPM jest programem pracującym w środowisku DOS oraz uruchamianym z dyskietki 3,5”. Ponieważ FDD (stacja dyskietek) zdążyło już zniknąć z wielu współczesnych komputerów, należy przenieść obraz dyskietki na inny nośnik. Jeżeli komputer posiada bootowalny port USB, warto odkopać stary pendrive o małej pojemności i przenieść na niego obraz dyskietki z RPM (najprościej jest wykonać kopię posektorową).
Alternatywnie można użyć czytnika kart pamięci wraz z małą karta pamięci (chociażby 16MB karta MMC).
Inne rozwiązanie polega na znalezieniu bootowalnego CD zawierającego RPM (zwykle w internecie można spotkać CD zawierające różne darmowe programy, w tym RPM).

Sam RPM jest dość intuicyjny w obsłudze.

Klawisz F5 służy do wybrania dysku. Po upewnieniu się, że został wybrany właściwy dysk, można przystąpić do dalszych operacji.

Klawisz F4 służy do zmiany prezentacji adresów sektorów pomiędzy aktywną geometrią CHS a LBA.

Klawisz F3 cofa tymczasowe zmiany adresów sektorów a F2 zapisuje je na dysk. Po wciśnięciu F2 cofnięcie zmian przestaje być możliwe – klawisz F3 przestaje być aktywny.

Strzałki pozwalają przemieszczać się po polach, w których można wprowadzać zmiany.

Wartości adresów sektorów można zmieniać za pomocą klawiszy z cyframi, „+” i „-” oraz klawisza backspace.

Klawisz Insert służy do umieszczania na danej partycji wybranego systemu plików, zaś F do formatowania partycji.

Klawisz Delete usuwa wybraną partycję.

Enter ma różną funkcjonalność zależnie od kontekstu.

Ta podstawowa garść informacji o obsłudze RPM jest wystarczająca dla tego przykładu dopasowania bloków. Więcej danych można znaleźć na stronie: http://www.real-world-systems.com/docs/Part240+44.html

Działania wstępne

Dopasowanie bloków rozpoczynamy od zabezpieczenia wszystkich wartościowych danych z kart CF na inny nośnik fizyczny. Najprościej jest to zrobić kopiując dane na dysk twardy w komputerze.

Dopasowanie bloków

Po umieszczeniu karty CF w laptopie, została na niej utworzona i sformatowana partycja FAT32/8kB za pomocą RPM zgodnie z bieżącą geometrią CHS, która wynosi C/240/63 (geometria została narzucona przez BIOS laptopa, C - ostatni cylinder).

Karta CF po usunięciu partycji:
Cluster Alignment czyli polepszenie wydajności pamięci flash

Karta CF po domyślnym partycjonowaniu oraz formatowaniu:
Cluster Alignment czyli polepszenie wydajności pamięci flash

Domyślnie utworzona partycja rozpoczyna się na CHS 0/1/1 i kończy na C-1/239/63. Przy rozmiarze partycji ~15GB najmniejszy rozmiar klastra dla FAT32 to 8kB.

Teraz czas na wykonanie pomiarów za pomocą programy dfboff64.exe. Należy je wykonać analogicznie jak w poprzednim przykładzie (Kingston DT 100 4GB), tylko rozmiar porcji danych do zapisu można zwiększyć (chociażby do 24MB).

Cluster Alignment czyli polepszenie wydajności pamięci flash

Otrzymane wynik budzą zdziwienie swoją nieregularnością. „Okres” da się odczytać jako 8S, czyli 4kB. To o połowę mniej, niż najmniejszy dostępny rozmiar klastra (8kB) dla tej partycji. Pierwszy „offset” zostaje ustalony jako +4S, ale nieregularny przebieg wykresu uzyskanego za pomocą dfboff64.exe sugeruje sprawdzenie dalszych „offsetów”, czyli +12S oraz w szczególności +20S.

Teraz czas powrócić do RPM, aby zmodyfikować partycję. Biorąc pod uwagę fakt, że karta CF będzie pracować tylko w tym laptopie (i ciągle w tej samej geometrii), można pominąć wyrównanie do ostatniego pełnego cylindra (koniec partycji na C-1/239/63). Niemniej jednak, aby zachować minimum zgodności z podstawowymi prawidłami tworzenia partycji w geometrii CHS, postanawiam zachować wyrównanie do głowicy (H).

Geometria CHS o parametrach C/240/63 daje 63 sektory na ścieżkę (ścieżka to część wspólna z C i H). Najbliższa całkowita wielokrotność 8kB (16S) to 64S. Zatem przesunięcie partycji do przodu o 1C powoduje teoretyczną zmianę „offsetu” o -1S. Przesuwając początek partycji na 0/5/1, a koniec na C/4/63, powinno uzyskać się dopasowanie bloków.

Tak przesuniętą partycję ponownie formatuję za pomocą RPM, aby zachować stałe położenie pierwszego klastra obszaru danych względem początku partycji (metadane FAT). Użycie innego programu do formatowani może spowodować zmianę stylu metadanych FAT i przesunąć pierwszy klaster obszaru danych.

Cluster Alignment czyli polepszenie wydajności pamięci flash

Ponowne pomiary programem dfboff64.exe (porcja danych 16MB) potwierdzają, że „offset” +20S (aktualnie +16S) był lepszą opcją.

Cluster Alignment czyli polepszenie wydajności pamięci flash

Powrót do RPM, przesunięcie końców partycji na 0/21/1 i C/20/63, ponowny format jako FAT32/8kB w RPM.

Cluster Alignment czyli polepszenie wydajności pamięci flash

Znowu test za pomocą dfboff64.exe, tym razem z dość dużą porcją danych 64MB, aby usunąć fluktuacje. Wyniki potwierdzają uzyskanie dopasowania bloków, ale jednocześnie informują o dziwnym spowolnieniu kart CF po zapisaniu dużej ilości danych.

Cluster Alignment czyli polepszenie wydajności pamięci flash

Spowolnienie staje się mniej widoczne po wykonaniu testu zapisu o rozmiarze 256MB.

Cluster Alignment czyli polepszenie wydajności pamięci flash

Wzrost wydajności

Poniżej znajdują się wyniki uzyskane w programie CrystalDiskMark przed oraz po przeprowadzeniu dopasowania bloków.
Code:
   Sequential Read :   39.356 MB/s
  Sequential Write :   13.652 MB/s
 Random Read 512KB :   39.317 MB/s
Random Write 512KB :    1.991 MB/s
   Random Read 4KB :   15.071 MB/s
  Random Write 4KB :    0.016 MB/s

Code:
   Sequential Read :   39.789 MB/s
  Sequential Write :   15.820 MB/s
 Random Read 512KB :   39.942 MB/s
Random Write 512KB :    1.843 MB/s
   Random Read 4KB :   17.686 MB/s
  Random Write 4KB :    0.016 MB/s

Wzrost wydajności jest ponownie zaledwie niewielki z 13,6MB/s do 15,8MB/s. Plusem jest pokrywanie się bloków pamięci flash z klastrami systemu plików - brak dodatkowej operacji kasowania.

Wnioski

Karta CompactFlash Transcend 133x 16GB nadaje się do dopasowania bloków, ale wzrost wydajności nie rzuca na kolana. Zachowanie się tej karty CF wymaga dalszych badań – być może inne rozmiary klastra (większe) dadzą lepsze rezultaty.
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Computer FAQ -> Cluster Alignment czyli polepszenie wydajności pamięci flash
Page 1 of 1
Similar topics
Karty pamięci - compact flash i smartmedia (4)
Problem z rozmiarem pamięci flash (6)
Kilka pamięci flash w jedno... (4)
Timingi pamięci czyli ustawienia RAS I CAS. (4)
WIN2000SRV jako Cluster (2)
Pamięci flash w pamięci komputera (2)
Flash pod specjalnym nadzorem- czyli ja decyduje o reklamach (2)
HP PSC 2210 Alignment cancelled (3)
automatyczne kopiowanie podłączonej pamięci flash (7)
Zabezpieczenie pamięci flash - kilka pytań (5)

Page generation time: 0.091 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed