Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεMyles Sotiropoulos Τροποποιήθηκε πριν 10 χρόνια
1
Ανίχνευση κίνδυνου Επίλυση με προώθηση
2
Μπλέ: Εξαρτήσεις. Εξαρτήσεις προς προηγούμενα CC είναι κίνδυνοι δεδομένων Kόκκινο: Προώθηση IF/ID ID/EX EX/MEM MEM/WB Αποτέλεσμα της sub διαθέσιμο Εγγραφή -20 στον Reg. από την sub
4
1α 2β IF/ID ID/EX EX/MEM MEM/WB R-type rd, rs, rt
5
Οι τιμές στους καταχωρητές διοχέτευσης δείχνουν σε ποιο CC είναι διαθέσιμη η κατάλληλη τιμή πριν γραφεί στο Reg. IF/ID ID/EX EX/MEM MEM/WB
6
Σήμα ελέγχου εγγραφής στον Rd είναι ενεργό Αποφυγή προώθησης μη μηδενικού αποτελέσματος
7
Χωρίς προώθηση (rs) (rt) (rd) Σύγκριση με την αρχιτεκτονική χωρίς προώθηση Προώθηση στους MUX εισόδου της ALU: Εξόδου ALU Εξόδου ΜUX από ΜΕΜ/WB Από τον MUX της rt δεν εμφανίζεται η πληροφορία από το EXS
8
Forwarding MUXs
9
Προηγούμενη εντολή στο στάδιο ΕΧ 2 η προηγούμενη εντολή στο στάδιο ΜΕΜ 3 η προηγούμενη εντολή στο στάδιο WB
10
(rs) (rt) (rd) 2 2 Οι διευθύνσεις όλων των καταχωτητών είναι των 5 bit 32
11
Κίνδυνοι δεδομένων από αποτελέσματα εντολών στο στάδιο ΕΧ, στο στάδιο MEM, και τον τελεστέο προέλευσης της εντολής στο στάδιο της ALU Ποιό είναι το πιο πρόσφατο αποτέλεσμα ; Προώθηση από το πιο πρόσφατο στάδιο (από το ΜΕΜ). Αναθεώρηση ελέγχου ΜΕΜ Αθροισμα στοιχείων διανύσματος στον $1 Στους $rd και $rs (Στα στάδια ΕΧ και ΜΕΜ)
12
ONLY FORWARD IF EX HAZARD CONDITION ISN’T TRUE Condition for EX hazard on Rs Condition for EX hazard on Rt
13
Τα επιπλέον σήματα στην μονάδα προώθησης είναι τα : EX/MEM.RegWrite και MEM/WB.RegWrite
14
Ανάγνωση $2 μετά από lw
15
IF/ID ID/EX EX/MEM MEM/WB lw $rt, $20(rs) and $rd, $rs, $rt
16
(Ολα τα σήματα ελέγχου απενεργοποιημένα)
17
IF/ID ID/EX EX/MEM MEM/WB Repeat decode repeat fetch
18
Α 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
19
Ελεγχος των MUX στην είσοδο της ALU Ελεγχος εγγραφής σε PC, IF/ID και σήματος επιλογής του MUX της μονάδας ελέγχου (καθυστέρηση για load-use hazard)
21
Στο τέλος του CC3 η απόφαση για την beq. Παράλληλα έχει ξεκινήσει η εκτέλεση των 3 επόμενων εντολών Στα στάδια IF, ID, EX (και όχι μόνο στο ID όπως στο load-use hazard) Υπόθεση μη ληφθείσας διακλάδωσης (το σχήμα αναφέρεται για μη βελτιστοποιημένη διαδρομή)
22
Μεταφορά εκτέλεσης της διακλάδωσης νωρίτερα στην διοχέτευση (εκκένωση λιγότερων εντολών) με Εισαγωγή στο ID Από EX μετακίνηση στο ID
23
Μηδενισμός πεδίου εντολής στον IF/ID Συγκριτής Αθροιστής PCWrite IF/IDWrite Απόφαση ότι beq θα πρέπει να ληφθεί, δηλ. 72 στον PC και απόρριψη επόμενης εντολής
24
Παρουσίαση της εντολής lw και με τον μηδενισμό του πεδίου εντολής στον IF/ID (IF.Flush=1. Σήμα της CU) μετασχηματίζει την προσκομισθείσα εντολή σε NOP.
30
a 31 a 30 …a 11 …a 2 a 1 a 0 branch instruction 1K-entry BHT 10-bit index 0 1 1 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
31
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. 10 22 32 hit
33
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.
35
3 2 0 1
36
State 0: Strong predict not taken State 1: Weak predict not taken State 3: Strong predict taken State 2: Weak predict taken Υλοποιείται με μετρητή (αύξηση για ληφθείσα πρόβλεψη, μείωση διαφορετικά)
38
Execute Exception handler
41
ΕΞΑΙΡΕΣΕΙΣ ΣΕ ΜΙΑ ΔΙΟΧΕΤΕΥΣΗ 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 0x80000180
42
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 (0x80000180). 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.
43
overflow stall
45
Overflow exception Exception handler
46
Select 8000180 Save PC Exe instructions and or as normal oveflow Overflow detection At the end of CC6, enable the Flush signals
47
Fetch sw from handler Flush IF/ID Flush ID/EX Flush EX/MEM
48
Εξυπηρέτηση εξαίρεσης της σωστής εντολής που την προκάλεσε.
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.