Karty CF - ograniczona liczba cykli odczytu?

Feb 26, 2010 22 Replies

Dzień dobry wszystkim



Jest urządzenie wykorzystujące kartę CF do przechowywania danych - dane zostają raz zapisane podczas produkcji, samo urządzenie nigdy ich nie nadpisuje (jeśli zachodzi potrzeba zmiany - wymienia się kartę). Niedawno dostaliśmy (kolega dostał :) ) kilkanaście kart z błędami - poprzestawiane pojedyncze bit w kilku/kilkunastu bajtach, zwykle uszkodzenia w pojedynczym sektorze. Co ciekawe karty zawierające ten sam program zwykle mają uszkodzenia w tym samym sektorze - kolega gdzieś usłyszał że "karty CF mają ograniczoną ilość cykli odczytu - jakieś 100k cykli" i próbuje znaleźć przyczynę błędu w programie który z jakiegoś powodu częściej odczytuje pewne bloki (podczas normalnej pracy programu odczyty powinny się rozkładać - pi razy oko - równomiernie). Ja raczej się skłaniam do hipotezy że karty zawierające tą samą wersję programu pochodzą z tej samej serii więc podobnie "padają" i zwyczajnie straciły dane ze starości (pracują w dość wysokiej temperaturze - jakieś



50-60 stopni). Z tego co wiem - pamięć tego typu nie ulega zużyciu podczas odczytu? A już na pewno ilość cykli nie jest ograniczona do tak małej liczby? Pozdrawiam GRG

U¿ytkownik "grg12" snipped-for-privacy@chello.at napisa³ w

Pamieci EEPROM, a przez to i karty na nich oparte, jak najbardziej maja ograniczona ilosc cykli .. ale zapisu.

A urzadzenie na pewno nie probuje zapisac jakis danych ? FAT na wszelki wypadek, data ostatniego dostepu do zbioru w katalogu itp ?

No coz, z tego co piszesz to moze byc po prostu zmiana danych ze starosci, plus niesprzyjajace warunki. A jedynie objawila sie w zapisanych danych. Byc moze jeszcze jakos przyspieszona czestotliwoscia odczytow, oraz wewnetrzna organizacja - np to jest pojedynczy bit 1, ktory jest otoczony samymi 0 na matrycy pamieci.

100k to raczej ilosc zapisow .. ale na dobrej karcie :-)

J.

To urządzenie zrobiliście sami, czy jest to coś gotowego na np. WindowsCE albo WM2003/WM5/WM6?

Przy podwyższonej temperaturze pracy czas retencji spada dość szybko. Wiem, producenci deklarują temperatury pracu do +70°C i 100 lat retencji, ale rzadko jednocześnie :)

Marek

J.F. pisze:

CF to pamieci NAND zajrzyj do specyfikacji maja ograniczona ilosc zapisow, podobnie dyski SSD ktore roznia sie od CF kontrolerem.

J.F. pisze: > A urzadzenie na pewno nie probuje zapisac jakis danych ?

Na pewno nie - to nie jest FAT tylko rodzaj archiwum "tylko do odczytu" (zawartość karty przypomina raczej "dump" z CR-ROMa - Windows rozpoznaje jako pusty nośnik bez systemu plików). A błędy pojawiają się w środku zwykłych danych.

Myślałem że po prostu rozpłynął się ładunek w komórce - zepsuta karta czasami (zależnie od temperatury i humoru) dostarcza poprawne dane - pewnie gdyby ją ponownie zaprogramować mogłaby służyć kolejnych parę lat.

O tym nie pomyślałem - trzeba będzie dokładniej obejrzeć te padnięte bajty. Pozdrawiam GRG

Marek Lewandowski pisze:

Samoróbka - własny hardware, własny software, na 99,99% nic nie próbuje zapisywać na tą kartę. Nie zdziwiłbym się gdyby ta wersja oprogramowania nawet nie zawierała implementacji komendy "WRITE".

100lat? Nie wiedziałem że aż tyle - pytanie tylko czy w temperaturze pokojowej czy w lodówce... (może powinienem wydzielić w lodówce półkę na backupy? :) ) Pozdrawiam GRG

