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

Βασικά βήματα εκτέλεσης μίας εντολής από τον επεξεργαστή του DLX

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

. 1. Ανάκληση εντολής (IF)

2. Αποκωδικοποίηση εντολής / Ανάκληση των καταχωρητών (ID)

3. Εκτέλεση (ΕΧ)

4. Πρόσβαση στη μνήμη / βήμα ολοκλήρωσης διακλάδωσης (MEM)

5. Επανεγγραφή (WB)
 

    Κάθε βήμα μπορεί να διαρκέσει έναν ή περισσότερους κύκλους ρολογιού στον επεξεργαστή. Παρακάτω, δίνονται αναλυτικά τα 5 βήματα.
 

Ανάκληση εντολής (IF)
 

MAR ¬Mem[PC]

IR ¬ Mem[MAR]

NPC ¬ PC + 4

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

Η διεύθυνση της εντολής που πρόκειται να εκτελεστεί περιέχεται στον απαριθμητή προγράμματος (PC). Κατά την ανάκληση εντολής, η ΚΜΕ πρέπει να προσδιορίσει τη διεύθυνση της θέσης μνήμης που είναι αποθηκευμένη η εντολή και να ζητήσει τη λειτουργία ανάγνωσης. Έτσι, μεταφέρεται η διεύθυνση εντολής από τον PC στον καταχωρητή διευθύνσεων μνήμης (MAR), ο οποίος συνδέεται μέσω της αρτηρίας διευθύνσεων με τη μνήμη. Η ΚΜΕ χρησιμοποιεί τις γραμμές που μεταφέρουν σήματα ελέγχου για να υποδείξει στη μνήμη ότι ζητείται μία λειτουργία ανάγνωσης. Η εντολή ανακαλείται από τη μνήμη και αποθηκεύεται μέσω του MDR, στον καταχωρητή εντολών (IR). Αυτό ολοκληρώνει τη λειτουργία ανάκλησης εντολής.

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

Θυμάστε τον τρόπο με τον οποίο γίνεται η κωδικοποίηση των εντολών του DLX; Να περιγράψετε την κωδικοποίηση για τους τρεις τύπους εντολών (εντολές τύπου I, εντολές τύπου R, εντολές τύπου J). Για περισσότερες λεπτομέρειες, θα ήταν καλό να ανατρέξετε στο 2ο κεφάλαιο και συγκεκριμένα στην τέταρτη ενότητα "Η Αρχιτεκτονική του υπολογιστή DLX".




Αποκωδικοποίηση εντολής / Ανάκληση των καταχωρητών (ID-Instruction Decode /register fetch)

A ¬ Reg[IR6...10]

B ¬ Reg[IR11...15]

