skip to main content
research-article

Half-Wits: Software Techniques for Low-Voltage Probabilistic Storage on Microcontrollers with NOR Flash Memory

Published:01 May 2013Publication History
Skip Abstract Section

Abstract

This work analyzes the stochastic behavior of writing to embedded flash memory at voltages lower than recommended by a microcontroller’s specifications in order to reduce energy consumption. Flash memory integrated within a microcontroller typically requires the entire chip to operate on a common supply voltage almost twice as much as what the CPU portion requires. Our software approach allows the flash memory to tolerate a lower supply voltage so that the CPU may operate in a more energy-efficient manner. Energy-efficient coding algorithms then cope with flash memory writes that behave unpredictably.

Our software-only coding algorithms (in-place writes, multiple-place writes, RS-Berger codes, and slow writes) enable reliable storage at low voltages on unmodified hardware by exploiting the electrically cumulative nature of half-written data in write-once bits. For a sensor monitoring application using the MSP430, coding with in-place writes reduces the overall energy consumption by 34%. In-place writes are competitive when the time spent on low-voltage operations such as computation are at least four times greater than the time spent on writes to flash memory. Our evaluation shows that tightly maintaining the digital abstraction for storage in embedded flash memory comes at a significant cost to energy consumption with minimal gain in reliability. We find our techniques most effective for embedded workloads that have significant duty cycling, rare writes, or energy harvesting.

