Simultaneous reference allocation in code generation for dual data memory bank ASIPs

Ashok Sudarsanam, Sharad Malik

Research output: Contribution to journalArticlepeer-review

44 Scopus citations

Abstract

We address the problem of code generation for DSP systems on a chip. In such systems, the amount of silicon devoted to program ROM is limited, so application software must be sufficiently dense. Additionally, the software must be written so as to meet various highperformance constraints, which may include hard real-time constraints. Unfortunately, current compiler technology is unable to generate high-quality code for DSPs, whose architectures are highly irregular. Thus, designers often resort to programming application software in assembly-a time-consuming task. In this paper, we focus on providing support for one architectural feature of DSPs that makes code generation difficult, namely multiple data memory banks. This feature increases memory bandwidth by permitting multiple data memory accesses to occur in parallel when the referenced variables belong to different data memory banks and the registers involved conform to a strict set of conditions. We present an algorithm that attempts to maximize the benefit of this architectural feature. While previous approaches have decoupled the phases of register allocation and memory bank assignment, thereby compromising code quality, our algorithm performs these two phases simultaneously. Experimental results demonstrate that our algorithm not only generates high-quality compiled code, but also improves the quality of completely-referenced code. General Terms: Design, Languages :.

Original languageEnglish (US)
Pages (from-to)242-264
Number of pages23
JournalACM Transactions on Design Automation of Electronic Systems
Volume5
Issue number2
DOIs
StatePublished - 2000

All Science Journal Classification (ASJC) codes

  • Computer Science Applications
  • Computer Graphics and Computer-Aided Design
  • Electrical and Electronic Engineering

Keywords

  • Code generation
  • Code optimization
  • Graph labelling
  • Memory bank assignment
  • Register allocation

Fingerprint

Dive into the research topics of 'Simultaneous reference allocation in code generation for dual data memory bank ASIPs'. Together they form a unique fingerprint.

Cite this