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

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

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

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

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

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

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

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

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

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

(Branch Prediction Mechanisms)

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Διάλεξη 12 Καθυστερήσεις (Stalls)

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

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

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

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

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Εξαιρέσεις και Διακοπές (Exceptions and Interrupts)

Κεφάλαιο 4. Ο επεξεργαστής

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

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

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

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

Σχεδίαση μονάδας ελέγχου επεξεργαστή

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

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

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

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

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

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Παραλληλισµός Εντολών (Pipelining)

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

Διάλεξη 11 Προώθηση (Forwarding)

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

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

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

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

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

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

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

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

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών week 5. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

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

Μικροαρχιτεκτονική του LC3

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

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

Chapter 3 Αριθμητική Υπολογιστών

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

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

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

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

Μετάφραση ενός Προγράμματος Εξαιρέσεις

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

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

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

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Εικονική Μνήμη (Virtual Μemory)

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

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

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

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

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

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

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 4: Ρουτίνες καθυστέρησης. [Συγγραφή ρουτίνας καθυστέρησης]

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εντολές του MIPS (2)

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

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

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

Transcript:

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

Κόστος διακλαδώσεων Οι διακλαδώσεις έχουν σχετικά μεγάλο κόστος χρόνου Τουλάχιστον ένας κύκλος χαμένος στο MIPS αν πετύχουν Συνήθως πολύ μεγαλύτερο κόστος... Διακλαδώσεις υπάρχουν κάθε 5-8 εντολές Αποφυγή διακλαδώσεων: branch predicayon Ειδικές εντολές μηχανής που εκτελούνται όταν μια συνθήκη (π.χ. τιμή καταχωρητή) είναι αληθινή π.χ. condmove Rd, Rs, Rflag αν η τιμή του Rflag δεν είναι 0, αντέγραψε τον Rs στον Rd Χρήσιμες όταν το κομμάτι κώδικα then ή else είναι μικρό Κρύψιμο ποινής διακλάδωσης: delay slots η εντολή που ακολουθεί την διακλάδωση εκτελείται πάντα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 2

Delay slots Ιδέα: αφού ο κύκλος μετά τη διακλάδωση είναι χαμένος, δίνουμε μια ευκαιρία στο μεταφραστή να βρεί μια χρήσιμη εντολή που εκτελείται πάντα, είτε η διακλάδωση πετύχει, είτε όχι αλλιώς βάζει μια nop και δεν χάνουμε τίποτα Προβλήματα: Λεπτομέρεια υλοποίησης περνάει στην αρχιτεκτονική Αν αλλάξει η υλοποίηση (πχ. 2 χαμένοι κύκλοι),... Δυσκολεύει την υλοποίηση εκτέλεσης πολλαπλών εντολών σε ένα κύκλο Δυσκολεύει υλοποίηση διακοπών, εξαιρέσεων ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 3

Τι χρειάζεται μια διακλάδωση Διεύθυνση προορισμού Γενικά PC + σταθερά κωδικοποιημένη μέσα στην εντολή ή κάποια bit από PC και τα υπόλοιπα από τη σταθερά Διαθέσιμη στο στάδιο ID το νωρίτερο Αποτέλεσμα της συνθήκης συνήθως σύγκριση μεταξύ τιμών καταχωρητών Γενικά διαθέσιμο στο στάδιο EXE για διακλαδώσεις αλλά νωρίτερα (στάδιο ID) για άλματα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 4

Πρόβλεψη διακλάδωσης Οι ποινές διακλαδωσεις μειώνουν την ταχύτητα επεξεργαστών με πολλά στάδια διοχέτευσης και/ή με δυνατότητα εκτέλεσης πολλαπλών εντολών ανά κύκλο Αν μπορούμε να προβλέψουμε με ακρίβεια αν μια διακλάδωση θα ακολουθηθεί, τότε μπορούμε να μειώσουμε ή να εξαλείψουμε την ποινή διακλάδωσης αν κάνουμε λάθος, πρέπει να ακυρώσουμε τις εντολές μετά την εντολή διακλάδωσης ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 5