References

  1. Agrawal, D., Li, B., Cao, Z., Ganesan, D., Diao, Y., and Shenoy, P. 2010. Exploiting the interplay between memory and flash storage in embedded sensor devices. In Proceedings of the 16th IEEE Conference on Embedded and Real-time Computing Systems (RTCSA). 227--236. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Akyildiz, I. F., Su, W., Sankarasubramaniam, Y., and Cayirci, E. 2002. Wireless sensor networks: A survey. Comput. Netw. 38, 4, 393--422. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Barg, A. and Mazumdar, A. 2010. Codes in permutations and error correction for rank modulation. IEEE Trans. Inform. Theory 56, 7, 3158--3165. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Berger, J. 1961. A note on error detection codes for asymmetric channels. Inform. Control 4, 1, 68--73.Google ScholarGoogle ScholarCross RefCross Ref
  5. Blaauw, D. and Das, S. 2009. CPU, heal thyself. IEEE Spectrum 46, 8, 40--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Buettner, M., Greenstein, B., Sample, A., Smith, J. R., and Wetherall, D. 2008. Revisiting smart dust with RFID sensor networks. In Proceedings of the 7th ACM Workshop on Hot Topics in Networks (HotNets-VII).Google ScholarGoogle Scholar
  7. Buettner, M., Greenstein, B., and Wetherall, D. 2011. Dewdrop: An energy-aware task scheduler for computational RFID. In Proceedings of the 8th USENIX Symposium on Networked Systems Design and Implementation (NSDI’11). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Chae, H.-J., Yeager, D. J., Smith, J. R., and Fu, K. 2007. Maximalist cryptography and computation on the WISP UHF RFID tag. In Proceedings of the Conference on RFID Security.Google ScholarGoogle Scholar
  9. Chen, B., Zhang, X., and Wang, Z. 2008. Error correction for multi-level NAND flash memory using Reed-Solomon codes. In Proceedings of the IEEE Workshop on Signal Processing Systems (SiPS 2008). 94--99.Google ScholarGoogle Scholar
  10. Chen, S. 2007. What types of ECC should be used on flash memory? http://www.spansion.com/Support/AppNotes/Types_of_ECC_Used_on_Flash_AN_01_e.pdf.Google ScholarGoogle Scholar
  11. Cheng, W. H. 2008. Approaches and designs of dynamic voltage and frequency scaling. M.S. thesis, University of California, Davis, CA. http://www.ece.ucdavis.edu/vcl/pubs/theses/2008-1.Google ScholarGoogle Scholar
  12. Fujino, M. and Moshnyaga, V. 2002. An efficient Hamming distance comparator for low-power applications. In Proceedings of the 9th International Conference on Electronics, Circuits and Systems. Vol. 2. 641--644.Google ScholarGoogle Scholar
  13. Godard, B., Daga, J.-M., Torres, L., and Sassatelli, G. 2008. Hierarchical code correction and reliability management in embedded NOR flash memories. In Proceedings of the 13th European Test Symposium. 84--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Goldberger, A. L., Amaral, L. A. N., Glass, L., Hausdorff, J. M., Ivanov, P. C., Mark, R. G., Mietus, J. E., Moody, G. B., Peng, C.-K., and Stanley, H. E. 2000. PhysioBank, PhysioToolkit, and PhysioNet: Components of a new research resource for complex physiologic signals. Circulation 101, 23, e215--e220. Circulation Electronic Pages: http://circ.ahajournals.org/cgi/content/full/101/23/e215.Google ScholarGoogle Scholar
  15. Gregori, S., Cabrini, A., Khouri, O., and Torelli, G. 2003. On-chip error correcting techniques for new-generation flash memories. Proc. IEEE 91, 4, 602--616.Google ScholarGoogle ScholarCross RefCross Ref
  16. Gummeson, J., Clark, S. S., Fu, K., and Ganesan, D. 2010. On the limits of effective micro-energy harvesting on mobile CRFID sensors. In Proceedings of the 8th Annual ACM/USENIX International Conference on Mobile Systems, Applications, and Services (MobiSys’10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Jiang, A., Mateescu, R., Schwartz, M., and Bruck, J. 2008. Rank modulation for flash memories. In Proceedings of the IEEE International Symposium on Information Theory (ISIT). 1731--1735.Google ScholarGoogle Scholar
  18. Jiang, A., Schwartz, M., and Bruck, J. 2010. Correcting charge-constrained errors in the rank-modulation scheme. IEEE Trans. Inform. Theory 56, 5, 2112--2120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Kahn, J. M., Katz, R. H., and Pister, K. S. J. 1999. Next century challenges: Mobile networking for “Smart Dust”. In Proceedings of the 5th Annual ACM/IEEE International Conference on Mobile Computing and Networking (MobiCom). 271--278. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Kansal, A., Hsu, J., Zahedi, S., and Srivastava, M. B. 2007. Power management in energy harvesting sensor networks. ACM Trans. Embed. Comput. Syst. 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Karlof, C., Sastry, N., and Wagner, D. 2004. TinySec: A link layer security architecture for wireless sensor networks. In Proceedings of the 2nd ACM Conference on Embedded Networked Sensor Systems (SenSys). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Klove, T. 1995. Error correcting codes for the asymmetric channel. Tech. rep., Informatics, University of Bergen.Google ScholarGoogle Scholar
  23. Lin, K., Hsu, J., Zahedi, S., Lee, D. C., Friedman, J., Kansal, A., Raghunathan, V., and Srivastava, M. B. 2005. Heliomote: Enabling long-lived sensor networks through solar energy harvesting. In Proceedings of ACM Sensys. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Liu, S., Pattabiraman, K., Moscibroda, T., and Zorn, B. G. 2011. Flikker: Saving dram refresh-power through critical data partitioning. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Lo, B. P. L., Thiemjarus, S., King, R., and Zhong Yang, G. 2005. Body sensor network - a wireless sensor platform for pervasive healthcare monitoring. In Adjunct Proceedings of the 3rd International Conference on Pervasive Computing (PERVASIVE). 77--80.Google ScholarGoogle Scholar
  26. Mainwaring, A., Culler, D., Polastre, J., Szewczyk, R., and Anderson, J. 2002. Wireless sensor networks for habitat monitoring. In Proceedings of the 1st ACM International Workshop on Wireless Sensor Networks and Applications. 88--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Malan, D., Fulford-jones, T., Welsh, M., and Moulton, S. 2004. Codeblue: An ad hoc sensor network infrastructure for emergency medical care. In Proceedings of the International Workshop on Wearable and Implantable Body Sensor Networks.Google ScholarGoogle Scholar
  28. Mathur, G., Desnoyers, P., Ganesan, D., and Shenoy, P. 2006. Ultra-low power data storage for sensor networks. In Proceedings of the 5th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN). 374--381. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Meninger, S., Mur-Miranda, J. O., Amirtharajah, R., Chandrakasan, A., and Lang, J. H. 2001. Vibration-to-electric energy conversion. IEEE Trans. Very Large Scale Integr. (VLSI) Syst. 9, 1, 64--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Misailovic, S., Sidiroglou, S., Hoffmann, H., and Rinard, M. 2010. Quality of service profiling. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE). 25--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Papirla, V. and Chakrabarti, C. 2009. Energy-aware error control coding for flash memories. In Proceedings of the 46th Annual Design Automation Conference (DAC). 658--663. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Pavan, P., Bez, R., Olivo, P., and Zanoni, E. 1997. Flash memory cells-an overview. Proc. IEEE 85, 8, 1248--1271.Google ScholarGoogle ScholarCross RefCross Ref
  33. Pillai, P. and Shin, K. G. 2001. Real-time dynamic voltage scaling for low-power embedded operating systems. In Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP’01). ACM, 89--102. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Polastre, J., Szewczyk, R., and Culler, D. 2005. Telos: Enabling ultra-low power wireless research. In Proceedings of the 4th International Symposium on Information Processing in Sensor Networks: Special Track on Platform Tools and Design Methods for Network Embedded Sensors (IPSN/SPOTS’05). Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Ransford, B., Sorber, J., and Fu, K. 2011. Mementos: System support for long-running computation on rfid-scale devices. In Proceedings of the 16th Architectural Support for Programming Languages and Operating Systems (ASPLOS 2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Reed, I. S. and Solomon, G. 1960. Polynomial codes over certain finite fields. J. Society Industrial Appl. Math. 8, 2, 300--304.Google ScholarGoogle ScholarCross RefCross Ref
  37. Rivest, R. L. 1995. The RC5 encryption algorithm. In Fast Software Encryption, B. Preneel Ed., Springer, 86--96.Google ScholarGoogle Scholar
  38. Rivest, R. L. and Shamir, A. 1982. How to reuse a write-once memory. Inform. Control 55, 1--19.Google ScholarGoogle ScholarCross RefCross Ref
  39. Salajegheh, M., Clark, S., Ransford, B., Fu, K., and Juels, A. 2009. CCCP: Secure remote storage for computational RFIDs. In Proceedings of the 18th USENIX Security Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Sample, A. P., Yeager, D. J., Powledge, P. S., Mamishev, A. V., and Smith, J. R. 2008. Design of an RFID-based battery-free programmable sensing platform. IEEE Trans. Instrumentation Measurement 57, 11, 2608--2615.Google ScholarGoogle ScholarCross RefCross Ref
  41. Sampson, A., Dietl, W., Fortuna, E., Gnanapragasam, D., Ceze, L., and Grossman, D. 2011. EnerJ: Approximate data types for safe and general low-power computation. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI). Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Shnayder, V., Chen, B.-R., Lorincz, K., Jones, T. R. F. F., and Welsh, M. 2005. Sensor networks for medical care. In Proceedings of the 3rd ACM Conference on Embedded Networked Sensor Systems (SenSys). 314--314. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Tamo, I. and Schwartz, M. 2010. Correcting limited-magnitude errors in the rank-modulation scheme. IEEE Trans. Inform. Theory 56, 6, 2551--2560. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Weddle, C., Oldham, M., Qian, J., Wang, A.-I. A., Reiher, P., and Kuenning, G. 2007. PARAID: A gear-shifting power-aware RAID. ACM Trans. Storage (TOS) 3, 3, Article 13:1--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Zeinalipour-Yazti, D., Lin, S., Kalogeraki, V., Gunopulos, D., and Najjar, W. A. 2005. Microhash: An efficient index structure for fash-based sensor devices. In Proceedings of the 4th USENIX Conference on File and Storage Technologies. 31--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Zemor, G. and Cohen, G. D. 1991. Error-correcting WOM-codes. IEEE Trans. Inform. Theory 37, 3, 730--734. Google ScholarGoogle ScholarCross RefCross Ref
  47. Zhang, F., Pster, H. D., and Jiang, A. 2010. LDPC codes for rank modulation in flash memories. In Proceedings of the IEEE International Symposium on Information Theory (ISIT). 859--863.Google ScholarGoogle Scholar
  48. Zhang, H., Gummeson, J., Ransford, B., and Fu, K. 2011. Moo: A batteryless computational rfid and sensing platform. Tech. rep. UM-CS-2011-020, Department of Computer Science, University of Massachusetts Amherst, Amherst, MA.Google ScholarGoogle Scholar

Index Terms

  1. Half-Wits: Software Techniques for Low-Voltage Probabilistic Storage on Microcontrollers with NOR Flash Memory

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!