|
ABSTRACT
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 optimal placement is controlled by a variety of different objectives, such as runtime, low power, small code size or a combination of these parameters. We have formulated the problem as a form of Partitioned Boolean Quadratic Programming (PBQP).We implemented the optimization as part of a PIC Micro-chip 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 of program memory space between 2.7% and 18.2%, and an overall improvement with respect to instruction cycles between 5.1% and 28.8%. Our optimization achieved an optimal solution for all benchmark programs.
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
|
|
 |
3
|
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]
|
| |
4
|
Erik Eckstein. Code Optimizations for Digital Signal Processors PhD thesis, Institute of Computer Languages, Compilers and Languages Group, Vienna University of Technology, 2003.
|
| |
5
|
Gartner Dataquest. 2003 Microcontroller Market Share and Unit Shipments, July 2004.
|
| |
6
|
Gartner Dataquest. Top Companies Revenue from Shipments of 8-bit MCU?All Applications, April 2005.
|
| |
7
|
M. R. Guthaus, J. S. Ringenberg, D. Ernst, T. M. Austin, T. Mudge, andR. B. Brown. MiBench: A Free, Commercially Representative Embedded Benchmark Suite. In Proceedings of the IEEE 4th Annual Workshop on Workload Characterization December 2001.
|
 |
8
|
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
|
| |
9
|
|
| |
10
|
R. Leupers and D. Kotte. Variable Partitioning for Dual Memory Bank DSPs. In Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing pages 1121--1124, 2001.
|
| |
11
|
|
| |
12
|
Microchip Technology Inc. PICmicro Mid-Range MCU Family Reference Manual, 1997.
|
| |
13
|
Microchip Technology Inc. PIC16F87XA Data Sheet, 2003.
|
| |
14
|
MicrochipC.com PIC Micros and C. http://www.microchipc.com/2006.
|
| |
15
|
|
 |
16
|
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]
|
 |
17
|
|
| |
18
|
PICC ANSI C Compiler. http://www.htsoft.com/ 2006.
|
 |
19
|
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
|
 |
20
|
|
| |
21
|
|
| |
22
|
The Gpsim SW Simulator for PIC Microcontrollers. http://www.dattalo.com/gnupic/gpsim.html 2006.
|
 |
23
|
|
| |
24
|
Manish Verma, Lars Wehmeyer, and Peter Marwedel. Cache-Aware Scratchpad Allocation Algorithm. In DATE '04: Proceedings of the Conference on Design, Automation and Test in Europe pages 1264--1269, Washington, DC, USA, 2004. IEEE Computer Society.
|
| |
25
|
|
| |
26
|
|
|