Poczytaj o kartach CF:

formatting link
pierwsze s± to pamiêci flash NAND a nie du¿o pewniejsze i dro¿sze NOR. Po drugie typowy CF to MLC flash (2-3 bity na komórkê) a nie SLC flash (jeden bit na dwie komórki). Poza tym flash ze wzglêdu na niezerowy poziom b³êdów podobnie jak dyski twarde ma wewnêtrzne sumy kontrolne do odzyskiwania b³êdnych komórek, co jak wiadomo dzia³a tylko przy kilku zepsutych bitach.

grg12 przemówił ludzkim głosem:

100 lat raczej nie spotkasz. Producenci NAND FLASHy najczęściej podają czas retencji danych do 10 lat (czasami 20) i to pod warunkiem, że kupujesz SLC.

to było w przenośni - w sensie, że na papierze trzyma wieki.

Marek

uzywam cf cyfrowce (ponad 2 lata) i kilku (zwykle najpodlejszej jakosci) jako 'ssd dla ubogich' w komputerach. nigdy nie mialem problemow, pomimo iz srednio przejmuje sie nawet trzymaniem sie cykli zapisu (swap itd.). najstarsza karta ma ~3 lata.

temperatura pracy jest u mnie jednak zdecydowanie pokojowa, do ~40C w jednym laptopku...

gdzies kiedys czytalem ze promieniowanie jonizujace (rentegen, gamma, beta) moze 'przprogramowywac' flash, ale w moim regionie 'tlo' jest 5x wyzsze niz norma i pomimo iz sporadycznie padaja pamieci DRAM, flashe w telewizorach a czasem i inna co delikatniejsza elektronika, CF nie padlo jeszcze nigdy.

moim skromnym zdaniem winna bedzie temperatura, karty CF potrafia sie w czasie pracy dosc solidnie rozgrzac , wiec 50C na zewnatrz moze oznaczac ponad 70C na 'aktywnym chipie'.

mi osobiscie raz udalo sie 'przegrzac' pendrive'a - byl wsadzony bezposrednio do plyty ktora byla dosc goraca sama z siebie. pojawilo sie troche bledow i przestraszylem sie ze cos zepsulem trwale. jako ze pendrive byl 'troche' goracy , podlaczylem go na krotkim kabelku i od tej pory problemy sie skonczyly i nie myslalem o tym wiecej (zadnych 'trwalych' bledow nie stwierdzilem, i wszystko dziala ok od ponad roku).

--

U¿ytkownik "Piotr "Curious" Slawinski" snipped-for-privacy@bwv190.internetdsl.tpnet.lp> napisa³ w wiadomo¶ci news:hmd3vr$jq9$ snipped-for-privacy@atlantis.news.neostrada.pl...

Z ciekawo¶ci - gdzie mieszkasz? Okolice Wa³brzycha, K³odzka, Jeleniej Góry, jaki¶ L±dek Zdrój?

tak, te okolice.dokladnie to Luban Slaski - stog izerski widze z okna, a wode z kranu mam bardziej radoczynna niz woda w hali zdrojowej w Swieradowie ;)

--

Dzień dobry wszystkim

Właśnie się dowiedziałem co było przyczyną uszkodzeń - okazało się że nowoczesne karty CF rzeczywiście mają ograniczoną liczbę cykli odczytu. Zjawisko określa się jako "read disturbances" - objawia się uszkodzeniem danych w komórkach położonych w pobliżu odczytywanej. Karta jako taka nie ulega uszkodzeniu - wystarczy ponownie zapisać dane. Czyli jeśli mamy urządzenie które (np. z przyczyn licencyjnych) nie może zapisywać na kartę a jednocześnie intensywnie z niej czyta (np. regularnie liczy CRC... dla bezpieczeństwa :) ) - należy się spodziewać że przestanie działać. Pozdrawiam GRG

Ale dlaczego w położonych w pobliżu a nie w tej odczytywanej? Skoro odczytywana nie jest niszczona to czytać wszystkie.

