Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης

Σχετικά έγγραφα
ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

(Branch Prediction Mechanisms)

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Εντολές Διακλάδωσης. #bubbles ~= pipeline depth X loop length. Next fetch started. Fetch. I-cache. Fetch Buffer. Decode. Issue Buffer.

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Αρχιτεκτονική Υπολογιστών

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms)

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Δυναμική Θεώρηση και Συγχρονισμός των εξαρτήσεων των δεδομένων. Αλεξάνδρα Παπανδρεάδη (ΑΜ 362)

Αρχιτεκτονική Υπολογιστών

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Αρχιτεκτονική Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Εισαγωγή στην πληροφορική -4

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

Αρχιτεκτονική Υπολογιστών

ΠΛΕ- 027 Μικροεπεξεργαστές

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής

Παραλληλισμός σε επίπεδο εντολών

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Ατομική Διπλωματική Εργασία ΜΕΛΕΤΗ ΚΑΙ ΑΝΑΛΥΣΗ ΤΕΧΝΙΚΩΝ ΠΡΟΒΛΕΨΗΣ. Νικόλας Λαδάς ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αρχιτεκτονική υπολογιστών

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ. A. Μετατροπή αριθμών 1. Μετατροπή αριθμών από δεκαδικό σε δυαδικό σύστημα αρίθμησης

Υ- 01 Αρχιτεκτονική Υπολογιστών Ιεραρχία μνήμης: προχωρημένα θέματα

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Υπερβαθµωτή Οργάνωση Υπολογιστών

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

Αρχιτεκτονικές Συνόλου Εντολών

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Θέµατα Φεβρουαρίου

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

Κεντρική Μονάδα Επεξεργασίας

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-ΙI. Ενότητα 5 : Αρχιτεκτονική ΙΑ-32

Οργάνωση Υπολογιστών

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Branch Prediction. Βασίλης Παπαευσταθίου Ιάκωβος Μαυροειδής

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Branch Prediction. Ιάκωβος Μαυροειδής

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Τελική Εξέταση, Απαντήσεις/Λύσεις

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

Αρχιτεκτονική Υπολογιστών

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

ΕΠΛ 605: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018 ΕΡΓΑΣΙΑ 3 (13/10/2018) Ηµεροµηνία Παράδοσης δεύτερου µέρους: 18/10/2018

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Αρχιτεκτονική Υπολογιστών

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 9 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Αρχιτεκτονική Υπολογιστών

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Αρχιτεκτονική Υπολογιστών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Λειτουργικά Συστήματα (ΗΥ321)

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Αρχιτεκτονική υπολογιστών

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Εντολές γλώσσας μηχανής

Transcript:

Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης Αρης Ευθυμίου

Το σημερινό μάθημα Πρόβλεψη διακλάδωσης (branch predicfon) ποιο είναι το πρόβλημα και τι προκαλεί πρόβλεψη κατεύθυνσης πρόβλεψη στόχου 2

Τι προκαλεί το πρόβλημα; Πρέπει να εκτελεστεί η εντολή διακλάδωσης για να καθοριστεί η σωστή επόμενη διεύθυνση προγράμματος Με τη διοχέτευση, το αποτέλεσμα της εκτέλεσης καθυστερεί κάποιους κύκλους οι επόμενες θέσεις (slots) της διοχέτευσης μπορεί να μη κάνουν χρήσιμη δουλειά 3

Ποιό είναι το αποτέλεσμα; Οι διακλαδώσεις μειώνουν την επίδοση Διοχέτευση: άδειασμα «λάθος» εντολών πίσω από τη διακλάδωση χαμένες ευκαιρίες για εκτέλεση χρήσιμων εντολών Υπερβαθμωτοί επεξεργαστές: όπως παραπάνω x πλάτος του επεξεργαστή Υπερβαθμωτοί με εκτέλεση εκτός σειράς: χρειάζονται εκτέλεση εντολών πέρα από ένα basic block Εντάξει, είναι προβληματικές, αλλά πόσο συχνές είναι: πολύ! Κάθε 5-8 εντολές υπάρχει διακλάδωση 4

Πώς το λύνουμε; Το κύριο πρόβλημα είναι η διοχέτευση αλλά είναι απαραίτητη για καλή επίδοση με μικρό κόστος δεν συμφέρει να μήν έχουμε διοχέτευση Προβλέπουμε τι θα κάνει η διακλάδωση αλλά πρέπει να μπορούμε να αναιρέσουμε τις εντολές, αν προβλέψαμε λάθος έχουμε ήδη τέτοιους μηχανισμούς: reorder buffer 5

