Memory-constrained block processing for DSP software optimization

  • Authors:
  • Ming-Yung Ko;Chung-Ching Shen;Shuvra S. Bhattachryya

  • Affiliations:
  • Sandbridge Technologies Inc., White Plains, NY;Electrical and Computer Engineering Department, University of Maryland, College Park, MD;Electrical and Computer Engineering Department, University of Maryland, College Park, MD

  • Venue:
  • Journal of Signal Processing Systems - Special Issue: Embedded computing systems for DSP
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Digital signal processing (DSP) applications involve processing long streams of input data. It is important to take into account this form of processing when implementing embedded software for DSP systems. Task-level vectorization, or block processing, is a useful dataflow graph transformation that can significantly improve execution performance by allowing subsequences of data items to be processed through individual task invocations. In this way, several benefits can be obtained, including reduced context switch overhead, increased memory locality, improved utilization of processor pipelines, and use of more efficient DSP oriented addressing modes. On the other hand, block processing generally results in increased memory requirements since it effeclively increases the sizes of the input and output values associated with processing tasks. In this paper, we investigate the memory-performance trade-off associated with block processing. We develop novel block processing algorithms that carefully take into account memory constraints to achieve efficient block processing configurations within given memory space limitations. Our experimental results indicate that these methods derive optimal memory-constrained block processing solutions most of the time. We demonstrate the advantages of our block processing techniques on practical kernel functions and applications in the DSP domain.