Communication between nested loop programs via circular buffers in an embedded multiprocessor system

  • Authors:
  • Tjerk Bijlsma;Marco Bekooij;Pierre Jansen;Gerard Smit

  • Affiliations:
  • University of Twente, The Netherlands;NXP Semiconductors Research, The Netherlands;University of Twente, The Netherlands;University of Twente, The Netherlands

  • Venue:
  • SCOPES '08 Proceedings of the 11th international workshop on Software & compilers for embedded systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Multimedia applications, executed by embedded multiprocessor systems, can in some cases be represented as task graphs, with the tasks containing nested loop programs. The nested loop programs communicate via arrays and can be executed on different processors. Typically an array can be communicated via a circular buffer with a capacity smaller than the array. For such buffers, the communicating nested loop programs have to synchronize and a sufficient buffer capacity needs to be computed. In a circular buffer we use a write and a read window to support rereading, out-of-order reading or writing, and skipping of locations. A cyclo static dataflow model is derived from the application and used to compute buffer capacities that guarantee deadlock free execution. Our case-study applies circular buffers in a Digital Audio Broadcasting channel decoder application, where the frequency deinterleaver reads according to a non-affine pseudo-random function. For this application, buffer capacities are calculated that guarantee deadlock free execution.