Ανίχνευση κίνδυνου Επίλυση με προώθηση. Μπλέ: Εξαρτήσεις. Εξαρτήσεις προς προηγούμενα CC είναι κίνδυνοι δεδομένων Kόκκινο: Προώθηση IF/ID ID/EX EX/MEM.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
Advertisements

1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή
Σχεδίαση μονάδας ελέγχου επεξεργαστή Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκτάριος Κοζύρης
Υποθετική Εκτέλεση Εντολών (Hardware-Based Speculation)‏
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) Σχεδίαση datapath 4 κατηγορίες εντολών: Αριθμητικές-λογικές.
Λύση: Multicycle υλοποίηση Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή.
Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος
© Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή 1.Πλυντήριο 2.Στεγνωτήριο 3.Δίπλωμα 4.αποθήκευση 30 min κάθε «φάση» Σειριακή προσέγγιση.
William Stallings Computer Organization and Architecture 7 th Edition Κεφάλαιο 16 Λειτουργία Μονάδας Ελέγχου.
1 Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή 1.Πλυντήριο 2.Στεγνωτήριο 3.Δίπλωμα 4.αποθήκευση 30 min κάθε «φάση» Σειριακή προσέγγιση για 4 φορτία.
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
Μέθοδοι Πρόβλεψης Διακλαδώσεων (Branch Prediction Mechanisms)‏
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
© Θέματα Φεβρουαρίου © Θέμα 1ο (30%): Έστω η παρακάτω ακολουθία εντολών που χρησιμοποιείται για την αντιγραφή.
© Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ακ. έτος Νεκτάριος Κοζύρης Νίκος Αναστόπουλος
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Multi-threading Κορομηνάς Κωνσταντίνος – Μ437 Χατζηανδρέου Ελένη - Μ400 Χήνου Διονυσία – Μ364.
Εισαγωγή Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων.
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της.
6/15/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Static Random Access Memory.
ΗΥ Παπαευσταθίου Γιάννης1 Clock generation.
ΗΥ Καλοκαιρινός Γιώργος1 PCI Bus Pin List. ΗΥ Καλοκαιρινός Γιώργος2 Initiator Target.
ΗΥ Καλοκαιρινός Γιώργος1 Bus. ΗΥ Καλοκαιρινός Γιώργος2 MCS51.
Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”
Αριθμητική Επίλυση Διαφορικών Εξισώσεων 1. Συνήθης Δ.Ε. 1 ανεξάρτητη μεταβλητή x 1 εξαρτημένη μεταβλητή y Καθώς και παράγωγοι της y μέχρι n τάξης, στη.
Αρχιτεκτονική Υπολογιστών Ενότητα # 5: DEMO Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 10 ο Μάθημα.
Γιώργος Μαγουλάκης Εξάμηνο: Εαρινό 2015 ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Τμ. Μηχανικών Πληροφορικής.
Αρχιτεκτονική Υπολογιστών Ενότητα # 2: Datapath & Control Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL. Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: –Προσκόμιση.
Guide to Business Planning The Value Chain © Guide to Business Planning A principal use of value chain analysis is to identify a strategy mismatch between.
Chapter 16 Control Unit Implemntation. A Basic Computer Model.
Μαθαίνω με “υπότιτλους”
Αντισταθμιστική ανάλυση
Morgan Kaufmann Publishers Ο επεξεργαστής
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Υποθετική Εκτέλεση Εντολών (Hardware-Based Speculation)‏
Matrix Analytic Techniques
INSTRUCTIONS LANGUAGE OF THE MACHINE
Υποστηρίζω την άποψη μου επιχειρηματολογώντας
Single-cyle υλοποίηση:
MIPS: Σύνολο εντολών, γλώσσα μηχανής & μεθοδολογία σχεδίασης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Παράγοντες που επηρεάζουν την επίδοση της CPU
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών
Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Θέματα Φεβρουαρίου
Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος
Single-cyle υλοποίηση:
Άσκηση Pipeline 1 Δεδομένα Έχουμε ένα loop... Rep: lw $2,100($3)
Find: φ σ3 = 400 [lb/ft2] CD test Δσ = 1,000 [lb/ft2] Sand 34˚ 36˚ 38˚
GLY 326 Structural Geology
Αρχιτεκτονική Υπολογιστών
Άσκηση Pipeline 1 Δεδομένα Έχουμε ένα loop... Rep: lw $2,100($3)
Single-cyle υλοποίηση:
Find: ρc [in] from load γT=110 [lb/ft3] γT=100 [lb/ft3]
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Find: Force on culvert in [lb/ft]
Single-cyle υλοποίηση:
Single-cyle υλοποίηση:
Find: ρc [in] from load (4 layers)
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Άσκηση Pipeline 1 Δεδομένα Έχουμε ένα loop... Rep: lw $2,100($3)
Μεταγράφημα παρουσίασης:

