Używanie pamięci flash do uruchamiania systemu komputerowego, takiego jak Windows, było odradzane przez dłuższy czas. Ale co sprawiło, że jest to pożądana i realna opcja dla urządzeń mobilnych? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na pytanie zaciekawionego czytelnika.
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - części Stack Exchange, grupy witryn internetowych z pytaniami i odpowiedziami.
Pytanie
Czytnik SuperUser RockPaperLizard chce wiedzieć, co sprawia, że pamięć flash eMMC działa na urządzeniach mobilnych, ale nie na komputerach PC:
Odkąd wynaleziono pendrive'y USB, ludzie zastanawiali się, czy mogliby na nich uruchomić swoje systemy operacyjne. Odpowiedź zawsze brzmiała „nie”, ponieważ liczba zapisów wymaganych przez system operacyjny szybko je wyczerpała.
Ponieważ dyski SSD stały się bardziej popularne, technologia równoważenia zużycia uległa poprawie, aby umożliwić uruchamianie na nich systemów operacyjnych. Różne tablety, netbooki i inne smukłe komputery używają pamięci flash zamiast dysku twardego lub dysku SSD, a system operacyjny jest na niej przechowywany.
Jak to nagle stało się praktyczne? Czy na przykład zazwyczaj wdrażają technologie zmniejszające zużycie?
Co sprawia, że pamięć flash eMMC działa na urządzeniach mobilnych, ale nie na komputerach PC?
Odpowiedź
Dostawcy SuperUser Speeddymon i Journeyman Geek mają dla nas odpowiedź. Po pierwsze, Speeddymon:
Wszystkie urządzenia pamięci flash, od tabletów po telefony komórkowe, smartwatche, dyski SSD, karty SD w aparatach i pendrive'y wykorzystują technologię NVRAM. Różnica polega na architekturze NVRAM i sposobie, w jaki system operacyjny montuje system plików na dowolnym nośniku pamięci, na którym się znajduje.
W przypadku tabletów i telefonów komórkowych z systemem Android technologia NVRAM jest oparta na technologii eMMC. Dane, które mogę znaleźć w tej technologii, sugerują od 3k do 10k cykli zapisu. Niestety, nic z tego, co do tej pory odkryłem, nie jest ostateczne, ponieważ Wikipedia jest pusta w cyklach zapisu tej technologii. Wszystkie inne miejsca, na które wyglądałem, były różnymi forami, więc nie jest to coś, co nazwałbym wiarygodnym źródłem.
Dla porównania cykle zapisu w innych technologiach NVRAM, takich jak dyski SSD, które wykorzystują technologię NAND lub NOR, wynoszą od 10 000 do 30 000.
Teraz, jeśli chodzi o wybór systemu operacyjnego, jak zamontować system plików. Nie mogę mówić o tym, jak robi to Apple, ale w przypadku Androida układ jest podzielony na partycje, tak jak dysk twardy. Masz partycję systemu operacyjnego, partycję danych i kilka innych zastrzeżonych partycji w zależności od producenta urządzenia.
Prawdziwa partycja główna znajduje się wewnątrz bootloadera, który jest spakowany jako skompresowany plik (jffs2, cramfs itp.) Wraz z jądrem, więc po zakończeniu rozruchu urządzenia w etapie 1 (zwykle ekran z logo producenta), jądro uruchamia się, a partycja główna jest jednocześnie montowana jako dysk RAM.
Gdy system operacyjny uruchamia się, montuje system plików partycji podstawowej (/ system, czyli jffs2 na urządzeniach starszych niż Android 4.0, ext2 / 3/4 na urządzeniach od Androida 4.0 i xfs na najnowszych urządzeniach) jako tylko do odczytu, więc że żadne dane nie mogą być w nim zapisane. Można to oczywiście obejść przez tak zwane „rootowanie” urządzenia, które daje dostęp jako superużytkownik i umożliwia ponowne zamontowanie partycji w trybie odczytu / zapisu. Twoje dane „użytkownika” są zapisywane na innej partycji na chipie (/ data, która jest zgodna z tą samą konwencją, co powyżej, na podstawie wersji Androida).
Ponieważ coraz więcej telefonów komórkowych rezygnuje ze slotów na karty SD, możesz pomyśleć, że osiągniesz limit cyklu zapisu wcześniej, ponieważ wszystkie twoje dane są teraz zapisywane w pamięci eMMC zamiast na karcie SD. Na szczęście większość systemów plików wykrywa niepowodzenie zapisu w danym obszarze pamięci. Jeśli zapis się nie powiedzie, dane są po cichu zapisywane w nowym obszarze pamięci, a zły obszar (znany jako zły blok) jest odgradzany przez sterownik systemu plików, dzięki czemu dane nie są już tam zapisywane w przyszłości. Jeśli odczyt się nie powiedzie, dane są oznaczane jako uszkodzone i albo użytkownik jest proszony o wykonanie sprawdzenia systemu plików (lub sprawdzenie dysku), albo urządzenie automatycznie sprawdza system plików podczas następnego rozruchu.
W rzeczywistości Google ma patent na automatyczne wykrywanie i obsługę złych bloków: Zarządzanie uszkodzonymi blokami w pamięci flash dla elektronicznej karty pamięci flash
Aby przejść do rzeczy, twoje pytanie, jak to nagle stało się praktyczne, nie jest właściwym pytaniem. Przede wszystkim nigdy nie było to niepraktyczne. Zdecydowanie odradzano instalowanie systemu operacyjnego (Windows) na dysku SSD (prawdopodobnie) ze względu na liczbę zapisów, jakie wykonuje na dysku.
Na przykład rejestr otrzymuje dosłownie setki odczytów i zapisów na sekundę, co można zobaczyć za pomocą rozszerzenia Narzędzie Microsoft-SysInternals Regmon .
Instalowanie systemu Windows było odradzane na dyskach SSD pierwszej generacji, ponieważ z powodu braku równoważenia zużycia dane zapisywane w rejestrze co sekundę (prawdopodobnie) ostatecznie dotarły do pierwszych użytkowników i spowodowały niemożność rozruchu systemów z powodu uszkodzenia rejestru.
W przypadku tabletów, telefonów komórkowych i prawie wszystkich innych urządzeń wbudowanych nie ma rejestru (oczywiście urządzenia Windows Embedded są wyjątkami), a zatem nie ma obaw o ciągłe zapisywanie danych w tych samych częściach nośnika flash.
W przypadku urządzeń z systemem Windows Embedded, takich jak wiele kiosków znajdujących się w miejscach publicznych (takich jak Walmart, Kroger itp.), W których od czasu do czasu można zobaczyć losowy BSOD, nie ma zbyt wielu konfiguracji, które można wykonać, ponieważ są wstępnie zaprojektowane z konfiguracjami, które mają się nigdy nie zmieniać. Jedyne zmiany zachodzą w większości przypadków przed zapisaniem chipa. Wszystko, co trzeba zapisać, na przykład płatność w sklepie spożywczym, odbywa się przez sieć do baz danych sklepu na serwerze.
Następnie odpowiedź od Journeyman Geek:
Odpowiedź zawsze brzmiała „nie”, ponieważ liczba zapisów wymaganych przez system operacyjny szybko je wyczerpała.
W końcu stały się opłacalne do powszechnego użytku. To, że „zużycie” jest jedynym zmartwieniem, to trochę przypuszczenie. W niektórych systemach przez dłuższy czas brakowało pamięci półprzewodnikowej. Wielu ludzi, którzy budowali automaty samochodowe, uruchamiało się z kart CF (które były elektrycznie kompatybilne z PATA i trywialne w instalacji w porównaniu z dyskami twardymi PATA), a komputery przemysłowe miały małą, wytrzymałą pamięć flash.
To powiedziawszy, nie było wielu opcji dla przeciętnej osoby. Możesz kupić drogie karty CF i adapter do laptopa lub znaleźć malutki, bardzo drogi dysk przemysłowy w module modułu do komputera stacjonarnego. Nie były one zbyt duże w porównaniu ze współczesnymi dyskami twardymi (wydaje mi się, że współczesne IDE DOM mają 8 GB lub 16 GB). Jestem prawie pewien, że można było skonfigurować dyski półprzewodnikowe na długo, zanim standardowe dyski SSD stały się powszechne.
O ile wiem, tak naprawdę nie było żadnych uniwersalnych / magicznych ulepszeń w wyrównaniu zużycia. Nastąpiły stopniowe ulepszenia, gdy odchodziliśmy od drogiego SLC do MLC, TLC, a nawet QLC wraz z mniejszymi rozmiarami procesów (z których wszystkie niższe koszty i większe ryzyko zużycia). Flash stał się dużo tańszy.
Było też kilka alternatyw, które nie powodowały problemów ze zużyciem. Na przykład, uruchamianie całego systemu z pamięci ROM (która jest prawdopodobnie pamięcią półprzewodnikową) i pamięci RAM z podtrzymaniem bateryjnym, z której korzystało wiele wczesnych dysków SSD i urządzeń przenośnych, takich jak Palm Pilot. Żadne z nich nie jest dziś powszechne. Dyski twarde kołysały się w porównaniu do, powiedzmy, pamięci RAM z podtrzymaniem bateryjnym (zbyt drogie), wczesnych urządzeń półprzewodnikowych (nieco drogich) lub chłopi z flagami (nigdy nie przyłapany ze względu na straszną gęstość danych). Nawet nowoczesna pamięć flash to potomek szybko wymazujących się eepromów a eepromy były od wieków używane w urządzeniach elektronicznych do przechowywania takich rzeczy, jak oprogramowanie sprzętowe.
Dyski twarde po prostu znajdowały się na ładnym przecięciu dużej objętości (co jest ważne), niskiego kosztu i stosunkowo wystarczającej ilości miejsca.
Powodem, dla którego można znaleźć eMMC w nowoczesnych komputerach z niższej półki, jest to, że komponenty są stosunkowo tanie, wystarczająco duże (dla systemów operacyjnych dla komputerów stacjonarnych) przy tym koszcie i mają wspólne cechy z komponentami telefonów komórkowych, więc są produkowane masowo ze standardowym interfejsem. Dają również dużą gęstość przechowywania dla swojej objętości. Biorąc pod uwagę, że wiele z tych maszyn ma marny dysk 32 GB lub 64 GB, na równi z dyskami twardymi z większej części dekady temu, są one rozsądną opcją w tej roli.
W końcu dochodzimy do punktu, w którym można przechowywać rozsądną ilość pamięci niedrogo i z rozsądną prędkością na eMMC i flash, dlatego ludzie je wybierają.
Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych zaawansowanych technicznie użytkowników Stack Exchange? Sprawdź cały wątek dyskusji tutaj .
Źródło zdjęcia: Martin Voltri (flickr)