Abstract
In this chapter, we analyze the control flow and dataflow of a C program. Understanding these properties helps a designer to understand the relationship between a C program and an equivalent hardware implementation of that C program. Control edges and data edges reflect relationships between the operations of the C program, and we distinguish control edges from data edges. A control edge specifies the execution order of these operations. A data edge specifies that data produced by one operation is consumed by the second. By representing the operations of the C program as nodes of a graph, control edges and data edges define a structure called a Control Flow Graph (CFG) and a Data Flow Graph (DFG), respectively. For a hardware–software codesigner, the distinction between control edges and data edges is of great importance. Data edges will appear in any implementation target – hardware or software – of the algorithm. Control edges, on the other hand, may be removed when the algorithm executes on an architecture with sufficient implementation parallelism.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Appel AW (1997) Modern Compiler Implementation in C: Basic Techniques. Cambridge University Press
Cytron R, Ferrante J, Rosen BK, Wegman MN, Zadeck FK (1991) Efficiently computing static single assignment form and the control dependence graph. ACM Trans Program Lang Syst 13(4):451–490
Edwards SA (2006) The challenges of synthesizing hardware from c-like languages. IEEE Design & Test of Computers 23(5):375–386
Gupta S, Gupta R, Dutt N, Nicolau A (2004) SPARK:A Parallelizing Approach to the High-Level Synthesis of Digital Circuits. Springer
Kastner R, Kaplan A, Sarrafzadeh M (2003) Synthesis Techniques and Optimizations for Reconfigurable Systems. Kluwer Academic Publishers
Muchnick SS (1997) Advanced Compiler Design and Implementation. Morgan Kaufmann
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2010 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Schaumont, P.R. (2010). Analysis of Control Flow and Data Flow. In: A Practical Introduction to Hardware/Software Codesign. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-6000-9_3
Download citation
DOI: https://doi.org/10.1007/978-1-4419-6000-9_3
Published:
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4419-5999-7
Online ISBN: 978-1-4419-6000-9
eBook Packages: EngineeringEngineering (R0)