Data Dependences

Data Dependences

An instruction data_dependencies_a85f447b3914caa2c40793c3a119e22fe2408058.svg is data dependent on instruction data_dependencies_d03b9ff2ec78708695a2a698cc0a6793483cea4a.svg if there is a path from data_dependencies_d03b9ff2ec78708695a2a698cc0a6793483cea4a.svg to data_dependencies_a85f447b3914caa2c40793c3a119e22fe2408058.svg and

data_dependencies_f81e610d0fc16effded58e1c8a7ae837449adc12.svg

Where:

  • data_dependencies_45ce4e09d33e6087d247cac7d0ee875020ae06cb.svg: set of read data by instruction data_dependencies_d03b9ff2ec78708695a2a698cc0a6793483cea4a.svg
  • data_dependencies_13f46d8c9bb65beb6651ed8e2193d24de5e9580a.svg: set of written data by instruction data_dependencies_d03b9ff2ec78708695a2a698cc0a6793483cea4a.svg

Classification of data dependences #

1:   add R1,R2,R3 ;; R1 = R2 + R3
2:   sub R4,R5,R6
3:   add R6,R1,R8
4:   xor R4,R1,R11

True dependences (write … read) #

  • In example from instruction 1 to instruction 3.
  • 1 writes to R1 while 3 reads from R1

Anti dependences (read … write) #

  • In example from 2 to 3

  • 2 reads from R6 while 3 writes to R6

  • Name depencency (can be avoided by using different registers)

Output dependences (write … write) #

  • In example from 2 to 4

  • 2 and 4 both write to R4

  • Name depencency (can be avoided by using different registers)

Calendar October 22, 2023