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

Η δίοδος δεδομένων και η μονάδα ελέγχου ενός κύκλου

Στην υποενότητα αυτή θα αναφερθούμε στην υλοποίηση της διόδου δεδομένων και της μονάδας ελέγχου του υπολογιστή MIPS, όταν η εκτέλεση των εντολών γίνεται σε έναν κύκλο ρολογιού. Αρχικά θα συνδέσουμε όλα τα τμήματα της διόδου δεδομένων, μαζί με τα κατάλληλα σήματα ελέγχου, έτσι ώστε να περιλαμβάνονται όλες οι εντολές. Στη συνέχεια θα κατασκευάσουμε το κύκλωμα που αποτελεί τη μονάδα ελέγχου της ALU, από λογικές πύλες και θα ολοκληρώσουμε την κατασκευή της διόδου δεδομένων του ενός κύκλου, προσθέτοντας τις αρτηρίες, κάποια επιπλέον κυκλώματα, καθώς και τα απαιτούμενα σήματα ελέγχου. Τέλος, θα αναφερθούμε στα μειονεκτήματα αυτού του τρόπου υλοποίησης και τις αιτίες που τα προκαλούν.



Πως υλοποιείται η δίοδος δεδομένων ενός κύκλου του υπολογιστή MIPS

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

Θα κατασκευάσουμε τη δίοδο δεδομένων από τα τμήματα που έχουμε κατασκευάσει στα σχήματα 3.2.5, 3.2.8, 3.2.10 και 3.2.11. Αυτή η απλή δίοδος δεδομένων θα πρέπει να εκτελεί όλες τις εντολές σε έναν κύκλο ρολογιού. Αυτό σημαίνει πως κανένα τμήμα της διόδου δεδομένων δεν θα μπορεί να χρησιμοποιηθεί περισσότερο από μία φορά για κάθε εντολή. Στην περίπτωση που κάποιο κύκλωμα χρειάζεται παραπάνω από μία φορά θα πρέπει να υπάρχει δύο φορές μέσα στη δίοδο δεδομένων. Επιπλέον η μνήμη εντολών πρέπει να είναι διαχωρισμένη από τη μνήμη δεδομένων. Επειδή κάποιες από τις μονάδες πρέπει να υπάρχουν δύο φορές στη δίοδο δεδομένων, όταν συνδέσουμε τα κομμάτια που έχουμε ήδη κατασκευάσει, οι διαφορετικές εντολές θα μπορούν να μοιράζονται από κοινού κάποιο από τα κυκλώματα.

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 9

Μπορείτε να εξηγήσετε τον τρόπο με τον οποίο δύο διαφορετικές εντολές μπορούν να μοιραστούν από κοινού κάποιο κύκλωμα;

ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 9


Παράδειγμα
Η δίοδος δεδομένων των εντολών τύπου R του σχήματος 3.2.8 και η δίοδος δεδομένων των εντολών φόρτωσης και αποθήκευσης του σχήματος 3.2.10 είναι πανομοιότυπες. Οι βασικές διαφορές τους είναι οι εξής:

  1. Η δεύτερη είσοδος της ALU είναι είτε ένας καταχωρητής (στις εντολές τύπου R), είτε η επέκταση προσήμου του offset το οποίο βρίσκεται στο λιγότερο σημαντικό τμήμα της εντολής (στις εντολές φόρτωσης και αποθήκευσης).
  2. Η τιμή που γράφεται στον καταχωρητή αποτελέσματος (Result register) προέρχεται από την ALU (στις εντολές τύπου R) ή από τη μνήμη (στην περίπτωση μιας εντολής φόρτωσης).
Να δείξετε πως μπορούν να ενωθούν αυτές οι δύο δίοδοι δεδομένων χρησιμοποιώντας πολυπλέκτες, χωρίς να χρειαστεί να χρησιμοποιήσετε δύο φορές τα κυκλώματα που είναι κοινά στα σχήματα 3.2.8 και 3.2.10. Αγνοήστε την είσοδο ελέγχου στους πολυπλέκτες.

Απάντηση
Για να συνδυάσουμε τις διόδους δεδομένων και να χρησιμοποιήσουμε μόνο ένα αρχείο καταχωρητών και μόνο μία ALU, πρέπει να υποστηρίζουμε δύο διαφορετικές εισόδους για την δεύτερη είσοδο της ALU καθώς και δύο διαφορετικές εισόδους για το αρχείο καταχωρητών. Έτσι τοποθετούμε έναν πολυπλέκτη στην είσοδο της ALU και άλλον ένα στην είσοδο δεδομένων του αρχείου καταχωρητών. Το σχήμα 3.2.12 απεικονίζει την δίοδο δεδομένων που προκύπτει από τον συνδυασμό των δύο διόδων.

