nasa / bplib

Apache License 2.0
27 stars 13 forks source link

Implement hamming code for flash s/w ecc #49

Open jpswinski opened 4 years ago

jpswinski commented 4 years ago

Currently the flash storage service uses a longitudinal redundancy check (LRC) for software error correction. Every 7 bytes of user data requires 2 bytes of check bits.

A hamming code should be implemented as either an option or a replacement. An 8 to 1 data to check bits could be targeted. Performance would have to be measured for both implementations. If they are similarly performant, then the LRC should be replaced. If the LRC is faster, than both options could be presented in the code - one favoring CPU usage, and one favoring memory usage.