Γιώργος ηµητρίου Μάθηµα 9 ο Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων
Εξαρτήσεις Εντολών Κίνδυνοι Κίνδυνοι από δοµικές εξαρτήσεις n Εξαρτήσεις υλικού Κίνδυνοι από εξαρτήσεις δεδοµένων n Εξαρτήσεις εγγραφής δεδοµένων, όπως: add $7, $10, $26 sub $9, $7, $8 Κίνδυνοι από διαδικασιακές εξαρτήσεις n Εξαρτήσεις ροής προγράµµατος, όπως: beq $2, $8, Label add $7, $10, $26
οµικοί Κίνδυνοι Όπωςήδηείδαµε: nστηµνήµη,µεταξύτωνφάσεωνφ1,φ4 nστηναλμ,στηφάσηφ3εντολώνάλµατος µε συνθήκη n Αντιµετωπίστηκαν µε αντιγραφή υλικού Επιπλέον: n Σε µονάδες πράξεων διάρκειας µεγαλύτερης από έναν κύκλο µηχανής, όπως: mult $4,$6 mult $10,$8
Εξαρτήσεις εδοµένων Ανάγνωση µετά από εγγραφή (ΑΜΕ) nφ5 Φ2 Εγγραφή µετά από εγγραφή (ΕΜΕ) nφ5 Φ5 Εγγραφή µετά από ανάγνωση (ΕΜΑ) nφ2 Φ5 Οι ΕΜΕ και ΕΜΑ δε µας απασχολούν στη ΜΕ που µελετάµε (γιατί;)
Κίνδυνοι Εξαρτήσεων ΑΜΕ Παραδείγµατα: add $8, $12, $7 lw $10, -100($8) sub $5, $12, $10 Φ1 Φ2 Φ3 Φ4 Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων
Πάγωµα Εξαρτηµένων Εντολών Παραδείγµατα: add $8, $12, $7 lw $10, -100($8) Φ1 Φ2 Χ Φ2 Χ Φ2 Φ3 Φ4 Φ5 sub $5, $12, $10 Φ1 Φ2 Χ Φ2 Χ Φ2 Φ3 Φ4 Φ5 Γιατί όχι πάγωµα 3 κύκλων;
Τεχνική Παροχέτευσης Προωθούµε τα δεδοµένα όπου και όταν χρειάζονται Παραδείγµατα: add $8, $12, $7 lw $10, -100($8) sub $5, $12, $10 Φ1 Φ2 Χ Φ2 Φ3 Φ4 Φ5
Υλοποίηση Παροχέτευσης Η φάση αποκωδικοποίησης ανιχνεύει τους κινδύνους εξαρτήσεων δεδοµένων και παράγει κατάλληλα σήµατα ελέγχου Μετά τη φάση εκτέλεσης ή προσπέλασης µνήµης τα δεδοµένα προωθούνται στις εισόδους της ΑΛΜ Επιλογή µε κατάλληλους πολυπλέκτες Αν πρέπει να περιµένουµε τη µνήµη, παγώνουµε την εξαρτηµένη εντολή
Αποφυγή Παροχέτευσης Ο µεταγλωττιστής µπορεί να εισάγει εντολές µεταξύ παραγωγής και χρήσης κάποιου δεδοµένου Τέτοιες εντολές δεν είναι πάντα διαθέσιµες Οι εξαρτήσεις από δεδοµένα είναι πολύ συχνές για να τις αφήνουµε στο µεταγλωττιστή...
ιαδικασιακοίκίνδυνοι Εξαρτήσεις εντολών µετά από άλµα: nφ2 Φ1 είτε Φ3 Φ1 Παραδείγµατα: j 0x1a402c0 add $7, $5, $12 beq $3, $6, -2044 lw $16, 4($9) υποθέτοντας άµεσα άλµατα στη Φ2 υποθέτοντας άλµατα διακλαδώσεων στη Φ3
Πάγωµα Επόµενης Εντολής Αν γνωρίζουµε έγκαιρα ότι έχουµε άλµα! Παραδείγµατα: j 0x10a402c0 επόµενη εντολή εντολή προορισµού beq $3, $6, -2044 επόµενη εντολή εντολή προορισµού Φ1 Χ Προσκοµίζουµε την εντολή που πρέπει! Φ1 Χ Φ1 Χ
Ακύρωση Επόµενης Εντολής Ανδενξέρουµεέγκαιραότιέχουµεάλµα, η επόµενη εντολή δε µπορεί να παγώσει: j 0x1a402c0 επόµενη εντολή Φ1 - - - - εντολή προορισµού beq $3, $6, -2044 Παγώνουµε µετά την αποκωδικοποίηση! επόµενη εντολή Φ1 Φ1 Χ - - - - εντολή προορισµού (πάγωµα!) (ακύρωση!) (ακύρωση!)
Εκτέλεση Αλµάτων ιακλαδώσεων στη Φ4 Μοντέλο Patterson-Hennessy: Υπολογισµός προορισµού και αποτίµηση συνθήκης στη Φ3, αλλά άλµα στη Φ4 Παράδειγµα: beq $3, $6, -2044 επόµενη εντολή Φ1 Φ1 Χ Φ1 Χ - - - - εντολή προορισµού (πάγωµα!) Απώλεια 3 κύκλων σε εκτέλεση άλµατος (ακύρωση!)
Εκτέλεση Αλµάτων στη Φ2 Υπολογισµός προορισµού και αποτίµηση συνθήκης µέσα στη Φ2 Παραδείγµατα: jr $18 επόµενη εντολή Φ1 - - - - εντολή προορισµού beq $3, $6, -2044 επόµενη εντολή Φ1 - - - - εντολή προορισµού (ακύρωση!) (ακύρωση!)
Καθυστερηµένα Άλµατα Το άλµα εκτελείται µετά την επόµενη εντολή Η επόµενη εντολή δεν είναι διαδικασιακά εξαρτηµένη από το άλµα Παραδείγµατα: j 0x1a402c0 add $7, $5, $12 εντολή προορισµού beq $3, $6, -2044 lw $16, 4($9) εντολή προορισµού
Παραµένοντα Προβλήµατα Οσυνδυασµός: nεκτέλεσηστηφάσηφ2και n Καθυστερηµένο άλµα λύνει το πρόβληµα; Προβλήµατα από εξαρτήσεις από δεδο- µένασεάλµαταµεήχωρίςσυνθήκη Για άλµατα µε συνθήκη (διακλαδώσεις), δεν είναι πάντα δυνατή η αποτίµηση της συνθήκης στη φάση Φ2
Πρόβλεψη ιακλαδώσεων Πρόβλεψη στην αποτίµηση της συνθήκης n Εκτέλεσης / Μη εκτέλεσης άλµατος n Σωστή πρόβλεψη (µη εκτέλεσης άλµατος): beq $3, $6, -2044 n Λάθος πρόβλεψη (µε εκτέλεση στη Φ2): beq $3, $6, -2044 lw $16, 4($9) εντολή που ακολουθεί τη διακλάδωση (όχι καθυστέρηση) lw $16, 4($9) Φ1 - - - - sw $10, 28($5) εντολή στη διεύθυνση προορισµού n Αντίστοιχα για πρόβλεψη εκτέλεσης άλµατος
Λανθασµένη Πρόβλεψη Επαναφορά στην προηγούµενη κατάσταση: n ε µπορεί να αλλάζει η κατάσταση που φαίνεται εξωτερικά, άρα ε γράφονται καταχωρητές γενικού σκοπού ε γράφεται µνήµη n πριν αποτιµηθεί η συνθήκη άλµατος Κόστος λάθους nανάλογα µε την απόσταση από τη Φ1 της φάσης αποτίµησης της συνθήκης
Στατική Πρόβλεψη Η πρόβλεψη κάθε διακλάδωσης δεν αλλάζει µε την εκτέλεση του κώδικα Πρόβλεψη ανάλογα µε την εντολή n Γίνεται από το σχεδιαστή του συστήµατος Πρόβλεψη ανάλογα µε τη µετατόπιση n Καλή για βρόχους (αρνητική µετατόπιση) Πρόβλεψη που ορίζει ο µεταγλωττιστής nανάλογα µε τα στοιχεία που έχει ο µεταγλωττιστής για βελτιστοποίηση του κώδικα
υναµική Πρόβλεψη Η πρόβλεψη αλλάζει κατά τη διάρκεια εκτέλεσης του κώδικα, ανάλογα µε τη συµπεριφορά της διακλάδωσης Πρόβλεψη στην αποτίµηση της συνθήκης: n Κρατάµε τις τιµές που αποτιµήθηκαν Πρόβλεψη στον προορισµό της διακλάδωσης: n Κρατάµε τις διευθύνσεις προορισµού
υναµική Πρόβλεψη Πρόβλεψη συνθήκης και προορισµού n Σωστή πρόβλεψη (εκτέλεσης άλµατος): beq $3, $6, -2044 sw $10, 28($5) n Λάθος πρόβλεψη (µε εκτέλεση στη Φ3): beq $3, $6, -2044 εντολή στη διεύθυνση προορισµού (όχι καθυστέρηση) sw $10, 28($5) Φ1 Φ2 - - - add $8, $25, $12 Φ1 - - - - lw $16, 4($9) εντολή που ακολουθεί τη διακλάδωση n Όµοια για πρόβλεψη µη εκτέλεσης άλµατος
Υλοποίηση υναµικής Πρόβλεψης Αποθηκεύουµε τη συµπεριφορά κάθε διακλάδωσης: n Πίνακας ιστορικού διακλαδώσεων n Πίνακας διευθύνσεων προορισµού διακλαδώσεων Η φάση ανάκλησης συνοδεύεται από έλεγχο διακλάδωσης και πρόβλεψη n Σε διακλάδωση ακολουθούµε την πρόβλεψη που δίνει κατάλληλος αλγόριθµος Η φάση εκτέλεσης ενηµερώνει την αποθηκευµένη συµπεριφορά
Αλγόριθµοι Πρόβλεψης Κλασικός αλγόριθµος µε 2 bits ιστορίας 11 10 01 00 Πρόβλεψη εναλλαγών; Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων
Αποθήκευση Συµπεριφοράς ιακλαδώσεων Περιορισµοί στο χώρο αποθήκευσης: ύο πίνακες έναντι ενός ενιαίου n Λίγα bits στον πίνακα ιστορικού ανά διακλάδωση n Μία διεύθυνση στον πίνακα διευθύνσεων προορισµού ανά διακλάδωση Πολυπλέκουµε πολλές διακλαδώσεις µαζί n Μικρός αριθµός ενεργών διακλαδώσεων
Πρόβλεψη ιακλαδώσεων ΜΕ µε Επικάλυψη Εντολών Αρχιτεκτονική MIPS PC Μ Μ & Αποθηκευµένο Πρόγραµµα ιακοπή ΑΥΞ flush wrdis F pc ir Ανίχνευση Κινδύνων Μονάδα Ελέγχου Φάκελος Καταχωρητών Γενικού Σκοπού CZ Παροχέτευση M1 c1 c2 c3 D pc a b ir fwd M4 ΑΘΡ M5 M2 ΑΛΜ Z c2 c3 E c b Μ Μ & Αποθηκευµένα εδοµένα c3 M dr c M3