Mirek.

a mozna prosic zrodlo tej informacji i ew. jakich producentow (i jakich pojemnosci) karty sa na to narazone?

--

Piotr "Curious" Slawinski pisze:

Jutro wypytam kolegę z działu "hardware" - na razie znalazłem krótki opis zjawiska:

formatting link
cytat: During the read-out operation, the read voltage Vread is applied to control gates of the deselected cell transistors and the ground voltage is applied to a substrate (e.g., a bulk) of the deselected cell transistors. The drains of the deselected cell transistors are supplied with a predetermined voltage. The application of the read voltage Vread and the ground voltage causes a bias condition during the read-out operation.

As illustrated in FIG. 3, the bias condition can cause electrons to be injected into a floating gate of the deselected cell transistor from the substrate during the read-out operation. The electrons can result in an unintentional programming (or soft programming) of a deselected cell transistor in on-state (or erased state), which is referred to as a ‘read disturbance’.

A read disturbance may cause threshold voltages of the on-state (or erased state) memory cells to gradually increase. As noted by the shaded area shown in FIG. 4, threshold voltages of the on-state memory cells increase in proportion to number of read-out operations that are performed. The voltage increases may cause some of the on-state memory cells to be erroneously detected as off-cells, resulting in read fails.

As the number of read-out operations performed increases, the probability of a read fail increases as shown in FIG. 5. If the number of bit errors exceeds a permissible range, a block corresponding thereto is treated as a bad block. The bad block containing the erroneous data is replaced by a reserved memory block, which is stored in the flash memory device. Here, the bad block is caused by a read disturbance, and not worn out by repetition of the programming or reading operation. Therefore, the bad block may be reused through erasure and replacement.

Tekst pochodzi o opisu patentu na przeciwdziałanie zjawisku - więc możliwe że większość kart na rynku nie robi już takich numerów

hum, ciekawostka. nie do konca rozumiem jak napiecie odczytu moze spowodowac 'wstrzykniecie' elektronow do bramek nie-wybranego banku, zwlaszcza ze w w/w linku brakuje rysunkow ...

bylbym wdzieczny za bardziej szczegolowe informacje, zwlaszcza jakie karty sa na to narazone - no i czy problem wystepuje tez w mikrokontrolerach (i jakich?)

--

Piotr "Curious" Slawinski pisze:

Sorry - zapomniałem. Posypały sie karty produkcji numonyx i ST - wielkość 4GB, MLC. Niestety nie udało mi się znaleźć oficjalnych danych na temat rozmiaru problemu - w wszystkich dataschetach stoi "nieograniczona liczba cykli odczytu". Dokładnych pomiarów nie robiliśmy

- ale karta potraktowana programem czytającym w kółko jeden sektor po kilku dniach wykazywała błędy (uszkodzony był sektor którego nie odczytywano więc program nie wiedział kiedy skończyć). Szacunkowo - kilka/kilkanaście milionów cykli. Producent twierdzi że nowe serie kart będą miały inny kontroler który zabezpiecza przed tym rodzajem błędów. Pozdrawiam GRG

NAND Read Disturb: Shoo Fly, Don't Bother Me

formatting link
(

after 100,000 or so reads of a sector, the stored data is actually very likely to experience corruption. Subsequent reads of the sector will return the same corrupted data, but the flash sector can be erased and reprogrammed (with the same data or otherwise) for another 100,000 or so reads. Towards the end of the useable life of the flash, a written sector may only be good for 1000 (or less) reads before it looses value.

formatting link
block on 1-bit error corrects errors due to Read Disturb

The Block Refresh on 1-bit errors feature takes into account the fact that many transient errors occur due to Read Disturb ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (due to NAND architecture, all cells in the same word line are affected when reading a particular cell) or, in some cases, voltage degradation over time.

The concept is that if a block reaches a point where transient errors begin to occur, erasing the block (setting all bits to "1") and rewriting it may solve the problem. Specifically, Block Refresh rewrites the block data in a different block that is not experiencing errors, and then erases (reclaim) the erroneous block for usage in a later operation.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required