• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
SD card durability
#1
Before you read on watch this story first: https://insideevs.com/news/376037/tesla-...ory-issue/

So categorize your (containerized) applications how write intensive they are and how they are stressing the non-volatile FLASH storage media used in embedded devices such as netPI.

Critical are those applications writing data at high frequency and volume like databases. But not only the applications could get critical:
Docker daemon for example logs all container's console outputs too. So if you have an application running at debug level maybe outputting tons of text information to the console (even no one would/could read it) will lead to a worn-out-effect easily too.

netPI includes an 8GB Industrial rated micro SD card of type MLC-NAND. Since January 2019 the SD card used comes from company SANDISK(Western Digital) named SDSDQAF3-008G-I. The most critical thing about a NAND FLASH memory is its finite number of erase/program cycles (P/E cycles) also referred to as "memory wear". The wear begins to deteriorate the integrity of the memory until it is becoming unusable in the end. The exceptional thing about netPI's 8GB Industrial SD card is that internally this card is based on an 128GB FLASH memory. The card's memory controller chip in front is just limiting the whole size to a 8GB big window available to the user. You see in the appended product brief that all cards of this type even if it's a 8,16,32,64 or 128GB size share all the same TBW (Terra Bytes Written) value of 384.

Where does this TBW value come from? MLC technology in general has a limit of around 3000 P/E cycles per flash block specified by the FLASH manufacturers used in an SD card (https://en.wikipedia.org/wiki/Write_amplification). The limit per block makes a NAND-flash endurance directly dependent on its overall size, so the bigger the more blocks,  the better. An auto-wear leveling mechanism in the card's memory controller ensures the next erase/program cycle is performed on another flash block and hence distributes them evenly across the medium. So the FLASH is 128GB effectively and the P/E is 3000. Both multiplied results in 384TBW.

10 years life time in theory: There is a MS Excel based lifetime calculator available (from Toshiba, appended) estimating the expected NAND flash life time in theory. Let's suppose you have 1MByte as amount of data to be written every second to netPI's 8GB SD card. Even if 8GB  are just visible internally there works an 128GB FLASH memory @ 3000 P/E cycle as you know now. The calculator comes to a lifetime  of 12.5 years.

Life time in practice: We made tests with the SDSDQAF3-008G-I SD card over 485 days. We brought the card to its limit at a incredible writing rate of 216GB/day and realized the first failure after writing 105TB of data. We wrote in chunks of 1GByte file sizes. So in theory there is 384TB possible but in practice we got less than a third. But where does this effect comes from? This comes from WAF and means write amplification factor Read on here for more information https://en.wikipedia.org/wiki/Write_amplification. So if you think writing 1GB results in writing exactly 1GB then this is ideal but you are wrong. A typical WAF value of an SD card is 3.

If you want to read more information about the SANDISK industrial SD cards read on here: https://static6.arrow.com/aropdfconversi...iginal.pdf

There are two methods in general to increase the durability using your own SD card with netPI:

  1. Increase the memory card size while the NAND technology remains the same (MLC). Rule of thumb: double size, double durability.
  2. Switch to memory cards based on a different NAND technology. Type "pSLC" has roughly 6x higher durability, type "SLC" has 30x higher durability compared to MLC
... so keep an eye on your applications.

Additional information:

You can read out useful information from your SD card in use if you call in a Linux terminal. Replace the ? (usually 7 on netPI) in the command line with the corresponding number found on your system

Code:
cd /sys/class/mmc_host/mmc0/mmc0:000?
echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"

Additionally there are userspace utils available in source code that can deliver further information than provided by default. Call the following commands in a terminal and you get a utility compiled named "mmc"

Code:
git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/cjb/mmc-utils/
cd mmc-utils
make install

Use "mmc" with the following command to read out "Card Specific Data" where the ? needs to be replaced with the corresponding number found on your system (typically 7 on netPI)

Code:
mmc csd read /sys/class/mmc_host/mmc0/mmc0:000?/
mmc cid read /sys/class/mmc_host/mmc0/mmc0:000?/
mmc scr read /sys/class/mmc_host/mmc0/mmc0:000?/


Attached Files
.xlsx   TOSHIBA NAND Llifetime Calculator March 2015.xlsx (Size: 15.12 KB / Downloads: 0)
.pdf   al-industrial-grade-sd-and-microsd-cards-wpb262-original.pdf (Size: 843.58 KB / Downloads: 6)
You never fail until you stop trying.“, Albert Einstein (1879 - 1955)

#2
If the endurance of netPI's standard 8GB micro SD card is not sufficient for your use case then of course we support OEMs with netPIs populated with different type of SD cards of type pSLC or SLC.

Just to give you a slight impression about pricing for an equivalent 8GB high endurance mirco SD card of type SLC you can follow this link to distributor Mouser at https://www2.mouser.com/ProductDetail/Sw...Cokg%3d%3d showing you an 8GB industrial suited SFSD8192N1BM1MT-I-QG-221-STD from Swissbit at a price of $128 (instead of $10 a MLC card would cost typically). So it is about 10 times more expensive.

What is also an option for OEMs is to buy netPI without SD card since mid of year 2019. Please follow this link https://forum.hilscher.com/Thread-INFO-1...ut-SD-card to get to know the options.
You never fail until you stop trying.“, Albert Einstein (1879 - 1955)



Possibly Related Threads…
Thread Author Replies Views Last Post
  how to unpack netPI to replace the microSD card tad 2 190 September-2nd-2020, 05:47 AM
Last Post: tad
Wink SD card on NIOT-E-NPI3-51-EN-RE Lingyue 3 375 March-6th-2020, 07:34 AM
Last Post: Lingyue
  Sealed microSD memory card (no more) Armin@netPI 1 346 August-13th-2019, 10:51 AM
Last Post: Armin@netPI
  [SOLVED] Use larger SD-Card with original Hilscher-Image Andi 3 308 July-7th-2019, 05:46 AM
Last Post: Armin@netPI
  Broken SD card dusrma24 10 918 August-24th-2018, 02:31 AM
Last Post: dusrma24

Forum Jump:


Users browsing this thread: 1 Guest(s)