Δραστηριότητα 1
· Θυμάστε τι είναι ο προγραμματισμός σωλήνωσης και τι πετυχαίνουμε με αυτή την τεχνική;
Ο μεταγλωττιστής σε έναν σωληνωμένο υπολογιστή προσπαθεί να προγραμματίσει τη σωλήνωση, έτσι ώστε να αποφύγει τις καθυστερήσεις, αλλάζοντας τη σειρά εκτέλεσης των εντολών για να εξαλείψει των κίνδυνο δεδομένων. Η τεχνική αυτή ονομάζεται προγραμματισμός σωλήνωσης.
· Να εφαρμόσετε την τεχνική του προγραμματισμού σωλήνωσης, δίνοντας ένα παράδειγμα.
· Για περισσότερες λεπτομέρειες καλό θα ήταν να ανατρέξετε στο 1ο κεφάλαιο και συγκεκριμένα στην 5η ενότητα: «Κίνδυνοι Δεδομένων που απαιτούν καθυστερήσεις».
Απάντηση δραστηριότητας 1
Παράδειγμα:
Έστω η παρακάτω ακολουθία:
a = b * c;
d = e + f ;
όπου a, b, c, d, e, f είναι διευθύνσεις μνήμης. Υποθέστε ότι οι φορτώσεις έχουν αδράνεια ενός κύκλου ρολογιού.
Ο κώδικας για τη δεδομένη ακολουθία εντολών , ώστε να αποφεύγονται οι καθυστερήσεις είναι:
LW Rb, b
LW Rc, c
LW Re, e ; ανταλλαγή της θέσης των εντολών για αποφυγή της καθυστέρησης
MUL Ra, Rb, Rc
LW Rf, f
SW a, Ra ; ανταλλαγή αποθήκευσης /φόρτωσης αποφυγή καθυστερήσεων
SUB Rb, Re, Rf
SW d, Rd
Παρατηρούμε ότι η χρήση διαφορετικών καταχωρητών για την πρώτη και δεύτερη δήλωση είναι απαραίτητη, για να είναι σωστός ο προγραμματισμός. Αν η μεταβλητή e φορτωνόταν στον ίδιο καταχωρητή με τη μεταβλητή b ή τη μεταβλητή c, ο προγραμματισμός δε θα ήταν σωστός.