Lines Matching refs:wear

16 filesystem that is resilient to power-loss and flash wear without using
52 repeatedly writes to the same block, eventually that block will wear out.
53 Filesystems that don't take wear into account can easily burn through blocks
72 power-loss resilience and wear leveling, we can narrow these down to a handful
107 ability to manage wear.
129 logging filesystems distribute wear across storage perfectly.
181 against wear because of the strong relationship between storage location
218 location of data, which creates an opportunity for wear leveling.
224 focuses these writes into the block, which can wear out much earlier than
248 wear. This sort of copy-on-bounded-writes (CObW) still focuses wear, but at
249 each level we divide the propagation of wear by _n_. With a sufficiently
250 large _n_ (> branching factor) wear propagation is no longer a problem.
839 So we now have the framework for an atomic, wear leveling filesystem. Small two
961 The block allocator has a secondary role: wear leveling.
963 Wear leveling is the process of distributing wear across all blocks in the
965 wear on a single block in the storage.
967 littlefs has two methods of protecting against wear:
969 2. Evenly distributing wear across dynamic blocks
1203 proactively by wear leveling. But it's important to note that ECC can be used
1218 A different, more generic strategy, is to proactively distribute wear across
1221 wear leveling.
1223 Generally, wear leveling algorithms fall into one of two categories:
1225 1. [Dynamic wear leveling][wikipedia-dynamic-wear-leveling], where we
1226 distribute wear over "dynamic" blocks. The can be accomplished by
1229 2. [Static wear leveling][wikipedia-static-wear-leveling], where we
1230 distribute wear over both "dynamic" and "static" blocks. To make this work,
1234 dynamic wear leveling. This is a best effort solution. Wear is not distributed
1238 On top of this, littlefs uses a statistical wear leveling algorithm. What this
1239 means is that we don’t actively track wear, instead we rely on a uniform
1240 distribution of wear across storage to approximate a dynamic wear leveling
1242 wear leveling.
1244 The uniform distribution of wear is left up to the block allocator, which
1248 restart the allocator at the beginning of storage, as this would bias the wear.
1253 ![Cumulative wear distribution graph][wear-distribution-graph]
1255 Initially, this approach to wear leveling looks like it creates a difficult
1294 for distributing wear in the allocator, but means this random number generator
1299 Together, bad block detection and dynamic wear leveling provide a best effort
1300 solution for avoiding the early death of a filesystem due to wear. Importantly,
1301 littlefs's wear leveling algorithm provides a key feature: You can increase the
1303 aggressive wear leveling is desired, you can always combine littlefs with a
1305 filesystem with static wear leveling.
1840 brings back the issue of upward propagation of wear.
2125 [wikipedia-dynamic-wear-leveling]: https://en.wikipedia.org/wiki/Wear_leveling#Dynamic_wear_leveling
2126 [wikipedia-static-wear-leveling]: https://en.wikipedia.org/wiki/Wear_leveling#Static_wear_leveling
2172 [wear-distribution-graph]: https://raw.githubusercontent.com/geky/littlefs/gh-images/wear-distribut…