Πρόβλεψη Στατική πρόβλεψη (δεν αλλάζει κατά την εκτέλεση) Βοήθεια από τον compiler σε εντολή διακλάδωσης, 1 bit υπαινίσσεται την κατεύθυνση είτε στατικά από πληροφορία κατά τη μεταγλώτιση ή με profiling Παρατήρηση: διακλαδώσεις προς τα πίσω (προηγούμενες εντολές) υπονοούν βρόγχους πιθανότατα ακολουθούνται τις περισσότερες φορές Δυναμική πρόβλεψη προηγούμενη συμπεριφορά ισχυρή ένδειξη για το μέλλον οπως συχνά στους Η/Υ (και αλλού) προβλέπουμε το μέλλον παρατηρώντας το παρελθόν 6

Μέτρα επίδοσης πρόβλεψης MispredicFon rate: λάθος προβλέψεις / αριθμός εντολών διακλάδωσης MispredicFons per InstrucFon MPI, MPKI μπορεί να χρησιμοποιηθεί για υπολογισμό επίδοσης αν γνωρίζουμε CPI, ποινή λάθους πρόβλεψης,... MPI = 1%, IPC = 2, flush Penalty = 10 Cycles MPI = 1% Squash every 100 εντολές Αλλά IPC = 2, άρα κάθε 50 κύκλους, χάνουμε 10 Απώλεια επίδοσης: 20% 7

Ζητούμενη επίδοση Εστω διακλάδωση κάθε 5 εντολές MispredicFon rate = p H πιθανότητα να βρισκόμαστε στη σωστή διεύθυνση μετά από n εντολές (1- p) (n/5) Μετά από 100 εντολές:.90 = 12%.95 = 36%.98 = 66%.99 = 82% Χρειάζεται εξαιρετικά καλή πρόβλεψη 8

Ανατομία εντολών διακλάδωσης Διακλάδωση με συνθήκη ή χωρίς Με συνθήκη: άγνωστοι: κατεύθυνση και στόχος (direcfon, target) Χωρίς συνθήκη: άγνωστος: στόχος Ο στόχος καθορίζεται άμεσα ή έμμεσα (direct, indirect) Direct: υπολογισμός: PC+σταθερά Indirect: στόχος συνήθως τιμή κάποιου καταχωρητή 9

«Αλγόριθμος» Front end: 1. Αναγνώρισε εντολή διακλάδωσης Αν δεν είναι διακλάδωση, τέλος 2. Πρόβλεψε κατεύθυνση Αν δεν ακολουθείται (not taken), συνέχισε από την επόμενη εντολή στη μνήμη και εκτέλεσε με εικασία μέχρι να επιβεβαιωθεί η πρόβλεψη. (τέλος) 3. Πρόβλεψε στόχο 4. Προσκόμισε εντολές από το στόχο και εκτέλεσε με εικασία Back- end: 1. Επιβεβαίωσε την πρόβλεψη. Αν ήταν λάθος, αναίρεσε όλες τις εντολές και προσκόμισε από τη σωστή διεύθυνση 2. Ενημέρωσε τις πληροφορίες για την διακλάδωση 10

Χρονισμός υπολογισμών Πότε γνωρίζουμε ότι η εντολή είναι διακλάδωση; στο στάδιο αποκωδικοποίησης (πρός το τέλος) τουλάχιστον 1 κύκλο μετά τη προσκόμιση της εντολής Πότε υπολογίζουμε το στόχο; το νωρίτερο στο στάδιο decode, πριν γνωρίζουμε ότι η εντολή είναι διακλάδωση Πότε υπολογίζουμε το αποτέλεσμα; κατά την εκτέλεση 11

Χρονισμός 12

Αναγνώριση διακλάδωσης Στο στάδιο αποκωδικοποίησης είναι πολύ αργά ήδη προσκομίζουμε την επόμενη σε σύγχρονους υπολογιστές η προσκόμιση χρειάζεται >1 κύκλο για υπερβαθμωτούς: x πλάτος Μέχρι το τέλος της (1 ου κύκλου) προσκόμισης, πρέπει να έχουμε υπολογίσει το επόμενο PC (next PC, NPC) αλλά η εντολή δεν είναι ακόμη διαθέσιμη Το μόνο που έχουμε είναι η τιμή του PC οποιαδήποτε άλλη πληροφορία, πρέπει να προϋπάρχει π.χ. τα αποτελέσματα των προηγούμενων διακλαδώσεων 13

