ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου

Σχετικά έγγραφα
Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Τέτοιες λειτουργίες γίνονται διαμέσου του

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Κεντρική Μονάδα Επεξεργασίας

Κεφάλαιο 4. Ο επεξεργαστής. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Σχεδίαση μονάδας ελέγχου επεξεργαστή

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Απλός επεξεργαστής (Επανάληψη)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Διάλεξη 12 Καθυστερήσεις (Stalls)

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Κάθε functional unit χρησιµοποιείται µια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Χ. Σωτηρίου. 0: lw $1, 8($0) 4: lw $2, 9($0) 8: add $1, $2, $3 c: or $4, $2, $3 10: beq $4, $0, -5-20: 5 24: fffe

Σχεδίαση της Μονάδας Ελέγχου

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.

Σχεδίαση της Διόδου Δεδομένων

Υλοποίηση Mικροεπεξεργαστή MIPS -16

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Διοχέτευση (Pipeline)

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Multicycle datapath

Pipelined Datapath, Hazards and Forwarding

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Αρχιτεκτονική Υπολογιστών

Εντολές του MIPS (2)

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

Μικροαρχιτεκτονική του LC3

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10

Διάλεξη 11 Προώθηση (Forwarding)

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση»

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

Κεφάλαιο 4. Ο επεξεργαστής

Κεφάλαιο 5. Ο Μικροεπεξεργαστής: Διάδρομος Δεδομένων και Μονάδα Ελέγχου. (The Processor: Datapath and Control)

Θέµατα Φεβρουαρίου

Αρχιτεκτονική Υπολογιστών

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Ας ξεκινήσουμε. Macro-instructions. (Assembly level) Micro-instructions Main memory. (micro-code)

Αρχιτεκτονική υπολογιστών

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 8: Μία Απλή Υλοποίηση του MIPS σε Έναν Κύκλο Ρολογιού ανά Εντολή

Αρχιτεκτονική Υπολογιστών

Οργάνωση Υπολογιστών (Ι)

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

O επεξεπγαζηήρ: Η δίοδορ δεδομένων (datapath) θαη ε μονάδα ελέγσος (control)

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) Κεφάλαιο 4 - Σύστημα ιασωλήνωσης

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Έχοντας κατανοήσει την ύλη του 1ου μαθήματος ( Εισαγωγή στην Αρχιτεκτονική Η/Υ ) θα πρέπει να μπορείτε να απαντήσετε στις παρακάτω ερωτήσεις:

Αρχιτεκτονική Υπολογιστών

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

6. Ακολουθίες μικροεντολών 7. Συμβολισμός μικροεντολών (MAL)

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Κεφάλαιο 6 Βελτίωση Απόδοσης με Διασωλήνωση (Enhancing Performance with Pipelining)

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: O επεξεργαστής Σύστημα Διασωλήνωσης (Pipelining)

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 4. Ο επεξεργαστής

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Αρχιτεκτονικές Συνόλου Εντολών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΟΜΕΑΣ ΗΛΕKΤΡΟΝΙΚΗΣ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Transcript:

ΠΛΕ- 27 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου Αρης Ευθυμίου

Δομή σύγχρονων υπολογιστών Κώδικας μηχανής Αρχιτεκτονικό συνόλο εντολών (InstrucDon Set Architecture ISA) είναι το τυπικό όριο μεταξύ υλικού και λογισμικού Η μικρο- αρχιτεκτονική ορίζει όμως τι είναι πράγματι κατασκευασμένο μια αρχιτεκτονική μπορεί να έχει πολλές διαφορετικές υλοποιήσεις ΠΛΕ 27 Μικροεπεξεργαστές 2-22 2

Μικροαρχιτεκτονική Περιγραφή (μικρο)αρχιτεκτονικής (block diagrams) Υλοποίηση Περιγραφή λογικών κυκλωμάτων ΠΛΕ 27 Μικροεπεξεργαστές 2-22 3

Σχεδιαστικά βήματα. Ανάλυση σετ εντολών περιγραφή μεταφοράς καταχωρητών (register transfer language) απαιτήσεις datapath: καταχωρητές, αριθμητικές πράξεις,... 2. Επιλογή εξαρτημάτων datapath και τρόπου χρονισμού 3. Συναρμολόγηση datapath 4. Ανάλυση υλοποίησης κάθε εντολής Καθορισμός τιμών για τα σήματα ελέγχου στο datapath 5. Κατασκευή της λογικής ελέγχου (control logic) ΠΛΕ 27 Μικροεπεξεργαστές 2-22 4

