Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Οργάνωση και Σχεδίαση Υπολογιστών (ΤΛ4001) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής Εφαρμογών (npet@chania.teicrete.gr) Πρώτη (1 η ) δίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/courses/el128/ Εξάμηνο: Εαρινό 2017-18
Αντικείμενο του μαθήματος Εισαγωγή σε θέματα οργάνωσης και αρχιτεκτονικής Η/Υ. Αποκαλύπτεται, σταδιακά, η εσωτερική δομή ενός μοντέρνου επεξεργαστή (MIPS32), στα 32 μπιτ, μέσα από την μελέτη του συνόλου των εντολών του (instruction set). Τι θα σας προσφέρει το μάθημα; Σημαντικές γνώσεις για τη δομή και τις λειτουργίες των Η/Υ. Εμβάθυνση σε θέματα σχεδίασης μικροεπεξεργαστών. Μελέτη προτύπου ΙΕΕΕ 754 (για την κινητή υποδιαστολή) Την δυνατότητα να γράφετε κώδικα σε γλώσσα χαμηλού επιπέδου (συμβολική γλώσσα και αντιστοίχιση με κώδικα μηχανής) γνωρίζοντας σε βάθος το υλικό (hardware) που χρησιμοποιείτε. 26/2/2018 "Οργάνωση & Σχεδίαση Υπολογιστών", Ν.Πετράκης, Τ.Ε.Ι. Κρήτης 2
Τρόπος Εξέτασης & Βαθμολογία Θεωρία Δίνονται τελικές γραπτές εξετάσεις στις οποίες πρέπει να λάβετε προβιβάσιμο βαθμό ( 5,00 ) Αν, και μόνο αν, ο τελικός βαθμός είναι προβιβάσιμος μπορεί να βελτιωθεί κατόπιν επιβράβευσης (bonus) : α) με την προσκόμιση 30-50 ασκήσεων από όλη την ύλη (βλ. οδηγίες e-class) β) παρακολουθώντας την θεωρία συστηματικά. Εργαστήριο Στις πρώτες 2-3 εβδομάδες δουλεύουμε μία εργασία (project 25%) με το περιβάλλον ISE της Xilinx, ενώ στις υπόλοιπες εβδομάδες χρησιμοποιούμε τον περιβάλλον MARS για εκπόνηση των ασκήσεων. Θα γίνει γραπτός έλεγχος προόδου (30%) στην μέση του εξαμήνου καθώς και τελική εξέταση (45%) Πρέπει να παρακολουθείτε την θεωρία ανελλιπώς, διότι, θα χρησιμοποιούμε στην πράξη ότι έχουμε συζητήσει στην θεωρία. 26/2/2018 "Οργάνωση & Σχεδίαση Υπολογιστών", Ν.Πετράκης, Τ.Ε.Ι. Κρήτης 3
Πακέτα λογισμικού που θα χρησιμοποιηθούν στο εργαστήριο ISE 14.7 (Xilinx) Για τις πρώτες 2-3 εβδομάδες είτε με WEB Pack, είτε με κανονική άδεια (license). MARS 4.5 (MIPS Assembler and Runtime Simulator) Για τις υπόλοιπες εβδομάδες Καλό είναι να χρησιμοποιείτε και στο σπίτι τις ίδιες εκδόσεις. Πληροφορίες για την εγκατάσταση στο e-class 26/2/2018 "Οργάνωση & Σχεδίαση Υπολογιστών", Ν.Πετράκης, Τ.Ε.Ι. Κρήτης 4
Βιβλιογραφία «Οργάνωση και Σχεδίαση Υπολογιστών: Η διασύνδεση υλικού και λογισμικού», D.A.Patterson, J.L.Hennessy, Επιστ. επιμέλεια-μετάφραση: Δ.Γκιζόπουλος, Κ.Μασσέλος, Εκδόσεις Κλειδάριθμος, 3 η έκδοση 2007, ή 4 η 2010. Διαφάνειες Θεωρίας & Σημειώσεις Εργαστηρίου, διδάσκοντος στο e-class. 26/2/2018 "Οργάνωση & Σχεδίαση Υπολογιστών", Ν.Πετράκης, Τ.Ε.Ι. Κρήτης 5
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 1 Αφηρημένες έννοιες και τεχνολογία υπολογιστών Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης.
Ο νόμος του Gordon E. Moore Διπλασιασμός του αριθμού των τρανζίστορ σε πυκνά ολοκληρωμένα κυκλώματα περίπου κάθε δύο χρόνια. Στέκει από το 1965. Chapter 1 Computer Abstractions and Technology 7
Η επανάσταση της Πληροφορικής Η εξέλιξη στην τεχνολογία των Η/Υ Η οποία διέπεται από τον νόμο του Moore Μετατρέπει την «επιστημονική φαντασία» σε νέες εφαρμογές οικονομικά εφικτές Μηχανήματα Αυτόματων Συναλλαγών (ATM) Υπολογιστές σε αυτοκίνητα Φορητοί υπολογιστές Κινητά τηλέφωνα Ερευνητικό πρόγραμμα ανθρωπίνου γονιδιώματος Παγκόσμιος Ιστός (World Wide Web) Μεγάλες μηχανές αναζήτησης (Search Engines) Οι Η/Υ έχουν διεισδύσει παντού. Chapter 1 Computer Abstractions and Technology 8
Κατηγορίες Υπολογιστών Επιτραπέζιοι (Desktop computers) Γενικού σκοπού, μεγάλη ποικιλία λογισμικού Έμφαση στις καλές επιδόσεις με χαμηλό κόστος, συνήθως για ένα χρήστη Διακομιστές (Server computers) Προσπελάσιμοι μέσω δικτύου (Network based) Υψηλού φόρτου, επιδόσεων και φερεγγυότητας Ποικίλουν από μικρούς διακομιστές έως υπερυπολογιστές με χιλιάδες επεξεργαστές Ενσωματωμένοι (Embedded computers) Είναι κρυμμένοι σε συσκευές και εκτελούν μια πολύ περιορισμένη και προκαθορισμένη δέσμη εφαρμογών Αυστηροί περιορισμοί κατανάλωσης, επιδόσεων και κόστους Chapter 1 Computer Abstractions and Technology 9
Εκατομμύρια Η αγορά των επεξεργαστών Chapter 1 Computer Abstractions and Technology 10
Πυρήνες επεξεργαστών Τα τελευταία χρόνια πολλοί ενσωματωμένοι επεξεργαστές σχεδιάζονται με την χρήση πυρήνων επεξεργαστών (processor cores), μιας έκδοσης επεξεργαστή γραμμένης σε γλώσσα περιγραφής υλικού (Verilog ή VHDL). Ο πυρήνας επιτρέπει σε ένα σχεδιαστή να ενσωματώσει κι άλλο υλικό συγκεκριμένης εφαρμογής με τον πυρήνα του επεξεργαστή σε ένα ολοκληρωμένο κύκλωμα. Αυτός είναι ένας σημαντικός παράγοντας που συντέλεσε στην τρομακτική εξάπλωση των ενσωματωμένων υπολογιστών (embedded computers). Chapter 1 Computer Abstractions and Technology 11
Τι μπορείτε να μάθετε Πως τα προγράμματα μεταφράζονται σε κώδικα μηχανής Και πως το υλικό τα εκτελεί Την διασύνδεση Υλικού/Λογισμικού Τι καθορίζει την απόδοση ενός προγράμματος Και πως μπορεί να βελτιωθεί Πως οι σχεδιαστές υλικού μπορούν να βελτιώσουν την απόδοση Chapter 1 Computer Abstractions and Technology 12
Κατανοώντας την Απόδοση Η απόδοση ενός προγράμματος επηρεάζεται από πολλούς παράγοντες όπως: Αλγόριθμος (Algorithm) Καθορίζει τόσο τον αριθμό των εντολών που εκτελούνται σε επίπεδο πηγαίου κώδικα, όσο και τον αριθμό εκτελούμενων λειτουργιών εισόδου/εξόδου Γλώσσα προγραμματισμού, μεταγλωττιστής, αρχιτεκτονική Καθορίζουν τον αριθμό εντολών μηχανής που εκτελούνται ανά εντολή επιπέδου πηγαίου κώδικα Επεξεργαστής και σύστημα μνήμης Καθορίζουν πόσο γρήγορα εκτελούνται οι εντολές Σύστημα εισόδου/εξόδου (Υλικό και Λειτουργικό Σύστημα) Καθορίζει πόσο γρήγορα εκτελούνται οι εντολές εισόδου/εξόδου Chapter 1 Computer Abstractions and Technology 13
Κάτω από το πρόγραμμά σας Λογισμικό Εφαρμογών Σε γλώσσες προγραμματισμού υψηλού επιπέδου (HLL) Λογισμικό Συστημάτων Μεταγλωττιστής: μεταφράζει κώδικα HLL σε κώδικα μηχανής Λειτουργικό Σύστημα Υλικό Διαχείριση λειτουργιών εισόδου/εξόδου Κατανομή χώρου αποθήκευσης και μνήμης Χρονοπρογραμματισμός εργασιών και διαμοιρασμός πόρων του συστήματος (Scheduling tasks & sharing resources) Επεξεργαστής, μνήμη, ελεγκτές εισόδου/εξόδου (I/O controllers) Chapter 1 Computer Abstractions and Technology 14
Επίπεδα κώδικα προγράμματος Γλώσσα προγραμματισμού υψηλού επιπέδου Επίπεδο αφαίρεσης εγγύτερα στο χώρο του προβλήματος Παρέχει παραγωγικότητα και φορητότητα Συμβολική Γλώσσα Απεικόνιση των εντολών σε κείμενο Απεικόνιση υλικού Δυαδικά Ψηφία (bits) Κωδικοποιημένες εντολές και δεδομένα swap: multi $v0, $a1, 4 add $v0, $a0, $v0 lw $t7, 0($v0) lw $s0, 4($v0) sw $s0, 0($v0) sw $t7, 4($v0) jr $ra Chapter 1 Computer Abstractions and Technology 15
Τα συστατικά ενός υπολογιστή Η συνολική εικόνα (The BIG Picture) Τα ίδια συστατικά για όλες τις κατηγορίες Η/Υ Επιτραπέζιους, διακομιστές και ενσωματωμένους Η είσοδος/έξοδος περιλαμβάνει Συσκευές διεπαφής χρήστη Οθόνη, πληκτρολόγιο, ποντίκι, εκτυπωτής, σχεδιογράφος Συσκευές αποθήκευσης Hard disk, CD/DVD, flash Προσαρμογείς δικτύου Για επικοινωνία με άλλους Η/Υ Chapter 1 Computer Abstractions and Technology 16
Η ανατομία ενός Υπολογιστή Συσκευή εξόδου (Output device) Καλώδιο δικτύου (Network cable) Συσκευή εισόδου (Input device) Συσκευή εισόδου (Input device) Chapter 1 Computer Abstractions and Technology 17
Η ανατομία ενός «ποντικιού» Οπτικό ποντίκι (optical) LED που φωτίζει την επιφάνεια του γραφείου Μικρή φωτογραφική κάμερα χαμηλής ευκρίνειας Στοιχειώδη επεξεργαστή εικόνας Παρατηρεί την κίνηση σε x, y Κουμπιά και ρόδα Αντικαθιστά το μηχανικό ποντίκι με μπίλια Πρωτοπαρουσιάστηκε το 1967 από τον Doug Engelbart. Chapter 1 Computer Abstractions and Technology 18
Πίσω από το γυαλί Οθόνη Υγρών κρυστάλλων (LCD screen): εικονοστοιχεία (picture elements = pixels) Αντικατοπτρίζει το περιεχόμενο της μνήμης κάδρου ή πλαισίου (frame buffer memory) Οθόνη καθοδικού σωλήνα σάρωσης γραμμών (CRT= Cathode Ray Tube) Chapter 1 Computer Abstractions and Technology 19
Ανοίγοντας το κουτί Chapter 1 Computer Abstractions and Technology 20
Το εσωτερικό του Επεξεργαστή AMD Barcelona: 4 processor cores Chapter 1 Computer Abstractions and Technology 21
Αφαιρέσεις (Abstractions) Η συνολική εικόνα (The BIG Picture) Η αφαίρεση βοηθάει στην διαχείριση της πολυπλοκότητας Κρύβει λεπτομέρειες χαμηλότερων επιπέδων Αρχιτεκτονική συνόλου εντολών (Instruction Set Η διασύνδεση υλικού/λογισμικού Architecture = ISA) Δυαδική διασύνδεση εφαρμογής (Application Binary Interface = ABI) Η ISA μαζί με την διασύνδεση λογισμικού συστήματος Υλοποίηση (Implementation) Οι υποκείμενες λεπτομέρειες και δυασύνδεση Chapter 1 Computer Abstractions and Technology 22
Ασφαλής χώρος για δεδομένα Πτητική (volatile) κύρια μνήμη Χάνει εντολές και δεδομένα όταν παύει να τροφοδοτείται Μη πτητική (non-volatile) δευτερεύουσα μνήμη Μαγνητικός δίσκος (Magnetic disk) Flash memory Οπτικός δίσκος (Optical disk: CD, DVD) Chapter 1 Computer Abstractions and Technology 23
Δίκτυα (Networks) Επικοινωνία, κοινή χρήση πόρων και απομακρυσμένη πρόσβαση Τοπικό δίκτυο (Local Area Network = LAN): Ethernet Συνήθως μέσα σε ένα μόνο κτήριο Δίκτυο ευρείας περιοχής (Wide Area Network = WAN): το Διαδίκτυο Ασύρματο δίκτυο (Wireless network): WiFi, Bluetooth Chapter 1 Computer Abstractions and Technology 24
Τεχνολογικές Τάσεις Η τεχνολογία των ηλεκτρονικών συνεχίζει να εξελίσσεται Αυξημένη χωρητικότητα και απόδοση Μειωμένο κόστος DRAM capacity Έτος Τεχνολογία που χρησιμοποιείται στους Η/Υ Σχετική απόδοση ανά μονάδα κόστους 1951 Λυχνία κενού (Vacuum tube) 1 1965 Τρανζίστορ (Transistor) 35 1975 Ολοκληρωμένο Κύκλωμα (Integrated Circuit) 900 1995 Πολύ μεγάλης κλίμακας ΙC (VLSI) 2,400,000 2005 Υπερυψηλής κλίμακας IC (Ultra large scale IC) 6,200,000,000 Chapter 1 Computer Abstractions and Technology 25
Απόδοση συστημάτων με ένα επεξεργαστή Εμφανίζονται περιορισμοί ισχύος, παραλληλισμού σε επίπεδο εντολής και καθυστέρησης της μνήμης (memory latency) Chapter 1 Computer Abstractions and Technology 26
Με πολλούς επεξεργαστές Μικροεπεξεργαστές με πολλούς πυρήνες Περισσότεροι από ένας επεξεργαστής ανά ολοκληρωμένο κύκλωμα Απαιτεί παράλληλο προγραμματισμό Συγκριτικά με τον παραλληλισμό σε επίπεδο εντολής Το υλικό εκτελεί ταυτόχρονα πολλές εντολές Χωρίς να γίνεται αντιληπτό από τον προγραμματιστή Δυσκολίες Προγραμματισμός για βελτίωση της απόδοσης Καταμερισμός φόρτου Βελτιστοποίηση επικοινωνίας και συγχρονισμός Chapter 1 Computer Abstractions and Technology 27
Διαδικασία ολοκλήρωσης Ράβδος πυριτίου Συσκευή τεμαχισμού Κενά πλακίδια Συγκόλληση και συσκευασία Κοπτικό κύβων Δοκιμή Διαμορφωμένα πλακίδια Συσκευασμένοι κύβοι Τελευταία δοκιμή και αποστολή στους πελάτες Εσοδεία (Yield): το ποσοστό των ολοκληρωμένων κυκλωμάτων που πέρασαν τον έλεγχο ως προς τον συνολικό αριθμό των τσιπ ενός πλακιδίου Chapter 1 Computer Abstractions and Technology 28
AMD Opteron X2 Wafer X2: 300mm wafer, 117 chips, 90nm technology X4: 45nm technology Chapter 1 Computer Abstractions and Technology 29
Τεχνολογίες ημιαγωγών Chapter 2 Instructions: Language of the Computer 30
Συμπερασματικές παρατηρήσεις Η σχέση κόστος/απόδοση βελτιώνεται Χάριν της υποκείμενης τεχνολογικής ανάπτυξης Ιεραρχικά επίπεδα αφαίρεσης Τόσο στο υλικό όσο και στο λογισμικό Αρχιτεκτονική συνόλου εντολών Η διασύνδεση υλικού λογισμικού Ο χρόνος εκτέλεσης είναι το καλύτερο μέτρο απόδοσης Η ισχύς είναι ένας περιοριστικός παράγοντας Η χρήση παραλληλισμού βελτιώνει την απόδοση Chapter 1 Computer Abstractions and Technology 31