Σχήμα 3.2.12 - Ο συνδυασμός των διόδων δεδομένων των εντολών φόρτωσης και αποθήκευσης και των εντολών τύπου R. Αυτό το παράδειγμα δείχνει τον τρόπο με τον οποίο ενώνουμε σε μία μόνο δίοδο δεδομένων τα τμήματα που είχαμε δημιουργήσει.


Το τμήμα της διόδου δεδομένων που χρησιμοποιείται για την ανάκληση των εντολών και την αύξηση του απαριθμητή προγράμματος του σχήματος 3.2.5, μπορεί εύκολα να προστεθεί στη δίοδο δεδομένων του σχήματος 3.2.12. Το αποτέλεσμα φαίνεται στο σχήμα 3.2.13. Η συνενωμένη δίοδος δεδομένων περιλαμβάνει τη μνήμη εντολών και μία ξεχωριστή μνήμη δεδομένων. Επιπλέον η δίοδος δεδομένων χρειάζεται έναν αθροιστή και μία ALU, αφού ο αθροιστής χρησιμοποιείται στην αύξηση του απαριθμητή προγράμματος, ενώ η ALU χρησιμοποιείται για την εκτέλεση της εντολής στον ίδιο κύκλο ρολογιού.


Σχήμα 3.2.13 - Το τμήμα της διόδου δεδομένων που χρησιμοποιείται για την ανάκληση των εντολών και την αύξηση του απαριθμητή προγράμματος του σχήματος 3.2.5 έχει προστεθεί στη δίοδο δεδομένων του σχήματος 3.2.12 (η οποία μπορεί να διαχειριστεί τις εντολές φόρτωσης και αποθήκευσης, καθώς και τις αριθμητικές και λογικές εντολές). Το τμήμα που έχει προστεθεί είναι τονισμένο στο σχήμα με πιο έντονες γραμμές. Το αποτέλεσμα είναι μία δίοδος δεδομένων η οποία υποστηρίζει πολλές λειτουργίες του συνόλου εντολών του MIPS. Τα βασικά τμήματα της διόδου που λείπουν είναι αυτά για τις εντολές διακλάδωσης με συνθήκη και τις εντολές μεταπήδησης.


Τώρα μπορούμε να συνδέσουμε όλα αυτά τα τμήματα για να κατασκευάσουμε μία μόνο δίοδο δεδομένων (για την αρχιτεκτονική του υπολογιστή MIPS), προσθέτοντας την δίοδο δεδομένων για τις εντολές διακλάδωσης του σχήματος 3.2.11. Το σχήμα 3.2.14 δείχνει την δίοδο δεδομένων που παίρνουμε εάν συνδέσουμε τα σχήματα 3.2.11 και 3.2.13. Οι εντολές διακλάδωσης χωρίς συνθήκη χρησιμοποιούν την κεντρική ALU για τη σύγκριση των τελεστέων του καταχωρητή, επομένως πρέπει να κρατήσουμε τον αθροιστή του σχήματος 3.2.11 για τον υπολογισμό της διεύθυνσης του στόχου διακλάδωσης. Επίσης χρειάζεται ένας ακόμα πολυπλέκτης για να επιλέξει τη διεύθυνση της επόμενης εντολής ανάμεσα στην τιμή: απαριθμητής προγράμματος+4 και την επόμενη διεύθυνση του στόχου διακλάδωσης. Επειδή στον απαριθμητή προγράμματος θα γίνει εγγραφή με μία από αυτές τις δύο τιμές σε κάθε κύκλο του ρολογιού, δεν χρειαζόμαστε σήμα ελέγχου εγγραφής.


ΔΡΑΣΤΗΡΙΟΤΗΤΑ 10

Να σχεδιάσετε την ολοκληρωμένη δίοδο δεδομένων του υπολογιστή MIPS, έτσι ώστε να μπορεί να εκτελέσει τα βασικά είδη εντολών (φόρτωση ή αποθήκευση δεδομένων, τις αριθμητικές και λογικές εντολές, και τις εντολές διακλάδωσης) σε έναν κύκλο ρολογιού. Να συγκρίνετε το σχήμα που σχεδιάσατε με το σχήμα που ακολουθεί (σχήμα 3.2.14).


Σχήμα 3.2.14 - Η δίοδος δεδομένων για την αρχιτεκτονική του υπολογιστή MIPS συνδυάζει όλα τα κυκλώματα που απαιτούνται για τους διαφορετικούς τύπους εντολών. Η δίοδος δεδομένων μπορεί να εκτελέσει τις βασικές εντολές (φόρτωση ή αποθήκευση δεδομένων, τις αριθμητικές και λογικές εντολές, και τις εντολές διακλάδωσης με συνθήκη), σε ένα μόνο κύκλο ρολογιού. Οι προσθήκες που έγιναν στο σχήμα 3.2.13 για να μπορεί η δίοδος να εκτελεί και εντολές διακλάδωσης, είναι σημειωμένες με πιο έντονες γραμμές.


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