Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 4 ( ή 1 στο βιβλίο σας) Αξιολόγηση και κατανόηση της απόδοσης Δέκατη (10 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία τροποποίηση: 2017 2018 εαρινό εξάμηνο.
Ορίζοντας την Απόδοση Ποιο αεροπλάνο έχει την καλύτερη απόδοση (performance); Χωρητικότητα Αυτονομία Boeing 777 Boeing 777 Boeing 747 BAC/Sud Concorde Douglas DC- 8-50 Boeing 747 BAC/Sud Concorde Douglas DC- 8-50 0 200 400 600 Passenger Capacity 0 5000 10000 Cruising Range (miles) Boeing 777 Boeing 777 Boeing 747 BAC/Sud Concorde Douglas DC- 8-50 0 500 1000 1500 Cruising Speed (mph) Ταχύτητα πτήσης Boeing 747 BAC/Sud Concorde Douglas DC- 8-50 0 200000 400000 Passengers x mph Διεκπεραιωτική ικανότητα επιβατών Chapter 1 Computer Abstractions and Technology 2
Χρόνος Απόκρισης και Διεκπεραιωτική Ικανότητα Χρόνος Απόκρισης (Response time) Ο χρόνος μεταξύ της έναρξης και της ολοκλήρωσης μιας εργασίας (task) λέγεται και χρόνος εκτέλεσης (execution time) Διεκπεραιωτική Ικανότητα (Throughput) Συνολική ποσότητα εργασίας που ολοκληρώνεται σε δεδομένο χρόνο (ή στην μονάδα του χρόνου) π.χ., εργασίες-συναλλαγές ανά ώρα Πως επηρεάζονται τα παραπάνω από την αντικατάσταση του επεξεργαστή με ταχύτερη έκδοση; προσθήκη περισσότερων επεξεργαστών; Θα εστιάσουμε πρώτα στον χρόνο απόκρισης Chapter 1 Computer Abstractions and Technology 3
Απόδοση (Performance) Στην ανάλυση της απόδοσης των υπολογιστών αν ενδιαφερόμαστε για τον χρόνο απόκρισης τότε μπορούμε να συσχετίσουμε την απόδοση με τον χρόνο εκτέλεσης ενός υπολογιστή Χ, ως εξής: για να μεγιστοποιήσουμε την απόδοση πρέπει να ελαχιστοποιήσουμε τον χρόνο απόκρισης ή εκτέλεσης για κάποια εργασία. Άρα: Απόδοση Χ 1 Χρόνος Εκτέλεσης Χ Chapter 1 Computer Abstractions and Technology 4
Σχετική Απόδοση Ο X είναι n φορές ταχύτερος από τον Y Απόδοση Χ Απόδοση Y Χρόνος Εκτέλεσης Y Χρόνος Εκτέλεσης Χ n Π.χ.: Ο απαραίτητος χρόνος για να τρέξει ένα πρόγραμμα είναι: 10sec στον A υπολογιστή, 15sec στον B Απόδοση Α Απόδοση Β Χρόνος Εκτέλεσης B Χρόνος Εκτέλεσης A 15sec 10sec 1,5 Άρα ο A είναι 1,5 φορές ταχύτερος από τον B, ή ισοδύναμα: «Ο Β είναι 1,5 φορές πιο αργός από τον υπολογιστή Α». Chapter 1 Computer Abstractions and Technology 5
Στα ενσωματωμένα συστήματα Η απόδοση σε αυτή την κατηγορία συστημάτων συχνά χαρακτηρίζεται από περιορισμούς πραγματικού χρόνου (δηλαδή συγκεκριμένα συμβάντα, ειδικά για την εφαρμογή, πρέπει να προκύψουν μέσα σε περιορισμένο χρονικό διάστημα) Αυστηρός (hard) πραγματικός χρόνος: ορίζει ένα σταθερό όριο χρόνου για την απόκριση ή επεξεργασία ενός συμβάντος π.χ. έλεγχος ακινητοποίησης τροχών με ABS (Antilock Brake System) Ήπιος (soft) πραγματικός χρόνος: ορίζει μια μέση απόκριση ή αρκεί σε ένα μεγάλο ποσοστό συμβάντων μια απόκριση μέσα σε κάποιο περιορισμένο χρόνο (όχι υποχρεωτικά σε όλα) π.χ. χειρισμός καρέ σε ένα DVD player Στις ενσωματωμένες εφαρμογές πραγματικού χρόνου, όταν ικανοποιηθεί ο περιορισμός της απόδοσης όσο αφορά τον χρόνο απόκρισης, οι σχεδιαστές συχνά βελτιστοποιούν τη διεκπεραιωτική ικανότητα ή προσπαθούν να μειώσουν το κόστος. Chapter 1 Computer Abstractions and Technology 6
Μετρώντας τον χρόνο Εκτέλεσης Παρελθών Χρόνος (Elapsed time) Συνολικός χρόνος για την ολοκλήρωση μιας εργασίας, συμπεριλαμβάνοντας τα πάντα Προσπελάσεις δίσκου και μνήμης, επεξεργασία, δραστηριότητες I/O, επιβάρυνση Λ.Σ., χρόνος αναμονής (idle time) Καθορίζει την απόδοση του συστήματος Χρόνος εκτέλεσης CPU (CPU execution time) Χρόνος δαπανημένος από την CPU για την επεξεργασία μιας εργασίας Δεν συμπεριλαμβάνει τον χρόνο που δαπανάται στην αναμονή για I/O, ούτε τον χρόνο άλλων διαμοιραζόμενων εργασιών Αποτελείται από τον χρόνο CPU χρήστη (user CPU time) και τον χρόνο CPU συστήματος (system CPU time) Διαφορετικά προγράμματα επηρεάζονται με διαφορετικό τρόπο από την απόδοση CPU και συστήματος Chapter 1 Computer Abstractions and Technology 7
Χρονισμός της CPU (CPU Clocking) Η λειτουργία του ψηφιακού υλικού συντονίζεται από ένα ρολόι με σταθερό ρυθμό Clock (cycles) Data transfer and computation Update state Περίοδος (Clock period) Περίοδος ρολογιού : διάρκειας ενός κύκλου ρολογιού Π.χ., 250ps 0,25ns 250 10 12 s Συχνότητα ρολογιού : κύκλοι ανά δευτερόλεπτο π.χ., 4,0GHz 4000MHz 4,0 10 9 Hz Chapter 1 Computer Abstractions and Technology 8
Χρόνος CPU (CPU Time) Χρόνος CPU για ένα πρόγραμμα Κύκλοι ρολογιού CPU για ένα πρόγραμμα Χρόνος Κύκλοι ρολογιού CPU Ρυθμός ρολογιού Η απόδοση βελτιώνεται κύκλου ρολογιού Μειώνοντας τον αριθμό των κύκλων του ρολογιού Αυξάνοντας την συχνότητα του ρολογιού Οι σχεδιαστές υλικού συχνά πρέπει να κάνουν συμβιβασμούς ανάμεσα στην συχνότητα του ρολογιού και τον απαιτούμενο αριθμό κύκλων Chapter 1 Computer Abstractions and Technology 9
Παράδειγμα χρόνου CPU Υπολογιστής A: ρολόι 2GHz, χρειάζεται 10s χρόνο CPU για ένα συγκεκριμένο πρόγραμμα (το αγαπημένο μας) Σχεδίαση ενός υπολογιστή B Στοχεύοντας τα 6s ως χρόνο CPU για το ίδιο πρόγραμμα Είναι εφικτή η σημαντική αύξηση της συχνότητας του ρολογιού αλλά θα προκαλέσει την αύξηση των κύκλων κατά 1,2 φορές Τι συχνότητα πρέπει να έχει ο υπολογιστής B; Ρυθμός Κύκλοι Ρυθμός ρολογιού ρολογιού ρολογιού B A B Κύκλοι ρολογιού Χρόνος CPU Χρόνος CPU 10s 2GHz 1,2 20 10 6s 9 A B B Ρυθμός 20 10 1,2 Κύκλοι ρολογιού 6s 9 24 10 6s 9 ρολογιού 4GHz A A Chapter 1 Computer Abstractions and Technology 10
Πλήθος Εντολών και CPI Κύκλοι ρολογιού Πλήθος εντολών Κύκλοι ανά εντολή Χρόνος CPU Πλήθος εντολών CPI Χρόνος κύκλου ρολογιού Πλήθος εντολών CPI Ρυθμός ρολογιού Πλήθος εντολών για ένα πρόγραμμα Καθορίζεται από το πρόγραμμα, την αρχιτεκτονική του συνόλου των εντολών (ISA) και τον μεταγλωττιστή (compiler) Μέσος αριθμός κύκλων ρολογιού για την εκτέλεση μιας εντολής (CPI) {average Cycles Per Instruction} Καθορίζεται από το υλικό της CPU Εάν διαφορετικές εντολές έχουν διαφορετικό CPI Το μέσο CPI επηρεάζεται από το μίγμα των εντολών Chapter 1 Computer Abstractions and Technology 11
Παράδειγμα CPI Υπολογιστής A: Χρόνος κύκλου 250ps, CPI 2,0 Υπολογιστής B: Χρόνος κύκλου 500ps, CPI 1,2 Ίδια αρχιτεκτονική συνόλου εντολών (ISA) Ποιος είναι ταχύτερος, και κατά πόσο; Χρόνος Χρόνος CPU A CPU B Χρόνος CPU B Χρόνος CPU A Πλήθος εντολών CPI Χρόνος Κύκλου A A I 2,0 250ps I 500ps Πλήθος εντολών CPI Χρόνος κύκλου B B I 1,2 500ps I 600ps I 600ps I 500ps 1,2 Ο A είναι ταχύτερος κατά τόσο Chapter 1 Computer Abstractions and Technology 12
Σύνοψη για την απόδοση Χρόνος Εντολές Πρόγραμμα Η απόδοση εξαρτάται από CPU Δευτερόλεπτα Πρόγραμμα Κύκλοι ρολογιού Εντολή Δευτερόλεπτα Κύκλο ρολογιού τον αλγόριθμο που επηρεάζει το πλήθος των εντολών και ίσως το CPI την γλώσσα προγραμματισμού που επηρεάζει πλήθος των εντολών και το CPI τον μεταγλωττιστή που επηρεάζει πλήθος των εντολών και το CPI την αρχιτεκτονική συνόλου εντολών που επηρεάζει πλήθος των εντολών, το CPI και την περίοδο του ρολογιού (T c ) Chapter 1 Computer Abstractions and Technology 13
Παγίδα: νόμος του Amdahl Η βελτίωση μιας πλευράς ενός υπολογιστή και η αναμονή ανάλογης βελτίωσης της συνολικής απόδοσης Tπου επηρεάζεται T μετά τη βελτίωση + T συντελεστής βελτίωσης 80 20 + 20 Δεν γίνεται! n πουδεν επηρεάζεται Παράδειγμα: Ο πολλαπλασιασμός είναι τα 80s/100s Πόση βελτίωση της απόδοσης του πολλαπλασιασμού απαιτείται ώστε η συνολική απόδοση να 5-πλασιαστεί; Πόρισμα: Κάνε τη συνηθισμένη περίπτωση γρήγορη Chapter 1 Computer Abstractions and Technology 14
Πλάνη: Χαμηλή ισχύς αδράνειας Δείτε το μετροπρόγραμμα (benchmark) ισχύος στον επεξεργαστή Opteron X4 της AMD Στο 100% του φορτίου: 295W Στο 50% του φορτίου: 246W (83%) Στο 10% του φορτίου: 180W (61%) Κέντρο δεδομένων Google Κυρίως λειτουργεί στο 10% 50% του φορτίου Με φορτίο 100% σε λιγότερο από 1% του χρόνου Σκεφθείτε τη σχεδίαση επεξεργαστών με κατανάλωση ισχύος ανάλογη με το φορτίο Chapter 1 Computer Abstractions and Technology 15
Παγίδα: MΙPS ως μέτρο απόδοσης MIPS: Millions of Instructions Per Second Δε λαμβάνει υπόψη: MIPS Διαφορές ISA μεταξύ υπολογιστών Διαφορές πολυπλοκότητας μεταξύ εντολών Πλήθος εντολών Χρόνος εκτέλεσης 10 Πλήθος εντολών Πλήθος εντολών CPI 10 Ρυθμός ρολογιού 6 6 Ρυθμός ρολογιού 6 CPI 10 Το CPI ποικίλει μεταξύ προγραμμάτων σε μια δεδομένη CPU Chapter 1 Computer Abstractions and Technology 16
Συμπερασματικές παρατηρήσεις Ο λόγος κόστος/απόδοση βελτιώνεται Λόγω της εξέλιξης της τεχνολογίας Ιεραρχικά επίπεδα αφαίρεσης Στο υλικό και στο λογισμικό Αρχιτεκτονική συνόλου εντολών (Instruction set architecture ISA) Η διασύνδεση υλικού και λογισμικού Χρόνος εκτέλεσης: το καλύτερο μέτρο απόδοσης Η ισχύς είναι περιοριστικός παράγοντας Χρήση παραλληλίας για βελτίωση της απόδοσης Chapter 1 Computer Abstractions and Technology 17