1Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός
Διδάσκων Γιάννος ΣαζεϊδηςΒοηθός: Πέτρος Παναγή
• Κεφ. 1: Computer Abstractions and Technology
• Βιβλίο: Computer Organization and Design
2Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Τι θα μάθετε σε αυτό το μάθημα:
– Πώς HLL (High Level Language) προγράμματα μεταφράζονται σε γλώσσα μηχανής και πώς το υλικό εκτελεί προγράμματα
– Διασύνδεση μεταξύ λογισμικού και υλικού– Τι επηρεάζει την επίδοση ενός προγράμματος– Πως μπορούμε να βελτιώσουμε την επίδοση του υλικού (ΕΠΛ370, ΕΠΛ372)
– Προγραμματισμός σε συμβολικό επίπεδο– Σχεδιασμός σε ΗDL απλού επεξεργαστή
3Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Υπολογιστής: Αφαιρετικότητα,Τεχνολογία και απόδοση
4Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
• Αρχιτεκτονική Υπολογιστών: Η αφηρημένη δομή ενός Η/Υ, πουπρέπει να γνωρίζει ένας προγραμματιστής για να προγραμματίσει στη γλώσσα μηχανής (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)– Μονάδες Εισόδου/Εξόδου (Ι/Ο)
5Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Αφαιρετικότητα (abstraction) υπολογιστικών συστημάτων
• Το υλικό και το λογισμικό αποτελούνται από ιεραρχικά επίπεδα, όπου το χαμηλότερο επίπεδο κρύβει λεπτομέρειες του πιο πάνω επιπέδου.
• Έτσι προσφέρεται ένα πιο απλό μοντέλο στα ψηλότερα επίπεδα, αυτή η τεχνική ονομάζεται αφαιρετικότητα.
• Η αρχή της αφαιρετικότητας (abstraction) χρησιμοποιείται από τους σχεδιαστές του υλικού και λογισμικού για να μπορέσουν ναανταπεξέλθουν στη πολυπλοκότητα τους
6Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
ΑφαιρετικότηταΛογισμικού
C
Συμβολική(ΜΙPS)
Μηχανής (ΜΙPS)
7Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
SOURCECODE
ASSEMBLYCODE
OBJECTCODE
8Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Γλώσσα Ψηλού Επιπέδου
Συμβολική Γλώσσα
Γλώσσα Μηχανής
Υλικό (Υπολογιστής)
Αρχιτεκτονική Συνόλου Εντολών(ISA)
9Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Αρχιτεκτονική Συνόλου Εντολών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
10Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Βασική Οργάνωση Υλικού Υπολογιστή
-Επεξεργαστής– Διάδρομος Δεδομένων– Μονάδα Ελέγχου
- Μνήμη- Interface- Περιφερειακές
- Μοναδες (Ι/Ο)- Νetwork connection
Processor
Computer
Control
Datapath
Memory Devices
Input
Output
11Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
TυπικόςΕπεξεργαστής (Floorplan)- Διάδρομος Δεδομένων (Datapath)- Moνάδα Ελέγχου (Control Unit)- Κρυφή Μνήμη (Caches)- Διασύνδεση (Interface)
- Πολύ-πυρήνες- Γραφική Επεξεργασια
12Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Μνήμη• Κρυφή Μνήμη (Cache)
– 1st, 2nd, 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)
13Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Oλοκληρωμένα Κυκλώματα
- Η Εκπληκτική εξέλιξη στους υπολογιστές οφείλετε στιςαλματώδεις και συνεχείς βελτιώσεις στην– Τεχνολογία κατασκευής μνήμης και επεξεργαστών– Αρχιτεκτονική και Οργάνωση– Τεχνολογία μεταγλωτιστών– Μέγεθος και ποικιλία αγοράς
- Τεχνολογία– κόστος/απόδοση– SILICON και transistors– Διαδικασία κατασκευής chip/dies– Χωρητικότητα DRAΜ
14Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Τεχνολογία Κατασκευής
https://www.youtube.com/watch?v=aCOyq4YzBtY
15Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Χωρητικότητα Eπεξεργαστών: ΔΙΠΛΑΣΙΑΜΟΣ των τρανζιστορς κάθε ~2 χρόνια (Moore’s Law)
16Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Εξέλιξη Τεχνολογίας Υλοποίησης
1958-100 2002-1071971-103 2005-1091947
17Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Οι υπολογιστές είναι πιο γρήγοροι– 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
Πρόοδος της Τεχνολογίας (PC)
IC Sales
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)
Introduction
19Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Γεννεές/Χαρακτηριστικά Υπολογιστών
Νέα τεχνολογία νέα γεννεά1. vacuum tube, 2. transistor, 3. integrated cct, 4. vlsi (CMOS)
• Τρομερές αλλαγές στα χαρακτηριστικά επεξεργαστών/μνήμης στα τελευταία 40 χρόνια
• Προκλήσεις: • μνήμη vs επεξεργαστής, • Ισχύς• Θερμότητα• Αξιοπιστία
20Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
The Memory WallRe
lati
ve P
erfo
rman
ce
Year
CPU starves!
Cache Hierarchy (manage placement and replacement)
21Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
22Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Power Wall
23Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Επίδοση ενός Επεξεργαστή 1978-2012
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Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
// $4 is a, $5 is n// $? is sum, $? is i
blez $5,$L8
move $2,$0move $3,$0
$L4:lw $6,0($4)addiu $3,$3,1addu $2,$2,$6addiu $4,$4,4bne $3,$5,$L4
j $31 //return$L8:
move $2,$0j $31 // return
25Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Τι επηρεάζει τις παραμέτρους απόδοσης
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 = Σ CPIi x Ιi
– για κάθε κατηγόρια εντολών i: μέσος όρος κύκλων ανά εντολή (CPIi) και αριθμός εντολών (Ιi)
26Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Δύο υλοποιήσεις της ίδιας αρχιτεκτονικής για κάποιο πρόγραμμα
Κύκλος Ρολογιού CPI A 1ns 2B 2ns 1.2
Ποιά μηχανή έχει την καλύτερη απόδοση και πόσοκαλύτερη είναι;
27Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
CPU Time A = ____ nsCPU Time B = ____ ns
Aπόδοση Α = 1 / CPU Time AAπόδοση B = 1 / CPU Time B
Aπόδοση Α / Απόδοση Β = _____
Pipeline
28Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
29Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Επιλογή Προγραμμάτων (Βenchmarks) για Αξιολόγηση
Σχεδιαστές σήμερα χρησιμοποιούν πραγματικές εφαρμογές
SPEC: Οοργανισμός με μέλη διάφορες εταιρείεςwww.spec.org
Mέτρα: Execution Time Ratio Γεωμετρικός Μέσος (Geometric Mean) Spec Ratio
Ποικιλία από benchmarks
30Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
SPEC: Γεωμετρικός Μέσος Γιά κάθε πρόγραμμα i υπολόγιζει το execution ratio
ERi=(χρόνος αναφοράς σε συγκεκριμένη μηχανή/ Χρόνος μηχανής μέτρησης )
Συνόψισε τα Execution Ratio n προγραμμάτων με Γεωμετρικό Μέσο
n nSpecRatio = Π ERii=1
Γεωμετρικός Μέσος Και άλλοι μέσοι
SPEC CPU2006: 29 integer και floating point εφαρμογές
31Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
32Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Νόμος του Amdahl (Amdahl's Law)• Speedupoverall(Sover): Kαθολική επιτάχυνση• SpeedupEnhancement(Senh): Ποσοστό επιτάχυνσης• FractionEnhancement(Fenh): Κλάσμα της διαδικασίας που έχει βελτιωθεί/επιταχυνθεί
Speedup = 1
1 - FractionFractionSpeedup
Speedup = 1
1 - FFS
overall
enhancementenhancement
enhancement
overall
ee
e
33Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Παράδειγμα 1:– Fenh = 0.5– Senh= ?– Soverall=3 –Αδύνατο!
Speedup = 1
1 - FractionFractionSpeedup
Speedup = 1
1 - FFS
overall
enhancementenhancement
enhancement
overall
ee
e
34Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Παράδειγμα 1:– Fenh = 0.3– Senh= 3– Soverall=?
Speedu p = 1
1 - 0.3 0.33
overal l
1 25.
35Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Κύρια σημεία • Για επιτυχή ανάπτυξη του λογισμικού χρειάζεται πολύ καλή γνώση της οργάνωσης του υπολογιστή.
• Τα δεδομένα και οι εντολές αναπαριστούνται στο διάδικο σύστημα.
• Οι Η/Υ εκτελούν μόνο εντολές γλώσσας μηχανής.• Τα πέντε μέρη του Η/Υ: είσοδος, έξοδος, μνήμη, διάδρομος δεδομένων και έλεγχος.
• Ιεραρχία υλικού και λογισμικού.• Αρχιτεκτονική της ομάδας εντολών (Instruction set
architecture).• Υλοποίηση μιας αρχιτεκτονικής.• Τα αποτελέσματα της διπλασιάσεις της χωρητικότητας της τεχνολογίας κατασκευής τσιπς cmos κάθε ενάμιση/δύο χρόνια.
• Πως μετρούμε και συγκρίνουμε την επίδοση
Πληροφορίες για το 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Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
40Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Άλλα Μέτρα Σύγκρισης: ΜΙPS & ΜFLOPS
• MIPS= Million Instructions Per Second– MIPS = Eντολές / Χρόνος x 106
– MIPS = Συχνότητα / CPI x 106
• Προβλήματα με το MIPS– δεν σχετίζεται με την αρχιτεκτονική ή οργάνωση (δεν μπορεί να συγκρίνεις διαφορετικές αρχιτεκτονικές ή οργανώσεις)
– δυνατόν να διαφέρει αντιστρόφως ανάλογα με την απόδοση
• MFLOPS= Million Floating Point Operations per Sec– τα ίδια προβλήματα με MIPS, ίσως και χειρότερα– διαφορετικές αρχιτεκτονικές/υλοποιήσεις δεν παρέχουν την ίδια υποστηρίξη για FP εντολές
41Ενότητα 1-2 - Υπολογιστής: Αφαιρετικότητα, Τεχνολογία και απόδοση
Μέτρα Απόδοσης (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 fooreal 2m39,00user 1m30,70ssys 0m12,90s
• Μέτρα όπως η συχνότητα (χρόνος κύκλου μηχανής) δεν είναι πάντοτε ενδεικτικά της απόδοσης. (Measures like clock speed do not tell the whole story)
• Παράδειγμα:– IBM Power5 1.5GHz & Intel P4 3.8GHz
Top Related