ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Διδάσκων Γιάννος Σαζεϊδης Βοηθός: Πέτρος Παναγή Κεφ. 1: Computer Abstractions and Technology Βιβλίο: Computer Organization and Design 1
Τι θα μάθετε σε αυτό το μάθημα: Πώς HLL (High Level Language) προγράμματα μεταφράζονται σε γλώσσα μηχανής και πώς το υλικό εκτελεί προγράμματα Διασύνδεση μεταξύ λογισμικού και υλικού Τι επηρεάζει την επίδοση ενός προγράμματος Πως μπορούμε να βελτιώσουμε την επίδοση του υλικού (ΕΠΛ370, ΕΠΛ372) Προγραμματισμός σε συμβολικό επίπεδο Σχεδιασμός σε Η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/software implementation of the abstract structure.) Σύστημα Μνήμης (Memory system) Δίαυλος (Bus structure) Σχεδιασμός/Υλοποίηση της Κεντρικής Μονάδας Επεξεργασίας (ΚΜΕ) (Internal CPU/Processor design) Μονάδες Εισόδου/Εξόδου (Ι/Ο) 4
Αφαιρετικότητα (abstraction) υπολογιστικών συστημάτων Το υλικό και το λογισμικό αποτελούνται από ιεραρχικά επίπεδα, όπου το χαμηλότερο επίπεδο κρύβει λεπτομέρειες του πιο πάνω επιπέδου. Έτσι προσφέρεται ένα πιο απλό μοντέλο στα ψηλότερα επίπεδα, αυτή η τεχνική ονομάζεται αφαιρετικότητα. Η αρχή της αφαιρετικότητας (abstraction) χρησιμοποιείται από τους σχεδιαστές του υλικού και λογισμικού για να μπορέσουν να ανταπεξέλθουν στη πολυπλοκότητα τους 5
Αφαιρετικότητα Λογισμικού C Συμβολική(ΜΙPS) Μηχανής (ΜΙPS) 6
SOURCE CODE ASSEMBLY CODE OBJECT CODE 7
Γλώσσα Ψηλού Επιπέδου Συμβολική Γλώσσα Γλώσσα Μηχανής Αρχιτεκτονική Συνόλου Εντολών(ISA) Υλικό (Υπολογιστής) 8
Αρχιτεκτονική Συνόλου Εντολών Instruction Set Architecture (ISA) Διασύνδεση μεταξύ υλικού και λογισμικού Επιτρέπει ποικίλες υλοποιήσεις του υλικού με διαφορετικό κόστος και απόδοση για την ίδια αρχιτεκτονική ομάδας εντολών (ISA) (αφαιρετικότητα) 80386, 80486, P1, P2, P3, P4,M,Core,Core2,i3/5/7 (διαφορετικές υλοποιήσεις της ίδιας αρχιτεκτονικής) Backward Compatible Όχι συμβατότητα στην εκτέλεση μεταξύ οικογενειών επεξεργαστών x86 binary can not run on ARM processor and ARM binary can not run on x86 processor 9
Βασική Οργάνωση Υλικού Υπολογιστή -Επεξεργαστής Computer Διάδρομος Δεδομένων Processor Memory Devices Μονάδα Ελέγχου - Μνήμη Control Input - Interface - Περιφερειακές Datapath Output - Μοναδες (Ι/Ο) - Νetwork connection 10
Tυπικός Επεξεργαστής (Floorplan) - Διάδρομος Δεδομένων (Datapath) -Moνάδα Ελέγχου (Control Unit) - Κρυφή Μνήμη (Caches) - Διασύνδεση (Interface) - Πολύ-πυρήνες - Γραφική Επεξεργασια 11
Κρυφή Μνήμη (Cache) Μνήμη 1st, 2 nd, 3rd level (Last Level Cache or LLC) Πρωτέυουσα ή Κυριώς Mνήμη (main memory) Δευτερέυουσα Μνήμη (secondary memory) Hard, SSD/Flash, Tape, DVD, CD - Ταξινομήσεις Μνήμης Διάρκεια Αποθήκευσης Μόνιμη (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), Solid State (SSD) 12
Oλοκληρωμένα Κυκλώματα - Η Εκπληκτική εξέλιξη στους υπολογιστές οφείλετε στις αλματώδεις και συνεχείς βελτιώσεις στην Τεχνολογία κατασκευής μνήμης και επεξεργαστών Αρχιτεκτονική και Οργάνωση Τεχνολογία μεταγλωτιστών Μέγεθος και ποικιλία αγοράς - Τεχνολογία κόστος/απόδοση SILICON και transistors Διαδικασία κατασκευής chip/dies Χωρητικότητα DRAΜ 13
Τεχνολογία Κατασκευής https://www.youtube.com/watch?v=acoyq4yzbty 14
Χωρητικότητα Eπεξεργαστών: ΔΙΠΛΑΣΙΑΜΟΣ των τρανζιστορς κάθε ~2 χρόνια (Moore s Law) 15
Εξέλιξη Τεχνολογίας Υλοποίησης 1947 1958-10 0 1971-10 3 2002-10 7 2005-10 9 16
Πρόοδος της Τεχνολογίας (PC) Οι υπολογιστές είναι πιο γρήγοροι 1971: 1 million instructions/sec 2016: 10 billion instructions/sec Έχουν πιο πολύ μνήμη 1971: 0.125 megabytes 2016: 16.0 gigabytes Κοστίζουν πιο λίγο 1971: $4,000,000 2016: $1,000 Speed/size/cost improvement factor:~100s billion 17
IC Sales Introduction 267 billion Integrated circuits expected to ship in 2016 (McClean Report) $203 billion sales (IC Insights) 36.7 Billion Memory/Flash Units 300 million pc/laptop processors (2015) 23 million server processors mostly Intel x86 (2015) 14 billion ARM based chips (2015)
Γεννεές/Χαρακτηριστικά Υπολογιστών Νέα τεχνολογία νέα γεννεά 1. vacuum tube, 2. transistor, 3. integrated cct, 4. vlsi (CMOS) Τρομερές αλλαγές στα χαρακτηριστικά επεξεργαστών/μνήμης στα τελευταία 40 χρόνια Προκλήσεις: μνήμη vs επεξεργαστής, Ισχύς Θερμότητα Αξιοπιστία 19
The Memory Wall Relative Performance CPU starves! Year 20
Cache Hierarchy (manage placement and replacement) 21
Power Wall 22
Επίδοση ενός Επεξεργαστή 1978-2012 23
Static and Dynamic Program int array_sum(int *a, int n){ sum = 0; for(i=0;i<n;i++) sum+=a[i]; return sum; } How many lines of C code? How many assembly operations if n=10. How many operations get executed? How many assembly instructions? 24 // $4 is a, $5 is n // $? is sum, $? is i blez $5,$L8 $L4: $L8: move $2,$0 move $3,$0 lw $6,0($4) addiu $3,$3,1 addu $2,$2,$6 addiu $4,$4,4 bne $3,$5,$L4 j $31 //return move $2,$0 j $31 // return
Τι επηρεάζει τις παραμέτρους απόδοσης Execution Time = I x CPI x Clock Cycle Time - I (instructions): αρχιτεκτονική και μεταγλωττιστής - CPI (Clock Cycles per Instruction): οργάνωση (χαρακτηριστικά προγράμματος/δεδομένων) - Clock Cycle Time: τεχνολογία Αλληλοεπιδράσεις μεταξύ Ι, CPI και Clock Cycle Time (συγκρουόμενοι στόχοι) Clock Cycles = Σ CPI i x Ι i για κάθε κατηγόρια εντολών i: μέσος όρος κύκλων ανά εντολή (CPI i ) και αριθμός εντολών (Ι i ) 25
Δύο υλοποιήσεις της ίδιας αρχιτεκτονικής για κάποιο πρόγραμμα Κύκλος Ρολογιού CPI A 1ns 2 B 2ns 1.2 Ποιά μηχανή έχει την καλύτερη απόδοση και πόσο καλύτερη είναι; 26
CPU Time A = ns CPU Time B = ns Aπόδοση Α = 1 / CPU Time A Aπόδοση B = 1 / CPU Time B Aπόδοση Α / Απόδοση Β = 27
Pipeline 28
Επιλογή Προγραμμάτων (Βenchmarks) για Αξιολόγηση Σχεδιαστές σήμερα χρησιμοποιούν πραγματικές εφαρμογές SPEC: Οοργανισμός με μέλη διάφορες εταιρείες www.spec.org Mέτρα: Execution Time Ratio Γεωμετρικός Μέσος (Geometric Mean) Spec Ratio Ποικιλία από benchmarks 29
SPEC: Γεωμετρικός Μέσος Γιά κάθε πρόγραμμα i υπολόγιζει το execution ratio ER i =(χρόνος αναφοράς σε συγκεκριμένη μηχανή/ Χρόνος μηχανής μέτρησης ) Συνόψισε τα Execution Ratio n προγραμμάτων με Γεωμετρικό Μέσο nn SpecRatio = Π ER i i=1 Γεωμετρικός Μέσος Και άλλοι μέσοι SPEC CPU2006: 29 integer και floating point εφαρμογές 30
31
Νόμος του Amdahl (Amdahl's Law) Speedup overall (S over ): Kαθολική επιτάχυνση Speedup Enhancement (S enh ): Ποσοστό επιτάχυνσης Fraction Enhancement (F enh ): Κλάσμα της διαδικασίας που έχει βελτιωθεί/επιταχυνθεί Speedup = overall Speedup = overall 1 - Fraction 1-F e 1 F S e e enhancement 1 Fraction Speedup enhancement enhancement 32
Παράδειγμα 1: F enh = 0.5 S enh =? S overall =3 Αδύνατο! Speedup = overall Speedup = overall 1 - Fraction 1 F 1-Fe S enhancement 33 e e 1 Fraction Speedup enhancement enhancement
Παράδειγμα 1: F enh = 0.3 S enh = 3 S overall =? Speedu p = overal l 1-0.3 1 0.3 3 125. 34
Κύρια σημεία Για επιτυχή ανάπτυξη του λογισμικού χρειάζεται πολύ καλή γνώση της οργάνωσης του υπολογιστή. Τα δεδομένα και οι εντολές αναπαριστούνται στο διάδικο σύστημα. Οι Η/Υ εκτελούν μόνο εντολές γλώσσας μηχανής. Τα πέντε μέρη του Η/Υ: είσοδος, έξοδος, μνήμη, διάδρομος δεδομένων και έλεγχος. Ιεραρχία υλικού και λογισμικού. Αρχιτεκτονική της ομάδας εντολών (Instruction set architecture). Υλοποίηση μιας αρχιτεκτονικής. Τα αποτελέσματα της διπλασιάσεις της χωρητικότητας της τεχνολογίας κατασκευής τσιπς cmos κάθε ενάμιση/δύο χρόνια. Πως μετρούμε και συγκρίνουμε την επίδοση 35
Πληροφορίες για το EΠΛ221 ιδάσκων: Γιάννος Σαζεϊδης Διαλέξεις: 4.30-6 Τρίτη και Παρασκευή, 4.30-6 Τετάρτη Βοηθος: Πετρος Παναγή www.cs.ucy.ac.cy/courses/epl221 Τι θα μάθετε/στόχοι: Τεχνολογία Υπολογιστών, Μεθοδολογία αξιολόγησης και σύγκρισης απόδοσης επεξεργαστών Προγραμματισμός σε συμβολικό επίπεδο Βασικές αρχές: pipelining και memory hierarchy Σχεδιασμός ενός απλού επεξεργαστή
Πληροφορίες για το EΠΛ221 Προαπαιτούμενα Digital Systems(ΕΠΛ121) and Programming Principles (ΕΠΛ131) Βιβλιογραφία: Computer Organization and Design, Henessy & Patterson 5th edition
Πληροφορίες για ΕΠΛ221 Εργαστήριο: εισαγωγή εργαλείων αξιολόγηση εργασιών Αξιολόγηση Εργασίες 20-25 % 4-5 ασκήσεις Τελική Εργασία (project) 10% Ενδιάμεση 20% Τελική 45-50%
Λευκωσία-Πάφος 150 χλμ 75 χλμ Λ/σια-Γερμασόγεια, μέση Ταχύτητα Υ χλμ/ωρα 60 χλμ Πολεμίδια-Πάφος, μέση Ταχύτητα Υ χλμ/ωρα 15 χλμ round-abouts, μεση ταχύτητα Ζ χλμ/ωρα Αν κάποιος οδηγά Υ = 100 και Ζ = 80 πόσο πιο γρήγορα θα είναι το ταξίδι εάν Υ=150 39
Άλλα Μέτρα Σύγκρισης: ΜΙ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 εντολές 40
Μέτρα Απόδοσης (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 41