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

Η τεχνική TOMASULO

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

Για πρώτη φορά, χρησιμοποιήθηκε για την μονάδα κινητής υποδιαστολής του IBM 360/91 με στόχο την υψηλή απόδοσή της. Ο υπολογιστής IBM 360/91 ολοκληρώθηκε περίπου τρία χρόνια μετά τον CDC 6600. Η τεχνική Tomasulo συνδυάζει κάποια βασικά χαρακτηριστικά των τεχνικών του πίνακα αποτελεσμάτων και της μετονομασίας καταχωρητών.

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

Θυμάστε τι είναι η μετονομασία καταχωρητή; Να αναφέρετε τι επιτυγχάνεται με τη χρήσης αυτής της τεχνικής, καθώς και τον τρόπο με τον οποίο υλοποιείται αυτή η τεχνική. Για περισσότερες λεπτομέρειες καλό θα ήταν να ανατρέξετε στη 2η ενότητα: «Είδη εξαρτήσεων, εξαρτήσεις δεδομένων και ονομάτων».

 

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



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

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

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

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

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



Σχήμα 2.5.1 – Η βασική δομή μιας μονάδας κινητής υποδιαστολής του DLX επεξεργαστή βασισμένη στον αλγόριθμο του Tomasulo.

Όπως φαίνεται και στο σχήμα 2.5.1, με τη χρήση της τεχνικής Tomasulo:

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

Κάθε εντολή κατά την εκτέλεσή της ακολουθεί τρία βήματα:

  1. Διευθέτηση – Εάν πρόκειται για λειτουργία κινητής υποδιαστολής η εντολή διευθετείται, με την προϋπόθεση ότι υπάρχει ελεύθερος σταθμός κράτησης και οι τελεστέοι στέλνονται στον σταθμό κράτησης, αν αυτοί βρίσκονται σε καταχωρητές.

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

  1. Εκτέλεση - Εάν ένας ή περισσότεροι τελεστέοι δεν είναι διαθέσιμοι, η κοινή αρτηρία δεδομένων περιμένει μέχρι να γίνουν. Όταν ένας τελεστέος γίνει διαθέσιμος, τότε τοποθετείται στον αντίστοιχο σταθμό κράτησης. Όταν και οι δύο τελεστέοι είναι διαθέσιμοι, εκτελείται η λειτουργία. Αυτό το βήμα ελέγχει και για κινδύνους RAW.
  2. Εγγραφή αποτελέσματος - Όταν το αποτέλεσμα είναι διαθέσιμο γράφεται στην κοινή αρτηρία δεδομένων και από εκεί στους καταχωρητές και σε οποιουσδήποτε σταθμούς κράτησης που το περιμένουν.

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

Θυμάστε την τεχνική του πίνακα αποτελεσμάτων; Για περισσότερες λεπτομέρειες καλό θα ήταν να ανατρέξετε στην 4η ενότητα: «Δυναμικός προγραμματισμός – Η τεχνική του πίνακα αποτελεσμάτων SCOREBOARDING».


Υπάρχουν τρείς σημαντικές διαφορές μεταξύ των βημάτων της τεχνικής του Tomasulo και αυτών της τεχνικής του πίνακα αποτελεσμάτων. Συγκεκριμένα για την τεχνική Tomasulo:

  • Δεν υπάρχει έλεγχος για WAW και WAR κινδύνους. Αυτοί εξαλείφονται όταν, κατά την διάρκεια της διευθέτησης, μετονομάζονται οι καταχωρητές τελεστέων.
  • Η κοινή αρτηρία δεδομένων χρησιμοποιείται για να μεταδόσει αποτελέσματα παρά για να εξυπηρετήσει τους καταχωρητές.
  • Η φόρτωση και η αποθήκευση από και προς τη μνήμη θεωρούνται σαν βασικές λειτουργικές μονάδες.

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

Το πεδίο ετικέτα περιγράφει ποιος σταθμός κράτησης περιέχει την εντολή η οποία θα δώσει ένα αποτέλεσμα, που προορίζεται για πηγαίος τελεστέος.

Στον αλγόριθμο του Tomasulo οι ετικέτες αναφέρονται στον προσωρινό καταχωρητή ή στην μονάδα που θα παράγει κάποιο αποτέλεσμα. Τα ονόματα καταχωρητών διαγράφονται όταν μία εντολή διευθετείται σε έναν σταθμό κράτησης.

Κάθε σταθμός κράτησης έχει τα εξής πεδία :

Οp : Η λειτουργία που εκτελείται πάνω στους πηγαίους τελεστέους S1 και S2.

Qj,Qk : Οι σταθμοί κράτησης που θα δώσουν τον αντίστοιχο πηγαίο τελεστέο. Το μηδέν δείχνει ότι ο πηγαίος τελεστέος είναι ήδη διαθέσιμος στο πεδίο Vj ή στο Vk , ή ότι δεν χρειάζεται.

Vj,Vk : Η τιμή των πηγαίων τελεστέων. Προσέξτε ότι για κάθε τελεστέο μόνο ένα από τα V ή Q πεδία ισχύει.

Busy : Δείχνει ότι ο συγκεκριμένος σταθμός κράτησης και η λειτουργική μονάδα που τον συνοδεύει είναι απασχολημένοι.

Το αρχείο καταχωρητών και οι προσωρινοί καταχωρητές αποθήκευσης έχουν ένα πεδίο, Qi:

Qi : Ο αριθμός του σταθμού κράτησης που περιέχει τη λειτουργία της οποίας το αποτέλεσμα πρέπει να αποθηκευτεί σ' αυτό τον καταχωρητή ή στη μνήμη. Εάν ο Qi δεν έχει τιμή, τότε καμία τρέχουσα ενεργή εντολή δεν υπολογίζει το αποτέλεσμα που προορίζεται για αυτόν τον καταχωρητή ή τον προσωρινό καταχωρητή. Για έναν καταχωρητή αυτό σημαίνει ότι η τιμή δίνεται απλά από το περιεχόμενο του καταχωρητή.

Για όλους τους προσωρινούς καταχωρητές φόρτωσης και αποθήκευσης απαιτείται ένα ενεργό Qi πεδίο που να δείχνει πότε ένας προσωρινός καταχωρητής είναι διαθέσιμος. Όταν το Qi δεν είναι ενεργό τότε δεν έχει τιμή. Οι προσωρινοί καταχωρητές αποθήκευσης έχουν επίσης ένα πεδίο V όπου κρατείται η τιμή που πρόκειται να αποθηκευτεί.

ΠαράδειγμαΠαράδειγμα

Παρατηρούμε δύο σημαντικές διαφορές μεταξύ των πινάκων της τεχνικής Tomasulo και της τεχνικής του πίνακα αποτελεσμάτων, για το συγκεκριμένο παράδειγμα. Συγκεκριμένα για την τεχνική Tomasulo:

  • Η τιμή ενός τελεστέου αποθηκεύεται στον σταθμό κράτησης σε ένα από τα V πεδία μόλις αυτό γίνει διαθέσιμο. Η τιμή δε διαβάζεται από το αρχείο καταχωρητών ούτε από έναν σταθμό κράτησης, αφού η εντολή έχει διευθετηθεί.
  • Η εντολή ADDD, η οποία στον πίνακα αποτελεσμάτων παρουσίασε εμπλοκή λόγω ενός WAR κινδύνου κατά το στάδιο WB, έχει διευθετηθεί και μπορεί να ολοκληρωθεί πριν εισαχθεί η εντολή DIVD.