[Advcomparch] Ερώτηση πάνω στη χρήση των FU

Konstantinos Nikas knikas at cslab.ece.ntua.gr
Tue Jun 28 21:26:18 EEST 2011


Καλησπέρα,

πολύ καλή ερώτηση. Γενικά, οι εικόνες του hardware που υλοποιεί τον 
αλγόριθμο Tomasulo (στο βιβλίο σας και τις διαφάνειες) δείχνουν ότι το 
πέρασμα του αποτέλεσματος ενός FU γίνεται από το ίδιο το FU πάνω στο 
CDB. Προφανώς λοιπόν αν εκείνη τη στιγμή το CDB δεν είναι ελεύθερο το FU 
θα πρέπει να stall-άρει προκειμένου να διατηρήσει το αποτέλεσμα και να 
το μεταδώσει σε μια επόμενη χρονική στιγμή.

Αυτό όμως δε σημαίνει (όπως νομίζω συζητήθηκε και στο μάθημα) ότι στην 
πραγματικότητα δεν μπορούν να υπάρχουν κάποιοι buffers μεταξύ των FUs 
και του CDB έτσι ώστε να διασφαλιστεί η χρήση των FUs από (κάποιο 
περιορισμένο προφανώς αριθμό από) επόμενες εντολές.

Γενικά αυτό δεν είναι κάτι περίεργο που δεν έχετε ξαναδεί. Σε άλλες 
ασκήσεις έχουμε δει ας πούμε ένα FU να κάνει σε ένα κύκλο το WR του 
αποτελέσματος της εντολής που μόλις ολοκληρώθηκε και ταυτόχρονα στον 
ίδιο κύκλο να ξεκινάει και το execution της επόμενης εντολής στο ίδιο 
FU. Προφανώς για να μπορεί να υλοποιηθεί αυτό στο hardware απαιτείται 
κάποιο buffering ή τέλος πάντων κάποια απεμπλοκή της εγγραφής του 
αποτελέσματος στο CDB από το υπόλοιπο FU που εκτελεί τις εντολές.

Στη συγκεκριμένη λύση έχει γίνει λοιπόν αυτή η υπόθεση (για λόγους 
απλότητας), ότι δηλαδή υπάρχει κάποιος buffer που κρατάει το αποτέλεσμα 
από το FU μέχρι να ελευθερωθεί το CDB. Από εκεί και πέρα όμως, αν 
κάποιος στο παράδειγμα που αναφέρεται, stall-αρε το FU και εξηγούσε στο 
σχόλιο ποιο είναι το πρόβλημα, η λύση είναι απόλυτα αποδεκτή.

Κ.

On 06/28/2011 08:20 PM, George Marinellis wrote:
> Καλησπέρα,
> Εμένα η ερώτησή μου είναι πάνω στο εξής.
> Υποθέτουμε τις εξής τρεις εντολές και οι οποίες δρομολογούνται με τον
> ακόλουθο τροπο στον αλγ Τomasulo(Σεπτ-2010)
> _ΟP_ IS EX WR CMT
> ADDI R2, R2, #8 || 17 18 20 27 || CDB conflict
> ADDI R1, R1, #1 ||18 19 21 28 || CDB conflict
> SUBI R5, R5, #1 ||19 20 23 29 ||CDB conflict
>
> Με ένα non-pipelined int FU.Στον κύκλο 18 ολοκληρώνεται η πρώτη ADDI
> όμως δεν μπορεί να κάνει broadcast.Συνεπώς η εντολή δεν
> stall-αρει μες το FU??Πως εισέρχεται στην ίδια-μονάδα η επόμενη εντολή.??
>
>
>
> _______________________________________________
> Advcomparch mailing list
> Advcomparch at lists.cslab.ece.ntua.gr
> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch

-- 
Dr. Konstantinos Nikas
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens

Tel: +30-210-7724159
e-mail: knikas at cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas



More information about the Advcomparch mailing list