Data Dependency: It refers to the state in which two or more instructions split same data. The instructions in a program can be given based on the relationship of data dependency; this means how two segments or instructions are data dependent on each other. The following types of data dependencies are:
i) Flow Dependence : If instruction I2 follows I1 and output of I1 turn into input of
I2, then I2 is called to be flow dependent on I1.
ii) Antidependence : When instruction I2 follows I1 such that output of I2 overlie
with the input of I1 on the similar data.
iii) Output dependence : When output of the two instructions I1 and I2 overlie on
the similar data, the instructions are supposed to be output dependent.
iv) I/O dependence : When read and write operations by two instructions are raised on the similar file, it is a position of I/O dependence.
Let Consider the following program instructions:
I1: a = b
I2: c = a + d
I3: a = c
In this program section instructions I1 and I2 are Flow dependent as variable is used by I2 as input and generated by I1 as output.Here, Instructions I2 and I3 are Antidependent as variable is produced by I3 but used by I2 and in order I2 comes first. I3 is flow dependent on I2 because of variable c. Instructions I1 and I3 are Output dependent because variable a is produced by both instructions.