Υποσύνολο IPS Θα χρησιμοποιήσουμε ένα υποσύνολο των εντολών του IPS Αριθμητικές- λογικές: add, sub, slt, and, or, nor Α- Λ με σταθερές: addi, ori, sld, lui Μεταφορά από/προς μνήμη: lw, sw Διακλάδωση: beq Για άσκηση: bne, j, jal, jr ΠΛΕ 27 Μικροεπεξεργαστές 2-22 5

Περιγραφή RTL Αναλυτική περιγραφή εντολών χρησιμοποιώντας καταχωρητές και πράξεις μεταξύ τους ADD LOAD R[rd] R[rs] + R[rt];! PC PC + 4! R[rt] E[ R[rs] + sign_ext(imm6)];! PC PC + 4! STORE E[ R[rs] + sign_ext(imm6) ] R[rt];! BEQ PC PC + 4! if ( R[rs] == R[rt] ) then! PC PC + 4 + (sign_ext(imm6) << 2) else! PC PC + 4 ΠΛΕ 27 Μικροεπεξεργαστές 2-22 6

Κατάλογος εξαρτημάτων Μνήμη (E) Χρειάζεται για εντολές και δεδομένα 2 θύρες ή 2 μνήμες (στην πραγματικότητα κρυφές μνήμες) Καταχωρητές (R: 32 x 32) Ανάγνωση rs, rt Εγγραφή rt ή rd Καταχωρητής PC δείκτης τρέχουσας/επόμενης εντολής Επέκταση προσήμου (πρόσημο ή μηδέν) Ολισθητής για άμεσες σταθερές Μονάδα αριθμητικών/λογικών πράξεων (AL) αριθμ. εντολές, υπολογισμός διευθύνσεων μνήμης,... Πρόσθεση με 4 για αύξηση του PC γίνεται ταυτόχρονα με αριθμητικές πράξεις Συγκριτής για εντολές διακλάδωσης γίνεται ταυτόχρονα με υπολογισμό διεύθυνσης προορισμού διακλάδωσης ΠΛΕ 27 Μικροεπεξεργαστές 2-22 7

Προσχέδιο datapath PC instrucdon memory rd rs rt registers AL Data memory mux +4 imm. InstrucDon Fetch 2. Decode/ Register Read 3. Execute 4. emory 5. Register Write ΠΛΕ 27 Μικροεπεξεργαστές 2-22 8

Συνδιαστικά εξαρτήματα AL Πρόσθεση, αφαίρεση, σύγκριση (slt), λογικά and, or, nor κύριο εξάρτημα ο αθροιστής alu(aluop, ina, inb, out, zero); Επέκταση προσήμου απλά καλώδια module signextension(in, out); parameter IN = 6; parameter OT = 32; ina inb aluop AL Πολυπλέκτης (muldplexor mux) Ολισθητής απλά καλώδια module shiftleft(in, out); parameter N = 32; parameter SH = 2; out zero? Ι Ι Ι n- AL control ΠΛΕ 27 Μικροεπεξεργαστές 2-22 9. Sel ux log(n) out Function AND OR add subtract set-on-less-than NOR module mux2 (out, in,in, sel); parameter N = ;

Καταχωρητές (ακμοπυροδότητοι) module dff (q, d, clk); parameter N = ; D Clk Q Clk Με έλεγχο φορτώματος D Q module dff_le (q, d, lden, clk); parameter N = ; output reg [N-:] q; Clk lden D lden Clk Q D register D D 2... D n- D Q En Clk ff ff ff... ff Q Q Q 2... Q n- ΠΛΕ 27 Μικροεπεξεργαστές 2-22

Χρονισμός Τα συνδιαστικά κυκλώματα μετατρέπουν τα δεδομένα κατά τη διάρκεια κύκλων ρολογιού Μεταξύ ακμών για ακμοπυροδότητους καταχωρητές Είσοδοι, έξοδοι από/πρός καταχωρητές Η μεγαλύτερη καθυστέρηση ορίζει την ελάχιστη περίοδο ρολογιού ΠΛΕ 27 Μικροεπεξεργαστές 2-22

