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

Τρόποι διευθυνσιοδότησης του υπολογιστή MIPS

Στον υπολογιστή MIPS υπάρχουν οι παρακάτω τρόποι διευθυνσιοδότησης:

Τρόπος διευθυνσιοδότησης Υπολογισμός διεύθυνσης
Απευθείας Ο τελεστέος είναι μία σταθερά με γνωστή διεύθυνση.
Καταχωρητή Ο τελεστέος είναι το περιεχόμενο ενός καταχωρητή.
Έμμεσος καταχωρητή με μετατόπιση Ο τελεστέος βρίσκεται στη διεύθυνση μνήμης, η οποία προκύπτει από το άθροισμα του περιεχομένου του καταχωρητή και μίας σταθεράς.

Στην πραγματικότητα ο υπολογιστής MIPS χρησιμοποιεί μόνο ένα τρόπο διευθυνσιοδότησης μνήμης, τον c(rx), όπου η διεύθυνση μνήμης υπονοείται και χρησιμοποιείται το άθροισμα του απ' ευθείας δεδομένου c και τον καταχωρητή rx σαν διεύθυνση.

Παράδειγμα

Έστω ότι θέλουμε να προσθέσουμε τη σταθερά 4 στον καταχωρητή $29, η οποία βρίσκεται στη διεύθυνση AddrConstant4. Για να γίνει αυτό στον υπολογιστή MIPS θα πρέπει να εκτελεστεί η παρακάτω ακολουθία εντολών:

lw $24, AddrConstant4($0)
add $29, $29, $24


Με την πρώτη εντολή η οποία είναι μια εντολή φόρτωσης, αρχικά φορτώνεται η σταθερά 4 στον καταχωρητή $24. Στη συνέχεια, με την εντολή add προστίθεται το περιεχόμενο του καταχωρητή $24 (η σταθερά 4) με το περιεχόμενο του καταχωρητή $29 και το αποτέλεσμα αποθηκεύεται στον καταχωρητή $29 Παρατηρούμε ότι χρειάζονται δύο εντολές για να εκτελεστεί αυτή η πράξη.
Προκειμένου να αποφύγουμε τις εντολές επικοινωνίας με τη μνήμη (φόρτωση ή αποθήκευση), μπορεί να χρησιμοποιηθεί ο απευθείας τρόπος διευθυνσιοδότησης. Επομένως, για την εντολή add του παραδείγματος χρησιμοποιείται ένας τελεστέος ο οποίος είναι σταθερά και ονομάζεται addi (add immediate). Για να προσθέσουμε λοιπόν τη σταθερά 4 στον καταχωρητή $29 έχουμε:

addi $29, $29, 4

Επομένως με τη χρήση του απευθείας τρόπου διευθυνσιοδότησης, το περιεχόμενο του καταχωρητή $29 προστίθεται με τη σταθερά 4 και το αποτέλεσμα αποθηκεύεται στον καταχωρητή $29, χωρίς να μεσολαβήσει επικοινωνία με τη μνήμη.

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

* Να προσδιορίσετε ποιος τρόπος διευθυνσιοδότησης χρησιμοποιείται στην παρακάτω εντολή πρόσθεσης του υπολογιστή MIPS:

add $1, $2, $3
* Ποιες είναι οι αντίστοιχες εντολές που εκτελούν την ίδια λειτουργία, στους υπολογιστές DLX και VAX; (Θεωρήστε ότι οι πηγαίοι τελεστέοι έχουν μέγεθος 4 bytes και η μετατόπιση είναι μεγέθους 2 bytes.)

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


Παράδειγμα

Έστω η παρακάτω εντολή φόρτωσης δεδομένων από τη μνήμη: lw $1, 100($2)
Η εντολή αυτή χρησιμοποιεί τον τρόπο διευθυνσιοδότησης: έμμεσος καταχωρητή με αυτοαύξηση. Η εκτέλεση της εντολής αυτής μεταφέρει δεδομένα από μία θέση μνήμης σε έναν καταχωρητή. Η διεύθυνση της μνήμης που υπάρχουν τα δεδομένα υπολογίζεται από το άθροισμα της τιμής 100 και το πριεχόμενο του καταχωρητή $2. Το αποτέλεσμα αποθηκεύεται στον καταχωρητή $1.