I/O limitation of usb memory sticks

  • Thread starter Thread starter Martin
  • Start date Start date
M

Martin

Hi.

I have a general question about usb memory sticks: Do usb sticks have
a limitation of the amount of read/write operations during their
lifetime?

I would like to run an application on an usb memory stick, which would
accesses the stick about every 60 seconds. Assuming that every access
consists of 5 to 10 i/o operations, that would make around 10 mio. i/o
operations in two years.

Does an usb stick support this many accesses? Or does it have an
"expiration date"?

Martin
 
Previously Martin said:
I have a general question about usb memory sticks: Do usb sticks have
a limitation of the amount of read/write operations during their
lifetime?

Yes. Depending on the technology you get something like 10,000 to
1,000,000 guaranteed overwrites. After that things get chancy and if
you do not have automatic defect management, a single error can make
the device unusable. There might be newer technologies that support
more overwrites.

This figures are per sector. If you e.g. use only 10% of the device,
partition it into 10 partitions and automatically move your data to
the next partition when you approch the overwrite limit, you get 10
times the durability. You can also test-read your files after they are
written, and if you get errors, write them to a new file and keep the
old one in place so it covers the defective sector.

Of course there are other and more sophisticated defect managing
schemes you can use, such as error correcting codes. You just
need to be aware that from some point on a sector can fail.
I would like to run an application on an usb memory stick, which would
accesses the stick about every 60 seconds. Assuming that every access
consists of 5 to 10 i/o operations, that would make around 10 mio. i/o
operations in two years.

Look into the datasheet of the device you plan to use. Reads
are completely uncritical, it is only the writes that slowly
destroy solid-state memory. One exception from this rule is
battery-backed RAM.

Regards,
Arno
 
Yes. Depending on the technology you get something like 10,000 to
1,000,000 guaranteed overwrites. After that things get chancy and if
you do not have automatic defect management, a single error can make
the device unusable. There might be newer technologies that support
more overwrites.

This figures are per sector. If you e.g. use only 10% of the device,
partition it into 10 partitions and automatically move your data to
the next partition when you approch the overwrite limit, you get 10
times the durability. You can also test-read your files after they are
written, and if you get errors, write them to a new file and keep the
old one in place so it covers the defective sector.

Of course there are other and more sophisticated defect managing
schemes you can use, such as error correcting codes. You just
need to be aware that from some point on a sector can fail.


Look into the datasheet of the device you plan to use. Reads
are completely uncritical, it is only the writes that slowly
destroy solid-state memory. One exception from this rule is
battery-backed RAM.

I was wondering about this myself.

Back in the early days of removeabnle flash memory, I had an PCMCIA flash
card in my HP palmtop which mimicked the ATA drive interface. The
earliest/best such cards were made by Sundisk (now known as SanDisk). They
came with a "wear levelling" program which was intended to be used
periodically. As sectors became worn out through repetitive write
operations, each write became slower. The leveller program detected this,
and remapped things so that marginal sectors would not cause data
corruption.

As I see the proliferation of USB flash drives, or even flash storage
cards (CF, XD, memory stock, SD, MMC) I wondering if such "wear levelling"
is done in firmware. If not, wouldn't often-used parts of a drive
partition, like the FAT or root directory, be at risk for becoming
non-writeable as time went on?
 
Back
Top