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

Δίοδος δεδομένων για τις εντολές τύπου R

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

Οι εντολές τύπου R είναι οι: add, sub, and, or, slt.

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

  1. Θυμάστε τον τρόπο με τον οποίο συντάσσονται και εκτελούνται οι εντολές στον υπολογιστή DLX; Να γράψετε την εντολή για την πρόσθεση των καταχωρητών και να περιγράψετε τη λειτουργία της. Για περισσότερες λεπτομέρειες θα ήταν καλό να ανατρέξετε στις σημειώσεις της "Αρχιτεκτονικής Υπολογιστών" και συγκεκριμένα στο δεύτερο κεφάλαιο: "Αρχιτεκτονικές Συνόλου Εντολών", 4η ενότητα : Η αρχιτεκτονική του DLX.
  2. Να χρησιμοποιήσετε το λογισμικό προσομοίωσης της εκτέλεσης των εντολών τύπου R του DLX, το οποίο παρατίθεται στην ιστοσελίδα: http://hermes.di.uoa.gr/DLXSim/r_type/R.html

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


Παράδειγμα
Να εξηγήσετε το αποτέλεσμα της εντολής : add $1, $2, $3 στον υπολογιστή MIPS.

Απάντηση
Η εντολή αυτή διαβάζει τα περιεχόμενα των καταχωρητών 2 και 3, εκτελεί την πρόσθεση και γράφει το αποτέλεσμα στον καταχωρητή 1.

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

a

b

Σχήμα 3.2.6 - Οι καταχωρητές που περιέχονται στο αρχείο καταχωρητών αποτελούνται από D flip-flops: Στο σχήμα a φαίνονται τα κυκλώματα που επιτρέπουν ανάγνωση, και στο σχήμα b αυτά που επιτρέπουν εγγραφή. Τα κυκλώματα a και b περιέχονται στο αρχείο καταχωρητών του σχήματος 3.2.7.


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

Να εξηγήσετε σε 10 γραμμές τη λειτουργία του αρχείου καταχωρητών. Από ποια κυκλώματα αποτελείται το αρχείο καταχωρητών και πώς αυτά συνδέονται μεταξύ τους; Να συγκρίνετε την απάντησή σας με την παράγραφο που μόλις διαβάσατε.


Επειδή οι εντολές τύπου R έχουν 3 τελεστέους, θα χρειαστεί να διαβάσουμε 2 τελεστέους και να γράψουμε 1 τελεστέο στο αρχείο καταχωρητών, για κάθε εντολή. Για κάθε τελεστέο που διαβάζεται από το αρχείο καταχωρητών, χρειαζόμαστε μια είσοδο στο αρχείο καταχωρητών που καθορίζει τον αριθμό του καταχωρητή στον οποίο πρόκειται να γίνει ανάγνωση, και μία έξοδο από το αρχείο καταχωρητών που θα μεταφέρει την τιμή που διαβάστηκε. Για την εγγραφή ενός τελεστέου θα χρειαστούν 2 είσοδοι: μία για να καθορίσει τον αριθμό του καταχωρητή που θα γίνει η εγγραφή, και μία για να δώσει τα δεδομένα προς εγγραφή στον καταχωρητή. Επομένως, συνολικά χρειαζόμαστε τέσσερις εισόδους (τρεις για τους αριθμούς των καταχωρητών και έναν για τα δεδομένα), και δύο εξόδους (και οι δύο για τα δεδομένα), όπως φαίνεται στο σχήμα 3.2.7. Στο αρχείο καταχωρητών στην έξοδο Read data1 εμφανίζεται το περιεχόμενο οποιουδήποτε καταχωρητή είναι είσοδος στο Read register 1. Αντίστοιχα και για την έξοδο Read data 2 και την είσοδο Read register 2. Οι εγγραφές ωστόσο, ελέγχονται από το σήμα ελέγχου εγγραφής. Οι είσοδοι Register numbers που προσδιορίζουν τον αριθμό του καταχωρητή, έχουν μέγεθος 5 bits, δεδομένου ότι υπάρχουν 32 καταχωρητές (32=25), και η είσοδος των δεδομένων και οι δύο έξοδοι των δεδομένων έχει η κάθε μία μέγεθος 32 bits.
Για την εκτέλεση των λειτουργιών τύπου R χρειάζεται η ALU. Η ALU έχει δύο εισόδους των 32 bits και το αποτέλεσμα που παράγει είναι επίσης 32 bits. Στην ALU, η οποία φαίνεται στο σχήμα 3.2.7, γίνεται έλεγχος από ένα σήμα 3 bits (με 8 διαφορετικές τιμές, 23=8), ώστε η ALU να μπορεί να εκτελέσει το πολύ 8 διαφορετικές λειτουργίες.

Σχήμα 3.2.7 - Τα κυκλώματα που χρειάζονται για την εκτέλεση των λειτουργιών της ALU στις εντολές τύπου R, είναι το αρχείο καταχωρητών και η ALU: Το αρχείο καταχωρητών περιέχει όλους τους καταχωρητές και παρέχει δύο θύρες για ανάγνωση και μία θύρα για εγγραφή. Tο αρχείο καταχωρητών δίνει στην έξοδο τα περιεχόμενα των καταχωρητών που αντιστοιχούν στις εισόδους Read register. Οι εγγραφές ελέγχονται από το σήμα ελέγχου εγγραφής. Οι είσοδοι που μεταφέρουν τον αριθμό του καταχωρητή στο αρχείο καταχωρητών έχουν μέγεθος 5 bits, ενώ οι γραμμές που μεταφέρουν τις τιμές των δεδομένων έχουν μέγεθος 32 bits. Το σήμα ελέγχου της ALU είναι 3 bits. Η έξοδος Zero της ALU χρησιμοποιείται για τις εντολές διακλάδωσης.

Η δίοδος για τις εντολές τύπου R, που χρησιμοποιούν το αρχείο καταχωρητών και την ALU (του σχήματος 3.2.7), φαίνεται στο σχήμα 3.2.8. Αφού οι αριθμοί των καταχωρητών προέρχονται από πεδία της εντολής, στο σχήμα απεικονίζεται η εντολή που προέρχεται από το σχήμα 3.2.5.

Σχήμα 3.2.8 - Η δίοδος δεδομένων για τις εντολές τύπου R: Η ALU παρέχει όλες τις βασικές λειτουργίες που απαιτούνται για τις εντολές τύπου R (όπως προσδιορίζεται από την είσοδο ελέγχου των 3 bits). Το αρχείο καταχωρητών στέλνει (από τις εξόδους Read data 1 και Read data 2) στην ALU τα δεδομένα που διάβασε από τους καταχωρητές. Η ALU εκτελεί την λειτουργία που προσδιορίζεται από την εντολή τύπου R και στέλνει το αποτέλεσμα στο αρχείο καταχωρητών (στην είσοδο Write data). Το αποτέλεσμα αυτό γράφεται στον καταχωρητή προορισμού.

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

Να υπολογίσετε πόσες είσοδοι χρειάζονται, ώστε να γίνει εγγραφή ή ανάγνωση στο αρχείο καταχωρητών όταν εκτελείται η εντολή add $1, $2, $3. Να αιτιολογήστε την απάντησή σας.

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