Στατική πρόβλεψη Οι διακλαδώσεις μπορεί να είναι: προς τα πίσω (βρόγχοι επανάλληψης) Τις περισσότερες φορές ακολουθείται η επανάλληψη Από προσομοιώσεις, 90% πιθανότητα Μπορουμε να υποθέσουμε ότι πετυχαίνουν προς τα εμπρός Από προσομοιώσεις, 50% πιθανότητα να ακολουθηθούν Δεν μπορούμε να ξέρουμε σίγουρα! ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 6

Δυναμική πρόβλεψη Μπορούμε να προβλέψουμε διακλαδώσεις γνωρίζοντας τη συμπεριφορά του προγράμματος στο παρελθόν πρέπει να «θυμόμαστε» την πληροφορία: χρειάζεται πίνακας πρόβλεψης ανανέωση του πίνακα όταν γνωρίζουμε την κατεύθυνση της διακλάδωσης Χρονική συσχέτιση η κατεύθυνση που ακολούθησε η διακλάδωση στο παρελθόν δείχνει τη κατεύθυνση που θα ακολουθήσει στο μέλλον «Χωρική» συσχέτιση η κατεύθυνση που ακολούθησαν οι προηγούμενες N διακλαδώσεις μπορεί να δείχνει τη κατεύθυνση που θα ακολουθήσει η επόμενη διακλάδωση ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 7

Πίνακας πρόβλεψης Κρατάμε πληροφορίες σχετικά με τη προηγούμενη συμπεριφορά διακλαδώσεων σε έναν πίνακα Αγγλικός όρος: Branch History table θα δούμε αργότερα πως αντιστοιχούμε μια διακλάδωση του προγράμματος με μια θέση του πίνακα για την ώρα μας ενδιαφέρει τι πληροφορία κρατάει αυτός ο πίνακας Ενα bit είναι αρκετό για να ξέρουμε αν ακολουθήθηκε ή όχι την προηγούμενη φορά π.χ. 0 δεν ακολουθήθηκε, 1 ακολουθήθηκε ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 8

Πρόβλεψη με 1 bit Εστω η παρακάτω «φωλιασμένη» επανάλληψη outer: inner: beq,, inner beq,, outer Με ένα bit, κάνουμε λάθος πρόβλεψη δύο φορές Στην τελευταία επανάλληψη, προβλέπουμε επιτυχία, αλλά η διακλάδωση δεν ακολουθείται Την επόμενη φορά, προβλέπουμε αποτυχία αυτό γίνεται σε κάθε εξωτερική επανάλληψη Το πρόβλημα είναι ότι μια, σπάνια, αντίθετη επιλογή κατεύθυνσης αλλάζει την πρόβλεψη ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 9

Πρόβλεψη με 2 bits Πρέπει να γίνουν δύο λάθη για να αλλάξουμε πρόβλεψη Συχνά λέγεται bimodal ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 10

Λειτουργία I-$ Fetch PC 0 0 k BHT Index 2 k -entry BHT, 2 bits/entry IF ID Instruction Opcode offset + Taken/ Taken? Branch? Target PC Ταυτόχρονα με την κρυφή μνήμη εντολών γίνεται ανάγνωση του πίνακα προβλέψεων (BHT - branch history table) Στο στάδιο ID έχουμε όλες τις πληροφορίες για το επόμενο, εικαζόμενο PC ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 11

Χωρική συσχέτιση Συχνά οι διακλαδώσεις έχουν κάποια συσχέτιση με τις προηγούμενες. Παράδειγμα: if (x[i] < 7) y += 1; if (x[i] < 5) c -= 4; Αν δεν πετύχει η πρώτη, τότε και η δεύτερη δεν πετυχαίνει Κρατάμε πληροφορία για την κατεύθυνση των τελευταίων N διακλαδώσεων Απλός καταχωρητής ολίσθησης Ν θέσεων λέγεται global history register ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 12

Πρόβλεψη δύο επιπέδων Fetch PC 0 0 k 2-bit global branch history shift register Shift in Taken/ Taken results of each branch Taken/ Taken? Χρησιμοποιούμε τη διεύθυνση (μέρος της) για ταυτόχρονη προσπέλαση 4 ΒΗΤ και διαλέγουμε ένα από τα αποτελέσματα σύμφωνα με τις τελευταίες 2 κατευθύνσεις ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 13

