A compile time based approach for solving out-of-order communication in Kahn process networks
Alexandru Turjan, Bart Kienhuis, E. Deprettere · 2003
The Compaan compiler framework automates the transformation of DSP applications written in Matlab into Kahn process networks (KPNs). These KPNs express the signal processing applications in a parallel distributed way, making them more suitable for mapping onto parallel architectures. A simple instance of a generated KPN by Compaan is a producer process that communicates with a consumer process via a FIFO buffer with the consumer reading data from the FIFO using a blocking read. When the sequence of producing data is different from the sequence of consuming data, a simple FIFO is not sufficient to implement the communication. For such a case, extra storage and control are needed at the consumer side. This paper presents a novel approach that determines at compile time whether a FIFO buffer is sufficient for every producer/consumer pair of a Compaan-generated KPN. For the case when the additional memory is required, we also provide an address generation mechanism at compile time. The presented approach is based on the Ehrhart theory.