Κεφάλαιο 3 | Ενότητα 4 | Επόμενο | Προηγούμενο | Λεξικό όρων


Μικροπρογραμματιζόμενη μονάδα ελέγχου του MIPS

Για να υλοποιήσουμε τη μικροπρογραμματιζόμενη μονάδα ελέγχου του υπολογιστή MIPS, σχεδιάζουμε ένα μικροπρόγραμμα το οποίο υλοποιεί τις εντολές του MIPS. Το μικροπρόγραμμα αυτό είναι μία συμβολική αναπαράσταση της μονάδας ελέγχου και μεταφράζεται από ένα άλλο πρόγραμμα από τη μονάδα ελέγχου.

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

Όνομα πεδίου Λειτουργία πεδίου
Μονάδα ελέγχου της ALU Καθορίζει τη λειτουργία της ALU κατά τη διάρκεια του κύκλου ρολογιού.
SRC1 Καθορίζει τον πρώτο πηγαίο τελεστέο της ALU.
SRC2 Καθορίζει το δεύτερο πηγαίο τελεστέο της ALU.
Έξοδος της ALU Καθορίζει τον καταχωρητή στον οποίο πρόκειται να εγγραφεί το αποτέλεσμα από την ALU.
Μνήμη Καθορίζει την εγγραφή ή την ανάγνωση και τη διεύθυνση της μνήμης.
Καταχωρητής μνήμης Καθορίζει τον καταχωρητή προορισμού (για ανάγνωση στη μνήμη) ή τη διεύθυνση των τιμών (για εγγραφή στη μνήμη).
PCWrite control Καθορίζει την εγγραφή στο απαριθμητή προγράμματος (PC).
Sequencing Καθορίζει την επόμενη εντολή που πρόκειται να εκτελεστεί.

Σχήμα 3.4.12 - Τα 8 πεδία της μικροεντολής. Τα επτά πρώτα πεδία ελέγχουν τη δίοδο δεδομένων, ενώ το τελευταίο πεδίο (Sequencing), καθορίζει τον τρόπο με τον οποίο επιλέγεται η επόμενη εντολή που πρόκειται να εκτελεστεί.

Οι μικροεντολές συνήθως τοποθετούνται σε ROM ή PLA, οπότε μπορούμε να βρούμε τη διεύθυνση των μικροεντολών. Συνήθως, η διεύθυνση της επόμενης εντολής είναι αυτή που ακολουθεί στη σειρά, με τον ίδιο ακριβώς τρόπο που γίνεται η επιλογή του αριθμού της επόμενης κατάστασης στις μηχανές πεπερασμένων καταστάσεων. Υπάρχουν τρεις μέθοδοι για την επιλογή της επόμενης εντολής που πρόκειται να εκτελεστεί:

  Αύξηση της διεύθυνσης της εκτελούμενης εντολής, έτσι ώστε να καθοριστεί η διεύθυνση της επόμενης εντολής. Αυτό καθορίζεται στο μικροπρόγραμμα επιλέγοντας την τιμή Seq στο πεδίο Sequencing.

  Διακλάδωση της μικροεντολής έτσι ώστε να εκτελεστεί η επόμενη εντολή του υπολογιστή MIPS. Η αρχική μικροεντολή (η οποία βρίσκεται στην κατάσταση 0), είναι εντολή Ανάκλησης και γίνεται επιλογή της τιμής Ανάκληση στο πεδίο Sequencing έτσι ώστε να καθοριστεί η λειτουργία της ανάκλησης.

  Η επιλογή της επόμενης μικροεντολής βασίζεται στην είσοδο της μονάδας ελέγχου. Η διαδικασία σύμφωνα με την οποία η επιλογή της επόμενης εντολής βασίζεται στην είσοδο μίας μονάδας ονομάζεται αποστολή. Οι λειτουργίες της αποστολής υλοποιούνται με τη δημιουργία ενός πίνακα ο οποίος περιέχει τις διευθύνσεις των εντολών που πρόκειται να εκτελεστούν. Η είσοδος της μονάδας ελέγχου λειτουργεί ως ευρετήριο για τον πίνακα αυτό, ο οποίος μπορεί να υλοποιηθεί σε ROM ή PLA. Για την υλοποίηση ενός σύνθετου πίνακα αποστολής, χρειάζονται δύο πίνακες αποστολής, ένας για την αποστολή από την κατάσταση 1 και ένα για την αποστολή από την κατάσταση 2. Η επόμενη μικροεντολή καθορίζεται από μία λειτουργία αποστολής τοποθετώντας την τιμή Dispatch i στο επίπεδο Sequencing.

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

Όνομα πεδίου Τιμή πεδίου Λειτουργία του πεδίου
Μονάδα ελέγχου της ALU Add Γίνεται πρόσθεση στην ALU.
Func code Χρησιμοποιεί τον κωδικό λειτουργίας της εντολής για να καθορίσει τη μονάδα ελέγχου της ALU.
Subt Γίνεται αφαίρεση στην ALU.
SRC1 PC Η πρώτη είσοδος της ALU είναι ο PC.
rs Η πρώτη είσοδος της ALU είναι ο καταχωρητής rs.
SRC2 4 Η δεύτερη είσοδος της ALU είναι το 4.
Extend Η δεύτερη είσοδος της ALU είναι η έξοδος της μονάδας επέκτασης προσήμου.
Extshft Η δεύτερη είσοδος της ALU είναι η έξοδος της μονάδας ολίσθησης κατά 2.
rt Η δεύτερη είσοδος της ALU είναι ο καταχωρητής rt.
Έξοδος της ALU Target Γίνεται εγγραφή της εξόδου της ALU στον καταχωρητή Στόχο.
rd Γίνεται εγγραφή της εξόδου της ALU στον καταχωρητή rd.
Μνήμη Ανάγνωση του PC Η διεύθυνση για την ανάγνωση της μνήμης είναι το περιεχόμενο του PC.
Ανάγνωση της ALU Η διεύθυνση για την ανάγνωση της μνήμης είναι η έξοδος της ALU.
Εγγραφή της ALU Η διεύθυνση για την εγγραφή της μνήμης είναι η έξοδος της μνήμης.
Καταχωρητής μνήμης IR Γίνεται εγγραφή των δεδομένων από τη μνήμη, στον καταχωρητή εντολών.
Εγγραφή rt Γίνεται εγγραφή των δεδομένων από τη μνήμη, στον καταχωρητή rt.
Ανάγνωση rt Τα δεδομένα για την εγγραφή της μνήμης, προέρχονται από τον καταχωρητή rt.
PCWrite control ALU Γίνεται εγγραφή της εξόδου της ALU στον PC.
Target - cond Αν η έξοδος Zero της ALU είναι ενεργοποιημένη, τότε γίνεται εγγραφή των περιεχομένων του καταχωρητή Στόχος, στον PC.
Διεύθυνση μεταπήδησης Γίνεται εγγραφή της διεύθυνσης μεταπήδησης της εντολής, στον PC.
Sequencing Seq Η επόμενη μικροεντολή είναι αυτή που ακολουθεί διαδοχικά.
Fetch Πήγαινε στην πρώτη μικροεντολή, έτσι ώστε να ξεκινήσει η επόμενη εντολή.
Dispatch i Η αποστολή χρησιμοποιεί τη ROM, η οποία καθορίζεται από το i (1 ή 2).

Σχήμα 3.4.13 - Οι τιμές που μπορούν να πάρουν τα πεδία μιας μικροεντολής και η λειτουργία των πεδίων, ανάλογα με την τιμή που έχουν.