Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της."— Μεταγράφημα παρουσίασης:

1 1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της pipeline Μέρος: Δεύτερο Καθηγητής: Α. Βαφειάδης 2007

2 2 Οι κίνδυνοι της pipeline (pipeline hazards)  οι δομικοί κίνδυνοι (structural Hazards) προκύπτουν στις περιπτώσεις όπου το υλικό (hardware) δεν αρκεί για να καλύψει τις ανάγκες όλων των δυνατών συνδυασμών εντολών που μπορούν να προκύψουν στην pipeline.  οι κίνδυνοι των δεδομένων (data Hazards) προκύπτουν όταν η εκτέλεση μιας εντολής εξαρτάται από το αποτέλεσμα μιας προηγούμενης εντολής  οι κίνδυνοι ελέγχου (Control Hazards) προκύπτουν από τις εντολές άλματος οι οποίες αλλάζουν τη ροή του προγράμματος.

3 3 Δομικός κίνδυνος Κύκλοι μηχανής 12345678 LoadIFIDEXMEMWB Εντολή 1IFIDEXMEMWB Εντολή 2IFIDEXMEMWB Εντολή 3IFIDEXMEMWB Εντολή 4IFIDEXMEM Στον κύκλο 4 η εντολή Load και η εντολή 3 απαιτούν διαδικασία μνήμης (L1 Cache) Μια λύση είναι ο διαχωρισμός της L1 cache μνήμης σε δύο, την L1 instruction cache και την L1 data cache

4 4 Η pipeline του DLX L1 data Cache L1 Instr. Cache A,B, Imm: Temporary registers MUX : Multiplexer LMD (load memory data) register

5 5 Δομικοί κίνδυνοι Κύκλοι μηχανής 123456789 LoadIFIDEXMEMWB Εντολή 1IFIDEXMEMWB Εντολή 2IFIDEXMEMWB Εντολή 3νεκρ ό IFIDEXMEMWB Εντολή 4IFIDEXMEM Η λύση χωρίς την δημιουργία μας δεύτερης cache είναι η προσθήκη ενός νεκρού κύκλου, ώστε να καθυστερήσει η έναρξη της εντολής 3 Τον κίνδυνο τον προκαλούν οι εντολές Load/store οι οποίες συμμετέχουν με 40% [KAE_ιδανικό] =1 κύκλος [ΚΑΕ_πραγματικό] = 1 + 40% χ 1 =1.4 κύκλοι