Περιορισμοί BHT Η πρόβλεψη μπορεί να χρησιμοποιηθεί μόνο όταν ξέρουμε ότι η εντολή είναι διακλάδωση Αν η προσκόμιση εντολής χρειάζεται πολλούς κύκλους,... και είναι διοχετευμένη όπως συμβαίνει στους σύγχρονους επεξεργαστές... η ποινή διακλάδωσης παραμένει πολλή μεγάλη Χρειαζόμαστε πρόβλεψη όχι μόνο της κατεύθυνσης...... αλλά και της διεύθυνσης προορισμού ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 14

Πίνακας προορισμού διακλάδωσης I-Cache PC Entry PC Valid predicted target PC k = match valid target Αγγλικός όρος: Branch target buffer (BTB) Κρατάει τη διεύθυνση προορισμού που έχουμε προβλέψει (προορισμός προηγούμενης εκτέλεσης) και το υπόλοιπο της διεύθυνσης της εντολής διακλάδωσης. Αλλιώς,... ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 15

Συνδιασμός BTB, BHT Στο ΒΤΒ υπάρχουν θέσεις μόνο για άλματα και διακλαδώσεις που πέτυχαν Αν δεν βρεθεί μια διεύθυνση στο BTB, το επόμενο PC είναι PC+4 Το BTB κρατάει αρκετά bit ανά θέση και γι αυτό δεν υπάρχουν πολλές θέσεις διαθέσιμες Εξακολουθεί να υπάρχει το BHT που έχει καλύτερη πληροφορία σχετικά με την προηγούμενη συμπεριφορά διακλαδώσεων αν δεν βρεθεί μια διακλάδωση στο BTB αλλά βρεθεί στο BHT ως πετυχημένη, απλά η ποινή διακλάδωσης είναι μεγαλύτερη ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 16

Επιστροφή υπορουτίνας Η εντολή jr χρησιμοποιείται για άλματα επιστροφής από υπορουτίνες και για εντολές switch/case σε γλώσσες υψηλού επιπέδου Η διεύθυνση επιστροφής δεν είναι πάντα η ίδια η υπορουτίνα μπορεί να καλεστεί από διαφορετικές θέσεις στο πρόγραμμα άρα δεν δουλεύει καλά η πρόβλεψη προορισμού μέσω BTB Αλλά οι επιστροφές υπορουτίνας δουλεύουν καλά με μια στοίβα επέκταση των πινάκων πρόβλεψης με στοίβα διευθύνσεων επιστροφής: Return address stack (RAS) ένα επιπλέον πεδίο στο BTB δηλώνει ότι η διακλάδωση είναι επιστροφή υπορουτίνας και χρησιμοποιείται η RAS ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 17

Εξαιρέσεις και διακοπές Αναπάντεχα συμβάντα που πρέπει να αντιμετωπιστούν διακόπτοντας, ίσως προσωρινά, το πρόγραμμα είτε εντελώς αναπάντεχα, ή τόσο σπάνια που δεν αξίζει να ελέγχονται συνέχεια ή επειδή βολέυει ο μηχανισμός διακοπών (π.χ. κλήσεις συστήματος) Προέρχονται από εσωτερικές αιτίες του προγράμματος: διαίρεση με 0, υπερχείλιση, εκτέλεση εντολής απαγορευμένης για το χρήστη, προσπέλαση θέσης μνήμης χωρίς κατάληλη «άδεια»,... κλήση συστήματος Η προέρχονται από εξωτερικές αιτίες περιφερειακά που θέλουν να μεταφέρουν δεδομένα,... «ρολόι» χρονομερισμού του επεξεργαστή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 18

Χειρισμός Σαν κλήσεις υπορουτίνας: τρέχει ένα υπο- πρόγραμμα, χειρίζεται το συμβάν και, συχνά, επιστρέφει στην εκτέλεση του προγράμματος I i-1 HI 1 program I i HI 2 interrupt handler I i+1 HI n ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 19

