A heuristic algorithm for optimizing page selection instructions

Page switching is a technique that increases the memory in microcontrollers without extending the address buses. This technique is widely used in the design of 8-bit MCUs. In this paper, we present an algorithm to reduce the overhead of page switching. To pursue small code size, we place the emphasis on the allocation of functions into suitable pages with a heuristic algorithm, thereby the cost-effective placement of page selection instructions. Our experimental results showed the optimization achieved a reduction in code size of 13.2 percent.

[1]  Bernd Burgstaller,et al.  Minimizing bank selection instructions for partitioned memory architecture , 2006, CASES '06.

[2]  Edwin Hsing-Mean Sha,et al.  Efficient variable partitioning and scheduling for DSP processors with multiple memory modules , 2004, IEEE Transactions on Signal Processing.

[3]  Rainer Leupers,et al.  Variable partitioning for dual memory bank DSPs , 2001, 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.01CH37221).

[4]  Minyi Guo,et al.  Global Variable Partition with Virtually Shared Scratch Pad Memory to Minimize Schedule Length , 2009, 2009 International Conference on Parallel Processing Workshops.

[5]  Minming Li,et al.  Joint variable partitioning and bank selection instruction optimization on embedded systems with multiple memory banks , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[6]  Wu Guoqing,et al.  Optimizing Bank Selection Instructions by Using Shared Memory , 2008, 2008 International Conference on Embedded Software and Systems.

[7]  Xiaobo Sharon Hu,et al.  Power aware variable partitioning and instruction scheduling for multiple memory banks , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.