Κεφάλαιο 1 1 Σημείωση Οι παρούσες διαφάνειες παρέχονται ως συμπλήρωμα διδασκαλίας για το μάθημα «Αρχιτεκτονική Υπολογιστών» του Τμήματος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών και παρέχονται αποκλειστικά για προσωπική χρήση των εγγεγραμένων φοιτητών του μαθήματος Οι διαφάνειες αναφέρονται στο διδακτικό βιβλίο του μαθήματος Τα πνευματικά δικαιώματα των διαφανειών και των σχημάτων που περιλαμβάνονται ανήκουν στους συγγραφείς των διαφανειών, τους συγγραφείς του βιβλίου και τους δημιουργούς των σχημάτων Απαγορεύεται ρητά η αντιγραφή, αναπαραγωγή, διανομή, και μετάδοση των διαφανειών χωρίς άδεια Γενικά, απαγορεύεται οποιαδήποτε εμπορική χρήση των διαφανειών και οποιαδήποτε χρήση δεν συνάδει με τον διδακτικό τους σκοπό στοπανεπιστήμιοπατρών 2 1
Βασικές αρχές σχεδιασμού υπολογιστών Εισαγωγή 1946: παρουσίαση ENIAC, πρώτου ηλεκτρονικού υπολογιστή (είχε ολοκληρωθεί νωρίτερα), U. Pennsylvania 33 m μήκος, 3 m ύψος, register 10 ψηφίων = 65 cm, 18000 λυχνίες 1944: ανάπτυξη μοντέλου υπολογιστή αποθηκευμένου προγράμματος EDVAC (Electronic Discrete Variable Automatic Computer) J. von Neuman, J. Presper Eckert & J. Mauchly Von Neuman Computer 1946-1949: ανάπτυξη EDSAC (Electronic Delay Storage Automatic Calculator), Cambridge U. MARK I: μικρό πρωτότυπο σύστημα (1948, Manchester U.) Αρχιτεκτονική βασισμένη σε συσσωρευτή (accumulator) 4 2
Εισαγωγή (2) IAS Machine: πρόγονος του IBM 701 1024 40-bit λέξεις 10 φορές πιο γρήγορος από τον ENIAC Burks, Goldstine, von Neuman (1946), υλοποίηση στο IAS Princeton Harvard architecture: H. Aiken (MARK I,, MARK IV) Ξεχωριστές μνήμες για εντολές και δεδομένα Whirlwind: MIT (1947) Επεξεργασία σήματος για radar Μαγνητική μνήμη (αξιόπιστη & φτηνή) 2048 λέξεις 16-bit 5 Μηχανές ειδικού σκοπού Μηχανές κρυπτανάλυσης (Bletchley Park) BOMB: Alan Turing COLOSSUS: Newman & Flowers Μηχανές κρυπτανάλυσης (USA) Engineering Research Associates (ERA) Υπολογιστές ειδικού σκοπού (Γερμανία) 1930-1940: Konrad Zuse Αριθμητική κινητής υποδιαστολής Atanasoff Berry Computer (αρχές 40 s) Εισαγωγή βασικών ιδεών (δυαδική αναπαράσταση, κλπ). Επιρροή στους Eckert-Mauchly 6 3
1951: UNIVAC I Εμπορικές μηχανές Βασίστηκε στον BINAC της Eckert-Mauchly Corporation Πούλησε 48 μηχανές ($250.000/μηχανή) 1952: ΙΒΜ 701 Πούλησε 19 μηχανές Ακολούθησαν ΙΒΜ 702, 650, 704, 705 7 Μικροεπεξεργαστής... Γρήγορος ρυθμός ανάπτυξης υπολογιστών Πρόοδος της τεχνολογίας Καινοτομία στον σχεδιασμό υπολογιστών Μέχρι το 1970 και οι δύο παράμετροι Μετά το 1970 κυρίως ο πρώτος λόγος Τέλη της δεκαετίας του 1970: μικροεπεξεργαστής Η πρόοδος της τεχνολογίας οδηγούσε σε 35% βελτίωση/έτος Ο μικροεπεξεργαστής οδήγησε σε εμπορικές επιτυχίες Η ουσιαστική εξάλειψη του προγραμματισμού σε assembly μείωσε την ανάγκη για συμβατότητα κώδικα object H δημιουργία τυποποιημένων Λ.Σ. μείωσαν το κόστος εισαγωγής νέων μοντέλων υπολογιστών 1980: Reduced Instruction Set Computers (RISC) Βελτιωμένη απόδοση κατά 50% ανά έτος 8 4
Η εξέλιξη απόδοσης μικροεπεξεργαστών (1980-...) Μετροπρόγραμμα SPECint (SPEC92, SPEC95) Βάση: VAX 11/780 Από τα μέσα της δεκαετίας 80, η βελτίωση λόγω RISC 9 Επίδραση ρυθμού ανάπτυξης Σημαντικές δυνατότητες στους χρήστες Ο καλύτερος μικροεπεξεργαστής σήμερα είναι πιο αποδοτικός από τον υπερυπολογιστή πριν 10 χρόνια Κυριαρχία μικροεπεξεργαστών παντού! Σταθμοί εργασίας/προσωπικοί υπολογιστές Εξυπηρετητές (διακομιστές) Πολυεπεξεργαστές Υπερυπολογιστές 10 5
Η μεταβαλλόμενη μορφή υπολογισμού 1960 s: μεγάλοι κεντρικοί υπολογιστές (mainframes) Kόστος: εκατομμύρια δολλάρια Μεγάλες απαιτήσεις υποστήριξης 1970 s: μίνι υπολογιστή (minicomputer) Mικρότερο μέγεθος Αρχικά εφαρμογές ερευνητικών εργαστηρίων 1980 s: desktop, σταθμοί εργασίας Περισσότερη υπολογιστική ισχύς Μεγαλύτερη, αξιόπιστη μνήμη μακράς διαρκείας Ευρείας κλίμακας εφαρμογές 1990 s: Internet, WWW, PDA s, set-top boxes 11 Σταθμοί εργασίας Τύποι υπολογιστών Βελτιστοποίηση κόστους/απόδοση Απόδοση: υπολογισμοί & γραφικά Εξυπηρετητές Υπολογισμοί και αποθήκευση Κρίσιμες παράμετροι: διαθεσιμότητα, επεκτασιμότητα, απόδοση 12 6
Τύποι υπολογιστών (2) Ενσωματωμένοι υπολογιστές Πολλές φορές: αρχικά φόρτωση του κώδικα εφαρμογής (εξάρτηση από επεξεργαστή & σύστημα) Συμβατότητα: μεγάλο κόστος λογισμικού Σημαντικό: τιμή! (βελτιστοποίηση συνολικού κόστους) Λειτουργία πραγματικού χρόνου (real time) Περιορισμένοι πόροι: ελαχιστοποίηση μνήμης & ισχύος 13 Το έργο του σχεδιαστή υπολογιστών Ποιά χαρακτηριστικά είναι σημαντικά για καινούργιο υπολογιστή? Μεγιστοποίηση απόδοσης Ίδια οικονομικά πλαίσια Φάσεις: σχεδίαση συνόλου εντολών, λειτουργική οργάνωση, λογικός σχεδιασμός, υλοποίηση 14 7
Αρχιτεκτονική υπολογιστών Παρελθόν: σχεδίαση συνόλου εντολών Τα υπόλοιπα ήταν υλοποίηση... Σήμερα: σύνθετη δουλειά λόγω: Ομοιοτήτων συνόλων εντολών 3 διαφορετικές περιοχές εφαρμογών 3 απόψεις σχεδίασης υπολογιστή Σύνολο εντολών Οργάνωση Υλικό Στόχοι: τιμή, ισχύς, απόδοση 15 Αρχιτεκτονική υπολογιστών (2) Σύνολο εντολών Πραγματικό σύνολο εντολών που βλέπει ο προγραμματιστής ιεπαφή (Interface) υλικού/λογισμικού Οργάνωση Υψηλού επιπέδου σχεδίαση (σύστημα μνήμης, δομή διαύλων, CPU) ύο επεξεργαστές μπορεί να έχουν ίδιο σύνολο εντολών & διαφορετική οργάνωση (πχ. NEC VR5432 & NEC VR4122) Υλικό Λεπτομερή στοιχεία σχεδίασης (λογικός σχεδιασμός, πακετάρισμα, κλπ.) Pentium II & CELERON: σχεδόν όμοιοι με διαφορετική συχνότητα ρολογιού και διαφορετικά συστήματα μνήμης (CELERON πιο αποδοτικός σε υπολογιστές χαμηλού κόστους) 16 8
Αρχιτεκτονική υπολογιστών (3) Πρέπει να λαμβάνονται πάντα υπ όψη οι απαιτήσεις για την αρχιτεκτονική Λειτουργικές (εφαρμογές, λογισμικό, συμβατότητα, κλπ.) Τιμή Ισχύς Απόδοση 17 Λειτουργικές απαιτήσεις & τυπικά χαρακτηριστικά Περιοχή εφαρμογών Σταθμός εργασίας γενικής χρήσης Επιστημονικοί σταθμοί εργασίας και εξυπηρετητές Εμπορικοί εξυπηρετητές Ενσωματωμένος υπολογισμός Στόχος υπολογιστή Ισορροπημένη απόδοση σε μια ποικιλία εργασιών που περιλαμβάνουν διαδραστική απόδοση για γραφικά, εικόνα και ήχο Υψηλή απόδοση σε πράξεις κινητής υποδιαστολής και σε γραφικά Υποστήριξη για επεξεργασία βάσεων δεδομένων και συναλλαγών. Βελτιώσεις για αξιοπιστία και διαθεσιμότητα. Υποστήριξη για επεκτασιμότητα. Συχνά χρειάζεται ειδική υποστήριξη για γραφικά και εικόνα. Περιορισμοί στην ισχύ και πιθανός έλεγχος της ισχύος. 18 9
Λειτουργικές απαιτήσεις & τυπικά χαρακτηριστικά Επίπεδο συμβατότητας λογισμικού Στο επίπεδο γλώσσας μεταγλωττιστή προγραμματισμού Συμβατότητα σε ενδιάμεσο ή δυαδικό κώδικα Καθορίζει το υπάρχον λογισμικό για το μηχάνημα Η πιο ευέλικτη λύση για τον σχεδιαστή. Χρειάζεται νέο. Η αρχιτεκτονική του συνόλου εντολών είναι πλήρως ορισμένη αλλά δεν χρειάζεται επένδυση σε λογισμικό ή στη μεταφορά προγραμμάτων 19 Λειτουργικές απαιτήσεις & τυπικά χαρακτηριστικά Απαιτήσεις λειτουργικού συστήματος Μέγεθος χώρου διευθύνσεων ιαχείριση μνήμης Προστασία Απαραίτητα χαρακτηριστικά για υποστήριξη του επιλεγμένου λειτουργικού συστήματος Πολύ σημαντικό χαρακτηριστικό. Μπορεί να περιορίσει τις εφαρμογές. Απαραίτητη για τα σύγχρονα λειτουργικά συστήματα. Μπορεί να βασίζεται σε σελίδες ήτμήματα. ιαφορετικές ανάγκες λειτουργικού και εφαρμογών. Προστασία σελίδας ή τμήματος. 20 10
Λειτουργικές απαιτήσεις & τυπικά χαρακτηριστικά Πρότυπα Κινητή υποδιαστολή- Μορφοποίηση και αριθμητική ίαυλος εισόδου/εξόδου Λειτουργικά συστήματα ίκτυα Γλώσσες προγραμματισμού Η αγορά μπορεί να χρειαστεί κάποια πρότυπα Πρότυπο ΙΕΕΕ 754, ειδική αριθμητική για γραφικά και επεξεργασία σήματος Για συσκευές εισόδου/εξόδου. Ultra ATA, Ultra SCSI, PCI Unix PalmOS, Windows, Windows NT, Windows CE, CISCO IOS Χρειάζεται υποστήριξη για διάφορα δίκτυα, όπως Ethernet και Infiniband Οι Γλώσσες (ANSI C, C++, Java, Fortran) επηρεάζουν το σύνολο εντολών 21 Τάσεις της τεχνολογίας Υπάρχουν τέσσερεις τεχνολογίες υλοποίησης, οι οποίες αλλάζουν πολύ γρήγορα και είναι βασικές για τις σύγχρονες υλοποιήσεις: Η τεχνολογία λογικών ολοκληρωμένων κυκλωμάτων Αύξηση περίπου 35% το χρόνο DRAM ( υναμική μνήμη τυχαίας πρόσβασης) Αύξηση πυκνότητας 40-60% το χρόνο Τεχνολογία μαγνητικών δίσκων Αύξηση πυκνότητας > 100% το χρόνο (x4 ανά 2 έτη) Τεχνολογία διασύνδεσης εξαρτάται από την απόδοση των μεταγωγέων & του συστήματος μετάδοσης Στην δεκαετία 1980 έγινε δυνατόν να υλοποιηθεί ένας μικροεπεξεργαστής 32 bit σε μια μόνη ψηφίδα. 22 11
Τρανζίστορ, διασύνδεση & ισχύς Μέγεθος στοιχείου Τρανζίστορ Αγωγός διασύνδεσης Βελτίωση κατά άξονα Χ ή/και Ψ 10 μm (1971) -> 0,18 μm (2001) Γραμμική βελτίωση τρανζίστορ => τετραγωνική βελτίωση πυκνότητας Σμίκρυνση => μείωση τάσης Αποτέλεσμα: 4, 8, 16, 32, 64-bit επεξεργαστές, κρυφές μνήμες, pipelining (ομοχειρία) 23 Τρανζίστορ, διασύνδεση & ισχύς (2) Αγωγοί διασύνδεσης Καθυστέρηση σήματος CxR Σμίκρυνση: μικρότερη απόσταση αλλά μεγαλύτερη χωρητικότητα και αντίσταση (μεγάλη εξάρτηση από την τεχνολογία γεωμετρία, φόρτιση, κλπ.) Γενικά, βελτίωση καθυστέρησης μεταφοράς μικρότερη από αυτή του τρανζίστορ Ισχύς Για CMOS: μεταγωγή τρανζίστορ E C φόρτισης xf x V 2 Καθώς αλλάζει η τεχνολογία Αυξάνουν (πολύ!): αριθμός τρανζίστορ που αλλάζουν κατάσταση, f Μειώνονται (λιγότερο): C φόρτισης, V Αποτέλεσμα: αύξηση κατανάλωσης ισχύος Πρώτοι επεξεργαστές 0.x Watt Pentium 4 (2 GHz) 100 Watt 24 12
Κόστος & τιμή: τάσεις Σημαντικό: κόστος & σχετικές παράμετροι Οδηγούν σε έξυπνες επιλογές, όταν το κόστος είναι σημαντικό 1999 τα μισά PC κοστολογήθηκαν < 1000 $ 32-bit ενσωματωμένος επεξεργαστής ~ Κ x 10 $ Τελευταία 15 χρόνια Στόχος: μείωση κόστους & βελτίωση απόδοσης (ταυτόχρονα) 25 Κόστος & τιμή Η τιμή είναι πόσο πουλάς ένα τελειωμένο προϊόν Το κόστος είναι πόσο ξόδεψες για να το κατασκευάσεις, συμπεριλαμβανομένων και των γενικών εξόδων Οι τάσεις και οι παράγοντες που επηρεάζουν το κόστος (και πώς) αλλάζουν με τον χρόνο Οι κατηγορίες που καθορίζουν την τιμή μπορούν να εμφανιστούν είτε σαν επιβάρυνση στο κόστος, η σαν ποσοστό την τιμής. Η σχέση κόστους-τιμής είναι αρκετά πολύπλοκη. Παράδειγμα: Φανταστείτε να σχεδίαζαν οι αρχιτέκτονες ουρανοξύστες χωρίς να γνωρίζουν καθόλου το κόστος των σιδερένιων δοκαριών και του τσιμέντου 26 13
Παράγοντας 1: Χρόνος Το κόστος μειώνεται με την πάροδο χρόνου Καμπύλη εκμάθησης: απόδοση υλικού (ποσοστό συστημάτων που επιτυγχάνουν στον έλεγχο) Παράδειγμα: DRAM Μείωση κόστους ανά MB κατά 40% ανά έτος Σχεδίαση έως εισαγωγή προϊόντος στην αγορά: 2 χρόνια => κόστος DRAM 5 ή 10 (τιμή κοντά στο κόστος) Μικροεπεξεργαστές: πιο περίπλοκη σχέση 27 Τιμή DRAM στο χρόνο Το κόστος ενός ΜΒ μνήμης έπεσε δραματικά αυτή την περίοδο. Κάθε γενιά πέφτει σε σταθερές τιμές κατά ένα παράγοντα 10 έως 30 κατά την διάρκεια της ζωής της. 28 14
Τιμή Pentium III στο χρόνο 29 Παράγοντας 2: Όγκος Το κόστος μειώνεται με την αύξηση του όγκου Μείωση της καμπύλης εκμάθησης Αύξηση αποδοτικότητας αγοράς & κατασκευής (εμπειρικά: μείωση κόστους 10% ανά διπλασιασμό όγκου) Μείωση της απόσβεσης κόστους ανάπτυξης => τιμή κοντά στο κόστος 30 15
Παράγοντας 3: Μετατροπή σε κοινό αγαθό (commodity) Κοινά αγαθά: προϊόντα που πωλούνται από πολλούς πωλητές, σε τεράστιους όγκους και είναι πανομοιότυπα Παράδειγμα: προϊόντα παντοπωλείου Παράδειγμα υπολογιστών: DRAM, μικροί δίσκοι, οθόνες, πληκτρολόγια,... Κοινά αγαθά: ξεκάθαρος ορισμός προϊόντων & μεγάλοι όγκοι Μεγάλος ανταγωνισμός Μείωση τιμών & τιμή κοντά στο κόστος 31 Κόστος ολοκληρωμένου κυκλώματος Μεγάλο τμήμα συνολικού κόστους Τα (περισσότερα) υπόλοιπα είναι κοινά αγαθά Το κόστος των ολοκληρωμένων κυκλωμάτων έχει μειωθεί εκθετικά. Η βασική διαδικασία της κατασκευής κυκλωμάτων πυριτίου δεν αλλάζει: το πλακίδιο παράγεται και στη συνέχεια χωρίζεται σε ψηφίδες (chip), οι οποίες πακετάρονται. 32 16
Επιμέρους κόστη Κόστος _ Ψηφίδας + Κόστος _ Test _ Ψηφίδας + Κόστος _ Package& Test Κόστος _ ΟΚ = Τελική _ Απόδοση _ Test Κόστος _ Πλακιδίου Κόστος _ Ψηφίδας = Ψηφίδες Απόδοση _ Ψηφίδας Πλακίδιο Ο αριθμός των ψηφίδων ανά πλακίδιο είναι κατά κανόνα ο χώρος του πλακιδίου διαιρούμενος με το χώρο της ψηφίδας. Μπορεί να μετρηθεί ακριβέστερα από τον τύπο: 2 ( Π ( διάμετρος πλακιδίου / 2) ) ( Π διάμετρος πλακιδίου) Ψηφίδες ανά πλακίδιο = επιφάνεια ψηφίδας 2 επιφάνεια ψηφίδας 33 Κόστος έναντι τιμής Ανάλυση διαφοράς κόστους υλικών και τιμής πώλησης (η τιμή αυξάνεται από τα αριστερά προς τα δεξιά) Η τιμή πώλησης και η μέση τιμή πώλησης δεν είναι ίδιες! 34 17
Απόδοση Τι εννοούμε όταν λέμε ότι ένας υπολογιστής είναι πιο γρήγορος από έναν άλλο; Χρήστης: χρόνος απόκρισης (εκτέλεσης) ιευθυντής ΥΚ: ρυθμός ολοκλήρωσης Το Χ είναι Ν φορές πιο γρήγορο από το Ψ, σημαίνει: Ν = Χρόνος _ Εκτέλεσης ΑπόδοσηΧ = Χρόνος _ Εκτέλεσης Απόδοση Ψ Χ Ψ 35 Μετρώντας την απόδοση Χρόνος: Wall-clock time (χρόνος απόκρισης) Χρόνος δίσκου Χρόνος I/O Χρόνος λειτουργικού, κλπ. Χρόνος CPU: χρόνος χωρίς αναμονή I/O & εκτέλεση άλλου προγράμματος Χρόνος CPU χρήστη Χρόνος CPU συστήματος οκιμάστε το time σε UNIX 90.7u 12.9s 2:39 65% Εμείς τι χρησιμοποιούμε? Απόδοση συστήματος: διανυμένος χρόνος (όχι φορτίο) Απόδοση CPU: χρόνος CPU χρήστη (όχι φορτίο) 36 18
Επιλογή προγραμμάτων για απόδοση Πολλές επιλογές διαφορετική ακρίβεια Πραγματικές εφαρμογές C compiler, Word, Photoshop, Τροποποιημένες ( στημένες ) εφαρμογές Βελτίωση φορητότητας ή εστίαση σε συγκεκριμένα σημεία (πχ., απομάκρυνση I/O) Πυρήνες Βασικά τμήματα αληθινών προγραμμάτων (πχ., Livermore loops, Linpack, ) Προγράμματα αναφοράς παιχνίδια Μικρά προγράμματα (10-100 γραμμές κώδικα) Sieve, Puzzle, Quicksort, Συνθετικά προγράμματα αναφοράς Whetstone, Dhrystone, εν είναι αληθινά προγράμματα 37 Συλλογές προγραμμάτων αναφοράς ημοφιλές: συλλογή πολλών προγραμμάτων αναφοράς Πλεονέκτημα: η αδυναμία του ενός προγράμματος καλύπτεται από άλλο της συλλογής SPEC (Standard Performance Evaluation Corporation) www.spec.org Αρχικά την δεκαετία 80 Σήμερα: προγράμματα για διαφορετικές ομάδες εφαρμογών Υπάρχει SPEC και για PC με Windows 38 19
Πρόσθετα προγράμματα αναφοράς σταθμών εργασίας (εκτός SPEC) Τα πρώτα δύο είναι τμήματα πραγματικών εφαρμογών Το τρίτο είναι μίγμα πυρήνων και συνθετικών προγραμμάτων αναφοράς 39 Προγράμματα αναφοράς σταθμών εργασίας (SPEC) ύο κατηγορίες Προγράμματα αναφοράς CPU SPEC 89, SPEC 92, SPEC 95, SPEC 2000 Προγράμματα αναφοράς γραφικών SPECviewpref, SPECapc Ta SPEC για CPU είναι κατάλληλα και για εξυπηρετητές με έναν (μονό) επεξεργαστή 40 20
Προγράμματα αναφοράς εξυπηρετητών SPECrate: μετατροπή του SPEC CPU ανά επεξεργαστή σε μέτρηση ρυθμού SPECSFS: κατανομής αρχείων (NFS) SPECWeb: εξυπηρετητή ιστού TP (Transaction Processing) www.tpc.org TPC (Transaction Processing Council) TPC-A -> TPC-C (πολύπλοκες αναζητήσεις), TPC-H (υποστήριξη αποφάσεων), TPC-R (επιχειρηματικές αποφάσεις), TPC-W (συναλλαγές δικτύου) Μέτρηση απόδοσης: συναλλαγές/second 41 Προγράμματα αναφοράς ενσωματωμένων συστημάτων Προσπάθεια σε βρεφική κατάσταση... Πολλοί μετράνε σε Dhrystones Μη ρεαλιστική η χρήση μίας ομάδας Απαιτήσεις χαλαρού πραγματικού χρόνου, απόλυτου πραγματικού χρόνου,... Πρακτικά: πολλοί σχεδιαστές ενσωματωμένων συστημάτων δημιουργούν προγράμματα αναφοράς που αντικατοπτρίζουν την εφαρμογή τους είτε ως πυρήνες είτε ως εκδοχές ολόκληρης της εφαρμογής 42 21
EEMBC EEMBC (EDN Embedded Microprocessor Benchmark Consortium) Καλύτερο για εφαρμογές που χαρακτηρίζονται καλά από πυρήνες Πέντε κατηγορίες: Αυτοκίνητα/Βιομηχανία Συσκευές ικτύωση Αυτοματισμούς γραφείου Τηλεπικοινωνίες 43 Συγκρίνοντας απόδοση Υπολογιστής Α Υπολογιστής Β Υπολογιστής Γ Πρόγραμμα P1 (sec) Πρόγραμμα P2 (sec) Συνολικός χρόνος (sec) 1 1000 1001 10 100 110 20 20 40 Το Α είναι 10 φορές γρηγορότερο από το Β για το Ρ1 Το Β είναι 10 φορές γρηγορότερο από το Α για το Ρ2 Το Α είναι 20 φορές γρηγορότερο από το Γ για το Ρ1 Το Γ είναι 50 φορές γρηγορότερο από το Α για το Ρ2 Το Β είναι 2 φορές γρηγορότερο από το Γ για το Ρ1 Το Γ είναι 5 φορές γρηγορότερο από το Β για το Ρ2 Οδηγεί σε σύγχυση... Ποιός είναι ο καλύτερος από τους 3??? 44 22
Συνολικός χρόνος εκτέλεσης Υπολογιστής Α Υπολογιστής Β Υπολογιστής Γ Πρόγραμμα P1 (sec) Πρόγραμμα P2 (sec) Συνολικός χρόνος (sec) 1 1000 1001 10 100 110 20 20 40 Με βάση τον χρόνο εκτέλεσης (την τελική μας μέτρηση της απόδοσης): Το Β είναι 9.1 φορές γρηγορότερο από το Α για τα Ρ1 και Ρ2 Το Γ είναι 25 φορές γρηγορότερο από το Α για τα Ρ1 και Ρ2 Το Γ είναι 2,75 φορές γρηγορότερο από το Β για τα Ρ1 και Ρ2 45 Σταθμισμένος χρόνος εκτέλεσης Ένας μέσος όρος των χρόνων εκτέλεσης είναι ο αριθμητικός μέσος όρος: n 1 Χρόνος n i= 1 Ποιό είναι το σωστό μίγμα προγραμμάτων για το φορτίο? Όταν έχουμε ένα άνισο μίγμα προγραμμάτων στο φορτίο, προσδιορίζουμε έναν παράγοντα στάθμισης w i σε κάθε πρόγραμμα για να δείχνει τη σχετική συχνότητα του προγράμματος στο φορτίο n Βάρος i Χρόνος i i=1 όπου Βάρος i είναι η συχνότητα του i-στού προγράμματος στο φορτίο και ο Χρόνος i είναι ο χρόνος εκτέλεσης αυτού του προγράμματος i 46 23
Παράδειγμα Συστήματα Βάρη P1 (secs) P2 (secs) AM: W(1) AM: W(2) AM: W(3) Α 1.00 1000.00 500.50 91.91 2.00 Β 10.00 100.00 55.00 18.19 10.09 Γ 20.00 20.00 20.00 20.00 20.00 W(1) 0.50 0.50 W(2) 0.909 0.091 W(3) 0.999 0.001 47 Κανονικοποιημένος χρόνος εκτέλεσης εύτερη προσέγγιση: προσαρμόζουμε τους χρόνους εκτέλεσης σε μια μηχανή αναφοράς και μετά παίρνουμε το μέσο όρο των προσαρμοσμένων χρόνων εκτέλεσης SPEC χρησιμοποιεί ως αναφορά το SPARCstation Έκφραση προσαρμοσμένου χρόνου με γεωμετρικό ή αριθμητικό μέσο Ο τύπος γεωμετρικού μέσου είναι n n i= 1 Λόγος Χρόνου Εκτέλεσης όπου Λόγος Χρόνου Εκτέλεσης i είναι ο σταθμισμένος χρόνος εκτέλεσης (προς τη μηχανή αναφοράς) του i- στού προγράμματος i 48 24
Πλεονεκτήματα γεωμετρικού μέσου Λόγος μέσων = μέσος λόγων Γεωμετρικ ός _ Μ έσος ( Χ i) Χ i = Γεωμετρικ ός _ Μ έσος ( ) Γεωμετρικ ός _ Μ έσος ( Ψ i) Ψ i Αποτέλεσμα ανεξάρτητο μηχανής αναφοράς Οι σταθμισμένοι αριθμητικοί μέσοι ορίζονται ανάλογα με χρόνο & επιρρεάζονται από Συχνότητα χρήσης φορτίου Χαρακτηριστικά μηχανής αναφοράς Μέγεθος δεδομένων 49 Μειονεκτήματα γεωμετρικού μέσου ΕΝ προβλέπει χρόνο εκτέλεσης! Βελτίωση μπορεί να επιτευχθεί με εύκολες παρεμβάσεις Βελτιώνουμε ότι βελτιώνεται ευκολότερα 2 sec -> 1 sec 10.000 sec -> 5.000 sec 50 25
Μειονεκτήματα γεωμετρικού μέσου (2) ΓΜ -> Α & Β ίδιασυστήματα Θα ίσχυε, εάν 1 P1 ανά 10 P2 Συγκρουόμενα αποτελέσματα Αείναι5 φορές γρογορότερος από Β (στήλες 1-2) Βείναι5 φορές γρογορότερος από Α (στήλες 4-5) ΓΜ ανεξάρτητοι από προσαρμογή Γενικά, Αρμονικός μέσος Γεωμετρικός μέσος Αριθμητικός μέσος για ένα σύνολο αριθμών 51 Τελικά τι να κάνουμε??? Ιδανικά: μετράμε αληθινά φορτία και σταθμίζουμε με βάση την συχνότητα τους Αν δεν είναι δυνατόν, προσαρμογή: ξοδεύεται ίσος χρόνος για κάθε πρόγραμμα Καθορισμός δεδομένων??? Λογικό: λαμβάνουμε υπόψη και τις μετρήσεις επιμέρους προγραμμάτων και συνολικά 52 26
Ποσοτικές αρχές σχεδιασμού υπολογιστών Η πιο σημαντική αρχή του σχεδιασμού υπολογιστών: Να κάνετε γρήγορη την κοινή περίπτωση Όταν κάνετε σχεδιαστικούς συμβιβασμούς, προτιμήστε την συχνή περίπτωση από την σπάνια Η συχνή περίπτωση είναι (συνήθως) πιο εύκολη και μπορεί να γίνει πιο γρήγορα απ ότι η σπάνια Παράδειγμα: όταν προσθέτουμε δύο αριθμούς στην CPU Υπερχείλιση = σπάνια Βελτιστοποίηση της περίπτωσης μη υπερχείλισης 53 Νόμος του Amdahl Θεωρείστε μιά βελτιστοποίηση σε μέρος του υπολογιστή Επιτάχυνση: απόδοση _ έργου _ με _ την _ βελτιστοποίηση Επιτάχυνση = απόδοση _ έργου _ χωρίς _ την _ βελτιστοποίηση ή χρόνος _ έργου _ χωρ ίς _ την _ βελτιστοπο ίηση Επιτάχυνση = χρόνος _ έργου _ με _ την _ βελτιστοπο ίηση 54 27
Παράγοντες βελτιστοποίησης Κλάσμα βελτιστοποίησης : κλάσμα χρόνου υπολογισμού του αρχικού μηχανήματος που μπορεί να υποστεί μετατροπή για να εκμεταλλευτεί την βελτιστοποίηση Πχ., το 0.2 του (αρχικού) προγράμματος μπορεί να χρησιμοποιήσει την βετιστοποίηση Επιτάχυνση βελτιστοποίησης : η βελτίωση που κερδίζουμε από την βελτιστοποιημένη εκτέλεση (πόσο πιο γρήγορα θα έτρεχε η λειτουργία, εάν η βελτιστοποιημένη μέθοδος χρησιμοποιούταν για όλο το πρόγραμμα) Θεωρούμε μόνο τα τμήματα του προγράμματος που μπορούν να εκμεταλλευτούν την βελτιστοποίηση 55 Έκφραση νόμου Amdahl Υπολογισμός νέου χρόνου εκτέλεσης: χρόνος εκτέλεσης = νέος χρόνος εκτέλεσηςπαλιός 1 Συνολική επιτάχυνση: Επιτάχυνση συνολική χρόνος εκτέλεσης = χρόνος εκτέλεσης παλιό νέος βελτιστοποί ησης ( κλάσμα ) + βελτιστοποί ησης επιτάχυνσηβελτιστοπο ίησης = 1 κλάσμα βελτ ( 1 κλάσμα ) + βελτιστοποησης ί κλάσμα επιτάχυνση βελτ. 56 28
Τι λέει ο νόμος του Amdahl? Hβελτίωση της απόδοσης που επιτυγχάνεται με τη χρήση κάποιας πιο γρήγορης μεθόδου εκτέλεσης περιορίζεται από το κλάσμα του χρόνου στον οποίο μπορεί να χρησιμοποιηθεί η γρηγορότερη αυτή μέθοδος 57 Παράδειγμα 1 Έχουμε εξυπηρετητή ιστού (Web server). Καινούργια CPU 10 φορές γρηγορότερη. Εάν η αρχική CPU επεξεργάζεται δεδομένα για 40% του χρόνου και περιμένει I/O 60% του χρόνου, πόση είναι η συνολική επιτάχυνση που κερδίζουμε? Κλάσμα βελτιστοποίησης = 0.4 Επιτάχυνση βελτιστοποίησης = 10 1 1 Επιτάχυνσησυνολική = = = 1. 56 0.4 0.6 + 0.64 10 58 29
Παράδειγμα 2 Συχνή πράξη στα γραφικά: τετραγωνική ρίζα Οι υλοποιήσεις της τετραγωνικής ρίζας σε κινητή υποδιαστολή διαφέρουν σημαντικά σε απόδοση κυρίως μεταξύ επεξεργαστών που έχουν σχεδιαστεί για γραφικά Υποθέστε ότι η τετραγωνική ρίζα κινητής υποδιαστολής αποτελεί το 20% του χρόνου εκτέλεσης ενός κρίσιμου προγράμματος αναφοράς γραφικών 2 προτάσεις: Να βελτιώσουμε το υλικό υπολογισμού της τετραγωνικής ρίζας και να επιταχύνουμε αυτή την πράξη κατά ένα παράγοντα 10 Να προσπαθήσουμε να κάνουμε όλες τις εντολές κινητής υποδιαστολής του επεξεργαστή γρηγορότερες κατά ένα παράγοντα 1.6. Οι εντολές κινητής υποδιαστολής αποτελούν το 50% του χρόνου εκτέλεσης της εφαρμογής. Η σχεδαστική ομάδα θεωρεί ότι και οι δύο προτάσεις απαιτούν την ίδια προσπάθεια. Να συγκρίνετε τις δύο επιλογές. 59 Παράδειγμα 2 (συν.) Απάντηση: Μπορούμε να συγκρίνουμε τις δύο επιλογές συγκρίνοντας τις αντίστοιχες επιταχύνσεις 1 1 1,23 Επιτάχυνση FPSQR = = = 0.2 0,82 (1-0.2)+ 10 1 1 1,23 Επιτάχυνση FP = = = 0.5 0,8125 (1-0.5)+ 1,6 Επιτάχυνση FP λίγο καλύτερη από FPSQR 60 30
Εξίσωση απόδοσης CPU Όλοι οι υπολογιστές κατaσκευάζονται χρησιμοποιώντας ένα ρολόι που λειτουργεί με μια σταθερή και συνεχή συχνότητα. Οι ξεχωριστές μονάδες χρόνου ονομάζονται τικ (ticks), τικ ρολογιού (clock ticks), περίοδοι ρολογιού (clock periods), ρολόγια (clocks), κύκλοι (cycles) ή κύκλοι ρολογιού (clock cycles). n Χρόνος CPU = ( Σ IC i * CPI i )* χρόνος κύκλων ρολογιού i=1 IC (Instruction count): μήκος μονοπατιού εντολών (αριθμός εντολών) CPI (Clocks per instruction): μέσος αριθμός κύκλων ρολογιού ανά εντολή n Σ IC i * CPI i n i=1 CPI = = ICi Αριθμός εντολών Σ * CPIi i=1 Αριθμός εντολών 61 Παράδειγμα Υποθέστε ότι έχουμε κάνει τις παρακάτω μετρήσεις: Η συχνότητα των FP λειτουργιών= 25% Μέσο CPI των FP λειτουργιών= 4,0 Μέσο CPI άλλων εντολών= 1,33 Συχνότητα του FPSQR= 2% CPI του FPSQR= 20 Υποθέστε δύο εναλλακτικές προσπάθειες: μείωση του CPI του FPSQR σε 2 μείωση του μέσου CPI όλων των FP λειτουργιών σε 2,5 Συγκρίνετε αυτές τις δύο εναλλακτικές σχεδιασμού χρησιμοποιώντας την εξίσωση της απόδοσης της CPU 62 31
Απάντηση Παρατηρείστε ότι αλλάζει μόνο το CPI. Η συχνότητα ρολογιού και ο αριθμός εντολών παραμένουν τα ίδια. Ξεκινάμε με το να βρούμε το αρχικό CPI χωρίς καμία βελτιστοποίηση: CPI αρχικό = IC n i CPI i i= 1 αριθμός εντολών ( 4 25% ) + ( 1,33 75% ) = 2, 0 Μπορούμε να υπολογίσουμε το CPI για το βελτιωμένο FPSQR αφαιρώντας τους κύκλους που εξοικονομήθηκαν από το αρχικό CPI: = CPI ( CPI CPI ) = 2.0 2% ( 20 2) 1, 64 με νέο FPSQR = CPIαρχικό παλιού FPSQR νέου FPQSR only 2 % = 63 Απάντηση (2) Μπορούμε να υπολογίσουμε το CPI για την βελτίωση όλων των εντολών FP με τον ίδιο τρόπο ή συνοψίζοντας τα CPI s με FP και χωρίς FP. Χρησιμοποιώντας το τελευταίο προκύπτει: CPI με νέο FP = ( 75 % 1,33) + ( 25% 2,5) = 1, 625 Αφού το CPI της συνολικής βελτίωσης της FP είναι χαμηλότερο, η απόδοσή του θα είναι ελάχιστα καλύτερη. Συγκεκριμένα, η επιτάχυνση για τη συνολική βελτίωση της FP είναι: Επιτά χυνση με νέο FP χρόνος CPU = χρόνος CPU αρχικός με νέο FP IC Κύκλος ρολογιού CPI = IC Κύκλος ρολογιού CPI αρχικό με νέο FP CPI = CPI αρχικό με νέο FP 2.00 = = 1.23 1.625 64 32
Συνολικά Συχνά μπορούμε να μετρήσουμε τα συνθετικά μέρη της εξίσωσης της απόδοσης CPU Πλεονέκτημα της χρήσης της εξίσωσης απόδοσης της CPU Μπορεί να είναι δύσκολο να μετρήσουμε κάποια πράγματα, πχ. το κλάσμα του χρόνου εκτέλεσης για το οποίο είναι υπεύθυνο ένα σύνολο εντολών Στην πράξη αυτό μάλλον θα το μετρούσαμε ως άθροισμα των γινομένων (αριθμός εντολών xcpi) για κάθε μία από τις εντολές του συνόλου Επειδή το σημείο εκκίνησης είναι συχνά ξεχωριστοί αριθμοί εντολών και μετρήσεις CPU, η εξίσωση της απόδοσης της CPU είναι εξαιρετικά χρήσιμη 65 Μέτρηση & μοντέλα παραμέτρων εξίσωσης απόδοσης CPU Για ένα υπάρχοντα επεξεργαστή είναι εύκολο να μετρήσουμε το χρόνο εκτέλεσης, ενώ η ταχύτητα του ρολογιού είναι γνωστή. Το πρόβλημα είναι να ανακαλύψουμε τον αριθμό των εντολών (CPI) 3 τεχνικές Στατική μοντελοποίηση: Βασίζεται στην επισκόπηση του προγράμματος: Χρήση μετρητών υλικού του επεξεργαστή Χρήση υποβοηθούμενης εκτέλεσης Μετάφραση προγράμματος σε επίπεδο εντολών μηχανής και μέτρηση εντολών Προσομοίωση ίχνους Αναλυτική τεχνική για μοντελοποίηση απόδοσης Ιδιαίτερα χρήσιμη τεχνική για μοντελοποίηση απόδοσης συστήματος μνήμης Ίχνος: περιλαμβάνει εντολές που εκτελέστηκαν & τις διευθύνσεις μνήμης δεδομένων που χρησιμοποιήθηκαν Προσομοίωση εκτέλεσης Ακριβής αλλά μεγάλου κόστους 66 33
Απόδοση & τιμή/απόδοση Σταθμοί εργασίας: χρησιμοποιούμε τα προγράμματα αναφοράς SPEC CPU Εξυπηρετητές: χρησιμοποιούμε το TPC-C ως αναφορά Ενσωματωμένοι επεξεργαστές: χρησιμοποιούμε το EEMBC ως αναφορά 67 Απόδοση & τιμή/απόδοση: σταθμοί εργασίας 7 συστήματα (1 CPU, 512 MB SDRAM, 20 GB δίσκο, 10/100 Mbps Ethernet, γραφικά) Χρησιμοποιείται ως μέτρο το SPEC CINT 2000 Η τιμή προς απόδοση ακολουθεί την απόδοση (περίπου) (Ιούλιος 2001) 68 34
Απόδοση & τιμή/απόδοση: σταθμοί εργασίας 7 συστήματα Χρησιμοποιείται ως μέτρο το SPEC CFP 2000 Η δραματική διαφορά της απόδοσης κινητής υποδιαστολής του Pentium 4 ως προς τον Pentium III. Η τιμή προς απόδοση παρακολουθεί μερικώς την απόδοση αλλά όχι τόσο ξεκάθαρα όσο στην περίπτωση των προγραμμάτων αναφοράς ακεραίων (Ιούλιος 2001) 69 Απόδοση & τιμή/απόδοση: εξυπηρετητές επεξεργασίας συναλλαγών Η αναφορά της βιομηχανίας για OLTP είναι τo TPC-C, το οποίο βασίζεται σε ένα σύστημα βάσης δεδομένων για να εκτελέσει αναζητήσεις και ενημερώσεις. Πέντε παράγοντες κάνουν την απόδοση του TPC-C ιδιαίτερα ενδιαφέρουσα: Το TPC-C είναι μια λογική προσέγγιση μιας πραγματικής εφαρμογής OLTP Το TPC-C μετρά την συνολική απόδοση του συστήματος Οι κανόνες εκτέλεσης του προγράμματος αναφοράς και της μέτρησης του χρόνου εκτέλεσης είναι πλήρεις Οι εταιρείες που αναπτύσσουν υπολογιστικά συστήματα αφιερώνουν αρκετή προσπάθεια στο να τρέχει σωστά το TPC-C Οι εταιρείες πώλησης υποχρεούνται να αναφέρουν τόσο την απόδοση όσο και το κόστος προς απόδοση που μας επιτρέπει να εξετάζουμε και τα δύο 70 35
Απόδοση & τιμή/απόδοση: εξυπηρετητές επεξεργασίας συναλλαγών 6 συστήματα κορυφαίας απόδοσης, χρησιμοποιώντας TPC-C Ενδιαφέρον: η IBM καταλαμβάνει 3 από τις 6 θέσεις 71 Απόδοση & τιμή/απόδοση: ενσωματωμένοι επεξεργαστές Είναι πιο δύσκολοι απ ότι για τους σταθμούς εργασίας και τους εξυπηρετητές λόγω κάποιων ιδιαίτερων χαρακτηριστικών Τα προγράμματα αναφοράς ΕΕΜΒC αποτελούν μια σημαντική πρόοδο στην διαθεσιμότητα και χρήση προγραμμάτων αναφοράς. Έχουν σημαντικά μειονεκτήματα. Το κόστος και η ισχύς είναι συχνά οι πιο σημαντικοί παράγοντες μιας ενσωματωμένης εφαρμογής Η ισχύς είναι συχνά ο βασικός περιορισμός στα ενσωματωμένα συστήματα 72 36
Απόδοση & τιμή/απόδοση: ενσωματωμένοι επεξεργαστές Σχετική απόδοση των πέντε ενσωματωμένων επεξεργαστών για τρία από τα πέντε προγράμματα αναφοράς της ομάδας ΕΕΜBC Η διαφορά στην συχνότητα του ρολογιού εξηγεί το 33% με 75% της διαφοράς στην απόδοση 73 Σφάλματα & παγίδες Σφάλμα: λανθασμένη αντίληψη (παράδειγμα) Παγίδες: λάθη που μπορούν να γίνουν εύκολα Συχνά οι παγίδες είναι γενικεύσεις αρχών, οι οποίες ισχύουν σε συγκεκριμένο περιβάλλον 74 37
Σφάλματα & παγίδες Σφάλμα: τα προγράμματα αναφοράς δίνουν έγκυρα αποτελέσματα επ άπειρον Οι παράγοντες που επιρρεάζουν την χρησιμότητα ενός προγράμματος αναφοράς μπορεί να αλλάξουν με τον χρόνο: Το SPEC 89 περιείχε μικρό πυρήνα, matrix300, που ήταν 8 διαφορετικοί πολλαπλασιασμοί πινάκων 300x300. Το 99% του χρόνου εκτέλεσης ήταν πάνω σε μία γραμμή! Η βελτιστοποίηση μεταφραστή στον IBM Power Station 550 οδηγούσεσεβελτίωσηx9, συγκριτικά με το προηγούμενο μοντέλο. Η σύγκριση ήταν τελικά μεταξύ μεταφραστών! 75 Σφάλματα & παγίδες Σφάλμα: η μέγιστη απόδοση ακολουθεί την παρατηρούμενη απόδοση Συνηθισμένη διαφορά μεταξύ παρατηρούμενης και μέγιστης απόδοσης ~10: Hitachi S810/20 vs. CRAY-XMP: 236 MFLOPS vs. 115 MFLOPS για μικρό κώδικα με μικρά διανύσματα Hitachi S810/20 vs. CRAY-XMP: 1/1.97 για συνηθισμένα διανυσματικά μήκη 76 38
Σφάλματα & παγίδες Σφάλμα: η καλύτερησχεδίασηενόςυπολογιστήείναιαυτήπου βελτιστοποιεί τον κύριο στόχο, χωρίς να δίνει σημασία στην υλοποίηση Η πολυπλοκότητα της σχεδίασης είναι ένας πολύ σημαντικός παράγοντας κόστους: Πολύπλοκες σχεδιάσεις χρειάζονται περισσότερο χρόνο για να ολοκληρωθούν, αυξάνοντας την καθυστέρηση εισόδου στην αγορά. Με δεδομένη την πολύ γρήγορη αύξηση της απόδοσης των υπολογιστών, ένας μεγαλύτερος χρόνος σχεδίασης σημαίνει ότι η σχεδίαση θα είναι λιγότερο ανταγωνιστική. Ο αρχιτέκτονας πρέπει να έχει στο νου του συνέχεια την επίδραση των σχεδιαστικών επιλογών του τόσο στο χρόνο σχεδίασης του υλικού όσο και του λογισμικού Οι πολλές αναβολές της παραγωγής του επεξεργαστή Itanium πρέπει να αποτελούν υπόμνηση των κινδύνων στην υλοποίηση μιας καινούργιας αρχιτεκτονικής με πολύπλοκη σχεδίαση. Με την απόδοση των επεξεργαστών να αυξανεται κατά περίπου 50% το χρόνο, κάθε εβδομάδα καθυστέρησης αντιστοιχεί σε 1% απώλεια σχετικής απόδοσης. 77 Σφάλματα & παγίδες Παγίδα: πέφτοντας θύματα του νόμου του Amdahl Όλοι οι αρχιτέκτονες υπολογιστών γνωρίζουν τον νόμο του Amdahl. Παρ όλα αυτά, όλοι πέφτουμε κατά διαστήματα στην παγίδα της βελτιστοποίησης (με πολύ μεγάλο κόστος) κάποιου κομματιού του συστήματος πριν μετρήσουμε την χρήση του. Μόνον όταν η συνολική επιτάχυνση δεν είναι αυτή που περιμένουμε, θυμόμαστε ότι έπρεπε να είχαμε μετρήσει την χρήση της λειτουργίας πριν ξοδέψουμε τόση ενέργεια στην βελτιστοποίησή της. 78 39