Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών Εισαγωγή Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52, University of Berkeley. Αρχιτεκτονική Υπολογιστών, Ν. Κοζύρης, Εθνικό Μετσόβιο Πολυτεχνείο. Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π. Ευριπίδου, Πανεπιστήμιο Κύπρου Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.
Τι είναι Αρχιτεκτονική Υπολογιστών; Λογισμικό Κύκλωμα Μεγάλο χάσμα για να καλυφθεί σε ένα βήμα. Η Αρχιτεκτονική Υπολογιστών ασχολείται με το λογικό σχεδιασμό των βασικών επιπέδων αφαίρεσης που επιτρέπουν την αποδοτική εκτέλεση του λογισμικού με βάση τη διαθέσιμη τεχνολογία υπολογιστών, με έμφαση στη λειτουργία του συστήματος επεξεργαστής μνήμη. Με μια φράση, η Αρχιτεκτονική Υπολογιστών ασχολείται με το πώς εκτελείται αποδοτικά ένα πρόγραμμα σε ένα υπολογιστή.
Υλικό Μαθήματος (Βιβλία) * Tanenbaum, Structured Computer Organization Το πιο αφαιρετικό, με ολιστική, δομημένη προσέγγιση. Επιλογή για αρχική γνωριμία με την αρχιτεκτονική. Μειονέκτημα η.. έλλειψη λεπτομερειών. Καλή ελληνική έκδοση (έχουν βγεί ακόμη δύο στα Αγγλικά με περιορισμένες αλλαγές). *Stallings, Computer Organization and Architecture. Δημοφιλές παραδοσιακό εγχειρίδιο αρχιτεκτονικής. Καλή ελληνική έκδόση. Πολύ καλό web site με υποστήριξη για φοιτητές. * Patterson & Hennessy, Computer Organization and Design Το πιο πλήρες βιβλίο, κυρίως από σχεδιαστική πλευρά. Το μόνο 'μειονέκτημα' το μέγεθος και ίσως η λεπτομέρεια στο MIPS. Πολύ καλή ελληνική έκδοση. * Bryant, O'Hallaron, Computer Systems: A Programmer's Perspective Το πιο καλό προγραμματιστικά. Το μόνο 'μειονέκτημα'.. ο ΙΑ32. Επιλογή για προγραμματισμό σε βάθος. Δεν υπάρχει στα Ελληνικά.
Υλικό Μαθήματος (Διαδίκτυο) * Compus, httlp://compus.uom.gr Σύνδεσμοι, ανακοινώσεις, εργασίες, συζήτηση. H υλη στους Συνδεσμους ή στα Εγγραφα * PdP Lab, http://www.it.uom.gr/teaching Συλλογές διαδικτυακού υλικού, για διάφορα θέματα αρκετά για αρχιτεκτονική, προγραμματισμό και υπολογιστικά συστήματα. Εδώ συνήθως οδηγούν οι σύνδεσμοι του Compus. * Wikipedia Το λήμμα computer architecture αποτελεί καλή εκκίνηση. * Google..
Αξιολόγηση (1) Εξετάσεις χωρίς βιβλία και σημειώσεις. Χορηγούνται βοηθητικές φωτοτυπίες (πχ. σχεδιάγραμμα, σύνολο εντολών). Οδηγός ύλης και ασκήσεων το βιβλίο 'Η αρχιτεκτονική των υπολογιστών: με δομημένη προσέγγιση', του Α. Tanenbaum, κυρίως τα κεφάλαια 3, 4 και 5 - τμήματα από τα κεφάλαια 1, 2, 8 και τα Παραρτήματα. Έμφαση κυρίως στο προγραμματισμό και τρόπο εκτέλεσης προγραμμάτων χαμηλών επιπέδων, λιγότερο στο σχεδιασμό κυκλωμάτων. Χρήση εύχρηστων προσομοιωτών με οπτική διεπιφάνεια. Χρήση κυρίως Java και JVM.
Αξιολόγηση (2) ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ Μην αφήσετε την ύλη να συσσωρευτεί.. Σταδιακό διάβασμα σε όλη τη διάρκεια του εξαμήνου. Εκτύπωση διαφανειών (2/4 ανά σελίδα) και κράτημα σημειώσεων. Απαιτούνται ΑΡΚΕΤΕΣ μέρες διαβάσματος. ΟΧΙ αποστήθιση, κατανόηση και επίλυση πολλών ασκήσεων.
Αξιολόγηση (3) 6 ή 7 σειρές ασκήσεων για εξάσκηση (οι λύσεις θα δίνονται με καθυστέρηση). 3 ενδιάμεσες εργασίες προαιρετικές με προφορική εξέταση και 1 μονάδα προσθετική ανά εργασία. Λεπτομέρειες θα ανακοινωθούν σύντομα. Μάθημα: Δευτέρα ή Πέμπτη 16:00 19:00 (2 ομάδες). Το εργαστήριο 533 διατίθεται για τις εργασίες καθημερινά. 'Ωρες γραφείου (επίλυση αποριών) Τρίτη κ Τετάρτη 12:00-13:00
Σχέδιο Μαθήματος Εβδομάδα Περιγραφή Κεφάλαια 1 Εισαγωγή (1) 1-4 Ψηφιακή Λογική 3, A, B 5-8 Μικροαρχιτεκτονική 4 10-12 Αρχιτεκτονική Συνόλου Εντολών 5 13 Παραλληλισμός 8
Επίπεδα Αφαίρεσης, Εικονικές Μηχανές Μια πολυεπίπεδη μηχανή
Σύγχρονες Πολυεπίπεδες Μηχανές (1) Εφαρμογές Πρόγραμμα γλώσσας υψηλού επιπέδου Συστήματα Προγραμματισμού Λειτουργικά Συστήματα Αρχιτεκτονική - Οργάνωση Ψηφιακή Σχεδίαση Πρόγραμμα γλώσσας assembly Σενάριο ή πρόγραμμα με κλήση συστήματος Πρόγραμμα σε γλώσσα μηχανής (ή συμβολική) Μικροπρόγραμμα ή γλώσσα μεταφοράς καταχωρητών Γλώσσα περιγραφής υλικού ή σχέδιο CAD Υπολογιστής έξι επιπέδων. Η μέθοδος υποστήριξης και η γλώσσα υλοποίησης σημειώνεται κάτω (δίπλα) από κάθε επίπεδο.
Σύγχρονες Πολυεπίπεδες Μηχανές (2) Πρόγραμμα Γλώσσας Υψηλού Επιπέδου Λογισμικό Πρόγραμμα Γλώσσας Μηχανής Σύνορο Υλικού/Λογισμικού Υλικό Λογικά Διαγράμματα Εφαρμογή Λειτουργικό Σύστημα Μεταγλωττιστής Assembler, Linker Firmware Επεξ. Συν. Εντολ. Ψηφιακή Σχεδίαση Σύστημα I/O Έλεγχος και Διαδρομή Δεδομένων Σχεδίαση Κυκλωμάτων Απεικόνιση Πρόγραμμα Γλώσσας Assembly Αρχιτεκτονική Συνόλου Εντολών Μικροπρόγραμμα Γλώσσα Μεταφοράς Καταχωρητή Διαγράμματα Κυκλωμάτων Γλώσσα Περιγραφής Υλικού
Σύγχρονες Πολυεπίπεδες Μηχανές (3) ISA Πρόγραμμα Γλώσσας Υψηλού Επιπέδου Μεταγλώττιση, Πρόγραμμα Γλώσσας Assembly Πρόγραμμα Γλώσσας Μηχανής Συμβολομετάφραση, Σύνδεση, Φόρτωση 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) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Διερμηνεία, Υλοποίηση (Εκτέλεση) ALUOP[0:3] <= InstReg[9:11] & MASK Καθορισμός Σημάτων Ελέγχου Register Transfer Language (RTL)
cslab@ntua 2007-2008 Αντικείμενα Αρχιτεκτονικής (1) Τουλάχιστο τρία κύρια αντικείμενα: Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture, ISA), είναι η λογική αφαίρεση ενός υπολογιστικού συστήματος στο επίπεδο της Γλώσσας Μηχανής (ή της Γλώσσας Assembly χωρίς τις κλήσεις του Λειτουργικού Συστήματος). Είναι το προγραμματιστικό μοντέλο (η εικονική μηχανή) που αντιλαμβάνεται ο προγραμματιστής που προγραμματίζει σε αυτό (το χαμηλότερο δυνατό) επίπεδο. Περιλαμβάνει το σύνολο (ρεπερτόριο) εντολών, τις μεθόδους διευθυνσιοδότησης (προσπέλασης μνήμης), τη διαχείριση καταχωρητών, τη κωδικοποίηση διευθύνσεων και δεδομένων, το μηχανισμό κλήσης ρουτινών, τη διαχείριση εισόδου/εξόδου, τη διαχείριση των καταστάσεων και σημάτων διακοπής του επεξεργαστή. Πρόκειται ουσιαστικά για το σύνορο μεταξύ περιγραφής ενός υπολογιστικού συστήματος από πλευράς υλικού ή λογισμικού. 13
Αντικείμενα Αρχιτεκτονικής (2) Μικροαρχιτεκτονική (Microarchitecture), είναι το αμέσως χαμηλότερο επίπεδο, πιο συγκεκριμένο και λεπτομερές από το επίπεδο Αρχιτεκτονικής Συνόλου Εντολών. Εξετάζει δηλαδή πώς εκτελούνται οι εντολές. Περιλαμβάνει τη λεπτομερή περιγραφή του τρόπου σύνδεσης, λειτουργίας και χρονισμού των συστατικών μερών (του υλικού), κυρίως στο δίπολο Επεξεργαστής - Μνήμη έτσι ώστε αυτά να υλοποιούν (εκτελούν στη κυριολεξία) το σύνολο των εντολών. Δηλαδή τη πλήρη περιγραφή του κύκλου Ανάκλησης Εκτέλεσης όλων των εντολών που υποστηρίζει ο υπολογιστής. Επίσης περιλαμβάνονται και θέματα Παραλληλισμού Επιπέδου Εντολής (Instruction Level Parallelism, ILP), δηλαδή αρχιτεκτονικές βελτιώσεις με στόχο την αύξηση της απόδοσης του επεξεργαστή. cslab@ntua 2007-2008 14
Αντικείμενα Αρχιτεκτονικής (3) Σχεδίαση Συστήματος (System Design) που περιλαμβάνει τη διασύνδεση και λειτουργία των βασικών συστατικών στοιχείων (υλικού) του υπολογιστή, κυρίως εκτός του επεξεργαστή, στο μέτρο που αυτά επηρεάζουν την απόδοση του επεξεργαστή, όπως: 1. Ιεραρχίες μνήμης (κρυφή μνήμη, εικονική μνήμη) 2. Δίαυλοι, Ρολόγια, Διακόπτες, Ελεγκτές κλπ. 3. Συστήματα συν-επεξεργασίας (GPUs, DMAs, NICs) 4. Παραλληλισμός σε επίπεδο Επεξεργαστών. cslab@ntua 2007-2008 15
Προσεγγίσεις Αρχιτεκτονικής 1. Top Down Σύνολο Εντολών > Μικροαρχιτεκτονική > Σχεδιασμός > Υλικό Υπερισχύουν οι απαιτήσεις 2. Bottom Up Υλικό > Σχεδιασμός > Μικροαρχιτεκτονική > Σύνολο Εντολών Υπερισχύουν οι περιορισμοί Επιπλέον * Διαλεκτική Διαδικασία (Hardware/Software Co-design) * Εξελικτική Διαδικασία (Backward Compatibility) * Λογική Ισοδυναμία Υλικού - Λογισμικού cslab@ntua 2007-2008 16
Αρχιτεκτονική, Οργάνωση και Σύστημα Όροι που πολλές φορές εναλλάσσονται (αλληλεπίδραση). Αρχιτεκτονική = Λογική Αφαίρεση, Μοντέλο, Οπτική, Σχέδιο με έμφαση στη χρήση, λειτουργία και σχεδίαση Αρχιτεκτονική Λογισμικού, Επιχειρησιακή Αρχιτεκτονική κλπ Οργάνωση = Δομή, Σύνθεση Συστατικών Μερών, Υλοποίηση του Σχεδίου με έμφαση στο υλικό μέρος και στις τεχνικές λεπτομέρειες cslab@ntua 2007-2008 Σύστημα = Δομημένη, Ιεραρχική αντιμετώπιση της μορφής Είσοδος Κατάσταση (Επεξεργασία) Έξοδος, όπου η Κατάσταση μπορεί να αναλυθεί παραπέρα.. 17