Abstract
Nowadays, the desire to embed more applications in systems as small as Smart Cards or sensors is growing. However, physical limitations of these systems, like very small main memory, and their cost of production make it very difficult to achieve. One solution is to execute code from a secondary memory, cheaper, denser, but slower, as NAND Flash. Solutions based on Demand Paging and using a cache in main memory, began to be proposed and implemented in the domain of mobile phones, but consume too much RAM yet, compared to what a Smart Card can provide. In this paper, we show that we can dramatically increase performance by reducing the size of pages in the cache. This solution then allows a more intelligent access to the NAND. We also show that our solution allows to use Demand Paging within the limits of Smart Cards memories, where a conventional approach, offering too low bandwidth, makes code execution impossible from this kind of secondary memory. Finally, we present important future keys to optimize our proposal even more, and specially off-line code specialization aware of NAND characteristics and advanced cache properties.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Micron Technical Note 29-19: NAND Flash 101 (2006)
Park, C., Seo, J., Bae, S., Kim, H., Kim, S., Kim, B.: A low-cost memory architecture with nand xip for mobile embedded systems. In: CODES+ISSS 2003: Proceedings of the 1st IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis, pp. 138–143. ACM, New York (2003)
Lee, K., Orailoglu, A.: Application specific non-volatile primary memory for embedded systems. In: CODES/ISSS 2008: Proceedings of the 6th IEEE/ACM/IFIP international conference on Hardware/Software codesign and system synthesis, pp. 31–36. ACM, New York (2008)
Lin, J.H., Chang, Y.H., Hsieh, J.W., Kuo, T.W., Yang, C.C.: A nor emulation strategy over nand flash memory. In: 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, RTCSA 2007, pp. 95–102 (2007)
Lee, J.H., Park, G.H., Kim, S.D.: A new nand-type flash memory package with smart buffer system for spatial and temporal localities. Journal of Systems Architecture: the EUROMICRO Journal (2005)
Lin, C.C., Chen, C.L., Tseng, C.H.: Source code arrangement of embedded java virtual machine for nand flash memory, pp. 152–157 (2007)
In, J., Shin, I., Kim, H.: Swl: a search-while-load demand paging scheme with nand flash memory. In: LCTES 2007: Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems, pp. 217–226. ACM, New York (2007)
Lachenmann, A., Marrón, P.J., Gauger, M., Minder, D., Saukh, O., Rothermel, K.: Removing the memory limitations of sensor networks with flash-based virtual memory. SIGOPS Oper. Syst. Rev. 41, 131–144 (2007)
Kim, J.C., Lee, D., Lee, C.G., Kim, K., Ha, E.Y.: Real-time program execution on nand flash memory for portable media players. In: RTSS 2008: Proceedings of the 2008 Real-Time Systems Symposium, Washington, DC, USA, pp. 244–255. IEEE Computer Society, Los Alamitos (2008)
Hyun, S., Lee, S., Ahn, S., Koh, K.: Improving the demand paging performance with nand-type flash memory. In: ICCSA 2008: Proceedings of the 2008 International Conference on Computational Sciences and Its Applications, Washington, DC, USA, pp. 157–163. IEEE Computer Society Press, Los Alamitos (2008)
Joo, Y., Choi, Y., Park, C., Chung, S.W., Chung, E., Chang, N.: Demand paging for onenandTM flash execute-in-place. In: CODES+ISSS 2006: Proceedings of the 4th international conference on Hardware/software codesign and system synthesis, pp. 229–234. ACM, New York (2006)
Park, C., Lim, J., Kwon, K., Lee, J., Min, S.L.: Compiler-assisted demand paging for embedded systems with flash memory. In: EMSOFT 2004: Proceedings of the 4th ACM international conference on Embedded software, pp. 114–124. ACM, New York (2004)
Kim, S., Park, C., Ha, S.: Architecture exploration of nand flash-based multimedia card. In: DATE 2008: Proceedings of the conference on Design, automation and test in Europe, pp. 218–223. ACM, New York (2008)
http://www.samsung.com (OnenandTM clock application note)
Joo, Y., Choi, Y., Park, J., Park, C., Chung, S.W.: Energy and performance optimization ofdemand paging with onenand flash. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 27(11), 1969–1982 (2008)
Al-Zoubi, H., Milenkovic, A., Milenkovic, M.: Performance evaluation of cache replacement policies for the spec cpu2000 benchmark suite. In: ACM-SE 42: Proceedings of the 42nd annual Southeast regional conference, pp. 267–272. ACM, New York (2004)
Belady, L.A.: A study of replacement algorithms for virtual storage computers. IBM Systems Journal 5(2), 78–101 (1966)
Denning, P.J.: The locality principle (2005)
Courbot, A.: Efficient off-board deployment and customization of virtual machine based embedded systems. ACM Transactions on Embedded Computing Systems (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cogniaux, G., Grimaud, G. (2010). Key-Study to Execute Code Using Demand Paging and NAND Flash at Smart Card Scale. In: Gollmann, D., Lanet, JL., Iguchi-Cartigny, J. (eds) Smart Card Research and Advanced Application. CARDIS 2010. Lecture Notes in Computer Science, vol 6035. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-12510-2_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-12510-2_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-12509-6
Online ISBN: 978-3-642-12510-2
eBook Packages: Computer ScienceComputer Science (R0)