ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Καθ. Π Ευριπίδου Βοηθός: Πέτρος Παναγή 1 Τι θα μάθετε σε αυτό το μάθημα: Πώς HLL προγράμματα μεταφράζονται σε γλώσσα μηχανής και πώς το υλικό εκτελεί προγράμματα Διασύνδεση μεταξύ λογισμικού και υλικού Τι επηρεάζει την επίδοση ενός προγράμματος Πως μπορούμε να βελτιώσουμε την επίδοση του υλικού (ΕΠΛ421) Προγραμματισμός σε συμβολικό επίπεδο Σχεδιασμός σε ΗDL απλού επεξεργαστή 2 1
Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση 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 2
Αφαιρετικότητα (abstraction) Υπολογιστικών συστημάτων. Το υλικό και το λογισμικό αποτελούνται από ιεραρχικά επίπεδα, όπου το χαμηλότερο επίπεδο κρύβει λεπτομέρειες του πιο πάνω επιπέδου. Προσφέρει ένα πιο απλό μοντέλο στα ψηλότερα επίπεδα. Η αρχή της αφαρετικότητας (abstraction) χρησιμοποιήται απο τους σχεδιαστές του υλικού και λογισμικού για να μπορέσουν να αντεπεξέλθουν στη πολυπλοκότητα των Υπολογιστικών συστημάτων. 5 Αφαιρετικότητα Λογισμικού C Συμβολική(ΜΙPS) Μηχανής (ΜΙPS) 6 3
Αφαιρετικότητα Λογισμικού SOURCE CODE C Συμβολική(ΜΙPS) ASSEMBLY CODE OBJECT CODE Μηχανής (ΜΙPS) 7 Γλώσσα Ψηλού Επιπέδου Συμβολική Γλώσσα Γλώσσα Μηχανής Αρχιτεκτονική Συνόλου Εντολών(ISA) Υλικό (Υπολογιστής) 8 4
Αρχιτεκτονική Συνόλου Εντολών Instruction Set Architecture (ISA) Διασύνδεση μεταξύ υλικού και λογισμικού Επιτρέπει ποικίλες υλοποιήσεις του υλικού με διαφορετικό κόστος και απόδοση για την ίδια αρχιτεκτονική ομάδας εντολών (ISA) (αφαιρετικότητα) 80386, 80486, P1, P2, P3, P4,M,Core (διαφορετικές υλοποιήσεις της ίδιας αρχιτεκτονικής) Alpha 21064, 21164, 21264, 21364 Όχι συμβατότητα στην εκτέλεση μεταξύ διαφορετικών οικογενειών επεξεργαστών 9 Βασική Οργάνωση Υλικού Υπολογιστή -Επεξεργαστής Διάδρομος Δεδομένων Έλεγχοs - Μνήμη - Interface - Περιφερειακές - Μοναδες (Ι/Ο) - Νetwork connection Computer Processor Control Datapath Memory Devices Input Output 10 5
Tυπικός Επεξεργαστής (Floorplan) - Διάδρομος Δεδομένων (Datapath) -Moνάδα Ελέγχου (Control Unit) - Κρυφή Μνήμη (Caches) - Διασύνδεση (Interface) 11 Μνήμη Κρυφή Μνήμη (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) 12 6
Oλοκληρωμένα Κυκλώματα - Η Εκπληκτική εξέλιξη στους υπολογιστές οφείλετε στις αλματώδεις και συνεχείς βελτιώσεις στην Τεχνολογία κατασκευής μνήμης και επεξεργαστών Αρχιτεκτονική και Οργάνωση Τεχνολογία μεταγλωτιστών Το 2003 οι αλματώδεις και συνεχείς βελτιώσεις στη απόδοση των επεξεργαστών σταμάτησε. Multi-core system - Τεχνολογία κόστος/απόδοσης SILICON και transistors Διαδικασία κατασκευής chip/dies Χωρητικότητα DRAΜ 13 Τεχνολογία Κατασκευής 14 7
Χωρητικότητα Eπεξεργαστών Intel 15 Εξέλιξη Τεχνολογίας Υλοποίησης 1958-10 0 1971-10 3 2002-10 7 2005-10 9 16 8
Πρόοδος της Τεχνολογίας (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 17 Πρόοδος της Τεχνολογίας 18 9
Πρόοδος της Τεχνολογίας Have more disk storage (internal) 1971: 10 MB IMPROVEMENT: 50000 x 2006: 500,000 MB (soon beyond 1 terabyte = 1000GB) Higher communication speeds Human speech: 30 bits/sec 1971-2001 1971 Modem 300 bits/sec IMPROVEMENT: 2001 Modem: 56,000 bits/sec 3 BILLION x T1 line: 1,544,000 bits/sec Internet 2: 1,000,000,000 bits/sec Nortel: 1,000,000,000,000 bits/sec in 1 fiber (entire U.S. telephone traffic) 19 Γεννεές/Χαρακτηριστικά Υπολογιστών Νέα τεχνολογία νέα γεννεά 1. vacuum tube, 2. transistor, 3. integrated cct, 4. vlsi (CMOS) Τρομερές αλλαγές στα χαρακτηριστικά επεξεργαστών στα τελευταία 20 χρόνια Άυξηση απόδοσης >50% ανά χρόνο (1986-2002) ιπλασιασμός χωρητικότητας ανά 18/24 μήνες Προκλήσεις: ενέργεια, ισχύς και θερμότητα 20 10
Arvind Keynote speech ISCA 2005,: RAMPS project -- Dave Patterson Uniprocessor Performance (SPECint) 10000 20%/year Performance (vs. VAX-11/780) 1000 100 10 25%/year 52%/year 1 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 VAX : 25% per year 1978 to 1986 RISC + x86: 52% per year 1986 to 2002 RISC + x86: 20% per year 2002 to 2005 21 The Memory Wall Relative Performance CPU starves! Year 22 11
CPU-Memory Speed 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 Overcoming the Memory wall: 8KB L1 (Intel 486, 1989) On-board L2 (Pentium Pro, 1995) On-package L2 (Pentium II, 1997) On-die L2 (Pentium III, 1999) 23 2008 2009 2010 Source: J. Patterson, Modern Microprocessors, www.pattosoft.com.au/articles/modernprocessors Γενεά Ημερομ. Τεχνολογία Κύρια νέα προϊόντα 1 1950 1959 Λυχνίες Εμπορικός ηλεκτρονικός υπολογιστής 2 1960 1968 Κρυσταλλοτριόδοι Πιο φθηνοί ηλεκτρονικοί υπολογιστές 3 1969 1977 Ολοκληρωμένα κυκλώματα Μικροϋπολογιστές 4 1978 1995 Μεγάλης και πολύ μεγάλης κλίμακας ολοκληρωμένα κυκλώματα 5? 1996 2004 Μικροεπεξεργαστής; 6? 2005 -? Πολυπυρήνες (multicore) Προσωπικοί υπολογιστές και σταθμοί εργασίας Προσωπικές, φορητές υπολογιστικές μηχανές και παράλληλοι επεξεργαστές; Ενσωματωμένοι 24 12
Χρόν Όνομα Μέγεθ (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 Επίσης συνέπεια της τεχνολογίας η διαφοροποίηση της αγοράς 26 13
Μέτρα Απόδοσης (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 27 Τι επηρεάζει τις παραμέτρους απόδοσης 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 ) 28 14
Δύο υλοποιήσεις της ίδιας αρχιτεκτονικής για κάποιο πρόγραμμα Κύκλος Ρολογιού CPI A 10ns 2 B 20ns 1.2 Ποιά μηχανή έχει την καλύτερη απόδοση και πόσο καλύτερη είναι; 29 CPU Time A = ns CPU Time B = ns Aπόδοση Α = 1 / CPU Time A Aπόδοση B = 1 / CPU Time B Aπόδοση Α / Απόδοση Β = 30 15
Άλλα Μέτρα Σύγκρισης: ΜΙ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 εντολές 31 Επιλογή Προγραμμάτων (Βenchmarks) για Αξιολόγηση Σχεδιαστές σήμερα χρησιμοποιούν πραγματικές εφαρμογές Στο παρελθόν kernels, microbenches περιορισμένης εμβέλειας/χρήσεως βελτιστοποιήσεις SPEC: Οοργανισμός με μέλη διάφορες εταιρείες www.spec.org Mέτρα: Execution Time Ratio Γεωμετρικός Μέσος (Geometric Mean) Spec Ratio 32 16
SPEC: Γεωμετρικός Μέσος Γιά κάθε πρόγραμμα i υπολόγιζει το execution ratio ER i =(χρονος σε 300 MHz UltraSun 5_10 / Χρονος μηχανη μετρησης )* 100 Συνόψισε τα Execution Ratio n προγραμμάτων με Γεωμετρικό Μέσο nn SpecRatio = Π ER i i=1 Γεωμετρικός Μέσος ανεξάρτητο αναλογίας (Α/Β ή Β/Α) δεν διατηρά σχέση με τον χρόνο εκτέλεσης (πόσο πιο γρήγορη είναι μια μηχανή) SPEC CPU2000: 12 integer και 14 floating point εφαρμογές 33 Περιγραφή Συστημάτων 34 17
SPEC Ratio για 4 συστήματα 35 Παρατηρήσεις - Γρηγορότερο ρολόι δεν είναι αρκετό ο επεξεργαστής 21164 με 533ΜΗz ρολόι έχει χαμηλότερο SPEC Ratio από τον 21264 με ρολόι 500ΜΗz - Γιατί; το CPI του 21264 είναι χαμηλότερο. Καλύτερη Οργάνωση Επεξεργαστή και Ιεραρχίας Mνήμης (κεφ. 5,6 και 7) 36 18
Power Consumption 37 Νόμος του Amdahl (Amdahl's Law) Speedup overall (S over ): Kαθολική επιτάχυνση Speedup Enhancement (S enh ): Ποσοστό επιτάχυνσης Fraction Enhancement (F enh ): Κλάσμα της διαδικασίας που έχει βελτιωθεί/επιταχυνθεί Speedup overall = 1 - Fraction 1 Speedup overall = F 1-Fe S enhancement 38 e e 1 Fraction Speedup enhancement enhancement 19
Παράδειγμα 1: F enh = 0.5 S enh =? S overall =3 Αδύνατο! Speedup overall = 1 - Fraction Speedup = overall e 1-Fe Se 39 1 F enhancement 1 Fraction Speedup enhancement enhancement Παράδειγμα 1: F enh = 0.3 S enh = 3 S overall =? Speedu p = overal l Sample Questions: 1-0.3 2.1-2.4, 2.6, 2.15, 2.29-2.31 3.1-3.7, 3.10, 3.12 4.1 4.4 1 0.3 3 125. 40 20
Κύρια σημεία Για επιτυχή ανάπτυξη του λογισμικού χρειάζεται πολύ καλή γνώση της οργάνωσης του υπολογιστή. Τα δεδομένα και οι εντολές αναπαριστούνται στο διάδικο σύστημα. Οι Η/Υ εκτελούν μόνο εντολές γλώσσας μηχανής. Τα πέντε μέρη του Η/Υ: είσοδος, έξοδος, μνήμη, διάδρομος δεδομένων και έλεγχος. Ιεραρχία υλικού και λογισμικού. Αρχιτεκτονική της ομάδας εντολών (Instruction set architecture). Υλοποίηση μιας αρχιτεκτονικής. Τα αποτελέσματα της διπλασιάσεις της χωρητικότητας της τεχνολογίας κατασκευής τσιπς cmos κάθε ενάμιση/δύο χρόνια Σταμάτησε το 2003 Πως μετρούμε και συγκρίνουμε την επίδοση 41 21