Gość (37.30.*.*)
Zjawisko, w którym kopiowanie filmu z pendrive’a na komputer trwa kilkanaście sekund, a przesyłanie tego samego pliku w drugą stronę ciągnie się minutami, jest frustrujące, ale całkowicie uzasadnione technologicznie. Choć korzystamy z tego samego urządzenia, tego samego portu USB i tego samego kabla, wewnątrz pendrive’a zachodzą dwa zupełnie inne procesy fizyczne i logiczne. Różnica w prędkości odczytu i zapisu wynika bezpośrednio z konstrukcji pamięci typu Flash (NAND), sposobu zarządzania danymi przez kontroler oraz ograniczeń samej technologii.
Aby zrozumieć tę różnicę, musimy zajrzeć do środka pendrive’a. Pamięć Flash przechowuje dane w postaci ładunków elektrycznych uwięzionych wewnątrz tranzystorów (komórek pamięci). Proces odczytu jest stosunkowo prosty: kontroler pendrive’a jedynie sprawdza stan napięcia w danej komórce, aby określić, czy zapisany jest tam bit o wartości 0 czy 1. Jest to proces pasywny, szybki i niewymagający dużej energii.
Zupełnie inaczej wygląda sytuacja podczas zapisu. Aby zapisać nowe dane, kontroler musi wpompować elektrony do komórek pamięci pod wysokim napięciem. Jest to proces bardziej obciążający i czasochłonny. Co więcej, pamięć Flash ma pewną specyficzną cechę: nie można po prostu nadpisać istniejących danych. Jeśli komórka nie jest pusta, musi zostać najpierw wymazana, a proces kasowania odbywa się w całych blokach, co dodatkowo spowalnia całą operację.
Pamięć w Twoim pendrive jest zorganizowana w strony i bloki. O ile odczyt i zapis mogą odbywać się na poziomie pojedynczych stron, o tyle kasowanie danych musi objąć cały blok (składający się z wielu stron). Wyobraź sobie, że chcesz poprawić jedno słowo w zeszycie, ale zamiast użyć gumki, musisz wyrwać całą kartkę, przepisać jej zawartość z poprawką na nową stronę i dopiero wtedy włożyć ją z powrotem.
To właśnie dzieje się wewnątrz pendrive’a podczas zapisu:
Ten skomplikowany taniec danych sprawia, że prędkość zapisu jest zawsze wielokrotnie niższa niż prędkość odczytu, gdzie po prostu "skanujemy" zawartość bez jej modyfikowania.
Pendrive to nie tylko "pudełko na dane", ale mały komputer z własnym procesorem zwanym kontrolerem. To on zarządza ruchem, dba o to, by komórki zużywały się równomiernie (wear leveling) i koryguje błędy. W tanich pendrive’ach montuje się słabe kontrolery i gorszej jakości kości pamięci NAND.
W droższych modelach (np. klasy USB 3.1 lub 3.2 Gen 2) kontrolery są znacznie bardziej wydajne i potrafią zapisywać dane równolegle na kilku kanałach pamięci, co drastycznie skraca czas oczekiwania. W najtańszych modelach "marketowych" różnica między odczytem (np. 100 MB/s) a zapisem (np. 10 MB/s) jest najbardziej drastyczna, ponieważ tani kontroler nie radzi sobie z szybkim zarządzaniem blokami danych.
Niektóre pendrive’y wykorzystują tzw. bufor SLC. Polega to na tym, że niewielka część pamięci pracuje w trybie bardzo szybkiego zapisu (zapisuje tylko jeden bit na komórkę). Gdy kopiujesz mały plik, leci on "jak burza". Jednak gdy bufor się zapełni (np. po skopiowaniu 2 GB filmu), prędkość nagle drastycznie spada, bo kontroler musi zacząć zapisywać dane w wolniejszym trybie wielobitowym (MLC, TLC lub QLC).
Na prędkość wpływa również to, co dokładnie kopiujesz. Przesłanie jednego dużego pliku (np. obrazu ISO o wadze 4 GB) zawsze będzie szybsze niż kopiowanie 4000 małych zdjęć o łącznej wadze 4 GB. Przy każdym małym pliku system operacyjny i kontroler pendrive’a muszą wykonać operacje pomocnicze: zaktualizować tablicę plików, sprawdzić uprawnienia i zamknąć sesję zapisu. To generuje ogromny narzut czasowy (overhead), który sprawia, że realna prędkość zapisu spada do ułamka wartości deklarowanej przez producenta.
Podsumowując, różnica w prędkości wynika z samej natury elektroniki. Odczyt to tylko obserwacja stanu komórek, podczas gdy zapis to fizyczna i logiczna reorganizacja struktury danych, która wymaga czasu, energii i precyzji.