Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 3: Χειρισμός δεδομένων, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης
Μαθησιακοί Στόχοι Η Ενότητα 3 διαπραγματεύεται θέματα που αφορούν το υλικό του υπολογιστή και τον χειρισμό δεδομένων. ΚΜΕ. Δομή. Καταχωρητές. Κύρια και ειδικές μνήμες. Διευθύνσεις μνήμης. Μονάδες εισόδου, εξόδου, αποθήκευσης. Περιφερειακές μνήμες. Αρχιτεκτονική υπολογιστών.
Λέξεις Κλειδιά Εκτέλεση προγραμμάτων Γλώσσα Μηχανής Αρχιτεκτονικές CISC RISC Παράλληλη επεξεργασία Πολυπύρηνη ΚΜΕ Υπερβαθμωτές αρχιτεκτονικές Γραμμή διοχέτευσης 5 σταδίων
Εκτέλεση προγραμμάτων Έννοια αποθηκευμένου προγράμματος Ένα πρόγραμμα μπορεί να κωδικοποιηθεί σαν ένα σχήμα bit και να αποθηκευτεί στην κύρια μνήμη. Από εκεί η ΚΜΕ μπορεί να εξάγει τις εντολές και να τις εκτελέσει. Το πρόγραμμα που πρόκειται να εκτελεστεί μπορεί να αλλάξει εύκολα. Ο έλεγχος επιτυγχάνεται μέσω δύο ειδικού σκοπού καταχωρητών Μετρητής Προγράμματος: Δείχνει την επόμενη εντολή Καταχωρητής εντολών: Δείχνει την τρέχουσα εντολή Βήματα απλού κύκλου μηχανής Ανάκληση (Fetch) Αποκωδικοποίηση (Decode) Εκτέλεση (Execute)
Μία Απλή Αρχιτεκτονική
Εντολές- Γλώσσα Μηχανής Εντολές Μηχανής: Μία εντολή κωδικοποιείται σαν ένα σχήμα bit pattern που αναγνωρίζεται από την CPU. Τύποι εντολών μηχανής Εντολές μεταφοράς δεδομένων: Αντιγραφή δεδομένων από μία θέση σε μία άλλη. Αριθμητικές/Λογικές εντολές: Χρησιμοποίηση υπαρχόντων σχημάτων bit για τον υπολογισμό κάποιου νέου σχήματος bit. Εντολές ελέγχου: Κατευθύνει την εκτέλεση του προγράμματος. Γλώσσα Μηχανής: Το σύνολο όλων των εντολών που αναγνωρίζονται από μία μηχανή.
Εντολές - Γλώσσα Μηχανής: Αποκωδικοποίηση εντολής 1/2 Κωδικός Λειτουργίας: Καθορίζει τον τελεστή που θα εφαρμοστεί. Τελεστής: Δίνει λεπτομερείς πληροφορίες σχετικά με τη λειτουργία του τελεστή, η οποία εξαρτάται από τον κωδικό λειτουργίας του. Παράδειγμα: Η σύνθεση μιας τυπικής εντολής σχήματος 16 bit.
Εντολές - Γλώσσα Μηχανής: Αποκωδικοποίηση εντολής 2/2
Εντολές - Γλώσσα Μηχανής: Κωδικοποιημένη έκδοση εντολών 1/2 Κωδικοποιημένες εντολές Ερμηνεία 1 5 6C Φόρτωσε στον καταχωρητή 5 το σχήμα bit που βρίσκεται στο κελί μνήμης με διεύθυνση 6C. 1 6 6D Φόρτωσε στον καταχωρητή 6 το σχήμα bit που βρίσκεται στο κελί μνήμης με διεύθυνση 6D. 5 0 5 6 Πρόσθεσε τα περιεχόμενα των καταχωρητών 5 και 6 με δεδομένο ότι βρίσκονται σε μορφή συμπληρώματος ως προς 2 και αποθήκευσε τα αποτελέσματα στον καταχωρητή 0. 3 0 6E Αποθήκευσε τα περιεχόμενα του καταχωρητή 0 στο κελί μνήμης με διεύθυνση 6E. C000 Τέλος.
Εντολές - Γλώσσα Μηχανής: Κωδικοποιημένη έκδοση εντολών 2/2 Βήματα Βήμα 1 Βήμα 2 Βήμα 3 Βήμα 4 Βήμα 5 Ερμηνεία πρόσθεσης τιμών αποθηκευμένων στη μνήμη Πάρε από τη μνήμη μία από τις τιμές που πρόκειται να προστεθούν και τοποθέτησέ τη σε έναν καταχωρητή. Πάρε από τη μνήμη την άλλη τιμή και τοποθέτησέ τη σε έναν άλλον καταχωρητή. Ενεργοποίησε το κύκλωμα της πρόσθεσης με τους καταχωρητές που χρησιμοποιήθηκαν στα βήματα 1 και 2 ως εισόδους και ένα διαφορετικό καταχωρητή για την αποθήκευση του αποτελέσματος. Αποθήκευσε τα αποτελέσματα στη μνήμη. Τέλος.
Εκτέλεση προγραμμάτων Πρόγραμμα: είναι ένα σύνολο εντολών το οποίο επεξεργάζεται τα δεδομένα εισόδου. Όλες οι εντολές πρέπει να εκτελούνται απευθείας από το υλικό. Ο ρυθμός με τον οποίον υποβάλλονται οι εντολές (MIPS) πρέπει να είναι ο μέγιστος δυνατός. Η αποκωδικοποίηση των εντολών πρέπει να είναι εύκολη. Μόνο οι εντολές φόρτωσης (load, read, input) και αποθήκευσης (store) πρέπει να έχουν πρόσβαση στη κύρια μνήμη. Πρέπει να διατίθενται πολλοί καταχωρητές. Κύκλος μηχανής: είναι ένας αριθμός βημάτων που εκτελεί από την αρχή ως το τέλος η ΚΜΕ προκειμένου να διεκπεραιώσει μία εντολή ενός προγράμματος. Ανάλογα με τον αριθμό των εντολών που πρέπει να διεκπεραιώσει η ΚΜΕ ο κύκλος μηχανής είναι επαναλαμβανόμενος. Στην απλούστερη περίπτωση τα βήματα του κύκλου μηχανής είναι τρία (φόρτωση, αποκωδικοποίηση, εκτέλεση).
Εκτέλεση προγραμμάτων: Βήματα κύκλου 1/3
Εκτέλεση προγραμμάτων: Βήματα κύκλου 2/3 Βήματα απλού Κύκλου μηχανής: Ανάκληση: 1. Η ΜΕ ζητάει από το σύστημα να αντιγράψει την επόμενη εντολή στον καταχωρητή εντολών της ΚΜΕ 2. Η διεύθυνση της εντολής που θα αντιγραφεί φυλάσσεται στο μετρητή 3. Ο μετρητής προγράμματος αυξάνεται κατά ένα, ώστε να αναφέρεται στην επόμενη εντολή. Αποκωδικοποίηση: 4. Η εντολή αντιγράφεται στον καταχωρητή εντολών και αποκωδικοποιείται από τη ΜΕ. Εκτέλεση: 5. Η ΜΕ δίνει εντολή εκτέλεσης της εργασίας από την ΚΜΕ. Για παράδειγμα: Η ΜΕ ζητάει να φορτωθεί ένα δεδομένο από τη μνήμη. Η ΚΜΕ δίνει εντολή στην ΑΜΛ να προσθέσει τα περιεχόμενα δύο καταχωρητών εισόδου και να τοποθετήσει το αποτέλεσμα σε έναν καταχωρητή εξόδου.
Εκτέλεση προγραμμάτων: Βήματα κύκλου 3/3 Ανακαλείται η επόμενη εντολή από την κύρια μνήμη στον καταχωρητή εντολών. Αυξάνεται ο μετρητής προγράμματος κατά ένα έτσι ώστε να δείχνει στην επόμενη εντολή. Προσδιορίζεται ο τύπος της εντολής που ανακλήθηκε. Αν η εντολή χρησιμοποιεί μία λέξη από τη μνήμη, προσδιορίζεται θέση της. Ανακαλείται η θέση μνήμης σε έναν καταχωρητή της ΚΜΕ, αν χρειάζεται. Εκτελείται η εντολή. Επιστροφή στο βήμα 1 για να αρχίσει η εκτέλεση της επόμενης εντολής.
Εκτέλεση Προγραμμάτων: Περιεχόμενα μνήμης και καταχωρητών πριν την εκτέλεση
Εκτέλεση Προγραμμάτων: Περιεχόμενα μνήμης και καταχωρητών μετά από κάθε κύκλο 1/2 α. Μετά την εκτέλεση της πρώτης εντολής β. Μετά την εκτέλεση της δεύτερης εντολής
Εκτέλεση Προγραμμάτων: Περιεχόμενα μνήμης και καταχωρητών μετά από κάθε κύκλο 2/2 γ. Μετά την εκτέλεση της τρίτης εντολής δ. Μετά την εκτέλεση της τέταρτης εντολής
Εκτέλεση προγραμμάτων: Παράδειγμα_1 1/4 Διεύθυνση Κελιά 00 00,00 invalid " " Α0 15, 6C load R5, 6C ; ($6C = 108) A2 16, 6D load R6, 6D ; ($6D =109) A4 50, 56 addi R5, R6, R0 ; A6 30, 6E store R0, [6E] ; A8: C0, 00 halt ; AA " " 00, 00 invalid Ισοδύναμο πρόγραμμα σε C {int x, y, z; x = 108; y = 109; z = x+y; } Simulation: SimpSim
Εκτέλεση προγραμμάτων: Παράδειγμα_1 2/4
Εκτέλεση προγραμμάτων: Παράδειγμα_1 3/4 Α. Στην αρχή του βήματος ανάκλησης, προσκομίζεται από τη μνήμη η εντολή που αρχίζει στη διεύθυνση Α0 και τοποθετείται στον καταχωρητή εντολών.
Εκτέλεση προγραμμάτων: Παράδειγμα_1 4/4 Β. Κατόπιν ο μετρητής προγράμματος αυξάνεται έτσι ώστε να δείχνει στην επόμενη εντολή.
Εκτέλεση προγραμμάτων: Παράδειγμα_2 00: 00,00 invalid " " 10: 20, 5C load R0, 5C ; ($5C=92) 12: 30, 0E store R0, [0E] ; 14: 20, 5A load R0, 5A ; ($5A=90) 16: 30, 0F store R0, [0F] ; 18: 11, 0E load R1, [0E] ; 1A: 12, 0F load R2, [0F] ; 1C: 50, 12 addi R0, R1, R2 ; 1E: 30, 0D store R0, [0D] ; 20: C0, 00 halt ; 22: 00, 00 invalid " " Ισοδύναμο πρόγραμμα σε C {int x, y, z; x = 92; y = 90; z = x+y; } Simulation
Επικοινωνία με άλλες συσκευές Βελτίωση Απόδοσης Ποιο γρήγοροι επεξεργαστές με μεγαλύτερη ταχύτητα ρολογιού. Παραλληλία σε επίπεδο: Εντολών. Επεξεργαστών. o Επεξεργαστές πινάκων. o Διανυσματικοί επεξεργαστές. o Πολυεπεξεργαστές. Δημοφιλείς αρχιτεκτονικές. CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer)
Αρχιτεκτονικές 1/2 CISC Complex Instruction Set Computer) Μεγάλο σύνολο εντολών στο οποίο συμπεριλαμβάνονται και σύνθετες εντολές. Εύκολος προγραμματισμός. Απαιτείται μία εντολή για κάθε απλή ή σύνθετη εργασία. Σύνθετα κυκλώματα της ΚΜΕ και ΜΕ. Η μείωση της πολυπλοκότητας των σύνθετων εντολών o o o επιτυγχάνεται μέσω μικρο-προγραμματισμού: Η ΚΜΕ εκτελεί μόνο απλές εντολές (μικρο-εντολές Μία σύνθετη εντολή μετατρέπεται σε μικρο-εντολές οι οποίες εκτελούνται από την ΚΜΕ. Απαιτούνται μικρο-μνήμες για την αποθήκευση των μικροεντολών. Πρόσθετος φόρτος για το μικρο-προγραμματισμό και την προσπέλαση της μικρο-μνήμης. Παράδειγμα: Pentium Intel.
Αρχιτεκτονικές 2/2 RISC (Reduced Instruction Set Computer) Μικρό σύνολο εντολών οι οποίες πραγματοποιούν ένα ελάχιστο πλήθος απλών λειτουργιών. Οι σύνθετες εντολές προσομοιώνονται με τη χρήση ενός υποσυνόλου απλών εντολών. Δυσκολότερος και χρονοβόρος προγραμματισμός. Σύνθετα κυκλώματα της ΚΜΕ και ΜΕ. Παράδειγμα: Power PC Apple, IBM, Motorola και SPARK - Sun Microsystems.
Άλλες Αρχιτεκτονικές Άλλες Αρχιτεκτονικές αύξησης της διεκπεραιωτικής ικανότητας ενός υπολογιστή χωρίς να απαιτείται αύξηση της ταχύτητας εκτέλεσης Διοχέτευση (pipeline): Τεχνική αλληλοεπικάλυψης των βημάτων του κύκλου μηχανής. Πολύ-επεξεργαστικές μηχανές Παράλληλη επεξεργασία: Ταυτόχρονη χρησιμοποίηση πολλών επεξεργαστών. SISD: Μη παράλληλη επεξεργασία MIMD: Διαφορετικά προγράμματα, διαφορετικά δεδομένα. SIMD: Ίδιο πρόγραμμα, διαφορετικά δεδομένα. Πολυπύρηνη ΚΜΕ: Διπύρηνες (dual-core), πολυπύρηνες (multi-core) ΚΜΕ. Νευρωνικά δίκτυα
Άλλες Αρχιτεκτονικές: Γραμμή διοχέτευσης πέντε (5) σταδίων
Άλλες Αρχιτεκτονικές: Υπερβαθμωτές αρχιτεκτονικές 1/2 S1 S2 S3 S4 S5 Μονάδα Ανάκλησης Εντολών Μονάδα Αποκωδ. Εντολών εντολών Μονάδα Αποκωδ. Εντολών εντολών Μονάδα Ανάκλησης Τελεστών Μονάδα Ανάκλησης Τελεστών Μονάδα Εκτέλεσης Εντολών Μονάδα Εκτέλεσης Εντολών Μονάδα Εγγραφής Αποτελέσμ. Μονάδα Εγγραφής Αποτελέσμ. Δύο γραμμές διοχέτευσης
Άλλες Αρχιτεκτονικές: Υπερβαθμωτές αρχιτεκτονικές 2/2 S4 ALU S1 Μονάδα Ανάκλησης Εντολών S2 Μονάδα Αποκωδ. εντολών S3 Μονάδα Ανάκλησης Τελεστών ALU LOAD S5 Μονάδα Εγγραφής Αποτελέσματος Υπερβαθμωτός επεξεργαστής με πέντε (5) μονάδες STORE Μονάδα Κινητής Υποδιαστολής
Βιβλιογραφία Α. Σιδερίδης, Εισαγωγή στην Επιστήμη των Υπολογιστών, Αθήνα. J. Glenn Brookshearr, Η επιστήμη των Υπολογιστών - Μια Ολοκληρωμένη Παρουσίαση, Κλειδάριθμος. L. Goldschlager, A. M. Lister, Εισαγωγή στη Σύγχρονη Επιστήμη των Υπολογιστών, Δίαυλος Behrouz Forouzan, Firouz Mosharraf, Εισαγωγή στην Επιστήμη των Υπολογιστών - 2η Αγγλική Έκδοση - Επιμέλεια: Γιώργος Στεφανίδης, Αλέξανδρος Χατζηγεωργίου. Κλειδάριθμος.
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδεια χρήσης, η άδεια χρήσης αναφέρεται ρητώς.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Γεωπονικού Πανεπιστημίου Αθηνών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Σημείωμα Αναφοράς Copyright Γεωπονικό Πανεπιστήμιο Αθηνών. Τμήμα Αγροτικής Οικονομίας και Ανάπτυξης, Θεόδωρος Τσιλιγκιρίδης, «Εισαγωγή στην Επιστήμη των Υπολογιστών». Έκδοση: 1.0. Αθήνα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://oceclass.aua.gr/courses/ocdaerd111/
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων, π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Η άδεια αυτή ανήκει στις άδειες που ακολουθούν τις προδιαγραφές του Oρισμού Ανοικτής Γνώσης [2], είναι ανοικτό πολιτιστικό έργο [3] και για το λόγο αυτό αποτελεί ανοικτό περιεχόμενο [4]. [1] http://creativecommons.org/licenses/by-sa/4.0/ [2] http://opendefinition.org/okd/ellinika/ [3] http://freedomdefined.org/definition/el [4] http://opendefinition.org/buttons/
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.