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

Επιπλέον μείωση των καθυστερήσεων ελέγχου.

   Προκειμένου να μειωθούν οι ποινές των διακλαδώσεων σε μία απλή DLX σωλήνωση, απαιτείται να είναι γνωστή η διεύθυνση από την οποία πρόκειται να ανακληθεί η επόμενη εντολή, κατά το τέλος του σταδίου IF. Αυτό σημαίνει ότι πρέπει να είναι γνωστά αν η μέχρι τώρα μη αποκωδικοποιημένη εντολή είναι διακλάδωση και αν ναι, ποια θα έπρεπε να είναι η επόμενη τιμή του PC. Γνωρίζοντας αυτά τα δύο στοιχεία, μπορούμε να έχουμε μία ποινή διακλάδωσης ίση με το μηδέν.
Μία μνήμη (cache) πρόβλεψης διακλάδωσης, στην οποία αποθηκεύεται η προβλεπόμενη διεύθυνση της εντολής που έπεται μιας εντολής διακλάδωσης, ονομάζεται προσωρινός καταχωρητής στόχου διακλάδωσης (branch target buffer).

Σε μία DLX σωλήνωση η πρόσβαση στον προσωρινό καταχωρητή πρόβλεψης γίνεται κατά την διάρκεια του σταδίου ID, ώστε στο τέλος αυτού του σταδίου να είναι γνωστή η διεύθυνση του στόχου διακλάδωσης (μια και υπολογίζεται στην διάρκεια του σταδίου ID), η λάθος διεύθυνση (που υπολογίζεται στην διάρκεια του σταδίου IF), καθώς και η πρόβλεψη. 'Ετσι λοιπόν στο τέλος του σταδίου ID έχουμε αρκετές πληροφορίες ώστε να ανακληθεί η επόμενη προβλεπόμενη εντολή. Επίσης, επειδή προβλέπουμε την διεύθυνση της επόμενης εντολής θα πρέπει να γνωρίζουμε αν η εντολή που έχουμε ήδη ανακαλέσει προβλέπεται ως ακολουθούμενη διακλάδωση. Η λειτουργία του προσωρινού καταχωρητή στόχου διακλάδωσης περιγράφεται στο παρακάτω σχήμα :



Σχήμα 2.6.2 - Προσωρινός καταχωρητής στόχου διακλάδωσης

Ο PC της εντολής που ανακαλούμε συγκρίνεται με ένα σύνολο διευθύνσεων εντολών, που είναι αποθηκευμένες στην πρώτη στήλη. Αυτές αναπαριστούν τις διευθύνσεις γνωστών διακλαδώσεων. Αν ο PC ταιριάζει με μία από αυτές τις καταχωρήσεις τότε η εντολή που καλείται είναι μία ακολουθούμενη διακλάδωση. Το δεύτερο πεδίο περιέχει την πρόβλεψη για την επόμενη τιμή του PC, μετά την διακλάδωση. Η ανάκληση αρχίζει αμέσως σε αυτή την διεύθυνση. Το τρίτο πεδίο είναι προαιρετικό και μπορεί να χρησιμοποιηθεί για επιπλέον bit πρόβλεψης κατάστασης. Από τον πίνακα του σχήματος προκύπτουν τα εξής συμπεράσματα :

Παράδειγμα
Καθορίστε τη συνολική ποινή διακλάδωσης για ένα προσωρινό καταχωρητή στόχου διακλάδωσης θεωρώντας τους κύκλους ποινής για μεμονωμένες λάθος προβλέψεις, από τον παρακάτω πίνακα.

Απάντηση:
Έστω ότι η ακρίβεια πρόβλεψης είναι 90% και ο ρυθμός επιτυχίας είναι 90%, ενώ η συχνότητα με την οποία η διακλάδωση ακολουθείται είναι 60%.

Ποινή διακλάδωσης = ποσοστό ρυθμού επιτυχίας* ποσοστό λάθους πρόβλεψης*2+(1-ποσοστό ρυθμού επιτυχίας)* ακολουθούμενες διακλαδώσεις*2
Ποινή διακλάδωσης = (90%*10%*2) + (10%*60%*2)
Ποινή διακλάδωσης = 0,18 + 0,12=0,30 κύκλοι ρολογιού.



Πίνακας 5 -Ποινές για όλους τους δυνατούς συνδυασμούς του αν η διακλάδωση είναι στον προσωρινό καταχωρητή πρόβλεψης και τι πραγματικά κάνει. Δεν υπάρχει ποινή διακλάδωσης αν όλα έχουν προβλεφθεί σωστά και η διακλάδωση βρίσκεται στον καταχωρητή πρόβλεψης στόχου διακλάδωσης. Αν η διακλάδωση δεν έχει προβλεφθεί σωστά τότε η ποινή είναι δύο κύκλοι ρολογιού. Η ίδια ποινή ισχύει αν η διακλάδωση δεν έχει βρεθεί καθόλου στον καταχωρητή πρόβλεψης στόχου διακλάδωσης.

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



Σχήμα 2.6.3 - Αν μία διακλάδωση βρεθεί στον καταχωρητή πρόβλεψης στόχου διακλάδωσης και ακολουθείται, τότε δεν έχουμε καμία καθυστέρηση. Αν όμως δεν υπάρχει στον πίνακα, ή υπάρχει αλλά τελικά δεν ακολουθηθεί, θα έχουμε μια ποινή τουλάχιστον δύο κύκλων.

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3

Να περιγράψετε τι είναι ο προσωρινός καταχωρητής πρόβλεψης διακλαδώσεων και να εξηγήσετε το λόγο για τον οποίο χρησιμοποιείται για τη μείωση των ποινών διακλάδωσης.

 

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 3