Αστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια Ανενεργά
 

 

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

 3.2.1 Εισαγωγή

 

Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα – βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει όλες τις λειτουργίες, είναι η κεντρική μονάδα επεξεργασίας (ΚΜΕ).

 

Η ΚΜΕ είναι ένα πολύπλοκο λογικό κύκλωμα, σχεδιασμένο να διαβάζει εντολές από τη μνήμη και να τις εκτελεί.

 

Σήμερα οι περισσότερες ΚΜΕ κατασκευάζονται στη μορφή ενός ολοκληρωμένου κυκλώματος. Στο ολοκληρωμένο κύκλωμα, που περιέχει την ΚΜΕ, ενσωματώνονται συχνά και άλλα βοηθητικά κυκλώματα, για τα οποία θα μιλήσουμε σε παρακάτω κεφάλαια. Το ολοκληρωμένο αυτό κύκλωμα έχει επικρατήσει να το ονομάζουμε επεξεργαστή (processor) ή και μικροεπεξεργαστή (microprocessor).

 

Σχήμα 3.2.1 Ολοκληρωμένος μικροεπεξεργαστής 486 DX

 

Μόλις τροφοδοτήσουμε την ΚΜΕ με τάση, αυτή θα ξεκινήσει την εκτέλεση του προγράμματος από μια συγκεκριμένη διεύθυνση στη μνήμη, που θεωρείται η αρχή του προγράμματος. Η ΚΜΕ θα διαβάσει την πρώτη εντολή από την μνήμη και στη συνέχεια θα την εκτελέσει. Όμοια θα συνεχίσει με την δεύτερη εντολή, την τρίτη κ.ο.κ. Όπως έχουμε ήδη αναφέρει, η ανάγνωση μιας εντολής από την μνήμη αποτελεί την φάση ανάκλησης (fetch cycle) της εντολής. Την φάση αυτή ακολουθεί η φάση εκτέλεσης (execution cycle) της εντολής.

 

Καταλήγουμε λοιπόν ότι, όταν ένας υπολογιστής δουλεύει, η ΚΜΕ συνεχώς ανακαλεί εντολές από τη μνήμη και τις εκτελεί.

 

3.2.2 Καταχωρητές

 

Ας θυμηθούμε το παράδειγμα της απλής αριθμομηχανής (σχ. 3.1.4), που πρόσθετε οποιοδήποτε πλήκτρο πατάγαμε με το ήδη υπάρχον άθροισμα. Η ΚΜΕ λαμβάνει δεδομένα από το πληκτρολόγιο και εκτελεί συνεχώς την πράξη της πρόσθεσης του αριθμού που πατάμε με το ήδη υπάρχον άθροισμα.

 

Τι γίνονται τα δεδομένα που διαβάζει η κεντρική μονάδα επεξεργασίας; Πού αποθηκεύονται για να επεξεργαστούν; Πού αποθηκεύεται το αποτέλεσμα της πρόσθεσης;

 

Τα δεδομένα που διαβάζει από το πληκτρολόγιο, η ΚΜΕ τα αποθηκεύει στους καταχωρητές της (registers). Οι καταχωρητές είναι θέσεις μνήμης μέσα στην ΚΜΕ, που χρησιμοποιούνται για την προσωρινή αποθήκευση και την επεξεργασία των δεδομένων. Κάθε καταχωρητής έχει ένα συγκεκριμένο όνομα που τον χαρακτηρίζει.

 

Σχήμα 3.2.2: Οι καταχωρητές της ΚΜΕ

 

Στο σχήμα 3.2.2 βλέπουμε μια ΚΜΕ με τέσσερις καταχωρητές. Τα ονόματα των καταχωρητών αυτών είναι A, B, C και PC αντίστοιχα. Στο σχήμα βλέπουμε επίσης και το περιεχόμενο του κάθε καταχωρητή. Για παράδειγμα το περιεχόμενο του καταχωρητή Α είναι 1016=1610.

 

Κάθε φορά που θέλουμε να εκτελέσουμε κάποια αριθμητική ή λογική πράξη μεταξύ δύο αριθμών, θα πρέπει πρώτα να μεταφερθεί κάθε ένας από τους δύο αριθμούς σε ένα καταχωρητή της ΚΜΕ. Ο λόγος που πρέπει να γίνει η μεταφορά αυτή είναι ότι η ΚΜΕ μπορεί να κάνει αριθμητικές ή λογικές πράξεις μόνο μεταξύ των δεδομένων που περιέχουν οι καταχωρητές της. Τα δεδομένα που επεξεργάζεται η ΚΜΕ θα πρέπει να αποθηκεύονται μέσα σε κάποιο καταχωρητή της έστω και προσωρινά.

 