Last outcome predictor Ο απλούστερος predictor, κρατά το προηγούμενο αποτέλεσμα σε ένα πίνακα διευθυνσιοδοτημένο (κάπως) με τον PC 1 bit είναι αρκετό, λέγεται και 1- bit predictor Διαφορετικό από τον «0- bit predictor» που επιλέγει την κατεύθυνση της πρώτης εκτέλεσης της διακλάδωσης Πρόβλημα: αρκετά λάθη για προβλέψιμες διακλαδώσεις όπως στο τέλος ενός βρόγχου 14

SaturaFng counter, bimodal Ο 1- bit άλλαζε γνώμη πολύ γρήγορα Με 2 bit που λειτουργούν ως μετρητής, λύνεται το προηγούμενο πρόβλημα Υπάρχουν παραλλαγές αυτομάτων (γράφων μετάβασης κατάστασης) με παρόμοια αποτελέσματα ακρίβειας 15

Αποθήκευση προβλέψεων Ιδανικά ένας μεγάλος πίνακας με 2 bit για κάθε διεύθυνση εντολής προγράμματος τεράστιος! Οργάνωση σαν κρυφή μνήμη; μέρος του PC για διεύθυνση, το υπόλοιπο ως tag Πολύ ακριβό: 2 bit πληροφορίας και πολλά επιπλέον για το tag Οργάνωση σαν «Cache» χωρίς tags (PredicFon History Table PHT) Aliasing: πολλαπλές διακλαδώσεις αντιστοιχούν στην ίδια σειρά το ίδιο «αυτόματο» ConstrucFve aliasing: οι διακλαδώσεις έχουν ίδια συμπεριφορά DestrucFve aliasing: διαφορετική συμπεριφορά 16

Πρόβλεψη με μοτίβα Παράδειγμα: for i = 0 to N for j = 0 to 3 Η (τελική) διακλάδωση του βρόγχου j: 11101110111011101110 Μοτίβα: 111 - > 0, 110 - > 1 101 - > 1, 011 - > 1 100% ακρίβεια πρόβλεψης, εκμάθηση μετά από 4 φορές Χρειάζεται η διεύθυνση και τα αποτελέσματα των n τελευταίων εκτελέσεων της διακλάδωσης local history 17

CorrelaFng branch predictors Οι predictors που εξετάσαμε χρησιμοποιούν την πληροφορία από τις προηγούμενες εκτελέσεις της διακλάδωσης για να μαντέψουν το μέλλον (local informafon) Συχνά η ακρίβεια πρόβλεψης βελτιώνεται εξετάζοντας τη συμπεριφορά άλλων διακλαδώσεων 18

CorrelaFng branch predictors Πώς παίρνει υπόψη τις κατευθύνσεις των m προηγούμενων διακλαδώσεων (m- bit global history)? Σχηματίζει διεύθυνση για το PHT χρησιμοποιώντας m bits από τις προηγούμενες κατευθύνσεις (π.χ. 0- untaken, 1- taken) και, συχνά, κάποια bits από το PC. Η πληροφορία για τις m προηγούμενες διακλαδώσεις κρατιέται στον Global History Register (GHR) ένας απλός καταχωρητής ολίσθησης (shi - register) μήκους m bits το αποτέλεσμα κάθε διακλάδωσης καταγράφεται και το παλιότερο αποτέλεσμα χάνεται Ονομάζονται predictors 2 επιπέδων 1 ο χρησιμοποιεί τα μοτίβα, 2 ο την πληροφορία του «αυτόματου» GHR xor PC, ονομάζεται gshare predictor 19

2- level predictors Global- global (GAg) Global BHR Prediction Set- global (PAg) PC BHR BHR BHR BHR Prediction 20

2- level predictors Global- set (GAp) Set- set (PAp) 21

2- level predictors 22

Ενημέρωση πληροφορίας Οταν εκτελεστεί η διακλάδωση πρέπει να ενημερώσει τους πίνακες πληροφορίας PHT, GHR, BHRs Πότε ακριβώς; Μετά την εκτέλεση (επιβεβαίωση) της διακλάδωσης μπορεί να ακυρωθεί αν μια προηγούμενη διακλάδωση έχει προβλέψει λάθος Οταν η διακλάδωση φτάσει στο στάδιο commit οι επόμενες διακλαδώσεις, μέσα στη διοχέτευση, δεν μπορούν να εκμεταλευτούν τις συσχετίσεις Με εικασία, αμέσως μετά τη πρόβλεψη λάθος ενημερώσεις πρέπει να διορθώνονται 23

