Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 1 Αφηρημένες έννοιες και τεχνολογία υπολογιστών Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία τροποποίηση: 2016-2017 χειμερινό εξάμηνο.
Ο νόμος του Gordon E. Moore Διπλασιασμός του αριθμού των τρανζίστορ σε πυκνά ολοκληρωμένα κυκλώματα περίπου κάθε δύο χρόνια. Στέκει από το 1965. Chapter 1 Computer Abstractions and Technology 2
Η επανάσταση της Πληροφορικής Η εξέλιξη στην τεχνολογία των Η/Υ Η οποία διέπεται από τον νόμο του Moore Μετατρέπει την «επιστημονική φαντασία» σε νέες εφαρμογές οικονομικά εφικτές Μηχανήματα Αυτόματων Συναλλαγών (ATM) Υπολογιστές σε αυτοκίνητα Φορητοί υπολογιστές Κινητά τηλέφωνα Ερευνητικό πρόγραμμα ανθρωπίνου γονιδιώματος Παγκόσμιος Ιστός (World Wide Web) Μεγάλες μηχανές αναζήτησης (Search Engines) Οι Η/Υ έχουν διεισδύσει παντού. Chapter 1 Computer Abstractions and Technology 3
Κατηγορίες Υπολογιστών Επιτραπέζιοι (Desktop computers) Γενικού σκοπού, μεγάλη ποικιλία λογισμικού Έμφαση στις καλές επιδόσεις με χαμηλό κόστος, συνήθως για ένα χρήστη Διακομιστές (Server computers) Προσπελάσιμοι μέσω δικτύου (Network based) Υψηλού φόρτου, επιδόσεων και φερεγγυότητας Ποικίλουν από μικρούς διακομιστές έως υπερυπολογιστές με χιλιάδες επεξεργαστές Ενσωματωμένοι (Embedded computers) Είναι κρυμμένοι σε συσκευές και εκτελούν μια πολύ περιορισμένη και προκαθορισμένη δέσμη εφαρμογών Αυστηροί περιορισμοί κατανάλωσης, επιδόσεων και κόστους Chapter 1 Computer Abstractions and Technology 4
Εκατομμύρια Η αγορά των επεξεργαστών Chapter 1 Computer Abstractions and Technology 5
Πυρήνες επεξεργαστών Τα τελευταία χρόνια πολλοί ενσωματωμένοι επεξεργαστές σχεδιάζονται με την χρήση πυρήνων επεξεργαστών (processor cores), μιας έκδοσης επεξεργαστή γραμμένης σε γλώσσα περιγραφής υλικού (Verilog ή VHDL). Ο πυρήνας επιτρέπει σε ένα σχεδιαστή να ενσωματώσει κι άλλο υλικό συγκεκριμένης εφαρμογής με τον πυρήνα του επεξεργαστή σε ένα ολοκληρωμένο κύκλωμα. Αυτός είναι ένας σημαντικός παράγοντας που συντέλεσε στην τρομακτική εξάπλωση των ενσωματωμένων υπολογιστών (embedded computers). Chapter 1 Computer Abstractions and Technology 6
Τι μπορείτε να μάθετε Πως τα προγράμματα μεταφράζονται σε κώδικα μηχανής Και πως το υλικό τα εκτελεί Την διασύνδεση Υλικού/Λογισμικού Τι καθορίζει την απόδοση ενός προγράμματος Και πως μπορεί να βελτιωθεί Πως οι σχεδιαστές υλικού μπορούν να βελτιώσουν την απόδοση Chapter 1 Computer Abstractions and Technology 7
Κατανοώντας την Απόδοση Η απόδοση ενός προγράμματος επηρεάζεται από πολλούς παράγοντες όπως: Αλγόριθμος (Algorithm) Καθορίζει τόσο τον αριθμό των εντολών που εκτελούνται σε επίπεδο πηγαίου κώδικα, όσο και τον αριθμό εκτελούμενων λειτουργιών εισόδου/εξόδου Γλώσσα προγραμματισμού, μεταγλωττιστής, αρχιτεκτονική Καθορίζουν τον αριθμό εντολών μηχανής που εκτελούνται ανά εντολή επιπέδου πηγαίου κώδικα Επεξεργαστής και σύστημα μνήμης Καθορίζουν πόσο γρήγορα εκτελούνται οι εντολές Σύστημα εισόδου/εξόδου (Υλικό και Λειτουργικό Σύστημα) Καθορίζει πόσο γρήγορα εκτελούνται οι εντολές εισόδου/εξόδου Chapter 1 Computer Abstractions and Technology 8
Κάτω από το πρόγραμμά σας Λογισμικό Εφαρμογών Σε γλώσσες προγραμματισμού υψηλού επιπέδου (HLL) Λογισμικό Συστημάτων Μεταγλωττιστής: μεταφράζει κώδικα HLL σε κώδικα μηχανής Λειτουργικό Σύστημα Υλικό Διαχείριση λειτουργιών εισόδου/εξόδου Κατανομή χώρου αποθήκευσης και μνήμης Χρονοπρογραμματισμός εργασιών και διαμοιρασμός πόρων του συστήματος (Scheduling tasks & sharing resources) Επεξεργαστής, μνήμη, ελεγκτές εισόδου/εξόδου (I/O controllers) Chapter 1 Computer Abstractions and Technology 9
Επίπεδα κώδικα προγράμματος Γλώσσα προγραμματισμού υψηλού επιπέδου Επίπεδο αφαίρεσης εγγύτερα στο χώρο του προβλήματος Παρέχει παραγωγικότητα και φορητότητα Συμβολική Γλώσσα Απεικόνιση των εντολών σε κείμενο Απεικόνιση υλικού Δυαδικά Ψηφία (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 10
Τα συστατικά ενός υπολογιστή Η συνολική εικόνα (The BIG Picture) Τα ίδια συστατικά για όλες τις κατηγορίες Η/Υ Επιτραπέζιους, διακομιστές και ενσωματωμένους Η είσοδος/έξοδος περιλαμβάνει Συσκευές διεπαφής χρήστη Οθόνη, πληκτρολόγιο, ποντίκι, εκτυπωτής, σχεδιογράφος Συσκευές αποθήκευσης Hard disk, CD/DVD, flash Προσαρμογείς δικτύου Για επικοινωνία με άλλους Η/Υ Chapter 1 Computer Abstractions and Technology 11
Η ανατομία ενός Υπολογιστή Συσκευή εξόδου (Output device) Καλώδιο δικτύου (Network cable) Συσκευή εισόδου (Input device) Συσκευή εισόδου (Input device) Chapter 1 Computer Abstractions and Technology 12
Η ανατομία ενός «ποντικιού» Οπτικό ποντίκι (optical) LED που φωτίζει την επιφάνεια του γραφείου Μικρή φωτογραφική κάμερα χαμηλής ευκρίνειας Στοιχειώδη επεξεργαστή εικόνας Παρατηρεί την κίνηση σε x, y Κουμπιά και ρόδα Αντικαθιστά το μηχανικό ποντίκι με μπίλια Πρωτοπαρουσιάστηκε το 1967 από τον Doug Engelbart. Chapter 1 Computer Abstractions and Technology 13
Πίσω από το γυαλί Οθόνη Υγρών κρυστάλλων (LCD screen): εικονοστοιχεία (picture elements = pixels) Αντικατοπτρίζει το περιεχόμενο της μνήμης κάδρου ή πλαισίου (frame buffer memory) Οθόνη καθοδικού σωλήνα σάρωσης γραμμών (CRT= Cathode Ray Tube) Chapter 1 Computer Abstractions and Technology 14
Ανοίγοντας το κουτί Chapter 1 Computer Abstractions and Technology 15
Το εσωτερικό του Επεξεργαστή AMD Barcelona: 4 processor cores Chapter 1 Computer Abstractions and Technology 16
Αφαιρέσεις (Abstractions) Η συνολική εικόνα (The BIG Picture) Η αφαίρεση βοηθάει στην διαχείριση της πολυπλοκότητας Κρύβει λεπτομέρειες χαμηλότερων επιπέδων Αρχιτεκτονική συνόλου εντολών (Instruction Set Η διασύνδεση υλικού/λογισμικού Architecture = ISA) Δυαδική διασύνδεση εφαρμογής (Application Binary Interface = ABI) Η ISA μαζί με την διασύνδεση λογισμικού συστήματος Υλοποίηση (Implementation) Οι υποκείμενες λεπτομέρειες και δυασύνδεση Chapter 1 Computer Abstractions and Technology 17
Ασφαλής χώρος για δεδομένα Πτητική (volatile) κύρια μνήμη Χάνει εντολές και δεδομένα όταν παύει να τροφοδοτείται Μη πτητική (non-volatile) δευτερεύουσα μνήμη Μαγνητικός δίσκος (Magnetic disk) Flash memory Οπτικός δίσκος (Optical disk: CD, DVD) Chapter 1 Computer Abstractions and Technology 18
Δίκτυα (Networks) Επικοινωνία, κοινή χρήση πόρων και απομακρυσμένη πρόσβαση Τοπικό δίκτυο (Local Area Network = LAN): Ethernet Συνήθως μέσα σε ένα μόνο κτήριο Δίκτυο ευρείας περιοχής (Wide Area Network = WAN): το Διαδίκτυο Ασύρματο δίκτυο (Wireless network): WiFi, Bluetooth Chapter 1 Computer Abstractions and Technology 19
Τεχνολογικές Τάσεις Η τεχνολογία των ηλεκτρονικών συνεχίζει να εξελίσσεται Αυξημένη χωρητικότητα και απόδοση Μειωμένο κόστος 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 20
Απόδοση συστημάτων με ένα επεξεργαστή Εμφανίζονται περιορισμοί ισχύος, παραλληλισμού σε επίπεδο εντολής και καθυστέρησης της μνήμης (memory latency) Chapter 1 Computer Abstractions and Technology 21
Με πολλούς επεξεργαστές Μικροεπεξεργαστές με πολλούς πυρήνες Περισσότεροι από ένας επεξεργαστής ανά ολοκληρωμένο κύκλωμα Απαιτεί παράλληλο προγραμματισμό Συγκριτικά με τον παραλληλισμό σε επίπεδο εντολής Το υλικό εκτελεί ταυτόχρονα πολλές εντολές Χωρίς να γίνεται αντιληπτό από τον προγραμματιστή Δυσκολίες Προγραμματισμός για βελτίωση της απόδοσης Καταμερισμός φόρτου Βελτιστοποίηση επικοινωνίας και συγχρονισμός Chapter 1 Computer Abstractions and Technology 22
Διαδικασία ολοκλήρωσης Ράβδος πυριτίου Συσκευή τεμαχισμού Κενά πλακίδια Συγκόλληση και συσκευασία Κοπτικό κύβων Δοκιμή Διαμορφωμένα πλακίδια Συσκευασμένοι κύβοι Τελευταία δοκιμή και αποστολή στους πελάτες Εσοδεία (Yield): το ποσοστό των ολοκληρωμένων κυκλωμάτων που πέρασαν τον έλεγχο ως προς τον συνολικό αριθμό των τσιπ ενός πλακιδίου Chapter 1 Computer Abstractions and Technology 23
AMD Opteron X2 Wafer X2: 300mm wafer, 117 chips, 90nm technology X4: 45nm technology Chapter 1 Computer Abstractions and Technology 24
Συμπερασματικές παρατηρήσεις Η σχέση κόστος/απόδοση βελτιώνεται Χάριν της υποκείμενης τεχνολογικής ανάπτυξης Ιεραρχικά επίπεδα αφαίρεσης Τόσο στο υλικό όσο και στο λογισμικό Αρχιτεκτονική συνόλου εντολών Η διασύνδεση υλικού λογισμικού Ο χρόνος εκτέλεσης είναι το καλύτερο μέτρο απόδοσης Η ισχύς είναι ένας περιοριστικός παράγοντας Η χρήση παραλληλισμού βελτιώνει την απόδοση Chapter 1 Computer Abstractions and Technology 25