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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

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

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

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

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

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

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

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

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

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

Μικροβιολογία & Υγιεινή Τροφίμων

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

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

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

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

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

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

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

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

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

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

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

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

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

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

Ηλεκτρονικοί Υπολογιστές IV

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

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

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

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

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

Ηλεκτρισμός & Μαγνητισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

Εισαγωγή στους Αλγορίθμους

Ηλεκτρονικοί Υπολογιστές I

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

Χ. Σωτηρίου. 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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Εφαρμοσμένη Στατιστική

Ηλεκτρονικοί Υπολογιστές IV

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συνδυαστική Ανάλυση Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

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

Εισαγωγή στους Αλγορίθμους

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

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

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Ιστορία της μετάφρασης

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

Εκκλησιαστικό Δίκαιο

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

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

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Οργάνωση επεξεργαστή Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Σχεδίαση επεξεργαστή, έλεγχος Αρης Ευθυμίου Πηγή: Διαφάνειες CS61C, UCB

Το σημερινό μάθημα! Ο δίαυλος δεδομένων αναλυτικά: Εντολές επεξεργασίας δεδομένων τύπου R Προσθήκη εντολών μεταφοράς δεδομένων Προσθήκη εντολής διακλάδωσης! Σχεδίαση τμήματος ελέγχου τα σήματα ελέγχου επιλογή επόμενης διεύθυνσης PC έλεγχος της ALU κεντρικός αποκωδικοποιητής! Προσθήκη εντολής άλματος 2

Μονάδα προσκόμισης εντολών clk 3

Εντολές επεξεργασίας! Τύπου R: add, sub, slt, and, or R[rd] = R[rs] op R[rt] (op rd,rs,rt) Instructon Word 3 26 op 6 bits 2 rs 5 bits 16 rt 5 bits 1 rd 5 bits 6 shamt 5 bits funct 6 bits Rd RegWr 5 5 Rs 5 Rt clk Rw Ra Rb x 32- bit Registers busa busb ALU busw ALUctr Result 4

Χρονισμός εντολής τύπου R Clk New Value PC Old Value Instructon Memory Access Time Rs, Rt, Rd, Old Value New Value Op, Func Delay through Control Logic ALUctr Old Value New Value RegWr Old Value busa, B Old Value busw Old Value New Value Register File Access Time New Value ALU Delay New Value Register Write Occurs Here 5

Εντολή lw R[rt] = Mem[R[rs]+sgn_ext(imm16)] lw rt, imm16(rs) 3 26 2 op 6 bits rs 5 bits 16 rt 5 bits RegDst Rd Rt RegWr busw clk Rs Rt 5 5 MemtoReg Rw Ra Rb busa RegFile busb ALUctr ALU 16 imm16 16 bits Extender 5 clk ALUSrc Adr Data Memory 6

Εντολή sw Mem[R[rs]+sgn_ext(imm16)] = R[rt] sw rt, imm16(rs) 3 26 2 op 6 bits rs 5 bits 16 rt 5 bits RegDst Rd Rt RegWr busw clk Rs Rt 5 5 Rw Ra Rb busa RegFile busb ALUctr clk Data In ALUSrc MemtoReg MemWr ALU 16 imm16 16 bits Extender 5 WrEn Adr Data Memory 7

Εντολή beq 31 26 op 6 bits 21 rs 5 bits 16 rt 5 bits imm16 16 bits 0 beq rs, rt, imm16! Equal = (R[rs] == R[rt]) Συνθήκη διακλάδωσης if (Equal) Υπολογισε τον στόχο: PC = PC + 4 + ( SignExt(imm16) x 4 ) else PC = PC + 4 8

Εντολή beq! ALU υπολογίζει ισότητα με αφαίρεση: αποτέλεσμα σημαίνει ισότητα! Προσθέτουμε στο next Address logic του PC PC Mux clk >> 2 op 6 bits 21 rs 5 bits 16 rt 5 bits RegWr 5 Extender imm16 16 bits Rs Rt 5 5 Rw Ra Rb busa RegFile busb clk 0 ALUctr ALU Adder Inst Address PCSrc Adder 4 26 imm16 31 Zero 9

Ο πλήρης δίαυλος δεδομένων 10

Τα σήματα ελέγχου! ALUsrc: regb; immed με επέκταση προσήμου! ALUctr: ADD, SUB, OR, AND, SLTI! MemWr: write memory! MemtoReg: ALU; Mem! RegDst: rt ; rd! RegWr: write register! PCSrc: nextpc = PC+4; nextpc = PC+4+sgnExt(Imm16); 11

Σήμα ελέγχου PCSrc! Τα υπόλοιπα σήματα καθορίζονται από το είδος της εντολής π.χ. MemWr μόνο για εντολές sw! PCSrc εξαρτάται και από τα δεδομένα θα είναι (επιλέγει PC+4+sgnExt(Imm16)) αν η εντολή είναι beq και το zero είναι (οι καταχωρητές έχουν ίσες τιμές)! Νέο σήμα Branch η εντολή είναι διακλάδωση εξαρτάται μόνο από το είδος της εντολής Branch zero PCSrc Η νέα πύλη είναι μέρος του διαύλου δεδομένων ή του ελέγχου; 12

