William Stallings Computer Organization and Architecture 7 th Edition Κεφάλαιο 16 Λειτουργία Μονάδας Ελέγχου
Μικρό-λειτουργίες Ο υπολογιστής υπάρχει για να εκτελεί προγράμματα/ εντολές προγραμμάτων Η εκτέλεση κάθε εντολής διαιρείτε σε κύκλους —Προσκόμιση, έμμεσος κύκλος, εκτέλεση, διακοπή Κάθε κύκλος μπορεί να διαιρεθεί σε επιπλέον μικρότερα στάδια οπού στο κάθε ένα εκτελείται μία συγκεκριμένη απλούστερη λειτουργία —βλέπε pipelining Οι λειτουργίες αυτές καλούνται μικρό-πράξεις —Το πρόθεμα μικρό σημαίνει ότι κάθε λειτουργία είναι απλή —Ατομικές πράξεις του επεξεργαστή
Στοιχεία εκτέλεσης προγράμματος – εντολές/κύκλοι εντολής/μικρό-λειτουργίες
Βασικοί Καταχωρητές της CPU Μετρητής προγράμματος (Program Counter –PC) —Περιέχει τη διεύθυνση της επόμενης εντολής Καταχωρητής εντολής (Instruction Register –IR) —Περιέχει την τελευταία εντολή που προσήχθη Καταχωρητής διεύθυνσης μνήμης (Memory Address Register –MAR) —Περιέχει τη διεύθυνση της θέσης μνήμης που θα γίνει προσπέλαση Δεδομένων μνήμης (Memory Buffer Register –MBR) —Περιέχει μία λέξη δεδομένων που διαβάστηκε (θα γραφεί) πρόσφατα από τη μνήμη
Ακολουθία γεγονότων κατά την προσκόμιση της εντολής Ξεκινά με τη διεύθυνση της εντολής να βρίσκεται στον PC 1.Η διεύθυνση που βρίσκεται στον PC μεταφέρεται στον MAR και από εκεί στο δίαυλο διευθύνσεων 2.Η μονάδα ελέγχου ζητάει ανάγνωση από τη μνήμη. Τα δεδομένα (ψηφία εντολής) εμφανίζονται στο δίαυλο δεδομένων και από εκεί αποθηκεύονται στο MBR 3.Τα ψηφία της εντολής μεταφέρονται από τον MBR στον IR —O ΜΒΡ είναι άδειος και μπορεί να χρησιμοποιηθεί 4.Ο PC αυξάνει για να δείχνει στη διεύθυνση της επόμενης εντολής
Ακολουθία γεγονότων κατά την προσκόμιση της εντολής (συμβολική αναπαράσταση) t1:MAR <- (PC)t1:MAR <- (PC) t2:MBR <- (memory) PC <- (PC) +Ι t3:IR <- (MBR) t3:PC <- (PC) +Ι Ι: μήκος εντολήςIR <- (MBR) Η αύξηση του PC είναι ανεξάρτητη από την προσπέλαση μνήμης ή την μεταφορά του MBR στον IR. Γίνεται σε κάποια από αυτές τις λειτουργίες για βελτίωση της απόδοσης –παραλληλία
Μικρό-πράξεις και κύκλοι ρολογιού Όλη η προηγούμενη συζήτηση υποθέτει ένα κεντρικό σήμα ελέγχου το ρολόι Κάθε παλμός ρολογιού ορίζει μία χρονική μονάδα -κύκλος ρολογιού Κάθε μικρό-πράξη εκτελείται στη διάρκεια ενός κύκλου ρολογιού Όλοι οι κύκλοι ρολογιού έχουν ίδια διάρκεια –σύγχρονος σχεδιασμός
Ομαδοποίηση μικρό-πράξεων σε κύκλους ρολογιού Πρέπει να ακολουθείται η σωστή ακολουθία μικρό- λειτουργιών —MAR <- (PC) πρέπει να προηγείται του MBR <- (memory) Πρέπει να αποφεύγονται συγκρούσεις —Δεν πρέπει να διαβάζουμε και να γράφουμε το ίδιο καταχωρητή ταυτόχρονα —MBR <- (memory) & IR <- (MBR) δεν πρέπει να συμβαίνουν στον ίδιο κύκλο Επίσης η αύξηση PC <- (PC) +Ι εμπλέκει την πράξη της πρόσθεσης —Χρήση της ALU —Μπορεί να χρειαστούν επιπλέον μικρό-πράξεις
Έμμεσος κύκλος Θεωρείστε ότι η εντολή περιέχει ένα πεδίο διεύθυνσης —Υποστηρίζει μόνο απευθείας ή έμμεση διευθυνσιοδότηση Αν χρειάζεται έμμεση διευθυνσιοδότηση τότε πριν από τον κύκλο εκτέλεσης πρέπει να υπάρχει ένας έμμεσος κύκλος MAR <- (IR address ) - το πεδίο διεύθυνσης του IR MBR <- (memory) IR address <- (MBR address ) Μετά τη 2 η μικρό-πράξη ο MBR περιέχει την ενεργό διεύθυνση Μετά την 3 η μικρό-πράξη ο IR είναι περιέχει την ενεργό διεύθυνση και είναι έτοιμος να προσκομίσει δεδομένα και να εκτελέσει την εντολή
Κύκλος διακοπής
t1:MBR <-(PC) t2:MAR <- save-address PC <- routine-address t3:memory <- (MBR) Οι παραπάνω μικρό-πράξεις είναι οι ελάχιστες. Επειδή οι περισσότεροι επεξεργαστές διαθέτουν πολλά είδη διακοπών —Μπορεί να χρειάζονται επιπλέον μικρό-πράξεις για τον καθορισμό της διεύθυνσης φύλαξης του και τον καθορισμό της διεύθυνσης της ρουτίνας εξυπηρέτησης —Σημειώστε ότι η αποθήκευση της κατάστασης του επεξεργαστή γίνεται από την ίδια τη ρουτίνα εξυπηρέτησης διακοπής και όχι με μικρό-λειτουργίες
Κύκλος εκτέλεσης (ADD) Οι μικρό-πράξεις του κύκλου εκτέλεσης εντολής είναι διαφορετικές για κάθε εντολή Π.χ. ADD R1,X – προσθέτει τα δεδομένα της θέσης με τα δεδομένα του R1 και επιστρέφει το αποτέλεσμα στον R1 t1:MAR <- (IR address ) t2:MBR <- (memory) t3:R1 <- R1 + (MBR)
Execute Cycle (ISZ) ISZ X – το περιεχόμενο της θέσης Χ αυξάνεται κατά 1 και αν το αποτέλεσμα είναι 0 αγνοείται η επόμενη εντολή t1:MAR <- (IR address ) t2:MBR <- (memory) t3:MBR <- (MBR) + 1 t4:memory <- (MBR) if (MBR) == 0 then PC <- (PC) + 1 Σημείωση — η συνθήκη if είναι μία μικρό-πράξη που γίνεται στον κύκλο ρολογιού t4
Execute Cycle (BSA) BSA X - Branch and save address —Η διεύθυνση της εντολής που ακολουθεί την εντολή BSA αποθηκεύεται στη θέση X —Η εκτέλεση συνεχίζει από την X+1 t1:MAR <- (IR address ) MBR <- (PC) t2:PC <- (IR address ) memory <- (MBR) t3:PC <- (PC) + 1
Κύκλος εντολής Κάθε στάδιο αποσυντίθεται σε μία σαφώς ορισμένη ακολουθία από μικρό-πράξεις —π.χ. fetch, indirect, and interrupt cycles Κύκλος εκτέλεσης —Μία ακολουθία από μικρό-λειτουργίες για κάθε opcode Υποθέστε ένα νέο καταχωρητή 2-bit —Instruction cycle code (ICC) καθορίζει την κατάσταση του επεξεργαστή σε συνάρτηση με τον στάδιο εκτέλεσης της εντολής 00: Fetch 01: Indirect 10: Execute 11: Interrupt
Διάγραμμα Κύκλου Εντολής
Λειτουργικές απαιτήσεις της μονάδας ελέγχου Αποσυνθέσαμε τη λειτουργία του επεξεργαστή σε ένα σύνολο από μικρό-πράξεις —Αν αποσυνθέσουμε στην χαμηλότερη θεμελιώδη στάθμη τότε μπορούμε να καθορίσουμε την λειτουργία της μονάδα ελέγχου —Η μονάδα ελέγχου καθορίζει τι πρέπει να συμβεί Ενέργειες —Καθορισμός των βασικών μονάδων του επεξεργαστή —Περιγραφή των μικρό-πράξεων που εκτελεί ο επεξεργαστής —Καθορισμός των λειτουργιών που πρέπει να εκτελεί η μονάδα ελέγχου για να προκαλέσει την εκτέλεση των μικρό-πράξεων
Βασικές μονάδες του επεξεργαστή ALU Καταχωρητές Εσωτερικοί δίαυλοι Εξωτερικοί δίαυλοι Μονάδα ελέγχου
Είδη μικρό-πράξεων Μεταφορά δεδομένων μεταξύ καταχωρητών Μεταφορά δεδομένων έξω από τη CPU Μεταφορά δεδομένων/εντολών προς τη CPU
Λειτουργίες της μονάδας ελέγχου Δημιουργία ακολουθίας μικρό-πράξεων (Sequencing) —Αναγκάζει τη CPU να βαδίζει σε μία σειρά μικρό-πράξεων με βάση την εντολή/πρόγραμμα που εκτελείται Εκτέλεση —Προκαλεί την εκτέλεση της κάθε μικρό-πράξης Τα παραπάνω υλοποιούνται με σήματα ελέγχου τα οποία: —εμφανίζονται με τη σωστή σειρά —οδηγούνται στις κατάλληλές μονάδες του επεξεργαστή
Σήματα είσοδοι στη μονάδα ελέγχου Ρολόι (Clock) —Καθορίζει τη χρονική διάρκεια της κάθε μικρό-πράξης —Μία μικρό-πράξη (ή ένα σύνολο ανεξαρτήτων) ανά κύκλο ρολογιού Από τον καταχωρητή εντολών (IR) —Παροχή op-code για την τρέχουσα εντολή —Παροχή πεδίων διευθύνσεων δεδομένων πηγής και προορισμού Σημαίες (Flags) —Κατάσταση της CPU —Αποτελέσματα της προηγούμενης λειτουργίας Από το δίαυλο ελέγχου του συστήματος —Interrupts —Acknowledgements
Model of Control Unit
Σήματα εξόδου της μονάδας ελέγχου Εντός της CPU —Προκαλούν τη μεταφορά δεδομένων μεταξύ καταχωρητών —Ενεργοποιούν συγκεκριμένες λειτουργίες Μέσω του διαύλου ελέγχου —Προς τη μνήμη (π.χ. R/W’) —Προς τις μονάδες I/O
Παράδειγμα ακολουθίας σημάτων ελέγχου - Προσκόμιση MAR <- (PC) —Η μονάδα ελέγχου ενεργοποιεί τη μεταφορά των δεδομένων του PC στον MAR MBR <- (memory) —Μεταφορά του MAR στο address bus —Ανάγνωση μνήμης —Μεταφορά δεδομένων μέσω του data bus στον MBR
Κυκλώματα χειρισμού δεδομένων και σήματα ελέγχου
Intel 8085 CPU – Δομικό Διάγραμμα
Intel 8085 OUT Instruction Timing Diagram
Κυκλωματική υλοποίηση της μονάδας ελέγχου (1) Σήματα εισόδου τη μονάδας ελέγχου Σημαίες Καταχωρητής εντολών (IR) —Το opcode προκαλεί τη δημιουργία διαφορετικών σημάτων ελέγχου για κάθε εντολή —Ο αποκωδικοποιητής λαμβάνει μια κωδικοποιημένη είσοδο και παράγει μία έξοδο —n binary είσοδοι and 2 n έξοδοι
Κυκλωματική υλοποίηση της μονάδας ελέγχου(2) Ρολόι —Επαναλαμβανόμενη ακολουθία παλμών —Χρήσιμο για τη μέτρηση της διάρκειας των μικρό-πράξεων —Η περίοδος πρέπει να είναι αρκετά μεγάλη ώστε να επιτρέπει τον υπολογισμό και μετάδοση των σημάτων μεταξύ δύο παλμών
Control Unit with Decoded Inputs
Προβλήματα κυκλωματικής υλοποίησης μονάδας ελέγχου Πολύπλοκη λογική Δυσκολία στο σχεδιασμό και τον έλεγχο σωστής λειτουργίας Δύσκολα προστίθενται νέες εντολές