Κεφάλαιο 1
|Ενότητα 1
|Ερωτήσεις
επισκόπησης |
Επόμενο
|Προηγούμενο
|Λεξικό όρων
Η βασική σωλήνωση για τον
DLX
Για να υλοποιήσουμε την τεχνική της σωλήνωσης στον υπολογιστή DLX, πρέπει να τροποποιηθεί η εκτέλεση των εντολών του.
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3
IR <- Mem[PC]
NPC
B
<- Regs[IR11..15];16 Imm <- ((IR 16)##IR 16..31)
Αν η εντολή είναι:
Α)
Επικοινωνία με τη μνήμη (εντολές φόρτωσης ή εντολές αποθήκευσης)Η
ALU προσθέτει το περιεχόμενο του μανταλωτή Α με το περιεχόμενο του μανταλωτή Imm για να σχηματίσει την ενεργό διεύθυνση. Το αποτέλεσμα αυτής της πράξης τοποθετείται στον καταχωρητή ALUOutput.ALUOutput <- A + Imm;
Β) Εντολή μεταξύ καταχωρητή - καταχωρητή
Η ALU εκτελεί τη λειτουργία, η οποία προσδιορίζεται από τον κωδικό λειτουργίας, πάνω στην τιμή του μανταλωτή Α και σε εκείνη του μανταλωτή Β. Το αποτέλεσμα τοποθετείται στον καταχωρητή ALUOutput.
ALUOutput <- A op B;
Γ) Εντολή μεταξύ καταχωρητή-
ImmΗ ALU εκτελεί τη λειτουργία, η οποία προσδιορίζεται από τον κωδικό λειτουργίας, πάνω στην τιμή του μανταλωτή Α και σε εκείνη του καταχωρητή προσωρινής αποθήκευσης Imm. Το αποτέλεσμα τοποθετείται στον καταχωρητή ALUOutput.
ALUOutput
<- A op Imm;Δ) Εντολή διακλάδωσης με συνθήκη / Μεταπήδηση
Η ALU προσθέτει το περιεχόμενο του καταχωρητή NPC με το περιεχόμενο του καταχωρητή προσωρινής αποθήκευσης Imm για να υπολογίσει τη διεύθυνση του στόχου διακλάδωσης.
Ο μανταλωτής Α, ελέγχεται για να καθοριστεί αν η συνθήκη της διακλάδωσης αληθεύει. Ο τελεστής σύγκρισης
op καθορίζεται από τον κωδικό λειτουργίας της εντολής διακλάδωσης.Αν η εντολή διακλάδωσης με συνθήκη είναι
BEQZ, τότε η λειτουργία σύγκρισης είναι ο έλεγχος για ισότητα.Συνεπώς ο τελεστής
op είναι ο ''= =''.ALUOutput
<- NPC + Imm;Cond
<- (A op 0)
Οι μόνες εντολές του DLX που είναι ενεργές σε αυτόν τον κύκλο είναι οι εντολές φόρτωσης, οι εντολές αποθήκευσης και οι εντολές διακλάδωσης.
Α) Επικοινωνία με τη μνήμη (εντολές φόρτωσης ή εντολές αποθήκευσης):
Αν έχουμε εντολή φόρτωσης, τα δεδομένα επιστρέφουν από τη μνήμη και τοποθετούνται στον καταχωρητή
LMD.LMD <- Mem[ALUOutput]
Αν έχουμε εντολή αποθήκευσης, τότε τα δεδομένα από τον μανταλωτή Β γράφονται στη μνήμη.
Mem[ALUOutput] <- B
Και στις δύο παραπάνω περιπτώσεις η διεύθυνση μνήμης, από την οποία φορτώνονται τα δεδομένα ή στην οποία αποθηκεύονται τα δεδομένα, είναι εκείνη που υπολογίστηκε κατά τη διάρκεια του προηγούμενου κύκλου κι αποθηκεύτηκε στον καταχωρητή ALUOutput.
Β) Εντολή διακλάδωσης:
Αν η συνθήκη διακλάδωσης ισχύει, τότε ο PC φορτώνεται με τη διεύθυνση του στόχου διακλάδωσης, η οποία βρίσκεται στον καταχωρητή ALUOutput.
Αν η συνθήκη διακλάδωσης δεν ισχύει τότε ο PC φορτώνεται με την τιμή η οποία βρίσκεται στον NPC.
If (cond) PC
<- ALUOutput else PC <- NPC
5. Επανεγγραφή (WB)
Στο βήμα αυτό γίνεται εγγραφή του αποτελέσματος στο αρχείο καταχωρητών,
είτε αυτό προέρχεται από τη μονάδα μνήμης, δηλαδή τον καταχωρητή LMD
Regs[IR
11..15] <- LMDείτε
από την ALU, δηλαδή από τον καταχωρητή ALUOutput. Διακρίνουμε δύο περιπτώσεις. Αν η εντολή είναι:Regs[IR
16..20] <- ALUOutput
Regs[IR11..15 ] <- ALUOutput
![]() |
![]() |
![]() |
![]() |