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

Πώς μπορούμε να μειώσουμε τις επιπτώσεις της διακλάδωσης

   Όπως τονίσαμε παραπάνω, εξαιτίας της διακλάδωσης έχουμε καθυστέρηση κατά τρεις κύκλους ρολογιού. Αυτό όμως είναι αρκετά μεγάλη απώλεια. Θεωρήστε συχνότητα διακλάδωσης 30% και ιδανικό CPI ίσο με 1. Ακόμα και σε αυτή την περίπτωση η μηχανή με καθυστερήσεις διακλαδώσεων, επιτυγχάνει μόνο τη μισή ιδανική αύξηση ταχύτητας από τη σωλήνωση. Η καθυστέρηση αυτή ονομάζεται ποινή διακλάδωσης.

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

  1. Ανακάλυψε νωρίτερα στη σωλήνωση, αν η διακλάδωση έχει ακολουθηθεί ή όχι.
  2. Υπολόγισε τη διεύθυνση στόχου διακλάδωσης πιο νωρίς.

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

Θυμάστε τον τρόπο με τον οποίο εκτελούνται οι εντολές BEQZ και BNEZ στη σωλήνωση; Για περισσότερες λεπτομέρειες για την εκτέλεση των εντολών διακλάδωσης με συνθήκη BEQZ και BNEZ, καλό θα ήταν να ανατρέξετε στην 1η ενότητα του κεφαλαίου: «Η Σωλήνωση Υπολογιστών».


Στον υπολογιστή DLX, οι διακλαδώσεις (BEQZ και BNEZ) απαιτούν έλεγχο ενός καταχωρητή για το αν είναι ίσος με το μηδέν ή αν δεν είναι αντίστοιχα. Έτσι, είναι δυνατό να ολοκληρώσουμε αυτή την απόφαση μέχρι το τέλος του σταδίου ID, μεταφέροντας τον έλεγχο της ισότητας με το μηδέν σε αυτό το στάδιο.
Για να καταφέρουμε να υπολογίσουμε τη διεύθυνση στόχου της διακλάδωσης κατά τη διάρκεια του σταδίου ID, είναι αναγκαίο να έχουμε έναν ξεχωριστό αθροιστή, αφού η κύρια ALU, η οποία έχει χρησιμοποιηθεί για αυτό τον σκοπό μέχρι στιγμής, δεν μπορεί να χρησιμοποιηθεί νωρίτερα από το στάδιο EX.

Σχήμα 1.6.2 - Αναθεωρημένη δομή της σωλήνωσης. Χρησιμοποιεί ένα ξεχωριστό κύκλωμα πρόσθεσης για να υπολογίσει τη διεύθυνση στόχου διακλάδωσης κατά τη διάρκεια του σταδίου ID. Οι λειτουργίες οι οποίες είναι καινούργιες ή έχουν αλλάξει είναι με τονισμένα γράμματα. Επειδή η πρόσθεση της διεύθυνσης στόχου διακλάδωσης πραγματοποιείται κατά τη διάρκεια του σταδίου ID, αυτό θα γίνεται για όλες τις εντολές. Η συνθήκη διακλάδωσης ( Regs[IF/ID.IR6..10] op 0) θα γίνεται επίσης για όλες τις εντολές. Η επιλογή της τιμής του PC εξακολουθεί να πραγματοποιείται κατά τη διάρκεια του σταδίου IF, αλλά τώρα χρησιμοποιεί τιμές από τον καταχωρητή σωλήνωσης ID/EX, κι όχι από τον EX/MEM. Από τη στιγμή που η τιμή του πεδίου cond τίθεται στο 0, εκτός κι αν η εντολή στο στάδιο ID είναι μία διακλάδωση που ακολουθείται, ο υπολογιστής πρέπει να αποκωδικοποιήσει την εντολή πριν το τέλος του σταδίου ID. Επειδή η διακλάδωση έχει τελειώσει μέχρι το τέλος του σταδίου ID, τα στάδια EX, MEM, WB δε χρησιμοποιούνται στις διακλαδώσεις. Μία επιπρόσθετη δυσκολία προκύπτει από τις εντολές μεταπήδησης, οι οποίες έχουν μεγαλύτερη μετατόπιση από τις διακλαδώσεις. Μπορούμε να αντιμετωπίσουμε αυτή τη δυσκολία, χρησιμοποιώντας ένα επιπλέον κύκλωμα πρόσθεσης, το οποίο αθροίζει την τιμή του PC και τα χαμηλότερα 26 bits του καταχωρητή IR.

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

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

Συμπεριφορά διακλάδωσης σε προγράμματα

Οι διακλαδώσεις υπό συνθήκη χωρίζονται σε δύο κατηγορίες:

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

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

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

 

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

Πραγματικά, στατιστικά στοιχεία δείχνουν ότι:

1)το 60% των διακλαδώσεων προώθησης ακολουθούνται κατά μέσο όρο
και
2)το 85% των διακλαδώσεων οπισθοδρόμησης ακολουθούνται κατά μέσο όρο.

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