Abstract
In dataflow representations for signal processing systems, applications are represented as directed graphs in which vertices represent computations and edges correspond to buffers that store data as it passes among computations. The edges in the dataflow graph are single-input, single-output components that manage data transmission in a first-in, first-out (FIFO) fashion. In this paper, we formulate the vertices and edges into concepts called “active blocks” and “passive blocks”, respectively in the graph representation. Computation in the dataflow graph is represented as “active blocks”, while the concept of dataflow buffers is represented as “passive blocks”. Like dataflow edges, passive blocks are used to store data during the intervals between its production and consumption by actors. However, passive blocks can have multiple inputs and multiple outputs, and can incorporate operations on and rearrangements of the stored data subject to certain constraints. We define a form of flowgraph representation that is based on replacing dataflow edges with the proposed concept of passive blocks. We present a structured design methodology for utilizing this new form of signal processing flowgraph, and demonstrate its application to improving memory management efficiency, and execution time performance.
Similar content being viewed by others
References
Ade, M., Lauwereins, R., & Peperstraete, J. (1997). Data memory minimisation for synchronous data flow graphs emulated on DSP-FPGA targets. In Proceedings of the Design Automation Conference, pp. 64–69.
Benazouz, M., Marchetti, O., Munier-Kordon, A., & Urard, P. (2010). A new approach for minimizing buffer capacities with throughput constraint for embedded system design. In Proceedings of the ACS/IEEE International Conference on Computer Systems and Applications, pp. 1–8.
Bhattacharyya, S.S., Deprettere, E., & Leupers, R. (2019) In Takala, J. (Ed.), Handbook of Signal Processing Systems, 3rd edn. Berlin: Springer.
Bhattacharyya, S.S., & Lee, E.A. (1992). Memory management for synchronous dataflow programs. Tech. Rep. UCB/ERL M92/128, Electronics Research Laboratory University of California at Berkeley.
Bilsen, G., Engels, M., Lauwereins, R., & Peperstraete, J.A. (1996). Cyclo-static dataflow. IEEE Transactions on Signal Processing, 44(2), 397–408.
Boutellier, J., Ersfolk, J., Lilius, J., Mattavelli, M., Roquier, G., & Silven, O. (2015). Actor merging for dataflow process networks. IEEE Transactions on Signal Processing, 63(10), 2496–2508.
Buck, J.T. (1994). Static scheduling and code generation from dynamic dataflow graphs with integer-valued control streams. In Proceedings of the IEEE Asilomar Conference on Signals, Systems, and Computers, pp. 508–513.
Buck, J.T., & Lee, E.A. (1993). Scheduling dynamic dataflow graphs using the token flow model. In Proceedings of the International Conference on Acoustics, Speech, and Signal Processing.
Cudennec, L., Dubrulle, P., Galea, F., Goubier, T., & Sirdey, R. (2014). Generating code and memory buffers to reorganize data on many-core architectures. Procedia Computer Science, 29, 1123–1133.
de Oliveira Castro, P., Louise, S., & Barthou, D. (2010). A multidimensional array slicing DSL for stream programming. In Proceedings of the International Conference on Complex, Intelligent and Software Intensive Systems, pp. 913–918.
Desnos, K., Pelcat, M., Nezan, J.F., & Aridhi, S. (2016). On memory reuse between inputs and outputs of dataflow actors ACM Transactions on Embedded Computing Systems 15(2).
Eker, J., Janneck, J.W., Lee, E.A., Liu, J., Liu, X., Ludvig, J., Neuendorffer, S., Sachs, S., & Xiong, Y. (2003). Taming heterogeneity — the Ptolemy approach. Proceedings of the IEEE, 91(1), 127–144.
Fischaber, S., Woods, R., & McAllister, J. (2007). Soc memory hierarchy derivation from dataflow graphs. In Proceedings of the IEEE Workshop on Signal Processing Systems.
Ha, S., Kim, S., Lee, C., Yi, Y., Kwon, S., & Joo, Y.P. (2007). PeaCE: A hardware-software codesign environment for multimedia embedded systems. ACM Transactions on Design Automation of Electronic Systems 12. Article No. 24.
Lee, E.A. (1991). Consistency in dataflow graphs IEEE Transactions on Parallel and Distributed Systems 2(2).
Lee, E.A., & Messerschmitt, D.G. (1987). Synchronous dataflow. Proceedings of the IEEE, 75 (9), 1235–1245.
Lee, E.A., & Parks, T.M. (1995). Dataflow process networks. Proceedings of the IEEE, 83(5), 773–799.
Lesparre, Y., Munier-Kordon, A., & Delosme, J.M. (2016). Evaluation of synchronous dataflow graph mappings onto distributed memory architectures. In Proceedings of the Euromicro Conference on Digital System Design, pp. 146–153.
Li, L., Sapio, A., Wu, J., Liu, Y., Lee, K., Wolf, M., & Bhattacharyya, S.S. (2017). Design and implementation of adaptive signal processing systems using Markov decision processes. In Proceedings of the International Conference on Application Specific Systems, Architectures, and Processors (pp. 170–175). Washington: Seattle.
Lin, S., Liu, Y., Lee, K., Li, L., Plishker, W., & Bhattacharyya, S.S. (2017). The DSPCAD framework for modeling and synthesis of signal processing systems. In Ha, S., & Teich, J. (Eds.) handbook of hardware/software codesign, pp. 1–35. Springer.
Liu, Y., Barford, L., & Bhattacharyya, S.S. (2015). Constant-rate clock recovery and jitter measurement on deep memory waveforms using dataflow. In Proceedings of the IEEE International Instrumentation and Measurement Technology Conference, pp. 1590–1595.
Liu, Y., Barford, L., & Bhattacharyya, S.S. (2018). Generalized graph connections for dataflow modeling of DSP applications. In Proceedings of the IEEE Workshop on Signal Processing Systems (pp. 275–280). South Africa: Cape Town.
Murthy, P.K., & Bhattacharyya, S.S. (2004). Buffer merging — a powerful technique for reducing memory requirements of synchronous dataflow specifications. ACM Transactions on Design Automation of Electronic Systems, 9(2), 212–237.
Oh, H., & Ha, S. (2002). Fractional rate dataflow model and efficient code synthesis for multimedia applications. ACM SIGPLAN Notices, 37, 41–51.
Pelcat, M., Piat, J., Wipliez, M., Aridhi, S., & Nezan, J.F. (2009). An open framework for rapid prototyping of signal processing applications. EURASIP Journal on Embedded Systems 2009. Article No. 11.
Reekie, H.J. (1995). Realtime signal processing — dataflow, visual, and functional programming. Ph.D. thesis, University of Technology at Sydney.
Sander, I. (2003). System modeling and design refinement in ForSyDe. Ph.D. thesis, Royal Institute of Technology, Sweden.
Schmogrow, R., & et al. (2012). Error vector magnitude as a performance measure for advanced modulation formats. IEEE Photonics Technology Letters, 24(1), 61–63.
Stuijk, S., Geilen, M., & Basten, T. (2006). Exploring tradeoffs in buffer requirements and throughput constraints for synchronous dataflow graphs. In Proceedings of the Design Automation Conference.
Sung, W., Kim, J., & Ha, S. (1998). Memory efficient software synthesis from dataflow graph. In Proceedings of the International Symposium on System Synthesis, pp. 137–142.
Tripakis, S., Bui, D., Geilen, M., Rodiers, B., & Lee, E.A. (2013). Compositionality in synchronous data flow: Modular code generation from hierarchical SDF graphs ACM Transactions on Embedded Computing Systems 12(3).
Acknowledgments
This research was supported in part by the U.S. National Science Foundation.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Lee, Y., Liu, Y., Desnos, K. et al. Passive-Active Flowgraphs for Efficient Modeling and Design of Signal Processing Systems. J Sign Process Syst 92, 1133–1151 (2020). https://doi.org/10.1007/s11265-020-01581-8
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11265-020-01581-8