Memory bank and register allocation in software synthesis for ASIPs

  • Authors:
  • Ashok Sudarsanam;Sharad Malik

  • Affiliations:
  • Department of Electrical Engineering, Princeton University;Department of Electrical Engineering, Princeton University

  • Venue:
  • ICCAD '95 Proceedings of the 1995 IEEE/ACM international conference on Computer-aided design
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

An architectural feature commonly found in digital signal processors (DSPs) is multiple data-memory banks. This feature increases memory bandwidth by permitting multiple memory accesses to occur in parallel when the referenced variables belong to different memory banks and the registers involved are allocated according to a strict set of conditions. Unfortunately, current compiler technology is unable to take advantage of the potential increase in parallelism offered by such architectures. Consequently, most application software for DSP systems is hand-written -- a very time-consuming task.We present an algorithm which attempts to maximize the benefit of this architectural feature. While previous approaches have decoupled the phases of register allocation and memory bank assignment, our algorithm performs these two phases simultaneously. Experimental results demonstrate that our algorithm substantially improves the code quality of many compiler-generated and even hand-written programs.