Skip to main navigation Skip to search Skip to main content

Joint variable partitioning and bank selection instruction optimization for partitioned memory architectures

  • Tiantian Liu*
  • , Chun Jason Xue
  • , Minming Li
  • *Corresponding author for this work
  • City University of Hong Kong

Research output: Contribution to journalArticlepeer-review

Abstract

About 55% of all CPUs sold in the world are 8-bit microcontrollers or microprocessors which can only access limited memory space without extending address buses. Partitioned memory with bank switching is a technique to increase memory size without extending address buses. Bank Selection Instructions (BSLs) need to be inserted into the original programs to modify the bank register to point to the desired banks. These BSLs introduce both code size and execution time overheads. In this paper, we partition variables into different banks and insert BSLs at different positions of programs so that the overheads can be minimized. Minimizing speed (execution time) overhead and minimizing space (code size) overhead are two objectives investigated in this paper. A multi-copy approach is also proposed to store multiple copies of several variables on different banks when the memory space allows. It takes the read/write properties of variables into consideration and achieves more BSL overhead reduction. Experiments show that the proposed algorithms can reduce BSL overheads effectively compared to state-of-the-art techniques.

Original languageEnglish
Article number76
JournalACM Transactions on Embedded Computing Systems
Volume12
Issue number3
DOIs
StatePublished - Mar 2013
Externally publishedYes

Keywords

  • Bank selection instruction
  • Bank switching
  • Variable partitioning

Fingerprint

Dive into the research topics of 'Joint variable partitioning and bank selection instruction optimization for partitioned memory architectures'. Together they form a unique fingerprint.

Cite this