Πίσω


4. Βήμα πρόσβασης στη μνήμη ή ολοκλήρωσης των εντολών τύπου R

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

Αναφορά στη μνήμη:

memory-data = Memory [ALUoutput] ;

or

Memory [ALUoutput] = B ;

Λειτουργία:Για τις εντολές φόρτωσης κατά τη διάρκεια αυτού του βήματος, στέλνεται από την ΚΜΕ προς τη μνήμη η διεύθυνση (μέσω της αρτηρίας διευθύνσεων που συνδέει την ΚΜΕ με τη μνήμη), και η μνήμη τοποθετεί τα δεδομένα που περιέχονται σ' αυτή τη διεύθυνση (memory-data) στην αρτηρία δεδομένων. Επιπλέον για τις εντολές αποθήκευσης, η τιμή που θα αποθηκευτεί μέσω της αρτηρία δεδομένων στη μνήμη, περιέχεται στον καταχωρητή Β. (Ο καταχωρητής Β έχει πάρει τιμή στον δεύτερο κύκλο ρολογιού.) Στις δύο αυτές περιπτώσεις, η διεύθυνση που χρησιμοποιείται είναι αυτή που υπολογίστηκε στο προηγούμενο βήμα και βρίσκεται στην έξοδο της ALU (ALUoutput). Η ενεργοποίηση των σημάτων ελέγχου της ALU πρέπει να παραμείνει σταθερή κατά την διάρκεια αυτού του κύκλου ρολογιού. Το σήμα MemRead (για μία εντολή φόρτωσης), ή το σήμα MemWrite (για μία εντολή αποθήκευσης), πρέπει να είναι ενεργό. Επιπλέον το σήμα IorD πρέπει να είναι 1, έτσι ώστε η διεύθυνση της μνήμης να προέρχεται από την ALU και όχι από τον απαριθμητή προγράμματος.


Αριθμητικές και λογικές εντολές (τύπου R):

Reg[IR[15-11]] = ALUoutput ;

Λειτουργία:Το αποτέλεσμα της λειτουργίας της ALU τοποθετείται στον καταχωρητή προορισμού. Το σήμα RegDst πρέπει να είναι 1 έτσι ώστε το πεδίο rd (που είναι τα bits 15-11), να επιλέξει τον καταχωρητή στον οποίο θα γίνει εγγραφή. Το σήμα RegWrite πρέπει να είναι ενεργό και το σήμα MemtoReg πρέπει να είναι 0 ώστε να εγγραφεί η έξοδος της ALU. Τα σήματα ALUSrcA, ALUSrcB και ALUOp παραμένουν όπως στον προηγούμενο κύκλο ρολογιού.