Οι καταχωρητές διακρίνονται σε καταχωρητές γενικού σκοπού (general purpose registers - GPR) και καταχωρητές ειδικού σκοπού (special purpose registers - SPR).

 

Οι καταχωρητές γενικού σκοπού χρησιμοποιούνται μόνο για την αποθήκευση και επεξεργασία των δεδομένων της ΚΜΕ.

 

Οι καταχωρητές ειδικού σκοπού, εκτός από αποθηκευτικοί χώροι, είναι συνυφασμένοι με μια λειτουργία της ΚΜΕ. Για παράδειγμα, ένας καταχωρητής ειδικού σκοπού είναι ο μετρητής προγράμματος, PC. Ο μετρητής προγράμματος φυλάει τη διεύθυνση της επόμενης εντολής του προγράμματος. Με βάση την τιμή του καταχωρητή γίνεται η ανάκληση μιας εντολής από τη μνήμη.

 

3.2.3 Αρχιτεκτονική της ΚΜΕ

 

H ΚΜΕ χωρίζεται, σε διαφορετικά τμήματα. Κάθε τμήμα είναι υπεύθυνο για μια σειρά λειτουργιών. Θα προσπαθήσουμε να δούμε τα διαφορετικά τμήματα της ΚΜΕ περιγράφοντας την εκτέλεση μιας εντολής.

 

Σχήμα 3.2.3: Η κατάσταση της ΚΜΕ

 

Στο παραπάνω σχήμα βλέπουμε ότι στους καταχωρητές Α και Β της ΚΜΕ έχουν αποθηκευτεί οι τιμές «2» και «10» αντίστοιχα. Η εντολή που ακολουθεί στο πρόγραμμα, είναι του πολλαπλασιασμού των καταχωρητών Α και Β και της αποθήκευσης του αποτελέσματος στη θέση μνήμης με διεύθυνση 1010. Την εντολή αυτή, την παριστάνουμε στο σχήμα ως (1010)¬Α·Β, όπου (1010) 

3.2.4 Μονάδα Διαδρόμου (Bus Unit)

 

Όπως κάθε εντολή, έτσι και η εντολή του πολλαπλασιασμού πρέπει πρώτα να ανακληθεί (fetch) από τη μνήμη. Η κεντρική μονάδα επεξεργασίας θα πρέπει να διαβάσει από τη μνήμη το περιεχόμενο της διεύθυνσης 350, όπου βρίσκεται η εντολή του πολλαπλασιασμού.

 

Για το λόγο αυτό, η ΚΜΕ πρέπει να διαθέτει μια μονάδα, για να επικοινωνεί με τη μνήμη μέσω του διαδρόμου. Η μονάδα αυτή εμφανίζει με μορφή κατάλληλων ηλεκτρικών σημάτων, την διεύθυνση 350, που είναι αποθηκευμένη η εντολή του πολλαπλασιασμού και στη συνέχεια διαβάζει από το διάδρομο το περιεχόμενο της διεύθυνσης αυτής.

 

Η μονάδα αυτή ονομάζεται μονάδα διαδρόμου. Η μονάδα διαδρόμου παράγει όλα τα απαραίτητα ηλεκτρικά σήματα ώστε η ΚΜΕ να επικοινωνεί μέσω του διαδρόμου, με τη μνήμη ή τις περιφερειακές μονάδες.

 

Σχήμα 3.2.4: Μονάδα Διαδρόμου

 

Όπως βλέπουμε στο σχήμα 3.2.4, για να διαβάζει η μονάδα του διαδρόμου την επόμενη εντολή του προγράμματος από τη μνήμη, θα πρέπει πρώτα να γνωρίζει τη διεύθυνση της εντολής αυτής. Η διεύθυνση, όπως έχουμε ήδη αναφέρει, βρίσκεται στον μετρητή προγράμματος PC. Αφού διαβάσει το περιεχόμενο του μετρητή προγράμματος, η μονάδα διαδρόμου εμφανίζει σε δυαδική παράσταση, με κατάλληλα σήματα, την διεύθυνση 350 πάνω στο διάδρομο. Η μνήμη απαντά με το περιεχόμενο της διεύθυνσης αυτής, που είναι η εντολή (1010)¬Α·Β.

 