Ελεγχος ALU Η ALU υποστηρίζει πολλές εντολές/λειτουργίες! Οι lw,sw χρειάζονται πρόσθεση! Η beq χρειάζεται αφαίρεση! Οι εντολές τύπου R πρόσθεση, αφαίρεση, λογικό ΚΑΙ, Η σύγκριση <, και αποτέλεσμα αν μικρότερο, αλλιώς! αφαίρεση, με κάτι παραπάνω! 13

Υλοποίηση ALU σε Verilog module alu (input [31:0] a, b, input [2:0] alucont, output reg [31:0] result, output zero); wire [31:0] b2, sum, slt; assign b2 = alucont[2]? ~b : b; // optionally invert 2nd input assign sum = a + b2 + alucont[2]; // ADD + carry in for subtraction assign slt = sum[31]; // Sign bit is slt! always @(*) case(alucont[1:0]) // Essentially a MUX + logical AND, OR 2'b00: result = a & b; 2'b01: result = a b; 2'b10: result = sum; 2'b11: result = slt; endcase assign zero = (result == 32'b0); // The zero output endmodule 14

Αποκωδικοποιητής ALU! Για lw, sw, beq θέλουμε το σήμα να έχει τις τιμές που είδαμε (προσθ, προσθ, αφαιρ)! Για R- type εντολές, θέλουμε το σήμα να καθορίζεται από το πεδίο funct της εντολής! Μικρός ελεγκτής/αποκωδικοποιητής για την ALU, παράγει το σήμα ALUctr είσοδος ένα σήμα ALUOp από τον κύριο ελεγκτή/αποκωδικοποιητή και το πεδίο funct! Σήμα ALUOp: 0 ADD, για lw, sw 0 SUB, για beq, 1 σύμφωνα με το funct, για τις υπόλοιπες εντολές 15

Πίνακας αλήθειας ALUdec don t care lw,sw beq add sub and or slt! Το X στον πίνακα σημαίνει: ή 1, δεν έχει σημασία! π.χ. 1η σειρά: το ALUOp ζητάει πρόσθεση, το πεδίο funct δεν λαμβάνεται υπ όψη Τα F[5], F[4] του funct, είναι πάντα 1(για μελοντικές εντολές) Οι περιπτώσεις που το ALUOp[0] είναι X μπορούν να απλοποιήσουν το κύκλωμα. Στην ουσία θα είναι 0, αλλά αφού δεν χρησιμοποιούμε την τιμή 2 b1για ALUOp, 16

Υλοποίηση ALUdec σε Verilog module aludec(input [5:0] funct, input [1:0] aluop, output reg [2:0] alucontrol); Δεν χρησιμοποιεί τα X της προηγούμενης διαφάνειας. Γιατί; always @(*) case(aluop) 2'b00: alucontrol = 3'b010; // add 2'b01: alucontrol = 3'b110; // sub default: case(funct) // RTYPE 6'b100000: alucontrol = 3'b010; // ADD 6'b100010: alucontrol = 3'b110; // SUB 6'b100100: alucontrol = 3'b000; // AND 6'b100101: alucontrol = 3'b001; // OR 6'b101010: alucontrol = 3'b111; // SLT default: alucontrol = 3'bxxx; //??? endcase 1. Αν δεν υπήρχε, τι τιμή θα έπαιρνε το alucontrol ; endcase endmodule την προηγούμενη! Υπονόηση μανταλωτή. ΛΑΘΟΣ!!! 2. Χρήσιμο για να πιάνουμε λάθη στα προγράμματα 17

Ελεγχος και δίαυλος δεδομένων Instructon<31:0> Rd <0:15> Rs <11:15> Rt <16:20> Op Fun <21:25> <0:5> <26:31> Inst Memory Adr Imm16 Control Branch RegWr RegDst ALUSrc ALUOp MemWr MemtoReg DATA PATH 18

Παράδειγμα add R[rd]=R[rs]+R[rt] busw Rs Rt 5 5 Rw Ra Rb busa RegFile busb imm16 16 Extender clk = ALU Rs Rt Rd Imm16 zero ALUOp=1 MemtoReg= 5 <0:15> RegWr= <11:15> clk <16:20> Rd Rt <21:25> instr fetch unit Branch= RegDst= Instructon<31:0> Data In ALUSrc= clk MemWr= WrEn Adr Data Memory 19

Κύριος αποκωδικοποιητής Σήμα ελέγχου πολυπλέκτη! ALUSrc: regb; immed με επέκταση προσήμου! ALUOp: 0 ADD 0 SUB 1 σύμφωνα με το πεδίο funct! MemWr: write memory! MemtoReg: ALU; Mem! RegDst: rt ; rd! RegWr: write register! Branch: είναι διακλάδωση 20

