Fast Source-level Data Assignment to Dual Memory Banks

Alastair Murray, Björn Franke

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Due to their streaming nature memory bandwidth is critical for most digital signal processing applications. To accommodate for these bandwidth requirements digital signal processors are typically equipped with dual memory banks that enable simultaneous access to two operands if the data is partitioned appropriately. Fully automated and compiler integrated approaches to data partitioning and memory bank assignment, however, have found little acceptance by DSP software developers. This is partly due to their inflexibility and inability to cope with certain manual data pre-assignments, e.g. due to I/O constraints. In this paper we present a different and more flexible approach, namely source-level dual memory assignment where code generation targets DSP-C, a standardised C language extension widely supported by industrial C compilers for DSPs. Additionally, we present a novel partitioning algorithm based on soft colouring that is more efficient and scalable than the currently known best integer linear programming algorithm, whilst achieving competitive code quality. We have evaluated our scheme on an Analog Devices TigerSHARC DSP and achieved speedups of up to 1.57 on 13 UTDSP benchmarks.
Original languageEnglish
Title of host publicationSCOPES '08 Proceedings of the 11th international workshop on Software & compilers for embedded systems
Place of PublicationNew York, NY, USA
PublisherACM
Pages43-52
Number of pages10
Publication statusPublished - Mar 2008

Fingerprint

Dive into the research topics of 'Fast Source-level Data Assignment to Dual Memory Banks'. Together they form a unique fingerprint.

Cite this