Καλησπέρα,
στην σελίδα 71 της αγγλικής 4ης έκδοσης γράφει:
A hazard is created whenever there is a dependence between instructions, and they
are close enough that the overlap during execution would change the order of access to
the operand involved in the dependence.
Στην άσκηση ζητούνται τα hazards που εμφανίζονται και πώς αυτά αντιμετωπίζονται.
Στην περσινή λύση λοιπόν, μήπως τα 2 WAW hazards που αναγράφονται στους κύκλους
6 και 13, είναι στην πραγματικότητα απλώς output dependencies?
(Οπότε, και το αντίστοιχο register renaming γίνεται όχι για αυτά, αλλά για το
ενδεχόμενο να έρθει μία τρίτη εντολή, που θα έγραφε τον ίδιο καταχωρητή νωρίτερα μιας εκ των δύο - π.χ. η L.D που γίνεται issued στον κύκλο 14 - . Επειδή όμως, ο αλγόριθμος δεν
μπορεί να ξέρει πάντα τι θα έρθει στο μέλλον κάνει rename κάθε destination register που
υπάρχει στο πρόγραμμα.)
___________________________________________________________
Χρησιμοποιείτε Yahoo!;
Βαρεθήκατε τα ενοχλητικά μηνύματα (spam); Το Yahoo! Mail
διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών
μηνυμάτων http://login.yahoo.com/config/mail?.intl=gr
Για τον τύπο μονάδας FP mul/div δίνεται "Αριθμός μονάδων=2" και "Αριθμός
Entries στο αντίστοιχο Res.Station=4". Αυτό σημαίνει πως έχουμε ένα
Reservation Station με 4 entries για *κάθε μία* ή και για τις δύο
μονάδες _/μαζί/_;
Επίσης, αφού στην αρχιτεκτονική μας έχουμε εκτέλεση Tomasulo και Integer
Functional Unit και αναγράφεται πως "η bnez και η daddi εκτελούνται στη
μονάδα αυτή" θα συμπεριλάβουμε κανονικά στο διάγραμμα χρονισμού μας τις
εντολές αυτές, σωστά;
Ευχαριστώ
----------------------------
Γιάννης Τσιούρης
<el06193(a)mail.ntua.gr>
Η διευκρίνιση ήταν σαφέστατη, ευχαριστώ.
Σε εντελώς διαδικαστικό επίπεδο (άσκηση, εξετάσεις), για τον απλό Tomasulo, κρατάω ότι το stall αυτό του write result μέχρι να γίνει resolve η branch, θα θεωρηθεί εξίσου σωστό αν όχι σωστότερο από την λύση στο pdf.
___________________________________________________________
Χρησιμοποιείτε Yahoo!;
Βαρεθήκατε τα ενοχλητικά μηνύματα (spam); Το Yahoo! Mail
διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών
μηνυμάτων http://login.yahoo.com/config/mail?.intl=gr
Καλημέρα,
στην διαφάνεια 8/46 του dynamic scheduling με speculation λέει:
...κατά το ooo execution εκτελούμε εντολές οι οποίες εξαρτώνται από το αποτέλεσμα της εντολής διακλάδωσης. Αν η πρόβλεψη δεν επαληθευθεί, θα πρέπει να κάνουμε rollback στο σημείο όπου κάναμε την πρόβλεψη, διότι οι εντολές στο λανθασμένο predicted path έχουν ήδη εκτελεστεί...Λύση: in-order completion
(κατόπιν εισάγεται η έννοια του ROB κτλ)
Το ερώτημα μου είναι το εξής:
Με δεδομένο ότι ΔΕΝ έχουμε speculation, ROB, commit στάδιο κτλ (όπως δηλ στο πρώτο ερώτημα της άσκησης) δεν είμαστε υποχρεωμένοι να ΜΗΝ προχωρήσουμε σε execution εντολής που ανήκει σε επόμενο basic block? Δηλ, δεν πρέπει πρώτα να γίνει resolve η branch εντολή και μετά να γίνει execute η επόμενη εντολή? Ή τουλάχιστον να μην κάνει η επόμενη εντολή write result προτού επαληθευθεί ότι το branch prediction ήταν το σωστό.
(βλ. σελ 105 της 4ης έκδοσης του βιβλίου στα αγγλικά)
Η ερώτηση γίνεται με αφορμή τον κύκλο 23 της λύσης της περσινής άσκησης, όπου παραβιάζεται το παραπάνω. Εκτός κι αν θεωρείται δεκτή μία ενδεικτική υλοποίηση που θα είχε πρόβλημα σε λάθος prediction.
Αν παρανόησα κάτι, ελπίζω να μην μπέρδεψα κανέναν.
___________________________________________________________
Χρησιμοποιείτε Yahoo!;
Βαρεθήκατε τα ενοχλητικά μηνύματα (spam); Το Yahoo! Mail
διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών
μηνυμάτων http://login.yahoo.com/config/mail?.intl=gr
Γεια σας!Έχω μία απορία σχετικά με το χρονό στον οποίο μία εντολή μπορεί να κάνει issue.Έστω ότι έχουμε μία εντολή x, από την οποία εξαρτάται μία εντολή y. Υποθέτουμε επίσης ότι η εντολή x δεν μπορεί να γίνει issue γιατί δεν υπάρχουν ελεύθερα entries στο reservation station, ενώ η y έχει διαθέσιμα entries. Όταν έρθει η σειρά της y να γίνει issue δεν μπορεί, επειδή δεν έχει γίνει ακόμα issue η εντολή x και στην αντίστοιχη δομή του αλγορίθμου Tomasulo για την y δεν μπορούν να γραφούν ακόμα τα σωστά ορίσματα.Σας παρακαλώ, πείτε μου αν έχω καταλάβει σωστά.Σας ευχαριστώ
πολύ!
___________________________________________________________
Χρησιμοποιείτε Yahoo!;
Βαρεθήκατε τα ενοχλητικά μηνύματα (spam); Το Yahoo! Mail
διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών
μηνυμάτων http://login.yahoo.com/config/mail?.intl=gr
Καλημέρα,
σε περίπτωση που δεν το έχετε ήδη κάνει, μπορείτε να προμηθευτείτε το
βιβλίο του μαθήματος από τις εκδόσεις ΤΖΙΟΛΑ. Η διεύθυνση είναι :
**Ένωση Εκδοτών Βιβλίου Θεσσαλονίκης Ε.Π.Ε., Πεσμαζόγλου 5, Στοά του
Βιβλίου, Αρσάκειο Μέγαρο, Κατάστημα 18.
Μπορείτε να το παραλαμβάνετε Δευτέρα-Παρασκευή 10:00-14:00.
Κ.
--
Dr. Konstantinos Nikas
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens
Tel: +30-210-7721532
e-mail: knikas(a)cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas
Καλησπέρα,
στο τελευταίο μάθημα συμφωνήθηκαν αλλαγές στις ημερομηνίες παράδοσης των
ασκήσεων. Πιο συγκεκριμένα :
-- Η 3η άσκηση θα παραδοθεί στις *24/06/2009*
-- Η 4η άσκηση θα παραδοθεί στις *24/07/2009*, μετά δηλαδή από την
εξέταση του μαθήματος.
Το site και το wiki έχουν ενημερωθεί. Παρακαλώ ενημερώστε και τυχόν
συναδέλφους σας που δεν είναι μέλη της λίστας.
Κ.
--
Dr. Konstantinos Nikas
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens
Tel: +30-210-7721532
e-mail: knikas(a)cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas
Συγγνώμη αν η ερώτηση είναι προφανής, ή αν θα έπρεπε ήδη να το γνωρίζω.
Στην άσκηση το βάθος του pipeline είναι 5; Δηλαδή το πολύ 5 εντολές μπορούν
να βρίσκονται ταυτόχρονα σε εξέλιξη (δηλαδή σε κάποιο από το στάδια IF, ID,
IS κτλ);
Ευχαριστώ