Ενημέρωση και διόρθωση Γενικά ενημέρωση με εικασία και, πιθανή, διόρθωση (repair) του PHT (των αυτομάτων) δεν έχει μεγάλο όφελος ενημέρωση στο στάδιο commit Ενημέρωση με εικασία και διόρθωση για τον GHR είναι χρήσιμη αλλά χωρίς διόρθωση δεν είναι! Χρειάζεται μια ουρά από τους GHR 24

Πρόβλεψη στόχου Εκτός από τη κατεύθυνση, πρέπει να προβλεφτεί και ο στόχος (διεύθυνση επόμενης εντολής) Δεν είναι απαραίτητο για απλές μηχανές/διοχετεύσεις υπολογίζεται στο 2 ο στάδιο, decode Αλλά για superscalar αυτό γίνεται ακριβό: 1 αθροιστής ανά εντολή και για βαθύτερη διοχέτευση, χάνονται instrucfon slots Προσθήκη της διεύθυνσης στόχου σε κάθε καταχώρηση του PHT; Αν η πρόβλεψη είναι taken, επιβεβαιωθεί κατά την εκτέλεση της διακλάδωσης, αλλά ο στόχος είναι από aliased διακλάδωση,... 25

Branch Target Buffer Μια, σχετικά μικρή, κρυφή μνήμη που περιέχει τις διευθύνσεις στόχους με tags για να μην έχουμε aliasing μπορεί να έχει συσχετιστικότητα > 1 Μπορεί να περιλαμβάνει (integrate) και λειτουργία πρόβλεψης κατεύθυνσης αλλά έχει λιγότερες καταχωρήσεις - > μικρότερη ακρίβεια Συνήθως καταγράφει μόνο taken διακλαδώσεις για τις non- taken δεν χρειαζόμαστε στόχο! 26

BTB και πρόβλεψη κατεύθυνσης 27

Λάθη πρόβλεψης misfetch misfetch 28

Επιστροφή υπορουτίνας Είδος indirect branch η διεύθυνση επιστροφής δεν είναι πάντα η ίδια Αλλά εύκολα προβλέψιμες διευθύνσεις στόχοι στοίβα, Return Address Stack Αναγνώριση εντολής επιστροφής υπορουτίνας στο στάδιο decode, χάνονται αρκετά instrucfon slots Αποθήκευση στο BTB με ένδειξη ότι είναι return αγνοεί τη διευθ. στόχου στο BTB και χρησιμοποιεί αυτή της κορυφής του RAS Η πληροφορία στο RAS πρέπει να διορθωθεί αν η ret ήταν εικαζόμενη και ακυρώνεται παρόμοια για call 29

Hybrid/combining predictors Πολλαπλοί predictors, επιλογή του πιο πετυχημένου για κάθε διακλάδωση Συνήθως δύο predictor ένας βασίζεται σε τοπική πληροφορία (για τη συγκεκριμένη διακλάδωση μόνο) ένας σε global πληροφορία (m προηγούμενες διακλαδώσεις) Ο επιλογέας (selector, tournament) διαλέγει ποιού predictor το αποτέλεσμα θα δοθεί ως τελικό συνήθως είναι ένας 2- bit counter (όπως αυτοί στο BHT) που παρακολουθεί ποιός predictor ήταν ο καλύτερος 30

Hybrid predictor 31

Agree predictor Βοηθάει στο aliasing Το BTB έχει ένα bit, bias που δείχνει τη κατεύθυνση της διακλάδωσης Το PHT (aliased) έχει ένα αυτόματο που δείχνει αν συμφωνεί με το bias Δύο strong biased branches που αντιστοιχούν στο ίδιο αυτόματο, δεν αλληλοκαταστρέφονται πλέον! 32

Βi- mode predictor Παρόμοιος με τον agree, αλλά αλλάζει το bias bit δυναμικά (choice predictor) και επιλέγει μεταξύ 2 PHTs, ένα για taken και ένα για not- taken 33

Skew predictor PHT χωρίζεται σε 3, με διαφορετικές hash funcfons, απόφαση με πλειοψηφία Ενημέρωση: Αν όλα τα αυτόματα έκαναν λάθος πρόβλεψη, ή τα 2 με τη σωστή πρόβλεψη 34

YAGS Χρησιμοποιεί το bias bit του choice PHT για τις «εύκολες» προβλέψεις Κρατάει εξαιρέσεις σε 2 caches για τις «δύσκολες» περιπτώσεις. 35