Register file clk regwrite 32 καταχωρητές στη register File Δύο ταυτόχρονες αναγνώσεις Μία εγγραφή Επιλογή καταχωρητών: rda (αριθμός 5bit) επιλέγει τον καταχωρητή που διαβάζεται στην έξοδο outa rdb επιλέγει καταχωρητή για την outb wrr επιλέγει σε ποιόν καταχωρητή θα γραφτούν τα δεδομένα της εισόδου datain Το ρολόι χειρίζεται μόνο τις εγγραφές Οι αναγνώσεις δουλεύουν σαν συνδιαστικό κύκλωμα στην ουσία πολύπλεξη (x2) μεταξύ των 32 καταχωρητών rda rdb wrr datain Register file 2R+W outa outb ΠΛΕ 27 Μικροεπεξεργαστές 2-22 2

Απλοποιημένη Μνήμη memwrite Address Data In DataOut 32 32 Clk module mem(iaddr, daddr, datain, memread, memwrite, iout, dout, clk); Προσπελάσεις ολοκληρώνονται σε ένα κύκλο Αναγνώσεις γίνονται οποτεδήποτε (συνδιαστικό κλυκλωμα) Εγγραφές γίνονται κατά την ακμή του ρολογιού, αν το σήμα memwrite είναι Δίπορτη (εντολές, δεδομένα) στο μοντέλο Verilog ΠΛΕ 27 Μικροεπεξεργαστές 2-22 3

Συναρμολόγηση, PC datapath clk PC Next Address Logic Προσκόμιση εντολής ανάγνωση μνήμης από τη διεύθυνση που έχει ο PC Υπολογισμός επόμενης τιμής PC: επόμενη εντολή: PC+4! διακλάδωση: (PC+4) + (sign_ext(imm6) << 2)! άλμα: (άσκηση 2) {(PC+4)[3:28], Imm26, 2 b} άλμα σε τιμή καταχωρητή: (άσκηση 2) Address Instruction emory instruction ΠΛΕ 27 Μικροεπεξεργαστές 2-22 4

PC datapath 4 ADD brtakensel jumpsel pc4 nextpc PC pc_r Address ADD branchtakenaddr emory dataout Instruction[3:] branchoffset jumptarget ΠΛΕ 27 Μικροεπεξεργαστές 2-22 5

Πράξεις με καταχωρητές μορφότυπο- R rd <= rs op rt RegWrite instr[25:2] instr[2:6] rda rdb outa rsval Op Zero AL Registers outb rtval Op2 Res aluout instr[5:] wr aluop datain ΠΛΕ 27 Μικροεπεξεργαστές 2-22 6

Πράξεις με σταθερές op rs rt constant or address 6 bits 5 bits 5 bits 6 bits Μορφότυπο Ι rt <= rs op sgnext(constant) RegWrite instr[25:2] instr[2:6] rda rdb outa rsval Op AL Zero instr[5:] RegDstSel destreg wr Registers outb rtval immed opb ALSrcSel Op2 aluop Res aluout datain instr[5:] sgn Ext ΠΛΕ 27 Μικροεπεξεργαστές 2-22 7

Πράξεις load, store Μορφότυπο Ι rt <= em[rs + sgnext(constant)] em[rs + sgnext(constant)] <= rt RegWrite instr[5:] instr[25:2] instr[2:6] RegDstSel destreg rda rdb wr datain Registers outa outb rsval rtval immed opb ALSrcSel Op Op2 AL aluop Zero Res aluout daddr emwrite emory dout instr[5:] sgn Ext datain rfwritedata memout emread resultsel ΠΛΕ 27 Μικροεπεξεργαστές 2-22 8

Λειτουργία, τύπος R παράδειγμα add, rd <= rs + rt 4 ADD branchoffset <<2 pc4 ADD brtakensel branchtakenaddr jumpsel nextpc jumptarget PC A Address emory dataout B Instruction[3:] instr[5:] instr[25:2] instr[2:6] RegDstSel destreg rda rdb wr datain RegWrite Registers outa outb C rsval rtval immed Op opb Op2 AL ALSrcSel aluop Zero Res aluout AL_ADD 4 b D daddr emwrite emory dout instr[5:] sgn Ext datain rfwritedata memout emread resultsel ΠΛΕ 27 Μικροεπεξεργαστές 2-22 9

