Πίσω

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

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

LD F6 , 34(R2)
LD F2 , 45(R3)
MULTD F0 , F2 , F4
SUBD F8 , F6 , F2
DIVD F10 , F0 , F6
ADDD F6 , F8 , F2
Aπάντηση

Ο πίνακας αποτελεσμάτων για ένα στιγμιότυπο του παραπάνω κώδικα, όταν η πρώτη εντολή LD έχει γράψει το αποτέλεσμά της, αποτελείται από τρία τμήματα:

Κάθε εντολή που έχει διευθετηθεί ή βρίσκεται σε αναμονή για να διευθετηθεί, έχει μια εγγραφή στον πίνακα κατάστασης εντολής. Το τμήμα κατάστασης εντολής υποδεικνύει σε ποιο από τα τέσσερα βήματα βρίσκεται η εντολή. Στο παράδειγμά μας, ο καταχωρητής κατάστασης εντολής λέει ότι η πρώτη εντολή LD έχει ολοκληρωθεί και γράψει το αποτέλεσμά της, ενώ η δεύτερη εντολή LD έχει ολοκληρώσει την εκτέλεση της αλλά δεν έχει γράψει ακόμη το αποτέλεσμά της. Οι εντολές MULTD, SUBD και DIVD έχουν όλες διευθετηθεί αλλά παρουσιάζουν καθυστέρηση, περιμένοντας τους τελεστέους τους.

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

Υπάρχουν εννέα πεδία για κάθε λειτουργική μονάδα:

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

Op   : Λειτουργία που εκτελείται στη λειτουργική μονάδα (π.χ πρόσθεση ή αφαίρεση).

Fi    : Καταχωρητής προορισμού.

Fj,Fk   : Πηγαίοι καταχωρητές.

Qj,Qk   : Λειτουργικές μονάδες που χρησιμοποιούν τους πηγαίους καταχωρητές Fj, Fk.

Rj,Rk   : Σημαίες που υποδεικνύουν πότε οι καταχωρητές Fj, Fk είναι έτοιμοι.

Τα πεδία μηδενίζονται όταν νέες τιμές διαβάζονται έτσι ώστε ο πίνακας αποτελεσμάτων να γνωρίζει ότι ο πηγαίος τελεστέος έχει διαβαστεί (αυτό απαιτείται για την αντιμετώπιση των WAR κινδύνων).

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

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