[Advcomparch] Ερώτηση για Reservation Stations

Konstantinos Nikas knikas at cslab.ece.ntua.gr
Thu Jun 18 14:19:10 EEST 2009


Καλημέρα,

δεν είμαι σίγουρος ότι καταλαβαίνω ακριβώς την ερώτηση.

Αν εννοείς αν είναι καλύτερο ένα "centralized" σχήμα (1 rs για όλα τα 
fu) από ένα "distributed" σχήμα (1 rs για κάθε 1 fu), δεν μπορώ να δώσω 
μια ξεκάθαρη απάντηση. Το καθένα έχει τα δικά του χαρακτηριστικά 
(utilization of entries, design complexity, saturation, etc). Νομίζω ότι 
κάποια πλεονεκτήματα/μειονεκτήματα αναφέρονται και στις διαφάνειες. Εδώ 
να σημειώσω ότι στο distributed σχήμα, συνήθως έχουμε 1 rs για κάθε * 
τύπο * fu. Δηλαδή, στο παράδειγμα της άσκησης, θα υπήρχε 1 rs για 
πράξεις fp mul/div, το οποίο θα είχε 4 entries και θα τροφοδοτούσε 2 
functional units (ή μπορείς να το δεις σαν 1 fu το οποίο μπορεί να 
εκτελεί 2 πράξεις ταυτόχρονα).

Η 1-1 αντιστοιχία που ανέφερα στην προηγούμενη απάντηση μου είναι 
διαφορετική από αυτό. Αναφερόμουν στην αντιστοιχία * rs entries * και 
fu. Στο παράδειγμα της άσκησης ξανά, έχουμε 4 entries για fp mul/div ενώ 
μπορούμε να εκτελούμε μέχρι 2 πράξεις ταυτόχρονα. Η επιλογή αυτή έχει 
νόημα, αν σκεφτείς τον παρακάτω κώδικα:

MUL.D F1, F2, F3
DIV.D    F4, F5, F6
MUL.D F7, F7, F8
ADD.D  F9, F10, F11
SUB      R1, R2, R3

Αν στην περίπτωση αυτή είχαμε τόσα rs entries όσα και fus, δηλαδή 2 
entries για fp mul/div, τότε οι εντολές ADD.D, SUB δε θα μπορούσαν να 
γίνουν issued καθώς το σύστημα θα έκανε stall στη 2η MUL.D (το issue 
είναι πάντα in-order).

K.
> το ότι τα rs δεν έχουνε 1-1 αντιστοιχία με τα fu ισχύει πάντα, ή έχει
> κάποιο πλεονέκτημα το να έχουμε 1 rs με περισσότερα entries για πολλαπλά
> fu του ίδιου
> τύπου, πχ fp mul/div,(και από το rs να κάνουμε "dispatch" τις εντολές σε
> ένα από τα ελεύθερα fu), αντί να έχουμε 1 rs με λιγότερα entries για
> κάθε ξεχωριστό fu(του ίδιου τύπου);
>
> O/H Konstantinos Nikas έγραψε:
>   
>> Καλησπέρα,
>>
>> τα reservation station entries δεν έχουν 1 προς 1 αντιστοιχία με τα
>> functional units. Στο παράδειγμα που δίνεις λοιπόν, πράγματι στο
>> reservation station θα μπορούν να υπάρχουν μέχρι λ εντολές (θα έχουν
>> γίνει issued) αλλά θα εκτελούνται οι κ πρώτες. Όχι οι πρώτες κ που
>> γίναν issued αλλά οι πρώτες κ που δεν είχαν (ή επίλυσαν τα) dependencies.
>>
>> Στην άσκηση, τα 4 entries αναφέρονται συνολικά στις 2 μονάδες. Δηλαδή
>> ο επεξεργαστής μπορεί να κάνει issue μέχρι 4 εντολές FP mul/div αλλά
>> από αυτές μόνο 2 θα εκτελούνται (αφού τα units δεν είναι pipelined).
>>
>>
>> Τέλος, στο διάγραμμα χρονισμού θα συμπεριλάβεται όλες τις εντολές (και
>> τις integer δηλαδή).
>>
>> Κ.
>>     
>>> Έχω μία απόρία στα reservation stations που σχετίζεται με αυτή του
>>> συναδέλφου γι'αυτό την ποστάρω ως απάντηση.
>>>
>>> Έστω ότι έχουμε κ μονάδες FP mul/div, οι οποίες έχουν λ entries στο
>>> reservation station, με κ<λ. Αυτό σημαίνει ότι μπορούν μέχρι και λ
>>> εντολές  FP mul/div να έχουν καταλάβει από μία entry στο reservation
>>> station (με την προϋπόθεση ότι δεν υπάρχουν hazards/dependences),
>>> αλλά το πολύ κ να βρίσκονται παράλληλα στο στάδιο execution;
>>>
>>> Ευχαριστώ
>>> ------------------------------------------------------------------------
>>> Για τον τύπο μονάδας FP mul/div δίνεται "Αριθμός μονάδων=2" και
>>> "Αριθμός Entries στο αντίστοιχο Res.Station=4". Αυτό σημαίνει πως
>>> έχουμε ένα Reservation Station με 4 entries για *κάθε μία* ή και για
>>> τις δύο μονάδες _/μαζί/_;
>>>
>>>
>>>
>>> Επίσης, αφού στην αρχιτεκτονική μας έχουμε εκτέλεση Tomasulo και
>>> Integer Functional Unit και αναγράφεται πως  "η bnez και η daddi
>>> εκτελούνται στη μονάδα αυτή" θα συμπεριλάβουμε κανονικά στο διάγραμμα
>>> χρονισμού μας τις εντολές αυτές, σωστά;
>>>
>>>
>>>
>>> Ευχαριστώ
>>>
>>>
>>>   
>>>       
>> _______________________________________________
>> Advcomparch mailing list
>> Advcomparch at lists.cslab.ece.ntua.gr
>> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
>>     
>
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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-7721532
e-mail: knikas at cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas




More information about the Advcomparch mailing list