Litcius/Paper detail

Buffer Placement and Sizing for High-Performance Dataflow Circuits

Lana Josipović, Shabnam Sheikhha, Andrea Guerrieri, Paolo Ienne, Jordi Cortadella

202038 citationsDOIOpen Access PDF

Abstract

Commercial high-level synthesis tools typically produce statically scheduled circuits. Yet, effective C-to-circuit conversion of arbitrary software applications calls for dataflow circuits, as they can handle efficiently variable latencies (e.g., caches) and unpredictable memory dependencies. Dataflow circuits exhibit an unconventional property: registers (usually referred to as "buffers") can be placed anywhere in the circuit without changing its semantics, in strong contrast to what happens in traditional datapaths. Yet, although functionally irrelevant, this placement has a significant impact on the circuit's timing and throughput. In this work, we show how to strategically place buffers into a dataflow circuit to optimize its performance. Our approach extracts a set of choice-free critical loops from arbitrary dataflow circuits and relies on the theory of marked graphs to optimize the buffer placement and sizing. We demonstrate the performance benefits of our approach on a set of dataflow circuits obtained from imperative code.

Topics & Concepts

DataflowComputer scienceElectronic circuitDataflow architectureParallel computingSet (abstract data type)SizingThroughputComputer architectureComputer engineeringProgramming languageEngineeringOperating systemWirelessVisual artsElectrical engineeringArtEmbedded Systems Design TechniquesFormal Methods in VerificationParallel Computing and Optimization Techniques