Extending Flash Lifetime in Embedded Processors by Expanding Analog Choice

We extend the lifetime of Flash memory in embedded processors by exploiting the fact that data from sensors is inherently analog. Prior work in the computer architecture community has assumed that all data is digital and has overlooked the opportunities available when working with analog data, such as the data recorded by sensors. In this paper, we introduce redundancy into the quantization of sensor data in order to provide several alternative representations. Notably, we tradeoff distortion—the difference between the sensed analog value and the digital quantization of that value—to improve lifetime. Our simulations show that when combining rate, distortion, and lifetime tradeoffs we can extend Flash lifetime at a far smaller capacity cost compared to prior work. More specifically the simulated system shows that it is possible to achieve up to <inline-formula> <tex-math notation="LaTeX">$2.75 \times$ </tex-math></inline-formula> less capacity cost compared to redundant Flash memory and <inline-formula> <tex-math notation="LaTeX">$1.29 \times$ </tex-math></inline-formula> less capacity cost compared to the state of the art coding schemes.

[1]  F. Moore,et al.  Polynomial Codes Over Certain Finite Fields , 2017 .

[2]  Li-Pin Chang,et al.  Design and implementation of an efficient wear-leveling algorithm for solid-state-disk microcontrollers , 2009, TODE.

[3]  Paul H. Siegel,et al.  Multiple-write WOM-codes , 2010, 2010 48th Annual Allerton Conference on Communication, Control, and Computing (Allerton).

[4]  A. Robert Calderbank,et al.  Minimal tail-biting trellises: The Golay code and more , 1999, IEEE Trans. Inf. Theory.

[5]  G. David Forney,et al.  Coset codes-I: Introduction and geometrical classification , 1988, IEEE Trans. Inf. Theory.

[6]  Jerry D. Gibson,et al.  Digital coding of waveforms: Principles and applications to speech and video , 1985, Proceedings of the IEEE.

[7]  Keshab K. Parhi,et al.  Hardware Efficient Low-Latency Architecture for High Throughput Rate Viterbi Decoders , 2008, IEEE Transactions on Circuits and Systems II: Express Briefs.

[8]  A. Robert Calderbank,et al.  Methuselah Flash: Rewriting Codes for Extra Long Storage Lifetime , 2016, 2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[9]  A. Robert Calderbank,et al.  Writing cosets of a convolutional code to increase the Lifetime of Flash memory , 2012, 2012 50th Annual Allerton Conference on Communication, Control, and Computing (Allerton).

[10]  Brian M. Kurkoski Rewriting flash memories and dirty-paper coding , 2013, 2013 IEEE International Conference on Communications (ICC).

[11]  Tei-Wei Kuo,et al.  Endurance Enhancement of Flash-Memory Storage, Systems: An Efficient Static Wear Leveling Design , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[12]  Li-Pin Chang,et al.  On efficient wear leveling for large-scale flash-memory storage systems , 2007, SAC '07.

[13]  Paul H. Siegel,et al.  Lattice-Based WOM Codes for Multilevel Flash Memories , 2014, IEEE Journal on Selected Areas in Communications.

[14]  Paul H. Siegel,et al.  Codes for Write-Once Memories , 2012, IEEE Transactions on Information Theory.

[15]  Lara Dolecek,et al.  Channel Coding for Nonvolatile Memory Technologies: Theoretical Advances and Practical Considerations , 2017, Proceedings of the IEEE.

[16]  Toby Berger,et al.  Rate distortion theory : a mathematical basis for data compression , 1971 .

[17]  Mircea R. Stan,et al.  How I Learned to Stop Worrying and Love Flash Endurance , 2010, HotStorage.

[18]  Henrique S. Malvar,et al.  High-Density Image Storage Using Approximate Memory Cells , 2016, ASPLOS.

[19]  Paul H. Siegel,et al.  Characterizing flash memory: Anomalies, observations, and applications , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[20]  Liu Yi,et al.  Shaping Codes for Structured Data , 2016 .

[21]  Adi Shamir,et al.  How to Reuse a "Write-Once" Memory , 1982, Inf. Control..

[22]  A. Robert Calderbank,et al.  Writing without Disturb on Phase Change Memories by Integrating Coding and Layout Design , 2015, MEMSYS.

[23]  Anxiao Jiang,et al.  Rank modulation for flash memories , 2008, 2008 IEEE International Symposium on Information Theory.

[24]  Paul H. Siegel,et al.  Efficient two-write WOM-codes , 2010, 2010 IEEE Information Theory Workshop.

[25]  Youyou Lu,et al.  Extending the lifetime of flash-based storage through reducing write amplification from file systems , 2013, FAST.

[26]  A. Robert Calderbank,et al.  Coset coding to extend the lifetime of memory , 2013, 2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA).

[27]  Hyunjin Lee,et al.  Flip-N-Write: A simple deterministic technique to improve PRAM write performance, energy and endurance , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[28]  Liguo Sun,et al.  Area and Energy Efficient Viterbi Accelerator for Embedded Processor Datapaths , 2017 .

[29]  Anxiao Jiang,et al.  Floating Codes for Joint Information Storage in Write Asymmetric Memories , 2007, 2007 IEEE International Symposium on Information Theory.

[30]  Tung Thanh Hoang,et al.  Viterbi Accelerator for Embedded Processor Datapaths , 2012, 2012 IEEE 23rd International Conference on Application-Specific Systems, Architectures and Processors.

[31]  Wang Ling Goh,et al.  Efficient Two-Write WOM-Codes for Non-Volatile Memories , 2015, IEEE Communications Letters.

[32]  Eitan Yaakobi,et al.  Write Once, Get 50% Free: Saving SSD Erase Costs Using WOM Codes , 2015, FAST.

[33]  G. David Forney,et al.  Coset codes-II: Binary lattices and related codes , 1988, IEEE Trans. Inf. Theory.

[34]  Xavier Jimenez,et al.  Wear unleveling: improving NAND flash lifetime by balancing page endurance , 2014, FAST.

[35]  Frederic Sala,et al.  Error Control Schemes for Modern Flash Memories: Solutions for Flash deficiencies , 2015, IEEE Consumer Electronics Magazine.

[36]  David Hung-Chang Du,et al.  Rejuvenator: A static wear leveling algorithm for NAND flash memory with minimized overhead , 2011, 2011 IEEE 27th Symposium on Mass Storage Systems and Technologies (MSST).