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

Αντιστοιχία καλωδιωμένης και μικροπρογραμματιζόμενης μονάδας ελέγχου

Ο μικροπρογραμματιζόμενος έλεγχος περιλαμβάνει έναν απαριθμητή μικροπρογράμματος για να καθορίσει τη διεύθυνση της επόμενης μικροεντολής. Στη συνέχεια θα δούμε την αντιστοιχία μεταξύ διαγραμμάτων καταστάσεων του καλωδιωμένου ελέγχου και των μικροεντολών του μικροπρογραμματιζόμενου ελέγχου του DLX. Στο Σχήμα 3.4.7 υπάρχει το πρώτο τμήμα του μικροπρογράμματος που αντιστοιχεί στο διάγραμμα καταστάσεων του Σχήματος 3.3.5 της ενότητας 3.


Loc Label Dest ALU S1 S2 C Misc Cond Jump label Σχόλια
0 Ifetch             Interrupt? Intrpt Έλεγχος για διακοπή
1 Iloop           Instr Read Mem? Iloop IR¬ M[PC]
2   PC ADD PC Constant 4 AB¬ RF Decode1    
3 Intrpt: IAR Pass S1 PC           Διακοπή
4   PC Pass S2   Constant 0   Uncond Ifetch PC¬ 0 και πήγαινε στην επόμενη εντολή

Σχήμα 3.4.10 - Η πρώτη μικροεντολή (με διεύθυνση 0) μεταφέρει τη ροή του μικροπρογράμματος στην μικροεντολή με διεύθυνση (Loc.) 3, εάν υπάρχει διακοπή, αλλιώς συνεχίζει με την μικροεντολή 1. Με την μικροεντολή 3 αποθηκεύεται το περιεχόμενο του PC (που βρίσκεται στην αρτηρία S1) στον IAR (Dest) μέσω της ALU. Το πεδίο Misc της μικροεντολής 1 δηλώνει ότι η εντολή διαβάζεται από τη μνήμη, το πεδίο Cond δηλώνει ότι αν η πρόσβαση στη μνήμη δεν ολοκληρώθηκε θα επαναληφθεί η μικροεντολή 1 (Iloop), αλλιώς θα εκτελεστεί η επόμενη μικροεντολή. Έτσι η  μικροεντολή 1 ανακαλεί μια εντολή από τη μνήμη και επαναλαμβάνεται αν η πρόσβαση στην μνήμη δεν έχει ολοκληρωθεί. Η μικροεντολή 2 αυξάνει τον PC κατά 4 και φορτώνει στους Α και Β τιμές από το αρχείο  καταχωρητών. Η διεύθυνση της επόμενης εντολής εξαρτάται τώρα από την εντολή που βρίσκεται στον IR. Η μικροεντολή 2 αντιστοιχεί στην 2η κατάσταση του διαγράμματος του σχήματος 3.3.5. Στο βήμα αυτό οι Α και Β φορτώνονται με τιμές από το αρχείο καταχωρητών (Reg. File), όπως δηλώνει το πεδίο Misc της μικροεντολής. Στο ίδιο βήμα ο PC αυξάνεται κατά 4. Αυτό γίνεται ως εξής: ο PC που βρίσκεται στην αρτηρία S1 και η σταθερά (Constant) 4 που βρίσκεται στην αρτηρία S2 προσθέτονται στην ALU (ADD) και το αποτέλεσμα καταχωρείται στον PC (Dest). Τέλος η διεύθυνση της επόμενης μικροεντολής λαμβάνεται από τον πίνακα διευθύνσεων 1 (Decode1), και εξαρτάται από τον κωδικό λειτουργίας της εντολής που βρίσκεται στον IR. Έτσι αν για παράδειγμα έχουμε μια εντολή μεταπήδησης (Jump) τότε σύμφωνα με τον Πίνακα διευθύνσεων 1 η διεύθυνση της επόμενης μικροεντολής είναι 54 και έχει τίτλο (label) "Jump:" .