Circular Buffers with Multiple Overlapping Windows for Cyclic Task Graphs

T. Bijlsma, Marco Jan Gerrit Bekooij, Gerardus Johannes Maria Smit

    Research output: Chapter in Book/Report/Conference proceedingChapterAcademicpeer-review


    Multimedia applications process streams of values and can often be represented as task graphs. For performance reasons, these task graphs are executed on multiprocessor systems. Inter-task communication is performed via buffers, where the order in which values are written into a buffer can differ from the order in which they are read. Some existing approaches perform inter-task communication via first-in-first-out buffers in combination with reordering tasks and require applications with affne index-expressions. In our previous work, we used circular buffers with a non-overlapping read and write window, such that a reordering task is not required. However, these windows can cause deadlock for cyclic task graphs. In this paper, we introduce circular buffers with multiple overlapping windows that do not delay the release of locations and therefore they do not introduce deadlock for cyclic task graphs. We show that buffers with multiple overlapping read and write windows are attractive, because they avoid that a buffer has to be selected from which a value has to be read or into which a value has to be written. This significantly simplifies the extraction of a task graph from a sequential application. These buffers are also attractive, because a buffer capacity equal to the array size is sufficient for deadlock-free execution, instead of performing global analysis to compute sufficient buffer capacities. Our case-study presents two applications that require these buffers.
    Original languageUndefined
    Title of host publicationTransactions on High-Performance Embedded Architectures and Compilers III
    EditorsP. Stenstrom
    Place of PublicationBerlin
    Number of pages18
    ISBN (Print)978-3-642-19447-4
    Publication statusPublished - 12 Mar 2011

    Publication series

    NameLecture Notes in Computer Science


    • METIS-277552

    Cite this