Ανίχνευση κίνδυνου Επίλυση με προώθηση

Μπλέ: Εξαρτήσεις. Εξαρτήσεις προς προηγούμενα CC είναι κίνδυνοι δεδομένων Kόκκινο: Προώθηση IF/ID ID/EX EX/MEM MEM/WB Αποτέλεσμα της sub διαθέσιμο Εγγραφή -20 στον Reg. από την sub

1α 2β IF/ID ID/EX EX/MEM MEM/WB R-type rd, rs, rt

Οι τιμές στους καταχωρητές διοχέτευσης δείχνουν σε ποιο CC είναι διαθέσιμη η κατάλληλη τιμή πριν γραφεί στο Reg. IF/ID ID/EX EX/MEM MEM/WB

Σήμα ελέγχου εγγραφής στον Rd είναι ενεργό Αποφυγή προώθησης μη μηδενικού αποτελέσματος

Χωρίς προώθηση (rs) (rt) (rd) Σύγκριση με την αρχιτεκτονική χωρίς προώθηση Προώθηση στους MUX εισόδου της ALU: Εξόδου ALU Εξόδου ΜUX από ΜΕΜ/WB Από τον MUX της rt δεν εμφανίζεται η πληροφορία από το EXS

Forwarding MUXs

Προηγούμενη εντολή στο στάδιο ΕΧ 2 η προηγούμενη εντολή στο στάδιο ΜΕΜ 3 η προηγούμενη εντολή στο στάδιο WB

(rs) (rt) (rd) 2 2 Οι διευθύνσεις όλων των καταχωτητών είναι των 5 bit 32

Κίνδυνοι δεδομένων από αποτελέσματα εντολών στο στάδιο ΕΧ, στο στάδιο MEM, και τον τελεστέο προέλευσης της εντολής στο στάδιο της ALU Ποιό είναι το πιο πρόσφατο αποτέλεσμα ; Προώθηση από το πιο πρόσφατο στάδιο (από το ΜΕΜ). Αναθεώρηση ελέγχου ΜΕΜ Αθροισμα στοιχείων διανύσματος στον $1 Στους $rd και $rs (Στα στάδια ΕΧ και ΜΕΜ)

ONLY FORWARD IF EX HAZARD CONDITION ISN’T TRUE Condition for EX hazard on Rs Condition for EX hazard on Rt

Τα επιπλέον σήματα στην μονάδα προώθησης είναι τα : EX/MEM.RegWrite και MEM/WB.RegWrite

Ανάγνωση $2 μετά από lw

IF/ID ID/EX EX/MEM MEM/WB lw $rt, $20(rs) and $rd, $rs, $rt

(Ολα τα σήματα ελέγχου απενεργοποιημένα)

IF/ID ID/EX EX/MEM MEM/WB Repeat decode repeat fetch

Α bubble is inserted beginning in CC4, by changing the AND instruction to a NOP. AND instruction is fetched and decoded in CC2 and CC3 but its EX stage is delayed until CC5 (versus the unstalled position in CC4). OR instruction is fetched in CC3, but its ID stage is delayed until CC5 (versus the unstalled CC4 position). After insertion of the bubble, all dependences go forward in time and no further hazards occur. IF/ID ID/EX EX/MEM MEM/WB stall