Όπως κάθε δεδομένο σε έναν υπολογιστή έτσι και κάθε εντολή παριστάνεται από ένα κατάλληλο δυαδικό κώδικα. Έτσι κάθε εντολή αντιστοιχεί σε ένα δυαδικό αριθμό, τον οποίο ονομάζουμε κωδικό ή κώδικα της εντολής. Η εντολή που είναι αποθηκευμένη στη μνήμη και που τη διαβάζουμε στη φάση ανάκλησης είναι ο αριθμός αυτός. Για παράδειγμα, όταν είμαστε στην φάση ανάκλησης της εντολής του πολλαπλασιασμού από τη μνήμη, μεταφέρεται μέσω του διαδρόμου ο κώδικας της εντολής αυτής από τη διεύθυνση 350 στην ΚΜΕ.

 

Παράλληλα η ΚΜΕ αυξάνει την τιμή του μετρητή προγράμματος PC, ώστε αυτός να δείχνει την επόμενη προς εκτέλεση εντολή που βρίσκεται στη θέση 351.

 

3.2.5 Μονάδα αποκωδικοποίησης εντολών (Instruction unit)

 

Στη φάση της ανάκλησης ο κώδικας της εντολής οδηγείται από την μονάδα διαδρόμου στην μονάδα αποκωδικοποίησης εντολών.

 

Η μονάδα αυτή αναγνωρίζει ότι πρόκειται για εντολή πολλαπλασιασμού. Η εντολή (1010)¬

Σχήμα 3.2.5:Μονάδα Αποκωδικοποίησης Εντολών

 

Στο σχήμα βλέπουμε ότι η μονάδα αποκωδικοποίησης των εντολών χωρίζει την εντολή στις επιμέρους πληροφορίες που περιέχει η εντολή που ανακλήθηκε από τη μνήμη. Οι πληροφορίες αυτές είναι:

 

  1. 1.Ποια πράξη θα εκτελεστεί. Εδώ έχουμε την αριθμητική πράξη του πολλαπλασιασμού μεταξύ δύο καταχωρητών και της αποθήκευσης του αποτελέσματος σε κάποια διεύθυνση της μνήμης. ((Διευθ.)¬Κατ1·Κατ2)
  2. 2.Ποιοι καταχωρητές συμμετέχουν: Έδω έχουμε τους καταχωρητές Α, Β (Κατ1=Α, Κατ2=Β). Και τέλος
  3. 3.Πού θα πάει το αποτέλεσμα: Εδώ δίνεται η διεύθυνση της θέσης μνήμης όπου θα αποθηκευτεί το αποτέλεσμα. Η διεύθυνση είναι η 101016. (Διευθ.=1010)

 

Οι πληροφορίες αυτές περνούν, όπως θα δούμε στη συνέχεια στη μονάδα εκτέλεσης εντολών.

 

3.2.6 Μονάδα Εκτέλεσης (Execution Unit)

 

            Η μονάδα εκτέλεσης εντολών αποτελείται από τρεις υπομονάδες: τους καταχωρητές, την αριθμητική και λογική μονάδα και την μονάδα ελέγχου.

 

Σχήμα 3.2.6: Η Μονάδα Εκτέλεσης Εντολών

 

3.2.7 Αριθμητική και Λογική Μονάδα (Arithmetic and Logic Unit - ALU)

 

Η αριθμητική και λογική μονάδα είναι το σύνολο των κυκλωμάτων της ΚΜΕ που εκτελούν αριθμητικές και λογικές πράξεις μεταξύ των καταχωρητών της ΚΜΕ.

 

Ανάλογα με τον τύπο της KME, η αριθμητκή και λογική μονάδα (ALU) μπορεί να εκτελεί πράξεις πρόσθεσης, αφαίρεσης, πολλαπλασιασμού και διαίρεσης ακεραίων αριθμών καθώς και τις λογικές πράξεις Η (OR), ΚΑΙ (AND), ΟΧΙ (NOT).

 