Υλοποίηση main decoder! Οι έξοδοι εξαρτώνται μόνο από το opcode ο ελεγκτής της ALU καθορίζει ακριβώς την πράξη! Οι τύπου R, lw γράφουν καταχωρητή (RegWrite = 1) όταν είναι 0, η τιμές των πολυπλεκτών δεν έχουν σημασία: X! Τα σήματα ελέγχου εγγραφής δεν είναι ποτέ X MemWrite, RegWrite Εμμεσα το Branch, γιατί ο PC πάντοτε γράφεται 21

Αναλυτικός πίνακας func 1000 1001 10010 1010 XX XXXX op 0000 0000 0000 0000 1001 1101 0010 and add sub or lw sw beq RegDst x x ALUSrc MemtoReg x x RegWrite MemWrite Branch ALUOp[2:0] 1 1 1 1 0 0 0! Επιβεβαιώστε ότι οι τιμές σημάτων εξόδου είναι ίδιες για όλες τις εντολές τύπου R 22

Υλοποίηση αποκωδικοποιητή opcode Rtype AND logic lw sw beq OR logic RegDst ALUSrc MemtoReg RegWrite MemWrite Branch ALUOp[0] ALUOp[1]! Τμήμα AND: με πύλες AND και αντιστροφείς το opcode αποκωδικοποιείται σε σήμα ανά εντολή (+ τύπου R)! Τμήμα OR: Με πύλες OR υπολογίζουμε τις εξόδους π.χ. RegWrite = Rtype lw 23

Verilog: maindec.v module maindec(input [5:0] op, output memtoreg, memwrite, Δεν χρησιμοποιεί τα X. output branch, alusrc, Γιατί; output regdst, regwrite, output jump, output [1:0] aluop); reg [8:0] controls; assign {regwrite, regdst, alusrc, branch, memwrite, memtoreg, jump, aluop} = controls; Πύλη OR ανά στήλη: always @(*) 1- σύνδεση, 0- όχι σύνδεση case(op) Πύλη AND 6'b000000: controls = 9'b1_1_0_0_0_0_0_10; //Rtype ανά σειρά 6'b100011: controls = 9'b1_0_1_0_0_1_0_00; //LW 6'b101011: controls = 9'b0_0_1_0_1_0_0_00; //SW 1- σύνδεση 6'b000100: controls = 9'b0_0_0_1_0_0_0_01; //BEQ 0- αντιστροφή default: controls = 9'bxxxxxxxxx; //??? endcase endmodule 24

Προσθήκη εντολής j New PC = { PC[31:28], instr[25:0], 2 b0} Instructon<31:0> Jump= <0:25> WrEn Adr Mux Clk Data In ALUSrc = x <0:15> Extender 16 <11:15> busa Rw Ra Rb x 32- bit Registers busb imm16 Rs Rd Imm16 TA26 MemtoReg = x Zero MemWr = Mux Clk Rt ALUOp =x ALU busw Clk <16:20> Rd Rt RegDst = x Mux Rs Rt RegWr = 5 5 5 <21:25> Instructon Fetch Unit Branch=? Data Memory 25

Προσθήκη εντολής j! Νέο σήμα ελέγχου: Jump! Νέος πολυπλέκτης Instructon[25:0] 26 4 imm16 Mux Adder PCSrc PC 4 (MSBs) Mux Adder Jump Clk Branch zero 26

Mars εργαλείο MIPS x- ray! Στο μενού tools του Mars υπάρχει το παραπάνω εργαλείο! Δείχνει με animaton πως δουλεύει ένας MIPS σαν αυτόν που εξετάσαμε (αλλά με περισσότερες (όλες;) εντολές)! Στο κυρίως παράθυρο του Mars: ανοίξτε ένα αρχείο με ένα πρόγραμμα και κάντε assemble! Ξεκινήστε το MIPS X- Ray και πατήστε το κουμπί Connect to MIPS! Μετά εκτελέστε εντολή προς εντολή το πρόγραμμα και δείτε τι ακριβώς συμβαίνει στον επεξεργαστή! 27

Lab06 MIPS σε quartus! Ο απλός MIPS που εξετάσαμε έχει υλοποιηθεί στο Quartus! Στο Lab06, θα τρέξετε προγράμματα με προσομοίωση παρόμοιο με το MIPS Χ- ray, αλλά με waveforms! Θα προσθέσετε μερικές εντολές και βέβαια, θα επιβεβαιώσετε ότι δουλεύουν σωστά!! Μπορούμε να τον βάλουμε να δουλέψει πραγματικά στις πλακέτες του εργαστηρίου (DE2); Δυστυχώς όχι. Οι μνήμες που χρησιμοποιούμε δεν μπορούν να υλοποιηθούν! 28

Επόμενο μάθημα Συνέχεια σχεδίασης επεξεργαστή: διοχέτευση 29

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημειώματα

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. Έχουν προηγηθεί οι κάτωθι εκδόσεις: Έκδοση 1.0 διαθέσιμη εδώ. http://ecourse.uoi.gr/course/view.php?id=1307.

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου. «Αρχιτεκτονική Υπολογιστών. Οργάνωση επεξεργαστή». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1307.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.