> Blocks that have been freed in the filesystem are still static data as far > as the flash controller is concerned, unless the controller can understand > the FS metadata. Yes, when they are reallocated by the FS, the controller > will be able to move that to another free flash block, freeing the old > block. However, as long as they just sit unused by the FS, they are > unavailable to the flash controller for wear leveling unless "static" wear > leveling is used. As I see it, the worst case is where the filesystem has > touched all the blocks that the controller makes visible and then one > single-block file (or the superblock) is constantly rewritten in place. The > controller will only be able to wear level between that block and its > spare-block pool. > > So the question is "how big is the spare-block pool"? > > http://www.sandisk.com/Assets/File/OEM/WhitePapersAndBrochures/RS-MMC/WPaperWearLevelv1.0.pdf > was published by Sandisk 4 years ago. Here's an early paragraph: > > "Each memory chip is divided into blocks. A block is an array of memory > cells organized as > sectors. The number of blocks and sectors vary from product to product. The > minimum unit for a > write or read operation is a page (or sector). The minimum unit for an erase > operation is a block. > Physical blocks are logically grouped into zones. For the current > technology, a typical zone size is > 4 MB. However, this may change from product to product. Wear leveling is > done within a zone. > The current firmware does not spread the wear across the capacity of the > card. Each zone has > about 3% additional "spare blocks" beyond what is assigned to meet the > logical capacity of the > flash card. This group of blocks is commonly referred to as the "Erase Pool"." > > On the other hand, your Corsair PDF talks of a 2GB device having a write > page size of 2KB, an erase block size of 128KB (64 pages) and a leveling > management unit of 128MB (1024 blocks). Unfortunately, it does not tell us > how many spare blocks are in a leveling unit. I'll assume the 3% from > Sandisk and this gives us about 32 spare blocks. > > Next, we have to ask what happens if only one page is changes in the block? > I'm going to assume the worst case that this causes the whole block to be > moved to a new block and the old one freed. Corsair states that they use > SLC technology for 100,000 erase cycle life instead of MLC with 10,000 so I > will use this assumption. (I have read specifications for other devices for > 10,000 cycle lifetime so I'd but that the cheaper devices d ouse MLC). > > Ok, so assume that the superblock does get rewritten every 30 seconds (I do > not know this for a fact). The lifetime of the wear management unit > containing the superblock is 32 * 100000 writes or 3 years. OK, that may be > ok for you. On the other hand, if the device uses MLC technology, devide by > 10 and you only get 3.6 months!! > > Now it may be that some devices use better algorithms and will give you a > longer life. (I would expect that a US$5000 "sold-state disk" will have > implemented things better and would have a much longer life.) On the other > hand, if you run out to Fry's and buy a $10 1GB USB stick, don't expect it > to last vey long. > > One problem I've seen is that no manufacturer gives you all of the > information you need. Also, what is true for one device may not be true for > another. > > It seems to me that one way to extend the life is to use ext3 with a large > "ordered" journal that will spread out the writes to the superblock > throughout the journal (I assume the superblock is journaled, anyone know > for sure?). Also, turn off atime on the filesystem. > > What we need is a version of JFFS that can be used on an external device. > Assume that the device does not do wear leveling and do it in the OS. > > Many thanks for your detailed reply. I am still trying to convince myself that "up market" memory sticks are not to be relied upon. If you are correct in the way they work then a lot of people are going to be disappointed in the useful life of such devices. Yet Corsair give them a ten year warranty. I have emailed Corsair and asked some further questions, but not before .......... I re-read the wording in http://www.corsairmemory.com/_faq/FAQ_flash_drive_wear_leveling.pdf "Corsair's flash drives typically use dynamic wear levelling" the spec sheet for the CMFUSB2.0-8GBGT states that it used Static wear levelling !!!! http://corsairmemory.com/_datasheets/CMFUSB2.0-8GBGT.pdf Do I believe this? Maybe we have been discussing the wrong thing !!?? John -- fedora-list mailing list fedora-list@xxxxxxxxxx To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list