6 6 Κίνδυνοι δεδομένων(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

7 7 Κίνδυνοι δεδομένων και η λύση προώθησης (Forwarding) A-B Σωστό Β Λάθος Β

8 8 H λύση προώθησης (Fοrwarding)

9 9 Κίνδυνοι δεδομένων και η λύση προώθησης (Forwarding) Κύκλοι μηχανής 123456 ADD R1,R2,R3IFIDEXMEMWB SUB R4,R5,R1IFIDEXMEMWB AND R6,R1,R7IFIDEXMEM OR R8,R1,R9IFIDEX XOR R10,R1,R11IFID

10 10 Ολική προώθηση 1 2 3

11 11 Ακόμα ένα παράδειγμα κινδύνου δεδομένων Κύκλοι μηχανής 123456 ADD R1,R2,R3IFIDEXMEMWB LW R4,8(R1)IFIDEXMEMWB SW 12(R1),R4IFIDEXMEM

12 12 Κίνδυνοι δεδομένων – Λύση η προώθηση Κύκλοι μηχανής 123456 ADD R1,R2,R3IFIDEXMEMWB LW R4,8(R1)IFIDEXMEMWB SW 12(R1),R4IFIDEXMEM

13 13 Ταξινόμηση των κινδύνων δεδομένων  Ανάγνωση μετά από εγγραφή (Read-After-Write, RAW). Η εντολή j διαβάζει την τιμή από κάποια πηγή (καταχωρητή ή μνήμη) την οποία εγγράφει η εντολή i.  Εγγραφή μετά από εγγραφή (Write-After-Write, WAW). Η εντολή j γράφει μια τιμή πάνω στον ίδιο καταχωρητή ή μνήμη όπου γράφει και η εντολή i.  Εγγραφή μετά από ανάγνωση (Write-After-Read, WAR). Η εντολή j γράφει μια τιμή πάνω στον ίδιο καταχωρητή ή θέση μνήμης την οποία διαβάζει η εντολή i. Υπόθεση: η εντολή i εκτελείται πριν από την j.

14 14 Λύσεις  Ανάγνωση μετά από εγγραφή (Read-After-Write, RAW)  Λύση η προώθηση

15 15 Λύσεις  Εγγραφή μετά από εγγραφή (Write-After-Write, WAW)  Υπάρχει κίνδυνος μόνο όταν η εγγραφή που κάνει η εντολή i τελειώνει μετά από την εγγραφή που κάνει η εντολή j διότι τότε ο καταχωρητής ή η μνήμη μένουν ενημερωμένοι με την λανθασμένη τιμή.  Δεν υπάρχει κίνδυνος όταν οι έγγραφες διαρκούν ένα κύκλο(DLX)  Σε pipeline όπου οι έγγραφες διαρκούν πολλούς κύκλους η λύση είναι η εισαγωγή νεκρών κύκλων

16 16 WAW σε pipeline με εγγραφή σε ένα κύκλο Κύκλοι μηχανής 123456 LW R1,8(R4)IFIDEXMEMWB ADD R1,R2,R3IFIDEXMEM WB Κύκλοι μηχανής 123456 LW R1,8(R4)IFIDEXMEM1MEM2WB ADD R1,R2,R3IFIDEX WB WAW σε pipeline με εγγραφή σε πολλούς κύκλους Νεκρός κύκλος H εντολή ADD δεν έχει κύκλο MEM

17 17 Λύσεις  Εγγραφή μετά από ανάγνωση (Write-After-Read, WAR)  Υπάρχει κίνδυνος μόνο όταν η εγγραφή που κάνει η εντολή i τελειώνει μετά από την εγγραφή που κάνει η εντολή j διότι τότε ο καταχωρητής ή η μνήμη μένουν ενημερωμένοι με την λανθασμένη τιμή.  Δεν υπάρχει κίνδυνος στη DLX μηχανή γιατί η ανάγνωση τιμών γίνεται στη φάση ID και η εγγραφή στη φάση WB  Σε pipeline όπου οι έγγραφες διαρκούν πολλούς κύκλους λύση είναι η εισαγωγή νεκρών κύκλων

18 18 WAR στη pipeline του DLX Κύκλοι μηχανής 1234567 SW R4,8(R1)IFIDEXMEM WB ADD R1,R2,R3IFIDEX WB WAR σe pipeline με εγγραφή μνήμης σε 3 κύκλους με το δεύτερο κύκλο αφιερωμένο στον υπολογισμό της διεύθυνσης Κύκλοι μηχανής 1234567 SW R4,8(R1) IFIDEXMEM1MEM2ΜΕΜ3WB ADD R1,R2,R3 IFIDEX WB Εισαγωγή δύο νεκρών κύκλων

19 19 Κίνδυνοι που απαιτούν εισαγωγή νεκρών κύκλων (Το πρόβλημα load before arithmetic) Κύκλοι μηχανής 123456 LW R1,8(R2)IFIDEXMEMWB SUB R4,R1,R5IFIDEXMEMWB

20 20 LW R1, 8(R2) SUB R4,R5,R1 IF IR  Mem[PC] NPC  PC + 4 IF ID 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

21 21 Ο κίνδυνος LW–SUB λύνεται με εισαγωγή νεκρού κύκλου και προώθηση στη συνέχεια Κύκλοι μηχανής 1234567 LW R1,8(R2)IFIDEXMEMWB SUB R4,R1,R5IFIDνεκρόEXMEMWB

22 22 Λύση με επαναδιάταξη (σε επίπεδο μεταφραστή) Αρχική μετάφραση 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

23 23 Κίνδυνοι έλεγχου – το πρόβλημα Κύκλοι μηχανής 123456789 Εντολή branchIFIDEXMEMWB Επόμενη εντολήIFνεκρό IFIDEXMEMWB Επόμενη εντολή+1IFIDEXMEM Επόμενη εντολή+2IFIDEX Απόκτηση της εντολή μετά το αληθές branch Απώλεια κύκλων στην περίπτωση αληθούς εντολής αλλαγής ροής

24 24 Το κόστος μιας εντολής αλλαγής ροής Το κόστος  Αν τα άλματα, για παράδειγμα, αποτελούν το 20% όλων των εντολών τότε ο χρόνος εκτέλεσης γίνεται 1 κύκλος για το 80% των εντολών και 4 κύκλοι για το 20% των εντολών, δηλαδή ο Μέσος Χρόνος Εκτέλεσης (ΜΧΕ) μιας εντολής γίνεται ΜΧΕ = 0.8  1 + 0.2  4 = 1.6 κύκλοι ανά εντολή Η λύση  Να βρούμε αν το άλμα θα γίνει ή όχι νωρίτερα από τη φάση MEM  Να υπολογίζουμε τη διεύθυνση του στόχου του άλματος νωρίτερα από τη φάση MEM.

25 25 Τροποποίηση στο Hardware (By Gurpur M. Prabhu)Gurpur M. Prabhu

26 26 Τροποποίηση hardware – Σύγκριση αρχικής και τροποποιημένης μορφής Αρχική Τελική

27 27 Εντολή αλλαγής ροής στη τροποποιημένη pipeline Κύκλοι μηχανής 123456789 Εντολή branchIFIDEXMEMWB Επόμενη εντολήIF IDEXMEMWB Επόμενη εντολή+1IFIDEXMEMWB Επόμενη εντολή+2IFIDEXMEMWB Λάθος εντολή Σωστή εντολή

28 28 Τεχνικές Βελτίωσης πέρα από την τροποποίηση του Hardware  Εισαγωγή πάντα ενός κύκλου καθυστέρησης  Πρόβλεψη ότι το άλμα δεν θα γίνει (predict not taken)  Πρόβλεψη ότι το άλμα θα γίνει (predict taken)  Καθυστερημένο άλμα (delayed branch)

29 29 Εισαγωγή πάντοτε νεκρού κύκλου Κύκλοι μηχανής 123456789 Εντολή branchIFIDEXMEMWB Επόμενη εντολήΝεκρός κύκλος IFIDEXMEMWB Επόμενη εντολή+1IFIDEXMEMWB Επόμενη εντολή+2IFIDEXMEMWB Κατά τη διάρκεια της φάσης 2 μαθαίνουμε πια θα είναι η σωστή εντολή που θα ακολουθήσει της εντολής αλλαγής ροής

30 30 Πρόβλεψη ότι το άλμα δεν θα γίνει (predict not taken) Κύκλοι μηχανής 12345678 Εντολή i (άλμα) το άλμα δεν εκτελείται IFIDEXMEMWB Εντολή i+1IFIDEXMEMWB Εντολή i+2IFIDEXMEMWB Εντολή i+3IFIDEXMEMWB

31 31 Πρόβλεψη ότι το άλμα θα γίνει (predict taken) Κύκλοι μηχανής 12345678 Εντολή i (άλμα) το άλμα εκτελείται IFIDEXMEMWB Εντολή i+1IF  Εντολή jIFIDEXMEMWB Εντολή j+1IFIDEXMEMWB

32 32 Καθυστερημένο άλμα (delayed branch) Κύκλοι μηχανής 12345678 Εντολή i (άλμα) το άλμα εκτελείται IFIDEXMEMWB Εντολή i+1IFIDEXMEMWB Εντολή jIFIDEXMEMWB Εντολή j+1IFIDEXMEMWB

33 33 Επίδοση μεθόδων διαχείρισης αλμάτων ΜέθοδοςΚόστος για άλματα υπό συνθήκη (μέσος αριθμός κύκλων) Κόστος για άλματα χωρίς συνθήκη (μέσος αριθμός κύκλων) Μέσο κόστος για όλα τα είδη αλμάτων Μέσος αριθμός κύκλων ανά εντολή (ΚΑΕ) Καθυστέρηση πάντα1111.17 Πρόβλεψη ότι το άλμα δε θα γίνει 0.6210.691.12 Καθυστερημένο άλμα0.2500.211.04


Κατέβασμα ppt "1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google