TY - GEN
T1 - Minimizing bank selection instructions for partitioned memory architecture
AU - Scholz, Bernhard
AU - Burgstaller, Bernd
AU - Xue, Jingling
PY - 2006
Y1 - 2006
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=34547214310&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=34547214310&partnerID=8YFLogxK
U2 - 10.1145/1176760.1176786
DO - 10.1145/1176760.1176786
M3 - Conference contribution
AN - SCOPUS:34547214310
SN - 1595935436
SN - 9781595935434
T3 - CASES 2006: International Conference on Compilers, Architecture and Synthesis for Embedded Systems
SP - 201
EP - 211
BT - CASES 2006
T2 - CASES 2006: International Conference on Compilers, Architecture and Synthesis for Embedded Systems
Y2 - 22 October 2006 through 25 October 2006
ER -