More material!
Οι τέσσερις αρχές για τον σχεδιασμό του συνόλου εντολών μιας μηχανής είναι: 1. Η απλότητα στη σχεδίαση οφείλεται στη κανονικοποίηση. Πολλά χαρακτηριστικά των εντολών της μηχανης MIPS οφείλονται στη κανονικοποίηση, όπως: όλες οι εντολές έχουν το ίδιο μέγεθος, απαιτούνται πάντα τρείς καταχωρητές για τις αριθμητικές εντολές και τα πεδία των καταχωρητών κρατούνται στην ίδια θέση για όλα τα είδη εντολών. 2. Το μικρότερο είναι πιο γρήγορο. Ο MIPS έχει μόνο 32 καταχωρητές για να έχει περισσότερη ταχύτητα. 3. Η καλή σχεδίαση απαιτεί υποχωρήσεις. Ένα παράδειγμα στον MIPS είναι ο συμβιβασμός μεταξύ της υποστήριξης μεγαλυτέρων διευθύνσεων και σταθερών στις εντολές και της απόφασης όλες οι εντολές να έχουν το ίδιο μέγεθος. 4. Σχεδίασε τις πιο συχνές περιπτώσεις έτσι ώστε να εκτελούνται πιό γρήγορα. Για παράδειγμα, η χρησιμοποίηση της διευθυνσιοδότησης PC - relative addressing για τις εντολές εκλογής υπο συνθήκη (conditional branches) και οι εντολές της άμεσης διευθυνσιοδότησης (immediate addressing) για τους σταθερούς αριθμούς. Ενότητα 3 - Εντολές: Η γλώσσα μηχανής 2
Power Consumption 3 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Νόμος του Amdahl (Amdahl's Law) Speedup overall (S over ): Kαθολική επιτάχυνση Speedup Enhancement (S enh ): Ποσοστό επιτάχυνσης Fraction Enhancement (F enh ): Κλάσμα της διαδικασίας που έχει βελτιωθεί/επιταχυνθεί Speedup = overall Speedup = overall 1 - Fraction 1-F e 1 F S e e enhancement 1 Fraction Speedup enhancement enhancement 4 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Παράδειγμα 1: F enh = 0.5 S enh =? S overall =3 Αδύνατο! Speedup = overall Speedup = overall 1 - Fraction 1 F 1-Fe S enhancement 5 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση e e 1 Fraction Speedup enhancement enhancement
Παράδειγμα 1: F enh = 0.3 S enh = 3 S overall =? Speedu p = overal l 1-0.3 1 0.3 3 125. 6 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Μέτρα Απόδοσης (Performance Measures) Ο χρόνος είναι το μέτρο της απόδοσης ενός Η/Υ. Ο Η/Υ που εκτελεί μια εργασία στο λιγότερο χρόνο είναι και ο πιο γρήγορος. (Time is the measure of computer performance: The computer that performs the same amount of work in the least time is the fastest.) Ωρολόγιο Τοίχου (Wall-clock time (response or elapsed time) Χρόνος Ανταπόκρισης (response time): ο χρόνος που πέρασε. Αλλά... λειτουργικό σύστημα Ε/Ε(Ι/Ο) συστήματα πολλαπλών χρηστών > time gcc foo.c -o foo real 2m39,00 user 1m30,70s sys 0m12,90s Μέτρα όπως η συχνότητα (χρόνος κύκλου μηχανής) δεν είναι πάντοτε ενδεικτικά της απόδοσης. (Measures like clock speed do not tell the whole story) Παράδειγμα: IBM Power5 1.5GHz & Intel P4 3.8GHz 7 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Τι επηρεάζει τις παραμέτρους απόδοσης Time = I x CPI x Clock Cycle Time - I (instructions): αρχιτεκτονική και μεταγλωττιστής instrumentation, προσομοίωση, μετρητές υλικού - CPI (Clock Cycles per Instruction): οργάνωση (χαρακτηριστικά προγράμματος/δεδομένων) προσομείωση, μετρητές υλικού - Clock Cycle Time: τεχνολογία Αλληλοεπιδράσεις μεταξύ Ι, CPI και Clock Cycle Time (συγκρουόμενοι στόχοι) Clock Cycles = Σ CPI i x Ι i για κάθε κατηγόρια εντολών i: μέσος όρος κύκλων ανά εντολή (CPI i ) και αριθμός εντολών (Ι i ) 8 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Δύο υλοποιήσεις της ίδιας αρχιτεκτονικής για κάποιο πρόγραμμα Κύκλος Ρολογιού CPI A 10ns 2 B 20ns 1.2 Ποιά μηχανή έχει την καλύτερη απόδοση και πόσο καλύτερη είναι; 9 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
CPU Time A = ns CPU Time B = ns Aπόδοση Α = 1 / CPU Time A Aπόδοση B = 1 / CPU Time B Aπόδοση Α / Απόδοση Β = 10 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Άλλα Μέτρα Σύγκρισης: ΜΙPS & ΜFLOPS MIPS= Million Instructions Per Second MIPS = Eντολές / Χρόνος x 10 6 MIPS = Συχνότητα / CPI x 10 6 Προβλήματα με το MIPS δεν σχετίζεται με την αρχιτεκτονική ή οργάνωση (δεν μπορεί να συγκρίνεις διαφορετικές αρχιτεκτονικές ή οργανώσεις) δυνατόν να διαφέρει αντιστρόφως ανάλογα με την απόδοση MFLOPS= Million Floating Point Operations per Sec τα ίδια προβλήματα με MIPS, ίσως και χειρότερα διαφορετικές αρχιτεκτονικές/υλοποιήσεις δεν παρέχουν την ίδια υποστηρίξη για FP εντολές 11 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Επιλογή Προγραμμάτων (Βenchmarks) για Αξιολόγηση Σχεδιαστές σήμερα χρησιμοποιούν πραγματικές εφαρμογές Στο παρελθόν kernels, microbenches περιορισμένης εμβέλειας/χρήσεως βελτιστοποιήσεις SPEC: Οοργανισμός με μέλη διάφορες εταιρείες www.spec.org Mέτρα: Execution Time Ratio Γεωμετρικός Μέσος (Geometric Mean) Spec Ratio 12 Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Exercises for the Data Path
RType 24% I Type 28% LDUR 25% 4.3 STUR 10% CBZ 11% 4.3.1 25+10= 35% only LDUR and STUR use data memory 4.3.2 100% 4.3.3 28+25+10+11+2 = 76% 4.3.4 The sign extend produce an output during every cycle. If its output is not needed, it simply ignored B 2%
4.7 i MEM/ D MEM Reg File Mux ALU Adder Single gate Register Read Register setup Sigh extent control 250ps 150ps 25ps 200ps 150ps 5ps 30 ps 20ps 50 ps 50 ps 4.7.1 Difficult ignore 4.7.2 R type 30+250+25+150+200+25+20=725ps 4.7.3 LDUR 30+250+150+200+250+25+20=925ps 4.7.4 STUR 30 +250+150+200+250=880 4.7.5 CBZ 30+250+25+150+25+5+5+5+20=735 4.7.6 B 30+250+50+150+25+20=525 4.7.7 I Type 30+250+150+200+25+20=675ps 4.7.8 925
4.8 Using the results from Problem 4.7 we see that the average time per instruction.52*725+.25*925+.1*880+.11*735+.02*525=787.6ps Single cycle CPU has a clock of 925 Thus the speed up would be 925/787.6= 1.174
4.16 IF 250ps ID 350ps EX 150 ps MEM 300PS WB 200 PS ALU/Logic Jump/Branch LDUR STUR 45% 20% 20% 15% 4.16.1Pipelined: 350; non pipelined: 1250 4.16.2 Pipelined: 1250; non pipelined: 1250 4.16.3 Split the ID stage. This reduces the clock cycle time to 300ps. 4.16.4 35%. 4.16.5 65%
4.22 4.22.1 Stalls are marked with *** STUR X16, [X6, #12] IF ID EX ME WB LDUR X16, [X6, #8] IF ID EX ME WB SUB X7, X5, X4 IF ID EX ME WB CBZ X7, Loop ** ** IF ID EX ME WB ADD X5, X1, X4 ** **IF ID EX ME WB SUBS X5, X15, X4 IF ID EX ME WB 4.22.2 Reordering code won t help. Every instruction must be fetched; thus, every data access causes a stall. Reordering code will just change the pair of instructions that are in conflict. 4.22.3 You can t solve this structural hazard with NOPs, because even the NOPs must be fetched from instruction memory. 4.22.4 35%. Every data access will cause a stall.
4.23 4.23.1 The clock period won t change because we aren t making any changes to the slowest stage. 4.23.2 Moving the MEM stage in parallel with the EX stage will eliminate the need for a cycle between an LDUR and operations that use the result of the LDUR. The is can potentially reduce the number of stalls in a program. 4.23.3 Removing the off set from LDUR and STUR may increase the total number of instructions because some LDUR and STUR instructions will need to be replaced with a ADD/LDUR or ADD/STUR pair. 4.24 The second one. A careful examination of Figure 4.59 shows that the need for a stall is detected during the ID stage. It is this stage that prevents the fetch of a new instruction, effectively causing the add to repeat its ID stage
4.25 4.25.1 indicates a stall.! indicates a stage that does not do useful work. Loop LDUR X10, [X1, #0] IF ID EX ME WB LDUR X11, [X2, #8] IF ID EX ME WB ADD X12, X10, X11 IF ID.. EX ME! WB SUBI X1, X1, #16 IF.. ID EX ME! WB CBNZ X12, LOOP.. IF ID EX ME! WB! LDUR X10, [X1, #0] IF ID EX ME WB LDUR X11, [X2, #8] IF ID EX ME WB ADD X12, X10, X11 IF ID.. EX ME! WB SUBI X1, X1, #16 IF.. ID EX ME! WB CBNZ X12, LOOP IF ID EX ME! WB! Completely busy N N N N N N N N