ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Εαρινό Εξάμηνο 2007 Καθ. ΠΕυριπίδου Βοηθός: Πέτρος Παναγή Καλωσόρισμα (συμβόλαιο) Κεφ. 1 και 4 ΕΡΓΑΣΤΗΡΙΑ ΞΕΚΙΝΟΥΝ ΤΗΝ ΕΠΟΜΕΝΗ ΕΒΔΟΜ. 1 Τι θα μάθετε σε αυτό το μάθημα: Πώς HLL προγράμματα μεταφράζονται σε γλώσσα μηχανής και πώς το υλικό εκτελεί προγράμματα Διασύνδεση μεταξύ λογισμικού και υλικού Τι επηρεάζει την επίδοση ενός προγράμματος Πως μπορούμε να βελτιώσουμε την επίδοση του υλικού (ΕΠΛ421) Προγραμματισμός σε συμβολικό επίπεδο Σχεδιασμός σε ΗDL απλού επεξεργαστή 2
Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση 3 - Αρχιτεκτονική Υπολογιστών: Η αφηρημένη δομή ενός Η/Υ, που πρέπει να γνωρίζει ένας προγραμματιστής για να προγραμματίσει στη γλώσσα μηχανής (The abstract structure of a computer that a machine language programmer needs to know to write programs (Instruction Set Architecture ISA) Σύνολο Εντολών - Οργάνωση Υπολογιστών: Η Υλοποίηση σε υλικό/λογισμικό της αφηρημένης δομής. (The Hardware implementation of the abstract structure.) Σύστημα Μνήμης (Memory system) Δίαυλος (Bus structure) Σχεδιασμός/Υλοποίηση της Κεντρικής Μονάδας Επεξεργασίας (ΚΜΕ) (Internal CPU design) Μονάδες Εισόδου/Εξόδου Το IBM System/360 ήταν η αρχή της μοντέρνας αρχιτεκτονικής. (The IBM System/360 was the real beginning of modern Computer Architecture.) 4
Αφαιρετικότητα (abstraction) Το υλικό και το λογισμικό αποτελούνται από ιεραρχικά επίπεδα, όπου το χαμηλότερο επίπεδο κρύβει λεπτομέρειες του πιο πάνω επιπέδου. Έτσι προσφέρεται ένα πιο απλό μοντέλο στα ψηλότερα επίπεδα, αυτή η τεχνική ονομάζεται αφαιρετικότητα. Ηαρχήτηςαφαρετικότητας (abstraction) χρησιμοποιήται απο τους σχεδιαστέςτουυλικούκαιλογισμικού γιαναμπορέσουννα αντεπεξέλθουν στη πολυπλοκότητα των υπολογιστικών συστημάτων. 5 Αφαιρετικότητα Λογισμικού C Συμβολική(ΜΙPS) Μηχανής (ΜΙPS) 6
Αφαιρετικότητα Λογισμικού SOURCE CODE C Συμβολική(ΜΙPS) ASSEMBLY CODE OBJECT CODE Μηχανής (ΜΙPS) 7 Γλώσσα Ψηλού Επιπέδου Συμβολική Γλώσσα Γλώσσα Μηχανής Αρχιτεκτονική Συνόλου Εντολών(ISA) Υλικό (Υπολογιστής) 8
Αρχιτεκτονική Συνόλου Εντολών Διασύνδεση μεταξύ υλικού και λογισμικού Επιτρέπει ποικίλες υλοποιήσεις του υλικού με διαφορετικό κόστος και απόδοση για την ίδια αρχιτεκτονική ομάδας εντολών (ISA) (αφαιρετικότητα) 80386, 80486, P1, P2, P3, P4,M,Core (διαφορετικές υλοποιήσεις της ίδιας αρχιτεκτονικής) Alpha 21064, 21164, 21264, 21364 Όχι συμβατότητα στην εκτέλεση μεταξύ οικογενειών επεξεργαστών 9 Βασική Οργάνωση Υλικού Υπολογιστή -Επεξεργαστής Computer Διάδρομος Δεδομένων Έλεγχοs Processor Memory Devices - Μνήμη Control Input - Interface - Περιφερειακές Datapath Output - Μοναδες (Ι/Ο) - Νetwork connection 10
Tυπικός Επεξεργαστής (Floorplan) - Διάδρομος Δεδομένων (Datapath) -Moνάδα Ελέγχου (Control Unit) - Κρυφή Μνήμη (Caches) - Διασύνδεση (Interface) 11 Επεξεργαστής Core Duo 12
Κρυφή Μνήμη (Cache) 1st, 2nd level Μνήμη Πρωτέυουσα ή Κυριώς Mνήμη (main memory) Δευτερέυουσα Μνήμη (secondary memory) Hard, Floppy, CDs, Zips - Ταξινομήσεις Μνήμης Διάρκεια Αποθήκευσης Μόνιμη (non-volatile): μνήμη μόνο ανάγνωσης (ROM), CD- ROM, hard disk (μνήμη ανάγνωσης και αποθήκευσης) Πρόσκαιρη (volatile): τυπικά RAM π.χ. cache, main memory (μνήμη ανάγνωσης και αποθήκευσης) Τεχνολογία: CMOS (ROM, RAM, SRAM, DRAM), Magnetic Disk (hard, floppy), Laser/Optical (CD-ROM) 13 Oλοκληρωμένα Κυκλώματα - Η Εκπληκτική εξέλιξη στους υπολογιστές οφείλετε στις αλματώδεις και συνεχείς βελτιώσεις στην Τεχνολογία κατασκευής μνήμης και επεξεργαστών Αρχιτεκτονική και Οργάνωση Τεχνολογία μεταγλωτιστών - Τεχνολογία κόστος/απόδοσης SILICON και transistors Διαδικασία κατασκευής chip/dies Χωρητικότητα DRAΜ 14
Τεχνολογία Κατασκευής 15 Χωρητικότητα Eπεξεργαστών Intel 16
Εξέλιξη Τεχνολογίας Υλοποίησης 1958-10 0 1971-10 3 2002-10 7 2005-10 9 17 2005: Πολυπυρήνες (dual-cores or multicores Power 5 dual core Itanium 2- Montecito dual core 1958-10 0 2002-10 6 2005-10 9 Cell 1 PE + 8 SPE cores AMD Opteron dual core P4 EE dual core 18
Πρόοδος της Τεχνολογίας (PC) Οι υπολογιστές είναι πιο γρήγοροι 1971: 1 million instructions/sec 2006: 10 billion instructions/sec Έχουν πιο πολύ μνήμη 1971: 0.125 megabytes 2006: 1024.0 megabytes Κοστίζουν πιο λίγο 1971: $4,000,000 2006: $1,000 Speed/size/cost improvement factor:~100s billion 19 Πρόοδος της Τεχνολογίας 20
Πρόοδος της Τεχνολογίας Have more disk storage (internal) 1971: 10 MB 2006: 500,000 MB (soon beyond 1 terabyte = 1000GB) Higher communication speeds Human speech: 30 bits/sec 1971 Modem 300 bits/sec 2001 Modem: 56,000 bits/sec T1 line: 1,544,000 bits/sec Internet 2: 1,000,000,000 bits/sec IMPROVEMENT: 50000 x Nortel: 1,000,000,000,000 bits/sec in 1 fiber (entire U.S. telephone traffic) 1971-2001 IMPROVEMENT: 3 BILLION x 21 Γεννεές/Χαρακτηριστικά Υπολογιστών Νέα τεχνολογία νέα γεννεά 1. vacuum tube, 2. transistor, 3. integrated cct, 4. vlsi (CMOS) Τρομερές αλλαγές στα χαρακτηριστικά επεξεργαστών στα τελευταία 20 χρόνια Άυξηση απόδοσης >50% ανα χρόνο Διπλασιασμός χωρητικότητας ανα 18/24 μήνες Προκλήσεις: ενέργεια, ισχύς και θερμότητα 22
Γενεά Ημερομ. Τεχνολογία Κύρια νέα προϊόντα 1 1950 1959 Λυχνίες Εμπορικός ηλεκτρονικός υπολογιστής 2 1960 1968 Κρυσταλλοτριόδοι Πιο φθηνοί ηλεκτρονικοί υπολογιστές 3 1969 1977 Ολοκληρωμένα κυκλώματα Μικροϋπολογιστές 4 1978 1995 Μεγάλης και πολύ μεγάλης κλίμακας ολοκληρωμένα κυκλώματα 5 1996 2004 Μικροεπεξεργαστής; 6 2005 -? Πολυπυρήνες (multicore) Προσωπικοί υπολογιστές και σταθμοί εργασίας Προσωπικές, φορητές υπολογιστικές μηχανές και παράλληλοι επεξεργαστές; Ενσωματωμένοι 23 Χρόν Όνομα Μέγεθ (ft 2 ) Ισχύς (watts) Απόδοση (adds/sec) Μνή μη (KB) Κόστος $ 1951 Univac1 1000 124,500 1,900 48 1,000,000 1964 IBM 60 10,000 500,000 64 1,000,000 S360/ Mode50 1965 PDP 8 8 500 330,000 4 16,000 1976 Cray -1 58 60,000 166,000,000 32,768 4,000,000 1981 IBM PC 1 150 240,000 256 3,000 1991 HP900/ model 750 2 500 50,000,000 16,384 7,4000 2006 Dell PC (Intel Core Duo) 0.75 375 4,000,000,000 2MB (onchip) 1000
Επίσης συνέπεια της τεχνολογίας η διαφοροποίηση της αγοράς 25 Μέτρα Απόδοσης (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 26
Τι επηρεάζει τις παραμέτρους απόδοσης Time = I x CPI x Clock Cycle Time - I: αρχιτεκτονική και μεταγλωττιστής instrumentation, προσομοίωση, μετρητές υλικού - CPI: οργάνωση (χαρακτηριστικά προγράμματος/δεδομένων) προσομείωση, μετρητές υλικού - Clock Cycle Time: τεχνολογία Αλληλοεπιδράσεις μεταξύ Ι, CPI και Clock Cycle Time (συγκρουόμενοι στόχοι) Clock Cycles = Σ CPI i x Ι i για κάθε κατηγόρια εντολών i: μέσοςόροςκύκλωνανάεντολή (CPI i ) και αριθμός εντολών (Ι i ) 27 Δύο υλοποιήσεις της ίδιας αρχιτεκτονικής για κάποιο πρόγραμμα Κύκλος Ρολογιού CPI A 10ns 2 B 20ns 1.2 Ποιά μηχανή έχει την καλύτερη απόδοση και πόσο καλύτερη είναι; 28
CPU Time A = ns CPU Time B = ns Aπόδοση Α = 1 / CPU Time A Aπόδοση B = 1 / CPU Time B Aπόδοση Α / Απόδοση Β = 29 Άλλα Μέτρα Σύγκρισης: ΜΙ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 -TαίδιαπροβλήματαμεMIPS, ίσως και χειρότερα διαφορετικές αρχιτεκτονικές/υλοποιήσεις δεν παρέχουν την ίδια υποστηρίξη για FP εντολές 30
Επιλογή Προγραμμάτων (Βenchmarks) για Αξιολόγηση - Σχεδιαστές σήμερα χρησιμοποιούν πραγματικές εφαρμογές - Στο παρελθόν kernels, microbenches περιορισμένης εμβέλειας/χρήσεως βελτιστοποιήσεις -SPEC: Οοργανισμός με μέλη διάφορες εταιρείες www.spec.org -Mέτρα: Execution Time Ratio Γεωμετρικός Μέσος (Geometric Mean) Spec Ratio 31 SPEC: Γεωμετρικός Μέσος - Γιά κάθε πρόγραμμα i υπολόγιζει το execution ratio ER i =(χρονος σε 300 MHz UltraSun 5_10 / Χρονος μηχανη μετρησης )* 100 - Συνόψισε τα Execution Ratio n προγραμμάτων με Γεωμετρικό Μέσο n n SpecRatio= Π ER i i=1 - Γεωμετρικός Μέσος + ανεξάρτητο αναλογίας (Α/Β ήβ/α) δεν διατηρά σχέση με τον χρόνο εκτέλεσης (πόσο πιο γρήγορη είναι μια μηχανή) - SPEC CPU2000: 12 integer και 14 floating point εφαρμογές 32
Περιγραφή Συστημάτων 33 SPEC Ratio για 4 συστήματα 34
Παρατηρήσεις - Γρηγορότερο ρολόι δεν είναι αρκετό οεπεξεργαστής21164 με 533ΜΗz ρολόιέχειχαμηλότεροspec Ratio από τον 21264 με ρολόι 500ΜΗz - Γιατί; το CPI του 21264 είναι χαμηλότερο. Καλύτερη Οργάνωση Επεξεργαστή και Ιεραρχίας Mνήμης (κεφ. 5,6 και 7) 35 - Power = Energy / Time - Dynamic+Static Energy, Power, Temperature - Dynamic = C V 2 F, how to reduce dynamic power: - Frequency Scaling - Voltage scaling (F α V) - Static depends on technology - Power main limitation for mobile devices - if battery 70WH and power is 70W then 1hour of battery life - Example Metric for Power-Efficiency = 1 / (Energy. Delay) - Temperature problems when Power Density (Power/Area) is large 36
Κύρια σημεία Για επιτυχή ανάπτυξη του λογισμικού χρειάζεται πολύ καλή γνώση της οργάνωσης του υπολογιστή. Τα δεδομένα και οι εντολές αναπαριστούνται στο διάδικο σύστημα. Οι Η/Υ εκτελούν μόνο εντολές γλώσσας μηχανής. Τα πέντε μέρη του Η/Υ: είσοδος, έξοδος, μνήμη, διάδρομος δεδομένων και έλεγχος. Ιεραρχία υλικού και λογισμικού. Αρχιτεκτονική της ομάδας εντολών (Instruction set architecture). Υλοποίηση μιας αρχιτεκτονικής. Τα αποτελέσματα της διπλασιάσεις της χωρητικότητας της τεχνολογίας κατασκευής τσιπς cmos κάθε ενάμιση/δύο χρόνια. Πως μετρούμε και συγκρίνουμε την επίδοση 37