Using Genetic Programming for Source-Level Data Assignment to Dual Memory Banks

A.C. Murray, Bjoern Franke

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


Due to their streaming nature, memory bandwidth is critical for most digital signal processing applications. To accommodate 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 have, however, found little acceptance by DSP software developers. This is partly due to the inflexibility of the approach and their inability to cope with certain manual data pre-assignments, e.g. due to I/O constraints. In this paper we build upon a more flexible source-level approach where code generation targets DSP-C [1], using genetic programming to overcome the issues previously experienced with high-level memory bank assignment. We have evaluated our approach on an Analog Devices Tiger-SHARC DSP and achieved performance gains of up to 1.57 on 13 UTDSP benchmarks.
Original languageEnglish
Title of host publicationProceedings of the 3rd Workshop on Statistical and Machine Learning Approaches to Architecture and Compilation
Number of pages15
Publication statusPublished - 2009

Fingerprint Dive into the research topics of 'Using Genetic Programming for Source-Level Data Assignment to Dual Memory Banks'. Together they form a unique fingerprint.

Cite this