Χειρισμός δύο τρόποι Αλμα σε μια συγκεκριμένη διεύθυνση, εξέταση ενός ειδικού καταχωρητή που κωδικοποιεί το συμβάν Πίνακας διευθύνσεων Ανάλογα με το συμβάν, άλμα σε κατάλληλη θέση του πίνακα ο πίνακας μπορεί να έχει χώρο μόνο για μία εντολή, οπότε εκτελεί άλμα στην πραγματική υπορουτίνα ή χώρο για αρκετές εντολές (για μικρές, γρήγορες διακοπές) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 20

Ο πυρήνας σταματάει την εκτέλεση του προγράμματος στην εντολή I i Ολοκληρώνει την εκτέλεση όλων των προηγούμενων εντολών (ακριβείς εξαιρέσεις precise excepyons) Καταγράφει τη διεύθυνση της εντολής που θα εκτελεστεί μετά (I i+1 ) σε έναν ειδικό καταχωρητή EPC Απαγορεύει προσωρινά οποιεσδήποτε νέες εξαιρέσεις θέτωντας ένα ειδικό bit σε ένα καταχωρητή αν ο χειρισμός της εξαίρεσης είναι αργός, μπορεί η ρουτίνα να ξαναεπιτρέψει διακοπές (μεγαλύτερης προτεραιότητας) Καταγράφει το λόγο της διακοπής/εξαίρεσης και κάνει άλμα στην κατάλληλη διεύθυνση ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 21

Σχεδιασμός υλοποίησης PC Inst. Mem D Decode E + M Data Mem W PC address Exception Illegal Opcode Overflow Data address Exceptions Εξωτερικές διακοπές Αν και σπάνιες, πολλές εξαιρέσεις μπορεί να συμβούν ταυτόχρονα Ποιά πρέπει να «εξυπηρετηθεί» πρώτα; ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 22

Υλοποίηση Commit Point PC Inst. Mem D Decode E + M Data Mem W PC address ExcepYon Exc D Illegal Opcode Exc E Overflow Exc M Data address ExcepYons Cause Select Handler PC Kill F Stage PC D Kill D Stage PC E Kill E Stage PC M Asynchronous Interrupts EPC Kill Writeback ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 23

Μηχανισμός εξαιρέσεων Αφήνουμε τις εντολές να φτάσουν στο στάδιο MEM πριν εξετάσουμε τις εξαιρέσεις όποια φτάσει πρώτη είναι είναι η παλιότερη εντολή που προκάλεσε εξαίρεση Εξωτερικές διακοπές εξετάζονται σε κάθε κύκλο Γιατί στο στάδιο MEM και όχι στο WB; γιατί μπορεί η εντολή που προκάλεσε εξαίρεση να είναι store! Δεν θέλουμε η «προβληματική» εντολή να αλλάξει την κατάσταση του συστήματος Ακυρώνουμε την εντολή που προκάλεσε εξαίρεση και όλες τις επόμενες ίδιος μηχανισμός με διακλαδώσεις, αλλάζουμε τις εντολές σε «φούσκες» Ακυρώνουμε το στάδιο WB για την εντολή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 24

Περίληψη, πρόβλεψη διακλάδωσης Οι διακλαδώσεις και τα άλματα αδειάζουν/ξαναγεμίζουν τη διοχέτευση όταν ακολουθούνται χάνουμε ταχύτητα είναι πολύ συχνές εντολές Ποινή διακλάδωσης Πότε μαθαίνουμε ότι μια εντολή είναι άλμα, διακλάδωση; Πότε μπορούμε να υπολογίσουμε τη διεύθυνση προορισμού; Πότε μπορούμε να υπολογίσουμε τη συνθήκη; Μέχρι τότε έχουμε φέρει και, μερικώς- εκτελέσει άχρηστες εντολές αν η διακλάδοση ακολουθηθεί Πρόβλεψη διακλάδωσης όσο προσκομίζουμε μια εντολή, προβλέπουμε ποια θα είναι η κατάλληλη διεύθυνση για την επόμενη εντολή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 25