ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ Γιώργος Δημητρίου Μάθημα 7 ο ΠΜΣ Εφαρμοσμένη Πληροφορική
ΔΙΑΔΟΧΙΚΕΣ ΔΙΑΔΙΚΑΣΙΕΣ Σειριακή εκτέλεση, χωρίς καμία επικάλυψη: 50ns 100ns Δ1 Χρόνος Δ2 Δ3 Συνολικός χρόνος ολοκλήρωσης τριών όμοιων διαδικασιών: 150ns Ρυθμός ολοκλήρωσης (διεκπεραιωτική ικανότητα): 1 διαδικασία ανά 50ns
ΧΡΟΝΙΚΗ ΕΠΙΚΑΛΥΨΗ ΔΙΑΔΙΚΑΣΙΩΝ Πλήρης επικάλυψη: Δ1 50ns Χρόνος Δ2 Δ3 Μερική επικάλυψη: Δ1 Δ2 Δ3
ΤΟ ΚΛΑΣΙΚΟ ΠΑΡΑΔΕΙΓΜΑ
ΜΕΡΙΚΗ ΕΠΙΚΑΛΥΨΗ ΕΝΤΟΛΩΝ Διαχωρισμός σε ισόχρονες φάσεις Ομοιόμορφη επικάλυψη 50ns Ε 55ns Ε1 Χρόνος Ε2 Ε3 Συνολικός χρόνος: 77ns Ρυθμός ολοκλήρωσης: 1 εντολή ανά 11ns
ΕΠΙΤΥΧΗΣ ΕΠΙΚΑΛΥΨΗ Όταν ολοκληρώνουμε διαδοχικές εντολές με το μέγιστο δυνατό ρυθμό Ουσιαστικά δεν επιτυγχάνεται ποτέ Ε Ε1 50ns 55ns Χρόνος Ε2 Φ1 Φ2 Χ Φ2 Φ3 Φ4 Φ5 Ε3 Φ1 Χ Φ1 Φ2 Φ3 Φ4 Φ5 Οι Ε2, Ε3 παγώνουν για μία φάση
ΥΛΟΠΟΙΗΣΗ ΜΕΡΙΚΗΣ ΕΠΙΚΑΛΥΨΗΣ ΕΝΤΟΛΩΝ Διαχωρισμός φάσεων με μία φάση ανά κύκλο μηχανής Όπως έχουμε δει σε προηγούμενο μάθημα η διάρκεια κύκλου μηχανής καθορίζεται από τη μακρύτερη φάση Μερική επικάλυψη, αλλά: Ανεξαρτητοποιούμε κάθε φάση από τις προηγούμενες με χρήση ενδιάμεσων καταχωρητών τι θα γινόταν αν λαμβάναμε τη λέξη εντολής από τον IR για όλη τη διάρκεια της εντολής;
ΑΛΜ ΑΥΞ ΜΕΔ ΜΕ ΕΠΙΚΑΛΥΨΗ ΕΝΤΟΛΩΝ Αρχιτεκτονική MIPS Διακοπή Μ1 ΑΘΡ PC Μονάδα Ελέγχου c1 c2 c3 c2 c3 c3 F D E M ΜΔΜ & Αποθηκευμένο Πρόγραμμα pc ir Φάκελος Καταχωρητών Γενικού Σκοπού pc a b ir Μ2 Ζ c b ΜΔΜ & Αποθηκευμένα Δεδομένα dr c Μ3 όπου Μ1 = PCSrc, M2 = ALUSrcB και M3 = MemtoReg
ΑΝΑΚΛΗΣΗ ΕΝΤΟΛΗΣ (Φ1) Γιατί θέλουμε σταθερό μέγεθος εντολής; Φ11 Φ12 Φ13 Φ2 Φ3 Φ4 Φ5 Φ1 Χ Φ1 Χ Μεταβλητό μέγεθος εντολής: Μακρύτερος χρόνος εκτέλεσης Πολύπλοκος έλεγχος
ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗ ΕΝΤΟΛΗΣ (Φ2) Ανάγνωση καταχωρητών Οι διευθύνσεις ανάγνωσης βρίσκονται από τον F Υπολογισμός διεύθυνσης προορισμού άλματος Μπορεί να γίνει τώρα; Μπορεί να γίνει στην ΑΛΜ; Παραγωγή σημάτων ελέγχου Όλα τα σήματα παράγονται σε έναν κύκλο και μεταφέρονται προς τους επόμενους
ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΗΣ (Φ3) Εκτέλεση εντολών ΑΛΜ Πού βρίσκουμε τα άμεσα τελούμενα; Υπολογισμός τελικής διεύθυνσης για εντολές προσπέλασης μνήμης Πού βρίσκουμε τη σταθερά μετατόπισης; Εκτέλεση αλμάτων Πού βρίσκουμε τον PC; Μήπως είναι πολύ αργά για άλματα; Τι μπορούμε να κάνουμε;
ΠΡΟΣΠΕΛΑΣΗ ΜΝΗΜΗΣ (Φ4) Κοινή κρυφή μνήμη εντολών/δεδομένων: sw add lw Φ1 Χ ori Κρυφή μνήμη διπλής προσπέλασης Διαχωρισμός κρυφής μνήμης
ΠΡΟΒΛΗΜΑ ΑΡΓΗΣ ΜΝΗΜΗΣ Χρήση πιο γρήγορης κρυφής μνήμης Διάσπαση προσπέλασης σε μικρότερες φάσεις του ενός κύκλου μηχανής Επικαλυπτόμενες φάσεις! Πολύπλοκος έλεγχος Η ενσωματωμένη κρυφή μνήμη της ΚΜΕ του MIPS έχει χρόνο προσπέλασης 1 κύκλο μηχανής
ΑΠΟΘΗΚΕΥΣΗ ΑΠΟΤΕΛΕΣΜΑΤΟΣ (Φ5) Πρόβλημα με τη φάση αποκωδικοποίησης (Φ2) Ταυτόχρονη προσπέλαση για εγγραφή (Φ5) και για ανάγνωση (Φ2) Σύντομη προσπέλαση στο φάκελο καταχωρητών: Εγγραφή στο πρώτο μισό του κύκλου μηχανής Ανάγνωση στο δεύτερο μισό του κύκλου μηχανής
ΧΡΟΝΙΣΜΟΣ ΦΑΣΕΩΝ Φ1 Φ2 Φ3 Φ4 Φ5 Φ1 Φ2 Φ3 Φ4 Φ5 Φ1 Φ2 Φ3 Φ4 Φ5 Φ1 Φ2 Φ3 Φ4 Φ5 Εγγραφές καταχωρητών επικάλυψης στην άνοδο του παλμού Εγγραφές φακέλου καταχωρητών στην πτώση του παλμού
ΚΙΝΔΥΝΟΙ ΕΠΙΚΑΛΥΨΗΣ Δομικοί κίνδυνοι (structural hazards) Ανάγκη ταυτόχρονης χρήσης υλικού Κίνδυνοι από εξαρτήσεις δεδομένων (data hazards) Μια εντολή χρησιμοποιεί το αποτέλεσμα κάποιας προηγούμενης, όπως: add $7, $10, $26 sub $9, $7, $8 Κίνδυνοι από διαδικασιακές εξαρτήσεις ή εξαρτήσεις ελέγχου (control hazards) Υποθετική εκτέλεση εντολών κάτω από άλματα, όπως: beq $2, $8, Label add $7, $10, $26
ΔΟΜΙΚΟΙ ΚΙΝΔΥΝΟΙ Όπως ήδη είδαμε: Στη μνήμη, μεταξύ των φάσεων Φ1, Φ4 Στην ΑΛΜ, στη φάση Φ3 εντολών άλματος με συνθήκη Αντιμετωπίστηκαν με αντιγραφή υλικού Επιπλέον: Σε μονάδες πράξεων διάρκειας μεγαλύτερης από έναν κύκλο μηχανής, όπως: mult $4,$6 mult $10,$8
ΕΞΑΡΤΗΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανάγνωση μετά από εγγραφή (ΑΜΕ) Φ5 Φ2 Εγγραφή μετά από εγγραφή (ΕΜΕ) Φ5 Φ5 Εγγραφή μετά από ανάγνωση (ΕΜΑ) Φ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
ΥΛΟΠΟΙΗΣΗ ΠΑΡΟΧΕΤΕΥΣΗΣ Η φάση αποκωδικοποίησης ανιχνεύει τους κινδύνους εξαρτήσεων δεδομένων και παράγει κατάλληλα σήματα ελέγχου Μετά τη φάση εκτέλεσης ή προσπέλασης μνήμης τα δεδομένα προωθούνται στις εισόδους της ΑΛΜ Επιλογή με κατάλληλους πολυπλέκτες Αν πρέπει να περιμένουμε τη μνήμη, παγώνουμε την εξαρτημένη εντολή
ΔΙΑΔΙΚΑΣΙΑΚΟΙ ΚΙΝΔΥΝΟΙ Εξαρτήσεις εντολών μετά από άλμα: Φ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 Μοντέλο MIPS: Τροποποίηση υλικού για υπολογισμό προορισμού, αποτίμηση συνθήκης και άλμα στη Φ2 Παράδειγμα: beq $3, $6, -2044 επόμενη εντολή Φ1 - - - - (ακύρωση!) εντολή προορισμού Απώλεια 1 κύκλου σε εκτέλεση άλματος Αλλά μπορούμε να έχουμε καθυστερημένο άλμα και να μην ακυρώνουμε την επόμενη εντολή!
ΠΡΟΒΛΕΨΗ ΔΙΑΚΛΑΔΩΣΕΩΝ Πρόβλεψη στην αποτίμηση της συνθήκης Εκτέλεσης / Μη εκτέλεσης άλματος Σωστή πρόβλεψη (μη εκτέλεσης άλματος): beq $3, $6, -2044 lw $16, 4($9) εντολή που ακολουθεί τη διακλάδωση Λάθος πρόβλεψη (με εκτέλεση στη Φ2): beq $3, $6, -2044 lw $16, 4($9) Φ1 - - - - sw $10, 28($5) εντολή στη διεύθυνση προορισμού Αντίστοιχα για πρόβλεψη εκτέλεσης άλματος
ΛΑΝΘΑΣΜΕΝΗ ΠΡΟΒΛΕΨΗ Επαναφορά στην προηγούμενη κατάσταση: Δε μπορεί να αλλάζει η κατάσταση που φαίνεται εξωτερικά, άρα Δε γράφονται καταχωρητές γενικού σκοπού Δε γράφεται μνήμη πριν αποτιμηθεί η συνθήκη άλματος Κόστος λάθους Ανάλογα με την απόσταση από τη Φ1 της φάσης αποτίμησης της συνθήκης
ΣΤΑΤΙΚΗ ΠΡΟΒΛΕΨΗ Η πρόβλεψη κάθε διακλάδωσης δεν αλλάζει με την εκτέλεση του κώδικα Πρόβλεψη ανάλογα με την εντολή Γίνεται από το σχεδιαστή του συστήματος Πρόβλεψη ανάλογα με τη μετατόπιση Καλή για βρόχους (αρνητική μετατόπιση) Πρόβλεψη που ορίζει ο μεταγλωττιστής Ανάλογα με τα στοιχεία που έχει ο μεταγλωττιστής για βελτιστοποίηση του κώδικα
ΔΥΝΑΜΙΚΗ ΠΡΟΒΛΕΨΗ Η πρόβλεψη αλλάζει κατά τη διάρκεια εκτέλεσης του κώδικα, ανάλογα με τη συμπεριφορά της διακλάδωσης Πρόβλεψη στην αποτίμηση της συνθήκης: Κρατάμε τις τιμές που αποτιμήθηκαν Πρόβλεψη στον προορισμό της διακλάδωσης: Κρατάμε τις διευθύνσεις προορισμού
ΔΥΝΑΜΙΚΗ ΠΡΟΒΛΕΨΗ Πρόβλεψη συνθήκης και προορισμού Σωστή πρόβλεψη (εκτέλεσης άλματος): beq $3, $6, -2044 sw $10, 28($5) εντολή στη διεύθυνση προορισμού Λάθος πρόβλεψη (με εκτέλεση στη Φ3): beq $3, $6, -2044 sw $10, 28($5) Φ1 Φ2 - - - add $8, $25, $12 Φ1 - - - - lw $16, 4($9) εντολή που ακολουθεί τη διακλάδωση Όμοια για πρόβλεψη μη εκτέλεσης άλματος
ΥΛΟΠΟΙΗΣΗ ΔΥΝΑΜΙΚΗΣ ΠΡΟΒΛΕΨΗΣ Αποθηκεύουμε τη συμπεριφορά κάθε διακλάδωσης: Πίνακας ιστορικού διακλαδώσεων Πίνακας διευθύνσεων προορισμού διακλαδώσεων Η φάση ανάκλησης συνοδεύεται από έλεγχο διακλάδωσης και πρόβλεψη Σε διακλάδωση ακολουθούμε την πρόβλεψη που δίνει κατάλληλος αλγόριθμος Η φάση εκτέλεσης ενημερώνει την αποθηκευμένη συμπεριφορά
ΑΛΓΟΡΙΘΜΟΙ ΠΡΟΒΛΕΨΗΣ Κλασικός αλγόριθμος με 2 bits ιστορίας 11 10 01 00
ΑΛΜ Πρόβλεψη Διακλαδώσεων ΑΥΞ ΜΕΔ ΜΕ ΕΠΙΚΑΛΥΨΗ ΕΝΤΟΛΩΝ Αρχιτεκτονική MIPS PC wrdis Ανίχνευση Κινδύνων Μονάδα Ελέγχου CZ M1 c1 c2 c3 ΑΘΡ c2 c3 c3 F pc D pc E M ΜΔΜ & Αποθηκευμένο Πρόγραμμα ir Φάκελος Καταχωρητών Γενικού Σκοπού a b M4 M5 M2 Z c ΜΔΜ & Αποθηκευμένα Δεδομένα dr c M3 flush ir fwd b Διακοπή Παροχέτευση