Υπάρχουν τρία είδη εξαρτήσεων :
Δύο εντολές που είναι εξαρτώμενες ,δεν μπορούν να εκτελεστούν παράλληλα ή να αναδιαταχθούν. Οι εξαρτήσεις είναι ιδιότητα των προγραμμάτων. Όταν μία εξάρτηση καταλήγει σε έναν πραγματικό κίνδυνο, ο οποίος έχει εντοπιστεί, και ο κίνδυνος προκαλεί πραγματική καθυστέρηση, τότε οι εξαρτήσεις γίνονται ιδιότητα της οργάνωσης της σωλήνωσης. Οι εξαρτήσεις δεδομένων προκύπτουν όταν μία εντολή χρησιμοποιεί το αποτέλεσμα προηγούμενης εντολής. Εάν δύο εντολές έχουν εξάρτηση δεδομένων, δεν μπορούν να εκτελεστούν ταυτόχρονα ή να επικαλυφθούν τελείως. Η εξάρτηση υποδηλώνει την πιθανή ύπαρξη ενός ή περισσοτέρων RAW κινδύνων. Η εξάρτηση δεδομένων μπορεί να περιορίσει το βαθμό εκμετάλλευσης της παραλληλίας σε επίπεδο εκτέλεσης εντολής. Αυτό μπορεί να αποφευχθεί με δύο τρόπους :
Η εξάρτηση ονομάτων προκύπτει όταν δύο εντολές χρησιμοποιούν τον ίδιο καταχωρητή ή την ίδια θέση μνήμης, που καλείται όνομα. Επειδή δεν υπάρχει καμιά ροή δεδομένων μεταξύ των εντολών που να σχετίζεται με το όνομα, μπορούν να εκτελεστούν παράλληλα. Η εξάρτηση ονομάτων μπορεί να αντιμετωπιστεί με την αλλαγή του ονόματος (μετονομασία), ώστε να μην υπάρχει σύγκρουση δεδομένων. Η μετονομασία μπορεί να υλοποιηθεί είτε στατικά, είτε δυναμικά. |