ΆδειαΧρήσης Τοπαρόνεκπαιδευτικόυλικόυπόκειταισε άδειεςχρήσηςcrea vecommons. Γιαεκπαιδευτικόυλικό,όπωςεικόνες,που υπόκειταισεάδειαχρήσηςάλλουτύπου, αυτήπρέπεινααναφέρεταιρητώς.
Μικροαρχιτεκτονική του LC3 Ο τρόπος με τον οποίο υλοποιείται εσωτερικά στον επεξεργαστή μία αρχιτεκτονική συνόλου εντολών (ISA) Βασικά μέρη της αρχιτεκτονικής: Μονοπάτι δεδομένων (data path): Περιλαμβάνει τους καταχωρητές και τις μονάδες (αθροιστές, πολυπλέκτες, κλπ) για την εκτέλεση των εντολών Μονάδα ελέγχου (control unit): Ενορχηστρώνει τη διαδικασία εκτέλεσης θέτοντας κατάλληλα σήματα ελέγχου. Μονάδα μνήμης και Ε/Ε (Memory, I/O unit): Αναλαμβάνει την πρόσβαση στη μνήμη και στις περιφερειακές συσκευές 2
Βασικά μέρη της αρχιτεκτονικής του LC3 10 σήματα για περιγραφή της κατάστασης και άλλων συνθηκών 39 σήματα για έλεγχο εκτέλεσης εντολών 3
Βασικά μέρη της αρχιτεκτονικής του LC3 ΙΝΤ: Υπάρχει αίτημα διακοπής R: Η μνήμη είναι έτοιμη IR[15:12]: Κωδικός τρέχουσας εντολής IR[11:11]: Τρόπος διευθυνσιοδότησης για JSR, JSRR ΒΕΝ: Αν θα πραγματοποιηθεί άλμα PSR[15]: Privilege mode 4
Βασικά μέρη της αρχιτεκτονικής του LC3 J[5:0]: Κωδικός τρέχουσας κατάσταση (52 καταστάσεις) COND[2:0]: Συνθήκες που πρέπει να ληφθούν υπόψη Unconditional (καμία) Memory ready Branch Addressing Mode Privilege mode Interrupt test IRD: Αγνόησε J, COND 5
LC3 state machine 52 καταστάσεις Το διάγραμμα δείχνει 31 Οι υπόλοιπες 19 αφορούν interrupts και exceptions 6
LC3 state machine Instruction fetch Φάση ανακλησης 7
LC3 state machine Instruction decode Φάση αποκωδικοποίησης 8
LC3 state machine Instruction execute Φάση εκτέλεσης 9
LC3 datapath 10
LC3 datapath Register file (R0 R7) MDR MAR PC IR N, Z, P 11
LC3 datapath ALU: ADD, AND, NOT, PASSA Ανάλογα με την τιμή του 2bit control σήματος ALUK Αθροιστής για υπολογισμό διευθύνσεων Μονάδα αύξησης PC 12
LC3 datapath Πολυπλέκτες: Επιλέγουν να δώσουν έξοδο μία από τις εισόδους ανάλογα με την τιμή του σήματος ελέγχου 13
LC3 datapath 39 σήματα ελέγχου 14
Παράδειγμα Φάση ανάκλησης (για όλες τις εντολές) State 18 15
1 00 State 18: MAR PC PC PC + 1 [INT] (υπάρχει interrupt?) δεν φαίνεται στο σχήμα 1 16
Παράδειγμα Φάση ανάκλησης (για όλες τις εντολές) Έστω ότι δεν υπάρχει interrupt (η συνηθέστερη περίπτωση) State 33 17
State 33: MDR M Όσο η μνήμη δεν είναι έτοιμη (R = 0), παραμένει στην κατάσταση 33 1 1 0 18
Παράδειγμα Φάση ανάκλησης (για όλες τις εντολές) State 35 19
State 35: IR MDR 1 1 20
Παράδειγμα Φάση αποκωδικοποίησης (για όλες τις εντολές) State 32 21
instruction BEN 1 State 32: ΒΕΝ IR[11] & N + IR[10] & Z + IR[9] & P (σε περίπτωση εντολής άλματος, αν θα πραγματοποιηθεί το άλμα) [IR[15:12]]: αποκωδικοποίηση εντολής απευθείας από τα 4 bit (opcode) 22
Παράδειγμα: ADD Φάση εκτέλεσης State 1 23
ADD State 1: DR SR1 + SR2 or DR SR1 + SEXT[imm5] setcc 00 24
Παράδειγμα: LD Φάση εκτέλεσης State 2 25
1 1 LD State 2: MAR PC + off9 10 0 1 26
Παράδειγμα: LD Φάση εκτέλεσης State 25 27
LD State 25: MDR M[MAR] Όσο η μνήμη δεν είναι έτοιμη (R = 0), παραμένει στην κατάσταση 33 1 1 0 28
Παράδειγμα: LD Φάση εκτέλεσης State 27 29
LD State 25: MDR M[MAR] Όσο η μνήμη δεν είναι έτοιμη (R = 0), παραμένει στην κατάσταση 33 30
Μονάδα ελέγχου του LC3 Πώς παράγονται τα κατάλληλα σήματα σε κάθε κατάσταση; Πώς μεταβαίνει ο επεξεργαστής από τη μία κατάσταση στην επόμενη; 31
Μονάδα ελέγχου του LC3 49 σήματα ελέγχου 39 για το μονοπάτι δεδομένων (τι πρέπει να εκτελεστεί τώρα) 10 για την εύρεση της επόμενης κατάστασης (σε ποια κατάσταση θα μεταβεί ο επεξεργαστής στον επόμενο κύκλο) 52 καταστάσεις 6 bits για να κωδικοποιηθούν Τα 49 σήματα κάθε κατάστασης αποτελούν μια μικροεντολή (microinstruction) Οι 52 μικροεντολές αποθηκεύονται σε μία εσωτερική μνήμη (control store) 2 6 θέσεων Ο microsequencer αναλαμβάνει την ενορχήστρωση της εκτέλεσης, δλδ λαμβάνει απόφαση για το ποια μικροεντολή θα ενεργοποιηθεί (θα διαβαστεί από την control store) 32
Microsequencer COND[2] COND[1] COND[0] Λαμβάνει σαν είσοδο: Το κωδικό της τρέχουσας εντολής IR[15:12] Τον κωδικό της τρέχουσας κατάστασης J[5:0] Αν υπάρχει σήμα διακοπής: ΙΝΤ Σε ποιο privilege mode είναι ο επεξεργαστής PSR[15] Αν ισχύει η συνθήκη άλματος BEN Αν είναι έτοιμη η μνήμη R Ποιο addressing mode πρέπει να χρησιμοποιηθεί (αφορά την JSR, JSRR) IR[11] Ποια συνθήκη πρέπει να ληφθεί υπόψη: COND0 (000): Καμία συνθήκη COND1 (001): Memory Ready COND2 (010): Branch COND3 (011): Addressing Mode COND4 (100): Privilege Mode COND5 (101): Interrupt test «Αγνόησε» τα J και COND: IRD Δίνει σαν έξοδο τη διεύθυνση (θέση) της επόμενης μικροεντολής στο control store 33
Επιπλέον διάβασμα: Introduction to Computing Systems: From Bits and Gates to C and Beyond, 2/e, Yale N. Patt, University of Texas at Austin, Sanjay J. Patel, University, of Illinois at Urbana/Champaign, Appendix C: The microarchitecture of LC3: http://highered.mheducation.com/sites/dl/free/0072467509/104652/p at67509_appc.pdf 34