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


 


Πώς ερμηνεύονται οι διευθύνσεις μνήμης στον DLX

Οι διευθύνσεις μνήμης στον DLX έχουν μέγεθος 32 bits.
Η διευθυνσιοδότηση της μνήμης γίνεται κατά byte και ακολουθεί το μοντέλο Big Endian.
H επικοινωνία με τη μνήμη γίνεται μέσω των εντολών φόρτωσης και αποθήκευσης.
Όλες οι προσβάσεις στη μνήμη πρέπει να ευθυγραμμίζονται.

     Πρόσβαση στη μνήμη υπάρχει μόνο σε εντολές φόρτωσης - αποθήκευσης. Τα δεδομένα που προσπελάζονται με τις εντολές αυτές είναι μεγέθους:

    Το μέγεθος των δεδομένων που προσπελάζονται βρίσκεται κωδικοποιημένο στον κωδικό λειτουργίας της εντολής (opcode).

Εξηγήστε τις παρακάτω εντολές φόρτωσης του DLX:
          A. LB R1, 50(R2)
          B. LH R1, 50(R2)
                Έστω ότι στον καταχωρητή R2 είναι καταχωρημένη η τιμή 50.

  A.
       Με την εντολή αυτή φορτώνεται στον καταχωρητή R1 το περιεχόμενο της θέσης μνήμης η διεύθυνση της οποίας υπολογίζεται προσθέτοντας στην τιμή 50 την τιμή του καταχωρητή R2 (50). Έτσι η διεύθυνση μνήμης που βρίσκεται το δεδομένο είναι η 100.
       Παρατηρούμε ότι το μέγεθος του δεδομένου που θα διαβαστεί από τη μνήμη είναι 1 byte (λόγω του γράμματος B στην εντολή L_).

                               1 byte
100     Δεδομένο μεγέθους 1 byte

 Β.
      Με την εντολή αυτή φορτώνεται στον καταχωρητή R1 το περιεχόμενο της θέσης μνήμης η διεύθυνση της οποίας υπολογίζεται προσθέτοντας στην τιμή 50 την τιμή του καταχωρητή R2 (50). Έτσι η διεύθυυνση μνήμης που βρίσκεται το δεδομένο είναι η 100.
      Παρατηρούμε ότι το μέγεθος του δεδομένου που θα διαβαστεί από τη μνήμη είναι 2 bytes (λόγω του γράμματος H στην εντολή L_). Έτσι το δεδομένο βρίσκεται σε δύο διαδοχικά  bytes της μνήμης, στα  bytes με διευθύνσεις 100 και 101. Στο παρακάτω σχήμα μπορούμε να δούμε πώς το δεδομένο είναι αποθηκευμένο στη μνήμη.

                            1 byte
100   1o byte δεδομένου
101   2o  byte δεδομένου

         Από τη στιγμή που ανακτηθούν τα bytes του δεδομένου από τη μνήμη θα πρέπει τα bytes αυτά να τοποθετηθούν στη σωστή θέση ώστε να ανακτηθεί όλο το δεδομένο μεγέθους μισής λέξης (half-word). Λόγω του ότι η διευθυνσιοδότηση της μνήμης ακολουθεί το μοντέλο Big Endian το byte που βρισκόταν στη θέση μνήμης με διεύθυνση 100 θα τοποθετηθεί στη σημαντικότερη θέση του δεδομένου, ενώ το byte που βρισκόταν στη θέση μνήμης  με διεύθυνση 101 θα τοποθετηθεί στη λιγότερο σημαντική θέση του δεδομένου. Στο παρακάτω σχήμα μπορούμε να δούμε ποια μορφή θα έχει το ανακτημένο δεδομένο μεγέθους 2 bytes (προσέξτε την αντιστοιχία χρωμάτων).

                    1 byte                                    1 byte
 Σημαντικότερο byte   Λιγότερο σημαντικό byte

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

α) Να περιγράψετε την εκτέλεση της παρακάτω εντολής του υπολογιστή DLX. Ποιο θα είναι το αποτέλεσμα αν το περιεχόμενο του καταχωρητή R4 είναι 100;

LW R2, 150(R4)
β) Με ποιο τρόπο αποθηκεύονται τα δεδομένα στη μνήμη ανάλογα με το μέγεθός τους;
γ) Να εκτελέσετε την παραπάνω εντολή χρησιμοποιώντας το λογισμικό που βρίσκεται στην ιστοσελίδα:
http://hermes.di.uoa.gr/DLXSim/instuctions/instr.html
δ) Να συγκρίνετε το αποτέλεσμα της εκτέλεση της εντολής από το λογισμικό, με την απάντηση που δώσατε.

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