Going with SLC/"industrial" Flash is indeed the key to avoiding random
failures. I have many deployed systems using industrial Flash modules (IDE
DOMs) running 24/7 in critical production environments, mostly running
machine tools and semiconductor production line equipment. We still do
regular backups, though!

To compare, the typical industrial DOMs and CF cards I purchase are rated
for 1-2 million rewrites per Flash block (from the datasheet). I assume
this is SLC + wear leveling. *IF* you can find the write endurance on
consumer stuff, it's often less than 10K.

Thanks,
Jonathan

On Fri, Aug 4, 2017 at 9:42 AM, Phil Blundell via cctalk <
cctalk@classiccmp.org> wrote:

> On Fri, 2017-08-04 at 08:53 -0400, Noel Chiappa via cctalk wrote:
> >
> > But are SD cards really that unreliable?
>
> It depends on exactly how you measure "reliable".  There are a few
> different things going on, and it differs from one SD card to another.
>
> Firstly, there are multiple types of flash memory that can be used for
> the underlying storage.  The flash cells can be either SLC, MLC or TLC
> in decreasing order of cost per bit but also in decreasing order of
> robustness.  An SLC cell might tolerate 100,000 erase/write cycles,
> whereas an MLC cell might fail after only 10,000 and a TLC cell might
> be worn out after 3,000.  The act of reading from a flash cell also
> disturbs the charge in nearby cells: this effect is not particularly
> significant for SLC, which you can generally read without restriction,
> but on MLC and TLC the controller needs to keep track of how many times
> it has read from a particular block and periodically re-write the data
> to refresh it otherwise it will eventually become corrupt.  And
> finally, the charge in flash cells does eventually leak away: for MLC
> and TLC cards your data may disappear over a timescale of months to a
> few years.
>
> Consumer-grade cards will almost always use MLC flash, or possibly TLC
> at higher capacity levels.  SLC cards are available but typically they
> are the "industrial grade" ones and are only available in smaller
> capacities.
>
> Secondly, there are many different controller ICs and the behaviour of
> the controller has a significant effect on how well the card works
> overall.  Some controllers are better than others at managing bad
> blocks and bit errors in the flash.  Some deal better than others with
> unexpected power failures.  Some deal better than others with the "read
> disturb" effect.  Some deal better than others with random access,
> particularly random writes: it's fairly common for the cheaper consumer
> cards to only have enough buffer space for one output file to be open
> at a time, and if you start trying to write multiple files in parallel
> to different areas of the card then the write buffer will start
> thrashing and performance will be dismal.
>
> It's also worth remembering that most consumer-grade cards are used in
> a way that is not a very close match to a disk emulator.  Cameras
> (including cameras in phones) are generally writing a relatively small
> number of fairly large files.  They seldom read, and they virtually
> never modify a file in place.  Also, because all SD cards come
> preformatted as either FAT or exFAT, the pattern of accesses that the
> host will make to the filesystem is somewhat predictable and some
> controller ICs are specifically optimised for this.
>
> All the above said, although it probably is true that the average
> consumer-grade SD card is significantly less robust than the average
> SATA SSD that you can buy today, and probably also less robust than the
> average spinning hard disk, I suspect they are probably not all that
> much less reliable than the average 1980s or 1990s-era hard disk.
> Personally I would be quite happy to use an SD card to emulate mass
> storage in a classic computer, and in fact I was thinking just this
> morning about buying one of the scsi2sd boards for that very purpose.
> If you are going to be using it in an application that sees frequent
> writes then I would try to get an SLC card, or failing that a low-
> capacity MLC one.  But otherwise, I would just make sure I had a backup
> and live with the possibility that the card might need replacing after
> a couple of years.
>
> Phil
>
>

Reply via email to