Η ALU περιέχει ειδικές θέσεις μνήμης, στις οποίες κρατά πληροφορίες για το αποτέλεσμα των πράξεων που εκτελεί, όπως για παράδειγμα εάν το αποτέλεσμα της πράξης είναι μεγαλύτερο (θετικό) ή μικρότερο (αρνητικό) από το μηδέν. Οι θέσεις αυτές ονομάζονται σημαίες (flags). Κάθε φορά που εκτελείται μια αριθμητική ή λογική πράξη οι πληροφορίες για το αποτέλεσμα των πράξεων αποθηκεύονται στις αντίστοιχες σημαίες και τότε λέμε ότι οι σημαίες ενημερώθηκαν.

 

Έτσι για παράδειγμα έστω ότι η ΚΜΕ εκτελεί την αφαίρεση 248-254. Το αποτέλεσμα αυτής της πράξης είναι ο αριθμός –6 ο οποίος είναι μικρότερος του μηδενός. Η εκτέλεση αυτή της εντολής έχει ως αποτέλεσμα η σημαία του προσήμου να δείχνει ότι έχουμε αρνητικό αποτέλεσμα.

 

Σχήμα 3.2.7: Η ALU εκτελεί την αφαίρεση 248-254

 

3.2.8 Καταχωρητές (Registers)

 

Οι καταχωρητές είναι όλες οι αποθηκευτικές μονάδες της KME. Όπως φαίνεται στο σχήμα η KME μπορεί να κάνει αριθμητικές και λογικές πράξεις μεταξύ των καταχωρητών της, αφού αυτοί συνδέονται στην αριθμητική και λογική μονάδα. Με άλλα λόγια τα δεδομένα από τις μονάδες εισόδου ή τη μνήμη εισάγονται σε κάποιο καταχωρητή και μετά τα επεξεργάζεται η KME.

 

 

 

3.2.9 Μονάδα Ελέγχου (Control Unit)

 

            Ο έλεγχος της λειτουργίας της αριθμητικής και λογικής μονάδας γίνεται από την μονάδα ελέγχου. Η μονάδα ελέγχου παραλαμβάνει τις επιμέρους πληροφορίες της εντολής από τη μονάδα αποκωδικοποίησης και ακολουθεί μια σειρά βημάτων για την εκτέλεση της.

 

Για παράδειγμα στην περίπτωση του πολλαπλασιασμού των καταχωρητών Α και Β η μονάδα ελέγχου θα κάνει τα ακόλουθα βήματα:

 

Σχήμα 3.2.9: Η εκτέλεση της εντολής

 

  • Αρχικά η μονάδα ελέγχου θα επιλέξει τους δύο καταχωρητές, Α και Β, που σύμφωνα με την εντολή θα πρέπει να οδηγηθούν στην είσοδο της αριθμητικής και λογικής μονάδας.

 

Σχήμα 3.2.10: Η ολοκλήρωση της εκτέλεσης της εντολής

 

  • Θα ενεργοποιήσει την πράξη του πολλαπλασιασμού
  • Τέλος θα αποθηκεύσει το αποτέλεσμα σε κάποιο προσωρινό καταχωρητή. Στη συνέχεια θα το δώσει στη μονάδα διαδρόμου να το γράψει στη θέση μνήμης 1010.

 

Η μονάδα διαδρόμου γράφει το αποτέλεσμα στη μνήμη και έτσι ολοκληρώνεται η εκτέλεση της εντολής.

 

            Στη συνέχεια η ΚΜΕ προχωράει στην εκτέλεση της επόμενης εντολής με την ίδια πάλι διαδικασία (ανάκληση της εντολής από τη θέση 351 και εκτέλεση της).

 

3.2.10 Η ΚΜΕ 8085

 

Μία από τις πρώτες ΚΜΕ που κυκλοφόρησε στην αγορά και παρουσίασε σημαντική επιτυχία, ήταν η ΚΜΕ 8085 της Intel.

 

Στο σχήμα 3.2.11, βλέπουμε την εσωτερική αρχιτεκτονική της KME 8085.

 

            Η ΚΜΕ 8085 διαθέτει μια πολύ απλή μονάδα διαδρόμου, που αποτελείται από μερικά απλά ψηφιακά κυκλώματα (απομονωτές, latch). Ολόκληρο το κύκλωμα που είναι απαραίτητο για τη σωστή λειτουργία του διαδρόμου, είναι ενσωματωμένο στη μονάδα ελέγχου της ΚΜΕ. Ο διαχωρισμός, της μονάδας του διαδρόμου από τη μονάδα ελέγχου, καθιερώθηκε σε πιο σύγχρονους επεξεργαστές.

 

