Κεφάλαιο2 | Ενότητα2 | Ερωτήσεις επισκόπησης | Προηγούμενο | Λεξικό όρων

Ανακεφαλαιώνοντας λοιπόν...

   Υπάρχουν τρία είδη εξαρτήσεων :

  • εξάρτηση δεδομένων
  • εξάρτηση ονομάτων
  • εξάρτηση ελέγχου

  Δύο εντολές που είναι εξαρτώμενες ,δεν μπορούν να εκτελεστούν παράλληλα ή να αναδιαταχθούν.

  Οι εξαρτήσεις είναι ιδιότητα των προγραμμάτων. Όταν μία εξάρτηση καταλήγει σε έναν πραγματικό κίνδυνο, ο οποίος έχει εντοπιστεί, και ο κίνδυνος προκαλεί πραγματική καθυστέρηση, τότε οι εξαρτήσεις γίνονται ιδιότητα της οργάνωσης της σωλήνωσης.

  Οι εξαρτήσεις δεδομένων προκύπτουν όταν μία εντολή χρησιμοποιεί το αποτέλεσμα προηγούμενης εντολής.

   Εάν δύο εντολές έχουν εξάρτηση δεδομένων, δεν μπορούν να εκτελεστούν ταυτόχρονα ή να επικαλυφθούν τελείως. Η εξάρτηση υποδηλώνει την πιθανή ύπαρξη ενός ή περισσοτέρων RAW κινδύνων.

   Η εξάρτηση δεδομένων μπορεί να περιορίσει το βαθμό εκμετάλλευσης της παραλληλίας σε επίπεδο εκτέλεσης εντολής. Αυτό μπορεί να αποφευχθεί με δύο τρόπους :

  • Διατηρώντας την εξάρτηση των δεδομένων αλλά αποφεύγοντας τον κίνδυνο (προώθηση δεδομένων και πρόσβαση σε σειρά).
  • Μειώνοντας την εξάρτηση των δεδομένων, τροποποιώντας τον κώδικα (προγραμματισμός σωλήνωσης και ανάπτυξη βρόχου).

   Η εξάρτηση ονομάτων προκύπτει όταν δύο εντολές χρησιμοποιούν τον ίδιο καταχωρητή ή την ίδια θέση μνήμης, που καλείται όνομα. Επειδή δεν υπάρχει καμιά ροή δεδομένων μεταξύ των εντολών που να σχετίζεται με το όνομα, μπορούν να εκτελεστούν παράλληλα.

   Η εξάρτηση ονομάτων μπορεί να αντιμετωπιστεί με την αλλαγή του ονόματος (μετονομασία), ώστε να μην υπάρχει σύγκρουση δεδομένων. Η μετονομασία μπορεί να υλοποιηθεί είτε στατικά, είτε δυναμικά.