Η τεχνική Tomasulo αποτελεί μία άλλη προσέγγιση του δυναμικού προγραμματισμού. Επινοήθηκε από τον Robert Tomasulo από όπου και πήρε το όνομά της. Αυτή η τεχνική, όπως και η τεχνική του πίνακα αποτελεσμάτων, επιτρέπει την εκτέλεση εντολών παρουσία κινδύνων.
Για πρώτη φορά, χρησιμοποιήθηκε για την μονάδα κινητής υποδιαστολής του IBM 360/91 με στόχο την υψηλή απόδοσή της. Ο υπολογιστής IBM 360/91 ολοκληρώθηκε περίπου τρία χρόνια μετά τον CDC 6600. Η τεχνική Tomasulo συνδυάζει κάποια βασικά χαρακτηριστικά των τεχνικών του πίνακα αποτελεσμάτων και της μετονομασίας καταχωρητών.
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1
ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 1 Γενικά υπάρχουν οι σωληνωμένες λειτουργικές μονάδες και οι πολλαπλές λειτουργικές μονάδες. Η διαφορά τους είναι ότι η σωληνωμένη λειτουργική μονάδα ξεκινάει το πολύ μία λειτουργία σε κάθε κύκλο ρολογιού. Επειδή δεν υπάρχουν βασικές διαφορές θα υποθέσουμε ότι έχουμε πολλαπλές λειτουργικές μονάδες κατά την περιγραφή του αλγορίθμου του Tomasulo.
Στον αλγόριθμο Tomasulo η μετονομασία των καταχωρητών πραγματοποιείται με την βοήθεια των σταθμών κράτησης. Οι σταθμοί κράτησης ανακαλούν και καταχωρούν προσωρινά έναν τελεστέο μιας εντολής, μόλις βέβαια γίνει διαθέσιμος. Με αυτό τον τρόπο δε χρειάζεται να επαναληφθεί η ανάγνωση ενός συγκεκριμένου τελεστέου από έναν καταχωρητή, κατά τη διάρκεια εκτέλεσης του προγράμματος.
Οι εντολές που βρίσκονται σε αναμονή προσδιορίζουν τον σταθμό κράτησης από τον οποίο θα πάρουν τις εισόδους τους. Επιπλέον, όταν υπάρχουν διαδοχικές εγγραφές σε έναν καταχωρητή, τότε το περιεχόμενο του καταχωρητή ενημερώνεται σύμφωνα με την τελευταία εγγραφή. Έτσι λοιπόν, κατά τη διευθέτηση των εντολών οι προσδιοριστές των καταχωρητών, οι οποίοι περιέχουν τους τελεστέους που είναι σε αναμονή, μετονομάζονται σε ονόματα σταθμών κράτησης. Αυτή η διαδικασία καλείται μετονομασία καταχωρητών. Επομένως, αφού μπορούν να υπάρξουν περισσότεροι σταθμοί κράτησης από ότι πραγματικοί καταχωρητές, η τεχνική αυτή έχει την δυνατότητα εξάλειψης κινδύνων τους οποίους δεν μπορεί να αποφύγει ο μεταγλωττιστής. · Οι εντολές κινητής υποδιαστολής όταν διευθετούνται, στέλνονται από τη μονάδα εντολών στην ουρά εντολών κινητής υποδιαστολής. Εάν πρόκειται για λειτουργία φόρτωσης ή αποθήκευσης η εντολή διευθετείται, εφόσον υπάρχει διαθέσιμος προσωρινός καταχωρητής. Αν δεν υπάρχει ελεύθερος σταθμός κράτησης ή προσωρινός καταχωρητής, τότε υπάρχει κατασκευαστικός κίνδυνος και η εντολή καθυστερεί μέχρι να απελευθερωθεί κάποιος από τους δύο. Σε αυτό το βήμα πραγματοποιείται και η μετονομασία των καταχωρητών που αναφέρθηκε προηγουμένως. ΔΡΑΣΤΗΡΙΟΤΗΤΑ 2
Σχήμα 2.5.1 – Η βασική δομή μιας μονάδας κινητής υποδιαστολής του DLX επεξεργαστή βασισμένη στον αλγόριθμο του Tomasulo.
Όπως φαίνεται και στο σχήμα 2.5.1, με τη χρήση της τεχνικής Tomasulo:
· Οι σταθμοί κράτησης περιέχουν τις διευθετημένες εντολές που περιμένουν να εκτελεστούν σε μία λειτουργική μονάδα. Επίσης περιέχουν τους τρέχοντες τελεστέους των παραπάνω εντολών ή την προέλευση των τελεστέων, καθώς και πληροφορίες για έλεγχο και αποφυγή κινδύνων κατά την έναρξη εκτέλεσης της εντολής.
· Οι προσωρινοί καταχωρητές φόρτωσης και αποθήκευσης κρατούν δεδομένα ή διευθύνσεις που αντίστοιχα προέρχονται ή κατευθύνονται στη μνήμη και θα χρησιμεύσουν σε εντολές που βρίσκονται σε αναμονή.
· Το αρχείο καταχωρητών κινητής υποδιαστολής συνδέεται με τις λειτουργικές μονάδες μέσω ενός ζεύγους αρτηριών ενώ με τους προσωρινούς καταχωρητές αποθήκευσης μέσω μιας αρτηρίας.
· Τα αποτελέσματα των λειτουργικών μονάδων κινητής υποδιαστολής ή του προσωρινού καταχωρητή φόρτωσης, τοποθετούνται στην κοινή αρτηρία δεδομένων, η οποία συνδέεται με το αρχείο καταχωρητών κινητής υποδιαστολής καθώς επίσης και με τους σταθμούς κράτησης και τους προσωρινούς καταχωρητές αποθήκευσης.
Υπάρχουν τρείς σημαντικές διαφορές μεταξύ των βημάτων της τεχνικής του Tomasulo και αυτών της τεχνικής του πίνακα αποτελεσμάτων. Συγκεκριμένα για την τεχνική Tomasulo:
Οι προσωρινοί καταχωρητές φόρτωσης και αποθήκευσης, οι σταθμοί κράτησης καθώς και το αρχείο καταχωρητών χρησιμοποιούν δομές δεδομένων χρήσιμες για τον έλεγχο και την αποφυγή κινδύνων. Όλες οι παραπάνω μονάδες, εκτός από τον προσωρινό καταχωρητή φόρτωσης περιέχουν ένα πεδίο ετικέτα για κάθε καταχώρηση. Αυτές οι ετικέτες είναι χαρακτηριστικά ονόματα ενός εκτεταμένου συνόλου εικονικών καταχωρητών που χρησιμοποιούνται στην μετονομασία.
Το πεδίο ετικέτα περιγράφει ποιος σταθμός κράτησης περιέχει την εντολή η οποία θα δώσει ένα αποτέλεσμα, που προορίζεται για πηγαίος τελεστέος.
Στον αλγόριθμο του Tomasulo οι ετικέτες αναφέρονται στον προσωρινό καταχωρητή ή στην μονάδα που θα παράγει κάποιο αποτέλεσμα. Τα ονόματα καταχωρητών διαγράφονται όταν μία εντολή διευθετείται σε έναν σταθμό κράτησης.
Κάθε σταθμός κράτησης έχει τα εξής πεδία :Οp : Η λειτουργία που εκτελείται πάνω στους πηγαίους τελεστέους S1 και S2.
Qj,Qk : Οι σταθμοί κράτησης που θα δώσουν τον αντίστοιχο πηγαίο τελεστέο. Το μηδέν δείχνει ότι ο πηγαίος τελεστέος είναι ήδη διαθέσιμος στο πεδίο Vj ή στο Vk , ή ότι δεν χρειάζεται.
Vj,Vk : Η τιμή των πηγαίων τελεστέων. Προσέξτε ότι για κάθε τελεστέο μόνο ένα από τα V ή Q πεδία ισχύει.
Busy : Δείχνει ότι ο συγκεκριμένος σταθμός κράτησης και η λειτουργική μονάδα που τον συνοδεύει είναι απασχολημένοι.
Το αρχείο καταχωρητών και οι προσωρινοί καταχωρητές αποθήκευσης έχουν ένα πεδίο, Qi:
Qi : Ο αριθμός του σταθμού κράτησης που περιέχει τη λειτουργία της οποίας το αποτέλεσμα πρέπει να αποθηκευτεί σ' αυτό τον καταχωρητή ή στη μνήμη. Εάν ο Qi δεν έχει τιμή, τότε καμία τρέχουσα ενεργή εντολή δεν υπολογίζει το αποτέλεσμα που προορίζεται για αυτόν τον καταχωρητή ή τον προσωρινό καταχωρητή. Για έναν καταχωρητή αυτό σημαίνει ότι η τιμή δίνεται απλά από το περιεχόμενο του καταχωρητή.
Για όλους τους προσωρινούς καταχωρητές φόρτωσης και αποθήκευσης απαιτείται ένα ενεργό Qi πεδίο που να δείχνει πότε ένας προσωρινός καταχωρητής είναι διαθέσιμος. Όταν το Qi δεν είναι ενεργό τότε δεν έχει τιμή. Οι προσωρινοί καταχωρητές αποθήκευσης έχουν επίσης ένα πεδίο V όπου κρατείται η τιμή που πρόκειται να αποθηκευτεί.Παρατηρούμε δύο σημαντικές διαφορές μεταξύ των πινάκων της τεχνικής Tomasulo και της τεχνικής του πίνακα αποτελεσμάτων, για το συγκεκριμένο παράδειγμα. Συγκεκριμένα για την τεχνική Tomasulo:
|
|