Χρονισμός ΠΛΕ 27 Μικροεπεξεργαστές 2-22 2

Λειτουργία: load ΠΛΕ 27 Μικροεπεξεργαστές 2-22 2 Registers outa outb wr datain rda rdb Op AL Zero Res Op2 instr[25:2] instr[2:6] instr[5:] rsval rtval aluout aluop RegWrite destreg RegDstSel opb immed ALSrcSel sgn Ext instr[5:] emory dout datain daddr emwrite emread memout rfwritedata resultsel ADD 4 ADD PC branchoffset emory dataout Address Instruction[3:] pc4 branchtakenaddr brtakensel jumpsel jumptarget nextpc <<2 AL_ADD 4 b

Διακλαδώσεις BEQ if ( R[rs] == R[rt] ) then! PC PC + 4 + (sign_ext(imm6) << 2) else! PC PC + 4 Συγκρίσεις χρησιμοποιούν την AL αφαίρεση έξοδος zero σε λογικό όταν rs == rt Κατάλληλη επιλογή του επόμενου PC ΠΛΕ 27 Μικροεπεξεργαστές 2-22 22

Λειτουργία, διακλάδωση Registers outa outb wr datain rda rdb Op AL Zero Res Op2 instr[25:2] instr[2:6] instr[5:] rsval rtval aluout aluop RegWrite destreg RegDstSel opb immed ALSrcSel sgn Ext instr[5:] emory dout datain daddr emwrite emread memout rfwritedata resultsel ADD 4 ADD PC branchoffset emory dataout Address Instruction[3:] pc4 branchtakenaddr brtakensel jumpsel jumptarget nextpc <<2 ΠΛΕ 27 Μικροεπεξεργαστές 2-22 23?? x x AL_SB 4 b

Σήματα ελέγχου datapath brtakensel not taken, taken jumpsel not jump, jump RegDstSel `DST_RT (), `DST_RD () RegWrite no operadon, write ALSrcSel `OPB_RT (), `OPB_I() aluop `AL_ADD, `AL_SB, resultsel alu, memory emwrite no operadon, write emread no operadon, read ΠΛΕ 27 Μικροεπεξεργαστές 2-22 24

Λογική ελέγχου InstrucDon<3:> Inst emory <26:3> <:5> <2:25> <6:2> <:5> <:5> Op Fun Rt Rs Rd Imm6 Control brtakensel jumpsel RegWrite RegDstSel resultsel ALSrcSel aluop emwrite emread DATA PATH ΠΛΕ 27 Μικροεπεξεργαστές 2-22 25

Κατασκευή λογικής ελέγχου (Μεγάλος) πίνακας σειρές: όλες οι εντολές στήλες: όλα τα σήματα ελέγχου Συμπληρώνουμε τις τιμές ή «αδιάφορο σήμα» (x don t care) Πρέπει να βρούμε τη λογική έκφραση κάθε σήματος ελέγχου Εντολές κωδικοποιημένες με αριθμούς στα πεδία opcode (3:26) και funct (6:) αποκωδικοποίηση (decode) ΠΛΕ 27 Μικροεπεξεργαστές 2-22 26

Ειδικά σήματα ελέγχου Κάποια σήματα ελέγχου εξαρτώνται από τις τιμές των δεδομένων στο datapath όπως το brtakensel για εντολές που δεν είναι διακλαδώσεις για διακλαδώσεις που δεν ακολουθούνται για διακλαδώσεις που ακολουθούνται Υλοποίηση: brtakensel = branch & taken branch σήμα που δείχνει ότι η εντολή είναι διακλάδωση taken σήμα από το datapath (εξαρτώμενο από την τιμή zero) ΠΛΕ 27 Μικροεπεξεργαστές 2-22 27

Υλοποίηση σε Verilog Το datapath έχει υλοποιηθεί χρησιμοποιώντας structural verilog δηλαδή χρησιμοποιώντας instances καταχωρητών, AL, Η λογική ελέγχου έχει υλοποιηθεί σε ένα μεγάλο always block εκτός από το σήμα brtakensel που υλοποιείται με ένα condnuous assignment ΠΛΕ 27 Μικροεπεξεργαστές 2-22 28