Nie mogę znaleźć żadnych wiarygodnych informacji na ten temat. Nie mam pełnej specyfikacji sprzętu karty SD / MMC.
Czy to prawda? Moja aplikacja na wysokim poziomie nie musi się martwić wyrównywaniem zużycia podczas pracy z tymi kartami?
EDYTOWAĆ
Czy ktoś może potwierdzić, że wyrównanie zużycia jest gwarantowane przez specyfikację SD? Chcę mieć pewność, ponieważ wygląda na to, że robi to większość dostawców, ale nie jest to wymagane przez specyfikację.
Odpowiedzi:
Pracuję dla firmy, która była członkiem stowarzyszenia SD, znamy specyfikację 2.0 (SDHC). Specyfikacja karty SD NIE ma pozycji do wyrównywania zużycia. Jest to całkowicie zależne od producenta SD, który sobie z tym poradzi, jeśli tak zdecydują. Widzieliśmy, że niektórzy prawdopodobnie tak robią, inni nie. SDXC mogło to zmienić, aby uwzględnić wyrównanie zużycia, ale nie jestem tego pewien. Niestety jedynym sposobem, aby naprawdę to pokazać, jest uzyskanie oficjalnej specyfikacji. Najprawdopodobniej można go znaleźć w Internecie, ale stowarzyszenie SD naprawdę chce, abyś za to zapłacił.
Na marginesie, wzięcie karty 2 GB i zapisanie jej zaczyna się od nowa w kółko średnio około 10 TB, zanim karta się wyczerpie i nie będzie już można jej zapisać. Ponadto karty SD nie powiadomią Cię, gdy dane będą złe, tzn. Nie zwróci błędu we / wy, jak na dysku twardym komputera. Może to nie stanowić problemu dla projektów osadzonych, ponieważ 10 TB to DUŻO danych, ale dla kogoś może to być czynnik.
źródło
To prawda! Karty MicroSD zawierają mikroukład NAND flash połączony z mikrokontrolerem (ARM) zamkniętym w czarnym plastiku. http://www.bunniestudios.com/blog/?p=898 wyjaśnia.
Pod koniec kolejnego postu http://www.bunniestudios.com/blog/?p=918 Bunnie twierdzi, że zintegrowanie kontrolera prawdopodobnie kosztuje mniej niż przetestowanie flasha przed czasem.
Cytując instrukcję obsługi karty SD firmy SanDisk: „1.9 Wyrównanie zużycia. Wyrównanie zużycia jest nieodłączną częścią funkcji kasowanie danych na karcie SD za pomocą pamięci NAND”. Możesz przeczytać całość w arkuszu danych karty marki SanDisk .
źródło
Tak, karty SD / MMC mają kontrolery, które wyrównują zużycie. Jeśli nie, możesz je zniszczyć w ciągu kilku minut z niewłaściwymi wzorami zapisu.
To jest problem dla niektórych osadzonych projektów. Najwyraźniej nie ma (najwyraźniej) sposobu, aby wiedzieć, które sektory mogą zostać zrównane z zużyciem w dowolnym momencie, więc cykl zasilania w niewłaściwym czasie może zniszczyć dane w dowolnym miejscu na karcie, bez względu na to, gdzie MYŚLISZ, że piszesz. (nie pytaj skąd wiem :))
Karty SD muszą być używane z systemem, który gwarantuje czyste zamknięcie systemu (lub przynajmniej, że zapisy są dozwolone), w przeciwnym razie nastąpi (ostatecznie) utrata danych.
EDYTOWAĆ
Problem polega na tym, że proces wyrównywania zużycia jest całkowicie ukryty. Dowolny sektor na dysku może zostać przeniesiony w dowolnym momencie (zamieniony z zapisaną stroną), a jeśli nastąpi awaria zasilania w trakcie tego procesu, losowy sektor może zostać uszkodzony.
Chociaż istnieją względnie bezpieczne sposoby na wdrożenie tego ruchu, nie ma go w żadnej specyfikacji, więc nie można ufać, że karta to zrobi. Możesz przetestować jedną kartę, sprawić, by działała, a następnie producent może zmienić implementację bez zmiany numeru części i jesteś zepsuty.
Z testów wynika, że kontroler moich kart SD wcale NIE robi tego w bezpieczny sposób.
Mogę spojrzeć na kartę SD o wysokiej niezawodności, którą widziałem reklamowaną specjalnie pod kątem tolerancji na awarię zasilania ... ale wtedy musisz zaufać producentowi, że zrobi to poprawnie, a ja nie. Naprawdę chcę bezpośredniej kontroli nad wymazywaniem stron. Nadal próbuję to rozgryźć.
źródło
Każdy typ karty SD wykorzystujący dowolny typ konwencjonalnej pamięci flash NAND będzie musiał korzystać z pewnego rodzaju wirtualizacji sektorowej, ponieważ żadne konwencjonalne urządzenie flash NAND nie obsługuje usuwania pojedynczych sektorów 512-bajtowych, a żadne konwencjonalne urządzenie flash NAND o znacznych rozmiarach byłby w stanie uzyskać wydajność, która była rzędu wielkości nawet marginalnie akceptowalnej, gdyby każda próba zapisu sektora wymagała od urządzenia skopiowania wszystkich sektorów w bloku kasowania tego sektora (nawet do pamięci RAM), a następnie skasowania bloku i zapisu wszystkie sektory z powrotem. Większość technik wirtualizacji sektorowej jest z natury nieco wyrównująca zużycie. Spodziewałbym się, że największym problemem różnic w jakości urządzeń i podróbek będzie zakres, w jakim urządzenie aktywnie próbuje wyrównać poziomowanie między blokami, w przeciwieństwie do zwykłego przydziału pseudolosowego bloku i nadziei, że przyniesie on akceptowalnie zbliżone do jednolitych wyniki. W praktyce spodziewałbym się, że w większości przypadków wystarczający byłby nawet losowy / mający najlepsze wyniki przydział.
źródło
Sandisk ma białą księgę, która wyjaśnia logikę wyrównywania zużycia na swoich kartach, a następnie podaje szacunkowe czasy życia karty w wielu scenariuszach. Streszczenie: jeśli nie wbijesz karty non-stop, będzie to trwało dekady.
źródło
Warto zauważyć, że pomimo tego wiele urządzeń ma uszkodzone karty SD i microSD, szczególnie te o wysokiej gęstości, jeśli bateria jest słaba lub telefon ulega awarii / wyłącza się itp. Podejrzewam, że problemem jest nieodpowiednia regulacja napięcia zasilającego, ponieważ jest to dobrze znane na niektórych kartach (kaszel Ad t / kaszel), co powoduje zjawisko nieczytelnej karty w niektórych zewnętrznych czytnikach, ale działa dobrze na mikrosilnikach dostarczanych przez niektóre sklepy komputerowe.
W tej chwili jestem w trakcie odzyskiwania karty z tą usterką, co dziwne, większość danych można odzyskać, ale niektóre sektory nie zmieniają się przy każdej próbie. Czy samo poziomowanie zużycia może być przyczyną winy? (tak, wypróbowałem wiele czytników, ten sam błąd!)
źródło
Miał też pewne sukcesy „nukowania” kart zombie, tj. Takich, które nie ukończą formatu lub są tylko do odczytu. Działa tylko na niewielki procent, ale są one znacznie bardziej wrażliwe niż większość „oficjalnych” wytycznych dotyczących efektu.
Tak potraktowana karta testowa trwała pełne cztery miesiące, zanim ponownie się zepsuła, gdyby nie urządzenie, którego użyto do zasilania głośnego napięcia, żywotność mogłaby być dłuższa.
źródło