Αρχιτεκτονική Υπολογιστών Εισαγωγή Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52, University of Berkeley. Αρχιτεκτονική Υπολογιστών, Ν. Κοζύρης, Εθνικό Μετσόβιο Πολυτεχνείο. Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π. Ευριπίδου, Πανεπιστήμιο Κύπρου Αρχιτεκτονική Υπολογιστών, Ν. Στεφανιδάκης, Ιόνιο Πανεπιστήμιο. Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.
Αρχιτεκτονική Υπολογιστών Εισαγωγή Θεματολογία Μαθήματος Αντικείμενο, Έμφαση, Υλικό, Αξιολόγηση Ιστορικά Στοιχεία Εξέλιξη των Υπολογιστών Αρχιτεκτονική Δομή Σύγχρονων Υπολογιστών Κύρια Συστατικά Μέρη, Οργάνωση Παράδειγμα Υπολογιστές με βάση τον Pentium 4
Τι είναι Αρχιτεκτονική Υπολογιστών; Εφαρμογή Μεγάλο χάσμα για να καλυφθεί σε ένα β βήμα. Κύκλωμα Η Αρχιτεκτονική Υπολογιστών ασχολείται με το λογικό σχεδιασμό των βασικών επιπέδων αφαίρεσης που επιτρέπουν την αποδοτική εκτέλεση των υπολογιστικών εφαρμογών με βάση τις διαθέσιμες τεχνολογίες κατασκευής ψηφιακών κυκλωμάτων, με έμφαση στη λειτουργία του επεξεργαστή και της προσπέλασής του στη μνήμη. 19/10/08 3 CS252-s06, Lec 01-intro
Γλώσσες, Επίπεδα Αφαίρεσης, Εικονικές Μηχανές Μια πολυεπίπεδη μηχανή
Σύγχρονες Πολυεπίπεδες Μηχανές (1) Εφαρμογές Πρόγραμμα γλώσσας υψηλού επιπέδου Πρόγραμμα γλώσσας assembly Συστήματα Αρχιτεκτονική Σενάριο ή κλήση συστήματος (μικτή γλώσσα) Πρόγραμμα σε γλώσσα μηχανής Μικροπρόγραμμα ή γλώσσα περιγραφής υλικού Οργάνωση Υπολογιστής έξι επιπέδων. Η μέθοδος υποστήριξης και η γλώσσα υλοποίησης σημειώνεται κάτω (δίπλα) από κάθε επίπεδο.
Σύγχρονες Πολυεπίπεδες Μηχανές (2) Πρόγραμμα Γλώσσας Υψηλού Επιπέδου Λογισμικό Πρόγραμμα Γλώσσας Μηχανής Σύνορο Υλικού/Λογισμικού Πρόγραμμα Γλώσσας Assembly Εφαρμογή Λειτουργικό Σύστημα Μεταγλωττιστής Assembler, Linker Firmware Επεξ. Συν. Εντολ. Σύστημα I/O Αρχιτεκτονική Συνόλου Εντολών Έλεγχος και Διαδρομή Δεδομένων Υλικό Λογικά Διαγράμματα Διαγράμματα Κυκλωμάτων cslab@ntua 2007-2008 Ψηφιακή Σχεδίαση Σχεδίαση Κυκλωμάτων Απεικόνιση Μικροπρόγραμμα Γλώσσα Μεταφοράς Καταχωρητή Γλώσσα Περιγραφής Υλικού 6
Μορφή προγράμματος σε κάθε επίπεδο temp = v[k]; Πρόγραμμα Γλώσσας Υψηλού Επιπέδου v[k] = v[k+1]; v[k+1] = temp; Μεταγλώττιση load $15, 0($2) load $16, 4($2) store $16, 0($2) store $15, 4($2) Πρόγραμμα Γλώσσας Assembly Assembly, Συμβολομετάφραση ISA Πρόγραμμα Γλώσσας Μηχανής 0000 1010 1100 0101 1001 1111 0110 1000 1100 0101 1010 0000 0110 1000 1111 1001 1010 0000 0101 1100 1111 1001 1000 0110 0101 1100 0000 1010 1000 0110 1001 1111 Διερμηνεία, Υλοποίηση Control Signal Specification cslab@ntua 2007-2008 ALUOP[0:3] <= InstReg[9:11] & MASK Register Transfer Notation (RTN) 7
Αντικείμενα Αρχιτεκτονικής (1) Τουλάχιστο τρία κύρια αντικείμενα: Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture, ISA), είναι η λογική αφαίρεση ενός υπολογιστικού συστήματος στο επίπεδο της Γλώσσας Μηχανής (ή της Γλώσσας Assembly χωρίς τις κλήσεις του ΛειτουργικούΣσυστήματος). Είναι το προγραμματιστικό μοντέλο (η εικονική μηχανή) που αντιλαμβάνεται ο προγραμματιστής που προγραμματίζει σε αυτό (το χαμηλότερο δυνατό) επίπεδο. Περιλαμβάνει το σύνολο (ρεπερτόριο) εντολών, τις μεθόδους διευθυνσιοδότησης (προσπέλασης μνήμης), τη διαχείριση καταχωρητών, τη κωδικοποίηση διευθύνσεων και δεδομένων, το μηχανισμό κλήσης ρουτινών, τη διαχείριση εισόδου/εξόδου, τη διαχείριση των καταστάσεων και σημάτων διακοπής του επεξεργαστή. Πρόκειται ουσιαστικά για το σύνορο μεταξύ περιγραφής ενός υπολογιστικού συστήματος από πλευράς υλικού ή λογισμικού. 8 cslab@ntua 2007-2008
Παράδειγμα Απλού Συνόλου Εντολών 9 cslab@ntua 2007-2008
Παράδειγμα Απλού Μοντέλου Επιπέδου Συνόλου Εντολών 10 cslab@ntua 2007-2008
Αντικείμενα Αρχιτεκτονικής (2) Μικροαρχιτεκτονική (Microarchitecture), είναι το αμέσως χαμηλότερο επίπεδο, πιο συγκεκριμένο και λεπτομερές από το επίπεδο Αρχιτεκτονικής Συνόλου Εντολών. Περιλαμβάνει τη λεπτομερή περιγραφή του τρόπου σύνδεσης, λειτουργίας και χρονισμού των συστατικών μερών (του υλικού), έτσι ώστε αυτά να υλοποιούν (εκτελούν στη κυριολεξία) το σύνολο των εντολών. Δηλαδή τη πλήρη περιγραφή του κύκλου Ανάκλησης Εκτέλεσης όλων των εντολών που υποστηρίζει ο υπολογιστής. Επίσης περιλαμβάνονται και θέματα Παραλληλισμού Επιπέδου Εντολής (Instruction Level Parallelism, ILP), δηλαδή αρχιτεκτονικές βελτιώσεις με στόχο την αύξηση της απόδοσης του επεξεργαστή. 11 cslab@ntua 2007-2008
Παράδειγμα Απλής Μικροαρχιτεκτονικής 12 cslab@ntua 2007-2008
Αντικείμενα Αρχιτεκτονικής (3) Σχεδίαση Συστήματος (System Design) που περιλαμβάνει τη διασύνδεση και λειτουργία των βασικών συστατικών στοιχείων (υλικού) του υπολογιστή, κυρίως εκτός του επεξεργαστή, στο μέτρο που αυτά επηρεάζουν την απόδοση του επεξεργαστή, όπως: 1. Ιεραρχίες μνήμης (κρυφή μνήμη, εικονική μνήμη) 2. Δίαυλοι, Ρολόγια, Διακόπτες, Ελεγκτές κλπ. 3. Συστήματα συν-επεξεργασίας (GPUs, DMAs, NICs) 4. Παραλληλισμός σε επίπεδο Επεξεργαστών. 13 cslab@ntua 2007-2008
Προσεγγίσεις Αρχιτεκτονικής 1. Top Down Σύνολο Εντολών > Μικροαρχιτεκτονική > Σχεδιασμός > Υλικό Υπερισχύουν οι απαιτήσεις 2. Bottom Up Υλικό > Σχεδιασμός > Μικροαρχιτεκτονική > Σύνολο Εντολών Υπερισχύουν οι περιορισμοί Επιπλέον * Διαλεκτική Διαδικασία (Hardware/Software Co-design) * Εξελικτική Διαδικασία (Backward Compatibility) 14 cslab@ntua 2007-2008
Αρχιτεκτονική, Οργάνωση και Σύστημα Όροι που πολλές φορές εναλλάσσονται (αλληλεπίδραση). Αρχιτεκτονική = Λογική Αφαίρεση, Μοντέλο, Οπτική, Σχέδιο με έμφαση στη χρήση, λειτουργία και σχεδίαση Αρχιτεκτονική Λογισμικού, Επιχειρησιακή Αρχιτεκτονική κλπ Οργάνωση = Δομή, Σύνθεση Συστατικών Μερών, Υλοποίηση του Σχεδίου με έμφαση στο υλικό μέρος και στις τεχνικές λεπτομέρειες Σύστημα = Δομημένη, Ιεραρχική αντιμετώπιση της μορφής Είσοδος Κατάσταση (Επεξεργασία) Έξοδος, όπου η Κατάσταση μπορεί να αναλυθεί παραπέρα.. 15 cslab@ntua 2007-2008
Απόδοση (1) Time = I x CPI x Clock Cycle Time - I: Instrumentation (αρχιτεκτονική και μεταγλωττιστής, συγκεκριμένα πρόγραμμα και δεδομένα) - CPI: Cycles Per Instruction (μικροαρχιτεκτονική, oργάνωση) - Clock Cycle Time: τεχνολογία (ταχύτητα ρολογιού) Αλληλεπιδράσεις μεταξύ Ι, CPI και Clock Cycle Time (ίσως και αλληλοσυγκρουόμενοι στόχοι) Clock Cycles = Σ CPIi x Ιi για κάθε κατηγόρια εντολών i: μέσος όρος κύκλων ανά εντολή (CPIi) και μέσο ποσοστό εντολών (Ιi) ανά πρόγραμμα. cslab@ntua 2007-2008 16
Απόδοση (2) FLOPs: Floating Point Operations per Second MIPs: Million Instructions per Second MIPs = Εντολές/Χρόνος Χ 106 ή Συχνότητα/CPI X 106 Έστω ότι έχουμε έναν επεξεργαστή που κάνει 1 πράξη κινητής υποδιαστολής (απλής ακρίβειας) σε κάθε κύκλο ρολογιού: Αν η συχνότητά του είναι 1GHz, τότε έχει απόδοση 1 GFLOP Αν ολοκληρώνει 1 εντολή σε κάθε κύκλο, τότε έχει απόδοση 1000MIPs 4 x freq FLOPS < {single Core 2 @ 2.93GHz} < 8 x freq FLOPs Εξαρτάται από την πράξη, FPADD, FPMUL, FPDIV (απλής ακριβείας). Για σύγχρονους επεξεργαστές τουλάχιστον 12 GFLOPs/cpu 17 cslab@ntua 2007-2008
Απόδοση (3) SPEC Benchmark (Μετροπρόγραμμα) www.spec.org Γιά κάθε πρόγραμμα i υπολόγιζει το execution ratio (ER) ERi=(χρονος σε 300 MHz UltraSun 5_10 / Χρονος μηχανής μέτρησης )* 100 Γεωμετρικός Μέσος των Execution Ratios n προγραμμάτων με Γεωμετρικό Μέσο SpecRatio = Π (ERi) i=1,2,..,n - SPEC CPU2006: 12 integer και 17 floating point εφαρμογές - SPECThroughput, SPECJava... κλπ 18 cslab@ntua 2007-2008
TOP 500, 13/06/08 19 cslab@ntua 2007-2008
Υλικό Μαθήματος (Βιβλία) * Patterson & Hennessy, Computer Organization and Design Ίσως το πιο πλήρες βιβλίο, κυρίως από σχεδιαστική πλευρά. Το μόνο 'μειονέκτημα'..ο MIPS. Πολύ καλή ελληνική έκδοση. * Bryant, O'Hallaron, Computer Systems: A Programmer's Perspective Το πιο καλό προγραμματιστικά. Το μόνο 'μειονέκτημα'.. ο ΙΑ32. Επιλογή για προγραμματισμό σε βάθος. Δεν υπάρχει στα Ελληνικά. * Tanenbaum, Structured Computer Organization Το πιο αφαιρετικό, με ολιστική, δομημένη προσέγγιση. Επιλογή για αρχική γνωριμία με την αρχιτεκτονική. Μειονέκτημα η.. έλλειψη λεπτομερειών. Καλή ελληνική έκδοση. *Hamacher et.al., Computer Organization *Stallings, Computer Organization and Architecture. Δημοφιλή παραδοσιακά εγχειρίδια αρχιτεκτονικής. Καλές ελληνικές εκδόσεις. 20 cslab@ntua 2007-2008
Υλικό Μαθήματος (Διαδίκτυο) * Compus, httlp://compus.uom.gr Εβδομαδιαία παρακολούθηση, ανακοινώσεις, θέματα, σύνδεσμοι. * PdP Lab, http://www.it.uom.gr/teaching Συλλογές διαδικτυακού υλικού, για διάφορα θέματα αρκετά για αρχιτεκτονική, προγραμματισμό και υπολογιστικά συστήματα. Εδώ συνήθως οδηγούν οι σύνδεσμοι του Compus. * Wikipedia Το λήμμα computer architecture αποτελεί καλή εκκίνηση. * Google.. 21 cslab@ntua 2007-2008
Σχέδιο Μαθήματος Εβδομάδα 1-2 3-5 6-8 9 10 11-12 13 Περιγραφή Εισαγωγή, Δομή, Οργάνωση Μικροαρχιτεκτονική Αρχιτεκτονική Συνόλου Εντολών Λ.Σ., Εικονική Μνήμη Συμβολική Γλώσσα (Αssembly) Παράλληλες Αρχιτεκτονικές Επανάληψη Κεφάλαια 1,2,3 4 5 6 7 8-22 cslab@ntua 2007-2008
Αξιολόγηση Εξετάσεις χωρίς βιβλία και σημειώσεις. Θα χορηγείται μόνο μια βοηθητική φωτοτυπία (πχ. σχεδιάγραμμα, σύνολο εντολών). Οδηγός ύλης και ασκήσεων το βιβλίο 'Η αρχιτεκτονική των υπολογιστών: με δομημένη προσέγγιση', κυρίως κεφάλαια 4 και 5 - τμήματα από τα κεφάλαια 6,7 και 8. Επανάληψη τα κεφάλαια 1,2 και 3, καθώς και τα Παραρτήματα. Έμφαση κυρίως στο προγραμματισμό, λιγότερο στο σχεδιασμό. Προσομοιωτής MIC-1. Παραδείγματα αρχιτεκτονικής Intel σε gcc, gdb / ddd (Linux). Πιθανώς σοβαρές εργασίες/ενδιάμεσες ασκήσεις (+20%). 23 cslab@ntua 2007-2008
Αρχιτεκτονική Υπολογιστών Εισαγωγή Θεματολογία Μαθήματος Αντικείμενο, Έμφαση, Υλικό, Αξιολόγηση Ιστορικά Στοιχεία Εξέλιξη των Υπολογιστών Αρχιτεκτονική Δομή Σύγχρονων Υπολογιστών Κύρια Συστατικά Μέρη, Οργάνωση Παράδειγμα Υπολογιστές με βάση τον Pentium 4
Εξέλιξη Πολυεπίπεδων Μηχανών Κάποτε: Λίγο, πανάκριβο, δύσχρηστο υλικό (1945) Επινόηση διερμηνείας και μικροπρογραμματισμού (1950) Επινόηση του λειτουργικού συστήματος (1960) Μεγέθυνση του μικροκώδικα (1970) Μείωση προς εξάλειψη του μικροπρογραμματισμού (1985) Τώρα: Άφθονο, φθηνό, εύχρηστο υλικό (2000) Ισοδυναμία υλικού και λογισμικού Αρχική ανάπτυξη λογισμικού λόγω του ακριβού υλικού Σταδιακή μετάβαση λογισμικού προς το υλικό (VLSI) Πρόσθεση νέων επιπέδων λογισμικού λόγω του φθηνού υλικού
Ορόσημα Αρχιτεκτονικής Υπολογιστών (1) Μερικά ορόσημα στην ανάπτυξη των σύγχρονων υπολογιστικών συστημάτων.
Ορόσημα Αρχιτεκτονικής Υπολογιστών (2) Μερικά ορόσημα στην ανάπτυξη των σύγχρονων υπολογιστικών συστημάτων.
Γενιές Υπολογιστών Μηδενική Γενιά Μηχανικοί Υπολογιστές (1642 1945) Πρώτη Γενιά Λυχνίες Κενού (1945 1955) Δεύτερη Γενιά Στερεοί Ημιαγωγοί-Transistors (1955 1965) Τρίτη Γενιά Ολοκληρωμένα Κυκλώματα (1965 1980) Τέταρτη Γενιά Ολοκλήρωση Υψηλής Κλίμακας-VLSI (1980?)
Οι Υπολογιστές τότε 19/10/08 EDSAC, University of Cambridge, UK, 1949 CS252-s06, Lec 01-intro 29
Πρώτη Γενιά Το αρχικό μοντέλο Von Neumann. Παράλληλη bit-level αριθμητική. Κοινή αποθήκευση δεδομένων και προγράμματος.
Δεύτερη Γενιά Κοινός Δίαυλος PDP-8. Πρώτα λειτουργικά συστήματα Πρώτος μικροπρογραμματισμός (μικροαρχιτεκτονική). Πρώτοι υπερ-υπολογιστές.
Τρίτη Γενιά Τα συστήματα IBM 360: Πρώτη σειρά με κοινή Εικονική Μηχανή. Πολυπρογραμματισμός. Εξάπλωση μικροπρογραμματισμού.
Τέταρτη Γενιά Πρώτος μικρο-επεξεργαστής (πρόδρομος της οικογένειας επεξεργαστών της Intel). Πρώτος Προσωπικός Υπολογιστής (ΙΒΜ PC) και η πρώτη Ανοικτή Αρχιτεκτονική (συμβατότητα). Πρώτο Λειτουργικό Σύστημα σε δισκέττα (Miscrosoft MSDOS) και άνθηση της Ανεξάρτητης Ανάπτυξης Λογισμικού (3rd parties). VLSI: αυτοματοποιημένη παραγωγή, φθηνό υλικό. Σταδιακή ενίσχυση των προσωπικών υπολογιστών και αντίστοιχη εξάλειψη των μεγάλων-κλειστών συστημάτων. Δίκτυα: ενίσχυση της δια-λειτουργικότητας και της ανάγκης για συμβατότητα σε ανώτερα επίπεδα εικονικών μηχανών.
Νόμος του Moore (1) (Kυρίως) Τέταρτη Γενιά (LSI, VLSI). Ο νόμος του Moore προβλέπει ετήσια αύξηση 60% στον αριθμό transistors μέσα σε ένα chip. Το γράφημα αφορά πυκνότητα μνήμης σε bits.
Νόμος του Moore (2) Επεξεργαστής: 2X ταχύτητα κάθε 1.5 έτος. ~1000X απόδοση τη τελευταία 10ετία. Μνήμη: DRAM χωρητικότητα: > 2x κάθε 1.5 έτος. ~1000X χωρητικότητα τη τελευταία 10ετία. Κόστος ανά bit: πέφτει κατά 25% το χρόνο. Δίσκος: Χωρητικότητα: > 2X κάθε 1.5 έτος. Κόστος ανά bit: πέφτει κατά 60% το χρόνο. 200X χωρητικότητα τη τελευταία 10ετία. 35 cslab@ntua 2007-2008
..και οι Υπολογιστές Τώρα Sensor Nets TIFFQuickTime (Uncompressed) decompressor are needed toand seeathis picture. Cameras Games QuickTime and a Set-top TIFF (Uncompressed) decompressor are needed to see this picture. boxes Media Players Laptops Servers QuickTime and a TIFF (Uncompressed) decompressor are needed to see this picture. QuickTime and a TIFF (Uncompressed) decompressor are needed to see this picture. Routers Smart phones Automobiles 19/10/08 CS252-s06, Lec 01-intro Robots Supercomputers 36
Το Φάσμα των Υπολογιστών Το φάσμα των σύγχρονων υπολογιστών, οι τιμές και τυπικές εφαρμογές τους.
Παραδείγματα Υπολογιστών - Pentium 4 της Intel (ΙΑ-32) - UltraSPARC III της Sun Microsystems - Το 8051 chip της Intel, για ενσωματωμένα συστήματα - ΜΙPS, για ενσωματωμένα συστήματα - ARM, για κινητά τηλέφωνα - PIC, για μικροελεγκτές Μερίδια αγοράς? Ενσωματωμένα Συστήματα: Πολλοί Εξειδικευμένοι Υπολογιστές ανά Χρήστη.
Μερίδια Αγοράς Επεξεργαστών
Αρχιτεκτονική Υπολογιστών Εισαγωγή Θεματολογία Μαθήματος Αντικείμενο, Έμφαση, Υλικό, Αξιολόγηση Ιστορικά Στοιχεία Εξέλιξη των Υπολογιστών Αρχιτεκτονική Δομή Σύγχρονων Υπολογιστών Κύρια Συστατικά Μέρη, Οργάνωση Παράδειγμα Υπολογιστές με βάση τον Pentium 4
Οργάνωση Τυπικού Προσωπικού Υπολογιστή (PC) Λογική δομή ενός απλού προσωπικού υπολογιστή.
'Αρχιτεκτονική' ενός Απλού Υπολογιστή Η αρχιτεκτονική (μοντέλο, λογική αφαίρεση) ενός απλού υπολογιστή με μια CPU και δύο συσκευές I/O
Λογική Οργάνωση CPU Address Content 00..0 01100..0 MAR, MDR PC, IR FF..F 0100..0 Memory CPU Διαδρομές δεδομένων (όχι ελέγχου) σε μια τυπική CPU Λογική οργάνωση = Διαχείριση Καταχωρητών, ALU, Μνήμης.
Ονομασίες Βασικών Καταχωρητών Μετρητής Προγράμματος (Program Counter, PC) Καταχωρητής Εντολών (Instruction Register, IR) Καταχωρητής Διευθύνσεων Μνήμης (Memory Address Register, MAR) Καταχωρητής Δεδομένων Μνήμης (Memory Data Register, MDR) Συσσωρευτής (Accumulator, AC) ή Α, Β, C... Δείκτης Στοίβας (Stack Pointer, SP) Index, Base, Offset Registers Καταχωρητής Κατάστασης (Status Register, SR)
Βήματα Ανάκλησης - Εκτέλεσης A. Ανάκληση της εντολής που δείχνει ο Μετρητή Προγράμματος από τη μνήμη και τοποθέτησή της στον Καταχωρητή Εντολών B. Τροποποίηση του Μετρητή Προγράμματος ώστε να δείχνει την επόμενη εντολή C. Αποκωδικοποίηση της εντολής που βρίσκεται στον Καταχωρητή Εντολών D. Αν η εντολή χρησιμοποιεί δεδομένα που βρίσκονται στη μνήμη, τότε γίνεται ανάκληση των δεδομένων σε καταχωρητή(ές) της CPU E. Εκτέλεση της εντολής και (πιθανή) αποθήκευση του αποτελέσματος σε καταχωρητή της CPU ή στη μνήμη F. Επανάληψη από το βήμα Α
Διερμηνέας (1)... Διερμηνέας για έναν απλό υπολογιστή (σε Java).
Διερμηνέας (2) Διερμηνέας για έναν απλό υπολογιστή (σε Java).
Διερμηνεία και Μικροκώδικας Διερμηνεία: η εντολή γλώσσας μηχανής αναλύεται σε βήματα από στοιχειώδη σήματα ελέχου που υλοποιούνται σε διαδοχικούς κύκλους μηχανής. Κάθε βήμα είναι μια μικροεντολή και και το σύνολο των μικροεντολών είναι ο μικροκώδικας. Όλα βρίσκονται σε μικρο-rom. ΥΠΕΡ Υλοποίηση του ίδιου συνόλου εντολών από διαφορετικό υλικό. Υλοποίηση σύνθετων εντολών χωρίς απαραίτητα να υπάρχει σύνθετο υλικό (κύκλοι μηχανής). Τροποποίηση συνόλου εντολών χωρίς αλλαγή υλικού. Δομημένος / εύκολος σχεδιασμός (επίπεδο αφαίρεσης). ΚΑΤΑ Κόστος απόδοσης (κύκλοι ανάκλησης εκτέλεσης μικρο-rom )
Βασικοί Tύποι Οργάνωσης CPU από πλευράς Συνόλου Εντολών Μοντέλο Συσσωρευτή (1-address) Μόνο ένας καταχωρητής γενικού σκοπού. Απλό μοντέλο αλλά πολλές μεταφορές από-προς μνήμη και πολλές εντολές. Πρώτοι υπολογιστές (ο διερμηνέας που είδαμε). Μοντέλο Στοίβας (0-address) Οι καταχωρητές (ή η μνήμη) προσπελαύνονται μόνο μέσω εντολών διαχείρισης μιας στοίβας (Push, Pop). Απλή στη σύλληψη αλλά δύσκολη στη προσπέλαση, πολλές μετακινήσεις δεδομένων στη στοίβα. JVM. Μοντέλο Πολλαπλών Καταχωρητών (0,1,2-address) Σύγχρονοι υπολογιστές. Πολλοί όμοιοι (όχι πάντα) καταχωρητές. Προσοχή στις πολλές διευθύνσεις και τύπους εντολών ( RISC, CISC)
Παράδειγμα AC
Βήματα Ανάκλησης Εκτέλεσης Παράδειγμα AC int x, y, z; x = y + z; Γλώσσα Υψηλού Επιπέδου load 0xA2 add 0xA4 store 0xA0 Γλώσσα Assembly // AC := AC + mem(0xa4) 0100 1010 0010 0110 1010 0100 0101 1010 0000 Γλώσσα Μηχανής IR := MDR(PC); PC := PC + len(instr); Decode (Opcode(IR); MAR := Operand(IR);AC := MDR(MAR); Γλώσσα Μεταφοράς Καταχωρητών Συσχέτιση με Γλώσσα Μηχανής = Μικροαρχιτεκτονική
Παράδειγμα Stack
Βήματα Ανάκλησης Εκτέλεσης Παράδειγμα Stack int x, y, z; x = y + z; load 0xA2 load 0xA4 add store 0xA0 Γλώσσα Υψηλού Επιπέδου ή push 0xA2 ή push 0xA4 Γλώσσα Assembly // pop, pop, add, push ή pop 0xA0 0100 1010 0010 0100 1010 0100 0110 0101 1010 000 Γλώσσα Μηχανής
Παράδειγμα Regs
Βήματα Ανάκλησης Εκτέλεσης Παράδειγμα Regs int x, y, z; x = y + z; Γλώσσα Υψηλού Επιπέδου `` load A, 0xA2 load B, 0xA4 add C, A, B store C, 0xA0 Εκδοχές Γλώσσας Assembly load A, 0xA2 add C, A, OxA4 store C, 0xA0 0100 0000 1010 0010 0100 0001 1010 0100 0110 0010 0000 0001 0101 0000 1010 0000 add C, 0xA2, 0xA4 store C, 0xA0 add 0xA0, 0xA2,0xA4 Αντίστοιχες εντολές σε γλώσσα μηχανής; Προβλήματα αναπαράστασης, απόδοσης;
Βασικοί Tύποι Εντολών Μετακίνηση Δεδομένων (από/προς μνήμη/καταχωρητές) Αριθμητικές Πράξεις, Συγκρίσεις Λογικές Πράξεις, Συνθήκες Έλεγχος ροής προγράμματος (μεταβολή PC) με συνθήκη ή χωρίς Κλήση ρουτίνας (αλλαγή πλαισίου λειτουργίας) και Επιστροφή Είσοδος/'Εξoδος Κατάσταση Επεξεργαστή/Διακοπές
Παράδειγμα Χρήσης Εντολών: Top 10 Intel X86 Instructions Κατηγορία Εντολή Μέσο ποσοστό συνολικής εκτέλεσης 1 load 22% 2 conditional branch 20% 3 compare 16% 4 store 12% 5 add 8% 6 and 6% 7 sub 5% 8 move register-register 4% 9 call 1% 10 return 1% Total 96% Παρατήρηση: Οι απλές εντολές έχουν τις μεγαλύτερες συχνότητες χρησιμοποίησης. 57 cslab@ntua 2007-2008
RISC και CISC Η Διερμηνεία στα όρια της (VAX). Ολο και πιο σύνθετο σύνολο εντολών γλώσσας μηχανής (200-300 εντολές). Σχετικά σύντομος κώδικας γλώσσας μηχανής αλλά πολύπλοκες-αργές εντολές. Complex Instruction Set Computer (CISC) Εναλλακτική ιδέα. Ένα σύνολο εντολών γλώσσας μηχανής δύο επιπέδων. Οι βασικές, συχνά χρησιμοποιούμενες εντολές υλοποιούνται αποδοτικά απ'ευθείας στο υλικό. Οι υπόλοιπες.. μπορούν να αναλυθούν από το μεταγλωττιστή ή να διερμηνευτούν. Σχετικά μακροσκελής κώδικας γλώσσας αλλά απλές-γρήγορες εντολές και δυνατότητα 'αναδιοργάνωσης' κώδικα. Reduced Instruction Set Computer (RISC) Μετά από αρκετές διαμάχες.. η λύση κάπου στη μέση. Νέος και απλός (MIPS, SPARC, PowerPC,..)? RISC Παλιός και σύνθετος (Pentium,..)? CISC πάνω από RISC (ακόμη ένα κρυμμένο επίπεδο αφαίρεσης..).
Αρχές Σχεδιασμού Υπολογιστών Όλες οι βασικές εντολές εκτελούνται απ' ευθείας στο υλικό (οι σύνθετες εντολές ίσως υλοποιούνται με μικροκώδικα). Μεγιστοποίηση του ρυθμού υποβολής εντολών στη CPU (τεχνικές Παραλληλίας Επιπέδου Εντολής, ILP). Εύκολη αποκωδικοποίηση εντολών (μικρό σχετικά σύνολο από σχετικά απλές εντολές). Ελαχιστοποίηση προσπέλασης στη μνήμη, με ειδικές εντολές Load, Store μιας διεύθυνσης. Αφθονία όμοιων καταχωρητών (μεγάλο register file).
Επίπεδα Παραλληλισμού Επίπεδο Δεδομένων (Data Level Parallelism, DLP): ταυτόχρονη εκτέλεση πράξεων σε ομοειδή δεδομένα, σεalu, κυλώματα ή και συνεπεξεργαστές ειδικού σκοπού, (32/64 bits, εσωτερικό GPU). Επίπεδο Εντολής (Instruction Level Parallelism, ILP): ταυτόχρονη εκτέλεση διαφορετικών εντολών ενός προγράμματος (Υπερβαθμωτή εκτέλεση, Διοχέτευση). Επίπέδο Εργασίας (Task/Thread Level Parallelism, Multithreading): ταυτόχρονη εκτέλεση πολλαπλών νημάτων (διεργασιών). Επίπέδο Λειτουργίας (Functional Parallelism): ταυτόχρονη εκτέλεση λειτουργιών (συνεπεξεργαστές GPU, DMA, I/O..) Επίπέδο Υπολογιστή/Υπολογισμού (Multiprocessors, Multicomputers): ταυτόχρονη εκτέλεση ενός ή διαφορετικών προγραμμάτων σε πολλαπλούς επεξεργαστές.
Παραλληλία Επιπέδου Εντολής (ILP) Προϋποθέτει διακριτές υπο μονάδες στη CPU, σε αντιστοιχία με το κύκλο Ανάκλησης- Εκτέλεσης. Ενδεικτικές υπομονάδες Ανάκληση της εντολής, Τροποποίηση PC Αποκωδικοποίηση της εντολής Ανάκληση των τελεστέων Εκτέλεση της εντολής Ακέραιοι Πραγματικοί Ανάκληση επιπλεόν τελεστέων Aποθήκευση του αποτελέσματος στη μνήμη 1 2 3 4 5 6 7 8 9 10 Χρόνος Α Β C D E Μονάδες
Παραλληλία Επιπέδου Εντολής (ILP) Pipelining (Διοχέτευση, Σωλήνωση) (α) Μια διοχέτευση πέντε σταδίων (β) Η κατάσταση κάθε σταδίου σε εννέα κύκλους ρολογιού.
Παραλληλία Επιπέδου Εντολής (ILP) Υπερβαθμωτή (Superscalar) Αρχιτεκτονική (1) Διπλή διοχέτευση πέντε σταδίων με κοινή μονάδα προσκόμισης εντολής (Πρώτοι Pentium, η δεύτερη διοχέτευση μόνο για ακεραίους).
Παραλληλία Επιπέδου Εντολής (ILP) Υπερβαθμωτή (Superscalar) Αρχιτεκτονική (2) Υπερβαθμωτός επεξεργαστής με πέντε λειτουργικές μονάδες, τοποθετημένος σε διοχέτευση πέντε σταδίων (Pentim II).
Παραλληλία Επιπέδου Εντολής (ILP) Υπερβαθμωτή (Superscalar) Αρχιτεκτονική (3) 1 2 3 4 5 6 7 8 9 10 Χρόνος Α Β C D1 D2 D3 D4 D5 E Μονάδες
Κύρια Μνήμη Λογική Οργάνωση Διευθύνσεων Τρείς οπτικές μιας μνήμης των 96 bit.
Λογική Οργάνωση Bytes (1) (a) Big endian (b) Little endian
Λογική Οργάνωση Bytes (2) (a) Εγγραφή big endian. (b) Εγγραφή little endian. (c) Μεταφορά από big endian σε little endian. (d) Ανταλλαγή bytes στο (c).
Κρυφή Μνήμη (Cache) (1) Από λογική (αρχιτεκτονική) άποψη η cache είναι μεταξύ της CPU και της Κύριας Μνήμης.
Κρυφή Μνήμη (Cache) (2) Από φυσική (οργανωτική) άποψη, συνήθως έχουμε πολλαπλά επίπεδα cache (L1/2/3) που βρίσκονται μέσα ή έξω από τον επεξεργαστή με διαφορετική ταχύτητα, χωρητικότητα και λειτουργικότητα (Εντολές, Δεδομένα).
Αρχή Τοπικότητας Ένα πρόγραμμα έχει τη τάση να προσπελαύνει σε κάθε χρονική στιγμή δεδομένα και εντολές σε σχετικά περιορισμένο χώρο διευθύνσεων. Δύο ειδών τοπικότητες: Χρονική Τοπικότητα: Αν μια θέση μνήμης προσπελαστεί μια φορά, τότε πιθανότατα θα ξαναχρησιμοποιηθεί τις επόμενες χρονικές στιγμές. Παράδειγμα: εντολές βρόχων επανάληψης Χωρική Τοπικότητα: Αν μια θέση μνήμης προσπελαστεί, τότε πιθανότατα σύντομα θα προσπελαστούν και οι γειτονικές θέσεις μνήμης Παράδειγμα: πίνακες και άλλες δομές δεδομένων.
Χαρακτηριστικά Cache Κόστος L1 > Kόστος L2 > Κόστος L3 > Κόστος Κύριας Μνήμης. Ταχύτητα L1 < Ταχύτητα L2 < Ταχύτητα L3 < Ταχύτητα Κ. Μνήμης Μέγεθος L1 < Μέγεθος L2 < Μέγεθος L3 < Μέγεθος Κ. Μνήμης Μέγεθος Cache < 1% Μέγεθος Κύριας Μνήμης Διαφορές με Καταχωρητές: * Η Cache είναι διαφανής στο επίπεδο συνόλου εντολών (δεν υπάρχουν δηλαδή ειδικές εντολές γλώσσας μηχανής). * Η διαχείριση της Cache γίνεται από το υλικό, όχι το λογισμικό. * Η Cache αποθηκεύει δεδομένα και εντολές.
Ιεραρχία Μνήμης L1 Instruction/Data on chip Εντολές καταχωρητών * L2 on chip package L3 on board * Virtual memory Εντολές μνήμης * Εντολές Ι/Ο Μια ιεραρχία μνήμης με πέντε (ή εννέα) φυσικά επίπεδα. Τα λογικά επίπεδα είναι τρία (σημειώνονται με *).
Δίαυλοι (1) Τυπικό σύστημα υπολογιστή με πολλαπλούς διαύλους.
Δίαυλοι (2) Βασικοί λογικοί τύποι διαύλων και σχέση με καταχωρητές Δίαυλος Δεδομένων (Data Bus): MDR,IR, AC (A, B, C,...) Δίαυλος Διευθύνσεων (Address Bus): MAR, PC, SP, Index,, Base Δίαυλος Ελέγχου (Control Bus):.. Παραδείγματα masters και slaves σε διαύλους.
Χρονισμός Διαύλου (1) Χρονισμός Ανάγνωσης σε σύγχρονο δίαυλο.
Χρονισμός Διαύλου (2) Ορισμός μερικών σημαντικών σημάτων.
Διαιτησία Διαύλου (1) (a) Κεντρικός διαιτητής διαύλου ενός επιπέδου. (b) Ο ίδιος δαιτητής με δύο επίπεδα.
Διαιτησία Διαύλου (2) Αποκεντρωμένη διαιτησία.
Είσοδος/'Εξοδος (Ι/O) Φυσική οργάνωση καρτών περιφερειακών Ι/Ο.
Σχηματικό Μητρικής Πλακέτας Λειτουργικός Παραλληλισμός Οι ελεγκτές I/O και οι συνεπεξεραστές συνήθως 'φαίνονται' σαν θέσεις μνήμης (memory mapped I/O) και προσπελαύνονται είτε με γενικές ή με ειδικές εντολές Ι/Ο. Επιτρέπουν σημαντικό βαθμό λειτουτγικού παραλληλισμού
Ελεγκτής Διακοπών Ελεγκτής Διακοπών 8259A.
Αποκωδικοποίηση Διευθύνσεων (1) EPROM, RAM, και PIO σε χώρο διευθύνσεων 64 KB.
Αποκωδικοποίηση Διευθύνσεων (2) Πλήρης αποκωδικοποίηση διευθύνσεων.
Αρχιτεκτονική Υπολογιστών Εισαγωγή Θεματολογία Μαθήματος Αντικείμενο, Έμφαση, Υλικό, Αξιολόγηση Ιστορικά Στοιχεία Εξέλιξη των Υπολογιστών Αρχιτεκτονική Δομή Σύγχρονων Υπολογιστών Κύρια Συστατικά Μέρη, Οργάνωση Παράδειγμα Υπολογιστές με βάση τον Pentium 4
Οικογένεια Intel (1) Η οικογένεια CPU της Intel. Ταχύτητες ρολογιού σε MHZ, με 1 MHZ = 1 εκ. κύκλοι/sec.
Οικογένεια Intel (2) Ο νόμος του Moore για τα CPU chips της Intel.
Pentium 4 (1) Η φυσική συνδεσμολογία του Pentium 4t.
Pentium 4 (2) Το chip Pentium 4 της Intel, 2003.
Λογική Συνδεσμολογία του Pentium 4 Τα ονόματα σε κεφαλαία είναι επίσημα, τα υπόλοιπα είναι περιγραφές.
Μητρική Πλακέτα Τυπικού PC 1. Pentium 4 socket 2. 875P Support chip 3. Memory sockets 4. AGP connector 5. Disk interface 6. Gigabit Ethernet 7. Five PCI slots 8. USB 2.0 ports 9. Cooling technology 10. BIOS Η καρδιά κάθε προσωπικού υπολογιστή είναι ένα τυπωμένο κύκλωμα η μητρική πλακέτα (motherboard) : Intel D875PBZ board.
Σχηματικό Μητρικής Πλακέτας Δομή Διαύλων του Pentium 4.
Διοχέτευση στο Δίαυλο Μνήμης του Pentium 4 Block Μεταφορά. Καθυστέρηση από τη μνήμη
Διαιτησία Διαύλου PCI Ο Δίαυλος PCI χρησιμοποιεί κεντρική διαιτησία.
Λειτουργίες Διαύλου PCI Οι τρείς πρώτοι κύκλοι αποτελούν μια λειτουργία ανάγνωσης, μετά υπάρχει ένας άεργος κύκλος, και στη συνέχεια μια λειτουργία εγγραφής.
Δίαυλος Universal Serial Bus (USB) Ο κεντρικός διανομέας USB στέλνει πλαίσια κάθε 1 ms.
Διασύνδεση Συσκευών (Parallel I/O) Το ολοκληρωμένο κύκλωμα 8255A PIO.