Ελεγχος των MUX στην είσοδο της ALU Ελεγχος εγγραφής σε PC, IF/ID και σήματος επιλογής του MUX της μονάδας ελέγχου (καθυστέρηση για load-use hazard)

Στο τέλος του CC3 η απόφαση για την beq. Παράλληλα έχει ξεκινήσει η εκτέλεση των 3 επόμενων εντολών Στα στάδια IF, ID, EX (και όχι μόνο στο ID όπως στο load-use hazard) Υπόθεση μη ληφθείσας διακλάδωσης (το σχήμα αναφέρεται για μη βελτιστοποιημένη διαδρομή)

Μεταφορά εκτέλεσης της διακλάδωσης νωρίτερα στην διοχέτευση (εκκένωση λιγότερων εντολών) με Εισαγωγή στο ID Από EX μετακίνηση στο ID

Μηδενισμός πεδίου εντολής στον IF/ID Συγκριτής Αθροιστής PCWrite IF/IDWrite Απόφαση ότι beq θα πρέπει να ληφθεί, δηλ. 72 στον PC και απόρριψη επόμενης εντολής

Παρουσίαση της εντολής lw και με τον μηδενισμό του πεδίου εντολής στον IF/ID (IF.Flush=1. Σήμα της CU) μετασχηματίζει την προσκομισθείσα εντολή σε NOP.

a 31 a 30 …a 11 …a 2 a 1 a 0 branch instruction 1K-entry BHT 10-bit index prediction bit Instruction memory Branch History Table (BHT): Lower bits of PC address as index to BHT Indicates whether or not the branch was taken last time No address check (saves HW, but may not be the right branch) If prediction is wrong, invert prediction bit 1 = branch was last taken 0 = branch was last not taken

The Branch Target and Prediction Buffer (BPB) is implemented as a small cache. Stores the target address of recent branches and jumps. The prediction bits are added. They predict whether branches are taken or not taken. The prediction bits (1 or 2) are dynamically determined by the hardware hit

Example : A loop branch that is taken 9 times in a row and then not taken once. What is the prediction accuracy of the 1-bit predictor for this branch assuming only this branch ever changes its corresponding prediction bit? Answer: 80%. Because there are two mispredictions – one on the first iteration and one on the last iteration.

State 0: Strong predict not taken State 1: Weak predict not taken State 3: Strong predict taken State 2: Weak predict taken Υλοποιείται με μετρητή (αύξηση για ληφθείσα πρόβλεψη, μείωση διαφορετικά)

Execute Exception handler

ΕΞΑΙΡΕΣΕΙΣ ΣΕ ΜΙΑ ΔΙΟΧΕΤΕΥΣΗ Treat them as another form of a “control hazard” Consider overflow on add in EX stage e.g. add $1,$2,$1 ACTIONS: Prevent $1 from being updated. The exception must be serviced directly after the instruction leaves the EX stage. Must complete all previous instructions. Instructions in MEM and WB stages proceed normally. Flush add and subsequent instructions. Need to flush IF/ID (as in mispredicted branch), ID/EX, EX/MEM PR. Set Cause and EPC register values. Save overflow bit from ALU in Cause register. Need to save PC (+4) in EPC Transfer control to handler. Jump to 0x

Similar to mispredicted branch. Use much of the same hardware. Additional status signal (from ALU): Overflow output signal (part of the Status Reg. (SR)) Additional control signals (from CU): ID stage Flush through an OR-gate (ID.Flush and Stall from the Hazard Detection Unit) EX stage Flush with the EX.Flush control signal. Additional registers: Cause – EPC The PC MUX is augmented with the address of the Exception handler (0x ). Upon servicing the exception and notifying the user with the offending instruction and the cause of the exception, the user/OS can decide to resume execution of the program. Execute a “return from exception” (RFE) instruction which simply copies EPC to PC.

overflow stall

Overflow exception Exception handler

Select Save PC Exe instructions and or as normal oveflow Overflow detection At the end of CC6, enable the Flush signals

Fetch sw from handler Flush IF/ID Flush ID/EX Flush EX/MEM

Εξυπηρέτηση εξαίρεσης της σωστής εντολής που την προκάλεσε.