Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεLizandra Rella Τροποποιήθηκε πριν 10 χρόνια
1
Κ. Διαμαντάρας Α. Βαφειάδης Τμήμα Πληροφορικής ΑΤΕΙ Θεσσαλονίικης 2011 Pipelining – Βασικές αρχές
2
Η βασική ιδέα Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 2 Η βασική αρχή Pipeline μπορεί να εφαρμοστεί στη Κατασκευή ποδηλάτων. Γενικά μπορεί να εφαρμοστεί σε κάθε διαδικασία που πραγματοποιείται σε φάσεις ανεξάρτητες η μια από την άλλη. Τα μέρη της διαδικασίας pipeline είναι: Οι Φάσεις συναρμολόγησης ενός ποδηλάτου Φάση Α: συγκόλληση του σκελετού Φάση Β: τοποθέτηση σέλας και τιμονιού Φάση Γ: τοποθέτηση τροχών Φάση Δ: τοποθέτηση φρένων και ταχυτήτων Φάση Ε: τοποθέτηση φώτων, σχάρας, και δυναμό Οι εργάτες που πραγματοποιούν την συναρμολόγηση Στο παράδειγμα οι εργάτες είναι πέντε και ο καθένας ασχολείται αποκλειστικά σε μια από τις πέντε φάσεις
3
Η βασική ιδέα Χρόνος γεμίσματος της Pipeline Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 3 Κ. Διαμαντάρας – Α. Βαφειάδης
4
Επιτάχυνση σε ισόχρονη pipeline Αν Μ το πλήθος των φάσεων τότε ύστερα από Ν περιόδους θα έχουν ολοκληρωθεί Ν-(Μ-1) ποδήλατα. Στο παράδειγμα Ν-4 ποδήλατα. Αντίστροφα P ποδήλατα θέλουν P + (M-1) περιόδους για να πραγματοποιηθούν. Στο παράδειγμα σε P+4 περιόδους Ονομάζουμε επιτάχυνση της Pipeline το λόγο χρόνος παραγωγής P ποδηλάτων με ένα εργάτη ( = 50P ) χρόνος παραγωγής P ποδηλάτων με pipeline ( = 4*10 + 10P ) όπου κάθε φάση = 10min Οπότε επιτάχυνση = 50P/(10P+40) = 5/(1+4/P) Αν P ∞ τότε επιτάχυνση 5 (Θεωρητική επιτάχυνση) Στο παραπάνω μοντέλο θεωρούμε ότι όλες οι φάσεις είναι ισόχρονες Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 4 Κ. Διαμαντάρας – Α. Βαφειάδης
5
Επιτάχυνση σε μη ισόχρονη pipeline Διάρκεια φάσεων Φάση Α:10 min Φάση Β:9 min Φάση Γ:7 min Φάση Δ:10 min Φάση Ε:12 min Σύνολο έργου 48 min Aν F= 12 (Ο χρόνος φάσης του βραδύτερου εργάτη) τότε Επιτάχυνση = (48P) / (12P +4*12) = 4 / (1+4/P) Αν P ∞ τότε P 4 (Θεωρητική επιτάχυνση) Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 5 Κ. Διαμαντάρας – Α. Βαφειάδης
6
Ποσοστό απασχόλησης σε μη ισόχρονη pipeline Υπάρχουν σχόλια ? Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 6 Κ. Διαμαντάρας – Α. Βαφειάδης
7
Συμπεράσματα Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 7 Σκοπός της τεχνικής pipelining είναι η επιτάχυνση της εκτέλεσης μιας διαδικασίας με τον τεμαχισμό της σε επί μέρους φάσεις οι οποίες μπορούν να εκτελούνται ταυτόχρονα για ξεχωριστές διαδικασίες Η επιτάχυνση που επιτυγχάνεται δεν είναι μόνο συνάρτηση του αριθμού των φάσεων αλλά και της εξισορρόπησης μεταξύ των χρόνων εκτέλεσης των διαφόρων φάσεων. Με άλλα λόγια αν τεμαχίσουμε μια διαδικασία σε 10 επί μέρους φάσεις αυτό δε σημαίνει ότι θα επιτύχουμε επιτάχυνση της διαδικασίας κατά 10 φορές αν δεν έχουμε προηγουμένως φροντίσει οι φάσεις αυτές να απαιτούν τον ίδιο (ή περίπου τον ίδιο) χρόνο εκτέλεσης.
8
DLX: ένας υποθετικός υπολογιστής Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 8 Απλό σύνολο εντολών αρχιτεκτονικής load/store Καταχωρητές (Registers) 32-bit general purpose registers (GPR): R0, R1,..., R31. R0 = πάντα 0. 32 floating-point registers (FPR), μπορούν να χρησιμοποιηθούν ως 32 single precision (32-bit) registers F0,F2,...,F31 ή 16 double-precision (64-bit) registers. Οι καταχωρητές FPR των 64-bit ονομάζονται F0,F2,...,F15 Data types for integer data 8-bit bytes 16-bit half words 32-bit words for floating point 32-bit single precision 64-bit double precision
9
O DLX υποθετικός υπολογιστής Μνήμη: byte addressable Big Endian mode Μήκος διεύθυνσης : 32-bit 2 addressing modes (immediate και displacement). Οι αναφορές στη μνήμη είναι load/store μεταξύ μνήμης και GPRs ή FPRs πρόσβαση στους GPR μπορεί να γίνει σε ένα byte, σε ένα half-word, ή σε ένα word Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 9 Κ. Διαμαντάρας – Α. Βαφειάδης
10
DLX Addressing Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 10 Κ. Διαμαντάρας – Α. Βαφειάδης ADD R1, R2, #17;Πρόσθεσε στον καταχωρητή R2 τον ;αριθμό 17 (δεκαδικό) και το αποτέλεσμα στον ;R1 (άμεση κλήση) LW R1, 120(R2);Φόρτωσε στον καταχωρητή R1 το ;περιεχόμενο της θέσης μνήμης 120+R2 ;(κλήση με μετατόπιση) LW R4, 0(R1);Φόρτωσε στον καταχωρητή R4 το ;περιεχόμενο της θέσης μνήμης R1 ;(έμμεση κλήση) LW R2, 1520(R0);Φόρτωσε στον καταχωρητή R2 το ;περιεχόμενο της θέσης μνήμης 1520, αφού; ο καταχωρητής R0 είναι πάντοτε μηδέν ;(απόλυτη κλήση)
11
DLX: Τύποι εντολών I Type (immediate) LW R1, 30(R2)Load word Regs[R1] <- Mem[30+Regs[R2]] LW R1, 1000(R0)Load word Regs[R1] <- Mem[1000+0] SW 500(R4), R3Store wordMem[500+Regs[R4]] <- Regs[R3] SF 40(R3), F0Store floatMem[40+Regs[R3]] <- Regs[F0] JR R3Jump registerPC <- Regs[R3] ADDI R1, R2, #3Add immediateRegs[R1] <- Regs[R2] + 3 BEQZ R4, name Branch equal zeroif (Regs[R4]==0) PC <- name; Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 11 Κ. Διαμαντάρας – Α. Βαφειάδης
12
DLX: Τύποι εντολών R Type (Register) ADD R1, R2, R3AddRegs[R1] <- Regs[R2]+Regs[R3] Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 12 Κ. Διαμαντάρας – Α. Βαφειάδης
13
DLX: Τύποι εντολών J Type (Jump) J name JumpPC<-name; Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 13 Κ. Διαμαντάρας – Α. Βαφειάδης
14
The MIPS Instruction Formats All MIPS instructions are 32 bits long. The three instruction formats: R-type I-type J-type The different fields are: op: operation of the instruction rs, rt, rd: the source and destination register specifiers shamt: shift amount funct: selects the variant of the operation in the “op” field address / immediate: address offset or immediate value target address: target address of the jump instruction optarget address 02631 6 bits26 bits oprsrtrdshamtfunct 061116212631 6 bits 5 bits oprsrt immediate 016212631 6 bits16 bits5 bits Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 14 Κ. Διαμαντάρας – Α. Βαφειάδης
15
Οι φάσεις μιας εντολής Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 15 Φάση λήψης εντολής (Instruction Fetch) - (IF) Φάση αποκωδικοποίησης / ανάγνωσης καταχωρητών (Instruction decode / register fetch) - (ID) Φάση εκτέλεσης (Execution) - (EX) Φάση πρόσβασης στη μνήμη / ολοκλήρωση αλμάτων (Memory access) - (MEM) Φάση εγγραφής καταχωρητών / μνήμης (Write back) - (WB)
16
Φάση λήψης εντολής (Instruction Fetch) IR Mem [PC] NPC PC + 4 Προσθέτουμε το 4 γιατί έχουμε byte addressable memory Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 16 Κ. Διαμαντάρας – Α. Βαφειάδης
17
Φάση αποκωδικοποίησης / ανάγνωσης καταχωρητών (Instruction decode / register fetch) A Reg[IR(6..10)] B Reg[IR(11..15)] Imm IR(16..31) A,B, Imm Προσωρινοί καταχωρητές
18
Φάση εκτέλεσης (Execution) Eντολή κλήσης στη μνήμη ALUOutput A + Imm LW R1, 120(R2) Eντολή πράξης μεταξύ καταχωρητών ALUOutput A πράξη B Add R1,R2,R3 Eντολή πράξης μεταξύ καταχωρητή και άμεσου τελεστή ALUOutput A πράξη Imm Add r1,r2 #17 Eντολή άλματος υπό συνθήκη ALUOutput NPC + Imm Cond (A σύγκριση 0) BEQZ R4, name Eντολή άλματος χωρίς συνθήκη ALUOutput NPC + IR(6..31) Cond True Jump name
19
Φάση πρόσβασης στη μνήμη / ολοκλήρωση αλμάτων (Memory access) Εντολή κλήσης στη μνήμη LMD Mem[ALUOutput] (για load) ή Mem[ALUOutput] B (για store) Εντολή άλματος (με ή χωρίς συνθήκη) If (Cond) then PC ALUOutput else PC NPC B PC
20
Φάση εγγραφής καταχωρητών / μνήμης (Write back) Eντολή πράξης μεταξύ καταχωρητών Reg[IR(16..20)] ALUOutput Eντολή πράξης μεταξύ καταχωρητή και immediate Reg[IR(11..15)] ALUOutput Eντολή load Reg[IR(11..15)] LMD Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 20 Κ. Διαμαντάρας – Α. Βαφειάδης
21
Η pipeline του DLX L1 data Cache L1 Instr. Cache A,B, Imm: Temporary registers MUX : Multiplexer LMD (load memory data) register Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 21 Κ. Διαμαντάρας – Α. Βαφειάδης
22
Η pipeline του DLX Οι φάσεις εκτέλεσης μιας εντολής DLX Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 22 Κ. Διαμαντάρας – Α. Βαφειάδης
23
Η ιδανική Pipeline Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 23 Κ. Διαμαντάρας – Α. Βαφειάδης
24
Η ιδανική Pipeline Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 24 Κ. Διαμαντάρας – Α. Βαφειάδης
25
Παράδειγμα Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 25 Κύκλος του ρολογιού = 10nsec Αριθμητικές πράξεις και τα άλματα = 4 κύκλοι Εντολές πρόσβασης στη μνήμη = 5 κύκλοι Αριθμητικές εντολές συχνότητα 40% Εντολές πρόσβασης στη μνήμη συχνότητα 40% Άλματα συχνότητα 20% Πολυπλοκότητα της pipeline 1nsec /κύκλο ρολογιού [ΜΧΕ] χωρίς pipeline = 10nsec (40% 4 + 20% 4 + 40% 5) = 44nsec [ΜΧΕ] με pipeline = 10 + 1 = 11nsec Επιτάχυνση = [ΜΧΕ] χωρίς pipeline / [ΜΧΕ] με pipeline = 44nsec/11nsec = 4 αντί για την ιδανική τιμή 5.
26
Memory Reference (LOAD) Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 26 Κ. Διαμαντάρας – Α. Βαφειάδης LW R1,30(R2) όπου Reg(R2)= 4000 και MEM[4030]=10 IF IR Mem[PC] NPC PC + 4 ID A Reg[IR(6..10)] Α Reg(R2) A=4000 B Reg[IR(11..15)] B Reg(R1) B = ? Imm IR(16..31) Imm = 30 EX ALUOutput A + Imm ALUOutput = 4000 + 30 =4030 MEM LMD Mem[ALUOutput] LMD = MEM[4030] = 10 WB Reg[IR(11..15)] LMD Reg(R1) = 10
27
Memory Reference (STORE) Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 27 Κ. Διαμαντάρας – Α. Βαφειάδης SW 500(R4), R3 όπου Reg(R4) = 4000 και Reg(R3) =10 IF IR Mem[PC] NPC PC + 4 ID A Reg[IR(6..10)] Α Reg(R4) A = 4000 B Reg[IR(11..15)] B Reg(R3) B = 10 Imm IR(16..31) Imm = 500 EX ALUOutput A + Imm ALUOutput = 4000 + 50 =4500 MEM Mem[ALUOutput] B MEM[4500] = 10 WB null
28
Register to Register Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 28 ADD R1,R2,R3 όπου Reg(R2) = 40 και Reg(R3) =10 IF IR Mem[PC] NPC PC + 4 ID A Reg[IR(6..10)] Α Reg(R2) A=40 B Reg[IR(11..15)] B Reg(R3) B = 10 Imm IR(16..31) Imm (16..20) = R1, Imm(21..31)= + EX ALUOutput A + B ALUOutput = 40 + 10 =50 MEM null WB Reg[IR(16..20)] ALUOutput Reg(R1) = 50
29
Register to immediate Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 29 Κ. Διαμαντάρας – Α. Βαφειάδης ADDΙ R1,R2, #3 όπου Reg(R2)= 4000 IF IR Mem[PC] NPC PC + 4 ID A Reg[IR(6..10)] Α Reg(R2) A=4000 B Reg[IR(11..15)] B Reg(R1) B = ? Imm IR(16..31) Imm (16..31) = 3 EX ALUOutput A + Imm(16..31) ALUOutput = 4000 + 3 = 4003 MEM null WB Reg[IR(11..15)] ALUOutput Reg(R1) = 4003
30
Unconditional Jump Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 30 J name όπου name = 100 IF IR Mem[PC] NPC PC + 4 ID A Reg[IR(6..10)] B Reg[IR(11..15)] Imm IR(16..31) EX ALUOutput IR(6..31) ALUOutput = 100 Cond true MEM If cont then PC ALUOutputPC 100 (Jump) else PC = NPCPC NPC (next address) WB null IR(6..31) = A ## B ## Imm ## σημαίνει ενωση
31
Conditional Jump Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 31 Κ. Διαμαντάρας – Α. Βαφειάδης BEQZ R4, name όπου name = 100 IF IR Mem[PC] NPC PC + 4 ID A Reg[IR(6..10)] A Reg(R4) B Reg[IR(11..15)] Imm IR(16..31) EX ALUOutput Imm ALUOutput = 100 If A equal 0 then Cond true else Cond false MEM If Cond then PC ALUOutputPC 100 (Jump) else PC = NPCPC NPC (next address) WB null
32
Οι κίνδυνοι της pipeline (pipeline hazards) Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 32 οι δομικοί κίνδυνοι (structural hazards) προκύπτουν στις περιπτώσεις όπου το υλικό (hardware) δεν αρκεί για να καλύψει τις ανάγκες όλων των δυνατών συνδυασμών εντολών που μπορούν να προκύψουν στην pipeline. οι κίνδυνοι των δεδομένων (data hazards) προκύπτουν όταν η εκτέλεση μιας εντολής εξαρτάται από το αποτέλεσμα μιας προηγούμενης εντολής οι κίνδυνοι ελέγχου (control hazards) προκύπτουν από τις εντολές άλματος οι οποίες αλλάζουν τη ροή του προγράμματος.
33
Δομικός κίνδυνος Κύκλοι μηχανής 12345678 LoadIFIDEXMEMWB Εντολή 1IFIDEXMEMWB Εντολή 2IFIDEXMEMWB Εντολή 3IFIDEXMEMWB Εντολή 4IFIDEXMEM Στον κύκλο 4 η εντολή Load και η εντολή 3 απαιτούν διαδικασία μνήμης ( L1 Cache ) Μια λύση είναι ο διαχωρισμός της L1 cache μνήμης σε δύο, την L1 instruction cache και την L1 data cache Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 33 Κ. Διαμαντάρας – Α. Βαφειάδης
34
Η pipeline του DLX L1 Data Cache L1 Instr. Cache A,B, Imm: Temporary registers MUX : Multiplexer LMD (load memory data) register Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 34 Κ. Διαμαντάρας – Α. Βαφειάδης
35
Δομικοί κίνδυνοι Κύκλοι μηχανής 123456789 LoadIFIDEXMEMWB Εντολή 1IFIDEXMEMWB Εντολή 2IFIDEXMEMWB Εντολή 3νεκρ ό IFIDEXMEMWB Εντολή 4IFIDEXMEM Η λύση χωρίς την δημιουργία μας δεύτερης cache είναι η προσθήκη ενός νεκρού κύκλου, ώστε να καθυστερήσει η έναρξη της εντολής 3 Τον κίνδυνο τον προκαλούν οι εντολές Load/store οι οποίες συμμετέχουν με 40% [KAE_ ιδανικό ] =1 κύκλος [ ΚΑΕ _ πραγματικό ] = 1 + 40% × 1 =1.4 κύκλοι
36
Κίνδυνοι δεδομένων(Data Hazards) Κύκλοι μηχανής 123456 ADD R1,R2,R3IFIDEXMEMWB SUB R4,R5,R1IFIDEXMEMWB AND R6,R1,R7IFIDEXMEM OR R8,R1,R9IFIDEX XOR R10,R1,R11IFID Κίνδυνος χρήσης του R1 πριν από την τοποθέτηση της σωστής τιμής από την εντολή Add. Οι κίνδυνοι αφορούν τις εντολές SUB, AND και OR. Γιατί δεν υπάρχει κίνδυνος για την εντολή XOR ? Παράδειγμα 1 Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 36 Κ. Διαμαντάρας – Α. Βαφειάδης
37
Κίνδυνοι δεδομένων και η λύση προώθησης (Forwarding) A-B Σωστό Β Λάθος Β Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 37 Κ. Διαμαντάρας – Α. Βαφειάδης
38
H λύση προώθησης (Fοrwarding) Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 38 Κ. Διαμαντάρας – Α. Βαφειάδης
39
Κίνδυνοι δεδομένων και η λύση προώθησης (Forwarding) Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 39 Κύκλοι μηχανής 123456 ADD R1,R2,R3IFIDEXMEMWB SUB R4,R5,R1IFIDEXMEMWB AND R6,R1,R7IFIDEXMEM OR R8,R1,R9IFIDEX XOR R10,R1,R11IFID
40
Ολική προώθηση 1 2 3 Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 40 Κ. Διαμαντάρας – Α. Βαφειάδης
41
Ακόμα ένα παράδειγμα κινδύνου δεδομένων Κύκλοι μηχανής 123456 ADD R1,R2,R3IFIDEXMEMWB LW R4,8(R1)IFIDEXMEMWB SW 12(R1),R4IFIDEXMEM Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 41 Κ. Διαμαντάρας – Α. Βαφειάδης
42
Κίνδυνοι δεδομένων – Λύση η προώθηση Κύκλοι μηχανής 123456 ADD R1,R2,R3IFIDEXMEMWB LW R4,8(R1)IFIDEXMEMWB SW 12(R1),R4IFIDEXMEM Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 42 Κ. Διαμαντάρας – Α. Βαφειάδης
43
Ταξινόμηση των κινδύνων δεδομένων Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 43 Κ. Διαμαντάρας – Α. Βαφειάδης Ανάγνωση μετά από εγγραφή (Read-After-Write, RAW). Η εντολή j διαβάζει την τιμή από κάποια πηγή (καταχωρητή ή μνήμη) την οποία εγγράφει η εντολή i. Εγγραφή μετά από εγγραφή (Write-After-Write, WAW). Η εντολή j γράφει μια τιμή πάνω στον ίδιο καταχωρητή ή μνήμη όπου γράφει και η εντολή i. Εγγραφή μετά από ανάγνωση (Write-After-Read, WAR). Η εντολή j γράφει μια τιμή πάνω στον ίδιο καταχωρητή ή θέση μνήμης την οποία διαβάζει η εντολή i. Υπόθεση: η εντολή i εκτελείται πριν από την j.
44
Λύσεις Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 44 Ανάγνωση μετά από εγγραφή (Read-After-Write, RAW) Λύση η προώθηση
45
Λύσεις Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 45 Εγγραφή μετά από εγγραφή (Write-After-Write, WAW) Υπάρχει κίνδυνος μόνο όταν η εγγραφή που κάνει η εντολή i τελειώνει μετά από την εγγραφή που κάνει η εντολή j διότι τότε ο καταχωρητής ή η μνήμη μένουν ενημερωμένοι με την λανθασμένη τιμή. Δεν υπάρχει κίνδυνος όταν οι έγγραφες διαρκούν ένα κύκλο (DLX) Σε pipeline όπου οι έγγραφες διαρκούν πολλούς κύκλους η λύση είναι η εισαγωγή νεκρών κύκλων
46
WAW χωρίς κανένα πρόβλημα Κύκλοι μηχανής 123456 LW R1,8(R4)IFIDEXMEMWB ADD R1,R2,R3IFIDEXMEM WB Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 46 Κ. Διαμαντάρας – Α. Βαφειάδης
47
WAW σε pipeline με εγγραφή σε ένα κύκλο και ΑDD χωρίς κύκλο ΜΕΜ και με εγγραφή – ανάγνωση σε πολλούς κύκλους Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 47 Κύκλοι μηχανής 123456 LW R1,8(R4)IFIDEXMEM1MEM2WB ADD R1,R2,R3IFIDEX WB Νεκροί κύκλοι H εντολή ADD δεν έχει κύκλο MEM
48
Λύσεις Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 48 Εγγραφή μετά από ανάγνωση (Write-After-Read, WAR) Υπάρχει κίνδυνος μόνο όταν η εγγραφή που κάνει η εντολή i τελειώνει μετά από την εγγραφή που κάνει η εντολή j διότι τότε ο καταχωρητής ή η μνήμη μένουν ενημερωμένοι με την λανθασμένη τιμή. Δεν υπάρχει κίνδυνος στη DLX μηχανή γιατί η ανάγνωση τιμών γίνεται στη φάση ID και η εγγραφή στη φάση WB Σε pipeline όπου οι έγγραφες διαρκούν πολλούς κύκλους λύση είναι η εισαγωγή νεκρών κύκλων
49
WAR στη pipeline του DLX Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 49 Κύκλοι μηχανής 1234567 SW R4,8(R1)IFIDEXMEM WB ADD R1,R2,R3IFIDEX WB Κύκλοι μηχανής 1234567 SW R4,8(R1) IFIDEXMEM1MEM2ΜΕΜ3WB ADD R1,R2,R3 IFIDEX WB WAR σε pipeline με εγγραφή ή ανάγνωση μνήμης σε 3 κύκλους με το δεύτερο κύκλο αφιερωμένο στον υπολογισμό της διεύθυνσης Εισαγωγή ενός νεκρού κύκλου
50
Κίνδυνοι που απαιτούν εισαγωγή νεκρών κύκλων (Το πρόβλημα load before arithmetic) Κύκλοι μηχανής 123456 LW R1,8(R2)IFIDEXMEMWB SUB R4,R1,R5IFIDEXMEMWB Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 50 Κ. Διαμαντάρας – Α. Βαφειάδης
51
LW R1, 8(R2) SUB R4,R5,R1 IF IR Mem[PC] NPC PC + 4 ID IF A Reg[R2] IR Mem[PC] B Reg[R3] (άχρηστο) NPC PC + 4 Imm IR(16..31) EXID ALUOutput A + Imm A Reg[R5] B Reg[R1] Imm IR(16..31) (άχρηστο) MEMEX LMD MEM[ALUOutput] Εδώ χρειάζεται η τιμή του R1 Εδώ παράγεται η τιμή του R1 ALUOutput A + B WBMEM Reg[R1] LMD null WB Reg[R4] ALUOutput Ο κίνδυνος LW – SUB δεν λύνεται με προώθηση A-B Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 51 Κ. Διαμαντάρας – Α. Βαφειάδης
52
Ο κίνδυνος LW–SUB λύνεται με εισαγωγή νεκρού κύκλου και προώθηση στη συνέχεια Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 52 Κύκλοι μηχανής 1234567 LW R1,8(R2)IFIDEXMEMWB SUB R4,R1,R5IFIDνεκρόEXMEMWB
53
Λύση με επαναδιάταξη (σε επίπεδο μεταφραστή) Αρχική μετάφραση LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SW d,Rd a = b + c; d = e - f; Λύση με επαναδιάταξη LW Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra SUB Rd,Re,Rf SW d,Rd Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 53 Κ. Διαμαντάρας – Α. Βαφειάδης
54
Κίνδυνοι έλεγχου – το πρόβλημα Κύκλοι μηχανής 123456789 Εντολή branchIFIDEXMEMWB Επόμενη εντολήIFνεκρό IFIDEXMEMWB Επόμενη εντολή+1IFIDEXMEM Επόμενη εντολή+2IFIDEX Απόκτηση της εντολής μετά το επιτυχές branch Απώλεια κύκλων στην περίπτωση αληθούς εντολής αλλαγής ροής Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 54 Κ. Διαμαντάρας – Α. Βαφειάδης
55
Το κόστος μιας εντολής αλλαγής ροής Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 55 Κόστος: Αν τα άλματα, για παράδειγμα, αποτελούν το 20% όλων των εντολών τότε ο χρόνος εκτέλεσης γίνεται 1 κύκλος για το 80% των εντολών και 4 κύκλοι για το 20% των εντολών, δηλαδή ο Μέσος Χρόνος Εκτέλεσης (ΜΧΕ) μιας εντολής γίνεται ΜΧΕ = 0.8 1 + 0.2 4 = 1.6 κύκλοι ανά εντολή Λύση: Να βρούμε αν το άλμα θα γίνει ή όχι νωρίτερα από τη φάση MEM Να υπολογίζουμε τη διεύθυνση του στόχου του άλματος νωρίτερα από τη φάση MEM.
56
Τροποποίηση στο Hardware (By Gurpur M. Prabhu)Gurpur M. Prabhu Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 56 Κ. Διαμαντάρας – Α. Βαφειάδης
57
Τροποποίηση hardware – Σύγκριση αρχικής και τροποποιημένης μορφής Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 57 Αρχική Τελική
58
Εντολή αλλαγής ροής στη τροποποιημένη pipeline Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 58 Κύκλοι μηχανής 123456789 Εντολή branchIFIDEXMEMWB Επόμενη εντολήIF IDEXMEMWB Επόμενη εντολή+1 IFIDEXMEMWB Επόμενη εντολή+2 IFIDEXMEMWB Λάθος εντολή Σωστή εντολή
59
Τεχνικές Βελτίωσης πέρα από την τροποποίηση του Hardware Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα Κ. Διαμαντάρας – Α. Βαφειάδης 59 Εισαγωγή πάντα ενός κύκλου καθυστέρησης Πρόβλεψη ότι το άλμα δεν θα γίνει (predict not taken) Πρόβλεψη ότι το άλμα θα γίνει (predict taken) Καθυστερημένο άλμα (delayed branch)
60
Εισαγωγή πάντοτε νεκρού κύκλου Κύκλοι μηχανής 123456789 Εντολή branchIFIDEXMEMWB Επόμενη εντολήΝεκρός κύκλος IFIDEXMEMWB Επόμενη εντολή+1IFIDEXMEMWB Επόμενη εντολή+2IFIDEXMEMWB Κατά τη διάρκεια της φάσης 2 μαθαίνουμε πια θα είναι η σωστή εντολή που θα ακολουθήσει της εντολής αλλαγής ροής Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 60 Κ. Διαμαντάρας – Α. Βαφειάδης
61
Πρόβλεψη ότι το άλμα δεν θα γίνει (predict not taken) Κύκλοι μηχανής 12345678 Εντολή i (άλμα) το άλμα δεν εκτελείται IFIDEXMEMWB Εντολή i+1IFIDEXMEMWB Εντολή i+2IFIDEXMEMWB Εντολή i+3IFIDEXMEMWB Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 61 Κ. Διαμαντάρας – Α. Βαφειάδης
62
Πρόβλεψη ότι το άλμα θα γίνει (predict taken) Κύκλοι μηχανής 12345678 Εντολή i (άλμα) το άλμα εκτελείται IFIDEXMEMWB Εντολή i+1IF Εντολή jIFIDEXMEMWB Εντολή j+1IFIDEXMEMWB Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 62 Κ. Διαμαντάρας – Α. Βαφειάδης
63
Καθυστερημένο άλμα (delayed branch) Κύκλοι μηχανής 12345678 Εντολή i (άλμα) το άλμα εκτελείται IFIDEXMEMWB Εντολή i+1IFIDEXMEMWB Εντολή jIFIDEXMEMWB Εντολή j+1IFIDEXMEMWB Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 63 Κ. Διαμαντάρας – Α. Βαφειάδης
64
Επίδοση μεθόδων διαχείρισης αλμάτων ΜέθοδοςΚόστος για άλματα υπό συνθήκη (μέσος αριθμός κύκλων) Κόστος για άλματα χωρίς συνθήκη (μέσος αριθμός κύκλων) Μέσο κόστος για όλα τα είδη αλμάτων Μέσος αριθμός κύκλων ανά εντολή (ΚΑΕ) Καθυστέρηση πάντα 1111.17 Πρόβλεψη ότι το άλμα δε θα γίνει 0.6210.691.12 Καθυστερημένο άλμα 0.2500.211.04 Προηγμένες Αρχιτεκτονικές Η / Υ και Παράλληλα Συστήματα 64 Κ. Διαμαντάρας – Α. Βαφειάδης
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.