Imm ¬ [(IR16)16##IR16...31]

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

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

Μπορείτε να αιτιολογήσετε την ταυτόχρονη αποκωδικοποίηση της εντολής και την πρόσβαση στο αρχείο καταχωρητών;

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

 

Εκτέλεση (EXecution/effective address cycle)  
Οι τελεστέοι (καταχωρητές) που διαβάστηκαν στο προηγούμενο βήμα, έχουν μεταφερθεί μέσω των αρτηριών S1 και S2 αντίστοιχα και βρίσκονται στην είσοδο της ALU. Η ALU πραγματοποιεί μία από τις τρεις λειτουργίες, ανάλογα με τον τύπο της εντολής του DLX.

Επικοινωνία με τη Μνήμη (εντολές φόρτωσης / αποθήκευσης):
 

MAR ¬ A + (IR16)16 ## IR 16...31

MDR ¬ Β


Η ALU προσθέτει το περιεχόμενο του πηγαίου καταχωρητή (Α) με το περιεχόμενο του καταχωρητή εντολών, το οποίο έχει υποστεί επέκταση προσήμου στα ψηφία 16 έως 31. Έτσι σχηματίζεται η ενεργός διεύθυνση, η οποία μεταφέρεται στον MAR. Στην περίπτωση εντολής αποθήκευσης ο MDR φορτώνεται με την τιμή του Β.

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

Έστω η παρακάτω εντολή φόρτωσης του DLX: LB R1,50(R2).

  1. Αν το περιεχόμενο του καταχωρητή R2 είναι 100, ποιο θα είναι το αποτέλεσμα μετά την εκτέλεση της εντολής;
  2. Να εκτελέσετε την παραπάνω εντολή, χρησιμοποιώντας το λογισμικό που βρίσκεται στην ιστοσελίδα: Να συγκρίνετε το αποτέλεσμα με την απάντηση που δώσατε.
  3. Να χρησιμοποιήσετε το λογισμικό προσομοίωσης των εντολών φόρτωσης του DLX το οποίο βρίσκεται στην ιστοσελίδα:

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


Αριθμητική ή λογική εντολή:


ALUoutput ¬ A οp (B or (IR16)16 ## IR 16...31 )

H ALU εκτελεί τη λειτουργία που καθορίζεται από τον κωδικό λειτουργίας μεταξύ του Α (Rs1) και του Β ή μεταξύ του Α και της τιμής που βρίσκεται στα τελευταία 16 bits του καταχωρητή εντολών ((IR16)16 ## IR 16...31) .

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

  1. Να περιγράψετε την εκτέλεση της εντολής του DLX: ADDI R1, R2, #3.
  2. Ποιο θα είναι το αποτέλεσμα αν το περιεχόμενο του καταχωρητή R2 είναι 147;
  3. Να εκτελέσετε την παραπάνω εντολή, χρησιμοποιώντας το λογισμικό που βρίσκεται στην ιστοσελίδα: Να συγκρίνετε το αποτέλεσμα με την απάντηση που δώσατε.
  4. Να χρησιμοποιήσετε το λογισμικό προσομοίωσης των εντολών τύπου R του DLX το οποίο βρίσκεται στην ιστοσελίδα:

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

Διακλάδωση με συνθήκη / Μεταπήδηση

ALUoutput ¬ PC + (IR16)16 ## IR 16...31

Cond ¬ (A οp 0)

H ΑLU προσθέτει στον PC την τιμή του offset για να υπολογίσει τη διεύθυνση του στόχου διακλάδωσης. Για διακλαδώσεις με συνθήκη, o καταχωρητής A ελέγχεται για να αποφασιστεί αν αυτή η διεύθυνση θα πρέπει να γίνει η νέα τιμή του PC. Η λειτουργία σύγκρισης op είναι ο σχετικός τελεστής που καθορίζεται από τον κωδικό λειτουργίας της εντολής. Για παράδειγμα, ο op είναι ο "==" για την εντολή BEQZ.

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

  1. Να περιγράψετε το βήμα εκτέλεσης της παρακάτω εντολής του DLX.
    J 1100
    (Να θεωρήσετε ότι η εντολή βρίσκεται στη θέση μνήμης με διεύθυνση 1000)
  2. Να εκτελέσετε την παραπάνω εντολή, χρησιμοποιώντας το λογισμικό που βρίσκεται στην ιστοσελίδα: Να συγκρίνετε το αποτέλεσμα με την απάντηση που δώσατε.

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


Πρόσβαση στη μνήμη / βήμα ολοκλήρωσης διακλάδωσης (MEM- Memory access/branch completion cycle)
 
Επικοινωνία με τη Μνήμη:
LW: MDR ¬ Mem[MAR]

SW: Mem[MAR]¬MDR

  • Γίνεται πρόσβαση στη μνήμη όταν αυτό απαιτείται.
  • Αν έχουμε εντολή φόρτωσης, τα δεδομένα διαβάζονται από τη μνήμη και τοποθετούνται στον καταχωρητή MDR.
  • Αν έχουμε εντολή αποθήκευσης τα δεδομένα διαβάζονται από τον καταχωρητή Β και εγγράφονται στη μνήμη.
  • Σε κάθε μια από τις δύο προηγούμενες περιπτώσεις η διεύθυνση που χρησιμοποιείται είναι αυτή που έχει υπολογιστεί στον προηγούμενο κύκλο και αποθηκευτεί στον καταχωρητή ALUOutput.

 
Διακλάδωση με συνθήκη :
if (cond) PC ¬ ALUoutput
else PC ¬ NPC

  • Eάν έχουμε εντολή διακλάδωσης, το περιεχόμενο του καταχωρητή PC αντικαθίσταται με τη διεύθυνση του στόχου της διακλάδωσης που βρίσκεται στον καταχωρητή ALUOutput.
  • Διαφορετικά ο PC παίρνει περιεχόμενο αυτό του καταχωρητή NPC.

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

  1. Να περιγράψετε το βήμα ολοκλήρωσης διακλάδωσης της παρακάτω εντολής του DLX.
    BEQZ R1,150
  2. Να εκτελέσετε την παραπάνω εντολή, χρησιμοποιώντας το λογισμικό που βρίσκεται στην ιστοσελίδα:

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



Επανεγγραφή (WB -- Write-Back cycle)

Γενικά: Rd ¬ ALUoutput or MDR

  • Αριθμητική η λογική εντολή (καταχωρητή - καταχωρητή)
    Reg[IR16..20] ¬ ALUOutput
  • Αριθμητική η λογική εντολή (καταχωρητή - Immediate)
    Reg[IR11..15] ¬ ALUOutput
  • Εντολή φόρτωσης
    Reg[IR11..15] ¬ MDR

  • Η εντολή αυτή γράφει το αποτέλεσμα στο αρχείο καταχωρητών, το οποίο αποτέλεσμα προέρχεται είτε από τη μνήμη είτε από την ALU (ALUOutput).
  • Ο καταχωρητής προορισμού εξαρτάται από το opcode.

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

  1. Να αναφέρετε τα πέντε βήματα εκτέλεσης των εντολών στον υπολογιστή DLX και να περιγράψετε συνοπτικά τη λειτουργία που επιτελείται και τα κυκλώματα που χρησιμοποιούνται σε κάθε ένα από αυτά.
  2. Να χρησιμοποιήσετε το λογισμικό προσομοίωσης της εκτέλεσης των εντολών του DLX το οποίο παρατίθεται στις ιστοσελίδες και να δείτε τον τρόπο με τον οποίο προσομοιώνεται η εκτέλεση των εντολών:

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

  1. Ποια είναι τα βήματα για την παρακάτω εντολή του υπολογιστή DLX:
    LB R1, 50(R2)
    Έστω ότι πριν από την εκτέλεση της εντολής, ο PC έχει την τιμή 100, ο καταχωρητής R1 έχει περιεχόμενο -100, ο R2 έχει περιεχόμενο 60 και στη θέση μνήμης με διεύθυνση 110 βρίσκεται ο αριθμός 200.
  2. Να εκτελέσετε την παραπάνω εντολή φόρτωσης, χρησιμοποιώντας το λογισμικό που βρίσκεται στην ιστοσελίδα:
  3. Να χρησιμοποιήσετε το λογισμικό προσομοίωσης της εκτέλεσης των εντολών φόρτωσης, το οποίο βρίσκεται στην ιστοσελίδα:

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