Η μονάδα αποκωδικοποίησης των εντολών της ΚΜΕ 8085, αποτελείται από τον καταχωρητή εντολών και την λογική αποκωδικοποίησης της εντολής.

 

Η ΚΜΕ 8085 διαθέτει 7 καταχωρητές γενικού σκοπού, (A,B,C,D,E,H,L) και αρκετούς καταχωρητές ειδικού σκοπού (PC, SP, προσωρινός καταχωρητής, καταχωρητής εντολών κ.ο.κ). Διαθέτει μια αριθμητική και λογική μονάδα και μια πολύπλοκη μονάδα ελέγχου.

 

Τελειώνοντας θα θέλαμε να τονίσουμε, ότι ο διαχωρισμός μιας ΚΜΕ σε επιμέρους μονάδες, δεν είναι μοναδικός. Παλιότερες ΚΜΕ δεν περιέχουν όλες τις μονάδες στις οποίες αναφερθήκαμε σε αυτό το μάθημα, ενώ οι σύγχρονες ΚΜΕ περιέχουν περισσότερες και πιο πολύπλοκες μονάδες.

 

Τι έμαθες:

 

  • Τι είναι οι καταχωρητές
  • Τι κάνει η Μονάδα του Διαδρόμου
  • Τι κάνει η Μονάδα Αποκωδικοποίησης των Εντολών
  • Από τι αποτελείται η Μονάδα Εκτέλεσης των Εντολών
  • Τι κάνει η Μονάδα Ελέγχου
  • Τι κάνουν οι καταχωρητές
  • Τι κάνει η Αριθμητική και Λογική Μονάδα

 

Ορολογία

 

  • Καταχωρητές (Registers)
  • Καταχωρητές Γενικού και Ειδικού σκοπού
  • Μονάδα του Διαδρόμου (Bus Unit)
  • Μονάδα Αποκωδικοποίησης των Εντολών (Instruction Decode Unit)
  • Ορίσματα της εντολής
  • Μονάδα Εκτέλεσης των Εντολών (Instruction Execution Unit)
  • Μονάδα Ελέγχου (Control Unit)
  • Αριθμητική και Λογική Μονάδα – ΑΛΜ (Arithmetic and Logical Unit – ALU)
  • Σημαίες (Flags)

 

Έλεγχος γνώσεων

 

  1. 1.Οι __________ είναι οι αποθηκευτικές μονάδες τις ΚΜΕ.
  2. 2.Ο μετρητής προγράμματος είναι ένας καταχωρητής _________ σκοπού.
  3. 3.Η ΚΜΕ επικοινωνεί με τη μνήμη και τις περιφερειακές μονάδες μέσω του διαδρόμου. Η μονάδα υπεύθυνη της ΚΜΕ για αυτή την επικοινωνία ονομάζεται _________ _________.
  4. 4.Κάθε εντολή, αφού διαβαστεί από τη μνήμη, στη φάση ________ της εντολής, οδηγείται στη μονάδα _________ των εντολών.
  5. 5.Η μονάδα αποκωδικοποίησης της εντολής, χωρίζει τα διάφορα ________ της εντολής και τα δίνει στη μονάδα _________ των εντολών.
  6. 6.Η μονάδα εκτέλεσης των εντολών αποτελείται από τους ________, τη _________ και ________ μονάδα και τη μονάδα _______.
  7. 7.Οι __________ και _______ πράξεις γίνονται στην Αριθμητική και Λογική Μονάδα. Μετά από κάθε τέτοια πράξη οι _______ ενημερώνονται και μας δίνουν πληροφορίες για το αποτέλεσμα της πράξης.

 

Ταιριάξτε τις λέξεις της δεξιάς στήλης με τις λέξεις της αριστερής στήλης:

 

Αριθμητική και Λογική Μονάδα

Επικοινωνία με το διάδρομο

Μονάδα Ελέγχου

Καταχωρητές

Μονάδα Διαδρόμου

Μονάδα Εκτέλεσης

Εκτέλεση των Εντολών

Πράξεις

Αποθηκευτικές μονάδες

Βήματα εκτέλεσης της εντολής

Προσθήκη νέου σχολίου


Κωδικός ασφαλείας
Ανανέωση