ΠΛΕ- 027 Μικροεπεξεργαστές 1ο μάθημα: εισαγωγή, διαδικαστικά θέματα, απόδοση υπολογιστών Διδάσκοντας: Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου
Γενικές πληροφορίες Διδάσκοντας: Αρης Ευθυμίου Κωδικός Μαθήματος: ΠΛΕ 027 Εβδομαδιαίες Ωρες Διδασκαλίας: 3 Εξάμηνο Σπουδών: 2o Διδακτικές Μονάδες : 4 Ιστοσελίδα Μαθήματος: υπό κατασκευή «Προαπαιτούμενα»: Γνώση προγραμματισμού C, Αρχιτεκτονική Η/Υ, (Ψηφιακή σχεδίαση) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 2
Περιγραφή μαθήματος 2 ο μάθημα σε αρχιτεκτονική Η/Υ, 4 ενότητες: Προγραμματισμός σε assembly Μικροαρχιτεκτονική πυρήνα επεξεργαστή οργάνωση και λειτουργία προχωρημένα θέματα: εκτέλεση εκτός σειράς, πρόβλεψη διακλάδωσης,... (υπο)σύστημα μνήμης - κρυφές μνήμες (υπο)σύστημα εισόδου εξόδου ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 3
Μαθησιακοί στόχοι Κατανόηση «γλώσσας μηχανής»: δυνατότητες, περιορισμοί Κατανόηση σε βάθος της σχεδίασης απλού διοχετευμένου πυρήνα επεξεργαστή χρησιμοποιώντας μοντελοποίηση/προσομοίωση Κατανόηση αρχιτεκτονικών τεχνικών αύξησης απόδοσης Κατανόηση του υποσυστήματος μνήμης, εισόδου εξόδου ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 4
Γιατί να ασχοληθεί κανείς Ικανοποίηση περιέργειας: πώς δουλεύει το PC/laptop/ smartphone μου; Μεταπτυχιακές σπουδές πολλές ερωτήσεις στο τέστ GRE από αρχιτεκτονική (για αίτηση σε Αμερικάνικα Παν/μια) Βασικές γνώσεις για προχωρημένα μαθήματα (VLSI, αρχιτεκτονική, παράλληλα συστήματα) Από δουλειές; ο τομέας hardware στην Ελλάδα είναι μικρός. Παγκόσμια όμως είναι ισχυρός και σε καλή κατάσταση Ξέροντας λεπτομέρειες της μηχανής μπορεί κάποιος να γράψει καλύτερο κώδικα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 5
Υποθέσεις Αναπαράσταση αριθμών: Συμπλήρωμα ως προς 2, υπερχείλιση,... Απλά συνδιαστικά και ακολουθιακά κυκλώματα: λογικές πράξεις, πολυπλέκτης, αθροιστής, καταχωρητής, μηχανή πεπερασμένης κατάστασης (FSM),... Βασικές δομές δεδομένων: στοίβα, ουρά,... Τα περισσότερα καλύπτονται από το βιβλίο για κάποιον που χρειάζεται φρεσκάρισμα, αλλά δεν θα καλυφθούν σε διαλέξεις ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 6
Επικοινωνία Ωρες διδασκαλίας: Τρίτη 13:00 16:00 (Αίθουσα: Ι3) Γραφείο: Β.29 Email: e hym at cs.uoi.gr ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 7
Συγγράμματα David A. Paˆerson, John L. Hennessy, Οργανωση και σχεδιαση υπολογιστων: η διασυνδεση υλικου και λογισμικου, 4η έκδοση Hammacher Carl,Vranesic Zvonko,Zaky Safwat, Οργάνωση και αρχιτεκτονική ηλεκτρονικών υπολογιστών Andrew S. Tanenbaum, Αρχιτεκτονικη των υπολογιστων: μια δομημενη προσεγγιση Stallings William, Οργάνωση και Αρχιτεκτονική Υπολογιστών ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 8
Βαθμολόγηση Τελική γραπτή εξέταση: 70% Ασκήσεις, εργασίες: 30% Αν γραπτή εξέταση >= 5, Τελικός βαθμός = 0.7 * exam + 0.3 * exercises Αλλιώς τελικός βαθμός = exam Προϋπόθεση για τη βάση στο μάθημα είναι το 50% στην τελική εξέταση ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 9
Αντιγραφή Τι είναι Η χρήση κώδικα, κειμένου,... που δεν είναι αποτέλεσμα δικής σας δουλειάς Είναι εύκολο να ανιχνευτεί Υπάρχουν αυτόματα εργαλεία σύγκρισης Αδυναμία εξήγησης σε προφορική/εργαστηριακή εξέταση Ποινές Μηδενισμός στην εργασία ή στο μάθημα Μη βοηθάτε αυτούς που θέλουν να αντιγράψουν Μην επιτρέπετε πρόσβαση στα αρχεία ασκήσεων του μαθήματος ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 10
Αναπληρώσεις μαθημάτων Τα δύο πρώτα μαθήματα έπεσαν σε αργίες Αναπλήρωση: Παρασκευή 9, 10-13:00, Αίθουσα Ι3 Παρασκευή 16, 10-13:00, Αίθουσα Ι3 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 11
Ορισμός Απόδοσης Ποιό αεροπλάνο έχει καλύτερη απόδοση; ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 12
Απόδοση υπολογιστή Χρόνος απόκρισης ή λανθάνον χρόνος (response me, latency) Ο χρόνος που χρειάζεται για να γίνει μια «δουλειά» Ρυθμός εκτέλεσης (Throughput, Bandwidth) Δουλειές ανά μονάδα χρόνου e.g., tasks/transac ons/ per hour Αλλα μέτρα απόδοσης Κατανάλωση ενέργειας Αξιοπιστία ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 13
Η ferrari και το αστικό Ferrari: 2 επιβάτες, 100km/h (στην πόλη) Αστικό: 70 επιβάτες, 10km/h (με τις στάσεις) Σπίτι/στάση- Πανεπιστήμιο 10km Με ποιό μέσο ένας επιβάτης θα πάει πιο γρήγορα στο Πανεπιστήμιο? Ποιό μέσο μεταφέρει περισσότερους επιβάτες ανα ώρα? Επικεντρώνουμε στο χρόνο απόκρισης ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 14
Σχετική απόδοση Ορίζουμε Performance = 1/Execu on Time X είναι n φορές ταχύτερος από τον Y Performance X Performance Y = Execution time Y Execution time X = n Παράδειγμα: χρόνος εκτέλεσης προγράμματος 10s στον A, 15s στον B Execu on Time B / Execu on Time A = 15s / 10s = 1.5 Ο A είναι 1.5 φορές ταχύτερος από τον B ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 15
Μέτρηση χρόνου εκτέλεσης Πραγματικός χρόνος που πέρασε (Elapsed me) Πλήρης χρόνος απόκρισης, περιλαμβάνει επεξεργασία, είσοδο- έξοδο, χρόνο Λ.Σ., άλλες διεργασίες,... Καθορίζει την απόδοση του συστήματος Χρόνος CPU Χρόνος επεξεργασίας μιας δουλειάς Αγνοεί χρόνο εισόδου- εξόδου, άλλες διεργασίες Αποτελείται από το χρόνο CPU χρήστη και συστήματος (user, system CPU me) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 16
Παράγοντες απόδοσης Αλγόριθμος Καθορίζει αριθμό πράξεων Γλώσσα, μεταφραστής, αρχιτεκτονική Καθορίζουν αριθμό εντολών μηχανής ανά πράξη (γλώσσας) Επεξεργαστής και σύστημα μνήμης Καθορίζουν ταχύτητα εκτέλεσης εντολών Σύστημα εισόδου- εξόδου (και Λ.Σ.) Καθορίζει ταχύτητα I/O ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 17
CPU Time Η απόδοση βελτιώνεται: μειώνοντας τον αριθμό κύκλων ρολογιού αυξάνοντας το ρυθμό (συχνότητα) ρολογιού Δυστυχώς συχνά ο σχεδιαστής πρέπει να «ζυγίσει» το ρυθμό ρολογιού με τον αριθμό κύκλων ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 18
CPU Time, Παράδειγμα Computer A: ρολόι 2GHz, 10s CPU me Σχεδιάζουμε Computer B Προσπαθούμε για 6s CPU me Μπορούμε να αυξήσουμε το ρυθμό ρολογιού, αλλά αυτό προκαλεί αύξηση κύκλων ρολογιού 1.2 Πόση πρέπει να είναι η συχνότητα ρολογιού του Computer B; ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 19
Αριθμός εντολών, CPI Αριθμός (δυναμικών) εντολών προγράμματος Καθορίζονται από το πρόγραμμα, ISA, μεταφραστή Μέσος όρος κύκλων ανά εντολή (CPI) Καθορίζεται από το υλικό Αν το CPI είναι διαφορετικό για κάθε εντολή Το μέσο CPI επηρεάζεται από το «μίγμα εντολών» του προγράμματος ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 20
CPI Παράδειγμα Computer A: Cycle Time = 250ps, CPI = 2.0 Computer B: Cycle Time = 500ps, CPI = 1.2 Ιδια ISA Ποιός είναι ταχύτερος και κατα πόσο; A ταχύτερος ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 21
Λεπτομέρειες CPI Αν οι διάφορες κατηγορίες εντολών έχουν διαφορετικό αριθμό κύκλων εκτέλεσης: Το μέσο CPI πρέπει να χρησιμοποιεί τη σχετική συχνότητα εμφάνισης εντολών Σχετική συχνότητα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 22
CPI Παράδειγμα 2 εναλλακτικά προγράμματα με εντολές κατηγοριών A, B, C Κατηγορία A B C CPI κατηγορίας 1 2 3 IC πρόγραµµα 1 2 1 2 IC πρόγραµµα 2 4 1 1 Πρόγραμμα 1: IC = 5 Κύκλοι = 2 1 + 1 2 + 2 3 = 10 μέσο CPI = 10/5 = 2.0 Πρόγραμμα 2: IC = 6 Κύκλοι = 4 1 + 1 2 + 1 3 = 9 μέσο CPI = 9/6 = 1.5 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 23
Φόρτος εργασίας υπολογιστή Αν το σύστημα τρέχει μία εφαρμογή, τελείωσαμε απλά μετράμε το χρόνο απόκρισης ή το ρυθμό (π.χ. για ένα διακομιστή) Αλλά οι υπολογιστές είναι γενικού σκοπού: τρέχουν πολλές εφαρμογές και οι εφαρμογές είναι διαφορετικές Υπάρχει τρόπος να συγκρίνουμε υπολογιστές με αυτές τις συνθήκες; ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 24
Προγράμματα αναφοράς Φόρτος εργασίας (Workload): Σύνολο προγραμμάτων που τρέχουν Σύνολο πραγματικών εφαρμογών (για κάποια χρήση, π.χ. σχεδίαση κυκλωμάτων) ή προγραμμάτων που μοιάζουν με τις εφαρμογές Καθορίζει τα προγράμματα και τις σχετικές συχνότητες χρήσης Τα προγράμματα περιλαμβάνουν και τυπικά δεδομένα Μετροπρόγραμμα (Benchmark): επιλεγμένο πρόγραμμα για σύγκριση απόδοσης υπολογιστών Συνήθως «τυποποιημένα» ώστε να μπορούν να χρησιμοποιηθούν από πολλούς ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 25
Μετροπρογράμματα SPEC CPU Standard Performance Evalua on Corp (SPEC) Αναπτύσει μετροπρογράμματα για CPU, I/O, Web, Θεωρούνται αντιπροσωπευτικά αληθινού φόρτου εργασίας SPEC CPU2006 Πραγματικός χρόνος (elapsed) εκτέλεσης συλλογής προγραμμάτων Ελάχιστο I/O, για να μην επηρεάζεται η απόδοση της CPU Κανονικοποιημένος ως προς μηχανή αναφοράς SPECRa o Χωριστές κατηγορίες για προγράμματα κινητής υποδιαστολής (SPECFp) και ακεραίων (SPECInt) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 26
CINT2006 for Opteron X4 2356 Name Description IC 10 9 CPI Tc (ns) Exec time Ref time SPECratio perl Interpreted string processing 2,118 0.75 0.40 637 9,777 15.3 bzip2 Block-sorting compression 2,389 0.85 0.40 817 9,650 11.8 gcc GNU C Compiler 1,050 1.72 0.47 24 8,050 11.1 mcf Combinatorial optimization 336 10.00 0.40 1,345 9,120 6.8 go Go game (AI) 1,658 1.09 0.40 721 10,490 14.6 hmmer Search gene sequence 2,783 0.80 0.40 890 9,330 10.5 sjeng Chess game (AI) 2,176 0.96 0.48 37 12,100 14.5 libquantum Quantum computer simulation 1,623 1.61 0.40 1,047 20,720 19.8 h264avc Video compression 3,102 0.80 0.40 993 22,130 22.3 omnetpp Discrete event simulation 587 2.94 0.40 690 6,250 9.1 astar Games/path finding 1,082 1.79 0.40 773 7,020 9.1 xalancbmk XML parsing 1,058 2.70 0.40 1,143 6,900 6.0 Geometric mean 11.7 High cache miss rates ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 27
Μετροπρογράμματα SPEC CPU Συνόψιση όλων των μετροπρογραμμάτων χρησιμοποιώντας γεωμετρικό μέσο CINT2006 (ακέραιοι) and CFP2006 (κινητής υποδιαστολής) Οι κανονικοποιημένες τιμές θέλουν προσοχή! ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 28
Παράδειγμα Computer A Computer B Computer C Program 1 1 10 20 Program 2 1000 100 20 Arithm mean 500.5 55 20 Geom mean 31.622 31.622 20 Ποιό σύστημα είναι καλύτερο; ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 29
Κανονικοποίηση και μέσος όρος Computer A Computer B Computer C Program 1 1 10 20 Program 2 1 0.1 0.02 Arithm mean 1 5.05 10.01 Geom mean 1 1 0.632 Computer A Computer B Computer C Program 1 0.1 1 2 Program 2 10 1 0.2 Arithm mean 5.05 1 1.1 Geom mean 1 1 0.632 ως προς Α ως προς Β ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 30
Που ξοδεύει χρόνο το δικό σου πρόγραμμα; Ανάλυση χαρακτηριστικών (profiling) ενός προγράμματος (με gprof) δείχνει που ξοδεύεται ο χρόνος ανά συνάρτηση έτσι μπορεί να δεί κανείς πιο είναι το αργότερο κομμάτι και να το βελτιώσει Συνήθως βλέπουμε ένα 90/10 ή 80/20: το 10% του κώδικα ευθύνεται για το 90% του χρόνου Μετάφραση και σύνδεση με κατάλληλες οδηγίες gcc pg progr.c Εκτέλεση κανονικά (λίγο πιο αργά) δημιουργεί ένα αρχείο gmon.out Τρέχουμε gprof για να δούμε τα αποτελέσματα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 31
Βελτιστοποίηση μετάφρασης Ο gcc και άλλοι μεταφραστές, έχει διάφορες επιλογές βελτιστοποίησης Συνήθως - Ο[1-3]. Οσο μεγαλύτερος αριθμός τόσο περισσότερο προσπαθεί να βελτιστοποιήσει τον κώδικα Μετά το debugging καλό είναι κανείς να κάνει μια τελική μετάφραση με μια από τις - Ο επιλογές ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 32
Αριθμός εντολών - υπολογισμός Οι σύγχρονοι επεξεργαστές έχουν μετρητές απόδοσης μετρούν διάφορα γεγονότα (π.χ. cache miss, ) Συνήθως χρειάζεται ειδική έκδοση του πυρήνα του Λ.Σ. και κάποια ειδική βιβλιοθήκη ψάξτε για perfmon2, Intel performance counter monitor, Δεν μπορούν να μετρήσουν οτιδήποτε θέλει ένας αρχιτέκτονας Εναλλακτικά τρέχουμε το πρόγραμμα σε έναν γρήγορο προσομοιωτή ή εργαλείο dynamic binary instrumenta on PIN hˆp://www.pintool.org ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 33
Παράδειγμα αριθμός εντολών Θα χρησιμοποιήσουμε το μετροπρόγραμμα gzip (SPEC Int 2000) και το pin ~efthym/pin/pin*/pin \ -t ~efthym/pin/pin*/source/tools/ ManualExamples/obj-ia32/inscount2.so \ -- ~efthym/icarus/spec/gzip \ ~efthym/icarus/spec/input.source 60 Αποτέλεσματα στο αρχείο: inscount.out περίπου 70.5 εκατομύρια εντολές IA- 32 ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 34
Υπολογισμός CPI (χονδρικά) Χώρις το pin, τρέχει σε 19.95sec στο hp6000ws12 /usr/bin/time --verbose ~efthym/ /gzip \ ~efthym/ /input.source 60 Κύκλος ρολογιού 376ps 2.66GHz more /proc/cpuinfo 19.95*10^12/376 = 53 εκατομύρια κύκλοι CPI = cycles/instruc on count = 0.7526 στο παράδειγμα Ο επεξεργαστής εκτελεί πάνω από μία εντολή (1.33) ανά κύκλο ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 35
Παγίδα: ο Νόμος του Amdahl Βελτιώνοντας ένα τμήμα του υπολογιστή περιμένουμε η συνολική απόδοση να βελτιωθεί κατά το ίδιο μέγεθος Παράδειγμα: ο πολ/σμος ευθύνεται για 80s/100s Πόσο πρέπει να βελτιώσουμε το πολ/σμο για να έχουμε 5 μεγαλύτερη απόδοση συνολικά; Είναι αδύνατο! ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 36
Παγίδα: MIPS ως μέτρο απόδοσης MIPS: Millions of Instruc ons Per Second Δεν παίρνει υπ όψη: Διαφορές στα σέτ εντολών (ISAs) μεταξύ υπολογιστών Διαφορές στην πολυπλοκότητα μεταξύ εντολών Επιπλέον το CPI είναι διαφορετικό για διαφορετικά προγράμματα ακόμα και στην ίδια CPU ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 37
Απόδοση- Περίληψη Εξαρτάται από Αλγοριθμο: επηρεάζει IC, πιθανόν CPI Γλώσσα προγραμματισμού: επηρεάζει IC, CPI Μεταφραστής: επηρεάζει IC, CPI Γιατί το λογισμικό επηρεάζει το CPI; Αρχιτεκτονική (ISA): επιρεάζει IC, CPI, CycleTime ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 38