Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 4 Ο επεξεργαστής Ασκήσεις Η αρίθµηση των ασκήσεων είναι από την 4 η έκδοση του «Οργάνωση και Σχεδίαση Υπολογιστών: η διασύνδεση υλικού και λογισµικού», D.A.Patterson, J.L.Hennessy
Άσκηση 4.1 Οι διάφορες εντολές χρησιµοποιούν διαφορετικά µπλοκ του υλικού στη βασική υλοποίηση του ενός κύκλου. Τα επόµενα τρία προβλήµατα αυτής της άσκησης αναφέρονται στην παρακάτω εντολή: Εντολή Ερµηνεία α. add Rd,Rs,Rt Reg[Rd]=Reg[Rs]+Reg[rt] β. lw Rt,Offs(Rs) Reg[Rt]=Mem[Reg[Rs]+Offs] Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 2
Άσκηση 4.1 (συνέχεια) 4.1.1 Ποιες είναι οι τιµές των σηµάτων ελέγχου που δηµιουργεί η µονάδα ελέγχου της Εικόνας 4.2 για την εντολή αυτή; Η εικόνα 4.2 φαίνεται στην επόµενη σελίδα. Ενδιαφερόµαστε για τις τιµές των 7 σηµάτων ελέγχου: RegWrite, MemRead, MemWrite, ALUMux, ALUOp, RegMux, Branch ALUMux είναι το σήµα που ελέγχει τη δεύτερη είσοδο της ALU (τιµή 0 αν προέρχεται από καταχωρητή, τιµή 1 αν προέρχεται από το Immediate πεδίο) και RegMux είναι το σήµα που ελέγχει την είσοδο δεδοµένων του αρχείου καταχωρητών (0 σηµαίνει είσοδος από την ALU, 1 σηµαίνει είσοδος από τη µνήµη) Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 3
Εικόνα 4.2 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 4
Άσκηση 4.1 (συνέχεια) Άρα, για την εντολή add και την εντολή lw οι τιµές των 7 σηµάτων ελέγχου είναι: Εντολή RegWrite MemRead ALUMux add Rd,Rs,Rt 1 0 0 (Reg) lw Rt,Offs(Rs) 1 1 1 (Imm) Εντολή MemWrite ALUOp RegMux Branch add Rd,Rs,Rt 0 Add 0 (ALU) 0 lw Rt,Offs(Rs) 0 Add 1 (Mem) 0 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 5
Άσκηση 4.1 (συνέχεια) 4.1.2 Ποιοι πόροι (µπλοκ) εκτελούν χρήσιµη λειτουργία για την εντολή αυτή; Στην εντολή add όλοι οι πόροι εκτελούν χρήσιµη λειτουργία εκτός από τη µνήµη δεδοµένων και τον αθροιστή που υπολογίζει τη διεύθυνση της διακλάδωσης Στην εντολή lw όλοι οι πόροι εκτελούν χρήσιµη λειτουργία εκτός από τον αθροιστή που υπολογίζει τη διεύθυνση της διακλάδωσης και τη δεύτερη θύρα ανάγνωσης του αρχείου καταχωρητών Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 6
Άσκηση 4.1 (συνέχεια) 4.1.3 Ποιοι πόροι (µπλοκ) παράγουν εξόδους, αλλά οι έξοδοί τους δε χρησιµοποιούνται σε αυτή την εντολή; Ποιοι πόροι δεν παράγουν εξόδους για την εντολή αυτή; Εντολή add Rd,Rs,Rt lw Rt,Offs(Rs) Έξοδοι που δε χρησιµοποιούνται Του αθροιστή της διεύθυνσης διακλάδωσης Του αθροιστή της διεύθυνσης διακλάδωσης και της δεύτερης θύρας ανάγνωσης του αρχείου καταχωρητών εν παράγουν έξοδο Μνήµη δεδοµένων Κανείς (όλοι οι πόροι παράγουν εξόδους) Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 7
Άσκηση 4.1 (συνέχεια) ιαφορετικές µονάδες εκτέλεσης και µπλοκ ψηφιακής λογικής έχουν διαφορετικούς λανθάνοντες χρόνους (latencies χρόνοι που απαιτούνται για να κάνουν τη δουλειά τους). Στην Εικόνα 4.2 υπάρχουν επτά είδη κύριων µπλοκ. Οι λανθάνοντες χρόνοι των µπλοκ κατά µήκος της κρίσιµης διαδροµής (αυτής µε το µεγαλύτερο λανθάνοντα χρόνο) για µια εντολή καθορίζουν τον ελάχιστο λανθάνοντα χρόνο αυτής της εντολής. Για τα υπόλοιπα τρία προβλήµατα αυτής της άσκησης, υποθέστε τους παρακάτω λανθάνοντες χρόνους των πόρων: Μνήµη εντολών Αθρ. Πολ/κτης ALU Καταχ/τές Μνήµη δεδοµ. Έλεγχος α. 400ps 100ps 30ps 120ps 200ps 350ps 100ps β. 500ps 150ps 100ps 180ps 220ps 1000ps 65ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 8
Άσκηση 4.1 (συνέχεια) 4.1.4 Ποια είναι η κρίσιµη διαδροµή για µια εντολή and του MIPS; Μία µακριά διαδροµή για την εντολή and είναι: ανάγνωση εντολής, ανάγνωση καταχωρητών, διεύλευση από τον ALUMux, εκτέλεση λειτουργίας ALU, διέλευση από πολ/κτη που ελέγχει τα δεδοµένα εγγραφής των καταχωρητών και εγγραφή σε καταχωρητή: I-Mem, Regs, Mux, ALU, Mux, Regs Παρόµοια είναι και η διαδροµή που περνά µέσα από τη µονάδα Ελέγχου όσο διαβάζονται οι καταχωρητές: I-Mem, Control, Mux, ALU, Mux, Regs Οι υπόλοιπες διαδροµές είναι συντοµότερες. Add, Mux (αύξηση του PC) I-Mem, Control, Mux (διαδροµή αποφυγής διακλάδωσης) I-Mem, Control (διαδροµή αποφυγής εγγραφής στη µνήµη) κλπ Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 9
Άσκηση 4.1 (συνέχεια) Άρα, στην εντολή add επειδή ο Ελεγχος είναι ταχύτερος από τoυς Καταχωρητές, τόσο µε τα δεδοµένα στο α. όσο και µε τα δεδοµένα στο β., η κρίσιµη διαδροµή είναι I-Mem, Regs, Mux, ALU, Mux, Regs Και είναι ίση µε α. 400+200+30+120+30+200 = 980ps β. 500+220+100+180+100+220 = 1320ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 10
Άσκηση 4.1 (συνέχεια) 4.1.5 Ποια είναι η κρίσιµη διαδροµή για µια εντολή φόρτωσης (load) του MIPS; Μία µακρυά διαδροµή είναι: ανάγνωση εντολής, ανάγνωση καταχωρητών, πολ/κτης επιλογής του άµεσου πεδίο σαν δεύτερη είσοδο της ALU, χρήση της ALU (υπολ/µος δνσης), προσπέλαση µνήµης δεδοµένων, χρήση του πολ/κτη για εγγραφή στο αρχείο καταχωρητών, εγγραφή καταχωρητή: I-Mem, Regs, Mux, ALU, D-Mem, Mux, Regs. Μια δεύτερη διαδροµή είναι παρόµοια αλλά περνά µέσα από τη µονάδα Ελέγχου αντί για τους καταχωρητές (για να γεννήσει το σήµα ελέγχου του ALUMux). Οι άλλες διαδροµές είναι συντοµότερες (όµοια µε την 4.1.4). Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 11
Άσκηση 4.1 (συνέχεια) Άρα, στην εντολή load επειδή ο Ελεγχος είναι ταχύτερος από τoυς Καταχωρητές, τόσο µε τα δεδοµένα στο α. όσο και µε τα δεδοµένα στο β., η κρίσιµη διαδροµή είναι I-Mem, Regs, Mux, ALU, D-Mem, Mux, Regs Και είναι ίση µε α. 400+200+30+120+350+30+200 = 1330ps β. 500+220+100+180+1000+100+220 = 2320ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 12
Άσκηση 4.1 (συνέχεια) 4.1.6 Ποια είναι η κρίσιµη διαδροµή για µια εντολή beq του MIPS; Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 13
Άσκηση 4.1 (συνέχεια) Η beq έχει 2 µακρύτερες διαδροµές, αυτές που καθορίζουν τη συνθήκη και αυτές που υπολογίζουν το νέο PC. Για το πρώτο: ανάγνωση εντολής, ανάγνωση καταχωρητών ή χρήση Ελέγχου, µετά χρήση ALUMux, χρήση ALU (σύγκριση), και χρήση του Zero της ALU για έλεγχο του πολυπλέκτη επιλογής PC. Όπως στα 4.1.4, 4.1.5 η πρώτη διαδροµή (µέσω Καταχωρητών) είναι µακρύτερη (στο α και στο β). Για τον υπολογισµό του PC, µια διαδροµή είναι η αύξηση κατά 4 (Add), πρόσθεση του offset (Add) και επιλογή αυτής της τιµή σαν νέο PC (Mux). Η άλλη διαδροµή είναι η ανάγνωση της εντολής (λήψη του offset) χρήση της µονάδας Add της διακλάδωσης και του Mux. Και οι δύο είναι συντοµότερες από τον έλεγχο της συνθήκης διακλάδωσης αφού η I-Mem είναι πιο αργή από τη µονάδα PC+4 Add και επειδή η ALU είναι πιο αργό από τη Add της διακλάδωσης. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 14
Άσκηση 4.2 Η βασική υλοποίηση ενός κύκλου του MIPS της Εικόνας 4.2 µπορεί να υλοποιήσει µόνο µερικές εντολές. Σε µια υπάρχουσα ISA µπορούν να προστεθούν νέες εντολές, αλλά η απόφαση αν αυτό θα γίνει ή όχι εξαρτάται, από το κόστος και την πολυπλοκότητα που εισάγει µια τέτοια προσθήκη στη διαδροµή δεδοµένων και τη µονάδα ελέγχου του επεξεργαστή. Τα πρώτα τρία προβλήµατα αυτής της άσκησης αναφέρονται σε αυτή τη νέα εντολή: Εντολή Ερµηνεία α. add3 Rd,Rs,Rt,Rx Reg[Rd]= Reg[Rs]+Reg[rt]+Reg[Rx] β. sll Rt,Rd,Shift Reg[Rd]= Reg[Rt] << Shift (αριστερή ολίσθηση κατά Shift bit) Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 15
Και πάλι η Εικόνα 4.2 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 16
Άσκηση 4.2 (συνέχεια) 4.2.1 Ποια υπάρχοντα µπλοκ (αν υπάρχουν) µπορούν να χρησιµοποιηθούν για την εντολή αυτή; Η εντολή add3 χρησιµοποιεί: Τη µνήµη εντολών Τις δύο θύρες ανάγνωσης των Καταχωρητών Τη θύρα εγγραφής των Καταχωρητών Η εντολή sll χρησιµοποιεί: Τη µνήµη εντολών Τη µία θύρα ανάγνωσης των Καταχωρητών Τη διαδροµή που οδηγεί το Immediate στην ALU Τη θύρα εγγραφής των Καταχωρητών Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 17
Άσκηση 4.2 (συνέχεια) 4.2.2 Ποια νέα λειτουργικά µπλοκ (αν υπάρχουν) χρειαζόµαστε για την εντολή αυτή; Η εντολή add3 χρειάζεται άλλη µία θύρα ανάγνωσης από τους Καταχωρητές και είτε µια δεύτερη ALU για να προσθέσει το Rx στο (Rs+Rt) ή µια τρίτη είσοδο στην υπάρχουσα ALU Η εντολή sll χρειάζεται να επεκτείνει την ALU ώστε να κάνει και ολίσθηση (µε µια επιπλέον λειτουργία SLL) Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 18
Άσκηση 4.2 (συνέχεια) 4.2.3 Ποια νέα σήµατα (αν υπάρχουν) χρειαζόµαστε από τη µονάδα ελέγχου για την υποστήριξη της εντολής αυτής; Η εντολή add3 χρειάζεται ένα σήµα ελέγχου για τη νέα ALU ή αν επεκτείνουµε την υπάρχουσα ALU πρέπει να προστεθεί µια νέα λειτουργία ADD3 Η εντολή sll απαιτεί αλλαγή των σηµάτων ελέγχου της λειτουργίας της ALU ώστε να εκτελεί τη νέα λειτουργία ολίσθησης SLL Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 19
Άσκηση 4.2 (συνέχεια) Όταν οι σχεδιαστές επεξεργαστών εξετάζουν µια πιθανή βελτίωση της διαδροµής δεδοµένων, η απόφαση συνήθως εξαρτάται από το συµβιβασµό µεταξύ κόστους και απόδοσης. Στα επόµενα τρία προβλήµατα, υποθέστε ότι ξεκινούµε µε µια διαδροµή δεδοµένων της Εικόνας 4.2, όπου τα µπλοκ Μνήµη Εντολών, Αθροιστής, Πολυπλέκτης, ALU, Καταχωρητές, Μνήµη εδοµένων και Έλεγχος έχουν λανθάνοντες χρόνους 400ps, 100ps, 30ps, 120ps, 200ps, 350ps, και 100ps, αντίστοιχα, και κόστος 1000, 30, 10, 100, 200, 2000, και 500, αντίστοιχα. Τα υπόλοιπα τρία προβλήµατα αυτής της άσκησης αναφέρονται στην παρακάτω βελτίωση του επεξεργαστή: Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 20
Άσκηση 4.2 (συνέχεια) Βελτίωση Λανθάνων χρόνος Κόστος Όφελος α. Ταχύτερος αθροιστής β. Μεγαλύτερο αρχείο καταχωρητών (περισσότεροι καταχωρητές) 20ps για τις µονάδες αθροιστή +100ps για τους καταχωρητές +20 ανά µονάδα αθροιστή +200 για τους καταχωρητές Αντικατάσταση υπαρχουσών µονάδων αθροιστή µε ταχύτερες. Χρειάζονται λιγότερες εντολές load και store για να αποθηκεύονται και να επαναφέρονται οι τιµές των καταχωρητών. Αυτό έχει ως αποτέλεσµα 5% λιγότερες εντολές. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 21
Άσκηση 4.2 (συνέχεια) 4.2.4 Ποιος είναι ο χρόνος κύκλου ρολογιού µε και χωρίς τη βελτίωση αυτή; Ο χρόνος κύκλου ρολογιού καθορίζεται από τη κρίσιµη διαδροµή που µε τους δεδοµένους λανθάνοντες χρόνους είναι όταν λαµβάνουµε την τιµή των δεδοµένων από την εντολή load: I-Mem (ανάγν.εντολής), Regs (πιο αργό από τον Έλεγχο), Mux (επιλογή εισόδου ALU), ALU, D-Mem, Mux (επιλογή τιµής µνήµης για εγγραφή σε καταχωρητές), εγγραφή σε Καταχωρητή. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 22
Άσκηση 4.2 (συνέχεια) Έτσι, ο λανθ.χρόνος αυτής της διαδροµής (χωρίς καµία από τις τροποποιήσεις) είναι = 400ps + 200ps + 30ps + 120ps + 350ps + 30ps + 200ps= 1330ps. Αν γίνει η τροποποίηση (α ταχύτερος αθροιστής) τότε ο λανθάνων χρόνος δε θα αλλάξει αφού ο αθροιστής δεν είναι στην κρίσιµη διαδροµή. Ο χρόνος θα µείνει 1330ps. Αν γίνει η τροποποίηση (β µεγαλύτερο αρχείο καταχωρητών) τότε ο λανθ.χρόνος θα επιβαρυνθεί δύο φορές από 100ps (ανάγνωση και εγγραφή καταχωρητή. Άρα ο χρόνος θα γίνει 1530ps. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 23
Άσκηση 4.2 (συνέχεια) 4.2.5 Ποια είναι η επιτάχυνση που επιτυγχάνεται µε τη προσθήκη αυτής της βελτίωσης; Η επιτάχυνση σχετίζεται µε τον κύκλο ρολογιού κάθε περίπτωσης και µε τον αριθµό των κύκλων. Το (α) θα επιφέρει επιτάχυνση 1 (δηλ.καµία αλλαγή) αφού δεν αλλάζει ούτε ο κύκλος ρολογιού ούτε το πλήθος κύκλων. Το (β) επιβαρύνει το χρόνου του κύκλου (από 1330 σε 1530, κατά +15%), αλλά θα εκτελεστούν 5% λιγότεροι κύκλοι. Τελικά η επιτάχυνση θα είναι ίση µε = Τ παλιός /Τ νέος = [Κύκλοι x Χρ.Κύκλου] / [0,95 Κύκλοι x 1,15 Χρ.Κύκλου] = 0,915 δηλαδή το πρόγραµµα επιβραδύνεται Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 24
Άσκηση 4.2 (συνέχεια) 4.2.6 Συγκρίνετε το λόγο κόστους προς απόδοση µε και χωρίς αυτή τη βελτίωση. Το κόστος εξαρτάται από όλα τα συστατικά του επεξεργαστή. Το αρχικό κόστος είναι ίσο µε της µνήµης εντολών, των καταχωρητών, του ελέγχου, της µνήµης εντολών, της ALU, 2 αθροιστών και 3 πολ/κτων. Αρχικό κόστος 3890. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 25
Άσκηση 4.2 (συνέχεια) Με την αλλαγή (α) το κόστος αυξάνεται κατά 2x20 (2 αθροιστές) = 3930. Αύξηση κόστους 1,03%. Επειδή η απόδοση µένει ίδια (επιτάχυνση 1 όπως είδαµε) αυτό σηµαίνει ότι η ίδια απόδοση µας κοστίζει λίγο περισσότερο. Ο λόγος κόστους/απόδοσης είναι ίσος µε 1,0103/1 = 1,0103. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 26
Άσκηση 4.2 (συνέχεια) Με την αλλαγή (β) το κόστος αυξάνεται κατά 200 (στους καταχωρητές) = 4090. Αύξηση κόστους 5,14%. Επειδή η απόδοση µειώνεται (επιτάχυνση 0,915 < 1 όπως είδαµε) αυτό σηµαίνει ότι και η απόδοση µειώνεται αλλά και µας κοστίζει λίγο περισσότερο. Ο λόγος κόστους/απόδοσης είναι ίσος µε 1,0514/0,915 = 1,1491 (χειροτερεύει). Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 27
Άσκηση 4.6 Τα προβλήµατα αυτής της άσκησης υποθέτουν ότι τα λογικά µπλοκ που χρειάζονται για την υλοποίηση της διαδροµής δεδοµένων ενός επεξεργαστή έχουν τους επόµενους λανθάνοντες χρόνους: Μνήµη εντολών Αθρ. Πολ/ κτης ALU Κατάχωρητές Μνήµη δεδο- µένων Επέκταση προσή- µου Αριστερή ολίσθηση κατά 2 α. 400ps 100ps 30ps 120ps 200ps 350ps 20ps 2ps β. 500ps 150ps 100ps 180ps 220ps 1000ps 90ps 20ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 28
Άσκηση 4.6 (συνέχεια) 4.6.1 Αν το µόνο που χρειαζόµαστε να κάνουµε σε έναν επεξεργαστή είναι η προσκόµιση διαδοχικών εντολών (Εικόνα 4.6), πόσος θα ήταν ο χρόνος του κύκλου; Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 29
Άσκηση 4.6 (συνέχεια) Η µνήµη δεδοµένων καθυστερεί περισσότερο από τον αθροιστή οπότε ο χρόνος του κύκλου ρολογιού είναι ίσος µε το λανθάνοντα χρόνο της. (α) 400ps (β) 500ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 30
Άσκηση 4.6 (συνέχεια) 4.6.2 Θεωρήστε µια διαδροµή δεδοµένων παρόµοια µε αυτή της Εικόνας 4.11, αλλά για έναν επεξεργαστή που έχει µόνον έναν τύπο εντολής: διακλάδωση σχετική ως προς τον PC χωρίς συνθήκη (unconditional PCrelative branch). Πόσος θα ήταν ο χρόνος του κύκλου γι αυτή τη διαδροµή δεδοµένων; Η µεγαλύτερη διαδροµή είναι: µνήµη εντολών επέκταση προσήµου + ολίσθηση + αθροιστής + πολυπλέκτης = (α) σύνολο 552ps, (β) σύνολο 860ps Η διαδροµή µέσω του άλλου αθροιστή είναι συντοµότερη αφού η µνήµη εντολών έχει µεγαλύτερη καθυστέρηση Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 31
Εικόνα 4.11 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 32
Άσκηση 4.6 (συνέχεια) 4.6.3 Επαναλάβετε την Άσκηση 4.6.2, αλλά αυτή τη φορά πρέπει να υποστηρίζονται µόνο διακλαδώσεις σχετικές ως προς τον PC υπό συνθήκη (conditional PC-relative branches). Οι διακλαδώσεις υπό συνθήκη έχουν δύο µεγάλες διαδροµές. Η µία είναι η ίδια που είδαµε πριν για τον υπολογισµό της δνσης διακλάδωσης. Η δεύτερη είναι ο έλεγχος της συνθήκης (η τιµή του PCSrc τελικά) και περνά µέσα από: µνήµη εντολών, καταχωρητές, πολυπλέκτη, ALU. Ο χρόνος του ρολογιού καθορίζεται από την πιο αργή από τις δύο αυτές διαδροµές. Για τιµές των λανθανόντων χρόνων που δόθηκαν πιο αργή είναι η δεύτερη διαδροµή. Για το (α) είναι ίση µε 400+200+30+120+30= 780ps, και για το (β) είναι ίση µε 500+90+20+150+100 = 860ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 33
Εικόνα 4.11 και πάλι Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 34
Άσκηση 4.6 (συνέχεια) Τα τρία υπόλοιπα προβλήµατα αυτής της άσκησης αναφέρονται στα επόµενα λογικά µπλοκ (πόρους) της διαδροµής δεδοµένων: Πόρος α. Πρόσθεση 4 (στον PC) β. Μνήµη δεδοµένων Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 35
Άσκηση 4.6 (συνέχεια) 4.6.4 Ποια είδη εντολών απαιτούν αυτόν τον πόρο; Πόρος Απαιτείται α. Πρόσθεση 4 (στον PC) Όλες οι εντολές εκτός από τα άλµατα που δεν είναι σχετικά ως προς τον PC (δηλαδή οι εντολές j, jr, jal, jalr) β. Μνήµη δεδοµένων Μόνο οι εντολές φόρτωσης και αποθήκευσης 4.6.5 Για ποια είδη εντολών (αν υπάρχουν) βρίσκεται ο πόρος αυτός στην κρίσιµη διαδροµή; Πόρος Στην κρίσιµη διαδροµή α. Πρόσθεση 4 (στον PC) Καµίας. Η µνήµη εντολών είναι πιο αργή. β. Μνήµη δεδοµένων Των φορτώσεων και αποθηκεύσεων. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 36
Άσκηση 4.6 (συνέχεια) 4.6.6 Με την παραδοχή ότι υποστηρίζουµε µόνο τις εντολές beq και add, συζητήστε πώς επιδρούν οι αλλαγές στο λανθάνοντα χρόνο αυτού του πόρου στον κύκλο ρολογιού του επεξεργαστή. Υποθέστε ότι οι λανθάνοντες χρόνοι των άλλων πόρων δεν αλλάζουν. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 37
Άσκηση 4.6 (συνέχεια) Μεταξύ των δύο, η bne έχει µεγαλύτερη κρίσιµη διαδροµή και καθορίζει το κύκλο ρολογιού. Κάθε διαδροµή της add είναι συντοµότερη ή ίση µε την αντίστοιχη της bne, συνεπώς αλλαγές στο λανθ.χρόνο των µονάδων δεν θα επηρεάσουν αυτή τη σχέση. Άρα, εστιάζουµε στο πως επηρεάζουν οι αλλάγες λανθ.χρόνου των πόρων την κρίσιµη διαδροµή της bne. Πόρος α. Πρόσθεση 4 (στον PC) β. Μνήµη δεδοµένων Επίπτωση στο κύκλο ρολογιού Ο πόρος δεν είναι στη κρίσιµη διαδροµή. Άρα αλλαγή του λανθ.χρόνου του θα επηρεάσει το κύκλο ρολογιού µόνο αν είναι τόσο µεγάλη ώστε να δηµιουργήσει νέα κρίσιµη διαδροµή µέσω αυτού, του αθροιστή της διακλάδωσης και του πολυπλέκτη του PC. Ο λανθ.χρόνος αυτής της διαδροµής είναι 230ps και πρέπει να γίνει µεγαλύτερος από 780ps, άρα ο χρόνος της µονάδας αυτής πρέπει να γίνει µεγαλύτερος από 650ps. Ο πόρος δε χρησιµοποιείται ούτε από την bne ούτε από την add, άρα δεν επηρεάζει το χρόνο του ρολογιού. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 38
Άσκηση 4.8 Όταν κατασκευάζονται τα τσιπ πυριτίου, ατέλειες στα υλικά (π.χ. πυρίτιο) και κατασκευαστικά σφάλµατα µπορούν να οδηγήσουν σε ελαττωµατικά κυκλώµατα. Μια συνηθισµένη ατέλεια είναι ένας αγωγός να επιδρά στο σήµα ενός άλλου. Αυτό ονοµάζεται ελάττωµα παρεµβολής (cross-talk fault). Μια ειδική περίπτωση ελαττωµάτων παρεµβολής είναι όταν ένα σήµα συνδέεται σε έναν αγωγό που έχει σταθερή λογική τιµή (π.χ. έναν αγωγό τροφοδοσίας ρεύµατος). Στην περίπτωση αυτή έχουµε ένα ελάττωµα προσκόλλησης στο 0 (stuck-at-0 fault) ή ένα ελάττωµα προσκόλλησης στο 1 (stuck-at-1 fault), και το σήµα που επηρεάζεται έχει πάντα λογική τιµή 0 ή 1, αντίστοιχα. Τα παρακάτω προβλήµατα αναφέρονται στο επόµενο σήµα της Εικόνας 4.24: Σήµα α. Μνήµη εντολών, έξοδος Εντολή, bit 7 β. Μονάδα ελέγχου, έξοδος MemtoReg Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 39
Εικόνα 4.24 (β) σήµα MemtoReg (α) το bit 7 της Εντολής Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 40
Άσκηση 4.8 (συνέχεια) 4.8.1 Ας υποθέσουµε ότι εκτελούµε δοκιµή (testing) του επεξεργαστή τοποθετώντας στον PC, τους καταχωρητές, και τις µνήµες εντολών και δεδοµένων κάποιες τιµές (µπορείτε να επιλέξετε ποιες), αφήνοντας µια εντολή να εκτελεστεί, και µετά διαβάζοντας τον PC, τις µνήµες, και τους καταχωρητές. Αυτές οι τιµές εξετάζονται στη συνέχεια για να προσδιοριστεί αν υπάρχει ένα συγκεκριµένο ελάττωµα. Μπορείτε να σχεδιάσετε µια δοκιµή (τιµές του PC, των µνηµών, και των καταχωρητών) που θα προσδιορίζει αν υπάρχει ένα ελάττωµα προσκόλλησης στο 0 για το σήµα αυτό; Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 41
Άσκηση 4.8 (συνέχεια) Για να εκτελέσουµε µια δοκιµή για προσκόλληση στο 0 χρειαζόµαστε µια εντολή που σε σωστή λειτουργία θέτει το συγκεκριµένο σήµα στη τιµή 1 (την αντίθετη), και συνεπώς λόγω του ελαττώµατος προσκόλλησης στο 0 έχει διαφορετικό αποτέλεσµα από το σωστό (α) (bit 7 της εντολής) το bit 7 της εντολής χρησιµοποιείται για παράδειγµα σαν µέρος του άµεσου (immediate) πεδίου µιας εντολής. Άρα, ένας τρόπος είναι να εκτελέσουµε µια εντολή addi $s1, $zero, 128 που κανονικά θα πρέπει να γράψει το 128 στον $s1. Αν όµως το bit 7 της εντολής είναι προσκολληµένο (µόνιµα) στο 0, τελικά ο $s1 θα πάρει την τιµή 0, αφού το 128 έχει όλο µηδενικά εκτός από το bit 7 που είναι ίσο µε 1. Σκεφθείτε κι άλλες δοκιµές για το ίδιο ελάττωµα Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 42
Άσκηση 4.8 (συνέχεια) (β) (σήµα ελέγχου MemtoReg) Οι µόνες εντολές που δίνουν την τιµή 1 στο σήµα αυτό είναι οι φορτώσεις (loads). Μπορούµε να κάνουµε τη δοκιµή γεµίζοντας τη µνήµη δεδοµένων µε µηδενικά και εκτελώντας µια εντολή φόρτωσης από µια οποιαδήποτε διεύθυνση (εκτός από τη δνση 0 της µνήµης). Π.χ. Την εντολή lw $s1, 1024($zero). Μετά την εντολή, η τιµή του $s1 θα έπρεπε να είναι µηδέν. Αν όµως το σήµα MemtoReg είναι µόνιµα προσκολληµένο στο 0, η τιµή του καταχωρητή $s1 θα είναι 1024 (ο Πολυπλέκτης θα επιλέξει την έξοδο της ALU (που είναι 1024 αφού η ALU κάνει τον υπολογισµό της διεύθυνσης) και όχι την τιµή από τη µνήµη. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 43
Άσκηση 4.8 (συνέχεια) 4.8.2 Επαναλάβετε την Άσκηση 4.8.1 για ένα ελάττωµα προσκόλλησης στο 1. Μπορείτε να χρησιµοποιήσετε µία µοναδική δοκιµή και για το ελάττωµα προσκόλλησης στο 0 και για το ελάττωµα προσκόλλησης στο 1; Αν ναι, εξηγήστε πώς αν όχι, εξηγήστε γιατί όχι. Επειδή µια δοκιµή για προσκόλληση στο 0 απαιτεί το σήµα να έχει τιµή 1 και µια δοκιµή για προσκόλληση στο 1 απαιτεί το σήµα να έχει τιµή 0, είναι προφανές ότι δεν υπάρχουν κοινές δοκιµές. Η δοκιµή για προσκόλληση στο 1 για τα δύο σήµατα έχει ως εξής: Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 44
Άσκηση 4.8 (συνέχεια) (α) (bit 7 της εντολής) το bit 7 της εντολής χρησιµοποιείται για παράδειγµα σαν µέρος του άµεσου (immediate) πεδίου µιας εντολής. Άρα, ένας τρόπος είναι να εκτελέσουµε µια εντολή addi $s1, $zero, 0 που κανονικά θα πρέπει να γράψει το 0 στον $s1. Αν όµως το bit 7 της εντολής είναι προσκολληµένο (µόνιµα) στο 1, τελικά ο $s1 θα πάρει την τιµή 128, αφού το 128 έχει όλο µηδενικά εκτός από το bit 7 που είναι ίσο µε 1. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 45
Άσκηση 4.8 (συνέχεια) (β) (σήµα ελέγχου MemtoReg) εν µπορούµε να βρούµε αξιόπιστη δοκιµή για το ελάττωµα αυτό, διότι όλες οι εντολές που βάζουν τη τιµή 0 στο σήµα MemtoReg βάζουν επίσης και τη τιµή 0 στο σήµα ReadMem (είναι οι εντολές φόρτωσης φυσικά). Αν χρησιµοποιηθεί µια από αυτές τις εντολές για τη δοκιµή του MemtoReg προσκολληµένο στο 1, η τιµή που θα γραφεί στον καταχωρητή προορισµού είναι «τυχαία» (ό,τι βρεθεί στα δεδοµένα εξόδου της Μνήµης εδοµένων). Αυτή η τιµή µπορεί να είναι και ίδια µε την τιµή που βρίσκεται ήδη στον καταχωρητή, κι έτσι αν το ελάττωµα υφίσταται η δοκιµή µπορεί να µη το ανιχνεύσει. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 46
Άσκηση 4.8 (συνέχεια) 4.8.3 Αν γνωρίζουµε ότι η επεξεργαστής έχει ένα ελάττωµα προσκόλλησης στο 1 σε αυτό το σήµα, είναι λογικό να θεωρήσουµε ότι µπορεί να χρησιµοποιηθεί; Για να είναι δυνατόν αυτό, πρέπει να µπορούµε να µετατρέψουµε οποιοδήποτε πρόγραµµα, που εκτελείται σε έναν κανονικό επεξεργαστή MIPS, σε ένα πρόγραµµα που δουλεύει σε αυτόν τον επεξεργαστή. Μπορείτε να υποθέσετε ότι υπάρχει αρκετή ελεύθερη µνήµη εντολών και µνήµη δεδοµένων για να κάνετε το πρόγραµµα µεγαλύτερο και να αποθηκεύσετε επιπλέον δεδοµένα. Υπόδειξη: ο επεξεργαστής µπορεί να χρησιµοποιηθεί αν κάθε «ελαττωµατική» εντολή λόγω του ελαττώµατος αυτού µπορεί να αντικατασταθεί από µια ακολουθία εντολών που «δουλεύουν» και πετυχαίνουν το ίδιο αποτέλεσµα. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 47
Άσκηση 4.8 (συνέχεια) (α) (bit 7 της εντολής) Είναι δυνατόν να βρούµε λύση για να παρακαµφθεί αυτό το ελάττωµα αλλά είναι ιδιαίτερα δύσκολο. Πρέπει να βρούµε όλες τις εντολές που έχουν 0 στο bit 7 του offset ή του άµεσου (immediate) πεδίου και να τις αντικαταστήσουµε µε κάποια ακολουθία «ασφαλών» εντολών. Για παράδειγµα, µια φόρτωση µε ένα τέτοιο offset πρέπει να αντικατασταθεί από µια εντολή που αφαιρεί 128 από τον καταχωρητή δνσης, µετά µια φόρτωση (µε το offset µεγαλύτερο κατά 128 για να τεθεί στο 1 το bit 7 του offset), και µετά αφαίρεση του 128 από τον καταχωρητή δνσης. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 48
Άσκηση 4.8 (συνέχεια) (β) (σήµα ελέγχου MemtoReg) εν µπορεί να παρακαµφθεί το πρόβληµα αυτό, διότι απαγορεύει σε όλες τις εντολές να αποθηκεύσουν το αποτέλεσµά τους σε καταχωρητή εκτός από τις εντολές load. Οι εντολές load µετακινούν δεδοµένα µόνο από τη µνήµη προς τους καταχωρητές, κι έτσι δεν µπορούν να χρησιµοποιηθούν για να «εξοµοιώσουν» τις λειτουργίες της ALU που «χαλάνε» λόγω αυτού του ελαττώµατος. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 49
Άσκηση 4.8 (συνέχεια) 4.8.4 Επαναλάβετε την Άσκηση 4.8.1, αλλά τώρα το ελάττωµα προς δοκιµή είναι αν το σήµα ελέγχου «MemRead» έχει αυτό το ελάττωµα. Αν το MemRead είναι προσκολληµένο στο 0, δεν µπορεί να γίνει ανάγνωση της µνήµης δεδοµένων από τις εντολές load. Συνεπώς µια δοκιµή µπορεί να αποτελείται από µια εντολή store που γράφει σε µια θέση µνήµης µια τιµή 0 και έπειτα µια load από την ίδια θέση προς έναν καταχωρητή που του έχει γραφεί προηγούµενα µια µη µηδενική τιµή. Η load θα έπρεπε να µηδενίσει τη τιµή του καταχωρητή αλλά λόγω του ελαττώµατος δεν θα το κάνει Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 50
Άσκηση 4.8 (συνέχεια) 4.8.5 Επαναλάβετε την Άσκηση 4.8.1, αλλά τώρα το ελάττωµα προς δοκιµή είναι αν το σήµα ελέγχου «Jump» έχει αυτό το ελάττωµα. Το ελάττωµα προσκόλλησης στο 0 στο σήµα Jump θα ενηµερώνει τον PC σε κάθε εντολή σαν να ήταν εντολή jump. Αν εκτελέσουµε µια εντολή addi µε µη µηδενικό πεδίο offset τότε µετά την εκτέλεσή της ο PC δε θα δείχνει στην επόµενη εντολή της addi αλλά σε µια άλλη δνση (που εξαρτάται από την τιµή του offset). Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 51
Άσκηση 4.8 (συνέχεια) 4.8.6 Χρησιµοποιώντας µία µοναδική δοκιµή που περιγράφεται στην Άσκηση 4.8.1, µπορούµε να ελέγξουµε για ελαττώµατα πολλά διαφορετικά σήµατα, αλλά τυπικά όχι όλα. Περιγράψτε µια σειρά δοκιµών για να δούµε αν υπάρχει αυτό το ελάττωµα σε όλες τις εξόδους των πολυπλεκτών (κάθε bit εξόδου καθενός από τους πέντε πολυπλέκτες). οκιµάστε το µε όσο το δυνατόν λιγότερες δοκιµές µίας εντολής. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 52
Άσκηση 4.8 (συνέχεια) Κάθε δοκιµή µε µία µόνο εντολή, «καλύπτει» όλα τα ελαττώµατα που, αν υπάρχουν, εχουν σαν αποτέλεσµα διαφορετική συµπεριφορά για την εντολή δοκιµής. Για να γίνει δοκιµή όσο περισσότερων ελαττωµάτων γίνεται µε µια εντολή, χρειαζόµαστε µια εντολή που δίνει σε όσο περισσότερα από αυτά τα σήµατα τιµές που θα έπρεπε να αλλάζουµε λόγω ενός ελαττώµατος. Μερικά σήµατα δεν µπορούν να δοκιµαστούν µε αυτή τη µέθοδο της µίας εντολής, διότι το ελάττωµα σε ένα σήµα µπορεί να εξακολουθεί να οδηγεί σε εντελώς σωστή εκτέλεση όλων των εντολών που ενεργοποιούν το ελάττωµα. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 53
Άσκηση 4.11 Στην άσκηση αυτή εξετάζουµε αναλυτικά τον τρόπο που εκτελείται µια εντολή σε µια διαδροµή δεδοµένων ενός κύκλου. Τα προβλήµατα αυτής της άσκησης αναφέρονται σε έναν κύκλο ρολογιού στον οποίο ο επεξεργαστής προσκοµίζει την επόµενη λέξη εντολής: Λέξη εντολής α. 10001100010000110000000000010000 β. 00010000001000110000000000001100 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 54
Άσκηση 4.11 (συνέχεια) 4.11.1 Ποιες είναι οι έξοδοι του µπλοκ «Επέκταση προσήµου» και του µπλοκ «Αριστερή ολίσθηση κατά 2» του άλµατος (στο επάνω αριστερό µέρος της Εικόνας 4.24) γι αυτή τη λέξη εντολής; Επέκταση προσήµου α. 00000000000000000000000000010000 β. 00000000000000000000000000001100 Αριστερή ολίσθηση κατά 2 α. 0001000011000000000001000000 β. 0000100011000000000000110000 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 55
Εικόνα 4.24 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 56
Άσκηση 4.11 (συνέχεια) 4.11.2 Ποιες είναι οι τιµές των εισόδων της µονάδας «Έλεγχος ALU» για την εντολή αυτή; ALUOp[1:0] Instruction[5:0] α. 00 010000 β. 01 001100 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 57
Άσκηση 4.11 (συνέχεια) 4.11.3 Ποια είναι η νέα διεύθυνση του PC µετά την εκτέλεση αυτής της εντολής; Σηµειώστε τη διαδροµή µέσω της οποίας προσδιορίζεται η τιµή αυτή. Νέος PC ιαδροµή α. PC+4 PC -> Add (PC+4) -> Πολ/κτης ιακλάδωσης -> Πολ/κτης Άλµατος -> PC β. Αν οι $1 και $3 δεν είναι ίσοι, PC+4 Αν είναι ίσοι, PC+4+4x12 PC -> Add (PC+4) -> Πολ/κτης ιακλάδωσης ή PC -> Add (PC+4) -> Add (offset) -> Πολ/κτης ιακλάδωσης Μετά τον Πολ/κτης της ιακλάδωσης πηγαίνει µέσω του Πολ/κτη Άλµατος στο PC Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 58
Άσκηση 4.11 (συνέχεια) Τα υπόλοιπα προβλήµατα αυτής της άσκησης θεωρούν ότι η µνήµη δεδοµένων είναι όλο µηδενικά και ότι οι καταχωρητές του επεξεργαστή έχουν τις επόµενες τιµές στην αρχή του κύκλου στον οποίο προσκοµίζεται η παραπάνω λέξη εντολής: $0 $1 $2 $3 $4 $5 $6 $8 $12 $31 α. 0 1 2 3 4 5 6 8 1 32 β. 0 16 2 3 4 10 6 1 8 4 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 59
Άσκηση 4.11 (συνέχεια) 4.11.4 Για κάθε πολυπλέκτη, δείξτε τις τιµές των εισόδων δεδοµένων του κατά την εκτέλεση αυτής της εντολής και γι αυτές τις τιµές καταχωρητών. WriteReg Mux ALU Mux Mem/ALU Mux Branch Mux Jump Mux α. 3 16 0 PC+4 PC+4 β. 3 ή 0 (RegDst είναι X) -3 Χ PC+4 PC+4 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 60
Άσκηση 4.11 (συνέχεια) 4.11.5 Για την ALU και τις δύο µονάδες Αθροιστών, ποιες είναι οι τιµές των εισόδων δεδοµένων τους; ALU Add (PC+4) Add (Branch) α. 2 και 16 PC και 4 PC+4 και 16x4 β. -16 και -3 PC και 4 PC+4 και 12x4 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 61
Άσκηση 4.11 (συνέχεια) 4.11.6 Ποιες είναι οι τιµές όλων των εισόδων της µονάδας «Καταχωρητές»; Καταχωρητής Ανάγνωσης 1 Καταχωρητής Ανάγνωσης 2 Καταχωρητής Εγγραφής εδοµένα Εγγραφής RegWrite α. 2 3 3 0 1 β. 1 3 X (3 ή 0) X 0 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 62
Άσκηση 4.12 Στην άσκηση αυτή, εξετάζουµε την επίδραση της διοχέτευσης στο χρόνο κύκλου ρολογιού του επεξεργαστή. Τα προβλήµατα αυτής της άσκησης θεωρούν ότι τα µεµονωµένα στάδια της διαδροµής δεδοµένων έχουν τους επόµενους λανθάνοντες χρόνους: IF ID EX MEM WB α. 300ps 400ps 350ps 500ps 100ps β. 200ps 150ps 120ps 190ps 140ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 63
Άσκηση 4.12 (συνέχεια) 4.12.1 Ποιος είναι ο χρόνος κύκλου ρολογιού σε έναν επεξεργαστή µε διοχέτευση και χωρίς διοχέτευση; Χωρίς διοχέτευση (σε έναν κύκλο) ο χρόνος του ρολογιού είναι ίσος µε το άθροισµα των σταδίων. Με τη διοχέτευση ο χρόνος ρολογιού είναι ίσος µε το χρόνο του µέγιστου σταδίου. Άρα: Χωρίς διοχέτευση (ενός κύκλου) Με διοχέτευση α. 1650ps 500ps β. 800ps 200ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 64
Άσκηση 4.12 (συνέχεια) 4.12.2 Ποιος είναι ο συνολικός λανθάνων χρόνος µιας εντολής lw σε έναν επεξεργαστή µε διοχέτευση και σε ένα χωρίς διοχέτευση; Χωρίς τη διοχέτευση είναι φυσικά ίσος µε τον χρόνο του κύκλου ρολογιού (όπως και κάθε εντολή). Με τη διοχέτευση είναι ίσος µε πέντε κύκλους ρολογιού (όπως και κάθε εντολή). Άρα: Χωρίς διοχέτευση (ενός κύκλου) Με διοχέτευση α. 1650ps 5x500=2500ps β. 800ps 5x200=1000ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 65
Άσκηση 4.12 (συνέχεια) 4.12.3 Αν µπορούµε να διαιρέσουµε ένα στάδιο της διαδροµής δεδοµένων µε διοχέτευση σε δύο νέα στάδια, καθένα µε το µισό λανθάνοντα χρόνο του αρχικού, ποιο στάδιο θα διαιρούσατε και ποιος είναι ο νέος χρόνος κύκλου ρολογιού του επεξεργαστή; Το µεγαλύτερο όφελος (µείωση του κύκλου της διοχέτευσης) θα προκύψει αν «σπάσουµε» στη µέση το µεγαλύτερο στάδιο. Στο α είναι το MEM και στο β είναι το IF. Άρα: Σταδίο που θα «σπάσει» Νέο ρολόι α. ΜΕΜ (αρχικά 500ps) 400ps (το ID) β. IF (αρχικά 200ps) 190ps (το MEM) Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 66
Άσκηση 4.12 (συνέχεια) Τα υπόλοιπα προβλήµατα της άσκησης θεωρούν ότι οι εντολές που εκτελούνται από τον επεξεργαστή διαιρούνται ως εξής: ALU beq lw sw α. 50% 25% 15% 10% β. 30% 25% 30% 15% 4.12.4 Με την παραδοχή ότι δεν υπάρχουν καθυστερήσεις (stalls) ή κίνδυνοι, ποια είναι η αξιοποίηση (utilization το ποσοστό κύκλων που χρησιµοποιείται) της µνήµης δεδοµένων; Αφού «αποχωρεί» (ολοκληρώνεται) από τη διοχέτευση µία εντολή σε κάθε κύκλο (δεν υπάρχουν χαµένοι κύκλοι) η αξιοποίηση είναι το άθροισµα των εντολών lw και sw Αξιοποίηση µνήµης δεδοµένων α. 25% β. 45% Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 67
Άσκηση 4.12 (συνέχεια) 4.12.5 Με την παραδοχή ότι δεν υπάρχουν καθυστερήσεις (stalls) ή κίνδυνοι, ποια είναι η αξιοποίηση της θύρας «Καταχωρητής εγγραφής» της µονάδας «Καταχωρητές»; Όπως και πριν αφού δεν υπάρχουν χαµένοι κύκλοι, η απάντηση είναι το άθροισµα των ποσοστών των εντολών που γράφουν σε καταχωρητή. ηλαδή των εντολών ALU (µορφή R) και των εντολών lw. Αξιοποίηση Καταχωρητή Εγγραφής α. 50% + 15% = 65% β. 30% + 30% = 60% Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 68
Άσκηση 4.12 (συνέχεια) 4.12.6 Αντί για µια οργάνωση ενός κύκλου, µπορούµε να χρησιµοποιήσουµε µια οργάνωση πολλών κύκλων όπου κάθε εντολή διαρκεί πολλούς κύκλους αλλά µια εντολή πρέπει να τελειώσει πριν προσκοµιστεί µια άλλη. Στην οργάνωση αυτή, µια εντολή περνάει µόνο µέσω των σταδίων που πραγµατικά χρειάζεται (π.χ. η sw διαρκεί µόνο τέσσερις κύκλους επειδή δε χρειάζεται το στάδιο WB). Συγκρίνετε τους χρόνους κύκλου ρολογιού και τους χρόνους εκτέλεσης της οργάνωσης ενός κύκλου, της οργάνωσης πολλών κύκλων, και της οργάνωσης µε διοχέτευση. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 69
Άσκηση 4.12 (συνέχεια) Ηδη υπολογίσαµε τους χρόνους ρολογιού για τις οργανώσεις µε τη διοχέτευση και µε τον ένα µεγάλο κύκλο στο 4.12.1. Η νέα οργάνωση πολλαπλών κύκλων έχει ίδιο κύκλο ρολογιού µε τη διοχέτευση. Χωρίς διοχέτευση (ενός κύκλου) Πολλών Κύκλων Με διοχέτευση α. 1650ps 500ps 500ps β. 800ps 200ps 200ps Θα υπολογίσουµε τους χρόνους εκτέλεσης σε σχέση µε την οργάνωση µε διοχέτευση (που είναι αυτή µε το µικρότερο χρόνο εκτέλεσης). Στον έναν κύκλο, κάθε εντολή διαρκεί έναν (µεγάλο) κύκλο. Στη διοχέτευση, ένα πρόγραµµα (χωρίς καθυστερήσεις) ολοκληρώνει µία εντολή σε κάθε κύκλο. Τέλος, σε µια οργάνωση πολλών κύκλων, µια εντολή sw θέλει 4 κύκλους (χωρίς WB), µια εντολή ALU σε 4 κύκλους (χωρίς MEM), και µία beq θέλει 3 κύκλους (χωρίς MEM και WB). Συνεπώς, η επιτάχυνση που δίνει η διοχέτευση είναι: Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 70
Άσκηση 4.12 (συνέχεια) «Επιτάχυνση» που προσφέρει η διοχέτευση έναντι των σχεδιάσεων ενός και πολλών κύκλων Χρόνος εκτέλεσης οργάνωσης πολλών κύκλων σε σχέση µε την οργάνωση µε διοχέτευση (ίδιος κύκλος ρολογιού άρα η διαφορά είναι το CPI) Χρόνος εκτέλεσης οργάνωσης ενός κύκλου σε σχέση µε την οργάνωση µε διοχέτευση (ίδιο CPI=1 άρα η διαφορά είναι στη διάρκεια του κύκλου) α. 0,15 x 5 + 0,60 x 4 + 0,25 x 3 = 3,90 1650ps/500ps = 3,30 β. 0,30 x 5 + 0,45 x 4 + 0,25x3 = 4,05 800ps/200ps = 4,00 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 71
Άσκηση 4.13 Στην άσκηση αυτή, εξετάζουµε πώς επηρεάζουν την εκτέλεση οι εξαρτήσεις δεδοµένων στη βασική διοχέτευση των πέντε σταδίων που περιγράψαµε στην Ενότητα 4.5. Τα προβλήµατα αυτής της άσκησης αναφέρονται στην παρακάτω ακολουθία εντολών: Ακολουθία εντολών α. lw $1,40($6) add $6,$2,$2 sw $6,50($1) β. lw $5, 16($5) sw $5, 16($5) add $5,$5,$5 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 72
Άσκηση 4.13 (συνέχεια) 4.13.1 είξτε τις εξαρτήσεις και τους τύπους τους. Συµβολισµοί: RAW read after write WAR write after read WAW write after write Ακολουθία εντολών α. I1: lw $1,40($6) I2: add $6,$2,$2 I3: sw $6,50($1) β. I1: lw $5, 16($5) I2: sw $5, 16($5) I3: add $5,$5,$5 Εξαρτήσεις RAW στον $1 από Ι1 προς Ι3 RAW στον $6 από Ι2 προς Ι3 WAR στον $6 από Ι1 προς Ι2 RAW στον $5 από Ι1 προς Ι2 και Ι3 WAR στον $5 από Ι1 και Ι2 προς Ι3 WAW στον $5 από Ι1 προς Ι3 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 73
Άσκηση 4.13 (συνέχεια) 4.13.2 Υποθέστε ότι δεν υπάρχει προώθηση σε αυτόν τον επεξεργαστή µε διοχέτευση. είξτε τους κινδύνους και προσθέστε εντολές nop (no operation απραξία) για να τους εξαλείψετε. Στη βασική διοχέτευση των 5 σταδίων οι εξαρτήσεις WAR και WAW δεν προκαλούν κινδύνους. Χωρίς προώθηση, κάθε εξάρτηση RAW µεταξύ µιας εντολής και των δύο επόµενων εντολών αποτελεί κίνδυνο (αν η ανάγνωση κατ/τη συµβαίνει στο δεύτερο µισό του κύκλου και η εγγραφή στο πρώτο µισό). Ο κώδικας που εξαλείφει αυτούς τους κινδύνους µε εισαγωγή nop είναι: Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 74
Άσκηση 4.13 (συνέχεια) Ακολουθία εντολών α. I1: lw $1,40($6) I2: add $6,$2,$2 nop nop I3: sw $6,50($1) β. I1: lw $5, 16($5) nop nop I2: sw $5, 16($5) I3: add $5,$5,$5 Καθυστερεί η εκκίνηση της I3 για να αποφευχθεί ο κίνδυνος RAW στον $1 από την Ι1 και ο κίνδυνος RAW στον $6 από Ι2 Καθυστερεί η εκκίνηση της Ι2 για να αποφευχθεί ο κίνδυνος RAW στον $5 από την Ι1 Σηµείωση: τώρα δεν υπάρχει κίνδυνος RAW στον $5 από τη Ι1 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 75
Άσκηση 4.13 (συνέχεια) 4.13.3 Υποθέστε ότι υπάρχει πλήρης προώθηση. είξτε τους κινδύνους και προσθέστε εντολές nop για να τους εξαλείψετε. Ακολουθία εντολών α. I1: lw $1,40($6) I2: add $6,$2,$2 I3: sw $6,50($1) β. I1: lw $5, 16($5) nop I2: sw $5, 16($5) I3: add $5,$5,$5 Γιατί χρειάζεται το nop? εν υπάρχει κίνδυνος RAW στον $1 από τη Ι1 (προωθείται) Καθυστέρηση της Ι2 για να αποφευχθεί ο κίνδυνος RAW στον $5 από τη Ι1 Η τιµή του $5 προωθείται τώρα από τη Ι2 Αφού υπάρχει προώθηση από lw σε sw?? Σηµείωση: δεν υπάρχει τώρα κίνδυνος RAW στον $5 από τη Ι1 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 76
Άσκηση 4.13 (συνέχεια) Τα υπόλοιπα προβλήµατα της άσκησης υποθέτουν τους επόµενους χρόνους κύκλου ρολογιού: Χωρίς προώθηση Με πλήρη προώθηση Μόνο µε προώθηση από την ALU στην ALU (µερική προώθηση ) α. 300ps 400ps 360ps β. 200ps 250ps 220ps Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 77
Άσκηση 4.13 (συνέχεια) 4.13.4 Ποιος είναι ο συνολικός χρόνος εκτέλεσης των ακολουθιών εντολών της άσκησης αυτής χωρίς προώθηση και µε πλήρη προώθηση; Ποια είναι η επιτάχυνση που επιτυγχάνεται µε την προσθήκη πλήρους προώθησης σε µια διοχέτευση που δεν είχε καθόλου προώθηση; Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 78
Άσκηση 4.13 (συνέχεια) Ο χρόνος εκτέλεσης είναι ίσος µε το χρόνο κύκλου ρολογιού επί τον αριθµό των κύκλων. Χωρίς καθυστερήσεις, µια ακολουθία τριών εντολών διαρκεί 7 κύκλους (3+4). Η εκτέλεση χωρίς προώθηση πρέπει να προσθέσει µία καθυστέρηση για κάθε nop που είδαµε στο 4.13.2 και η εκτέλεση µε προώθηση πρέπει να προσθέσει µια καθυστέρηση για κάθε nop που είδαµε στο 4.13.3. Έτσι έχουµε: Χωρίς προώθηση α. (7+2) x 300ps = = 2700ps β. (7+2) x 200ps = = 1800ps Με πλήρη προώθηση 7 x 400 = = 2800ps (7+1) x 250ps = = 2000ps Επιτάχυνση λόγω προώθησης 0,964 (επιβράδυνση ) 0,90 (επιβράδυνση ) Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 79
Άσκηση 4.13 (συνέχεια) 4.13.5 Στο κώδικα αυτόν προσθέστε εντολές nop για να εξαλείψετε τους κινδύνους στην περίπτωση που υπάρχει µόνο προώθηση από την ALU στην ALU (καθόλου προώθηση από το στάδιο MEM προς άλλα στάδια). Με προώθηση µόνο από την ALU προς την ALU, µια εντολή ALU µπορεί να προωθήσει στην επόµενη εντολή αλλά όχι σε µια δεύτερη εντολή που ακολουθεί (γιατί αυτό απαιτεί προώθηση από το MEM στο EX που δεν υπάρχει). Μια εντολή load δεν προωθεί καθόλου, γιατί καθορίζει την τιµή των δεδοµένων στο στάδιο MEM, και είναι τότε πολύ αργά για να γίνει προώθηση από ALU σε ALU. Έχουµε: Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 80
Άσκηση 4.13 (συνέχεια) Ακολουθία εντολών α. I1: lw $1,40($6) I2: add $6,$2,$2 nop I3: sw $6,50($1) β. I1: lw $5, 16($5) nop nop I2: sw $5, 16($5) I3: add $5,$5,$5 εν µπορεί να γίνει χρήση προώθησης ALU-ALU ($1 φορτώνεται από τη µνήµη στο στάδιο ΜΕΜ). εν µπορεί να γίνει χρήση προώθησης ALU-ALU ($5 φορτώνεται από τη µνήµη στο στάδιο ΜΕΜ). Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 81
Άσκηση 4.13 (συνέχεια) 4.13.6 Ποιος είναι ο συνολικός χρόνος εκτέλεσης αυτής της ακολουθίας εντολών µόνο µε προώθηση από την ALU στην ALU; Ποια είναι η επιτάχυνση σε σχέση µε µια διοχέτευση χωρίς προώθηση; Χωρίς προώθηση α. (7+2) x 300ps = = 2700ps β. (7+2) x 200ps = = 1800ps Με προώθηση ALU-ALU µόνο (7+1) x 360ps = = 2880ps (7+2) x 220ps = = 1980ps Επιτάχυνση λόγω προώθησης από ALU-ALU 0,94 (επιβράδυνση ) 0,91 (επιβράδυνση ) Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 82
Άσκηση 4.14 Στην άσκηση αυτή, εξετάζουµε πώς µπορούν να επηρεάσουν την εκτέλεση µε διοχέτευση οι κίνδυνοι πόρων (ή δοµής), οι κίνδυνοι ελέγχου, και η σχεδίαση της αρχιτεκτονικής συνόλου εντολών. Τα προβλήµατα της άσκησης αναφέρονται στο τµήµα κώδικα MIPS: Ακολουθία εντολών α. lw $1,40($6) beq $2,$0,Label ; υποθέστε ότι $2 == $0 sw $6,50($2) Label: add $2,$3,$4 sw $3,50($4) β. lw $5, 16($5) sw $4, 16($4) lw $3, 20($4) beq $2,$0,Label ; υποθέστε ότι $2!= $0 add $5,$1,$4 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 83
Άσκηση 4.14 (συνέχεια) 4.14.1 Για το πρόβληµα αυτό, υποθέστε ότι όλες οι διακλαδώσεις προβλέπονται τέλεια (αυτό εξαλείφει όλους τους κινδύνους ελέγχου), και ότι δε χρησιµοποιούνται καθόλου υποδοχές καθυστέρησης (delay slots). Αν έχουµε µόνο µία µνήµη (και για τις εντολές και για τα δεδοµένα), υπάρχει ένας δοµικός κίνδυνος κάθε φορά που πρέπει να προσκοµιστεί µια εντολή στον ίδιο κύκλο που µια άλλη εντολή προσπελάζει δεδοµένα. Για να είναι εγγυηµένη η πρόοδος του προγράµµατος, αυτός ο κίνδυνος πρέπει να επιλύεται πάντα υπέρ της εντολής που προσπελάζει δεδοµένα. Ποιος είναι ο συνολικός χρόνος εκτέλεσης αυτής της ακολουθίας εντολών σε µια διοχέτευση πέντε σταδίων που έχει µόνο µία µνήµη; Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 84
Άσκηση 4.14 (συνέχεια) Το *** δείχνει µια καθυστέρηση (stall) όταν µια εντολή δεν µπορεί να προσκοµιστεί διότι µια εντολή load ή store χρησιµοποιεί τη µνήµη στον ίδιο κύκλο : Ακολουθία εντολών α. lw $1,40($6) beq $2,$0,Label sw $6,50($2) add $2,$3,$4 sw $3,50($4) β. lw $5, 16($5) sw $4, 16($4) lw $3, 20($4) beq $2,$0,Label add $5,$1,$4 Στάδια διοχέτευσης IF ID EX MEM WB IF ID EX MEM WB 11 κύκλοι IF ID EX MEM WB *** IF ID EX MEM WB *** IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB 12 κύκλοι *** *** *** IF ID EX MEM WB IF ID EX MEM WB Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 85
Άσκηση 4.14 (συνέχεια) Έχουµε δει ότι οι κίνδυνοι δεδοµένων µπορούν να εξαλειφθούν µε την προσθήκη εντολών nop στο κώδικα. Μπορείτε να κάνετε το ίδιο µε αυτόν το δοµικό κίνδυνο; Γιατί; εν µπορούµε να προσθέσουµε εντολές nop στον κώδικα για να εξαλείψουµε αυτό τον κίνδυνο οι εντολές nop πρέπει να προσκοµιστούν ακριβώς όπως κάθε εντολή. Αυτός ο κίνδυνος αντιµετωπίζεται µόνο µε ειδικό hardware που τον ανιχνεύει και καθυστερεί την προσκόµιση της επόµενης εντολής. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 86
Άσκηση 4.14 (συνέχεια) 4.14.2 Για το πρόβληµα αυτό, υποθέστε ότι όλες οι διακλαδώσεις προβλέπονται τέλεια (αυτό εξαλείφει όλους τους κινδύνους ελέγχου), και ότι δε χρησιµοποιούνται καθόλου υποδοχές καθυστέρησης (delay slots). Αν αλλάξουµε τις εντολές load και store ώστε να χρησιµοποιούν έναν καταχωρητή ως διεύθυνση (χωρίς σχετική διεύθυνση offset), αυτές οι εντολές δε χρειάζεται πλέον να χρησιµοποιήσουν την ALU. Ως αποτέλεσµα, τα στάδια MEM και EX µπορούν να επικαλυφθούν και η διοχέτευση έχει µόνο τέσσερα στάδια. Αλλάξτε τον κώδικα λαµβάνοντας υπόψη αυτή την τροποποιηµένη αρχιτεκτονική συνόλου εντολών. Με την παραδοχή ότι η αλλαγή δεν επιδρά στο χρόνο κύκλου ρολογιού, ποια επιτάχυνση επιτυγχάνεται γι αυτή την ακολουθία εντολών; Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 87
Άσκηση 4.14 (συνέχεια) Ακολουθία εντολών α. addi $6,$6,40 lw $1,($6) beq $2,$0,Label addi $2,$2,50 sw $6,($2) add $2,$3,$4 addi $4,$4,50 sw $3,($4) Στάδια διοχέτευσης IF ΙD NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB Εντολές που εκτελούνται Κύκλοι µε 5 στάδια (χωρίς κινδ. δοµής) Κύκλοι µε 4 στάδια Επιτάχυνση α. 5 -> 8 5 + 4 = 9 8 + 3 = 11 9/11 = 0,818 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 88
Άσκηση 4.14 (συνέχεια) Οµοίως Ακολουθία εντολών β. addi $5,$5,-16 lw $5,($5) addi $4,$4,-16 sw $4,($4) addi $4,$4,-20 lw $3,($4) beq $2,$0,Label add $5,$1,$4 Στάδια διοχέτευσης IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB IF ID NEW WB Εντολές που εκτελούνται Κύκλοι µε 5 στάδια (χωρίς κινδ. δοµής) Κύκλοι µε 4 στάδια Επιτάχυνση β. 5 -> 8 5 + 4 = 9 8 + 3 = 9 9/11 = 0,818 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 89
Άσκηση 4.14 (συνέχεια) 4.14.3 Με την παραδοχή ότι υπάρχει καθυστέρηση σε περίπτωση εντολής διακλάδωσης (stall-onbranch) και δεν υπάρχουν υποδοχές καθυστέρησης, ποια επιτάχυνση επιτυγχάνεται σε αυτόν το κώδικα αν τα αποτελέσµατα των διακλαδώσεων προσδιορίζονται στο στάδιο ID, σε σχέση µε την εκτέλεση όπου τα αποτελέσµατα των διακλαδώσεων προσδιορίζονται στο στάδιο EX; Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 90
Άσκηση 4.14 (συνέχεια) Η λύση stall-on-branch καθυστερεί την προσκόµιση της επόµενης εντολής µέχρι να επιλυθεί η διακλάδωση. Όταν η επίλυση γίνεται στο στάδιο EXE, κάθε διακλάδωση προκαλεί δύο κύκλους καθυστέρησης. Όταν η επίλυση γίνεται στο ID προκαλεί µόνο έναν κύκλο καθυστέρησης. Αν δεν υπάρχουν καθυστερήσεις διακλάδωσης (τέλεια πρόβλεψη διακλάδωσης) δεν υπάρχουν χαµένοι κύκλοι. Εντολές που εκτελούνται ιακλαδώσ εις Κύκλοι µε επίλυση στο στάδιο ΕΧΕ Κύκλοι µε επίλυση στο στάδιο ID Επιτάχυνση α. 5 1 11 10 11/10 = 1,1 β. 5 1 11 10 11/10 = 1,1 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 91
Άσκηση 4.14 (συνέχεια) Τα παρακάτω προβλήµατα αυτής της άσκησης υποθέτουν ότι τα µεµονωµένα στάδια της διοχέτευσης έχουν τους επόµενους λανθάνοντες χρόνους: IF ID EX MEM WB α. 100ps 120ps 90ps 130ps 60ps β. 180ps 100ps 170ps 220ps 60ps 4.14.4 Με δεδοµένους αυτούς τους χρόνους των σταδίων, επαναλάβετε τον υπολογισµό της επιτάχυνσης της Άσκησης 4.14.2, αλλά λάβετε υπόψη σας την (πιθανή) αλλαγή στο χρόνο κύκλου ρολογιού. Όταν τα EX και MEM γίνονται σε ένα στάδιο, η περισσότερη δουλειά τους µπορεί να γίνει παράλληλα. Ως αποτέλεσµα, το στάδιο EX/MEM (=NEW) που προκύπτει έχει λανθάνοντα χρόνο ίσο µε το µεγαλύτερο των αρχικών δύο σταδίων, συν 20ps που χρειάζονται για ό,τι δεν µπορεί να γίνει παράλληλα. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 92
Άσκηση 4.14 (συνέχεια) Ο αριθµός κύκλων για την κανονική (5 σταδια) και τη νέα (4 στάδια) διοχέτευση έχει υπολογιστεί στο 4.14.2. Ο κύκλος ρολογιού είναι ίσος µε το χρόνο του µεγαλύτερου σταδίου. Ο συνδυασµός των EX και MEM επιδρά στο χρονο του κύκλου µόνο αν το συνδυασµένο στάδιο είναι το µεγαλύτερο στη διοχέτευση: Χρόνος κύκλου µε 5 στάδια Χρόνος κύκλου µε 4 στάδια Επιτάχυνση α. 130 ps (MEM) 150 ps (MEM + 20) (9 x 130)/(11 x 150) = 0,709 β. 220 ps (MEM) 240 ps (MEM + 20) (9 x 220)/(11 x 240) = 0,750 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 93
Άσκηση 4.14 (συνέχεια) 4.14.5 Με δεδοµένους αυτούς τους λανθάνοντες χρόνους των σταδίων της διοχέτευσης, επαναλάβετε τον υπολογισµό της επιτάχυνσης της Άσκησης 4.14.3, αλλά λάβετε υπόψη σας την (πιθανή) αλλαγή στο χρόνο κύκλου ρολογιού. Υποθέστε ότι ο λανθάνων χρόνος του σταδίου ID αυξάνεται κατά 50% και ο λανθάνων χρόνος του σταδίου EX µειώνεται κατά 10ps όταν η επίλυση του αποτελέσµατος της διακλάδωσης µεταφέρεται από το EX στο ID. Νέος χρόνος ID α. 180 ps (= 120ps + 50%) β. 150 ps (= 100ps + 50% Νέος χρόνος EX Νέος χρόνος κύκλου Παλιός χρόνος κύκλου Επιτάχυνση 80 ps 180 ps (ID) 130 ps (MEM) (11 x 130)/(10 x 180) = 0,794 160 ps 220 ps (MEM) 220 ps (MEM) (11 x 220)/(10 x 220) = 1,10 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 94
Άσκηση 4.14 (συνέχεια) 4.14.6 Με την παραδοχή καθυστέρησης σε περίπτωση διακλάδωσης (stall-on-branch) και χωρίς υποδοχές καθυστέρησης, ποιος είναι ο νέος χρόνος κύκλου ρολογιού και ο χρόνος εκτέλεσης αυτής της ακολουθίας εντολών αν ο υπολογισµός διεύθυνσης της beq µεταφερθεί στο στάδιο MEM; Ποια είναι η επιτάχυνση από αυτή την αλλαγή; Υποθέστε ότι ο λανθάνων χρόνος του σταδίου EX µειώνεται κατά 20ps και ο λανθάνων χρόνος του σταδίου MEM είναι αµετάβλητος όταν η κατεύθυνση της διακλάδωσης µεταφέρεται από το EX στο MEM. Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 95
Άσκηση 4.14 (συνέχεια) Ο κύκλος ρολογιού δεν αλλάζει: µια µείωση 20ps στο χρόνο του EX δεν επηρεάζει κάτι αφού το ΕΧ δεν είναι το χειρότερο στάδιο. Η αλλαγή επηρεάζει το χρόνο εκτέλεσης αφού προσθέτει έναν κύκλο καθυστέρησης σε κάθε διακλάδωση. Επειδή ο χρόνος κύκλου δε βελτιώνεται αλλά το πλήθος των κύκλων αυξάνεται, η επιτάχυνση από αυτή την αλλαγή θα είναι <1 (επιβράδυνση). Στο 4.14.3 υπολογίσαµε ήδη τους κύκλους όταν µια διακλάδωση επιλύεται στο EX. Έχουµε: Κύκλοι µε επίλυση στο EX Χρόνος εκτέλ. (επιλ. στο ΕΧ) Κύκλοι µε επίλυση στο MEM Χρόνος εκτέλ. (επιλ. στο MEM) α. 11 (9+2) 11 x 130 = 1430 ps 12 (9+3) 12 x 130 = 1560 ps β. 11 (9+2) 11 x 220 = 2420 ps 12 (9+3) 12 x 220 = 2640 ps Επιτάχυνση 0,917 0,917 Ασκήσεις Κεφάλαιο 4 Ο επεξεργαστής 96