|
ABSTRACT
We have devised an algorithm for minimal placement of bank selections in partitioned memory architectures. This algorithm is parameterizable for a chosen metric, such as speed, space, or energy. Bank switching is a technique that increases the code and data memory in microcontrollers without extending the address buses. Given a program in which variables have been assigned to data banks, we present a novel optimization technique that minimizes the overhead of bank switching through cost-effective placement of bank selection instructions. The placement is controlled by a number of different objectives, such as runtime, low power, small code size or a combination of these parameters. We have formulated the minimal placement of bank selection instructions as a discrete optimization problem that is mapped to a partitioned boolean quadratic programming (PBQP) problem. We implemented the optimization as part of a PIC Microchip backend and evaluated the approach for several optimization objectives. Our benchmark suite comprises programs from MiBench and DSPStone plus a microcontroller real-time kernel and drivers for microcontroller hardware devices. Our optimization achieved a reduction in program memory space of between 2.7 and 18.2&percent;, and an overall improvement with respect to instruction cycles between 5.0 and 28.8&percent;. Our optimization achieved the minimal solution for all benchmark programs. We investigated the scalability of our approach toward the requirements of future generations of microcontrollers. This study was conducted as a worst-case analysis on the entire MiBench suite. Our results show that our optimization (1) scales well to larger numbers of memory banks, (2) scales well to the larger problem sizes that will become feasible with future microcontrollers, and (3) achieves minimal placement for more than 72&percent; of all functions from MiBench.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Rajeshwari Banakar , Stefan Steinke , Bo-Sik Lee , M. Balakrishnan , Peter Marwedel, Scratchpad memory: design alternative for cache on-chip memory in embedded systems, Proceedings of the tenth international symposium on Hardware/software codesign, May 06-08, 2002, Estes Park, Colorado
[doi> 10.1145/774789.774805]
|
| |
2
|
Bryant, R. E. and O'Halloran, D. R. 2003. Computer Systems: A Programmer's Perspective. Prentice-Hall, Englewood Cliffs, NJ.
|
| |
3
|
|
 |
4
|
|
| |
5
|
Dattalo, T. S. 2006. The Gpsim SW simulator for PIC microcontrollers. http://www.dattalo.com/gnupic/gpsim.html.
|
 |
6
|
V. Delaluz , M. Kandemir , N. Vijaykrishnan , M. J. Irwin, Energy-oriented compiler optimizations for partitioned memory architectures, Proceedings of the 2000 international conference on Compilers, architecture, and synthesis for embedded systems, p.138-147, November 17-19, 2000, San Jose, California, United States
[doi> 10.1145/354880.354900]
|
| |
7
|
Eckstein, E. 2003. Code optimizations for digital signal processors. Ph.D. thesis, Institute of Computer Languages, Compilers and Languages Group, Vienna University of Technology.
|
| |
8
|
Fursin, G., Cavazos, J., O'Boyle, M., and Temam, O. 2007. MiDataSets: Creating the conditions for a more realistic evaluation of iterative optimization. In Proceedings of the International Conference on High Performance Embedded Architectures & Compilers (HiPEAC 2007). Vol. 4367. Springer LNCS, 245--260.
|
| |
9
|
Gartner Dataquest. 2004. 2003 microcontroller market share and unit shipments.
|
| |
10
|
Gartner Dataquest. 2005. Top companies revenue from shipments of 8-bit mcu---all applications.
|
| |
11
|
M. R. Guthaus , J. S. Ringenberg , D. Ernst , T. M. Austin , T. Mudge , R. B. Brown, MiBench: A free, commercially representative embedded benchmark suite, Proceedings of the Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop, p.3-14, December 02-02, 2001
[doi> 10.1109/WWC.2001.15]
|
| |
12
|
Hames, L. and Scholz, B. 2006. Nearly optimal register allocation with PBQP. In Proceedings of the 7th Joint Modular Languages Conference (JMLC'06). LNCS, vol. 4228. Springer, New York. 346--361.
|
 |
13
|
|
 |
14
|
Mark Hempstead , Gu-Yeon Wei , David Brooks, Architecture and circuit techniques for low-throughput, energy-constrained systems across technology generations, Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems, October 22-25, 2006, Seoul, Korea
[doi> 10.1145/1176760.1176805]
|
| |
15
|
HI-TECH Software. 2006. PICC ANSI C Compiler. http://www.htsoft.com/.
|
 |
16
|
Tokuzo Kiyohara , Scott Mahlke , William Chen , Roger Bringmann , Richard Hank , Sadun Anik , Wen-Mei Hwu, Register connection: a new approach to adding registers into instruction set architectures, Proceedings of the 20th annual international symposium on Computer architecture, p.247-256, May 16-19, 1993, San Diego, California, United States
|
| |
17
|
|
 |
18
|
|
| |
19
|
|
| |
20
|
|
| |
21
|
Microchip Technology Inc. 1997. PICmicro mid-range MCU family reference manual.
|
| |
22
|
Microchip Technology Inc. 2003. PIC16F87XA data sheet.
|
| |
23
|
Microchip Technology Inc. 2006. PIC18F97J60 family data sheet, advance information.
|
| |
24
|
MicrochipC.com. 2006. PIC micros and C. http://www.microchipc.com/.
|
| |
25
|
|
 |
26
|
Leyla Nazhandali , Michael Minuth , Bo Zhai , Javin Olson , Todd Austin , David Blaauw, A second-generation sensor network processor with application-driven memory optimizations and out-of-order execution, Proceedings of the 2005 international conference on Compilers, architectures and synthesis for embedded systems, September 24-27, 2005, San Francisco, California, USA
[doi> 10.1145/1086297.1086330]
|
| |
27
|
|
 |
28
|
|
 |
29
|
P. R. Panda , F. Catthoor , N. D. Dutt , K. Danckaert , E. Brockmeyer , C. Kulkarni , A. Vandercappelle , P. G. Kjeldsberg, Data and memory optimization techniques for embedded systems, ACM Transactions on Design Automation of Electronic Systems (TODAES), v.6 n.2, p.149-206, April 2001
[doi> 10.1145/375977.375978]
|
| |
30
|
Rajiv A. Ravindran , Robert M. Senger , Eric D. Marsman , Ganesh S. Dasika , Matthew R. Guthaus , Scott A. Mahlke , Richard B. Brown, Partitioning Variables across Register Windows to Reduce Spill Code in a Low-Power Processor, IEEE Transactions on Computers, v.54 n.8, p.998-1012, August 2005
[doi> 10.1109/TC.2005.132]
|
 |
31
|
Mazen A. R. Saghir , Paul Chow , Corinna G. Lee, Exploiting dual data-memory banks in digital signal processors, Proceedings of the seventh international conference on Architectural support for programming languages and operating systems, p.234-243, October 01-04, 1996, Cambridge, Massachusetts, United States
|
 |
32
|
|
 |
33
|
|
| |
34
|
|
 |
35
|
|
| |
36
|
|
| |
37
|
|
| |
38
|
|
|