Chapter 5 Conclusion and Future Work
5.2 Future Work
There are four directions for our future work. Firstly, the candidate for SPM allocation in our present design is only JIT-compiled code. Although most instruction cache miss stall cycles result from the JIT-compiled code, the JVM code may be also considered for SPM allocation. In the future work, we will study whether adding certain parts of the JVM code to the candidates for SPM allocation can bring more benefits of using the SPM and explore which parts of the JVM code are worthy of being allocated to the SPM. Secondly, our current approach allocates a whole JIT-compiled method to the SPM but not partial code regions within a JIT-compiled method. We will attempt to partition a JIT-compiled method into smaller code regions so that our design is capable of selecting the most beneficial segments of a JIT-compiled method to allocate to the SPM. Thirdly, in our present design, every JIT-compiled method is allocated to the SPM as it gets compiled by the JIT compiler. We will investigate whether it may have a better effect to allocate every JIT-compiled method to the main memory as it gets compiled. Lastly, the replacement policy for SPM space management employed in our current design is the LRC policy, which is a simple but efficient policy.
However, we will devise a more sophisticated replacement policy for SPM space management.
68
References
[1] N. Nguyen, A. Dominguez, and R. Barua, “Scratch-Pad Memory Allocation without Compiler Support for Java Applications”, In Proceedings of the 2007 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES’07), pp. 85-94, 2007
[2] M. Bohr, B. Doyle, J. Kavalieros, D. Barlage, A. Murthy, M. Doczy, R. Rios, T. Linton, R. Arghavani, B. Jin, S. Datta, and S. Hareland, “Intel’s 90 nm Technology: Moore’s Law and More”, Document Number: [IR-TR-2002-10], September 2002
[3] J. Hennessy and D. Patterson, Computer Architecture: A Quantitative Approach, Second Edition, Morgan Kaufmann, Palo Alto, CA, 1996
[4] Java ME Technology, http://java.sun.com/javame/technology/index.jsp
[5] R. Banakar, S. Steinke, B.-S. Lee, M. Balakrishnan, and P. Marwedel, “Scratchpad Memory: A Design Alternative for Cache On-Chip Memory in Embedded Systems”, In Proceedings of the 10th International Symposium on Hardware/Software Codesign (CODES’02), pp. 73-78, 2002
[6] S. J. E. Wilton and N. P. Jouppi, “CACTI: An Enhanced Cache Access and Cycle Time Model”, IEEE Journal of Solid State Circuits, Vol. 31, Issue 5, pp. 677-688, 1996
[7] K. Hazelwood and M. D. Smith, “Code Cache Management Schemes for Dynamic Optimizers”, In Proceedings of the Sixth Annual Workshop on Interaction between Compilers and Computer Architectures (INTERACT’02), pp. 92-100, 2002
[8] F. Angiolini, F. Menichelli, A. Ferrero, L. Benini, and M. Olivieri, “A Post-Compiler Approach to Scratchpad Mapping of Code”, In Proceedings of the 2004 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES’04), pp. 259-267, 2004
69
[9] M. Verma, L. Wehmeyer, and P. Marwedel, “Cache-Aware Scratchpad Allocation Algorithm”, In Proceedings of the Conference on Design, Automation, and Test in Europe (DATE’04), Vol. 2, pp. 21264-21269, 2004
[10] O. Avissar, R. Barua, and D. Stewart, “Heterogeneous Memory Management for
Embedded Systems”, In Proceedings of the 2001 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES’01), pp. 34-43, 2001
[11] O. Avissar, R. Barua, and D. Stewart, “An Optimal Memory Allocation Scheme for Scratch-Pad Based Embedded Systems”, ACM Transactions on Embedded Computing Systems (TECS), Vol. 1, Issue 1, pp. 6-26, 2002
[12] J. D. Hiser and J. W. Davidson, “EMBARC: An Efficient Memory Bank Assignment Algorithm for Retargetable Compilers”, In Proceedings of the 2004 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’04), pp. 182-191, 2004
[13] P. R. Panda, N. D. Dutt, and A. Nicolau, “On-Chip vs. Off-Chip Memory: The Data Partitioning Problem in Embedded Processor-Based Systems”, ACM Transactions on Design Automation of Electronic Systems (TODAES), Vol. 5, Issue 3, pp. 682-704, 2000 [14] J. Sjödin, B. Fröderberg, and T. Lindgren, “Allocation of Global Data Objects in
On-Chip RAM”, In Proceedings of the Workshop on Compiler and Architectural Support for Embedded Computer Systems, 1998
[15] J. Sjödin and C. V. Platen, “Storage Allocation for Embedded Processors”, In Proceedings of the 2001 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES’01), pp. 15-23, 2001
[16] S. Steinke, L. Wehmeyer, B.-S. Lee, and P. Marwedel, “Assigning Program and Data Objects to Scratchpad for Energy Reduction”, In Proceedings of the Conference on Design, Automation, and Test in Europe (DATE’02), pp. 409-415, 2002
[17] L. Wehmeyer, U. Helmig, and P. Marwedel, “Compiler-Optimized Usage of Partitioned
70
Memories”, In Proceedings of the 3rd Workshop on Memory Performance Issues (WMPI’04), pp. 114-120, 2004
[18] S. Kim, S. Tomar, N. Vijaykrishnan, M. Kandemir, and M. J. Irwin, “Energy-Efficient Java Execution Using Local Memory and Object Co-location”, In Proceedings of Computers and Digital Techniques, Vol. 151, pp. 33–42, 2004
[19] S. Tomar, S. Kim, N. Vijaykrishnan, M. Kandemir, and M. J. Irwin, “Use of Local Memory for Efficient Java Execution”, In Proceedings of the 2001 International Conference on Computer Design (ICCD’01), pp. 468-473, 2001
[20] S. Steinke, N. Grunwald, L. Wehmeyer, R. Banakar, M. Balakrishnan, , and P. Marwedel,
“Reducing Energy Consumption by Dynamic Copying of Instructions onto Onchip Memory”, In Proceedings of the 15th International Symposium on System Synthesis (ISSS’02), pp. 213-218, 2002
[21] A. Dominguez, S. Udayakumaran, and R. Barua, “Heap Data Allocation to Scratch-Pad Memory in Embedded Systems”, Journal of Embedded Computing (JEC), Vol. 1, Issue 4, 2005
[22] M. Kandemir, J. Ramanujam, M. J. Irwin, N. Vijaykrishnan, I. Kadayif, and A. Parikh,
“Dynamic Management of Scratch-Pad Memory Space”, In Proceedings of the 38th Conference on Design Automation, pp. 690–695, 2001
[23] S. Udayakumaran and R. Barua, “Compiler-Decided Dynamic Memory Allocation for Scratch-Pad Based Embedded Systems”, In Proceedings of the 2003 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES’03), pp. 276–286, 2003
[24] S. Udayakumaran, A. Dominguez, and R. Barua, “Dynamic Allocation for Scratch-Pad Memory Using Compile-Time Decisions”, ACM Transactions on Embedded Computing Systems (TECS), Vol. 5, Issue 2, pp. 472-511, 2006
[25] M. Verma, L. Wehmeyer, and P. Marwedel, “Dynamic Overlay of Scratchpad Memory
71
for Energy Minimization”, In Proceedings of the 2nd IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS’04), pp. 104-109, 2004
[26] R. A. Ravindran, P. D. Nagarkar, G. S. Dasika, E. D. Marsman, R. M. Senger, S. A.
Mahlke, and R. B. Brown, “Compiler Managed Dynamic Instruction Placement in a Low-Power Code Cache”, In Proceedings of the International Symposium on Code Generation and Optimization (CGO’05), pp. 179-190, 2005
[27] Pin, http://rogue.colorado.edu/pin/
[28] phoneME, https://phoneme.dev.java.net/
[29] GrinderBench, http://www.grinderbench.com/