Δραστηριότητα 4
Έστω το τμήμα κώδικα:
Παρατηρούμε ότι υπάρχει αντι-εξάρτηση μεταξύ των εντολών SUBD και ADDD. Πράγματι, η εντολή SUBD εκτελεί εγγραφή στον καταχωρητή F8 από τον οποίο διαβάζει η εντολή ADDD που εκτελείται πρώτη. Εάν όμως η σωλήνωση εκτελέσει την εντολή SUBD πριν την εντολή ADDD, τότε θα παραβιαστεί η αντι-εξάρτηση και θα έχουμε λανθασμένη εκτέλεση, αφού η εντολή SUBD θα έχει γράψει στον καταχωρητή F8 πριν η εντολή ADDD διαβάσει από αυτόν. Σε αυτή την περίπτωση προκαλείται WAR κίνδυνος. Επιπλέον, για να αποφύγουμε την παραβίαση των εξαρτήσεων εξόδου, πρέπει να ανιχνεύσουμε τους WAW κινδύνους.
DIVD F0 , F2 , F4
ADDD F10 , F0 , F8
SUBD F8 , F8 , F14
Μπορείτε να περιγράψετε την εκτέλεση των εντολών του κώδικα και να προσδιορίσετε τους κινδύνους που προκύπτουν;
Απάντηση δραστηριότητας 4