ΕΠΛ221: Οργάνωση Υπολογιστών και Συµβολικός Προγραµµατισµός Χειµερινό Εξάµηνο 2005 Καθ. Γ. Σαζεϊδης Βοηθ. Γ. Μυλωνάς Καλωσόρισµα (συµβόλαιο) Κεφ. 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 (διαφορετικές υλοποιήσεις της ίδιας αρχιτεκτονικής) Alpha 21064, 21164, 21264, 21364 Όχι συµβατότητα στην εκτέλεση µεταξύ οικογενειών επεξεργαστών 9
Βασική Οργάνωση Υλικού Υπολογιστή -Επεξεργαστής Computer ιάδροµος εδοµένων Έλεγχοs Processor Memory Devices - Μνήµη - Interface Control Input - Περιφερειακές Datapath Output - Μοναδες (Ι/Ο) - Νetwork connection 10
Tυπικός Επεξεργαστής (Floorplan) - ιάδροµος εδοµένων (Datapath) -Moνάδα Ελέγχου (Control Unit) - Κρυφή Μνήµη (Caches) - ιασύνδεση (Interface) 11
Επεξεργαστής P4 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
Πρόοδος της Τεχνολογίας Οι υπολογιστές είναι πιο γρήγοροι 1971: 1 million instructions/sec 2005: 10 billion instructions/sec Έχουν πιο πολύ µνήµη 1971: 0.125 megabytes 2005: 1024.0 gigabytes Κοστίζουν πιο λίγο 1971: $4,000,000 2005: $1,000 Speed/size/cost improvement factor:~300 billion 19
Πρόοδος της Τεχνολογίας 20
Πρόοδος της Τεχνολογίας Have more disk storage (internal) 1971: 10 MB 2005: 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 Τροµερές αλλαγές στα χαρακτηριστικά επεξεργαστών στα τελευταία 20 χρόνια Άυξηση απόδοσης >50% ανα χρόνο ιπλασιασµός χωρητικότητας ανα 18/24 µήνες Προκλήσεις: ενέργεια, ισχύς και θερµότητα 22
Γενεά Ηµεροµ. Τεχνολογία Κύρια νέα προϊόντα 1 1950 1959 Λυχνίες Εµπορικός ηλεκτρονικός υπολογιστής 2 1960 1968 Κρυσταλλοτριόδοι Πιο φθηνοί ηλεκτρονικοί υπολογιστές 3 1969 1977 Ολοκληρωµένα κυκλώµατα Μικροϋπολογιστές 4 1978 199? Μεγάλης και πολύ µεγάλης κλίµακας ολοκληρωµένα κυκλώµατα Προσωπικοί υπολογιστές και σταθµοί εργασίας 199? - 20?? Μικροεπεξεργαστής; Προσωπικές, φορητές υπολογιστικές µηχανές και παράλληλοι επεξεργαστές; ενσωµατωµένοι 23
Χρόν Όνοµα Μέγεθ (ft 2 ) Ισχύς (watts) Απόδοση (adds/sec) Μνήµ η (KB) Κόστος $ Αποδοση/ Κόστος Vs Univac Κόστος (1991$) Απόδοση/ Κόστος Έναντι Univac 1951 Univac1 1000 124,500 1,900 48 1,000,000 1 4,533,607 1 1964 IBM 60 10,000 500,000 64 1,000,000 263 3,756,502 318 S360/ Mode50 1965 PDP 8 8 500 330,000 4 16,000 10,855 59,947 13,135 1976 Cray -1 58 60,000 166,000,000 32,768 4,000,000 21,842 7,675,591 51,604 1981 IBM PC 1 150 240,000 256 3,000 42,105 3,702 154,673 1991 HP900/ model 750 2 500 50,000,000 16,384 7,4000 3,556,188 7,400 16,122,356 24
Επίσης συνέπεια της τεχνολογίας η διαφοροποίηση της αγοράς 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
Instruction Count CPI CPU = time Clock Rate CPI = κύκλοι µηχανής ανά εντολή (clock cycles per instruction) Το CPI εξαρτάται από το Σύνολο-Εντολών (ISA) και την Οργάνωση. (CPI depends on the Instruction Set Architecture (ISA) and computer organization) IC: αριθµός Εντολών εξαρτάται από την ISA και την τεχνολογία του µεταγλωττιστή. (Instruction count depends on the ISA and the compiler technology.) 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
Τι επηρεάζει τις παραµέτρους απόδοσης 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 ) 30
Άλλα Μέτρα Σύγκρισης: ΜΙ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 εντολές 31
Επιλογή Προγραµµάτων (Βenchmarks) για Αξιολόγηση - Σχεδιαστές σήµερα χρησιµοποιούν πραγµατικές εφαρµογές - Στο παρελθόν kernels, microbenches περιορισµένης εµβέλειας/χρήσεως βελτιστοποιήσεις -SPEC: Οοργανισµός µε µέλη διάφορες εταιρείες -Mέτρα: Execution Time Ratio Γεωµετρικός Μέσος (Geometric Mean) Spec Ratio 32
SPEC: Γεωµετρικός Μέσος - Γιά κάθε πρόγραµµα i υπολόγιζει το execution ratio ER i =(χρονος σε 300 MHz UltraSun 5_10 / Χρονος µηχανη µετρησης )* 100 - Συνόψισε τα Execution Ratio n προγραµµάτων µεγεωµετρικό Μέσο n n SpecRatio= Π SR i i=1 - Γεωµετρικός Μέσος + ανεξάρτητο αναλογίας (Α/Β ήβ/α) δεν διατηρά σχέση µε τον χρόνο εκτέλεσης (πόσο πιο γρήγορη είναι µια µηχανή) - SPEC2000: 12 integer και 14 floating point εφαρµογές 33
Περιγραφη Συστηµατων 34
SPEC Ratio για 4 συστήµατα 35
Παρατηρήσεις - Γρηγορότερο ρολόι δεν είναι αρκετό οεπεξεργαστής21164 µε 533ΜΗz ρολόιέχειχαµηλότερο SPEC Ratio από τον 21264 µε ρολόι 500ΜΗz - Γιατί; το CPI του 21264 είναι χαµηλότερο. Καλύτερη Οργάνωση Επεξεργαστή και Ιεραρχίας Mνήµης (κεφ. 5,6 και 7) 36
- 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 - Metric for Power-Efficiency = 1 / (Energy. Delay) - Temperature problems when Power/Area is large 37
Κύρια σηµεία Για επιτυχή ανάπτυξη του λογισµικού χρειάζεται πολύ καλή γνώση της οργάνωσης του υπολογιστή. Τα δεδοµένα και οι εντολές αναπαραστούνται στο διάδικο σύστηµα. Οι Η/Υ εκτελούν µόνο εντολές γλώσσας µηχανής. Τα πέντε µέρη του Η/Υ: είσοδος, έξοδος, µνήµη, διάδροµος δεδοµένων και έλεγχος. Ιεραρχία υλικού και λογισµικού. Αρχιτεκτονική της οµάδας εντολών (Instruction set architecture). Υλοποίηση µιας αρχιτεκτονικής. Τα αποτελέσµατα της διπλασιάσης της χωρητικότητας της τεχνολογίας κατασκευής τσιπς cmos κάθε ενάµιση/δύο χρόνια. 38