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

Δίοδος δεδομένων για τις εντολές φόρτωσης και αποθήκευσης

Ας θεωρήσουμε τις εντολές φόρτωσης και αποθήκευσης (load and store instructions), που έχουν τη μορφή:

lw $1, offset_value($2) ή sw $1, offset_value($2).

Οι εντολές αυτές υπολογίζουν τη διεύθυνση της μνήμης δεδομένων προσθέτοντας το περιεχόμενο του βασικού καταχωρητή ($2) στο πεδίο offset που βρίσκεται μέσα στην εντολή και έχει μέγεθος 16 bits. Στις εντολές αποθήκευσης, η τιμή που πρέπει να αποθηκευτεί διαβάζεται από το αρχείο καταχωρητών ($1). Στις εντολές φόρτωσης, η τιμή που διαβάζεται από τη μνήμη πρέπει να γραφεί στο αρχείο καταχωρητών και συγκεκριμένα στον καταχωρητή ($1). Επομένως χρειαζόμαστε το αρχείο καταχωρητών και την ALU όπως και στις εντολές τύπου R, όπως φαίνεται στο σχήμα 3.2.7. Επιπλέον χρειαζόμαστε μία μονάδα για την επέκταση προσήμου του πεδίου offset της εντολής από 16 bits σε 32 bits, και μία μονάδα μνήμης δεδομένων για να γίνει ανάγνωση ή εγγραφή σε αυτή. Η μνήμη δεδομένων έχει σήματα ελέγχου εγγραφής και ανάγνωσης, όπως επίσης έχει είσοδο για εγγραφή των δεδομένων στη μνήμη. Αυτά τα δύο κυκλώματα φαίνονται στο σχήμα 3.2.9.

Σχήμα 3.2.9 - Οι δύο μονάδες που χρειάζονται για την εκτέλεση των εντολών φόρτωσης και αποθήκευσης είναι η μονάδα μνήμης δεδομένων και η μονάδα επέκτασης προσήμου: Εκτός από αυτές τις μονάδες χρειάζεται το αρχείο καταχωρητών και η ALU του σχήματος 3.2.7. Η μονάδα μνήμης δεδομένων είναι ένα στοιχείο μνήμης με εισόδους: Read/Write Address και Write data, και μία μόνο έξοδο για το Read data. Υπάρχουν διαφορετικά σήματα ελέγχου για την εγγραφή και την ανάγνωση, παρ΄ όλο που μόνο ένα από αυτά είναι ενεργό σε κάθε κύκλο ρολογιού. Η μονάδα για την επέκταση του προσήμου έχει είσοδο των 16 bits, και μετά από επέκταση του προσήμου της εισόδου δίνει αποτέλεσμα των 32 bits που παρουσιάζεται στην έξοδο.


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

Σχήμα 3.2.10 - Η δίοδος δεδομένων για τις εντολές φόρτωσης ή αποθήκευσης. Τα πεδία της εντολής δίνουν τον αριθμό του καταχωρητή που θα γίνει ανάγνωση ή εγγραφή. Μετά γίνεται προσπέλαση του αρχείου καταχωρητών και η έξοδος Read data 1 γίνεται η πρώτη είσοδος της ALU. Η δεύτερη είσοδος της ALU είναι η τιμή του offset μετά από επέκταση προσήμου. Ακολουθεί ο υπολογισμός της διεύθυνσης της μνήμης δεδομένων, από την ALU. Στη συνέχεια γίνεται ανάγνωση ή εγγραφή στη μνήμη δεδομένων και μία εγγραφή στο αρχείο καταχωρητών αν έχουμε εντολή φόρτωσης.


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

Ποια είναι τα επιπλέον κυκλώματα που χρειάζονται για την εκτέλεση των εντολών φόρτωσης και αποθήκευσης; Να συγκρίνετε την απάντησή σας με το σχήμα 3.2.10.