Abstract
This paper proposed a systematic approach to optimize J2ME KVM running directly on NAND flash memories (XIP). The refined KVM generated cache misses 96% less than the original version did. The approach appended a post processor to the compiler. The post processor relocates and rewrites basic blocks within the VM interpreter using a unique mathematical model. This approach analyzed not only static control flow graph but also the pattern of bytecode instruction streams, since we found the input sequence drives the program flow of the VM interpreter. The proposed mathematical model is used to express the execution flows of Java instructions of real applications. Furthermore, we concluded the mathematical model is a kind of graph partition problem, and this finding helped the relocation process to move program blocks to proper NAND flash pages. The refinement approach dramatically improved the locality of the virtual machine thus reduced cache miss rates. Our technique can help J2ME-enabled devices to run faster and extend longer battery life. The approach also brings potential for designers to integrate the XIP function into System-on-Chip thanks to lower demand for cache memory.
We acknowledge the support for this study through grants from National Science Council of Taiwan (NSC 95-2221-E-002 -137).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Sun Microsystems. J2ME Building Blocks for Mobile Devices. Sun Microsystems, Inc. (May 19, 2000)
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: ISSS+CODES 2003: First IEEE/ACM/IFIP International conference on Hardware/Software Codesign and System Synthesis, ACM Press, New York (2003)
Samsung Electronics. OneNAND Features & Performance. Samsung Electronics (November 4, 2005)
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, Pisa, Italy, September 27-29, 2004, pp. 114–124. ACM Press, New York (2004)
Parameswaran, S., Henkel, J.: I-CoPES: Fast Instruction Code Placement for Embedded Systems to Improve Performance and Energy Efficiency. In: Proceedings of the 2001 IEEE/ACM international conference on Computer-aided design, pp. 635–641. IEEE Press, Los Alamitos (2001)
Janapsatya, A., Parameswaran, S., Henkel, J.: REMcode: Relocating embedded code for improving system efficiency. IEE Proc. Comput. Digit. Tech., 151(6) (November 2004)
Pettis, K., Hansen, R.: Profile-guided code positioning. In: PLDI 1990. The Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation, vol. 25(6), pp. 16–27. ACM Press, New York (1990)
Santarini, M.: NAND versus NOR-Which flash is best for bootin’ your next system? EDN October 2005. Reed Business Information, a division of Reed Elsevier Inc., pp. 41-48 (October 13, 2005)
Micron Technology, Inc. Boot-from-NAND Using Micron ® MT29F1G08ABA NAND Flash with the Texas InstrumentsTM (TI) OMAP2420 Processor, Micron Technology, Inc. (2006)
Sony Ericsson. JavaTM Support in Sony Ericsson Mobile Phones. Sony Ericsson Mobile Communications AB (2003)
Lafond, S., Lilius, J.: An Energy Consumption Model for Java Virtual Machine. In: Turku Centre for Computer Science TUCS Technical Report No 597, TUCS ( March 2004)
CaffeineMark 3.0, Pendragon Software Corp., http://www.benchmarkhq.ru/cm30
Garey, M.R., Johnson, D.S.: Computer and Intractability - A Guide to the Theory of NP-Completeness. Bell Telephone Laboratories (1979)
Fuber, S.: ARM System-on-Chip Architecture, 2nd edn., pp. 49–72. Addison-Wesley, Reading (2000)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lin, CC., Chen, CL. (2008). Code Arrangement of Embedded Java Virtual Machine for NAND Flash Memory. In: Stenström, P., Dubois, M., Katevenis, M., Gupta, R., Ungerer, T. (eds) High Performance Embedded Architectures and Compilers. HiPEAC 2008. Lecture Notes in Computer Science, vol 4917. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77560-7_25
Download citation
DOI: https://doi.org/10.1007/978-3-540-77560-7_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-77559-1
Online ISBN: 978-3-540-77560-7
eBook Packages: Computer ScienceComputer Science (R0)